Reusability and life cycle issues within an object-oriented methodology
TOOLS 8 Proceedings of the eighth international conference on Technology of object oriented languages and systems
On regression testing of object-oriented programs
Journal of Systems and Software
Large-scale C++ software design
Large-scale C++ software design
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
Object-oriented software: design and maintenance
Object-oriented software: design and maintenance
Objects, components, and frameworks with UML: the catalysis approach
Objects, components, and frameworks with UML: the catalysis approach
A Unified Framework for Coupling Measurement in Object-Oriented Systems
IEEE Transactions on Software Engineering
Machine Learning
Software Metrics: A Rigorous and Practical Approach
Software Metrics: A Rigorous and Practical Approach
Replicated Case Studies for Investigating Quality Factorsin Object-Oriented Designs
Empirical Software Engineering
IEEE Software
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
Test Order for Inter-Class Integration Testing of Object-Oriented Software
COMPSAC '97 Proceedings of the 21st International Computer Software and Applications Conference
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Evaluating the Impact of Object-Oriented Design on Software Quality
METRICS '96 Proceedings of the 3rd International Symposium on Software Metrics: From Measurement to Empirical Results
Predicting Fault-Prone Classes with Design Measures in Object-Oriented Systems
ISSRE '98 Proceedings of the The Ninth International Symposium on Software Reliability Engineering
Revisiting Strategies for Ordering Class Integration Testing in the Presence of Dependency Cycles
ISSRE '01 Proceedings of the 12th International Symposium on Software Reliability Engineering
An Investigation of Graph-Based Class Integration Test Order Strategies
IEEE Transactions on Software Engineering
Dynamic Coupling Measurement for Object-Oriented Software
IEEE Transactions on Software Engineering
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
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
Test Order for Class-based Integration Testing of Java Applications
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
Predicting component failures at design time
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Object-oriented Systems Analysis and Design Using UML
Object-oriented Systems Analysis and Design Using UML
Data Mining Static Code Attributes to Learn Defect Predictors
IEEE Transactions on Software Engineering
Predicting Defects for Eclipse
PROMISE '07 Proceedings of the Third International Workshop on Predictor Models in Software Engineering
JooJ: real-time support for avoiding cyclic dependencies
ACSC '07 Proceedings of the thirtieth Australasian conference on Computer science - Volume 62
An empirical study of cycles among classes in Java
Empirical Software Engineering
Systematic review: A systematic review of effect size in software engineering experiments
Information and Software Technology
Designing Software for Ease of Extension and Contraction
IEEE Transactions on Software Engineering
Predicting Subsystem Failures using Dependency Graph Complexities
ISSRE '07 Proceedings of the The 18th IEEE International Symposium on Software Reliability
Predicting defects using network analysis on dependency graphs
Proceedings of the 30th international conference on Software engineering
Empirical Software Engineering
Java Application Architecture: Modularity Patterns with Examples Using OSGi
Java Application Architecture: Modularity Patterns with Examples Using OSGi
Change profiles of a reused class framework vs. two of its applications
Information and Software Technology
Identifying Cycle Causes with Enriched Dependency Structural Matrix
WCRE '09 Proceedings of the 2009 16th Working Conference on Reverse Engineering
An Empirical Study on the Relation between Dependency Neighborhoods and Failures
ICST '11 Proceedings of the 2011 Fourth IEEE International Conference on Software Testing, Verification and Validation
Characteristics of multiple-component defects and architectural hotspots: a large system case study
Empirical Software Engineering
A Systematic Literature Review on Fault Prediction Performance in Software Engineering
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
Background: Empirical evidence shows that dependency cycles among software components are pervasive in real-life software systems, although such cycles are known to be detrimental to software quality attributes such as understandability, testability, reusability, build-ability and maintainability. Research goals: Can the use of extended object-oriented metrics make us better understand the relationships among cyclic related components and their defect-proneness? Approach: First, we extend such metrics to mine and classify software components into two groups - the cyclic and the non-cyclic ones. Next, we have performed an empirical study of six software applications. Using standard statistical tests on four different hypotheses, we have determined the significance of the defect profiles of both groups. Results: Our results show that most defects and defective components are concentrated in cyclic-dependent components, either directly or indirectly. Discussion and conclusion: These results have important implications for software maintenance and system testing. By identifying the most defect-prone set in a software system, it is possible to effectively allocate testing resources in a cost efficient manner. Based on these results, we demonstrate how additional structural properties could be collected to understand component's defect proneness and aid decision process in refactoring defect-prone cyclic related components.