Decoupling Level: A New Metric for Architectural Maintenance Complexity

Author(s): R. Mo, Y. Cai, R. Kazman, L Xiao, Q. Feng
Venue: International Conference on Software Engineering
Date: 2016

Type of Experiement: Case Study
Sample Size: 21
Class/Experience Level: Professional
Participant Selection: Random selection for 108 open source, voluntary contributions of 21 projects from 6 collaborators
Data Collection Method: Code Metric


This paper proposes the creation of a new software metric: Decoupling level. Decoupling level is derived from option theory (Baldwin and Clark) and attempts to measure how well a software system can be decoupled or broken down into small, independent pieces. The main goal of creating this metric is to measure the stability and quality of a systems architecture to provide meaningful feedback to software engineers and managers. This study examines 108 random open source projects and 21 industry projects (from 6 different contributors) and calculates the Decoupling Level metric for each one using a tool created by the authors of the paper.

The results of the study seem to indicate Decoupling Level could be used as a potential metric for measuring the modularity and overall design quality of a system. In addition, the study found Decoupling Level to be a good metric for catching sudden architecture decay or refactoring as it tends to remain stable over the course of a project with minimal core architecture changes. However, this new metric may not be applicable to all projects as the projects being studied were all written in C-family languages or Java and part of the metric involves estimating the maintenance effort of a project (which can be difficult to determine). Overall Decoupling Level is a fairly good metric for measuring the maintainability and modularity of a software system and these traits can be extrapolated to predict the overall quality of the system architecture.