Software Quality Journal

, Volume 14, Issue 3, pp 209–231 | Cite as

Applying and combining three different aspect Mining Techniques

  • M. Ceccato
  • M. Marin
  • K. Mens
  • L. Moonen
  • P. Tonella
  • T. Tourwé
Article

Abstract

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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Beck, K. 1997. Smalltalk: Best Practice Patterns. Prentice-HallGoogle Scholar
  2. 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
  3. 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
  4. Eisenbarth, T., Koschke, R., Simon, D. 2003. Locating features in source code. IEEE Transactions on Software Engineering 29(3):195–209.CrossRefGoogle Scholar
  5. Fabry, J. 2005. Modularizing Advanced Transaction Management—Tackling Tangled Aspect Code. PhD thesis, Vrije Universiteit Brussel.Google Scholar
  6. Gamma, E., Helm, R., Johnson, R., Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.Google Scholar
  7. Ganter, B., Wille, R. 1999. Formal Concept Analysis: Mathematical Foundations. Springer-Verlag.Google Scholar
  8. 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
  9. Henderson-Sellers, B. 1996. Object-Oriented Metrics: Measures of Complexity. Prentice-Hall.Google Scholar
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. Mens, K., Tourwá, T. 2005. Delving source-code with formal concept analysis. Elsevier Journal on Computer Languages, Systems & Structures 31(3–4):183–198. Special Issue: Smalltalk.CrossRefGoogle Scholar
  17. Porter, M. 1980. An algorithm for suffix stripping. Program 14(3):130–137Google Scholar
  18. The AspectJ Team 2003. The AspectJ Programming Guide. Palo Alto Research Center. Version 1.2.Google Scholar
  19. 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
  20. 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

Copyright information

© Springer Science + Business Media, LLC 2006

Authors and Affiliations

  • M. Ceccato
    • 1
  • M. Marin
    • 2
  • K. Mens
    • 3
  • L. Moonen
    • 2
    • 4
  • P. Tonella
    • 1
  • T. Tourwé
    • 4
  1. 1.ITC-irstTrentoItaly
  2. 2.Delft UniversityThe Netherlands
  3. 3.Université catholique de LouvainBelgium
  4. 4.CWIThe Netherlands

Personalised recommendations