Skip to main content
Log in

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

  • Published:
Annals of Software Engineering

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, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

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

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

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

    Google Scholar 

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

    Google Scholar 

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

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

    Google Scholar 

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

  • 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 

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

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

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

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

    Google Scholar 

  • 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 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  • 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 

  • 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 

  • 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 

  • 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 

  • 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 

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

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

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

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

Download references

Author information

Authors and 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

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018924724621

Keywords

Navigation