Abstract
In this paper, we investigate software architecture as a set of overlapping design rule spaces, formed by one or more structural or evolutionary relationships and clustered using our design rule hierarchy algorithm. Considering evolutionary coupling as a special type of relationship, we investigated (1) whether design rule spaces can reveal structural relations among error-prone files; (2) whether design rule spaces can reveal structural problems contributing to error-proneness.We studied three large-scale open source projects and found that error-prone files can be captured by just a few design rule sub-spaces. Supported by our tool, Titan, we are able to flexibly visualize design rule spaces formed by different types of relationships, including evolutionary dependencies. This way, we are not only able to visualize which error-prone files belong to which design rule spaces, but also to visualize the structural problems that give insight into why these files are error prone. Design rule spaces provide valuable direction on which parts of the architecture are problematic, and on why, when, and how to refactor.
Original language | English |
---|---|
Pages (from-to) | 967-977 |
Number of pages | 11 |
Journal | Proceedings - International Conference on Software Engineering |
Issue number | 1 |
DOIs | |
State | Published - 31 May 2014 |
Event | 36th International Conference on Software Engineering, ICSE 2014 - Hyderabad, India Duration: 31 May 2014 → 7 Jun 2014 |
Keywords
- Architecture Recovery
- Software Architecture
- Software Quality