Using Neural Networks to Modularize Software
Machine Learning - Special issue on structured connectionist systems
Predicting Fault-Prone Software Modules in Telephone Switches
IEEE Transactions on Software Engineering
On the criteria to be used in decomposing systems into modules
Communications of the ACM
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Quantitative Analysis of Faults and Failures in a Complex Software System
IEEE Transactions on Software Engineering
Predicting the Location and Number of Faults in Large Software Systems
IEEE Transactions on Software Engineering
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data Mining Static Code Attributes to Learn Defect Predictors
IEEE Transactions on Software Engineering
How to measure success of fault prediction models
Fourth international workshop on Software quality assurance: in conjunction with the 6th ESEC/FSE joint meeting
IEEE Transactions on Software Engineering
Software Structure Metrics Based on Information Flow
IEEE Transactions on Software Engineering
Predicting defects using network analysis on dependency graphs
Proceedings of the 30th international conference on Software engineering
Fair and balanced?: bias in bug-fix datasets
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Mercurial: The Definitive Guide
Mercurial: The Definitive Guide
Detecting software modularity violations
Proceedings of the 33rd International Conference on Software Engineering
Topology analysis of software dependencies
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
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.