Mining static and dynamic crosscutting concerns: a role‐based approach

The implementation of crosscutting concerns in object‐oriented (OO) systems entails scattering and tangling of code across several components increasing code duplication and making the system harder to comprehend, maintain, evolve and reuse. Therefore, identification of crosscutting concerns drives the re‐engineering or refactoring tasks in order to improve modularization of an existing system and increasing its overall internal quality. This paper proposes an approach to identify and analyse the components implementing the static and dynamic crosscutting in OO systems. The approach defines a meta‐model representing the structure of an OO system in terms of its components. A static analysis of an OO software system is performed to create an instance of this meta‐model. Such meta‐model is finally analysed to find static and dynamic crosscutting among concerns. The effectiveness and efficiency of the proposed approach have been validated in an empirical assessment where it was applied to some OO java systems. The obtained results show a good level of effectiveness for the crosscutting analysis. Copyright © 2016 John Wiley & Sons, Ltd.

[1]  Hans-Arno Jacobsen,et al.  Mining Crosscutting Concerns through Random Walks , 2012, IEEE Transactions on Software Engineering.

[2]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[3]  Lili He,et al.  Aspect Mining Using Clustering and Association Rule Method , 2006 .

[4]  Michael Schrefl,et al.  Using roles in Java , 2004 .

[5]  Bedir Tekinerdogan,et al.  Analysis of Crosscutting in Model Transformations , 2006 .

[6]  Liping Qu,et al.  Aspect Mining Using Method Call Tree , 2007, 2007 International Conference on Multimedia and Ubiquitous Engineering (MUE'07).

[7]  Gregor Kiczales,et al.  Design pattern implementation in Java and aspectJ , 2002, OOPSLA '02.

[8]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[9]  Arie van Deursen,et al.  An evaluation of clone detection techniques for crosscutting concerns , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[10]  Stephan Herrmann,et al.  A precise model for contextual roles: The programming language ObjectTeams/Java , 2007, Appl. Ontology.

[11]  Lerina Aversano,et al.  Relationship between design patterns defects and crosscutting concern scattering degree: an empirical study , 2009, IET Softw..

[12]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[13]  Mariano Ceccato,et al.  Refactoring the aspectizable interfaces: an empirical assessment , 2005, IEEE Transactions on Software Engineering.

[14]  Lori L. Pollock,et al.  Timna: a framework for automatically combining aspect mining analyses , 2005, ASE '05.

[15]  Aniello Cimitile,et al.  Decomposing legacy systems into objects: an eclectic approach , 2001, Inf. Softw. Technol..

[16]  Thomas W. Reps,et al.  Identifying modules via concept analysis , 1997, 1997 Proceedings International Conference on Software Maintenance.

[17]  G.C. Murphy,et al.  Identifying, Assigning, and Quantifying Crosscutting Concerns , 2007, First International Workshop on Assessment of Contemporary Modularization Techniques (ACoM '07).

[18]  J Glaser,et al.  Separation of Concerns , 2014 .

[19]  Carlos José Pereira de Lucena,et al.  Modularizing design patterns with aspects: a quantitative study , 2005, AOSD '05.

[20]  Miguel P. Monteiro,et al.  Implementing design patterns in Object Teams , 2013, Softw. Pract. Exp..

[21]  Jin Huang,et al.  Identifying composite crosscutting concerns through semi‐supervised learning , 2014, Softw. Pract. Exp..

[22]  Kim Mens,et al.  Mining aspectual views using formal concept analysis , 2004, Source Code Analysis and Manipulation, Fourth IEEE International Workshop on.

[23]  Mario Luca Bernardi,et al.  ConAn: A Tool for the Identification of Crosscutting Concerns in Object Oriented Systems Based on Type Hierarchy Analysis , 2009, 2009 16th Working Conference on Reverse Engineering.

[24]  Gerardo Canfora,et al.  On the Use of Line Co-change for Identifying Crosscutting Concern Code , 2006, 2006 22nd IEEE International Conference on Software Maintenance.

[25]  João M. Fernandes,et al.  An illustrative example of refactoring object‐oriented source code with aspect‐oriented mechanisms , 2008, Softw. Pract. Exp..

[26]  Martin P. Robillard,et al.  Representing concerns in source code , 2007, TSEM.

[27]  Jens Krinke,et al.  Mining Control Flow Graphs for Crosscutting Concerns , 2006, 2006 13th Working Conference on Reverse Engineering.

[28]  Jens Krinke,et al.  Control-Flow-Graph-Based Aspect Mining , 2004 .

[29]  Anil K. Jain,et al.  Data clustering: a review , 1999, CSUR.

[30]  David Coppit,et al.  Understanding concerns in software: insights gained from two case studies , 2005, 13th International Workshop on Program Comprehension (IWPC'05).

[31]  Shinji Kusumoto,et al.  CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code , 2002, IEEE Trans. Software Eng..

[32]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[33]  Mira Mezini Variational Object-Oriented Programming Beyond Classes and Inheritance , 1998, The Kluwer international series in engineering and computer science.

[34]  Mario Luca Bernardi,et al.  The ConAn Tool to Identify Crosscutting Concerns in Object Oriented Systems , 2010, 2010 IEEE 18th International Conference on Program Comprehension.

[35]  Thomas Zimmermann,et al.  Mining Aspects from Version History , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[36]  Liping Qu,et al.  Extending Dynamic Aspect Mining Using Formal Concept Analysis , 2007, Fourth International Conference on Fuzzy Systems and Knowledge Discovery (FSKD 2007).

[37]  Leon Moonen,et al.  A common framework for aspect mining based on crosscutting concern sorts , 2006, 2006 13th Working Conference on Reverse Engineering.

[38]  Susan Horwitz,et al.  Using Slicing to Identify Duplication in Source Code , 2001, SAS.

[39]  Mariano Ceccato,et al.  Aspect mining through the formal concept analysis of execution traces , 2004, 11th Working Conference on Reverse Engineering.

[40]  Mario Luca Bernardi,et al.  Identifying the Crosscutting among Concerns by Methods' Calls Analysis , 2011, FGIT-ASEA/DRBC/EL.

[41]  Mario Luca Bernardi,et al.  A role-based crosscutting concerns mining approach to evolve Java systems towards AOP , 2009, IWPSE-Evol '09.

[42]  João M. Fernandes,et al.  Towards a catalog of aspect-oriented refactorings , 2005, AOSD '05.

[43]  Mira Mezini,et al.  Modules for Crosscutting Models , 2003, Ada-Europe.

[44]  Gabriela Serban Czibula,et al.  A New k-means Based Clustering Algorithm in Aspect Mining , 2006, 2006 Eighth International Symposium on Symbolic and Numeric Algorithms for Scientific Computing.

[45]  Alfred V. Aho,et al.  Do Crosscutting Concerns Cause Defects? , 2008, IEEE Transactions on Software Engineering.

[46]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[47]  Mario Luca Bernardi,et al.  Analysing Object Type Hierarchies to Identify Crosscutting Concerns , 2009, FGIT.

[48]  Mira Mezini,et al.  Variability management with feature-oriented programming and aspects , 2004, SIGSOFT '04/FSE-12.

[49]  Arie van Deursen,et al.  FINT: Tool Support for Aspect Mining , 2006, 2006 13th Working Conference on Reverse Engineering.