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
fDate :
June 30 2010-July 2 2010
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;
Conference_Titel :
Program Comprehension (ICPC), 2010 IEEE 18th International Conference on
Conference_Location :
Braga, Minho
Print_ISBN :
978-1-4244-7604-6
Electronic_ISBN :
1092-8138
DOI :
10.1109/ICPC.2010.17