Title :
Experiments with clustering as a software remodularization method
Author :
Anquetil, Nicolas ; Lethbridge, Timothy C.
Author_Institution :
Sch. of Inf. Technol. & Eng., Ottawa Univ., Ont., Canada
Abstract :
As valuable software systems get old, reverse engineering becomes more and more important to the companies that have to maintain the code. Clustering is a key activity in reverse engineering to discover a better design of the systems or to extract significant concepts from the code. Clustering is an old activity, highly sophisticated, offering many methods to answer different needs. Although these methods have been well documented in the past, these discussions may not apply entirely to the reverse engineering domain. We study some clustering algorithms and other parameters to establish whether and why they could be used for software remodularization. We study three aspects of the clustering activity: abstract descriptions chosen for the entities to cluster; metrics computing coupling between the entities; and clustering algorithms. The experiments were conducted on three public domain systems (gcc, Linux and Mosaic) and a real world legacy system (2 million LOC). Among other things, we confirm the importance of a proper description scheme of the entities being clustered, we list a few good coupling metrics to use and characterize the quality of different clustering algorithms. We also propose novel description schemes not directly based on the source code and we advocate better formal evaluation methods for the clustering results
Keywords :
reverse engineering; software maintenance; software metrics; Linux; Mosaic; abstract descriptions; clustering activity; clustering algorithms; coupling metrics; description scheme; description schemes; formal evaluation methods; gcc; metrics; public domain systems; real world legacy system; reverse engineering domain; software remodularization; software remodularization method; source code; valuable software systems; Clustering algorithms; Clustering methods; Information technology; Linux; Maintenance engineering; Reverse engineering; Software engineering; Software maintenance; Software systems; Systems engineering and theory;
Conference_Titel :
Reverse Engineering, 1999. Proceedings. Sixth Working Conference on
Conference_Location :
Atlanta, GA
Print_ISBN :
0-7695-0303-9
DOI :
10.1109/WCRE.1999.806964