Issue No.06 - November/December (2011 vol.37)
pp: 788-804
Jehad Al Dallal , Kuwait University, Kuwait
Several object-oriented cohesion metrics have been proposed in the literature. These metrics aim to measure the relationship between class members, namely, methods and attributes. Different metrics use different models to represent the connectivity pattern of cohesive interactions (CPCI) between class members. Most of these metrics are normalized to allow for easy comparison of the cohesion of different classes. However, in some cases, these metrics obtain the same cohesion values for different classes that have the same number of methods and attributes but different CPCIs. This leads to incorrectly considering the classes to be the same in terms of cohesion, even though their CPCIs clearly indicate that the degrees of cohesion are different. We refer to this as a lack of discrimination anomaly (LDA) problem. In this paper, we list and discuss cases in which the LDA problem exists, as expressed through the use of 16 cohesion metrics. In addition, we empirically study the frequent occurrence of the LDA problem when the considered metrics are applied to classes in five open source Java systems. Finally, we propose a metric and a simulation-based methodology to measure the discriminative power of cohesion metrics. The discrimination metric measures the probability that a cohesion metric will produce distinct cohesion values for classes with the same number of attributes and methods but different CPCIs. A highly discriminating cohesion metric is more desirable because it exhibits a lower chance of incorrectly considering classes to be cohesively equal when they have different CPCIs.
Cohesive interactions, connectivity pattern, discrimination metric, discriminative power, lack of discrimination anomaly, object-oriented class cohesion.
Jehad Al Dallal, "Measuring the Discriminative Power of Object-Oriented Class Cohesion Metrics", IEEE Transactions on Software Engineering, vol.37, no. 6, pp. 788-804, November/December 2011, doi:10.1109/TSE.2010.97
[1] K. Aggarwal, Y. Singh, A. Kaur, and R. Malhotra, "Investigating Effect of Design Metrics on Fault Proneness in Object-Oriented Systems," J. Object Technology, vol. 6, no. 10, pp. 127-141, 2007.
[2] J. Al Dallal, "A Design-Based Cohesion Metric for Object-Oriented Classes," Proc. Int'l Conf. Computer and Information Science and Eng., Nov. 2007.
[3] J. Al Dallal, "Software Similarity-Based Functional Cohesion Metric," IET Software, vol. 3, no. 1, pp. 46-57, 2009.
[4] J. Al Dallal, "Mathematical Validation of Object-Oriented Class Cohesion Metrics," Int'l J. Computer Science, vol. 4, no. 2, pp. 45-52, 2010.
[5] J. Al Dallal and L. Briand, "An Object-Oriented High-Level Design-Based Class Cohesion Metric," Information and Software Technology, vol. 52, no. 12, pp. 1346-1361, 2010.
[6] J. Al Dallal and L. Briand, "A Precise Method-Method Interaction-Based Cohesion Metric for Object-Oriented Classes," ACM Trans. Software Eng. and Methodology, vol. 20, no. 6, Nov. 2011.
[7] M. Alshayeb and W. Li, "An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes," IEEE Trans. Software Eng., vol. 29, no. 11, pp. 1043-1049, 2003.
[8] L. Badri and M. Badri, "A Proposal of a New Class Cohesion Criterion: An Empirical Study," J. Object Technology, vol. 3, no. 4, pp. 145-159, 2004.
[9] J. Bansiya, L. Etzkorn, C. Davis, and W. Li, "A Class Cohesion Metric for Object-Oriented Designs," J. Object-Oriented Programming, vol. 11, no. 8, pp. 47-52, 1999.
[10] J.M. Bieman and B. Kang, "Cohesion and Reuse in an Object-Oriented System," Proc. Symp. Software Reusability, pp. 259-262, 1995.
[11] J. Bieman and L. Ott, "Measuring Functional Cohesion," IEEE Trans. Software Eng., vol. 20, no. 8, pp. 644-657, Aug. 1994.
[12] C. Bonja and E. Kidanmariam, "Metrics for Class Cohesion and Similarity between Methods," Proc. 44th Ann. ACM Southeast Regional Conf., pp. 91-95, 2006.
[13] L.C. Briand, J. Daly, and J. Wuest, "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.
[14] L.C. Briand, S. Morasca, and V.R. Basili, "Defining and Validating Measures for Object-Based High-Level Design," IEEE Trans. Software Eng., vol. 25, no. 5, pp. 722-743, Sept./Oct. 1999.
[15] L.C. Briand and J. Wust, "Empirical Studies of Quality Models in Object-Oriented Systems," Advances in Computers, pp. 97-166, Academic Press, 2002.
[16] L.C. Briand, J. Wust, J. Daly, and V. Porter, "Exploring the Relationship between Design Measures and Software Quality in Object-Oriented Systems," J. System and Software, vol. 51, no. 3, pp. 245-273, 2000.
[17] L.C. Briand, J. Wüst, and H. Lounis, "Replicated Case Studies for Investigating Quality Factors in Object-Oriented Designs," Empirical Software Eng., vol. 6, no. 1, pp. 11-58, 2001.
[18] H.S. Chae, Y.R. Kwon, and D. Bae, "A Cohesion Measure for Object-Oriented Classes," Software—Practice and Experience, vol. 30, no. 12, pp.1405-1431, 2000.
[19] Z. Chen, Y. Zhou, and B. Xu, "A Novel Approach to Measuring Class Cohesion Based on Dependence Analysis," Proc. Int'l Conf. Software Maintenance, pp. 377-384, 2002.
[20] Z. Chen, B. Xu, and Y. Zhou, "Measuring Class Cohesion Based on Dependence Analysis," J. Science and Technology, vol. 19, no. 6, pp. 859-866, 2004.
[21] S.R. Chidamber and C.F. Kemerer, "Towards a Metrics Suite for Object-Oriented Design," Object-Oriented Programming Systems, Languages, and Applications, special issue of SIGPLAN Notices, vol. 26, no. 10, pp. 197-211, 1991.
[22] 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, June 1994.
[23] S. Counsell, S. Swift, and J. Crampton, "The Interpretation and Utility of Three Cohesion Metrics for Object-Oriented Design," ACM Trans. Software Eng. and Methodology, vol. 15, no. 2, pp. 123-149, 2006.
[24] N. Fenton and S. Pfleeger, Software Metrics A Rigorous and Practical Approach, second ed. ITP, 1997.
[25] L. Fernández and R. Peña, "A Sensitive Metric of Class Cohesion," Int'l J. Information Theories and Applications, vol. 13, no. 1, pp. 82-91, 2006.
[26] FreeMind, http:/, Aug. 2009.
[27] GanttProject, /, Aug. 2009.
[28] T. Gyimothy, R. Ferenc, and I. Siket, "Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction," IEEE Trans. Software Eng., vol. 3, no. 10, pp. 897-910, Oct. 2005.
[29] J.A. Hanley and B.J. McNeil, "The Meaning and Use of the Area under a Receiver Operating Characteristic (ROC) Curve," Radiology, vol. 143, no. 1, pp. 29-36, 1982.
[30] B. Henderson-Sellers, Object-Oriented Metrics Measures of Complexity. Prentice-Hall, 1996.
[31] M. Hitz and B. Montazeri, "Measuring Coupling and Cohesion in Object Oriented Systems," Proc. Int'l Symp. Applied Corporate Computing, pp. 25-27, 1995.
[32] Illusion,, Aug. 2009.
[33] JabRef,, Aug. 2009.
[34] B. Kitchenham, S.L. Pfleeger, and N. Fenton, "Towards a Framework for Software Measurement Validation," IEEE Trans. Software Eng., vol. 21, no. 12, pp. 929-944, Dec. 1995.
[35] W. Li and S.M. Henry, "Maintenance Metrics for the Object Oriented Paradigm," Proc. First Int'l Software Metrics Symp., pp. 52-60, 1993.
[36] A. Marcus, D. Poshyvanyk, and R. Ferenc, "Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems," IEEE Trans. Software Eng., vol. 34, no. 2, pp. 287-300, Mar./Apr. 2008.
[37] Openbravo, , Aug. 2009.
[38] S. Siegel and J. Castellan, Nonparametric Statistics for the Behavioral Sciences, second ed. McGraw-Hill, 1988.
[39] J. Wang, Y. Zhou, L. Wen, Y. Chen, H. Lu, and B. Xu, "DMC: A More Precise Cohesion Measure for Classes," Information and Software Technology, vol. 47, no. 3, pp. 167-180, 2005.
[40] B. Xu and Y. Zhou, "Comments on 'A Cohesion Measure for Object-Oriented Classes,'" Software—Practice and Experience, H.S. Chae, Y.R. Kwon, and D.H. Baevol, eds., vol. 31, no. 14, pp. 1381-1388, 2001.
[41] Y. Zhou, L. Wen, J. Wang, Y. Chen, H. Lu, and B. Xu, "DRC: A Dependence Relationships Based Cohesion Measure for Classes," Proc. 10th Asia-Pacific Software Eng. Conf., pp. 1-9, 2003.