Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Reuse through inheritance: a quantitative study of C++ software
SSR '95 Proceedings of the 1995 Symposium on Software reusability
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
Pattern-oriented software architecture: a system of patterns
Pattern-oriented software architecture: a system of patterns
Analysis patterns: reusable objects models
Analysis patterns: reusable objects models
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML
Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML
A Unified Framework for Cohesion Measurement in Object-OrientedSystems
Empirical Software Engineering
Using Metrics to Identify Design Patterns in Object-Oriented Software
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
OO Design Patterns, Design Structure, and Program Changes: An Industrial Case Study
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Design Patterns and Change Proneness: An Examination of Five Evolving Systems
METRICS '03 Proceedings of the 9th International Symposium on Software Metrics
Defect Frequency and Design Patterns: An Empirical Study of Industrial Code
IEEE Transactions on Software Engineering
Static analysis tools as early indicators of pre-release defect density
Proceedings of the 27th international conference on Software engineering
Predicting the Location and Number of Faults in Large Software Systems
IEEE Transactions on Software Engineering
Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction
IEEE Transactions on Software Engineering
Predicting fault-prone components in a java legacy system
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
An empirical study on the evolution of design patterns
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
C# 3.0 design patterns
Common Trends in Software Fault and Failure Data
IEEE Transactions on Software Engineering
Design Patterns and Change Proneness: A Replication Using Proprietary C# Software
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
BUGINNINGS: identifying the origins of a bug
Proceedings of the 3rd India software engineering conference
Hi-index | 0.00 |
This paper documents a study of fault proneness in commercial, proprietary software and attempts to determine whether a relationship exists between class faults and the design context of a class, namely the coupling and cohesion of a class, and whether the class is a participant of common design patterns. The authors studied a commercial software system for a 24 month period and identified design pattern participants by inspecting the design documentation and source code; coupling and cohesion metrics were measured by inspecting the source code with a tool; we also extracted fault data for the same period to determine whether a relationship existed between the design context and the fault propensity of a class. Results showed that design pattern participant classes were marginally more fault-prone than non-participant classes, The Adaptor, Method and Singleton patterns were found to be the most fault-prone of thirteen patterns explored. Coupling was found to have a significant relationship with the fault proneness of classes in the system; efferent coupling was a stronger indicator of fault propensity than afferent coupling. Cohesion, when measured using the LCOMHS metric, was not found to have a strong relationship with fault proneness.