ABSTRACT
Code is modularized, for many reasons, including making it easier to understand, change, and verify. Aspect-oriented programming approaches extend the kind of code that can be modularized, enabling the modularization of crosscutting code. We conducted an inquisitive study to better understand the kinds of crosscutting code that software developers encounter and to better understand how the developers manage this code. We tracked eight participants: four from industry and four from academia. Each participant was currently evolving a non-trivial software system. We interviewed these participants three times about crosscutting concerns they had encountered and the strategies they used to deal with the concerns. We found that crosscutting concerns tended to emerge as obstacles that the developer had to consider to make the desired change. The strategy used by the developer to manage the concern depended on the form of the obstacle code. The results of this study provide empirical evidence to support the problems identified by the aspect-oriented programming community, and provide a basis on which to further assess aspect-oriented programming.
- D. L. Parnas, On the Criteria To Be Used in Decomposing System into Modules, Communications of the ACM, pp. 1053-1058,1972. Google ScholarDigital Library
- AspectJ™ web site: www.aspectj.orgGoogle Scholar
- Hyper/J™ web site: www.research.ibm.com/hyperspace/HyperJ/HyperJ.htmlGoogle Scholar
- M. Askit, L. Bergmans and S. Vural. An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach, In Proc of European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science Vol. 615, pp. 372-395, 1992. Google Scholar
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda and C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect Oriented Programming. In Proc. of European Conference on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science Vol. 1241, pp. 220-242, 1997.Google Scholar
- H. Ossher, M. Kaplan, A. Katz, W. Harrison and V. Kruskal. Specifying subject-oriented composition. TAPOS, Vol. 2, No. 3. pp. 179-202, 1996. Google ScholarDigital Library
- P. Tarr, H. Ossher, W. Harrison and S. M. Sutton. N degrees of separation: Multi-dimensional separation of concerns. In Proc. of the 21st International Conference on Software Engineering, pp. 107-119, 1999. Google ScholarDigital Library
- C. V. Lopes and G. Kiczales. "Recent Developments in AspectJ™". Aspect-Oriented Programming Workshop, European Conference on Object-Oriented Programming (ECOOP). In Object-Oriented Technology: ECOOP'98 Workshop Reader, Lecture Notes in Computer Science, Vol. 1543, pp. 398-401, 1998. Google Scholar
- C. V. Lopes. D: A Language Framework for Distributed Computing, Ph.D. Dissertation, College of Computer Science, Northeastern University, Boston, 1997.Google Scholar
- C. V. Lopes and K. J. Lieberherr. Abstracting process-to-function relations in concurrent object-oriented applications. In Proc. European Conf. on Object-Oriented Programming (ECOOP), Lecture Notes in Computer Science, Vol. 821, pp. 81-99, 1994. Google Scholar
- T. Lethbridge, S. Sim, and J. Singer. Studying Software Engineers: Data Collection Methods for Software Field Studies, Submitted May 2000 to Empirical Software Engineering. Google ScholarDigital Library
- B. W. Kernighan and D. M. Ritchie. The C Programming Language: Second Edition. Prentice Hall, Englewood, New Jersey, 1988. Google ScholarDigital Library
- B. Stroustrup. The C++ Programming Language: Second Edition. Addison Wesley Publishing Co., 1991. Google ScholarDigital Library
- K. Arnold and J. Gosling. The Java Programming Language. ACM Press Books, Addison Wesley Longman, 1996. Google ScholarDigital Library
- R. Brookes. Towards a theory of the comprehension of computer programs. International Journal of Man-Machine Studies, Vol. 18, pp. 543-554, 1983.Google ScholarCross Ref
- E. Soloway and K. Erlich. Empirical studies of programming knowledge. IEEE Transactions on Software Engineering, SE-10, No. 5, pp. 595-609 Google ScholarDigital Library
- B. Schneiderman and R. Mayer. Syntactic/semantic interactions in programmer behaviour: A model and experimental results. International Journal of Computer and Information Sciences, Vol. 8 No. 3, pp. 219-238, 1979.Google ScholarCross Ref
- N. Pennington. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, Vol. 19, pp. 295-341, 1987.Google ScholarCross Ref
- S. Letovsky. Cognitive Processes in Program Comprehension. In Empirical Studies of Programmers, pp. 58-79, 1986. Google ScholarDigital Library
- A. von Mayrhauser, A. Vans. Comprehension processes during large scale maintenance. In Proc. of the 16th International Conference on Software Engineering, pp. 39-48, 1994. Google ScholarDigital Library
- M. Lippert and C. V. Lopes. A Study on Exception Detection and Handling Using Aspect-Oriented Programming. In Proc. 22nd International Conference on Software Engineering, pp. 418-427, 2000. Google ScholarDigital Library
- R. Walker, E. Baniassad and G. Murphy. An Initial Assessment of Aspect-Oriented Programming. In Proc. of the 21st International Conference on Software Engineering, pp. 120-130, 1999. Google ScholarDigital Library
Index Terms
- Managing crosscutting concerns during software evolution tasks: an inquisitive study
Recommendations
Toward automated refactoring of crosscutting concerns into aspects
Aspect-oriented programing (AOP) improves the separation of concerns by encapsulating crosscutting concerns into aspects. Thus, aspect-oriented programing aims to better support the evolution of systems. Along this line, we have defined a process that ...
Refactoring of Crosscutting Concerns with Metaphor-Based Heuristics
It has been advocated that Aspect-Oriented Programming (AOP) is an effective technique to improve software maintainability through explicit support for modularising crosscutting concerns. However, in order to take the advantages of AOP, there is a need ...
Relating the Evolution of Design Patterns and Crosscutting Concerns
SCAM '07: Proceedings of the Seventh IEEE International Working Conference on Source Code Analysis and ManipulationCrosscutting concerns consist in software system features having the implementation spread across modules as tangled and scattered code. In many cases, these crosscutting concerns represent design pattern clients, i.e., invocations to pattern features. ...
Comments