William Cheng-Chung Chu and Sukesh Patel*
Department of Information Science
Feng Chia University
Taichung, Taiwan 407, R.O.C.
*Fuji-Xerox Palo Alto Laboratory
3400 Hillview, Bldg. 4
Palo Alto, CA94304, U.S.A.
An important software design activity is decomposition of complex systems into conceptually independent modules that cooperate to achieve a desired result. This modularization represents a significant software engineering activity that continues to receive considerable research attention. This paper illustrates how software can be modularized by automatically determining the cohesiveness of modules in a system. Module cohesion is defined as a quality attribute that seeks to measure the singleness of purpose of a module. We extend earlier works on computing subprogram cohesion and propose a metric that measures the cohesion of composite modules consisting of individual subprograms. This metric is illustrated using detailed examples and is supported by empirical evidence which demonstrates the viability of the measure. An automated tool that computes composite module cohesion has also been developed and used to gather the cited experimental data.
Keywords: module cohesion, modularity, abstract classes, Ada, information hiding
Received June 6, 1995; revised July 12, 1996.
Communicated by Y.-S. Kuo.