Measuring Functional Cohesion

We examine the functional cohesion of procedures using a data slice abstraction. Our analysis identifies the data tokens that lie on more than one slice as the "glue" that binds separate components together. Cohesion is measured in terms of the relative number of glue tokens, tokens that lie on more than one data slice, and super-glue tokens, tokens that lie on all data slices in a procedure, and the adhesiveness of the tokens. The intuition and measurement scale factors are demonstrated through a set of abstract transformations. >

[1]  Victor R. Basili,et al.  The TAME Project: Towards Improvement-Oriented Software Environments , 1988, IEEE Trans. Software Eng..

[2]  Norman E. Fenton,et al.  Software Metrics: A Rigorous Approach , 1991 .

[3]  David W. Binkley,et al.  Interprocedural Slicing Using Dependence Graphs , 1988, PLDI.

[4]  Victor R. Basili,et al.  Analyzing Error-Prone System Coupling and Cohesion , 1988 .

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

[6]  Janusz W. Laski,et al.  Dynamic Program Slicing , 1988, Inf. Process. Lett..

[7]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[8]  John N. Buxton,et al.  Craft of software engineering , 1987, International computer science series.

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

[10]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[11]  Horst Zuse,et al.  Software metrics: using measurement theory to describe the properties and scales of static software complexity metrics , 1989, SIGP.

[12]  Albert L. Baker,et al.  A standard representation of imperative language programs for data collection and software measures specification , 1988, J. Syst. Softw..

[13]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

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

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

[16]  Norman E. Fenton,et al.  Measurement : A Necessary Scientific Basis , 2004 .

[17]  Linda M. Ott,et al.  The relationship between slices and module cohesion , 1989, ICSE '89.

[18]  James M. Bieman,et al.  An empirical evaluation (and specification) of the all-du-paths testing criterion , 1992, Softw. Eng. J..

[19]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .

[20]  Bogdan Korel,et al.  STAD-a system for testing and debugging: user perspective , 1988, [1988] Proceedings. Second Workshop on Software Testing, Verification, and Analysis.

[21]  James M. Bieman,et al.  Estimating the number of test cases required to satisfy the all-du-paths testing criterion , 1989, TAV3.

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

[23]  David A. Gustafson,et al.  Software measure specification , 1993, SIGSOFT '93.

[24]  Albert L. Baker,et al.  A mathematical perspective for software measures research , 1990, Softw. Eng. J..

[25]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[26]  Wuu Yang,et al.  The Semantics of Program Slicing and Program Integration , 1989, TAPSOFT, Vol.2.

[27]  Horst Zuse,et al.  Software complexity: Measures and methods , 1990 .

[28]  James M. Bieman,et al.  Effects of software changes on module cohesion , 1992, Proceedings Conference on Software Maintenance 1992.

[29]  Albert L. Baker,et al.  A philosophy for software measurement , 1990, J. Syst. Softw..

[30]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[31]  L. Finkelstein,et al.  A review of the fundamental concepts of measurement , 1984 .

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