• DocumentCode
    918381
  • Title

    Hierarchical Clustering for Software Architecture Recovery

  • Author

    Maqbool, Onaiza ; Babri, Haroon A.

  • Author_Institution
    Quaid-i-Azam Univ., Islamabad
  • Volume
    33
  • Issue
    11
  • fYear
    2007
  • Firstpage
    759
  • Lastpage
    780
  • Abstract
    Gaining an architectural level understanding of a software system is important for many reasons. When the description of a system´s architecture does not exist, attempts must be made to recover it. In recent years, researchers have explored the use of clustering for recovering a software system´s architecture, given only its source code. The main contributions of this paper are given as follows. First, we review hierarchical clustering research in the context of software architecture recovery and modularization. Second, to employ clustering meaningfully, it is necessary to understand the peculiarities of the software domain, as well as the behavior of clustering measures and algorithms in this domain. To this end, we provide a detailed analysis of the behavior of various similarity and distance measures that may be employed for software clustering. Third, we analyze the clustering process of various well-known clustering algorithms by using multiple criteria, and we show how arbitrary decisions taken by these algorithms during clustering affect the quality of their results. Finally, we present an analysis of two recently proposed clustering algorithms, revealing close similarities in their apparently different clustering approaches. Experiments on four legacy software systems provide insight into the behavior of well-known clustering algorithms and their characteristics in the software domain.
  • Keywords
    software architecture; arbitrary decisions; architectural level understanding; clustering algorithms; hierarchical clustering research; software architecture recovery; software domain; software modularization; Algorithm design and analysis; Clustering algorithms; Computer architecture; Partitioning algorithms; Reverse engineering; Software algorithms; Software architecture; Software measurement; Software systems; Taxonomy; Restructuring; Software Engineering; and reengineering; arbitrary decisions; architecture recovery; hierarchical clustering; reverse engineering;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2007.70732
  • Filename
    4339232