• DocumentCode
    3178678
  • Title

    Using the Kleinberg Algorithm and Vector Space Model for Software System Clustering

  • Author

    Scanniello, Giuseppe ; D´Amico, Anna ; D´Amico, Carmela ; D´Amico, Teodora

  • Author_Institution
    Dipt. di Mat. e Inf., Univ. of Basilicata, Macchia Romana, Italy
  • fYear
    2010
  • fDate
    June 30 2010-July 2 2010
  • Firstpage
    180
  • Lastpage
    189
  • Abstract
    Clustering based approaches are generally difficult to use in practice since they need a significant human interaction for recovering software architectures, are conceived for a specific programming language, and very often do not use design knowledge (e.g., the implemented architectural model). In this paper we present a clustering based approach to recover the implemented architecture of software systems with a hierarchical structure and implemented with any object oriented programming language. The approach is based on the combination of structural and lexical dimensions. The structural dimension is used to decompose a software system into layers (i.e., horizontal decomposition), while the lexical dimension is then employed to partition each layer (i.e., vertical decomposition) into software modules. Layers are identified using a well known and widely employed link analysis algorithm, i.e., the Kleinberg algorithm, while Vector Space Model is used to vertically decompose the layers. To assess the approach and the underlying techniques, we also present a prototype of a supporting tool and the results from a case study conducted on subsequent versions of three open source Java software systems.
  • Keywords
    Java; object-oriented programming; pattern clustering; programming languages; public domain software; software architecture; Kleinberg Algorithm; hierarchical structure; object oriented programming language; open source Java software systems; software architectures; software modules; software system clustering approach; specific programming language; vector space model; Clustering algorithms; Computer architecture; Computer languages; Humans; Object oriented modeling; Object oriented programming; Partitioning algorithms; Software algorithms; Software architecture; Software systems; Architecture Recovery; Clustering; Link Analysis; Program Comprehension; Reverse Engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Program Comprehension (ICPC), 2010 IEEE 18th International Conference on
  • Conference_Location
    Braga, Minho
  • ISSN
    1092-8138
  • Print_ISBN
    978-1-4244-7604-6
  • Electronic_ISBN
    1092-8138
  • Type

    conf

  • DOI
    10.1109/ICPC.2010.17
  • Filename
    5521746