TY - GEN
T1 - Measuring architecture quality by structure plus history analysis
AU - Schwanke, Robert
AU - Xiao, Lu
AU - Cai, Yuanfang
PY - 2013
Y1 - 2013
N2 - This case study combines known software structure and revision history analysis techniques, in known and new ways, to predict bug-related change frequency, and uncover architecture-related risks in an agile industrial software development project. We applied a suite of structure and history measures and statistically analyzed the correlations between them. We detected architecture issues by identifying outliers in the distributions of measured values and investigating the architectural significance of the associated classes. We used a clustering method to identify sets of files that often change together without being structurally close together, investigating whether architecture issues were among the root causes. The development team confirmed that the identified clusters reflected significant architectural violations, unstable key interfaces, and important undocumented assumptions shared between modules. The combined structure diagrams and history data justified a refactoring proposal that was accepted by the project manager and implemented.
AB - This case study combines known software structure and revision history analysis techniques, in known and new ways, to predict bug-related change frequency, and uncover architecture-related risks in an agile industrial software development project. We applied a suite of structure and history measures and statistically analyzed the correlations between them. We detected architecture issues by identifying outliers in the distributions of measured values and investigating the architectural significance of the associated classes. We used a clustering method to identify sets of files that often change together without being structurally close together, investigating whether architecture issues were among the root causes. The development team confirmed that the identified clusters reflected significant architectural violations, unstable key interfaces, and important undocumented assumptions shared between modules. The combined structure diagrams and history data justified a refactoring proposal that was accepted by the project manager and implemented.
KW - change history
KW - fault prediction
KW - measure
KW - software architecture
KW - structure
UR - http://www.scopus.com/inward/record.url?scp=84886412212&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84886412212&partnerID=8YFLogxK
U2 - 10.1109/ICSE.2013.6606638
DO - 10.1109/ICSE.2013.6606638
M3 - Conference contribution
AN - SCOPUS:84886412212
SN - 9781467330763
T3 - Proceedings - International Conference on Software Engineering
SP - 891
EP - 900
BT - 2013 35th International Conference on Software Engineering, ICSE 2013 - Proceedings
T2 - 2013 35th International Conference on Software Engineering, ICSE 2013
Y2 - 18 May 2013 through 26 May 2013
ER -