Skip to main content
Log in

Metrics in the software engineering curriculum

  • Published:
Annals of Software Engineering

Abstract

As a recognized discipline, software engineering traces its roots back to the 1968 NATO conference where the term was first used extensively to highlight the need for an engineering approach to the development of software. In the 30 years since that first “software engineering” conference, significant attempts have been made to improve the overall effectiveness of the software development process, and thus reduce the frequency and severity of software project failures. A major part of this improvement effort has been the attempt to develop quantitative measures which can be used to more accurately describe and better understand and manage the software development life cycle. Thus, many software metrics and models have been introduced during this period. In this article, we briefly trace the history of the development of software metrics and models, and then summarize the current state of the field. For discussion purposes, this entire development period is then arbitrarily divided into an Introductory Period (1971–1985), Growth Period (1985–1997) and the Current Period (1997–?). The development of metrics during each of these periods is then related to the treatment of software metrics and models in software engineering curricula during that same period. Our conclusion is that software engineering curricula have indeed reflected the state of software engineering as the work in software metrics and models has progressed. Furthermore, software engineering curricula of the future should reflect the relatively mature state that software metrics have attained, by covering the basic concepts of metrics in appropriate core courses, and more advanced metrics topics in a specialized, elective metrics course.

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

  • Akiyama, F. (1971), “An Example of Software System Debugging,” Information Processing 71, 353–358.

    Google Scholar 

  • Albrecht, A.J. (1979), “Measuring Application Development Productivity,” In Proceedings of the IBM Joint SHARE/GUIDE Symposium, pp. 83–92.

  • Albrecht, A.J. and J. Gaffney (1983), “Software Function, Source Lines of Code and Development Effort Prediction: A Software Science Validation,” IEEE Transactions on Software Engineering 9, 6, 639–647.

    Google Scholar 

  • Baker, F. (1972), “Chief Programmer Team Management of Production Programming,” IBM Systems Journal 11, 1, 56–73.

    Google Scholar 

  • Basili, V. and D. Hutchens (1986), “Experimentation in Software Engineering,” IEEE Transactions on Software Engineering 12, 7, 733–738.

    Google Scholar 

  • Basili, V. and B. Perricone (1984), “Software Errors and Complexity: An Empirical Investigation,” Communications of the ACM 27, 1, 42–52.

    Google Scholar 

  • Basili, V. and D. Weiss (1984), “A Methodology for Collecting Valid Software Engineering Data,” IEEE Transactions on Software Engineering 10, 3, 728–738.

    Google Scholar 

  • Beizer, B. (1997), “Cleanroom Process Model: A Critical Examination,” IEEE Software 14, 2, 14–16.

    Google Scholar 

  • Boehm, B. (1981), Software Engineering Economics, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Boehm, B. (1991), “Software Risk Management: Principles and Practices,” IEEE Software 8, 1, 32–41.

    Google Scholar 

  • Boehm, B. et al. (1996), “The COCOMO 2.0 Software Cost Estimation Model – A Status Report,” American Programmer, July, 2–17.

  • Booch, G. (1994), Object-Oriented Analysis and Design, 2nd Edition, Benjamin Cummings.

  • Briand, L.C., S. Morasca and V. Basili (1996), “Property-Based Software Engineering Measurement,” IEEE Transactions on Software Engineering, January, 68–86.

  • Chidamber, S. and C. Kemerer (1994), “A Metrics Suite for Object Oriented Design,” IEEE Transactions on Software Engineering 20, June, 476–493.

    Google Scholar 

  • Coad, P. and E. Yourdon (1991), Object-Oriented Analysis, 2nd Edition, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Comer, J.R. and D. Rodjak (1987), “Adapting to Changing Needs: A New Perspective on Software Engineering Education at Texas Christian University,” In Software Engineering Education: The Educational Needs of the Software Community, N. Gibbs and R. Fairley, Eds., Springer-Verlag.

  • Conte, S., H. Dunsmore and V. Shen (1986), Software Engineering Metrics and Models, Benjamin Cummings.

  • Coulter, N. (1983), “Software Science and Cognitive Psychology,” IEEE Transactions on Software Engineering 9, 2, 166–171.

    Google Scholar 

  • Curtis, B., S. Sheppard and P. Milliman (1979), “Third-Time Charm: Stronger Prediction of Programmer Performance by Software Complexity Metrics,” In Proceedings of 4th IEEE International Conference on Software Engineering, pp. 356–360.

  • Curtis, B. (1980), “Measurement and Experimentation in Software Engineering,” Proceedings of the IEEE 68, 9, 1144–1147.

    Google Scholar 

  • Davis, F.D., R.P. Bagozzi and P.R. Warshaw (1989), “User Acceptance of Computer Technology: A Comparison of Two Theoretical Models,” Management Science 35, 8, 982–1003.

    Google Scholar 

  • de Champeaux, D. (1997), Object-Oriented Development Process and Metrics, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • DeMarco, T. (1979), Structured Analysis and System Specification, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • DeMarco, T. (1982), Controlling Software Projects: Management, Measurement and Estimation, Yourdon Press.

  • Diaz, M. and J. Sligo (1997), “How Software Process Improvement Helped Motorola,” IEEE Software, September/October, 75–81.

  • Dijkstra, E., O. Dahl and C. Hoare (1972), Structured Programming, Academic Press, New York.

    Google Scholar 

  • Elshoff, J. (1976), “Measuring Commercial PL/I Programs Using Halstead's Criteria,” ACM SIGPLAN Notices 7, 5, 38–46.

    Google Scholar 

  • Fenton, N. (1994), “Software Measurement: A Necessary Scientific Basis,” IEEE Transactions on Software Engineering 20, March, 199–206.

    Google Scholar 

  • Fenton, N. and S. Pfleeger (1997), Software Metrics: A Rigorous & Practical Approach, 2nd Edition, PWS Publishing Co.

  • Fitzsimmons, A. and T. Love (1978), “A Review and Evaluation of Software Science,” ACM Computing Surveys 10, 1, 3–18.

    Google Scholar 

  • Furey, S. (1997), “Why We Should Use Function Points,” IEEE Software 14, 2, 28–30.

    Google Scholar 

  • Gibbs, N. and R. Fairley, Eds. (1987), Software Engineering Education: The Educational Needs of the Software Community, Springer-Verlag.

  • Gibbs, W.W. (1994), “Software's Chronic Crisis,” Scientific American 271, September, 86–95.

    Google Scholar 

  • Goel, A. (1985), “Software Reliability Models: Assumptions, Limitations and Applicability,” IEEE Transactions on Software Engineering 11, December, 1411–1423.

    Google Scholar 

  • Grady, R. and D. Caswell (1987), Software Metrics: Establishing a Company-Wide Program, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Grady, R. (1992), Practical Software Metrics for Project Management and Process Improvement, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Grady, R. (1994), “Successfully Applying Software Metrics,” IEEE Computer 27, 9, 18–25.

    Google Scholar 

  • Haley, T.J. (1996), “Software Process Improvement at Raytheon,” IEEE Software 13, 6, 33–41.

    Google Scholar 

  • Hall, T. and N. Fenton (1997), “Implementing Effective Software Metrics Programs,” IEEE Software 14, 2, 55–65.

    Google Scholar 

  • Halstead, M. (1977), Elements of Software Science, Elsevier, North-Holland.

    Google Scholar 

  • Henry, S. and D. Kafura (1981), “Software Structure Metrics Based on Information Flow,” IEEE Transactions on Software Engineering 7, 5, 510–518.

    Google Scholar 

  • Henry, S. and D. Kafura (1984), “The Evaluation of Software Systems Structure Using Quantitative Software Metrics,” Software Practice and Experience 14, 6, 561–573.

    Google Scholar 

  • Humphrey, W. (1989), Managing The Software Process, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Humphrey, W. (1995), A Discipline for Software Engineering, Addison-Wesley, Reading, MA.

    Google Scholar 

  • IEEE (1997), Standards Collection Software Engineering, IEEE Pub., see esp., Standards 982.1-1988 IEEE Standard Dictionary of Measures to Produce Reliable Software (ANSI), 982.2-1988 IEEE Guide for the Use of IEEE Standard Dictionary of Measures to Produce Reliable Software (ANSI), 1045-1992 IEEE Standard for Software Productivity Metrics (ANSI), and 1061-1992 IEEE Standard for Software Quality Metrics Methodology (ANSI).

  • IFPUG (1992), Function Point Counting Practices Manual: Release 3.3, International Function Point User's Group.

  • Jackson, M. (1975), Principles of Program Design, Academic Press, New York.

    Google Scholar 

  • Jackson, M. (1983), System Development, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Jacobson, I. (1992), Object-Oriented Software Engineering, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Jensen, R. (1984), “A Comparison of the Jensen and COCOMO Schedule and Cost Estimation Models,” In Proceedings of the International Society of Parametric Analysis, pp. 96–106.

  • Jones, C. (1986), Programming Productivity, McGraw-Hill.

  • Jones, C. (1994), “Software Metrics: Good, Bad, and Missing,” IEEE Computer 27, 9, 98–100.

    Google Scholar 

  • Jones, C. (1996), Applied Software Measurement, McGraw-Hill.

  • Kemerer, C. (1987), “An Empirical Validation of Software Cost Estimation Models,” Communications of the ACM 30, 5, 416–429.

    Google Scholar 

  • Kitchenham, B. (1997), “The Problem with Function Points,” IEEE Software 14, 2, 29–31.

    Google Scholar 

  • Laranjeira, L. (1990), “Software Size Estimation of Object-Oriented Systems,” IEEE Transactions on Software Engineering 16, 5, 510–522.

    Google Scholar 

  • Lind, R. and K. Vairavan (1989), “An Experimental Investigation of Software Metrics and Their Relationship to Software Development Effort,” IEEE Transactions on Software Engineering 15, 5, 649–653.

    Google Scholar 

  • Linger, R. (1994), “Cleanroom Process Model,” IEEE Software, March, 50–58.

  • McCabe, T. (1976), “A Complexity Measure,” IEEE Transactions on Software Engineering 2, 4, 308–320.

    Google Scholar 

  • McCabe, T. and C. Butler (1989), “Design Complexity Measurement and Testing,” Communications of the ACM 32, December, 1415–1425.

    Google Scholar 

  • Mills, E. (1987), “The Master of Software Engineering Program at Seattle University after Six Years,” In Software Engineering Education: The Educational Needs of the Software Community, N. Gibbs and R. Fairley, Eds., Springer-Verlag.

  • Mills, E. (1988), “Software Metrics, Curriculum Module SEI-CM-12-1.1,” Software Engineering Institute, Carnegie-Mellon University.

  • Mills, H., M. Dyer and R. Linger (1987), “Cleanroom Software Engineering,” IEEE Software, September, 19–24.

  • Mohanty, S. (1981), “Software Cost Estimation: Present and Future,” Software Practice and Experience 11, 103–121.

    Google Scholar 

  • Munson, J. and T. Khoshgoftaar (1989), “The Dimensionality of Program Complexity,” In Proceedings of the 11th International Conference on Software Engineering.

  • Musa, J., A. Iannino and K. Okumoto (1987), Software Reliability: Measurement, Prediction, Application, McGraw-Hill.

  • Naur, P. and B. Randell, Eds. (1969), Software Engineering: Report on NATO Conference, Garmisch, Germany, October 7–10, 1968.

  • Offen, R. and R. Jeffery (1997), “Establishing Software Measurement Programs,” IEEE Software 14, 2 March/April, 45–53.

  • Paulk, M., B. Curtis, M. Chrissis and C. Weber (1993), “Capability Maturity Model for Software,” Version 1.1, Software Engineering Institute Technical Report, SEI-CMU-93-TR-2, Software Engineering Institute, Pittsburgh, PA.

    Google Scholar 

  • Pfleeger, S.L. and C.L. McGowan (1990), “Software Metrics in a Process Maturity Framework,” Journal of Systems and Software, July, 255–261.

  • Pfleeger, S. L., R. Jeffery, B. Curtis and B. Kitchenham (1997), “Status Report on Software Measurement,” IEEE Software 14, 2, 33–43.

    Google Scholar 

  • Poulin, J.S (1997a), “Reuse Metrics Deserve a Warning Label: The Pitfalls of Measuring Software Reuse,” Crosstalk: The Journal of Defense Software Engineering, July, 22–24.

  • Poulin, J.S. (1997b), Measuring Software Reuse: Principles, Practices and Economic Models, Addison-Wesley, Reading, MA.

    Google Scholar 

  • Prather, R. (1984), “An Axiomatic Theory of Software Complexity Metrics,” Computer Journal 27, 4, 340–347.

    Google Scholar 

  • Pressman, R. (1997), Software Engineering: A Practitioner's Approach, 4th Edition, McGraw-Hill.

  • Putnam, L. and W. Myers (1997), Industrial Strength Software: Effective Management Using Measurement, IEEE Computer Society, Los Alamitos, CA.

    Google Scholar 

  • Shen, V., S. Conte and H. Dunsmore (1983), “Software Science Revisited: A Critical Analysis of the Theory and Its Empirical Support,” IEEE Transactions on Software Engineering 9, 2, 155–165.

    Google Scholar 

  • Shepperd, M. (1993), Software Engineering Metrics, Vol. I: Measures and Validations, McGraw-Hill.

  • Stevens, W., G. Myers and L. Constantine (1974), “Structured Design,” IBM Systems Journal 13, 2, 115–139.

    Google Scholar 

  • Takahashi, R. (1997), “Software Quality Classification Model Based on McCabe's Complexity Measure,” Journal of Systems and Software 38, 61–69.

    Google Scholar 

  • Tillmann, G. (1993), A Practical Guide to Logical Data Modeling, McGraw-Hill.

  • Walston, C. and C. Felix (1977), “A Method of Programming Measurement and Estimation,” IBM System Journal 16, 1, 54–73.

    Google Scholar 

  • Weller, E. (1994), “Using Metrics to Manage Software Projects,” IEEE Computer 27, 9, 27–33.

    Google Scholar 

  • Weinberg, G. (1993), Quality Software Management, Vol. 2, First-Order Measurement, Dorset House Pub.

  • Weyuker, E. (1988), “Evaluating Software Complexity Measures,” IEEE Transactions on Software Engineering 14, 9, 1357–1365.

    Google Scholar 

  • Wolverton, R. (1974), “The Cost of Developing Large-Scale Software,” IEEE Transactions on Computers 23, 6, 615–636.

    Google Scholar 

  • Yourdon, E. (1997), Death March: The Complete Software Developer's Guide to Surviving “Mission Impossible” Projects, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Zuse, H. (1991), Software Complexity: Measures and Methods, de Gruyter.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Mills, E.E. Metrics in the software engineering curriculum. Annals of Software Engineering 6, 181–200 (1998). https://doi.org/10.1023/A:1018909531948

Download citation

  • Issue Date:

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

Keywords

Navigation