2006-09-01
Program restructuring using clustering techniques
Publication
Publication
Journal of Systems and Software , Volume 79 - Issue 9 p. 1261- 1279
Program restructuring is a key method for improving the quality of ill-structured programs, thereby increasing the understandability and reducing the maintenance cost. It is a challenging task and a great deal of research is still ongoing. This paper presents an approach to program restructuring inside of a function based on clustering techniques with cohesion as the major concern. Clustering has been widely used to group related entities together. The approach focuses on automated support for identifying ill-structured or low-cohesive functions and providing heuristic advice in both the development and evolution phases. A new similarity measure is defined and studied intensively specifically from the function perspective. A comparative study on three different hierarchical agglomerative clustering algorithms is also conducted. The best algorithm is applied to restructuring of functions of a real industrial system. The empirical observations show that the heuristic advice provided by the approach can help software designers make better decision of why and how to restructure a program. Specific source code level software metrics are presented to demonstrate the value of the approach.
Additional Metadata | |
---|---|
Clustering, Program restructuring | |
dx.doi.org/10.1016/j.jss.2006.02.037 | |
Journal of Systems and Software | |
Organisation | Department of Systems and Computer Engineering |
Lung, C.H, Xu, X. (Xia), Zaman, M. (Marzia), & Srinivasan, A. (Anand). (2006). Program restructuring using clustering techniques. Journal of Systems and Software, 79(9), 1261–1279. doi:10.1016/j.jss.2006.02.037
|