..............................
..............................
..............................
An Investigation of Design Level Class Cohesion Metrics
Design level class cohesion metrics are based on th e assumption that if all the methods of a class have access to
similar parameter types, then they all process clos ely related information. A class with a large numbe r of parameter types
common in its methods is more cohesive than a class with less number of parameter types common in its methods. In this
paper, we review the design level class cohesion me trics with a special focus on metrics which use similarity of parameter
types of methods of a class as the basis of its coh esiveness. Basically three metrics fall in this category: Cohesion Among
Methods of a Class (CAMC), Normalized Hamming Dista nce (NHD), and Scaled NHD (SNHD). Keeping in mind t he
anomalies in the definitions of the existing metric s, a variant of the existing metrics is introduced. It is named NHD Modified
(NHDM). A major point of difference is that the NHD metric counts a disagreement only if class methods taken as pairs
disagree on a parameter type that one method uses b ut the other method, in the pair, does not use. It ignores the case when
both methods of a pair do not use a parameter type. NHD indirectly counts it as an agreement, but NHDM considers such a
case as a disagreement. An automated metric collect ion tool is used to collect the metrics data from an open source Java
based software program containing 884 classes. Metr ics data is then subjected to statistical analysis. The NHDM metric shows
the maximum amount of variation in data values in c omparison to other metrics in the group. NHDM is st rongly correlated
with CAMC. Unlike the previous studies, no signific ant correlation is found in CAMC and NHD.
[1] Badri L. and Badri M., A Proposal of a New Class Cohesion Criterion: An Empirical Study, Computer Journal of Object Technology , vol. 3, no. 4, pp. 145-159, 2004.
[2] Bansiya J. and Davis C., A Hierarchical Model for Object Oriented Quality Assessment, Computer Journal of IEEE Transactions on Software Engineering , vol. 28, no.1, pp. 4-17, 2002.
[3] Bansiya J., Etzkorn L., Davis C., and Li W., A Class Cohesion Metric for Object Oriented Designs, Computer Journal of Object Oriented Programming , vol. 11, no. 8, pp 47-52, 1999.
[4] Bieman J. and Kang B., Cohesion and Reuse in an Object-Oriented System, in Proceedings of the Symposium on Software Reusability, ACM Press , USA, pp. 259-262, 1995.
[5] Bonja C. and Kidanmariam E., Metrics for Class Cohesion and Similarity between Methods, in Proceedings of the 44 th annual Southeast Regional Conference , New York, pp. 91-95, 2006.
[6] Briand L., Daly J., and Wust J., A Unified Framework for Cohesion Measurement in Object-Oriented Systems, Empirical Software. Enggnering , vol. 3, no. 1, pp. 65-117, 1998.
[7] Briand L., Wust J., Daly J., and Porter D., Exploring the Relationships Between Design Measures and Software Quality in Object Oriented Systems, Conference Systems and Software , vol. 51, no. 3, pp. 245-273, 2000.
[8] Chae H., Kwon Y., and Bae D., A Cohesion Measure for Object-Oriented Classes, Computer Journal of Software Practice and Experience , vol. 30, no. 12, pp. 1405-1431, 2000.
[9] Chen Z., Zhou Y., and Xu B., A Novel Approach to Measuring Class Cohesion Based on Dependence Analysis, in Proceedings of the International Conference on Software Maintenance , USA, pp. 377-384, 2002.
[10] Chidamber P. and Kemerer C., Towards a Metrics Suite for Object Oriented Design, in Proceedings of 6 th ACM Conference on Object Oriented Programming, Systems, Languages and Applications , Arizona, pp. 197-211, 1991.
[11] Chidamber S. and Kemerer C., A Metrics Suite for Object Oriented Design, Computer Journal of IEEE Transactions on Software Engineering , vol. 20, no. 6, pp. 476-493, 1994.
[12] Counsell S., Swift S., and Crampton J., The Interpretation and Utility of Three Cohesion Metrics for Object-Oriented Design, Computer Journal of ACM Transactions on Software Engineering and Methodology , vol. 15, no. 2, pp. 123-149, 2006.
[13] Cox G., Etzkorn L., and Hughes W., Cohesion Metric for Object-Oriented Systems Based on Semantic Closeness from Disambiguity, Computer Journal of Applied Artificial Intelligence , vol. 20, no. 5, pp. 419-436, 2006.
[14] Dallal J., A Design-Based Cohesion Metric for Object-Oriented Classes, Computer Journal of World Academy of Science, Engineering and Technology , vol. 34, pp. 301-306, 2007.
[15] Dallal J. and Briand L., An Object-Oriented High-Level Design-Based Class Cohesion Metric, Technical Report , Simula Research Laboratory, 2009.
[16] Fern ndez L. and Pe a R., A Sensitive Metric of Class Cohesion, International Journal of Information Theories and Applications , vol. 13, no. 1, pp. 82-91, 2006.
[17] Gui G. and Scott D., Measuring Software Component Reusability by Coupling and Cohesion Metrics, Journal of Computers , vol. 4, no. 9, pp 797-805, 2009.
[18] Gyimothy T., Ferenc R., and Siket I., Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction, Journal of Computers IEEE Transactions on Software Enineering , vol. 31, no. 10, pp. 897-910, 2005.
[19] Henderson-Sellers B., Constantine L., and Graham I., Coupling and Cohesion (Towards a Valid Metrics Suite for Object-Oriented Analysis and Design), Object Oriented Systems , vol. 3, no. 3, pp. 143-158, 1996.
[20] Hitz M. and Montazeri B., Measuring Coupling and Cohesion in Object-Oriented Systems, in Proceedings of International Symosium on Applied Corporate Computing , pp. 1-10, 1995.
[21] Lee J., Jung S., Kim S., Jang W., and Ham D., Component Identification Method with Coupling and Cohesion, in Proceedings of Eighth Asia-Pacific Software Engineering Conference , USA, pp. 79-86, 2001.
[22] Li W. and Henry S., Object-Oriented Metrics that Predict Maintainability, Conference System Software , vol. 23, no. 2, pp. 111-122, 1993.
[23] Makela S. and Leppanen V., Client Based Object Oriented Cohesion Metrics, in Proceedings of 31st Annual International An Investigation of Design Level Class Cohesion Metrics 73 Computer Software and Applications Conference , Beijing, pp. 743-748, 2007.
[24] Marchetto A. and Trentini A., A Framework to Build Quality Models for Web Applications, Computer Journal of The International Arab Journal of Information Technology , vol. 4, no. 2, pp. 168-176, 2007.
[25] Marcus M. and Poshyvanyk D., Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented System, Computer Journal of IEEE Transactions on Software Engineering , vol. 34, no. 2, pp. 287- 300, 2008.
[26] Marcus A. and Poshyvanyk D., The Conceptual Cohesion of Classes, in Proceedings of 21 st IEEE International Conference on Software Maintenance, USA, pp. 133-142, 2005.
[27] Wang J., Zhou Y., Wen L. Chen Y., Lu H., and Xu B., DMC: A More Precise Cohesion Measure for Classes, Computer Journal of Information and Software Technology , vol. 47, no. 3, pp. 167-180, 2005.
[28] Zhou Z. and Leung H., Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low Severity Faults, Computer Journal of IEEE Transactions on Software Engineering , vol. 32, no. 10, pp 771-789, 2006. Kuljit Kaur is a lecturer at the Department of Computer Science and Engineering, Guru Nanak Dev University, India. Her areas of interest are software engineering and object oriented analysis and design. Currently, she is working on software component evaluation metrics. She has 14 years of teaching experience. She received an MCA from Guru Nanak Dev University, Amritsar in 1996. Hardeep Singh is a professor at the Department of Computer Science and Engineering, Guru Nanak Dev University, India. His research interests are information system software metrics. He has 22 years of teaching and research experience. He received his PhD in computer science and engineering from Guru Nanak Dev University, Amritsar in 2003.