Towards a metrics suite for object oriented design
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Fast static analysis of C++ virtual function calls
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An investigation into coupling measures for C++
ICSE '97 Proceedings of the 19th international conference on Software engineering
Call graph construction in object-oriented languages
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast interprocedural class analysis
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphism measures for early risk prediction
Proceedings of the 21st international conference on Software engineering
Coupling measures and change ripples in C++ application software
Journal of Systems and Software - Special issue on Evaluation and assessment in software engineering
Scalable propagation-based call graph construction algorithms
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extending and evaluating flow-insenstitive and context-insensitive points-to analyses for Java
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Points-to analysis for Java using annotated constraints
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parameterized object sensitivity for points-to and side-effect analyses for Java
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Assessing the Changeability of two Object-Oriented Design Alternatives—a Controlled Experiment
Empirical Software Engineering
A Metrics Suite for Object Oriented Design
IEEE Transactions on Software Engineering
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Predicting Fault-Proneness using OO Metrics: An Industrial Case Study
CSMR '02 Proceedings of the 6th European Conference on Software Maintenance and Reengineering
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Dynamic Coupling Measures for Object-Oriented Software
METRICS '02 Proceedings of the 8th International Symposium on Software Metrics
Using Coupling Measurement for Impact Analysis in Object-Oriented Systems
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Dataflow analysis of software fragments
Dataflow analysis of software fragments
Fragment Class Analysis for Testing of Polymorphism in Java Software
IEEE Transactions on Software Engineering
Dynamic Coupling Measurement for Object-Oriented Software
IEEE Transactions on Software Engineering
Precise Identification of Side-Effect-Free Methods in Java
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction
IEEE Transactions on Software Engineering
Precise identification of composition relationships for UML class diagrams
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Hi-index | 0.00 |
Coupling measures have important applications in software development and maintenance. They are used to reason about the structural complexity of software and have been shown to predict quality attributes such as fault-proneness, ripple effects of changes and changeability. Traditional object-oriented coupling measures do not account for polymorphic interactions, and thus underestimate the complexity of classes and fail to properly predict their quality attributes.To address this problem Arisholm et al. [3] define a family of dynamic coupling measures that account for polymorphism. They collect dynamic coupling measures through dynamic analysis and show that these measures are better indicators of complexity and better predictors of quality attributes than traditional coupling measures.This paper presents a new approach to the computation of dynamic coupling measures. Our approach uses static analysis, in particular class analysis, and is designed to work on incomplete programs. We perform experiments on several Java components and present a precision evaluation which shows that inexpensive class analysis such as RTA computes dynamic coupling measures with almost perfect precision. Our results indicate that inexpensive static analysis may be used as a more convenient, more practical and more precise alternative to dynamic analysis for the purposes of computation of dynamic coupling measures.