This Article 
 Bibliographic References 
 Add to: 
Measuring Functional Cohesion
August 1994 (vol. 20 no. 8)
pp. 644-657

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] A. L. Bakeret al., "A philosophy for software measurement,"J. Syst. Software, vol. 12, no. 3, pp. 277-281, July 1990.
[2] J. Bieman, A. Baker, P. Clites, D. Gustafson, and A. Melton, "A standard representation of imperative language programs for data collection and software measures specification,"J. Syst.&Software, vol. 8, no. 1, pp. 13-37, Jan. 1988.
[3] J. Bieman and L. Ott, "Measuring Functional Cohesion (Extended Version)," Tech. Rep. CS-93-109, Comput. Sci. Dept., Colorado State Univ. Tech. Rep. CS-93-1, Comput. Sci. Dept., Michigan Technological Univ., 1993.
[4] J. Bieman and J. Schultz, "Estimating the number of test cases required to satisfy the all-du-paths testing criterion," inProc. Software Testing, AnaI. Verification Symp. (TAV3-SIGSOFT89), Dec. 1989, pp. 179-186.
[5] J. Bieman and J. Schultz, "An empirical evaluation (and specification) of the all-du-paths testing criterion,"IEEE Software Eng. J., vol. 7, no. 1, pp. 43-51, Jan. 1992.
[6] P. Bollmann-Sdorra, and H. Zuse, "Prediction models and software complexity measures from a measurement theoretic view," inProc. 3rd Int. Software Qual. Conf. (3ISQC), 1993.
[7] J.-D. Choi, B. Miller, and P. Netzer, "Techniques for debugging parallel programs," Tech. Rep. 786, Univ. Wisconsin-Madison, 1988.
[8] T. J. Emerson, "Program testing, path coverage, and the cohesion metric," inProc. Comput. Software Applicat. Conf. (COMPSAC-84), pp. 421-431, 1984.
[9] T. Emerson, "A discriminant metric for module cohesion," inProc. Seventh Int. Conf. Software Eng., Orlando, FL, 1984, pp. 294-303.
[10] N. E. Fenton,Software Metrics: A Rigorous Approach. London, U.K.: Chapman&Hall, 1991.
[11] N. Fenton, "Software measurement: A necessary scientific basis,"IEEE Trans. Software Eng., vol. 20, no. 3, pp. 199-206, 1994.
[12] L. Finkelstein, "A review of the fundamental concepts of measurement,"Measurement, vol. 2, no. 1, pp. 25-34, 1984.
[13] K. B. Gallagher and J. R. Lyle, "Using program slicing in software maintenance,"IEEE Trans. Software Eng., vol. 17, no. 8, pp. 751-761, 1991.
[14] D. Gustafson, J. Tan, and P. Weaver, "Software measure specification" inProc. First ACM SIGSOFT Symp. Foundations of Software Eng., pp. 1993, 163-168.
[15] S. Horowitz, J. Prins, and T. Reps, "Integrating non-interfering versions of programs,"Trans. Program. Lang. Syst., vol. 11, no. 3, pp. 345-387, July 1989.
[16] S. Horwitz, T. Reps, and D. Binkley, "Interprocedural slicing using dependence graphs,"ACM Trans. Programming Languages and Systems, vol. 12, no. 1, pp. 35-46, Jan. 1990.
[17] B. Korel and J. Laski,Dynamic program slicing, " Inform. Processing Lett., vol. 29, no. 3, pp. 155-163, Oct. 1988.
[18] B. Korel and J. Laski, "STAD--a system for testing and debugging: User perspective," inProc. 2nd Workshop on Software Testing, Verification and Analysis (Banff, Alberta, Can.), July 1988, pp. 13-20.
[19] Arun Lakhotia, "Insights into relationships between end-slices," Tech. Rep. CACS TR-91-5-3, Univ. Southwestern Louisiana, Sept. 1991.
[20] Arun Lakhotia, "Rule-based approach to computing module cohesion," inProc. 15th Int. Conf. Software Eng. (ICSE-15), 1993, pp. 35-44.
[21] H. D. Longworth, "Slice based program metrics," Master's thesis, Michigan Technological Univ., 1985.
[22] H. D. Longworth, L. M. Ottenstein [Ott], and M. R. Smith, "The relationship between program complexity and slice complexity during debugging tasks," inProc. Comput. Software and Applicat. Conf. (COMPSACR6), 1986, pp. 383-389.
[23] A. Macro and J. Buxton,The Craft of Software Engineering. Reading, MA: Addison-Wesley, 1987.
[24] A. C. Melton, D. A. Gustafson, J. M. Bieman, and A. L. Baker, "A mathematical perspective for software measures research,"Software Eng. J., vol. 5, no. 5, pp. 246-254, Sept. 1990.
[25] L. M. Ott, "Using slice profiles and metrics during software maintenance," inProc. 10th Annu. Software Reliability Symp., 1992, pp. 16-23.
[26] L. M. Ott and J. M. Bieman, "Effects of Software changes on module cohesion,"Proc. Conf. Software Maint., Nov. 1992.
[27] K. Ottenstein and L. Ottenstein, "The program dependence graph in software development environments,"ACM SIGPLAN Notices, vol. 19, no. 5, pp. 177-184, May 1984; see also,Proc. ACM SIGSOFT/SIGPLAN Software Eng. Symp. Practical Software Development Environments.
[28] L. Ott and J. Thuss, "The relationship between slices and module cohesion," inProc. 11th Int. Conf. Software Eng., May 1989, pp. 198-204.
[29] L. M. Ott and J. J. Thuss, "Using slice profiles and metrics as tools in the production of reliable software," Tech. Rep. CS-92-8, Dept. Comput. Sci., Michigan Technological Univ., April, 1992. Also published as Tech. Rep. CS-92- 115 Dept. Comput. Sci., Colorado State Univ.
[30] L. M. Ott and J. J. Thuss, "Slice based metrics for estimating cohesion,"Proc. IEEE-CS Int. Software Metrics Symp., pp. 71-81, 1993.
[31] T. Reps and W. Yang, "The semantics of program slicing and program integration," inProc. Colloquium on Current Issues in Programming Lang., pp. 360-374, 1989. Lecture Notes in Computer Science, vol. 352. New York: Springer-Verlag.
[32] R. Selby and V. Basili, "Analyzing Error-Prone System Coupling and Cohesion," Tech. Rep. UMIACS-TR-86-46, Computer Science, Univ. of Maryland, June 1988.
[33] J. J. Thuss, "An investigation into slice based cohesion metrics," Master's thesis, Michigan-Technological Univ., 1988.
[34] D. Troy and S. Zweben, "Measuring the quality of structured designs,"J. Syst. and Software, vol. 2 pp. 113-120, 1981.
[35] M. Weiser, "Program slicing," inProc. 5th Int. Conf. Software Eng., May 1981, pp. 439-449.
[36] M. Weiser, "Programmers use slices when debugging,"Commun. ACM, vol. 25, no. 7, pp. 446-452, July 1982.
[37] M. D. Weiser, "Program slicing,"IEEE Trans. Software Eng., vol. 10, no. 4, pp. 352-357, 1984.
[38] L. Wilson and L. Leelasena, "The QUALMS program documentation," Tech. Rep. Alvey Project SE/69, SBP/102, South Bank Polytechnic, London, 1988.
[39] E. Yourdon and L. Constantine,Structured Design. Englewood Cliffs, NJ: Prentice-Hall, 1979.
[40] H. Zuse and P. Bollmann, "Software metrics: Using measurement theory to describe the properties and scales of software complexity metrics,"ACM SIGPLAN Notices, vol. 24, no. 8, pp. 23-33, Aug. 1989.
[41] H. Zuse,Software Complexity: Measures and Metrics, Berlin, Germany: Walter de Gruyter, 1991.
[42] H. Zuse, "Support of validation of software measures by measurement theory," Invited Presentation at the15th Int. Conf. Software Eng. (ICSEIS) and the First IEEE-CS Int. Software Metrics Symp., Baltimore, MD, May 1993.

Index Terms:
software metrics; functional cohesion; data slice abstraction; data tokens; glue tokens; super-glue tokens; data slices; software measurement scale; abstract transformations
J.M. Bieman, L.M. Ott, "Measuring Functional Cohesion," IEEE Transactions on Software Engineering, vol. 20, no. 8, pp. 644-657, Aug. 1994, doi:10.1109/32.310673
Usage of this product signifies your acceptance of the Terms of Use.