Reverse engineering software architecture using rough clusters
Jens H. Jahnke · IEEE Annual Meeting of the Fuzzy Information, 2004. Processing NAFIPS '04. · 2004
Software reverse engineering and program understanding deal with methods and techniques in support of maintenance and evolution of complex legacy software. A key challenge is to find effective mechanisms to (re-)create architectural abstractions of the software system, which aid human software engineers in understanding them. Much research has been devoted on developing algorithms for automated clustering of legacy software code into subsystem architectures. Still, few of these solutions are being used in industrial practice. We believe that this is mainly due to two main limitations, firstly, the lack of algorithms to represent approximate clusters, and secondly, the inability of clustering algorithms to use human expertise and domain knowledge about the legacy application. We describe an approach that applies rough set theory for the purpose of legacy software clustering, in order to overcome these limitations.