Dynamic Coupling Measurement for Object-Oriented Software
IEEE Transactions on Software Engineering
Program restructuring using clustering techniques
Journal of Systems and Software - Special issue: Selected papers from the 4th source code analysis and manipulation (SCAM 2004) workshop
A formal mechanism for analysis and re-implementation of legacy programs
SE '08 Proceedings of the IASTED International Conference on Software Engineering
Software refactoring at the function level using new Adaptive K-Nearest Neighbor algorithm
Advances in Engineering Software
Hi-index | 0.00 |
We present a technique for restructuring functions with low cohesion into functions with high cohesion. Such restructuring is desirable when rearchitecting 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 pair-wise 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.