An empirical assessment of the crosscutting concern problem

  • Authors:
  • Alfred Aho;Marc Eaddy

  • Affiliations:
  • Columbia University;Columbia University

  • Venue:
  • An empirical assessment of the crosscutting concern problem
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modularity is essential for creating evolvable software. Traditional programming languages limit the level of modularity that can be achieved because they provide only one way to structure the program, e.g., as a hierarchy of types. Regardless of how a program is structured, some features, requirements, or other types of concerns of the program cannot be modularized; that is, they cut across the program's structure. These so-called crosscutting concerns result in programs that are difficult to understand and reason about, to divide into manageable pieces, to reuse, and to evolve. In this dissertation, we assess the impact of crosscutting concerns on software quality. Little is known about the impact because determining the concerns of a program and how they are implemented is difficult, existing metrics for quantifying crosscutting are inadequate, and empirical evidence is lacking. To locate the source code that implements a concern, i.e., concern location, we present a new technique called prune dependency analysis, which can be combined with existing concern location techniques to dramatically improve accuracy. We developed CERBERUS, a potent hybrid technique for locating concerns that combines information retrieval, execution tracing, and prune dependency analysis . Our experiments show that prune dependency analysis can boost the recall of information-retrieval-based concern location by 155% and execution tracing by 104%. In addition, we show that our combined technique outperformed other techniques when run individually or in pairs. After using our techniques to locate all the code that implements a concern, our novel concern metrics quantify the amount of crosscutting that exists. We assessed the crosscutting concern problem by performing rigorous empirical studies of five medium-sized programs. We found a moderate to strong statistically significant correlation between the amount of crosscutting and the number of defects. That is, the more a concern crosscuts the program, the more likely it is to have defects. We also found that the crosscutting concern problem was prevalent: 86% of the concerns we analyzed were crosscutting, concerns were implemented by 6 classes on average, and classes implement 10 concerns on average.