TY - CONF TI - Restructuring functions with low cohesion AU - Lakhotia, A. AU - Deprez, J.-C. T2 - Sixth Working Conference on Reverse Engineering, 1999. Proceedings AB - We present a technique for restructuring functions with low cohesion into functions with high cohesion. Such restructuring is desirable when re-architecting a legacy system into an object-oriented architecture. The restructured system has functions with higher cohesion and hence lower coupling. This enables finer-grained grouping of functions into objects. Automatically decomposing a function is difficult when its computations are interleaved. The challenge lies in programmatically identifying and separating the various activities performed by a complex code segment. The technique presented partitions the set of output variables of a function on the basis of their pairwise cohesion. Program slicing is then used to identify the statements that perform computations for each variable group in the partition. New functions corresponding to the slices are created to replace the original function. Experiences with restructuring real-world code using a tool that implements the technique are presented C3 - Sixth Working Conference on Reverse Engineering, 1999. Proceedings DA - 1999/// PY - 1999 DO - 10.1109/WCRE.1999.806945 DP - IEEE Xplore SP - 36 EP - 46 KW - Algorithms KW - Computer architecture KW - Computer industry KW - Data processing KW - Environmental management KW - Programming profession KW - Reverse engineering KW - Software systems KW - complex code segment KW - function restructuring KW - high cohesion KW - legacy system re-architecting KW - low cohesion KW - object-oriented architecture KW - output variable partitioning KW - pairwise cohesion KW - program slicing KW - software maintenance KW - systems re-engineering ER -