A Proposal of a New Class Cohesion Criterion: An Empirical Study

Class cohesion refers to the degree of the relatedness of the members in a class. It is considered as one of most important object-oriented software attributes. Several metrics have been proposed in the literature in order to measure class cohesion in objectoriented systems. They capture class cohesion in terms of connections among members within a class. The major existing class cohesion metrics are essentially based on instance variables usage criteria. It is only a special and a restricted way of capturing class cohesion. We believe, as stated in many papers, that class cohesion should not exclusively be based on common instance variables usage criteria. We introduce, in this paper, a new criterion, which focuses on interactions between class methods. We developed a cohesion measurement tool for Java programs and performed a case study on several systems. The obtained results demonstrate that our new class cohesion metric, based on the proposed cohesion criteria, captures several pairs of related methods, which are not captured by the existing cohesion metrics.

[1]  Martin Hitz,et al.  Measuring coupling and cohesion in object-oriented systems , 1995 .

[2]  François Lustman,et al.  Cohesion as Changeability Indicator in Object-Oriented Systems , 2001, CSMR.

[3]  Sallie M. Henry,et al.  Object-oriented metrics that predict maintainability , 1993, J. Syst. Softw..

[4]  Lionel C. Briand,et al.  Exploring the relationships between design measures and software quality in object-oriented systems , 2000, J. Syst. Softw..

[5]  김수동,et al.  [서평]「Software Engineering : A Practitioner's Approach, 4^(th) Edition」 , 1997 .

[6]  David P. Darcy,et al.  Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis , 1998, IEEE Trans. Software Eng..

[7]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[8]  Pedro Manuel Moreira Vaz Antunes de Sousa,et al.  Proceedings of the Fifth European Conference on Software Maintenance and Reengineering , 2000 .

[9]  Rudolf K. Keller,et al.  Class Cohesion Revisited : An Empirical Study on Industrial Systems , 2000 .

[10]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[11]  Lionel C. Briand,et al.  A Unified Framework for Cohesion Measurement in Object-Oriented Systems , 2004, Empirical Software Engineering.

[12]  Gerald W. Both,et al.  Object-oriented analysis and design with applications , 1994 .

[13]  Glenford J. Myers,et al.  Structured Design , 1999, IBM Syst. J..

[14]  Heung Seok Chae,et al.  A cohesion measure for classes in object-oriented systems , 1998, Proceedings Fifth International Software Metrics Symposium. Metrics (Cat. No.98TB100262).

[15]  Doo-Hwan Bae,et al.  A cohesion measure for object‐oriented classes , 2000, Softw. Pract. Exp..

[16]  Brian Henderson-Sellers,et al.  Object-Oriented Metrics , 1995, TOOLS.

[17]  William Et.Al Hines,et al.  Probability and Statistics in Engineering , 2003 .

[18]  Craig Larman,et al.  Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process , 2001 .

[19]  Javam C. Machado,et al.  The prediction of faulty classes using object-oriented design metrics , 2001, J. Syst. Softw..

[20]  F KemererChris,et al.  Towards a metrics suite for object oriented design , 1991 .

[21]  Doo-Hwan Bae,et al.  A cohesion measure for object‐oriented classes , 2000 .

[22]  James M. Bieman,et al.  Cohesion and reuse in an object-oriented system , 1995, SSR '95.

[23]  Chris F. Kemerer,et al.  Towards a metrics suite for object oriented design , 2017, OOPSLA '91.

[24]  Victor R. Basili,et al.  A Validation of Object-Oriented Design Metrics as Quality Indicators , 1996, IEEE Trans. Software Eng..