Towards Assessing the Impact of Crosscutting Concerns on Modularity

The goal of aspect-oriented programming is to modularize crosscutting concerns. To fully appreciate this goal, we must first understand how crosscutting concerns affect modularity and software quality, and to what extent. This is hard to quantify, partly because terms such as “crosscutting”, “concern”, and “modularity” are ill-defined [11] [1], and partly because the scope of the crosscutting concern problem is unknown. We propose a research agenda whose first step is to formalize the crosscutting concern problem. We present a set theoretic concern model (§2) that formalizes terminology and provides a foundation for a suite of concern metrics (§3) for quantifying the distribution and separation of concerns. Second, we must determine the extent of the problem. We advocate a concern assignment methodology (§4) whereby all the concerns of a program (and their associated code fragments) are rigorously identified. The third step is to argue convincingly that crosscutting concerns negatively impact modularity and software quality. For this, we propose to correlate our concern metrics with traditional modularity metrics and external quality indicators such as fault proneness [10] (§5).

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

[2]  M. Ceccato,et al.  Applying and combining three different aspect Mining Techniques , 2006, Software Quality Journal.

[3]  Andreas Zeller,et al.  Mining metrics to predict component failures , 2006, ICSE.

[4]  Hans-Arno Jacobsen,et al.  Quantifying aspects in middleware platforms , 2003, AOSD '03.

[5]  Juan Hernández,et al.  Analysis of crosscutting across software development phases based on traceability , 2006, EA '06.

[6]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[7]  Siobhán Clarke,et al.  An evaluation of aspect-oriented programming for Java-based real-time systems development , 2004, Seventh IEEE International Symposium onObject-Oriented Real-Time Distributed Computing, 2004. Proceedings..

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

[9]  Swapna S. Gokhale,et al.  Quantifying the closeness between program components and features , 2000, J. Syst. Softw..

[10]  Ted J. Biggerstaff,et al.  The concept assignment problem in program understanding , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[11]  W. Griswold,et al.  Sorting out Concerns ∗ , 1999 .

[12]  Carlos José Pereira de Lucena,et al.  Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method , 2005 .

[13]  Gail C. Murphy,et al.  The Structure of Features in Java Code: An Exploratory Investigation , 1999 .