Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

A Unified Framework for Coupling Measurement in Object-Oriented Systems

Published: 01 January 1999 Publication History

Abstract

The increasing importance being placed on software measurement has led to an increased amount of research developing new software measures. Given the importance of object-oriented development techniques, one specific area where this has occurred is coupling measurement in object-oriented systems. However, despite a very interesting and rich body of work, there is little understanding of the motivation and empirical hypotheses behind many of these new measures. It is often difficult to determine how such measures relate to one another and for which application they can be used. As a consequence, it is very difficult for practitioners and researchers to obtain a clear picture of the state-of-the-art in order to select or define measures for object-oriented systems.This situation is addressed and clarified through several different activities. First, a standardized terminology and formalism for expressing measures is provided which ensures that all measures using it are expressed in a fully consistent and operational manner. Second, to provide a structured synthesis, a review of the existing frameworks and measures for coupling measurement in object-oriented systems takes place. Third, a unified framework, based on the issues discovered in the review, is provided and all existing measures are then classified according to this framework.This paper contributes to an increased understanding of the state-of-the-art: A mechanism is provided for comparing measures and their potential use, integrating existing measures which examine the same concepts in different ways, and facilitating more rigorous decision making regarding the definition of new measures and the selection of existing measures for a specific goal of measurement. In addition, our review of the state-of-the-art highlights that many measures are not defined in a fully operational form, and relatively few of them are based on explicit empirical models, as recommended by measurement theory.

References

