Quantitatively measuring object-oriented couplings

  • Authors:
  • Jeff Offutt;Aynur Abdurazik;Stephen R. Schach

  • Affiliations:
  • Information and Software Engineering Department, George Mason University, Fairfax, USA 22030;Information and Software Engineering Department, George Mason University, Fairfax, USA 22030;Department of Electrical Engineering and Computer Science, Vanderbilt University, Nashville, USA 37235

  • Venue:
  • Software Quality Control
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

One key to several quality factors of software is the way components are connected. Software coupling can be used to estimate a number of quality factors, including maintainability, complexity, and reliability. Object-oriented languages are designed to reduce the number of dependencies among classes, which encourages separation of concerns and should reduce the amount of coupling. At the same time, the object-oriented language features change the way the connections are made, how they must be analyzed, and how they are measured. This paper discusses software couplings based on object-oriented relationships between classes, specifically focusing on types of couplings that are not available until after the implementation is completed, and presents a static analysis tool that measures couplings among classes in Java packages. Data from evaluating the tool on several open-source projects are provided. The coupling measurement is based on source code, which has the advantage of being quantitative and more precise than previous measures, but the disadvantage of not being available before implementation, and thus not useful for some predictive efforts.