Software reconnaissance: mapping program features to code
Journal of Software Maintenance: Research and Practice
Recovering software architecture from the names of source files
Journal of Software Maintenance: Research and Practice
Using Clustering Algorithms in Legacy Systems Remodularization
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
Experiments with Clustering as a Software Remodularization Method
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
ACDC: An Algorithm for Comprehension-Driven Clustering
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Aiding Program Comprehension by Static and Dynamic Feature Analysis
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Object-Oriented Software Engineering: A Use Case Driven Approach
Object-Oriented Software Engineering: A Use Case Driven Approach
Software Clustering Based on Dynamic Dependencies
CSMR '05 Proceedings of the Ninth European Conference on Software Maintenance and Reengineering
Software Clustering based on Omnipresent Object Detection
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)
BIT: a tool for instrumenting java bytecodes
USITS'97 Proceedings of the USENIX Symposium on Internet Technologies and Systems on USENIX Symposium on Internet Technologies and Systems
Some Stability Measures for Software Maintenance
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Understanding a large software system can be made easier if the system is decomposed into smaller and more manageable clusters; software engineers can focus on analyzing only the subsystems needed to solve the maintenance task at hand. There exist several software clustering techniques, among which the most predominant ones are based on the analysis of the source code. However, due to the increasing complexity of software, we argue that this structural clustering is no longer sufficient. In this paper, we present a novel clustering approach based on dynamic analysis. The technique is based on measuring the similarity between the components of the system under study according to the number of software features they implement. A discussion on why software features can be a good candidate clustering criterion is presented. We also present a preliminary case study that supports the applicability of the proposed approach.