Structural stability-based metrics of object-oriented design
Mahmoud O. Elish, David C. Rine · 2005
Software often undergoes necessary changes that lead to the distribution of software releases. Each software release will in general include changes of related end-user requirements, developer design and code level entities. In one scenario, end-user requirements only undergo extensions, and it is important that the design solution from earlier releases also undergoes only changes involving extensions so as to preserve the stability of the software. Preservation of such early design solutions may lead to return on investments in design for the earlier releases and less rework and maintenance on earlier design. This scenario is one of several assumed as context for the research reported. In general, each software design has three aspects: structural, behavioral, and creational, each of which may change from one software release to the next. However, this dissertation focuses on the stability of the structural aspect of object-oriented design, which refers to the extent to which the structure of the design is preserved throughout the incremental evolution of the software from one release to the next. The dissertation research contribution is a suite of structural stability-based metrics for object-oriented design. This metrics suite consists of size-based metrics and time-based metrics. Size-based metrics measure the size of the invariant and changed parts of design structure between any two successive software releases, whereas time-based metrics measure the time between these two successive releases. This metrics suite was empirically evaluated by exploring the relationships between these metrics and two important external quality attributes (outcomes) of interest to software developers that cannot be directly measured in advance: post-release defect density and release effort. The research results showed that it is possible to construct statistically significant regression models from subsets of the stability metrics as early indicators of post-release defect density and release effort. These results demonstrate the practical significance and usefulness of the metrics suite. In addition, this dissertation research investigated potential product-related and process-related indicators of object-oriented design structural stability. Product-related indicators are measures of design structural characteristics that are collected from the design at release i and then used to estimate design structural stability from release i to release i + 1 (following release). Process-related indicators are measures that are collected from maintenance activities performed on release i and then used to estimate design structural stability from release i to release i + 1. The research results showed that it is possible to construct statistically significant regression models from subsets of the investigated indicators to early estimate the value of each one of the stability metrics.