Abstract:
The structure of a software system deteriorates as a result of continuous maintenance
activity. For the purpose of software reengineering or reverse engineering, often the
software engineers get only the original source code as the most updated source of
information due to lack of current documentation and limited or nonexistent availability
of the original designers. The application of clustering techniques to the software systems
aiming to discover the feature-oriented and meaningful subsystems helps the software
engineers to understand the high-level features provided by those subsystems which is
very essential for the purpose of software reengineering and reverse engineering.
Continuous research is going on in the recent years -addressing different issues in the
software clustering problem. Similarity measurement is the key to perform successful
clustering. The similarity measurement criteria used in the existing clustering technique
has the common drawback that they do not incorporate the diversity of software systems.
Our approach introduces the use of the Knowledgebase which acts as the repository of
information about the internal structure of the Generic types of the software systems to
provide the guidelines on similarity measurement criteria and weights. The final
clustering is done by integrating automatically generated subsystems with the known
subsystems (provided by the Knowledgebase). Thus the new clustering technique is a
semi automatic technique with the provision of tuning the results by the software
engineers. In our research, we have developed a tool named BUET Cluster 1.0 which
implements our new clustering technique. This clustering tool has been evaluated by
using a benchmark named Mojo distance for different well known software systems. The
experimental results show that our approach generates more appropriate subsystems than
the other existing clustering techniques and outperforms other clustering techniques in
different dimensions of software clustering quality.