Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2884781.2884825acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article
Public Access

Decoupling level: a new metric for architectural maintenance complexity

Published: 14 May 2016 Publication History

Abstract

Despite decades of research on software metrics, we still cannot reliably measure if one design is more maintainable than another. Software managers and architects need to understand whether their software architecture is "good enough", whether it is decaying over time and, if so, by how much. In this paper, we contribute a new architecture maintainability metric---Decoupling Level (DL)---derived from Baldwin and Clark's option theory. Instead of measuring how coupled an architecture is, we measure how well the software can be decoupled into small and independently replaceable modules. We measured the DL for 108 open source projects and 21 industrial projects, each of which has multiple releases. Our main result shows that the larger the DL, the better the architecture. By "better" we mean: the more likely bugs and changes can be localized and separated, and the more likely that developers can make changes independently. The DL metric also opens the possibility of quantifying canonical principles of single responsibility and separation of concerns, aiding cross-project comparison and architecture decay monitoring.

References

[1]
C. Y. Baldwin and K. B. Clark. Design Rules, Vol. 1: The Power of Modularity. MIT Press, 2000.
[2]
D. Bijlsma, M. A. Ferreira, B. Luijten, and J. Visser. Faster issue resolution with higher technical quality of software. j-sqj, 20(2):265--285, June 2012.
[3]
E. Bouwers, A. van Deursen, and J. Visser. Dependency profiles for software architecture evaluations. In Proc. 27thIEEE International Conference on Software Maintenance, pages 540--543, 2011.
[4]
E. Bouwers, A. van Deursen, and J. Visser. Quantifying the encapsulation of implemented software architectures. In IEEE International Conference on Software Maintenance and Evolution, pages 211--220, 2014.
[5]
Y. Cai and K. J. Sullivan. Modularity analysis of logical design models. In Proc. 21st IEEE/ACM International Conference on Automated Software Engineering, pages 91--102, Sept. 2006.
[6]
Y. Cai, H. Wong, S. Wong, and L. Wang. Leveraging design rules to improve software architecture recovery. In Proc. 9th International ACM Sigsoft Conference on the Quality of Software Architectures, pages 133--142, June 2013.
[7]
M. Cataldo, A. Mockus, J. A. Roberts, and J. D. Herbsleb. Software dependencies, work dependencies, and their impact on failures. IEEE Transactions on Software Engineering, 35(6):864--878, July 2009.
[8]
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476--493, June 1994.
[9]
F. B. e Abreu. The mood metrics set. In Proc. ECOOP'95 Workshop on Metrics, 1995.
[10]
H. Gall, K. Hajek, and M. Jazayeri. Detection of logical coupling based on product release history. In Proc. 14th IEEE International Conference on Software Maintenance, pages 190--197, Nov. 1998.
[11]
E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
[12]
F. Gobet and G. Clarkson. Chunks in expert memory: evidence for the magical number four. .. or is it two? Memory, 12(6):732--47, Nov. 2004.
[13]
T. L. Graves, A. F. Karr, J. S. Marron, and H. P. Siy. Predicting fault incidence using software change history. IEEE Transactions on Software Engineering, 26(7):653--661, 2000.
[14]
M. H. Halstead. Elements of Software Science (Operating and Programming Systems Series). Elsevier Science Inc., 1977.
[15]
R. Harrison, S. J. Counsell, and R. V. Nithi. An investigation into the applicability and validity of object-oriented design metrics. Empirical Software Engineering, 3(3):255--273, Sept. 1998.
[16]
I. Heitlager, T. Kuipers, and J. Visser. A practical model for measuring maintainability. In Proc. 6th International Conference on Quality of Information and Communications Technology, pages 30--39, 2007.
[17]
P. Jaccard. The distribution of the flora in the alpine zone. New Phytologist, 11(2):37--50, Feb. 1912.
[18]
R. Kazman, Y. Cai, R. Mo, Q. Feng, L. Xiao, S. Haziyev, V. Fedak, and A. Shapochka. A case study in locating the architectural roots of technical debt. In Proc. 37th International Conference on Software Engineering, May 2015.
[19]
W. Li and S. Henry. Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23(2):111--122, Nov. 1993.
[20]
Y. Lin, X. Peng, Y. Cai, D. Dig, D. Zheng, and W. Zhao. Refactoring navigator: Interactive and guided refactoring with search-based recommendation. In Submission, 2015.
[21]
M. Lorenz and J. Kidd. Object-Oriented Software Metrics. Prentice Hall, 1994.
[22]
A. MacCormack, J. Rusnak, and C. Y. Baldwin. Exploring the structure of complex software designs: An empirical study of open source and proprietary code. Management Science, 52(7):1015--1030, July 2006.
[23]
T. J. McCabe. A complexity measure. IEEE Transactions on Software Engineering, 2(4):308--320, Dec. 1976.
[24]
S. C. Misra. Modeling design/coding factors that drive maintainability of software systems. Software Quality Control, 13(3):297--320, Sept. 2005.
[25]
R. Mo, Y. Cai, R. Kazman, and L. Xiao. Hotspot patterns: The formal definition and automatic detection of architecture smells. In Proc. 15thWorking IEEE/IFIP International Conference on Software Architecture, May 2015.
[26]
N. Nagappan, T. Ball, and A. Zeller. Mining metrics to predict component failures. In Proc. 28th International Conference on Software Engineering, pages 452--461, 2006.
[27]
P. Oman and J. Hagemeister. Metrics for assessing a software system's maintainability. In IEEE International Conference on Software Maintenance, pages 337--344, 1992.
[28]
P. Oman and J. Hagemeister. Construction and testing of polynomials predicting software maintainability. j-ss, 24(3):251--266, Mar. 1994.
[29]
T. J. Ostrand, E. J. Weyuker, and R. M. Bell. Predicting the location and number of faults in large software systems. IEEE Transactions on Software Engineering, 31(4):340--355, 2005.
[30]
R. Schwanke, L. Xiao, and Y. Cai. Measuring architecture quality by structure plus history analysis. In Proc. 35rd International Conference on Software Engineering, pages 891--900, May 2013.
[31]
K. Sethi, Y. Cai, S. Wong, A. Garcia, and C. Sant'Anna. From retrospect to prospect: Assessing modularity and stability from software architecture. In Proc. 8thWorking IEEE/IFIP International Conference on Software Architecture, Sept. 2009.
[32]
K. J. Sullivan, Y. Cai, B. Hallen, and W. G. Griswold. The structure and value of modularity in design. ACM SIGSOFT Software Engineering Notes, 26(5):99--108, Sept. 2001.
[33]
K. J. Sullivan, W. G. Griswold, Y. Cai, and B. Hallen. The structure and value of modularity in software design. In Proc. Joint 8th European Conference on Software Engineering and 9th ACM SIGSOFT International Symposium on the Foundations of Software Engineering, pages 99--108, Sept. 2001.
[34]
M. Tim, B. Andrew, M. Andrian, Z. Thomas, and C. David. Local vs. global models for effort estimation and defect prediction. In Proc. 26thIEEE/ACM International Conference on Automated Software Engineering, pages 343--351, 2011.
[35]
M. P. Ware, F. G. Wilkie, and M. Shapcott. The application of product measures in directing software maintenance activity. Journal of Software Maintenance, 19(2):133--154, Mar. 2007.
[36]
S. Wong, Y. Cai, G. Valetto, G. Simeonov, and K. Sethi. Design rule hierarchies and parallelism in software development tasks. In Proc. 24th IEEE/ACM International Conference on Automated Software Engineering, pages 197--208, Nov. 2009.
[37]
L. Xiao, Y. Cai, and R. Kazman. Design rule spaces: A new form of architecture insight. In Proc. 36rd International Conference on Software Engineering, 2014.
[38]
L. Xiao, Y. Cai, and R. Kazman. Titan: A toolset that connects software architecture with quality analysis. In 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering, 2014.
[39]
L. Yu, A. Mishra, and S. Ramaswamy. Component co-evolution and component dependency: speculations and verifications. IET Software, 4(4):252--267, Aug. 2010.

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2024)ERD-CQC : Enhanced Rule and Dependency Code Quality Check for JavaProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3674820(377-386)Online publication date: 24-Jul-2024
  • (2024)A Metrics Suite for Measuring Indirect Coupling ComplexityProgramming and Computer Software10.1134/S036176882308015749:8(735-761)Online publication date: 24-Jan-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '16: Proceedings of the 38th International Conference on Software Engineering
