Applying and combining three different aspect Mining Techniques
- 145 Downloads
Understanding a software system at source-code level requires understanding the different concerns that it addresses, which in turn requires a way to identify these concerns in the source code. Whereas some concerns are explicitly represented by program entities (like classes, methods and variables) and thus are easy to identify, crosscutting concerns are not captured by a single program entity but are scattered over many program entities and are tangled with the other concerns. Because of their crosscutting nature, such crosscutting concerns are difficult to identify, and reduce the understandability of the system as a whole.
In this paper, we report on a combined experiment in which we try to identify crosscutting concerns in the JHotDraw framework automatically. We first apply three independently developed aspect mining techniques to JHotDraw and evaluate and compare their results. Based on this analysis, we present three interesting combinations of these three techniques, and show how these combinations provide a more complete coverage of the detected concerns as compared to the original techniques individually. Our results are a first step towards improving the understandability of a system that contains crosscutting concerns, and can be used as a basis for refactoring the identified crosscutting concerns into aspects.
Unable to display preview. Download preview PDF.
- Beck, K. 1997. Smalltalk: Best Practice Patterns. Prentice-HallGoogle Scholar
- Bruntink, M., Deursen, A., Tourwá, T. 2006. Discovering faults in idiom-based exception handling. In: Proceedings of the 28th International Conference on Software Engineering (ICSE) (to appear), ACM Press.Google Scholar
- Deursen, A., Marin, M., Moonen, L. 2003. Aspect mining and refactoring. In: Proceedings of the First International Workshop on REFactoring: Achievements, Challenges, Effects (REFACE03).Google Scholar
- Fabry, J. 2005. Modularizing Advanced Transaction Management—Tackling Tangled Aspect Code. PhD thesis, Vrije Universiteit Brussel.Google Scholar
- Gamma, E., Helm, R., Johnson, R., Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.Google Scholar
- Ganter, B., Wille, R. 1999. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag.Google Scholar
- Hannemann, J., Kiczales, G. 2002. Design pattern implementation in Java and AspectJ. In: Proceedings of the 17th Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), ACM Press, pp. 161–173.Google Scholar
- Henderson-Sellers, B. 1996. Object-Oriented Metrics: Measures of Complexity. Prentice-Hall.Google Scholar
- Kellens, A., Mens, K. 2005. A survey of aspect mining tools and techniques. Technical report, INGI 2005–07, Universitá catholique de Louvain, Belgium.Google Scholar
- Lippert, M., Lopes, C.V. 2000. A study on exception detection and handling using aspect-oriented programming. In: Proceedings of the International Conference on Software Engineering (ICSE), ACM Press, pp. 418–427.Google Scholar
- Marin, M. 2006. Reasoning about assessing and improving the seed quality of a generative aspect mining technique. In: Proc. of the Second Workshop on Linking Aspect Technology and Evolution at AOSD 2006.Google Scholar
- Marin, M., Deursen, A., Moonen, L. 2004. Identifying aspects using fan-in analysis. In: Proc. of the 11th IEEE Working Conference on Reverse Engineering (WCRE 2004), IEEE Computer Society.Google Scholar
- Marin, M., Moonen, L., Deursen, A. 2005a. An approach to aspect refactoring based on crosscutting concern types. In: Proceedings of the First International Workshop on the Modeling and Analysis of Concerns in Software, International Conference on Software Engineering, St. Louis, USA.Google Scholar
- Marin, M., Moonen, L., Deursen, A. 2005b. A classification of crosscutting concerns. In: Proceedings International Conference on Software Maintenance (ICSM 2005), IEEE Computer Society.Google Scholar
- Porter, M. 1980. An algorithm for suffix stripping. Program 14(3):130–137Google Scholar
- The AspectJ Team 2003. The AspectJ Programming Guide. Palo Alto Research Center. Version 1.2.Google Scholar
- Tonella, P., Ceccato, M. 2004. Aspect mining through the formal concept analysis of execution traces. In: Proceedings of the 11th IEEE Working Conference on Reverse Engineering (WCRE 2004), IEEE Computer Society.Google Scholar
- Tourwá, T., Mens, K. 2004. Mining aspectual views using formal concept analysis. In: Proc. of the Fourth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2004), IEEE Computer Society.Google Scholar