skip to main content
10.1145/1188966.1188980dlproceedingsArticle/Chapter ViewAbstractPublication PagescasconConference Proceedingsconference-collections
Article

Static analysis for dynamic coupling measures

Published:16 October 2006Publication History

ABSTRACT

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.

References

  1. O. Agesen. The cartesian product algorithm: Simple and precise type inference of parametric polymorphism. In European Conference on Object-Oriented Programming, pages 2--26, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. Arisholm. Dynamic coupling measurement for object-oriented software. In IEEE METRICS, pages 33--42, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. E. Arisholm, L. Briand, and A. Foyen. Dynamic coupling measurement for object-oriented software. IEEE Trans. Software Engineering, 30(8):491--506, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. E. Arisholm, D. Sjoberg, and M. Jorgensen. Assessing the chaneability of two object-oriented design alternatives---a controlled experiment. Emperical Software Engineering, 6(3):231--277, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Bacon and P. Sweeney. Fast static analysis of C++ virtual function calls. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 324--341, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Benlarbi and W. Melo. Polymorphism measures for early risk prediction. In ACM/IEEE International Conference on Software Engineering, pages 334--344, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. M. Berndl, O. Lhotak, F. Qian, L. Hen-dren, and N. Umanee. Points-to analysis using BDD's. In ACM Conference on Programming Language Design and Implementation, pages 103--114, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. L. C. Briand, P. T. Devanbu, and W. L. Melo. An investigation into coupling measures for C++. In ACM/IEEE International Conference on Software Engineering, pages 412--421, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. C. Briand, J. Wust, and H. Lounis. Using coupling measurement for impact analysis in object-oriented systems. In IEEE International Conference on Software Maintenance, pages 475--482, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Chidamber and C. F. Kemerer. Towards a metrics suite for object oriented design. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 197--211, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Trans. Software Engineering, 20(6):476--493, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Dean, D. Grove, and C. Chambers. Optimizations of object-oriented programs using static class hierarchy analysis. In European Conference on Object-Oriented Programming, pages 77--101, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. G. DeFouw, D. Grove, and C. Chambers. Fast interprocedural class analysis. In ACM Symposium on Principles of Programming Languages, pages 222--236, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. J. Eder, G. Kappel, and M. Schrefl. Coupling and cohesion in object-oriented systems. In Conference on Information and Knowledge Management, 1992.Google ScholarGoogle Scholar
  15. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. D. Grove, G. DeFouw, J. Dean, and C. Chambers. Call graph construction in object-oriented languages. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 108--124, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. T. Gyimoty, R. Ferenc, and I. Siket. Emprirical validation of object-oriented metrics on open source software for fault prediciotn. IEEE Trans. Software Engineering, 31(10):897--910, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. O. Lhotak and L. Hendren. Scaling Java points-to analysis using Spark. In International Conference on Compiler Construction, pages 153--169, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Liang, M. Pennings, and M. J. Harrold. Extending and evaluating flow-insensitive and context-insensitive points-to analyses for Java. In ACM Workshop on Program Analysis for Software Tools and Engineering, pages 73--79, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Milanova. Precise identification of composition relationships for UML class diagrams. In IEEE/ACM Conference on Automated Software Engineering, pages 76--85, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. A. Milanova. Composition inference for UML class diagrams. Technical Report 06--06, Rensselaer Polytechnic Institute, April 2006.Google ScholarGoogle Scholar
  22. A. Milanova, A. Rountev, and B. Ryder. Parameterized object-sensitivity for points-to and side-effect analyses for Java. In ACM International Symposium on Software Testing and Analysis, pages 1--12, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Rountev. Dataflow Analysis of Software Fragments. PhD thesis, Rutgers University, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Rountev. Precise identification of side-effect free methods. In IEEE International Conference on Software Maintenance, pages 82--91, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Rountev, A. Milanova, and B. G. Ryder. Points-to analysis for Java using annotated constraints. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 43--55, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Rountev, A. Milanova, and B. G. Ryder. Fragment class analysis for testing of polymorphism in Java softwhare. IEEE Trans. Software Engineering, 30(6):372--386, June 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Streckenbach and G. Snelting. Points-to for Java: A general framework and an emprirical comparison. Technical report, U. Passau, September 2000.Google ScholarGoogle Scholar
  28. F. Tip and J. Palsberg. Scalable propagation-based call graph construction algorithms. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 281--293, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. F. G. Wilkie and B. Kitchenham. Coupling measures and change ripples in C++ application software. Journal of Systems and Software, 52(2):157--164, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. P. Yu, T. Systa, and H. A. Muller. Predicting fault-proneness using oo metrics: An industrial case study. In European Conference on Software Maintenance and Reengineering, pages 99--107, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static analysis for dynamic coupling measures

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image DL Hosted proceedings
              CASCON '06: Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
              October 2006
              388 pages

              Publisher

              IBM Corp.

              United States

              Publication History

              • Published: 16 October 2006

              Qualifiers

              • Article

              Acceptance Rates

              CASCON '06 Paper Acceptance Rate24of90submissions,27%Overall Acceptance Rate24of90submissions,27%
            • Article Metrics

              • Downloads (Last 12 months)2
              • Downloads (Last 6 weeks)0

              Other Metrics

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader