Software errors and complexity: an empirical investigation0
Communications of the ACM
An Analysis of Several Software Defect Models
IEEE Transactions on Software Engineering
Prediction and control of ADA software defects
Journal of Systems and Software - An Oregon workshop on software metrics
A case history analysis of software error cause-effect relationships
IEEE Transactions on Software Engineering
Orthogonal Defect Classification-A Concept for In-Process Measurements
IEEE Transactions on Software Engineering - Special issue on software measurement principles, techniques, and environments
IEEE Transactions on Software Engineering - Special issue on software architecture
Architecture-based software testing
ISAW '96 Joint proceedings of the second international software architecture workshop (ISAW-2) and international workshop on multiple perspectives in software development (Viewpoints '96) on SIGSOFT '96 workshops
Predicting Fault-Prone Software Modules in Telephone Switches
IEEE Transactions on Software Engineering
Experiences with criticality predictions in software development
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
Journal of Software Maintenance: Research and Practice
Experimentation in software engineering: an introduction
Experimentation in software engineering: an introduction
A case study in root cause defect analysis
Proceedings of the 22nd international conference on Software engineering
Deriving fault architectures from defect history
Journal of Software Maintenance: Research and Practice
The distribution of faults in a large industrial software system
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Successful Software Reengineering
Successful Software Reengineering
Quantitative Analysis of Development Defects to Guide Testing: A Case Study
Software Quality Control
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Quantitative Analysis of Faults and Failures in a Complex Software System
IEEE Transactions on Software Engineering
A survey on software architecture analysis methods
IEEE Transactions on Software Engineering
Software Architecture in Practice
Software Architecture in Practice
An analysis of errors and their causes in system programs
Proceedings of the international conference on Reliable software
Identification of Green, Yellow and Red Legacy Components
ICSM '98 Proceedings of the International Conference on Software Maintenance
Software Architecture Transformations
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Reconciling Software Requirements and Architectures: The CBSP Approach
RE '01 Proceedings of the Fifth IEEE International Symposium on Requirements Engineering
IEEE Software
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
Software Architectures Change Propagation Tool (SACPT)
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
The Architectural Change Process
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Predicting the Location and Number of Faults in Large Software Systems
IEEE Transactions on Software Engineering
The Vital Few Versus the Trivial Many: Examining the Pareto Principle for Software
COMPSAC '05 Proceedings of the 29th Annual International Computer Software and Applications Conference - Volume 01
Software Architecture as a Set of Architectural Design Decisions
WICSA '05 Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture
Mining metrics to predict component failures
Proceedings of the 28th international conference on Software engineering
Experience in teaching a software reengineering course
Proceedings of the 28th international conference on Software engineering
Detection of anomalies in software architecture with connectors
Science of Computer Programming - Special issue on quality system and software architectures
Predicting component failures at design time
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
A Replicated Quantitative Analysis of Fault Distributions in Complex Software Systems
IEEE Transactions on Software Engineering
The Economics of Architecture-First
IEEE Software
IEEE Transactions on Software Engineering
Summary for leadership and management in software architecture (lMSA 2008)
Companion of the 30th international conference on Software engineering
Nine Things You Can Do with Old Software
IEEE Software
Optimizing preventive service of software products
IBM Journal of Research and Development
Evolving defect "folklore": a cross-study analysis of software defect behavior
SPW'05 Proceedings of the 2005 international conference on Unifying the Software Process Spectrum
A study of cyclic dependencies on defect profile of software components
Journal of Systems and Software
Hi-index | 0.00 |
The architecture of a large software system is widely considered important for such reasons as: providing a common goal to the stakeholders in realising the envisaged system; helping to organise the various development teams; and capturing foundational design decisions early in the development. Studies have shown that defects originating in system architectures can consume twice as much correction effort as that for other defects. Clearly, then, scientific studies on architectural defects are important for their improved treatment and prevention. Previous research has focused on the extent of architectural defects in software systems. For this paper, we were motivated to ask the following two complementary questions in a case study: (i) How do multiple-component defects (MCDs)--which are of architectural importance--differ from other types of defects in terms of (a) complexity and (b) persistence across development phases and releases? and (ii) How do highly MCD-concentrated components (the so called, architectural hotspots) differ from other types of components in terms of their (a) interrelationships and (b) persistence across development phases and releases? Results indicate that MCDs are complex to fix and are persistent across phases and releases. In comparison to a non-MCD, a MCD requires over 20 times more changes to fix it and is 6 to 8 times more likely to cross a phase or a release. These findings have implications for defect detection and correction. Results also show that 20% of the subject system's components contain over 80% of the MCDs and that these components are 2---3 times more likely to persist across multiple system releases than other components in the system. Such MCD-concentrated components constitute architectural "hotspots" which management can focus upon for preventive maintenance and architectural quality improvement. The findings described are from an empirical study of a large legacy software system of size over 20 million lines of code and age over 17 years.