Leveraging design rules to improve software architecture recovery
Citations Over TimeTop 10% of 2013 papers
Abstract
In order to recover software architecture, various clustering techniques have been created to automatically partition a software system into meaningful subsystems. While these techniques have demonstrated their effectiveness, we observe that a key feature within most software systems has not been fully exploited: most well-designed systems follow strong architectural design rules that split the overall system into modules. These design rules are often manifested as special program constructs, such as shared data structures or abstract interfaces, which should not belong to any of the subordinate modules. We contribute a new perspective of architecture recovery based on this rationale, which enables the combination of design-rule-based clustering with other clustering techniques, as well as enabling the splitting of a large system into subsystems. We evaluated our approach both quantitatively and qualitatively, using both open source and real industrial software projects.
Related Papers
- → A brief survey of software architecture concepts and service oriented architecture(2009)124 cited
- → What is software architecture?(2012)32 cited
- → A Review on Software Architecture Styles with Layered Robotic Software Architecture(2015)15 cited
- → SOFTWARE RESOURCE ARCHITECTURE(2001)18 cited
- Overview on Software Architecture Description(2003)