{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,5,30]],"date-time":"2024-05-30T02:13:48Z","timestamp":1717035228703},"reference-count":25,"publisher":"Association for Computing Machinery (ACM)","issue":"2","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2006,4]]},"abstract":"The concept of cohesion in a class has been the subject of various recent empirical studies and has been measured using many different metrics. In the structured programming paradigm, the software engineering community has adopted an informal yet meaningful and understandable definition of cohesion based on the work of Yourdon and Constantine. The object-oriented (OO) paradigm has formalised various cohesion measures, but the argument over the most meaningful of those metrics continues to be debated. Yet achieving highly cohesive software is fundamental to its comprehension and thus its maintainability. In this article we subject two object-oriented cohesion metrics, CAMC and NHD, to a rigorous mathematical analysis in order to better understand and interpret them. This analysis enables us to offer substantial arguments for preferring the NHD metric to CAMC as a measure of cohesion. Furthermore, we provide a complete understanding of the behaviour of these metrics, enabling us to attach a meaning to the values calculated by the CAMC and NHD metrics. In addition, we introduce a variant of the NHD metric and demonstrate that it has several advantages over CAMC and NHD. While it may be true that a generally accepted formal and informal definition of cohesion continues to elude the OO software engineering community, there seems considerable value in being able to compare, contrast, and interpret metrics which attempt to measure the same features of software.<\/jats:p>","DOI":"10.1145\/1131421.1131422","type":"journal-article","created":{"date-parts":[[2006,7,25]],"date-time":"2006-07-25T14:14:26Z","timestamp":1153836866000},"page":"123-149","update-policy":"http:\/\/dx.doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":73,"title":["The interpretation and utility of three cohesion metrics for object-oriented design"],"prefix":"10.1145","volume":"15","author":[{"given":"Steve","family":"Counsell","sequence":"first","affiliation":[{"name":"Brunel University, Uxbridge, England"}]},{"given":"Stephen","family":"Swift","sequence":"additional","affiliation":[{"name":"Brunel University, Uxbridge, England"}]},{"given":"Jason","family":"Crampton","sequence":"additional","affiliation":[{"name":"University of London, England"}]}],"member":"320","published-online":{"date-parts":[[2006,4]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the IEEE International Symposium on Software Metrics (Boca Raton, Fla), 119--127","author":"Allen E.","unstructured":"Allen , E. and Khoshgoftaar , T . 1999. Measuring coupling and cohesion: An information-theory approach . In Proceedings of the IEEE International Symposium on Software Metrics (Boca Raton, Fla), 119--127 . Allen, E. and Khoshgoftaar, T. 1999. Measuring coupling and cohesion: An information-theory approach. In Proceedings of the IEEE International Symposium on Software Metrics (Boca Raton, Fla), 119--127."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.979986"},{"key":"e_1_2_1_3_1","first-page":"47","article-title":"A class cohesion metric for object-oriented designs","volume":"11","author":"Bansiya J.","year":"1999","unstructured":"Bansiya , J. , Etzkorn , L. , Davis , C. , and Li , W. 1999 . A class cohesion metric for object-oriented designs . J. Object-Oriented Program. 11 , 8, 47 -- 52 . Bansiya, J., Etzkorn, L., Davis, C., and Li, W. 1999. A class cohesion metric for object-oriented designs. J. Object-Oriented Program. 11, 8, 47--52.","journal-title":"J. Object-Oriented Program."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.544352"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/211782.211856"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.310673"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/518049.856958"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1009783721306"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.481535"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.815329"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/117954.117970"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.295895"},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the Empirical Assessment in Software Engineering EASE'01","author":"Counsell S.","unstructured":"Counsell , S. , Mendes , E. , Swift , S. , and Tucker , A . 2001. An empirical investigation of fault seeding in requirements document . In Proceedings of the Empirical Assessment in Software Engineering EASE'01 ( Keele, UK). Counsell, S., Mendes, E., Swift, S., and Tucker, A. 2001. An empirical investigation of fault seeding in requirements document. In Proceedings of the Empirical Assessment in Software Engineering EASE'01 (Keele, UK)."},{"key":"e_1_2_1_14_1","volume-title":"Tech. Rep. BBKCS-02-10","author":"Counsell S.","year":"2002","unstructured":"Counsell , S. , Mendes , E. , Swift , S. , and Tucker , A . 2002 . Evaluation of an object-oriented cohesion metric through Hamming distances. Tech. Rep. BBKCS-02-10 , Birkbeck College, University of London, UK. Counsell, S., Mendes, E., Swift, S., and Tucker, A. 2002. Evaluation of an object-oriented cohesion metric through Hamming distances. Tech. Rep. BBKCS-02-10, Birkbeck College, University of London, UK."},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0218194004001609"},{"key":"e_1_2_1_16_1","unstructured":"Fenton N. and Pfleeger S. 1996. Software Metrics A Rigorous and Practical Approach. Thomson International. Fenton N. and Pfleeger S. 1996. Software Metrics A Rigorous and Practical Approach. Thomson International."},{"key":"e_1_2_1_17_1","first-page":"143","article-title":"Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design)","volume":"3","author":"Henderson-Sellers B.","year":"1996","unstructured":"Henderson-Sellers , B. , Constantine , L. , and Graham , I. 1996 . Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design) . Object Oriented Syst. 3 , 3, 143 -- 158 . Henderson-Sellers, B., Constantine, L., and Graham, I. 1996. Coupling and cohesion (towards a valid metrics suite for object-oriented analysis and design). Object Oriented Syst. 3, 3, 143--158.","journal-title":"Object Oriented Syst."},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 3rd International Symposium on Applied Corporate Computing ISACC'95","author":"Hitz M.","unstructured":"Hitz , M. and Montazeri , B . 1995. Measuring coupling and cohesion in object-oriented systems . In Proceedings of the 3rd International Symposium on Applied Corporate Computing ISACC'95 ( Monterrey, Mexico). Hitz, M. and Montazeri, B. 1995. Measuring coupling and cohesion in object-oriented systems. In Proceedings of the 3rd International Symposium on Applied Corporate Computing ISACC'95 (Monterrey, Mexico)."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1027092.1027094"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/257572.257586"},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the 1st International Software Metrics Symposium","author":"Li W.","unstructured":"Li , W. and Henry , S . 1993. Maintenance metrics for the object-oriented paradigm . In Proceedings of the 1st International Software Metrics Symposium ( Baltimore, Md.), 52--60. Li, W. and Henry, S. 1993. Maintenance metrics for the object-oriented paradigm. In Proceedings of the 1st International Software Metrics Symposium (Baltimore, Md.), 52--60."},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the International Conference on Software Engineering Research and Practice (Las Vegas, Nev.), 9--14","author":"Mitchell A.","unstructured":"Mitchell , A. and Power , J . 2004. Run-time cohesion metrics: An empirical investigation . In Proceedings of the International Conference on Software Engineering Research and Practice (Las Vegas, Nev.), 9--14 . Mitchell, A. and Power, J. 2004. Run-time cohesion metrics: An empirical investigation. In Proceedings of the International Conference on Software Engineering Research and Practice (Las Vegas, Nev.), 9--14."},{"key":"e_1_2_1_23_1","unstructured":"Snedecor G. and Cochran W. 1989. Statistical Methods 8th ed. Iowa State University Press Ames Iowa. Snedecor G. and Cochran W. 1989. Statistical Methods 8th ed. Iowa State University Press Ames Iowa."},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1147\/sj.132.0115"},{"key":"e_1_2_1_25_1","unstructured":"Yourdon E. and Constantine L. 1979. Structured Design. Prentice Hall Englewood Cliffs NJ. Yourdon E. and Constantine L. 1979. Structured Design. Prentice Hall Englewood Cliffs NJ."}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1131421.1131422","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,12,28]],"date-time":"2022-12-28T20:39:49Z","timestamp":1672259989000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1131421.1131422"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2006,4]]},"references-count":25,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2006,4]]}},"alternative-id":["10.1145\/1131421.1131422"],"URL":"https:\/\/doi.org\/10.1145\/1131421.1131422","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2006,4]]},"assertion":[{"value":"2006-04-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}