May 2016
1235 pages
ISBN:9781450339001
DOI:10.1145/2884781
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 May 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. software architecture
  2. software metrics
  3. software quality

Qualifiers

  • Research-article

Funding Sources

Conference

ICSE '16
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)246
  • Downloads (Last 6 weeks)25
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)M-score: An Empirically Derived Software Modularity MetricProceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement10.1145/3674805.3686697(382-392)Online publication date: 24-Oct-2024
  • (2024)ERD-CQC : Enhanced Rule and Dependency Code Quality Check for JavaProceedings of the 15th Asia-Pacific Symposium on Internetware10.1145/3671016.3674820(377-386)Online publication date: 24-Jul-2024
  • (2024)A Metrics Suite for Measuring Indirect Coupling ComplexityProgramming and Computer Software10.1134/S036176882308015749:8(735-761)Online publication date: 24-Jan-2024
  • (2024)Registries in Machine Learning-Based Drug Discovery: A Shortcut to Code ReuseAI in Drug Discovery10.1007/978-3-031-72381-0_9(98-115)Online publication date: 20-Sep-2024
  • (2023)Identifying Code Changes for Architecture Decay via a Metric Forest Structure2023 ACM/IEEE International Conference on Technical Debt (TechDebt)10.1109/TechDebt59074.2023.00014(62-71)Online publication date: May-2023
  • (2023)Evaluating the Impact of Possible Dependencies on Architecture-Level MaintainabilityIEEE Transactions on Software Engineering10.1109/TSE.2022.317128849:3(1064-1085)Online publication date: 1-Mar-2023
  • (2023)Dependency Facade: The Coupling and Conflicts between Android Framework and Its CustomizationProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00144(1674-1686)Online publication date: 14-May-2023
  • (2023)Quality Metrics in Software Architecture2023 IEEE 20th International Conference on Software Architecture (ICSA)10.1109/ICSA56044.2023.00014(58-69)Online publication date: Mar-2023
  • (2023)Identifying Anti-Patterns in Distributed Systems With Heterogeneous Dependencies2023 IEEE 20th International Conference on Software Architecture Companion (ICSA-C)10.1109/ICSA-C57050.2023.00035(116-120)Online publication date: Mar-2023
  • (2023)Software design analysis and technical debt management based on design rule theoryInformation and Software Technology10.1016/j.infsof.2023.107322164(107322)Online publication date: Dec-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media