Program restructuring or refactoring is often required when a function becomes too large or is involved in multiple activities and therefore exhibits low cohesion. A critical factor in restructuring is to increase cohesion and decrease coupling. There are many existing methods which measure cohesion and coupling but do not provide much information as to how to restructure the program, while some other methods exist which only deals with restructuring the functions. The paper presents a simple but effective approach to function restructuring based on the experimental research on cohesion and coupling. Measure for software cohesion could be the first step of reengineering a software system to identify the functions with low cohesion. The next step is to restructure the identified functions. A clustering technique is presented in this paper which can assess the cohesiveness of a function and also gives indicaiton as to how to decompose a function to multiple high-cohesive functions. Seve...