Coupling-based analysis of object-oriented software

  • Authors:
  • Jeff Offutt;Aynur Abdurazik

  • Affiliations:
  • George Mason University;George Mason University

  • Venue:
  • Coupling-based analysis of object-oriented software
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Testing and maintenance of Object-Oriented (OO) software is expensive and difficult. Previous research has shown that complex relationships among OO software components are among the key factors that make testing and maintenance costly and challenging. Thus, measuring the relationships has become a prerequisite to develop efficient techniques for testing and maintenance. Coupling analysis is a powerful technique for assessing relationships among software components. In coupling analysis, two components are coupled if any kind of connection or relationship exists between them. The coupling nature is categorized into different levels or types. Coupling analysis tries, by defining a theoretical model, to capture all the attributes of the relationships among components of a given program. It also quantifies the coupling levels by defining a set of measures. The theoretical model and the measurement set serve as a foundation for exercising complexity analysis on various problems that are related to the interaction among components. This research presents a theoretical model of OO coupling, quantitative analysis techniques to measure coupling, engineering techniques to apply coupling to three specific and well-known testing and maintenance problems, and empirical evaluations based on a tool that was developed as part of this research. The coupling measures are validated theoretically and empirically. Theoretically, coupling measures are validated using a published unified coupling framework. Empirically, the measures are applied to three well known problems and the results are compared with published work in these areas. The result is a collection of coupling measures that quantify basic connections for different high level relationships. These measures are useful in finding solutions to the three specific problems posed in this research. For two of the three problems, Class Integration and Test Order (CITO) and Design Pattern Detection (DPD), this research developed a simpler technique than previous research has arrived upon. For the third problem, Change Impact Analysis (CIA), the resulting impact set from using the proposed coupling measures was more complete than previous research has computed. The importance of this work is in defining couplings in a more comprehensive way. Previous research only considered inheritance relationships. Considering all kinds of relationships is important, because it allows reasoning at different levels of abstractions with coupling measures.