To ensure quality of code in large software systems, refactoring operations are the norm. With this goal in mind, it is helpful to direct preventive maintenance of large object-oriented legacy systems towards the more advanced aspect-oriented paradigm. However, manually identifying crosscutting concerns, candidate to be rendered as aspects, in large legacy systems can be an overwhelming task. We propose an approach and provide a tool to identify crosscutting concerns embedded in an object-oriented system. Our approach analyses the implementation of classes and their relationships and looks for specific user-defined schemata. We discuss how to build schemata and provide some general ones, devised in accordance with current aspect-oriented programming practices. Compared to existing approaches, our solution is flexible and achieves higher precision in detecting crosscutting concerns. Moreover, it provides the developer with an accurate identification of snippets of code which can be removed from classes and embedded into aspects. The proposed solution has been validated by applying it to a case study, i.e., a large extant software system, suitably selected to assess the quality attained by the aspect-oriented version produced with the assistance of our tool, in comparison with a design performed by expert human developers. © 2017 Elsevier B.V.

Specifying and Identifying Widely Used Crosscutting Concerns

Mongiovì M;PAPPALARDO, Giuseppe;TRAMONTANA, EMILIANO ALESSIO
2017-01-01

Abstract

To ensure quality of code in large software systems, refactoring operations are the norm. With this goal in mind, it is helpful to direct preventive maintenance of large object-oriented legacy systems towards the more advanced aspect-oriented paradigm. However, manually identifying crosscutting concerns, candidate to be rendered as aspects, in large legacy systems can be an overwhelming task. We propose an approach and provide a tool to identify crosscutting concerns embedded in an object-oriented system. Our approach analyses the implementation of classes and their relationships and looks for specific user-defined schemata. We discuss how to build schemata and provide some general ones, devised in accordance with current aspect-oriented programming practices. Compared to existing approaches, our solution is flexible and achieves higher precision in detecting crosscutting concerns. Moreover, it provides the developer with an accurate identification of snippets of code which can be removed from classes and embedded into aspects. The proposed solution has been validated by applying it to a case study, i.e., a large extant software system, suitably selected to assess the quality attained by the aspect-oriented version produced with the assistance of our tool, in comparison with a design performed by expert human developers. © 2017 Elsevier B.V.
2017
aspect mining; design patterns; refactoring
File in questo prodotto:
File Dimensione Formato  
mongiovi.pdf

solo gestori archivio

Descrizione: Articolo completo in versione pre-print
Tipologia: Documento in Pre-print
Dimensione 1.27 MB
Formato Adobe PDF
1.27 MB Adobe PDF   Visualizza/Apri
Specifying and identifying widely used crosscutting concerns.pdf

solo gestori archivio

Tipologia: Versione Editoriale (PDF)
Dimensione 1.59 MB
Formato Adobe PDF
1.59 MB Adobe PDF   Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.11769/50841
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 4
  • ???jsp.display-item.citation.isi??? 0
social impact