Applying and combining three different aspect Mining Techniques
Rent the article at a discountRent now
* Final gross prices may vary according to local VAT.Get Access
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.
- Beck, K. 1997. Smalltalk: Best Practice Patterns. Prentice-Hall
- 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.
- Deursen, A., Marin, M., Moonen, L. 2003. Aspect mining and refactoring. In: Proceedings of the First International Workshop on REFactoring: Achievements, Challenges, Effects (REFACE03).
- Eisenbarth, T., Koschke, R., Simon, D. (2003) Locating features in source code. IEEE Transactions on Software Engineering 29: pp. 195-209 CrossRef
- Fabry, J. 2005. Modularizing Advanced Transaction Management—Tackling Tangled Aspect Code. PhD thesis, Vrije Universiteit Brussel.
- Gamma, E., Helm, R., Johnson, R., Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
- Ganter, B., Wille, R. 1999. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag.
- 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.
- Henderson-Sellers, B. 1996. Object-Oriented Metrics: Measures of Complexity. Prentice-Hall.
- Kellens, A., Mens, K. 2005. A survey of aspect mining tools and techniques. Technical report, INGI 2005–07, Universitá catholique de Louvain, Belgium.
- 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.
- 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.
- 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.
- 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.
- Marin, M., Moonen, L., Deursen, A. 2005b. A classification of crosscutting concerns. In: Proceedings International Conference on Software Maintenance (ICSM 2005), IEEE Computer Society.
- Mens, K., Tourwá, T. (2005) Delving source-code with formal concept analysis. Elsevier Journal on Computer Languages, Systems & Structures 31: pp. 183-198 CrossRef
- Porter, M. (1980) An algorithm for suffix stripping. Program 14: pp. 130-137
- The AspectJ Team 2003. The AspectJ Programming Guide. Palo Alto Research Center. Version 1.2.
- 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.
- 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.
- Applying and combining three different aspect Mining Techniques
Software Quality Journal
Volume 14, Issue 3 , pp 209-231
- Cover Date
- Print ISSN
- Online ISSN
- Kluwer Academic Publishers
- Additional Links
- Industry Sectors