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
Link To Document