skip to main content
research-article

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

Published: 14 March 2011 Publication History

Abstract

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.

References

[1]
Marius Marin, Arie Van Deursen and Leon Moonen "Identifying Aspects using Fan-In Analysis" Proceedings of the 11th Working Conference on Reverse Engineering (WCRE'04) - Volume 00 2004 November 08 - 12, 2004
[2]
W.G. Griswold, Y. Kato, and J.J. Yuan. Aspect browser: Tool support for managing dispersed aspects. In First Workshop on Multi-Dimensional Separation of Concerns in Object-oriented Systems -- OOPSLA 99, 1999.
[3]
Jan Hannemann and Gregor Kiczales, Overcoming the Prevalent Decomposition in Legacy Code, Workshop on Advanced Separation of Concerns (Proceedings), International Conference on Software Engineering (May 2001, Toronto, Canada)
[4]
Kris De Volder and Doug Janzen, "Navigating and querying code without getting lost," in Aspect Oriented Software Design, 2003.
[5]
Martin P. Robillard and Gail C. Murphy, "Concern graphs: Finding and describing concerns using structural program dependencies," in International Conference on Software Engineering, 2002.
[6]
Rogger. S. Pressmann, "Software Engineering: A Practitioner's Approach", Mc Graw Hill, 2005
[7]
Az-Ghamdi, J, Al-Nasser, S., Al-Zubaidi,T., "Measuring the coupling of procedural programs", Computer Systems and Applications", ACS/IEEE International Conference on. 2001Publication Date: 2001On page(s): 297--303 Meeting Date: 06/25/2001 -- 06/29/2001, Location: Beirut, Lebanon
[8]
Rajib Mall, "Software Engineering", TataMc Graw, 2006
[9]
A. Silberschatz, H.F. Korth, S. Sudarshan, "Database System Concepts", 4th Edition, Mc Graw Hill, 2002
[10]
Aspect Oriented Programming, http://en.wikipedia.org
[11]
http://www.aspectc.org/
[12]
Steve McConnel, "Code Complete", Third Indian Reprint: 2006, WP Publishers & Distributors P Limited, pages 255--257
[13]
José María Conejero, Juan Hernández, Elena Jurado, Klaas van den Berg, "Crosscutting, what is and what is not?: A Formal definition based on a Crosscutting Pattern", Technical Report TR28/07. University of Extremadura, 2007
[14]
http://en.wikipedia.org/wiki/Program_Dependency_Graph
[15]
Jonathan Aldrich, "Challenge Problems for Separation of Concerns", In Proceedings of the OOPSLA 2000 Workshop on Advanced Separation of Concerns
[16]
Adrian Colyer, Awais Rashid, Gordon Blair, "On Separation of Program Families", Families, http://www.comp.lancs.ac.uk/ computing/aop/papers/COMP-001-2004.pdf
[17]
Becker, C., Geihs, K., Quality of service and object-oriented middleware -- multiple concerns and their separation. International Conference on Distributed Computing Systems (2001)
[18]
Yannis Smaragdakis, Don Batory, "Implementing Layered Designs with Mixin Layers", 1998 -- In European Conference on Object-Oriented Programming
[19]
Michiaki Tatsubori, "Separation of Distribution Concerns in Distributed Java Programming", In Addendum to the 2001 Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2001 Addendum), Doctoral Symposium, http://www.hlla.is.tsukuba.ac.jp/~mich/pub/200110_oopsla2001ds.pdf
[20]
António Rito Silva and Rua Alves Redol N, "Separation and Composition of Overlapping and Interacting Concerns", In OOPSLA '99 First Workshop on Multi- Dimensional separation of Concerns in Object-Oriented Systems, http://www.esw.inesc.pt/~ars/ps/mscoos-oopsla99.ps
[21]
Noury Bouraqadi, "Concern Oriented Programming using Reflection", 2000 -- In: Workshop on Advanced Separation of Concerns -- OOPSLA
[22]
Mark C. Chu-Carroll, "Separation of Concerns: An Organizational Approach", In OOPSLA 2000 Workshop on Adavanced Separation of Concerns, http://trese.cs.utwente.nl/Workshops/OOPSLA2000/papers/chucarroll.pdf
[23]
WalterL.Hursch and Cristina Videira Lopes, "Separation of Concerns", may be found at http://ksuseer1.ist.psu.edu/viewdoc/summary?doi=10.1.1.29.5223 http://related:reference.kfupm.edu.sa/content/s/e/separation_of_concerns__91681.pdf
[24]
Kim Mens, Benard Paul and Sebastián González, "Using Intentional Source-Code Views to Aid Software Maintenance", In Proc. of the International Conference on Software Maintenance, http://ftp.info.ucl.ac.be/pub/publi/2003/ICSM2003.pdf
[25]
Peter Van Roy, "Logic programming in Oz with Mozart." Invited tutorial, International Conference on Logic Programming (ICLP 99), Las Cruces, New Mexico, November-December 1999. MIT Press, 1999.
[26]
Stephan Herrmann, Mira Mezini, "PIROL: a case study for multidimensional separation of concerns in software engineering environments", Proceedings of the 15th ACM SIGPLAN conference on Object-oriented.
[27]
Susan Horowitz, Thomas Reps, and David Binkley, "Interprocedural Slicing Using Dependence Graphs", Technical Report SOCS-TR-2005.1 McGill University, Canada, 12 January 2005
[28]
D. L. Parnas, "On the criteria to be used in decomposing systems into modules", Communications of the ACM, v.15 n.12, p.1053--1058, Dec. 1972
[29]
Martin P. Robillard and Gail C. Murphy. "Evolving Descriptions of Scattered Concerns" Technical Report SOCS-TR-2005.1, McGill University, Canada, January 2005
[30]
Hafedh Mili, Houari Sahraoui, Hakim Lounis, Hamid Mcheick and Amel Elkharraz., "Concerned About Separation". In Lecture Notes in Computer Science, Proceedings of the 9th International Conference on Fundamental Approaches to Software Engineering FASE 2006, Vienna, Austria, March 27-28, 2006, pp. 247--261.
[31]
Flavio De Paoli, "Multidimensional Separation of Concerns", In the Proceedings of Workshop on Multidimensional Separation of Concerns in Software Engineering, ICSE-22, IEEE, Limerick (Ireland) June 5-9, 2000
[32]
He, L., Bai, H., Zhang, J., Hu, C.: Amuca algorithm for aspect mining. In: Proceedings of SEKE 2005. (2005)
[33]
Marin, M., van Deursen, A., Moonen, L.: Identifying aspects using fan-in analysis. In: Working Conference on Reverse Engineering (WCRE'04), IEEE Computer Society (2004) 132--141
[34]
Shepherd, D., Gibson, E., Pollock, L.: Design and evaluation of an automated aspect mining tool. In: International Conference on Software Engineering Research and Practice. (2004)
[35]
Bruntink, M., Deursen, A.v., Engelen, R.v., Tourwé, T.: An evaluation of clone detection techniques for identifying crosscutting concerns. In: International Conference on Software Maintenance (ICSM 2004), IEEE Computer Society Press (2004)
[36]
Bruntink, M., van Deursen, A., van Engelen, R., Tourwè, T.: On the use of clone detection for identifying crosscutting concern code. IEEE Transactions on Software Engineering 31(10) (2005) 804--818
[37]
Baker, B.: On finding duplication and near-duplication in large software systems. In: Working Conference on Reverse Engineering (WCRE 1995), IEEE Computer Society Press (1995) 86--95
[38]
Baxter, I., Yahin, A., Moura, L., Sant' Anna, M., Bier, L.: Clone detection using abstract syntax trees. In: International Conference on Software Maintenance (ICSM 1998), IEEE Computer Society Press (1998)
[39]
Bruntink, M.: Aspect mining using clone class metrics.
[40]
Bruntink, M.: Aspect mining using clone class metrics. In: 1st Workshop on Aspect Reverse Engineering. (2004)
[41]
http://en.wikipedia.org/wiki/Crosscutting_Concerns
[42]
Girish Maskeri, Santonu Sarkar, Kenneth Heafield. "Mining Business Topics in Source Code using Latent Dirichlet Allocation", ISEC-2008, pages 113--120
[43]
José María Conejero, Juan Hernández, Elena Jurado, Klaas van den Berg, "Crosscutting, what is and what is not?: A Formal definition based on a Crosscutting Pattern", Technical Report TR28/07. University of Extremadura, 2007
[44]
Shepherd, D., and Pollock, L. Ophir: A Framework for Automatic Mining and Refactoring of Aspects. Technical Report No. 2004-03. Dept. of Computer & Information Sciences, University of Delaware, Newark, DE, 2003.
[45]
A. Sampaio, A. Rashid, R. Chitchyan, and P. Rayson (2007) EA-Miner: Towards Automation in Aspect-Oriented Requirements Engineering. Transactions on Aspect-Oriented Software Development: Special Issue on Early Aspects (Accepted to Appear). Editor(s): J. Araujo, E. Baniasaad, Springer.
[46]
Jens Krinke and Silvia Breu, "Control-Flow-Graph-Based Aspect Mining" 1st Workshop on Aspect Reverse Engineering, November 9th, 2004
[47]
S. Breu and J. Krinke. Aspect mining using event traces. In Proc. International Conference on Automated Software Engineering, pages 310--315, 2004.
[48]
J. Krinke, "Mining Control Flow Graphs for Crosscutting Concerns", Pages: 334--342, Year of Publication: 2006, ISBN ~ ISSN:1095-1350, 0-7695-2719-1
[49]
Marius Marin, Arie Van Deursen and Leon Moonen "Identifying Aspects using Fan-In Analysis" Proceedings of the 11th Working Conference on Reverse Engineering (WCRE'04) - Volume 00 2004 November 08-12, 2004
[50]
W.G. Griswold, Y. Kato, and J.J. Yuan. Aspect browser: Tool support for managing dispersed aspects. In First Workshop on Multi-Dimensional Separation of Concerns in Object-oriented Systems-OOPSLA 99, 1999.
[51]
Overcoming the Prevalent Decomposition in Legacy Code, Jan Hannemann and Gregor Kiczales, Workshop on Advanced Separation of Concerns (Proceedings), International Conference on Software Engineering (May 2001, Toronto, Canada)
[52]
Kris De Volder and Doug Janzen, "Navigating and querying code without getting lost," in Aspect Oriented Software Design, 2003.
[53]
Martin P. Robillard and Gail C. Murphy, "Concern graphs: Finding and describing concerns using structural program dependencies," in International Conference on Software Engineering, 2002.
[54]
Shepherd, D., and Pollock, L. Ophir: A Framework for Automatic Mining and Refactoring of Aspects. Technical Report No. 2004-03. Dept. of Computer & Information Sciences, University of Delaware, Newark, DE, 2003.
[55]
IEEE Recommended Practice for Software Requirements Specifications; IEEE Std. 830-1998 (Revision of IEEE Std 830-1993)
[56]
M. U. Bhatti, S. Ducasse, A. Rashid, "Aspect Mining in Procedural Object-Oriented Code", The 16th International Conference on Program Comprehension, 2008

Cited By

View all
  • (2009)Migration from Procedural Programming to Aspect Oriented ParadigmProceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2009.41(712-715)Online publication date: 16-Nov-2009

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 36, Issue 2
March 2011
116 pages
ISSN:0163-5948
DOI:10.1145/1943371
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 March 2011
Published in SIGSOFT Volume 36, Issue 2

Check for updates

Author Tags

  1. aspect mining
  2. relational algebra
  3. separation-of-concerns
  4. user-defined tokens

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2009)Migration from Procedural Programming to Aspect Oriented ParadigmProceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2009.41(712-715)Online publication date: 16-Nov-2009

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media