DocumentCode
347804
Title
Restructuring functions with low cohesion
Author
Lakhotia, Arun ; Deprez, Jean-Christophe
Author_Institution
Center for Adv. Comput. Studies, Univ. of Southwestern Louisiana, Lafayette, LA, USA
fYear
1999
fDate
6-8 Oct 1999
Firstpage
36
Lastpage
46
Abstract
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
Keywords
program slicing; reverse engineering; software maintenance; systems re-engineering; complex code segment; function restructuring; high cohesion; legacy system re-architecting; low cohesion; object-oriented architecture; output variable partitioning; pairwise cohesion; program slicing; Algorithms; Computer architecture; Computer industry; Data processing; Environmental management; Programming profession; Reverse engineering; Software systems;
fLanguage
English
Publisher
ieee
Conference_Titel
Reverse Engineering, 1999. Proceedings. Sixth Working Conference on
Conference_Location
Atlanta, GA
Print_ISBN
0-7695-0303-9
Type
conf
DOI
10.1109/WCRE.1999.806945
Filename
806945
Link To Document