28,792 research outputs found
Using Counts as Heuristics for the Analysis of Static Models
The upstream activities of software development are often viewed as both the most
important, in terms of cost, and the yet the least understood, and most problematic, particularly in terms of satisfying customer requirements. Business process modelling is
one solution that is being increasingly used in conjunction with traditional software
development, often feeding in to requirements and analysis activities. In addition,
research in Systems Engineering for Business Process Change, highlights the importance
of modelling business processes in evolving and maintaining the legacy systems that
support those processes. However, the major use of business process modelling, is to
attempt to restructure the business process, in order to improve some given aspect, e.g.,
cost or time. This restructuring may be seen either as separate activity or as a pre-cursor
to the development of systems to support the new or improved process. Hence, the
analysis of these business models is vital to the improvement of the process, and as a
consequence to the development of supporting software systems. Supporting this analysis
is the focus of this paper.
Business processes are typically described with static (diagrammatic) models. This paper
proposes the use of measures (counts) to aid analysis and comparison of these static
process descriptions. The proposition is illustrated by showing how measures can be
applied to a commonly used process-modelling notation, Role Activity Diagrams (RADs).
Heuristics for RADs are described and measures suggested which support those
heuristics. An example process is used to show how a coupling measure can be used to
highlight features in RADs useful to the process modeller.
To fully illustrate the proposition the paper describes and applies a framework for the
theoretical validation of the coupling measure. An empirical evaluation follows. This is
illustrated by two case studies; the first based on the bidding process of a large
telecommunications systems supplier, and the second a study of ten prototyping processes
across a number of organisations.
These studies found that roles of the same type exhibited similar levels of coupling across
processes. Where roles did not adhere to tentative threshold values, further investigation
revealed unusual circumstances or hidden behaviour. Notably, study of the prototyping
roles, which exhibited the greatest variation in coupling, found that coupling was highly
correlated with the size of the development team. This suggests that prototyping in large
projects had a different process to that for small projects, using more mechanisms for
communication. Hence, the empirical studies support the view that counts (measures)
may be useful in the analysis of static process models
An Approach for the Empirical Validation of Software Complexity Measures
Software metrics are widely accepted tools to control and assure software quality. A large number of software metrics with a variety of content can be found in the literature; however most of them are not adopted in industry as they are seen as irrelevant to needs, as they are unsupported, and the major reason behind this is due to improper
empirical validation. This paper tries to identify possible root causes for the improper empirical validation of the software metrics. A practical model for the empirical validation of software metrics is proposed along with root causes. The model is validated by applying it to recently proposed and well known metrics
DISTANCE: a framework for software measure construction.
In this paper we present a framework for software measurement that is specifically suited to satisfy the measurement needs of empirical software engineering research. The framework offers an approach to measurement that builds upon the easily imagined, detected and visualised concepts of similarity and dissimilarity between software entities. These concepts are used both to model the software attributes of interest and to define the corresponding software measures. Central to the framework is a process model that embeds constructive procedures for attribute modelling and measure construction into a goal-oriented approach to empirical software engineering studies. The underlying measurement theoretic principles of our approach ensure the construct validity of the resulting measures. The approach was tested on a popular suite of object-oriented design measures. We further show that our measure construction method compares favourably to related work.Software;
Quantitative assessment of modularity of caesarJ components
Dissertação apresentada no âmbito do Mestrado em Engenharia Informática para obtenção do grau de Mestre em Engenharia InformáticaOs defensores do paradigma de programação orientada a aspectos afirmam que este paradigma oferece melhor modularidade que a programação orientada a objectos, assim como um melhor suporte para separação de facetas transversais. Embora o AspectJ seja a linguagem de AOP mais conhecida, e alvo de mais estudos, surgiram novas linguagens de programação que propõem diferentes formas de instanciar este paradigma. O CaesarJ Ă© uma destas linguagens. Possui abstracções e mecanismos que o diferenciam do AspectJ, tais como classes virtuais, polimorfismo de famĂlia e uma maneira diferente de representar um aspecto.
Qualquer alegação de uma linguagem ser melhor, Ă luz de um critĂ©rio bem definido (neste caso, a modularidade), tem que ser apoiada por avaliações rigorosas de implementações feitas nessa linguagem. Este trabalho pretende fazer isso com um estudo comparativo entre as duas linguagens em termos da modularidade que se obtĂ©m em software por elas implementado. Em particular, vai-se estudar uma faceta da modularidade: a coesĂŁo. Este estudo utiliza da estrutura padrĂŁo de relatĂłrios experimentais em Engenharia de Software, assim como todos os testes estatĂsticos apropriados. Para este fim, foi desenvolvida uma mĂ©trica de coesĂŁo que foi usada, juntamente com várias mĂ©tricas de tamanho para avaliar 51 exemplos de implementações de padrões de concepção. No contexto desta dissertação a ferramenta de recolha automática de mĂ©tricas MuLATo foi adaptada para suportar esta nova mĂ©trica de coesĂŁo. Os resultados do estudo efectuado sugerem que o CaesarJ Ă© mais verboso que Java mas contem componentes menos complexos e mais coesos
Improving Reuse of Distributed Transaction Software with Transaction-Aware Aspects
Implementing crosscutting concerns for transactions is difficult, even using Aspect-Oriented Programming Languages (AOPLs) such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current AOPLs do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. Other challenges stem from the essential complexity in the nature of the data, operations on the data, or the volume of data, and accidental complexity comes from the way that the problem is being solved, even using common transaction frameworks. This dissertation describes an extension to AspectJ, called TransJ, with which developers can implement transaction-related crosscutting concerns in cohesive and loosely-coupled aspects. It also presents a preliminary experiment that provides evidence of improvement in reusability without sacrificing the performance of applications requiring essential transactions. This empirical study is conducted using the extended-quality model for transactional application to define measurements on the transaction software systems. This quality model defines three goals: the first relates to code quality (in terms of its reusability); the second to software performance; and the third concerns software development efficiency. Results from this study show that TransJ can improve the reusability while maintaining performance of TransJ applications requiring transaction for all eight areas addressed by the hypotheses: better encapsulation and separation of concern; loose Coupling, higher-cohesion and less tangling; improving obliviousness; preserving the software efficiency; improving extensibility; and hasten the development process
A survey on software coupling relations and tools
Context
Coupling relations reflect the dependencies between software entities and can be used to assess the quality of a program. For this reason, a vast amount of them has been developed, together with tools to compute their related metrics. However, this makes the coupling measures suitable for a given application challenging to find.
Goals
The first objective of this work is to provide a classification of the different kinds of coupling relations, together with the metrics to measure them. The second consists in presenting an overview of the tools proposed until now by the software engineering academic community to extract these metrics.
Method
This work constitutes a systematic literature review in software engineering. To retrieve the referenced publications, publicly available scientific research databases were used. These sources were queried using keywords inherent to software coupling. We included publications from the period 2002 to 2017 and highly cited earlier publications. A snowballing technique was used to retrieve further related material.
Results
Four groups of coupling relations were found: structural, dynamic, semantic and logical. A fifth set of coupling relations includes approaches too recent to be considered an independent group and measures developed for specific environments. The investigation also retrieved tools that extract the metrics belonging to each coupling group.
Conclusion
This study shows the directions followed by the research on software coupling: e.g., developing metrics for specific environments. Concerning the metric tools, three trends have emerged in recent years: use of visualization techniques, extensibility and scalability. Finally, some coupling metrics applications were presented (e.g., code smell detection), indicating possible future research directions. Public preprint [https://doi.org/10.5281/zenodo.2002001]
A COUPLING AND COHESION METRICS SUITE FOR
The increasing need for software quality measurements has led to extensive research
into software metrics and the development of software metric tools. To maintain high
quality software, developers need to strive for a low-coupled and highly cohesive
design. One of many properties considered when measuring coupling and cohesion is the
type of relationships that made up coupling and cohesion. What these specific
relationships are is widely understood and accepted by researchers and practitioners.
However, different researchers base their metrics on a different subset of these
relationships.
Studies have shown that because of the inclusion of multiple subsets of relationships
in one measure of coupling and cohesion metrics, the measures tend to correlate among
each other. Validation of these metrics against maintainability index of a Java program
suggested that there is high multicollinearity among coupling and cohesion metrics.
This research introduces an approach of implementing coupling and cohesion
metrics. Every possible relationship is considered and, for each, addressed the issue of
whether or not it has significant effect on maintainability index prediction. Validation of
orthogonality of the selected metrics is assessed by means of principal component
analysis. The investigation suggested that some of the metrics are independent set of
metrics, while some are measuring similar dimension
- …