More Information about Funco

A functional cohesion measurement tool for C Programs


The beta version of Funco is now available. Funco is the first prototype tool to automatically generate the functional cohesion measures defined by Bieman and Ott in "Measuring Functional Cohesion," IEEE Transactions on Software Engineering 20(8), Aug. 1994. Funco is designed to run in a UNIX environment to analyze C programs developed using the gcc compiler.

Funco is the only automated tool for measuring functional cohesion. It measures the extent to which a module approaches the ideal of functional cohesion. For each function in an input source, Funco creates "data slices" and generates three measures: Weak Functional Cohesion (WFC), Strong Functional Cohesion (SFC), and Adhesiveness (A). These measures are based on the interactions between data slices. Funco also generates summary and related statistics for the input source file.

Module cohesion indicates how closely related a module's internal components are to one another. A highly cohesive software module has one basic function and is indivisible---it is difficult to split a cohesive module into separate components. Cohesion is related to the ease of debugging, maintainability, and modifiability.

Cohesion was originally assessed subjectively; such assessments cannot be automated. As a result, cohesion has not been effectively used as a software quality indicator.

Funco, a new cohesion measurement tool, can objectively assess the functional cohesion of C modules. Measurements are based on the relative number of ``glue'' or ``adhesive'' data tokens that lie on module ``output data slices,'' a sequence of data tokens with a dependence relationship on an output. ``Glue tokens'' are data tokens common to more than one data slice and ``superglue tokens'' are common to every data slice. The adhesiveness of a data token is the number of data slices to which the data token is common.

Weak functional cohesion (WFC) is the ratio of glue tokens to the total number of tokens. Strong functional cohesion (SFC) is the ratio of superglue tokens to the total number of data tokens. Adhesiveness (A) is the ratio of the amount of adhesiveness to the maximum possible adhesiveness.

Click here to see an example Funco computation (postscript).

Funco now computes a set of design-level cohesion measures. These measures are based on the cohesion indicated by the interface of a C function. More details will be posted soon.


Choices:

  • To download Funco.
  • Funco homepage.
  • A long postscript technical report describing the functional cohesion measures implemented by Funco.
  • For a published article about the functional cohesion measures implemented by Funco see Bieman and Ott, "Measuring Functional Cohesion," IEEE Transactions on Software Engineering 20(8), Aug. 1994.
  • Funco copyrights/copyleft and Gnu.

  • The Funco web pages are still under construction. Watch this page for further developments.
    Last updated Monday, January 8, 1997