• DocumentCode
    3342837
  • 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
  • fYear
    1999
  • fDate
    6-8 Oct 1999
  • Firstpage
    235
  • Lastpage
    255
  • 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;
  • 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.806964
  • Filename
    806964