Abstract
Context: Software stability is an important object-oriented design characteristic that contributes to the maintainability quality attribute. Software stability quantifies a given systems sensitivity to change between different versions. Stable software tends to reduce the maintenance effort. Assessing software stability during the object-oriented design phase is one of the measures to obtain maintainable software. To determine software stability, there are several metrics at the architecture, system and class levels, but few studies have investigated stability at the package level. Objective: In this paper, we propose a new package stability metrics (PSM) based on the notion of change between package contents, intra-package connections and inter-package connections. Method: We validate the PSM theoretically and empirically. The theoretical validation is based on a study of the mathematical properties of the metrics. The empirical validation is carried out using five open source software programs and we also present a comparison with comparable existing stability metrics packages. For the empirical validation, we perform correlation analysis, principal component analysis and prediction analysis. Results: Correlation analysis shows that our proposed metrics provides a better indication of package stability than the existing stability metrics and they are negatively correlated with the maintenance effort. Principal component analysis shows that the proposed metrics captures new dimensions of package stability and helps to increase the maintenance prediction accuracy. Conclusion: We found there was a negative correlation between our metric and maintenance effort. We also found a positive correlation between the existing package stability metrics which are based on changes in lines of code and class names.
Original language | English |
---|---|
Article number | 106172 |
Journal | Information and Software Technology |
Volume | 116 |
DOIs | |
State | Published - Dec 2019 |
Bibliographical note
Publisher Copyright:© 2019
Keywords
- Object oriented package stability
- Software maintenance
- Software metrics
- Software stability
ASJC Scopus subject areas
- Software
- Information Systems
- Computer Science Applications