Separation of scattered concerns: a graph based approach for aspect mining

Aspect Mining is a dynamic area of research in the field of Software Engineering. Aspects are concerns that are intermingled with other concerns thereby reducing the understandability, maintainability and scalability of the code. The concept of Separation of Concerns (SoC) is often achieved untill the Design Phase, but gets difficult in the later phases of the software development life cycle (SDLC). During program maintenance the maintenance team is left with an aggregation of procedures and variables, both of which may be generically called user-defined tokens. This paper proposes a graph-based approach to address the problem of SoC during program maintenance. This is done by the removal of some source code elements (e.g., user-defined-tokens), which can be responsible for tangled concerns and complex code. These user-definedtokens can be treated separately under the Aspect Oriented Programming paradigm. The paper proposes a graphical-model, which represents a procedural program and defines a mathematical- model to identify and remove the tangled and interleaving code-fragments. Thereafter these code fragments are traced back to the requirements engineering level through a formal traceability model. This process yields the corresponding user requirements that are associated with these scattered code fragments. These identified user requirements are put forward as Aspects, to be handled or re-engineered under the Aspect Oriented Programming paradigm.

[1]  Jonathan Aldrich Challenge Problems for Separation of Concerns , 2000 .

[2]  K. G. van den Berg,et al.  Crosscutting, what is and what is not? A Formal definition based on a Crosscutting Pattern , 2007 .

[3]  William G. Griswold,et al.  AspectBrowser: Tool Support for Managing Dispersed Aspects , 1999 .

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

[5]  Mira Mezini,et al.  PIROL: a case study for multidimensional separation of concerns in software engineering environments , 2000, OOPSLA '00.

[6]  Kim Mens,et al.  Using intentional source-code views to aid software maintenance , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[7]  Michiaki Tatsubori,et al.  Separation of Distribution Concerns in Distributed Java Programming , 2001 .

[8]  Lori Pollock,et al.  Ophir: A Framework for Automatic Mining and Refactoring of Aspects , 2003 .

[9]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[10]  Peter Van Roy Logic Programming in Oz with Mozart , 1999, ICLP.

[11]  Martin P. Robillard,et al.  Evolving Descriptions of Scattered Concerns , 2005 .

[12]  Mark C. Chu-Carroll Separation of Concerns: An Organizational Approach , 2000 .

[13]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[14]  Stéphane Ducasse,et al.  Aspect Mining in Procedural Object Oriented Code , 2008, 2008 16th IEEE International Conference on Program Comprehension.

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

[16]  Flavio De Paoli Multidimensional Separation of Concerns * , 2000 .

[17]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[18]  Gregor Kiczales,et al.  Overcoming the Prevalent Decomposition in Legacy Code , 2001 .

[19]  Ruzanna Chitchyan,et al.  EA-Miner: Towards Automation in Aspect-Oriented Requirements Engineering , 2007, LNCS Trans. Aspect Oriented Softw. Dev..

[20]  António Rito Silva,et al.  Separation and Composition of Overlapping and Interacting Concerns , 1999 .

[21]  M. Bruntink Aspect Mining using Clone Class Metrics Magiel Bruntink , 2022 .

[22]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[23]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[24]  Emily Hill,et al.  Design and Evaluation of an Automated Aspect Mining Tool , 2004, Software Engineering Research and Practice.

[25]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[26]  Gregor Kiczales,et al.  Aspect-oriented programming , 1996, CSUR.

[27]  Santonu Sarkar,et al.  Mining business topics in source code using latent dirichlet allocation , 2008, ISEC '08.

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

[29]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[30]  Christian Becker,et al.  Quality of service and object-oriented middleware - multiple concerns and their separation , 2001, Proceedings 21st International Conference on Distributed Computing Systems Workshops.

[31]  Abraham Silberschatz,et al.  Database System Concepts , 1980 .

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

[33]  Abraham Silberschatz,et al.  Database Systems Concepts , 1997 .

[34]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[35]  Houari A. Sahraoui,et al.  Concerned About Separation , 2006, FASE.

[36]  José María Conejero Manzano Crosscutting, what is and what is not? , 2012 .

[37]  Jarallah AlGhamdi,et al.  Measuring the coupling of procedural programs , 2001, Proceedings ACS/IEEE International Conference on Computer Systems and Applications.

[38]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.