[1]
F. Abreu M. Goulão and R. Esteves, "Toward the Design Quality Evaluation of Object-Oriented Software Systems," Proc. Fifth Int'l Conf. Software Quality, Austin, Texas, Oct. 1995.
[2]
V. Basili L. Briand and W. Melo, "Measuring the Impact of Reuse on Quality and Productivity in Object-Oriented Systems," Comm. ACM, vol. 39, no. 10, 1996.
[3]
V. Basili L. Briand and W. Melo, "A Validation of Object-Oriented Design Metrics as Quality Indicators," IEEE Trans. Software Eng., vol. 22, no. 10, pp. 751-761, 1996.
[4]
L. Briand P. Devanbu and W. Melo, "An Investigation into Coupling Measures for C++," Proc. 19th Int'l Conf. Software Eng., ICSE '97, Boston, pp. 412-421, May 1997.
[5]
L. Briand J. Daly V. Porter and J. Wüst, "A Comprehensive Empirical Validation of Product Measures in Object-Oriented Systems," Technical Report ISERN-98-07, Fraunhofer Inst. for Experimental Software Engineering, Germany, 1998. http://www.iese.fhg.de/ISERN/pub/isern_biblio_tech.html
[6]
L. Briand J. Daly V. Porter and J. Wüst, "Predicting Fault-Prone Classes with Design Measures in Object-Oriented Systems," Proc. Ninth Int'l Symp. Software Reliability Eng., ISSRE'98, Paderborn, Germany, Nov. 1998.
[7]
L. Briand J. Daly V. Porter and J. Wüst, "A Comprehensive Empirical Validation of Product Measures in Object-Oriented Systems," Proc. Fifth Int'l Symp. Software Metrics, Metrics '98, Bethesda, Md., Nov. 1998.
[8]
L. Briand J. Daly and J. Wüst, "A Unified Framework for Cohesion Measurement in Object-Oriented Systems," Empirical Software Eng.: An Int'l J., vol. 3, no. 1, pp. 65-117, 1998.
[9]
L. Briand J. Daly and J. Wüst, "A Unified Framework for Coupling Measurement in Object-Oriented Systems," Technical Report ISERN-96-14, 1996.
[10]
L. Briand K. El Emam and S. Morasca, "Theoretical and Empirical Validation of Software Product Measures," Technical Report ISERN-95-03, 1995. http://www.iese.fhg.de/isern/pub/isern_biblio_tech._html
[11]
L. Briand S. Morasca and V. Basili, "Measuring and Assessing Maintainability at the End of High-Level Design," Proc. IEEE Conf. Software Maintenance, Montreal, Sept. 1993.
[12]
L. Briand S. Morasca and V. Basili, "Defining and Validating High-Level Design Metrics," Technical Report CS-TR 3301, Univ. of Maryland, 1994; to be published in IEEE Trans. Software Eng.
[13]
L. Briand S. Morasca and V. Basili, "Property-Based Software Engineering Measurement," IEEE Trans. Software Eng., vol. 22, no. 1, pp. 68-86, 1996.
[14]
S.R. Chidamber and C.F. Kemerer, "Towards a Metrics Suite for Object Oriented Design," A. Paepcke, ed., Proc. Conf. Object-Oriented Programming: Systems, Languages and Applications, OOPSLA'91, Oct. 1991. Also published in SIGPLAN Notices, vol. 26, no. 11, pp. 197-211, 1991.
[15]
S.R. Chidamber and C.F. Kemerer, "A Metrics Suite for Object Oriented Design," IEEE Trans. Software Eng., vol. 20, no. 6, pp. 476-493, 1994.
[16]
N.I. Churcher and M.J. Shepperd, "Comments on 'A Metrics Suite for Object-Oriented Design,'" IEEE Trans. Software Eng., vol. 21, no. 3, pp. 263-265, 1995.
[17]
N.I. Churcher and M.J. Shepperd, "Towards a Conceptual Framework for Object Oriented Software Metrics," Software Eng. Notes, vol. 20, no. 2, pp. 69-76, 1995.
[18]
P. Coad and E. Yourdon, Object-Oriented Analysis, second edition. Prentice Hall, 1991.
[19]
P. Coad and E. Yourdon, Object-Oriented Design, first edition. Prentice Hall, 1991.
[20]
J. Eder G. Kappel and M. Schrefl, "Coupling and Cohesion in Object-Oriented Systems," Technical Report, Univ. of Klagenfurt, 1994. Also available at ftp://ftp.ifs.uni-linz.ac.at/pub/publications/1993/0293.ps.gz
[21]
N.E. Fenton and S. Lawrence Pfleeger, Software Metrics: A Rigorous and Practical Approach. International Thomson Computer Press, 1996.
[22]
M. Hitz and B. Montazeri, "Measuring Coupling and Cohesion in Object-Oriented Systems," Proc. Int'l Symp. Applied Corporate Computing, Monterrey, Mexico, Oct. 1995. A version of this paper (focusing on coupling only) has been published in Object Currents, vol. 1, no. 4, SIGS Publications, 1996. http://www.sigs.com/publications/docs/oc
[23]
M. Hitz and B. Montazeri, "Measuring Product Attributes of Object-Oriented Systems," W. Schöfer and P. Botella, eds., Proc. ESEC '95 Fifth European Software Eng. Conf., Barcelona, Spain, Sept. 1995, Lecture Notes in Computer Science 989, Springer-Verlag, 1995.
[24]
M. Hitz and B. Montazeri, "Chidamber & Kemerer's Metrics Suite: A Measurement Theory Perspective," IEEE Trans. Software Eng., vol. 22, no. 4, pp. 276-270, 1996.
[25]
I. Jacobson M. Christerson P. Jonsson and G. Overgaard, "Object-Oriented Software Engineering: A Use Case Driven Approach," ACM Press/Addison-Wesley, Reading, Mass., 1992.
[26]
W. Li and S. Henry, "Object-Oriented Metrics that Predict Maintainability," J. Systems and Software, vol. 23, no. 2, pp. 111-122, 1993.
[27]
W. Li S. Henry D. Kafura and R. Schulman, "Measuring Object-Oriented Design," J. Object-Oriented Programming, vol. 8, no. 4, pp. 48-55, 1995.
[28]
Y.-S. Lee B.-S. Liang S.-F. Wu and F.-J. Wang, "Measuring the Coupling and Cohesion of an Object-Oriented Program Based on Information Flow," Proc. Int'l Conf. Software Quality, Maribor, Slovenia, 1995.
[29]
R. Martin, "OO Design Quality Metrics-An Analysis of Dependencies," position paper, Proc. Workshop Pragmatic and Theoretical Directions in Object-Oriented Software Metrics, OOPSLA'94, Oct. 1994.
[30]
T.J. McCabe, "A Complexity Measure," IEEE Trans. Software Eng., vol. 2, no. 4, pp. 308-320, 1976.
[31]
G. Myers, Composite/Structured Design. Van Nostrand Reinhold, 1978.
[32]
J. Rumbaugh M. Blaha W. Premerlani F. Eddy and W. Lorensen, Object-Oriented Modeling and Design. Prentice Hall, 1991.
[33]
R.W. Selby and V.R. Basili, "Analyzing Error-Prone Systems Structure," IEEE Trans. Software Eng., vol. 17, no. 2, pp. 141-152, 1991.
[34]
R.C. Sharble and S.S. Cohen, "The Object-Oriented Brewery: A Comparison of Two Object-Oriented Development Methods," Software Eng. Notes, vol. 18, no. 2, pp. 60-73, 1993.
[35]
W. Stevens G. Myers and L. Constantine, "Structured Design," IBM Systems J., vol. 13, no. 2, pp. 115-139, 1974.
[36]
P.A. Troy and S.H. Zweben, "Measuring the Quality of Structured Designs," J. Systems and Software, vol. 2, pp. 113-120, 1981.
[37]
L. Briand S. Ikonomovski H. Lounis and J. Wüst, "Investigating Quality Factors in Object-Oriented Designs: An Industrial Case Study," ISERN-28-29, Proc. 21st Int'l Conf. Software Eng., ICSE'99, 1999; to appear.

