Architecture Recovery Based on Design Rule Hierarchy

Yuanfang Cai,Hanfei Wang,Linzhang Wang
2011-01-01
Abstract:Software clustering techniques have been extensively studied for the purpose of retrieving a high-level structure of a software system. While prior work has been effective for legacy systems, we observe that a key feature of modern software architectures has not been exploited to improve architecture recovery from code. In this paper, we contribute new architecture recovery techniques based on design rule theory. The rationale is that modern software architecture often features architecture-level design rules that are implemented as special program constructs, such as abstract interfaces. These design rules decouple the rest of the system into components, rather than belonging to one of them. We contribute a family of architecture recovery techniques based on this rationale, enabling the combination of design rule based clustering with other clustering techniques, and the splitting of a large system into subsystems. We evaluated our approach both quantitatively and qualitatively, using eight subjects including open source and real industrial software projects. Keywords-Architecture Recovery, Design Rule, Modularity, Reverse Engineering
What problem does this paper attempt to address?