Leveraging design rules to improve software architecture recovery

  • Authors:
  • Yuanfang Cai;Hanfei Wang;Sunny Wong;Linzhang Wang

  • Affiliations:
  • Drexel University, Philadelphia, PA, USA;Nanjing University, Nanjing, China;Siemens Healthcare, Malvern, PA, USA;Nanjing University, Nanjing, China

  • Venue:
  • Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

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.