Cited By

View all
  • (2023)EASE: An Effort-aware Extension of Unsupervised Key Class Identification ApproachesACM Transactions on Software Engineering and Methodology10.1145/363571433:4(1-43)Online publication date: 2-Dec-2023
  • (2023)Discovering Reusable Functional Features in Legacy Object-Oriented SystemsIEEE Transactions on Software Engineering10.1109/TSE.2023.327263149:7(3827-3856)Online publication date: 1-Jul-2023
  • (2023)Pride: Prioritizing Documentation Effort Based on a PageRank-Like Algorithm and Simple Filtering RulesIEEE Transactions on Software Engineering10.1109/TSE.2022.317146949:3(1118-1151)Online publication date: 1-Mar-2023
  • Show More Cited By

Recommendations

Reviews

David M. Weiss

Coupling refers to the degree of interdependence between software modules. Measures of coupling are attempts to quantify how easy it is to understand, change, verify, or otherwise operate on one module without understanding, changing, verifying, or otherwise operating on another. An oft-suggested benefit of object orientation is that it encourages low coupling. This paper creates a framework within which measures of coupling can be proposed and validated for object-oriented programs. It first reviews 30 measures of coupling that have been proposed in the literature, identifying the strengths and benefits of each. It then defines a framework for creating coupling measures based on the goals of the measurer, and a process for using the framework. In the authors' words, “we have provided a framework for the comparison, evaluation, and definition of coupling measures in object-oriented systems. This framework is intended to be exhaustive .” The framework is worthwhile for researchers with some sophistication in measurement who want their measures to be well-behaved. Unfortunately, it gives the software developer little help in choosing a measure that will describe or predict the behavior of a design with respect to interdependence of its components. If you are an experimenter with hypotheses about the value of coupling, this paper will help you create a measure to test your hypotheses. If you are a software developer trying to decide whether to use a measure of coupling to evaluate your design, however, this paper will likely bewilder you with choices and provide little help in choosing a meaningful measure for your purposes.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 25, Issue 1
January 1999
144 pages
ISSN:0098-5589
Issue’s Table of Contents

Publisher

IEEE Press

Publication History

Published: 01 January 1999

Author Tags

  1. Coupling
  2. measurement.
  3. object-oriented

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 26 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)EASE: An Effort-aware Extension of Unsupervised Key Class Identification ApproachesACM Transactions on Software Engineering and Methodology10.1145/363571433:4(1-43)Online publication date: 2-Dec-2023
  • (2023)Discovering Reusable Functional Features in Legacy Object-Oriented SystemsIEEE Transactions on Software Engineering10.1109/TSE.2023.327263149:7(3827-3856)Online publication date: 1-Jul-2023
  • (2023)Pride: Prioritizing Documentation Effort Based on a PageRank-Like Algorithm and Simple Filtering RulesIEEE Transactions on Software Engineering10.1109/TSE.2022.317146949:3(1118-1151)Online publication date: 1-Mar-2023
  • (2023)Identifying Key Classes for Initial Software Comprehension: Can We Do it Better?Proceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00160(1878-1889)Online publication date: 14-May-2023
  • (2022)The Effect of Feature Characteristics on the Performance of Feature Location TechniquesIEEE Transactions on Software Engineering10.1109/TSE.2021.304973548:6(2066-2085)Online publication date: 1-Jun-2022
  • (2022)Multi-dimensional information-driven many-objective software remodularization approachFrontiers of Computer Science: Selected Publications from Chinese Universities10.1007/s11704-022-1449-217:3Online publication date: 8-Nov-2022
  • (2021)A Survey of AIOps Methods for Failure ManagementACM Transactions on Intelligent Systems and Technology10.1145/348342412:6(1-45)Online publication date: 30-Nov-2021
  • (2020)A public unified bug dataset for java and its assessment regarding metrics and bug predictionSoftware Quality Journal10.1007/s11219-020-09515-028:4(1447-1506)Online publication date: 1-Dec-2020
  • (2020)Testing machine learning based systems: a systematic mappingEmpirical Software Engineering10.1007/s10664-020-09881-025:6(5193-5254)Online publication date: 1-Nov-2020
  • (2020)A systematic literature review on empirical studies towards prediction of software maintainabilitySoft Computing - A Fusion of Foundations, Methodologies and Applications10.1007/s00500-020-05005-424:21(16655-16677)Online publication date: 1-Nov-2020
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media