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.
|School Location:||United States -- New York|
|Source:||DAI-B 69/03, Dissertation Abstracts International|
|Keywords:||Concern, Concern location, Cross-cutting concerns, Empirical software engineering, Feature location, Requirements traceability, Software quality|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be