Software similarity-based functional cohesion metric

Cohesion is an important factor used in evaluating software design quality and modularity. The cohesion of a module refers to the relatedness of the module components. In software engineering, highly cohesive modules are highly desirable because of their high reusability and maintainability. Cohesion is classified according to levels. Functional cohesion, the strongest level, refers to how closely the module parts that contribute to different outputs are related. Here, a similarity-based functional cohesion (SBFC) metric is introduced to measure the functional cohesion of a module in a procedural or object-oriented program. The metric uses the degree of similarity between the data slices of the module as a basis to measure functional cohesion. The appropriateness of the metric is evaluated both theoretically and empirically. The evaluation results show that the metric does as well as some earlier metrics in indicating the level of cohesiveness and it does better than some in terms of providing different values for the modules of different cohesion. In addition, the SBFC metric is used as an indicator for restructuring the weakly cohesive modules.

[1]  P. A. Hausler Denotational program slicing , 1989, [1989] Proceedings of the Twenty-Second Annual Hawaii International Conference on System Sciences. Volume II: Software Track.

[2]  Rudolf Ferenc,et al.  Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems , 2008, IEEE Transactions on Software Engineering.

[3]  Heeae Ko,et al.  A Study on the Mobile Web Generating using Element of User Experience , 2007 .

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

[5]  James M. Bieman,et al.  Measuring Design-Level Cohesion , 1998, IEEE Trans. Software Eng..

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

[7]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[8]  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).

[9]  Linda M. Ott,et al.  Slice based metrics for estimating cohesion , 1993, [1993] Proceedings First International Software Metrics Symposium.

[10]  T. J. Emerson A discriminant metric for module cohesion , 1984, ICSE '84.

[11]  Letha H. Etzkorn,et al.  Clarifying specialized forms of association in UML and OML , 1998 .

[12]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984 .

[13]  Karl J. Ottenstein,et al.  The program dependence graph in a software development environment , 1984, SDE 1.

[14]  Jason Crampton,et al.  The interpretation and utility of three cohesion metrics for object-oriented design , 2006, TSEM.

[15]  W. J. Langford Statistical Methods , 1959, Nature.

[16]  Luis Fernández,et al.  A SENSITIVE METRIC OF CLASS COHESION , 2006 .

[17]  Letha H. Etzkorn,et al.  A Class Cohesion Metric For Object-Oriented Designs , 1999, J. Object Oriented Program..

[18]  Challa Bonja,et al.  Metrics for class cohesion and similarity between methods , 2006, ACM-SE 44.

[19]  Claus Lewerentz,et al.  Distance Based Cohesion Measuring , 1999 .

[20]  Arun Lakhotia Rule-based approach to computing module cohesion , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[21]  Tibor Gyimóthy,et al.  Empirical validation of object-oriented metrics on open source software for fault prediction , 2005, IEEE Transactions on Software Engineering.

[22]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[23]  Yuming Zhou,et al.  A comparative study of graph theory-based class cohesion measures , 2004, SOEN.

[24]  Will G. Hopkins,et al.  A new view of statistics , 2002 .

[25]  Mohammad Alshayeb,et al.  An Empirical Validation of Object-Oriented Metrics in Two Different Iterative Software Processes , 2003, IEEE Trans. Software Eng..

[26]  Stuart H. Zweben,et al.  Measuring the quality of structured designs , 1981, J. Syst. Softw..

[27]  James M. Bieman,et al.  Measuring Functional Cohesion , 1994, IEEE Trans. Software Eng..

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

[29]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.