Software errors and complexity: an empirical investigation0
Communications of the ACM
Module size: a standard or heuristic?
Journal of Systems and Software - Special issue on the fifth Minnowbrook workshop on software performance evaluation
Identifying Error-Prone Software An Empirical Study
IEEE Transactions on Software Engineering
The impact of collinearity involving the intercept term on the numerical accuracy of regression
Computer Science in Economics and Management
IEEE Transactions on Software Engineering
Measuring software design quality
Measuring software design quality
Prediction and control of ADA software defects
Journal of Systems and Software - An Oregon workshop on software metrics
Analyzing Error-Prone System Structure
IEEE Transactions on Software Engineering
Rapid evolutionary development: requirements, prototyping & software creation
Rapid evolutionary development: requirements, prototyping & software creation
Object-oriented software metrics: a practical guide
Object-oriented software metrics: a practical guide
Using design patterns to develop reusable object-oriented communication software
Communications of the ACM - Special issue on object-oriented experiences and future trends
The relationship between errors and size in knowledge-based systems
International Journal of Human-Computer Studies - Special issue: verification and validation
Proceedings of the 20th international conference on Software engineering
An empirical study of a model for program error prediction
ICSE '85 Proceedings of the 8th international conference on Software engineering
A Critique of Software Defect Prediction Models
IEEE Transactions on Software Engineering
Software metrics: success, failures and new directions
Journal of Systems and Software - Special issue on invited articles on top systems and software engineering scholars
Exploring the relationship between design measures and software quality in object-oriented systems
Journal of Systems and Software
Metrics and Models in Software Quality Engineering
Metrics and Models in Software Quality Engineering
Error Density and Size in Ada Software
IEEE Software
Maintaining Object-Oriented Software
IEEE Software
Reexamining the Fault Density-Component Size Connection
IEEE Software
Does OO Sync with How We Think?
IEEE Software
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
An Empirical Investigation of an Object-Oriented Software System
IEEE Transactions on Software Engineering
Quantitative Analysis of Faults and Failures in a Complex Software System
IEEE Transactions on Software Engineering
Experience Using Design Patterns to Evolve Communication Software Across Diverse OS Platforms
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Some Misconceptions About Lines of Code
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Modeling Design/Coding Factors That Drive Maintainability of Software Systems
Software Quality Control
IEEE Transactions on Software Engineering
A Study of Design Characteristics in Evolving Software Using Stability as a Criterion
IEEE Transactions on Software Engineering
API-Based and Information-Theoretic Metrics for Measuring the Quality of Software Modularization
IEEE Transactions on Software Engineering
A Replicated Quantitative Analysis of Fault Distributions in Complex Software Systems
IEEE Transactions on Software Engineering
Modeling the Effect of Size on Defect Proneness for Open-Source Software
PROMISE '07 Proceedings of the Third International Workshop on Predictor Models in Software Engineering
Theory of relative defect proneness
Empirical Software Engineering
On the Relation between Class-Count and Modeling Effort
Models in Software Engineering
Finding software metrics threshold values using ROC curves
Journal of Software Maintenance and Evolution: Research and Practice
A large-scale empirical study of practitioners' use of object-oriented concepts
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Testing the theory of relative defect proneness for closed-source software
Empirical Software Engineering
Optimizing cost and quality by integrating inspection and test processes
Proceedings of the 2011 International Conference on Software and Systems Process
Towards a model to support in silico studies of software evolution
Proceedings of the ACM-IEEE international symposium on Empirical software engineering and measurement
A Longitudinal Study of Fan-In and Fan-Out Coupling in Open-Source Systems
International Journal of Information System Modeling and Design
Web-GIS models: accomplishing modularity with aspects
Innovations in Systems and Software Engineering
Hi-index | 0.01 |
A growing body of literature suggests that there is an optimal size for software components. This means that components that are too small or too big will have a higher defect content (i.e., there is a U-shaped curve relating defect content to size). The U-shaped curve has become known as the Goldilocks Conjecture. Recently, a cognitive theory has been proposed to explain this phenomenon and it has been expanded to characterize object-oriented software. This conjecture has wide implications for software engineering practice. It suggests 1) that designers should deliberately strive to design classes that are of the optimal size, 2) that program decomposition is harmful, and 3) that there exists a maximum (threshold) class size that should not be exceeded to ensure fewer faults in the software. The purpose of the current paper is to evaluate this conjecture for object-oriented systems. We first demonstrate that the claims of an optimal component/class size (1) above) and of smaller components/classes having a greater defect content (2) above) are due to a mathematical artifact in the analyses performed previously. We then empirically test the threshold effect claims of this conjecture (3) above). To our knowledge, the empirical test of size threshold effects for object-oriented systems has not been performed thus far. We performed an initial study with an industrial C++ system and repeated it twice on another C++ system and on a commercial Java application. Our results provide unambiguous evidence that there is no threshold effect of class size. We obtained the same result for three systems using four different size measures. These findings suggest that there is a simple continuous relationship between class size and faults, and that, optimal class size, smaller classes are better and threshold effects conjectures have no sound theoretical nor empirical basis.