Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

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

Published: 01 September 2006 Publication History

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.
[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.
[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.
[4]
J. M. Bieman and L. Ott. Measuring functional cohesion. IEEE Transactions on Software Engineering, 20(8): 644--657, 1994.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
N. Fenton and S. Pfleeger, Software Metrics: A Rigorous and Practical Approach, second ed. Boston, Mass.: PWS, 1997.
[17]
M. Fowler, Refactoring: Improving the Design of Existing Code, Addison Wesley, Reading, Massachusetts, 1999.
[18]
J. Kerievsky, Refactoring to Patterns. Addison Wesley, 2004.
[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.
[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.
[21]
A. Lakhotia, Understanding someone else's code: Analysis of experiences, Journal of Systems and Software, Volume 23, pages 269--175, 1993.
[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.
[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.
[24]
W. P. Stevens, G. J. Myers and L. L Constantine. Structured Design. IBM Systems Journal, 13(2): 115--139, 1974.
[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.
[26]
M. Weiser. Program Slicing, IEEE Transactions on Software Engineering, 10(4), pages 352--357, 1985.
[27]
E. Yourdon and L. Constantine, Structured Design, Prentice Hall, 1979.

Cited By

View all
  • (2020)Applying coupling and cohesion concepts in object-oriented software: a controlled experimentProceedings of the XIX Brazilian Symposium on Software Quality10.1145/3439961.3439969(1-10)Online publication date: 1-Dec-2020
  • (2020)A Model to Detect Readability Improvements in Incremental ChangesProceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389255(25-36)Online publication date: 13-Jul-2020
  • (2019)Improving source code readabilityProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00014(2-12)Online publication date: 25-May-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 2006
Published in SIGSOFT Volume 31, Issue 5

Check for updates

Author Tags

  1. cohesion
  2. developers
  3. experiment
  4. object-oriented

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Applying coupling and cohesion concepts in object-oriented software: a controlled experimentProceedings of the XIX Brazilian Symposium on Software Quality10.1145/3439961.3439969(1-10)Online publication date: 1-Dec-2020
  • (2020)A Model to Detect Readability Improvements in Incremental ChangesProceedings of the 28th International Conference on Program Comprehension10.1145/3387904.3389255(25-36)Online publication date: 13-Jul-2020
  • (2019)Improving source code readabilityProceedings of the 27th International Conference on Program Comprehension10.1109/ICPC.2019.00014(2-12)Online publication date: 25-May-2019
  • (2018)Improving Code: The (Mis) Perception of Quality Metrics2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSME.2018.00017(80-91)Online publication date: Oct-2018
  • (2014)An empirical study on how developers reason about module cohesionProceedings of the 13th international conference on Modularity10.1145/2577080.2577096(121-132)Online publication date: 22-Apr-2014
  • (2013)An empirical study on the developers' perception of software couplingProceedings of the 2013 International Conference on Software Engineering10.5555/2486788.2486879(692-701)Online publication date: 18-May-2013
  • (2013)An empirical study on the developers' perception of software coupling2013 35th International Conference on Software Engineering (ICSE)10.1109/ICSE.2013.6606615(692-701)Online publication date: May-2013
  • (2011)Measuring static quality of student codeProceedings of the 16th annual joint conference on Innovation and technology in computer science education10.1145/1999747.1999754(13-17)Online publication date: 27-Jun-2011

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media