In this paper we describe an exploratory assessment of the effect of aspect-oriented programming on software maintainability. An experiment was conducted in which 11 software professionals were asked to carry out maintenance tasks on one of two programs. The first program was written in Java and the second in AspectJ. Both programs implement a shopping system according to the same set of requirements. A number of statistical hypotheses were tested. The results did seem to suggest a slight advantage for the subjects using the object-oriented system since in general it took the subjects less time to answer the questions on this system. Also, both systems appeared to be equally difficult to modify. However, the results did not show a statistically significant influence of aspect-oriented programming at the 5% level. We are aware that the results of this single small study cannot be generalized. We conclude that more empirical research is necessary in this area to identify the benefits of aspect-oriented programming and we hope that this paper will encourage such research.
This paper reports on a case study in which four programs were implemented in both aspect-oriented and object-oriented versions using four different design patterns. We report on our experiences with the use of these design patterns and the trade-offs that needed to be considered. Furthermore, we present additional evidence for a reduction of coupling through the use of aspect-oriented versions of popular design patterns identifying those that may have a beneficial influence on software maintenance.
ABSTRACT The maintenance of aspect-oriented software requires measures that are theoretically valid. Inadequately validated measures might lead to management or project decisions that are likely to be not as effective as they could be. Recently, measures have been suggested that focus on aspect-oriented concepts, such as the crosscutting behaviour of aspects. Before these new measures can be put to use they should be evaluated to determine how far they indeed measure what they purport to quantify. This paper focuses on the evaluation of five aspect-oriented coupling measures with the aim to constructively increase the quality of software evolution. Categories and Subject Descriptors D.2.8 [ Software Engineering ]: Measurement – product metrics. General Terms Measurement. Keywords Measurement, aspect-oriented, coupling. 1. INTRODUCTION Aspect-orientation is an emerging paradigm that is based on the separation of concerns principle. It offers the idea of a new modular unit that encapsulates crosscutting concerns which would otherwise be scattered across multiple modules. Aspect-oriented languages introduce new forms of coupling which are unknown to object-oriented languages. The execution of base code might trigger the execution of aspect code leading to coupling relationships between classes and aspects which are not transparent. In addition to that, intertype declarations can change class implementations by adding attributes or methods. Measuring these new kinds of coupling relationships is an issue which has been addressed lately with the definition of coupling measures specifically designed to support aspect-oriented concepts. A maintenance process for aspect-oriented software that relies on the results of these measures must have the confidence that the measures involved indeed measure what they purport to quantify. Also, the comparison of measurement results is an error prone task if measures can be interpreted in different ways. The position of the authors is that all measures including coupling measures need to be validated to gain confidence in the results taken from measurement. However, others have pointed out that metrics that cannot be validated may still be useful [6]. Since research into measurement of aspect-oriented systems is at an early stage, it is particularly important to validate aspect-oriented measures thoroughly. Also, the authors would like to stress the fact, that validating aspect-oriented coupling measures depends on at least two frameworks. First, validation criteria need to be agreed upon. A measure that validates successfully in the context of one framework might not validate in another. Second, aspect-oriented coupling measures depend on a specific idea of coupling. Mechanisms that constitute coupling in one aspect-oriented language might not exist in another. Hence, a specific aspect-oriented language implementation has to be considered, when aspect-oriented coupling measures are validated. A first step in this direction is the evaluation of five selected aspect-oriented coupling measures suggested by Ceccato and Tonella [4]. In the evaluation process we will focus on four points: First we give an overview of the suggested coupling measures. Second, we identify a measurement goal and a rationale behind the measures. When measures are to be selected for a certain measurement goal, this selection process should be supported by the measure. Third, we ask whether the definitions are well-defined, i.e. whether they are free of any ambiguities. Last, we will investigate whether the coupling measures can be considered valid from a measurement theory point of view, i.e. whether their definitions conform to criteria that all valid measures must obey. Without such a validation we can have no confidence in whether they indeed measure what they purport to. This paper is structured as follows: section 2 presents related work, section 3 introduces two evaluation frameworks used in this paper, section 4 introduces and evaluates the coupling measures. Finally, section 5 offers conclusion and points to further research.
Aspect-orientation is an emerging paradigm that is based on the separation of concerns principle. It offers the idea of a new modular unit that encapsulates crosscutting concerns which would otherwise be scattered across multiple modules. Aspect-oriented measurement is a research area that has gained an increasing amount of attention lately due to the definition of several suites of measures designed to support aspect-oriented key features. Unlike objectorientation, however, aspect-orientation lacks a sound foundation on which measures can be expressed in operationalisable ways making it difficult to analyse and compare existing aspect-oriented measures. We identify a need to create common ground on which the definition of aspect-oriented measures can be based.
Goal modelling is a well known rigorous method for analysing problem rationale and developing requirements. Under the pressures typical of time-constrained projects its benefits are not accessible. This is because of the effort and time needed to create the graph and because reading the results can be difficult owing to the effects of crosscutting concerns. Here we introduce an adaptation of KAOS to meet the needs of rapid turn around and clarity. The main aim is to help the stakeholders gain an insight into the larger issues that might be overlooked if they make a premature start into implementation. The method emphasises the use of obstacles, accepts under-refined goals and has new methods for managing crosscutting concerns and strategic decision making. It is expected to be of value to agile as well as traditional processes.
Previous work has established the value of goal-oriented approaches to requirements engineering. Achieving clarity and agreement about stakeholders’ goals and assumptions is critical for building successful software systems and managing their subsequent evolution. In general, this decision-making process requires stakeholders to understand the implications of decisions outside the domains of their own expertise. Hence it is important to support goal negotiation and decision making with description languages that are both precise and expressive, yet easy to grasp. This paper presents work in progress to develop a pattern language for describing goal refinement graphs. The language has a simple graphical notation, which is supported by a prototype editor tool, and a symbolic notation based on modal logic.