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

Measuring Functional Cohesion

Published: 01 August 1994 Publication History
  • Get Citation Alerts
  • Abstract

    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.

    References

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

    Cited By

    View all
    • (2023)Learning Program Semantics for Vulnerability Detection via Vulnerability-Specific Inter-procedural SlicingProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616351(1371-1383)Online publication date: 30-Nov-2023
    • (2019)What the fork: a study of inefficient and efficient forking practices in social codingProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338918(350-361)Online publication date: 12-Aug-2019
    • (2019)Sensitivity and Monotonicity in Class Cohesion MetricsProceedings of the 12th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)10.1145/3299771.3299794(1-5)Online publication date: 14-Feb-2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image IEEE Transactions on Software Engineering
    IEEE Transactions on Software Engineering  Volume 20, Issue 8
    August 1994
    118 pages

    Publisher

    IEEE Press

    Publication History

    Published: 01 August 1994

    Author Tags

    1. abstract transformations
    2. data slice abstraction
    3. data slices
    4. data tokens
    5. functional cohesion
    6. glue tokens
    7. software measurement scale
    8. software metrics
    9. super-glue tokens

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)Learning Program Semantics for Vulnerability Detection via Vulnerability-Specific Inter-procedural SlicingProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616351(1371-1383)Online publication date: 30-Nov-2023
    • (2019)What the fork: a study of inefficient and efficient forking practices in social codingProceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3338906.3338918(350-361)Online publication date: 12-Aug-2019
    • (2019)Sensitivity and Monotonicity in Class Cohesion MetricsProceedings of the 12th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)10.1145/3299771.3299794(1-5)Online publication date: 14-Feb-2019
    • (2018)An Analytical and Comparative Review of Cohesion MetricsProceedings of the 2018 International Conference on Software Engineering and Information Management10.1145/3178461.3178479(17-25)Online publication date: 4-Jan-2018
    • (2018)Dynamic structure measurement for distributed softwareSoftware Quality Journal10.1007/s11219-017-9369-326:3(1119-1145)Online publication date: 1-Sep-2018
    • (2017)Ontology Cohesion and Coupling MetricsInternational Journal on Semantic Web & Information Systems10.4018/IJSWIS.201710010113:4(1-26)Online publication date: 1-Oct-2017
    • (2017)How does refactoring affect internal quality attributes?Proceedings of the XXXI Brazilian Symposium on Software Engineering10.1145/3131151.3131171(74-83)Online publication date: 20-Sep-2017
    • (2017)An experimental search-based approach to cohesion metric evaluationEmpirical Software Engineering10.1007/s10664-016-9427-722:1(292-329)Online publication date: 1-Feb-2017
    • (2016)Dynamic cohesion measurement for distributed systemProceedings of the 1st International Workshop on Specification, Comprehension, Testing, and Debugging of Concurrent Programs10.1145/2975954.2975956(20-26)Online publication date: 3-Sep-2016
    • (2016)Cooperative Games and Coalition Cohesion Indices: The Choquet–Owen ValueIEEE Transactions on Fuzzy Systems10.1109/TFUZZ.2015.245976124:2(444-455)Online publication date: 1-Apr-2016
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media