This Article 
 Bibliographic References 
 Add to: 
Measuring Design-Level Cohesion
February 1998 (vol. 24 no. 2)
pp. 111-124

Abstract—Cohesion was first introduced as a software attribute that, when measured, could be used to predict properties of implementations that would be created from a given design. Unfortunately, cohesion, as originally defined, could not be objectively assessed, while more recently developed objective cohesion measures depend on code-level information. We show that association-based and slice-based approaches can be used to measure cohesion using only design-level information. An analytical and empirical analysis shows that the design-level measures correspond closely with code-level cohesion measures. They can be used as predictors of or surrogates for the code-level measures. The design-level cohesion measures are formally defined, have been implemented, and can support software design, maintenance, and restructuring.

[1] J. Bieman and B.-K. Kang, "Cohesion and Reuse in an Object-Oriented System," Proc. ACM Symp. Software Reusability, SSR'95, pp. 259-262, Apr. 1995. Reprinted in ACM Software Eng. Notes, Aug. 1995.
[2] J. Bieman and L. Ott, "Measuring Functional Cohesion," IEEE Trans. Software Eng., vol. 20, no. 8, pp. 644-657, Aug. 1994.
[3] 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.
[4] 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.
[5] T.J. Emerson, "A Discriminant Metric for Module Cohesion," Proc. Seventh Int'l Conf. Software Eng., ICSE-7, pp. 294-303, 1984.
[6] N. Fenton, "Software Measurement: A Necessary Scientific Bias," IEEE Trans. Software Eng., vol. 20, pp. 199-206, Mar. 1994.
[7] B.-K. Kang and J. Bieman, "Using Design Cohesion to Visualize, Quantify, and Restructure Software," Eighth Int'l Conf. Software Eng. and Knowledge Eng., SEKE '96, June 1996.
[8] B.-K. Kang and J. Bieman, "Using Design Abstractions to Visualize, Quantify, and Restructure Software," J. Systems and Software, to appear.
[9] A. Lakhotia, "Rule-Based Approach to Computing Module Cohesion," Proc. 15th Int'l Conf. Software Eng., pp. 35-44, 1993.
[10] B. Mehra, "Measuring Data Cohesion in the Object-Oriented Paradigm," master's thesis, Dept. of Computer Science, Michigan Technological Univ., 1997.
[11] L. Ott, J. Bieman, B.-K. Kang, and B. Mehra, "Developing Measures of Class Cohesion for Object-Oriented Software," Proc. Ann. Oregon Workshop Software Metrics, AOWSM'95, June 1995.
[12] S. Patel,W. Chu,, and R. Baxter,“A measure for composite module cohesion,” Proc. 14th Int’l Conf. on Software Eng.,Melbourne, Australia, May 1992, pp. 38-48.
[13] L. Rising and F. Calliss, "Problems with Determining Package Cohesion and Coupling," Software-Practice and Experience, vol. 22, no. 7, pp. 553-571, July 1992.
[14] M.H. Samadzadeh and S.J. Khan, "Stability, Coupling, and Cohesion of Object-Oriented Software Systems," Proc. 22nd Ann. ACM Computer Science Conf., pp. 312-319, 1994.
[15] W. Stevens, G. Myers, and L. Constantine, "Structured Design," IBM Systems J., vol. 13, no. 2, pp. 115-139, 1974.
[16] D. Troy and S. Zweben, "Measuring the Quality of Structured Designs," J. Systems and Software, vol. 2, pp. 113-120, 1981.
[17] M. Weiser, "Program Slicing," IEEE Trans. Software Eng., vol. 10, no. 4, pp. 352-357, 1984.
[18] M. Woodward, "Difficulties Using Cohesion and Coupling as Quality Indicators," Software Quality J., vol. 2, no. 2, pp. 109-127, June 1993.
[19] E. Yourdon and L. Constantine, Structured Design.Englewood Cliffs, N.J.: Prentice Hall, 1979.
[20] H. Zima and B. Chapman, Supercompilers for Parallel and Vector Computers. ACM Press, 1990.

Index Terms:
Cohesion, software measurement and metrics, software design, software maintenance, software restructuring and re-engineering, software visualization, software reuse.
James M. Bieman, Byung-Kyoo Kang, "Measuring Design-Level Cohesion," IEEE Transactions on Software Engineering, vol. 24, no. 2, pp. 111-124, Feb. 1998, doi:10.1109/32.666825
Usage of this product signifies your acceptance of the Terms of Use.