Software Coupling and Cohesion Model for Measuring the Quality of Software Components
Source abstract
Abstract
Measuring software quality requires software engineers to understand the system’s quality attributes and their measurements. The quality attribute is a qualitative property; however, the quantitative feature is needed for software measurement, which is not considered during the development of most software systems. Many research studies have investigated different approaches for measuring software quality, but with no practical approaches to quantify and measure quality attributes. This paper proposes a software quality measurement model, based on a software interconnection model, to measure the quality of software components and the overall quality of the software system. Unlike most of the existing approaches, the proposed approach can be applied at the early stages of software development, to different architectural design models, and at different levels of system decomposition. This article introduces a software measurement model that uses a heuristic normalization of the software’s internal quality attributes, i.e., coupling and cohesion, for software quality measurement. In this model, the quality of a software component is measured based on its internal strength and the coupling it exhibits with other component(s). The proposed model has been experimented with nine software engineering teams that have agreed to participate in the experiment during the development of their different software systems. The experiments have shown that coupling reduces the internal strength of the coupled components by the amount of coupling they exhibit, which degrades their quality and the overall quality of the software system. The introduced model can help in understanding the quality of software design. In addition, it identifies the locations in software design that exhibit unnecessary couplings that degrade the quality of the software systems, which can be eliminated.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Software Engineering Research · Software Reliability and Analysis Research · Software System Performance and Reliability
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (30)
Show source-provided references
1. Designing service-based applications in the presence of non-functional properties: A mapping study10.1016/j.infsof.2015.09.004 ↗
2. Structured design10.1147/sj.132.0115 ↗
3. Reusability affecting factors and software metrics for reusability: A systematic literature review
4. A fuzzy approach for estimating quality of aspect oriented systems10.1007/s10766-018-0618-2 ↗
5. Empirical evaluation of coupling metrics in software fault prediction
6. Investigating relationships between functional coupling and the energy efficiency of embedded software10.1007/s11219-016-9346-2 ↗
7. Restructuring object-oriented software systems using various aspects of class information10.1007/s13369-020-04785-z ↗
8. Using indirect coupling metrics to predict package maintainability and testability10.1016/j.jss.2016.02.024 ↗
9. A metrics suite for object oriented design10.1109/32.295895 ↗
10. Class cohesion metrics for software engineering: A critical review
11. Assessing impact of class change by mining class associations
12. Software reliability analysis considering correlated component failures with coupling measurement framework10.1109/JSEE.2015.00121 ↗
13. Toward measuring software coupling via weighted dynamic metrics
14. Web service QoS prediction using improved software source code metrics10.1371/journal.pone.0226867 ↗
15. A generic methodology for early identification of non-maintainable source code components through analysis of software releases10.1016/j.infsof.2019.106218 ↗
16. A framework for assessing reusability using package cohesion measure in aspect oriented systems10.1007/s10766-017-0501-6 ↗
17. A new metric for class cohesion for object oriented software10.34028/iajit/17/3/15 ↗
18. Impact of stack overflow code snippets on software cohesion: A preliminary study
19. Refactoring effect on internal quality attributes: What haven’t they told you yet?10.1016/j.infsof.2020.106347 ↗
20. Identifying refactoring opportunities for large packages by analyzing maintainability characteristics in Java OSS10.1016/j.jss.2023.111717 ↗
21. On the influential interactive factors on degrees of design decay: A multi-project study
22. Software components’ coupling detection for software reusability10.14569/IJACSA.2018.091039 ↗
23. Defining and validating a client-based cohesion metric for object-oriented classes
24. An empirical framework to investigate the impact of bug fixing on internal quality attributes10.1007/s13369-020-05095-0 ↗
25. Application of multi-objective hyper-heuristics to solve the multi-objective software module clustering problem10.3390/app12115649 ↗
26. Information-theoretic remodularization of object-oriented software systems10.1007/s10796-019-09897-y ↗
27. A comprehensive MCDM-based approach for object-oriented metrics selection problems10.3390/app13063411 ↗
28. Improving cohesion of a software system by performing usage pattern based clustering10.1016/j.procs.2017.12.095 ↗
29. Module Coupling
30. Software interconnection models