Abstract
The size and complexity of industrial strength software systems are constantly increasing. This means that the task of managing a large software project is becoming even more challenging, especially in light of high turnover of experienced personnel. Software clustering approaches can help with the task of understanding large, complex software systems by automatically decomposing them into smaller, easier-to-manage subsystems. The main objective of this paper is to identify important research directions in the area of software clustering that require further attention in order to develop more effective and efficient clustering methodologies for software engineering. To that end, we first present the state of the art in software clustering research. We discuss the clustering methods that have received the most attention from the research community and outline their strengths and weaknesses. Our paper describes each phase of a clustering algorithm separately. We also present the most important approaches for evaluating the effectiveness of software clustering.
Highlights
Software clustering methodologies group entities of a software system, such as classes or source files, into meaningful subsystems in order to help with the process of understanding the high-level structure of a large and complex software system
A software clustering approach that is successful in accomplishing this task can have significant practical value for software engineers, those working on legacy systems with obsolete or nonexistent documentation
The presentation of software clustering results is an open research question that is related to scientific visualization and human-computer interaction
Summary
Software clustering methodologies group entities of a software system, such as classes or source files, into meaningful subsystems in order to help with the process of understanding the high-level structure of a large and complex software system. Research in software clustering has been actively carried out for more than twenty years. During this time, several software clustering algorithms have been published in the literature [1,2,3,4,5,6,7,8]. Several software clustering algorithms have been published in the literature [1,2,3,4,5,6,7,8] Most of these algorithms have been applied to particular software systems with considerable success. We present a review of the most important software clustering methodologies that have been presented in the literature.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have