Software assessment using metrics: A comparison across large C++ and Java systems

Abstract

This paper presents an assessment method to evaluate the quality of object oriented software systems. The assessment method is based on source code abstraction, object–oriented metrics and graphical representation. The metrics used and the underlying model representing the software are presented. The assessment method experiment is part of an industrial research effort with the Bell Canada Quality Engineering and Research Group. It helps evaluators assess the quality and risks associated with software by identifying code fragments presenting unusual characteristics. The assessment method evaluates object–oriented software systems at three levels of granularity: system level, class level and method level. One large C++ and eight Java software systems, for a total of over one million lines of code, are presented as case studies. A critical analysis of the results is presented comparing the systems and the two languages.

This is a preview of subscription content, access via your institution.

References

  1. AntLR 2.2.3, Predicated-LL(k) Parser Generator, MageLang Institute, http://www.AntLR.org/.

  2. Booch, G. (1994), Object-Oriented Design with Applications, 2nd Edition, Benjamin/Cummings, Redwood, CA.

    Google Scholar 

  3. Booch, G. (1995), Object Solutions-Managing Object-Oriented Project, Addison-Wesley, Reading, MA.

    Google Scholar 

  4. Chidamber, S.R. and C. Kemerer (1994), "A Metrics Suite for Object-Oriented Design," IEEE Transactions on Software Engineering 20, 6.

    Google Scholar 

  5. CUP 0.10g, LALR Parser Generator for Java, Scott E. Hudson, GVU Center, Georgia Tech, http://www.cs.princeton.edu/appel/modern/java/CUP/.

  6. Fenton, N.E. (1991), Software Metrics-A Rigorous Approach, Chapman & Hall, London, UK.

    Google Scholar 

  7. Gamma, E., R. Helm, R. Johnson, and J. Vlissides (1994), Design Patterns-Elements of Reusable Object-Oriented Software, Addison-Wesley, Reading, MA.

    Google Scholar 

  8. Gondran, M. and M. Minoux (1985), Graphes et Algorithmes, Eyrolles, France.

  9. Gosling, J., B. Joy, and G. Steele (1996), The Java Language Specification, Addison-Wesley, Reading, MA.

    Google Scholar 

  10. HTTPCLIENT 0.3, Http client library, Ronald Tschalaer, http://www.innovation.ch/java/ HTTPClient/.

  11. ISO (1991), International Standard ISO/IEC 9126, Information Technology-Software Product Evaluation-Quality Characteristics and Guidelines for Their Use, International Organization for Standardization, International Electrotechnical Commission, Geneva.

    Google Scholar 

  12. JavaCC, Java Parser Generator, Sun Microsystems, Inc., http://www.suntest.com/JavaCC/.

  13. JDK 1.1.5, Java Development Kit, Sun Microsystems, Inc.

  14. KFC 1.0 beta, Kazuki Yasumatsu's Foundation Classes, Kazuki Yasumatsu, http://ring.aist.go.jp/openlab/kyasu/.

  15. Kruchten, P. (1998), The Rational Unified Process-An Introduction, Addison-Wesley, Reading, MA.

    Google Scholar 

  16. Laguë, B., C. Leduc, E. Merlo, and M. Dagenais (1997), "A Framework for the Analysis of Layered Software Architectures," In Proceedings of the 2nd International Workshop on Empirical Studies of Software Maintenance, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  17. Lewis, T. et al. (1995), Object Oriented Application Frameworks, Manning Publications, Greenwich, CT.

    Google Scholar 

  18. Lorenz, M. and J. Kidd (1994), Object-Oriented Software Metrics, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  19. Martin, J. and J. Odell (1995), Object-Oriented Methods-A Foundation, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  20. Mayrand, J. (1991a), "Modélisation du code source par niveaux sémantiques," MS Thesis, Department of Computer Engineering, École Polytechnique de Montréal, Montréal, Canada.

    Google Scholar 

  21. Mayrand, J. (1991b), "Métriques basées sur la modélisation par niveaux sémantiques des programmes sources," Technical Report EPM/RT-91/19, École Polytechnique de Montréal, Montréal, Canada.

    Google Scholar 

  22. Mayrand, J. and F. Coallier (1996), "System Acquisition Based on Software Product Assessment," In Proceedings of the 18th International Conference on Software Engineering, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  23. Mayrand, J. and E. Merlo (1996), "Évaluation de la qualité des logiciels," Technical Report EPM/RT-96/12, École Polytechnique de Montréal, Montréal, Canada.

    Google Scholar 

  24. Mayrand, J., F. Guay, and E. Merlo (1996), "Inheritance Graph Assessment Using Metrics," In Proceedings of the 3rd International Software Metrics Symposium, IEEE Computer Society Press, Los Alamitos, CA.

    Google Scholar 

  25. OMG (1999), Unified Modeling Language Specification (draft), version 1.3, alpha 2.

  26. SABLECC 2.5, "Object-Oriented Compiler Framework," Etienne Gagnon, Sable Research Group, School of Computer Science, McGill University, http://www.sable.mcgill.ca/sablecc/.

  27. Swing component set 1.0.2, Sun Microsystems, Inc., http://www.javasoft.com/products/ jfc/tsc/.

  28. Wegner, P. (1990), "Concepts and Paradigms of Object-Oriented Programming," OOPS Messenger 1, 1.

Download references

Author information

Affiliations

Authors

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Mayrand, J., Patenaude, JF., Merlo, E. et al. Software assessment using metrics: A comparison across large C++ and Java systems. Annals of Software Engineering 9, 117–141 (2000). https://doi.org/10.1023/A:1018924724621

Download citation

Keywords

  • Abstract Syntax Tree
  • Multiple Inheritance
  • Software Assessment
  • Parser Generator
  • Interface Extension