Annals of Software Engineering

, Volume 9, Issue 1–4, pp 117–141 | Cite as

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

  • Jean Mayrand
  • Jean-François Patenaude
  • Ettore Merlo
  • Michel Dagenais
  • Bruno Laguë


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.


Abstract Syntax Tree Multiple Inheritance Software Assessment Parser Generator Interface Extension 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AntLR 2.2.3, Predicated-LL(k) Parser Generator, MageLang Institute, Scholar
  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, Scholar
  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.Google Scholar
  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, HTTPClient/.Google Scholar
  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., Scholar
  13. JDK 1.1.5, Java Development Kit, Sun Microsystems, Inc.Google Scholar
  14. KFC 1.0 beta, Kazuki Yasumatsu's Foundation Classes, Kazuki Yasumatsu, Scholar
  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.Google Scholar
  26. SABLECC 2.5, "Object-Oriented Compiler Framework," Etienne Gagnon, Sable Research Group, School of Computer Science, McGill University, Scholar
  27. Swing component set 1.0.2, Sun Microsystems, Inc., jfc/tsc/.Google Scholar
  28. Wegner, P. (1990), "Concepts and Paradigms of Object-Oriented Programming," OOPS Messenger 1, 1.Google Scholar

Copyright information

© Kluwer Academic Publishers 2000

Authors and Affiliations

  • Jean Mayrand
    • 1
  • Jean-François Patenaude
    • 1
  • Ettore Merlo
    • 1
  • Michel Dagenais
    • 1
  • Bruno Laguë
    • 2
  1. 1.DGEGI Department of Electrical and Computer EngineeringÉcole PolytechniqueMontréal, QuébecCanada E-mail:
  2. 2.Quality Engineering and Research GroupBell CanadaMontréal, QuébecCanada E-mail:

Personalised recommendations