Return to search

Improving software modularity through crosscutting concern extraction

Aspect-oriented programming (AOP) is a programming paradigm for improving the modularity of software systems by localizing crosscutting concerns in the system into aspects. Aspect-oriented refactorings extend AOP to legacy systems, by identifying and encapsulating existing crosscutting concerns through aspect-mining (discovery of crosscutting concerns) and aspect refactoring (semantic-preserving code transformation to extract the crosscutting code into aspects). However, not all the data obtained from aspectmining corresponds to crosscutting concerns, and existing aspect languages may not be capable of refactoring all crosscutting concerns into aspects. In this thesis, we describe an approach for extracting crosscutting concerns in a system to a form that is suitable for refactoring. This process includes identifying the presence of crosscutting code clusters in aspect-mining results; assessing if the concerns should be extracted using various metrics; and performing code transformation to extract the crosscutting clusters into standalone methods with a common method signature and parameters. The work also describes the ConcernExtractor, a software tool that implements the concern cluster extraction technique. We apply ConcernExtractor to assess and extract the crosscutting concerns in existing systems to evaluate the prevalence of crosscutting concerns that are refactorable, and the applicability of our approach for generating aspect refactoring opportunities. / La programmation orient´ee-aspect (POA) est un paradigme ayant pour but d’am´eliorerla modularit´e du logiciel en localisant les pr´eoccupations ´eparpill´ees dans des aspects.La refactorisation orient´ee-aspect ´etend les avantages de la POA par l’identification etl’encapsulation des pr´eoccupations existantes `a l’aide du forage d’aspects (aspect mining),et par leur refactorisation en aspects `a l’aide de transformations de code. Cependant,certains r´esultats du forage d’aspects ne correspondent pas `a des pr´eoccupations´eparpill´ees, et les languages aspects existants ne supportent pas la refactorisation de tousles pr´eoccupations en aspects. Cette th`ese d´ecrit une approche pour extraire les pr´eoccupations´eparpill´ees dans une forme qui se prˆete `a la refactorisation. Le processus incluel’identi-fication des pr´eoccupations refactorisables parmis les r´esultats de forage d’aspects,l’´evaluation de la valeur de l’extraction potentielle, et l’extraction proprement dite `a l’aidede transformations de code. La th`ese d´ecrit aussi ConcernExtractor, l’outil que nous avonsr´ealis´e pour supporter cette approche. Nous avons appliqu´e ConcernExtractor pour ´evaluerl’approche sur plusieurs syst`emes existants.

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.40794
Date January 2009
CreatorsYuen, Isaac
ContributorsMartin Robillard (Internal/Supervisor)
PublisherMcGill University
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
LanguageEnglish
Detected LanguageEnglish
TypeElectronic Thesis or Dissertation
Formatapplication/pdf
CoverageMaster of Science (School of Computer Science)
RightsAll items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.
RelationElectronically-submitted theses.

Page generated in 0.0019 seconds