skip to main content
article

Object-oriented cohesion subjectivity amongst experienced and novice developers: an empirical study

Published:01 September 2006Publication History
Skip Abstract Section

Abstract

The concept of software cohesion in both the procedural and object-oriented paradigm is well known and documented. What is not so well known or documented is the perception of what empirically constitutes a cohesive 'unit' by software engineers. In this paper, we describe an empirical investigation using object-oriented (OO) classes as a basis. Twenty-four subjects (drawn from IT experienced and novice groups) were asked to rate ten classes sampled from two industrial systems in terms of their overall cohesiveness; a class environment was used to carry out the study. Three hypotheses were investigated as part of the study, relating to class size, the role of comment lines and the differences between the two groups in terms of how they rated cohesion. Several key results were observed. Firstly, class size (when expressed in terms of number of methods) only influenced the perception of cohesion by novice subjects. Secondly, well-commented classes were rated more highly amongst IT experienced than novice subjects. Thirdly, results suggest strongly that cohesion comprises a combination of various class factors including low coupling, small numbers of attributes and well-commented methods, rather than any single, individual class feature per se. Finally, if the research supports the view that cohesion is a subjective concept reflecting a cognitive combination of class features then cohesion is also a surrogate for class comprehension.

References

  1. E. Allen and T. Khoshgoftaar. Measuring Coupling and Cohesion: An information-theory approach. Proceedings 6th International Metrics Symp., Boca Raton, Florida, 1999, pages 47--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Bansiya, L. Etzkorn, C. Davis and W. Li. A class cohesion metric for object-oriented designs. Journal of Object-Oriented Programming (January), pages 47--52, 1999.Google ScholarGoogle Scholar
  3. V. R Basili, G. Caldiera and H. D Rombach, The Goal Question Metric Approach. Encyclopedia of Software Engineering, Volume 1, pages 528--532, 1996.Google ScholarGoogle Scholar
  4. J. M. Bieman and L. Ott. Measuring functional cohesion. IEEE Transactions on Software Engineering, 20(8): 644--657, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. L. Briand, J. Daly and J. Wust. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering Journal, 3(1): 65--117, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. L. Briand, J. Daly and J. Wust. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering. Volume 25(1): 91--121, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. L. Briand, P. Devanbu and W. Melo. An investigation into coupling measures for C++. In Proceedings of the 19th International Conference on Software Engineering (ICSE 97), Boston, USA. Pages 412--421, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. Briand, J. Wust, J. Daly and V. Porter, Exploring the relationships between design measures and software quality in object-oriented systems. The Journal of Systems and Software 2000, volume 51, pages 245--273. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. Carver, L. Jaccheri, S. Morasca, and F. Shull. Issues in Using Students in Empirical Studies in Software Engineering Education, pages 239-, Ninth International Software Metrics Symposium (METRICS '03), Sydney, Australia, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. R. Chidamber and C. F. Kemerer. A metrics suite for object-oriented design. IEEE Transactions on Software Engineering, 20(6): 467--493, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Counsell, J. Crampton and S. Swift. The interpretation and Utility of Three Cohesion Metrics for Object-Oriented Design, To appear in ACM Transactions on Software Engineering and Methodology, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Counsell, G. Loizou, R. Najjar and K. Mannock. On the relationship between encapsulation, inheritance and friends in C++ software. Proceedings of the International Conference on Software Systems Engineering and its Applications, Paris, France, 2003.Google ScholarGoogle Scholar
  13. S. Counsell, E. Mendes and S. Swift, Comprehension of Object-oriented Software Cohesion: the empirical quagmire, Proceedings of the 10th International Workshop on Program Comprehension (IWPC 2002). Paris, France, pages 33--42, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Counsell, S. Swift, A. Tucker and E. Mendes, Object-oriented cohesion as a surrogate of software comprehension: an empirical study. To appear in Proceedings of IEEE International Workshop on Source Code Analysis and Manipulation (SCAM), Budapest, Hungary, September, 2005, pages 161--169. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Counsell, S. Swift, A. Tucker, An Empirical Investigation into the Interpretation of Faults in Requirements Documents, Proceedings of Empirical Assessment in Software Engineering, 2001 (EASE 01), Keele University, Staffordshire, April 2001.Google ScholarGoogle Scholar
  16. N. Fenton and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, second ed. Boston, Mass.: PWS, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Fowler, Refactoring: Improving the Design of Existing Code, Addison Wesley, Reading, Massachusetts, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Kerievsky, Refactoring to Patterns. Addison Wesley, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B. A. Kitchenham, T. Dybå and M. Jørgensen: Evidence-Based Software Engineering. Proceedings of the International Conference on Software Engineering (ICSE 2004), Edinburgh, Scotland, pages 273--281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Lakhotia, Rule-based approach to computing module cohesion, Proceedings of the 15th International Conference on Software Engineering (ICSE '15), Baltimore, Maryland, 1993, pages 35--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Lakhotia, Understanding someone else's code: Analysis of experiences, Journal of Systems and Software, Volume 23, pages 269--175, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. R. Najjar, S. Counsell, G. Loizou and K. Mannock, The role of constructors in the context of refactoring object-oriented systems, Proceedings of the 7th European Conference on Software Maintenance and Reengineering, 2003, Benevento, Italy, pages 111--120. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Rosenberg, Some misconceptions about lines of code, Proceedings of the Fourth IEEE International Software Metrics Symposium, Albuquerque, New Mexico, pages 137--142, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. W. P. Stevens, G. J. Myers and L. L Constantine. Structured Design. IBM Systems Journal, 13(2): 115--139, 1974.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Weinand, E. Gamma and R. Marty. ET++ - an object-oriented application framework in C++,. Proceedings of Object-oriented Programming Systems, Languages and Applications (OOPSLA), San Diego, USA, pp. 46--57, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Weiser. Program Slicing, IEEE Transactions on Software Engineering, 10(4), pages 352--357, 1985.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. E. Yourdon and L. Constantine, Structured Design, Prentice Hall, 1979.Google ScholarGoogle Scholar

Index Terms

  1. Object-oriented cohesion subjectivity amongst experienced and novice developers: an empirical study

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in

              Full Access

              • Published in

                cover image ACM SIGSOFT Software Engineering Notes
                ACM SIGSOFT Software Engineering Notes  Volume 31, Issue 5
                September 2006
                110 pages
                ISSN:0163-5948
                DOI:10.1145/1163514
                Issue’s Table of Contents

                Copyright © 2006 Authors

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 1 September 2006

                Check for updates

                Qualifiers

                • article

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader