Skip to main content

Origins of Software Performance Engineering: Highlights and Outstanding Problems

  • Chapter
  • First Online:
Performance Engineering (WOSP 2000, GWPESD 2000)

Abstract

This chapter first reviews the origins of Software Performance Engineering (SPE). It provides an overview and an extensive bibliography of the early research. It then covers the fundamental elements of SPE: the data required, the software performance models and the SPE process. It concludes with a review of the current status and outstanding problems in the areas of: tools, performance models, use of SPE, principles, patterns and antipatterns for building high performance software, and SPE methods.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alexander, C.T.: Performance Engineering: Various Techniques and Tools. Proceedings Computer Measurement Group Conference, Las Vegas, NV (1986) 264–267

    Google Scholar 

  2. Alexander, W., Brice, R.: Performance Modeling in the Design Process. Proceedings National Computer Conference, Houston, TX (1982)

    Google Scholar 

  3. Alter, S.: A Model for Automating File and Program Design in Business Application Systems. Communications of the ACM, 22(1979)6, 345–353

    Article  Google Scholar 

  4. Anderson, G.E.: The Coordinated Use of Five Performance Evaluation Methodologies. Communications of the ACM, 27(1984)2, 119–125

    Article  Google Scholar 

  5. Bagrodia, R.L., Shen, C.: MIDAS: Integrated Design and,Simulation of Distributed Systems. IEEE Transactions on Software Engineering, 17(1991)10, 1042–58

    Article  Google Scholar 

  6. Baskett, F. et al.: Open, Closed, and Mixed Networks of Queues with Different Classes of Customers. Journal of the ACM, 22(1975)2 248–260

    Article  MATH  MathSciNet  Google Scholar 

  7. Beilner, H., Mäter, J., Wysocki, C.: The Hierarchical Evaluation Tool HIT. In: Bause, F., Beilner, H. (eds.): Performance Tools & Model Interchange Formats. vol. 581/1995, D-44221 Dortmund, Germany, Universität Dortmund, Fachbereich Informatik (1995) 6–9

    Google Scholar 

  8. Beizer, B.: Micro-Analysis of Computer System Performance, New York, NY, Van Nostrand Reinhold (1978)

    Google Scholar 

  9. Beizer, B.: Software Performance. In: Vicksa, C.R., Ramamoorthy, C.V. (eds.): Handbook of Software Engineering. New York, NY, Van Nostrand Reinhold (1984) 413–436

    Google Scholar 

  10. Bell, T.E. (Editor): Special Issue on Software Performance Engineering, Computer Measureent Group Transactions (1988)

    Google Scholar 

  11. Bell, T.E., Bixler, D.X., Dyer. M.E.: An Extendible Approach to Computer-aided Software Requirements Engineering. IEEE Transactions on Software Engineering, 3(1977)1, 49–59

    Article  Google Scholar 

  12. Bell, T.E., Falk, A.M.: Performance Engineering: Some Lessons From the Trenches. Proceedings Computer Measurement Group Conference, Orlando, FL (1987) 549–552

    Google Scholar 

  13. Bentley, J.L.: Writing Efficient Programs, Englewood Cliffs, NJ, Prentice-Hall (1982)

    MATH  Google Scholar 

  14. BMC: BMC Software, 2101 City West Blvd., Houston, TX 77042, (713) 918-8800, http://www.bmc.com

  15. Booth, T.L.: Performance Optimization of Software Systems Processing Information Sequences Modeled by Probabilistic Languages. IEEE Transactions on Software Engineering, 5(1979)1, 31–44

    Article  Google Scholar 

  16. Booth, T.L.: Use of Computation Structure Models to Measure Computation Performance. Proceedings Conference on Simulation, Measurement, and Modeling of Computer Systems, Boulder, CO (1979)

    Google Scholar 

  17. Booth, T.L., Hart, R.O., Qin, B.: High Performance Software Design. Proceedings Hawaii International Conference on System Sciences, Honolulu, HI (1986) 41–52

    Google Scholar 

  18. Booth, T.L., Wiecek, C.A.: Performance Abstract Data Types as a Tool in Software Perfromance Analysis and Design. IEEE Transactions on Software Engineering, 6(1980)2, 138–151

    Article  Google Scholar 

  19. Brataas, G.: Performance Engineering Method for Workflow Systems: An Integrated View of Human and Computerised Work Processes. Norwegian University of Science and Technology (1996)

    Google Scholar 

  20. Buhr, R.J. et al.: Software CAD: A Revolutionary Approach. IEEE Transactions on Software Engineering, 15(1989)3, 234–249

    Article  Google Scholar 

  21. Bulka, D., Mayhew, D.: Efficient C++: Performance Programming Techniques. Addison Wesley Longman (2000)

    Google Scholar 

  22. Buzen, J.P.: Queueing Network Models of Multiprogramming. Ph.D. Dissertation, Harvard University (1971)

    Google Scholar 

  23. Chang, C.K. et al.: Modeling a Real-Time Multitasking System in a Timed PQ Net. IEEE Transactions on Software Engineering, 6(1989)2, 46–51

    Google Scholar 

  24. Chung, L. et al.: Non-Functional Requirements in Software Engineering. Boston, MA, Kluwer Academic Publishers (2000)

    MATH  Google Scholar 

  25. CMG: Computer Measurement Group, PO Box 1124, Turnersville, NJ 08012, (800) 436-7264, http://www.cmg.org

  26. Crain, P., Hanson, C.: Web Application Tuning. CMG, Reno (1999)

    Google Scholar 

  27. Crovella, M.: Performance Evaluation with Heavy Tailed Distributions. In: Haverkort, B., Bohnenkamp, H., Smith, C.U. (eds.): Computer Performance Evaluation Modelling Techniques and Tools. Vol. 1786, Berlin, Springer (2000) 1–9

    Chapter  Google Scholar 

  28. El-Sayed, H., Cameron, D., Woodside, C.M.: Automated Performance Modeling from Scenarios and SDL Designs of Telecom Systems. Proc. Int. Symposium on Software Engineering for Parallel and Distributed Systems (PDSE98), Kyoto, Japan (1998)

    Google Scholar 

  29. Estrin, G. et al.: SARA (System ARchitects’ Apprentice): Modeling, Analysis, and Simulation Support for Design of Concurrent Systems. IEEE Transactions on Software Engineering, SE-12(1986)2, 293–311

    Google Scholar 

  30. Ferrari, D.: Computer Systems Performance Evaluation. Englewood Cliffs, NJ, Prentice-Hall (1978)

    Google Scholar 

  31. Ferrari, D., Serazzi, G., Zeigner, A.: Measurement and Tuning of Computer Systems. Englewood Cliffs, NJ, Prentice-Hall (1983)

    Google Scholar 

  32. Fox, G.: Take Practical Performance Engineering Steps Early. Proceedings Computer Measurement Group Conference, Orlando, FL (1987) 992–993

    Google Scholar 

  33. Fox, G.: Performance Engineering as a Part of the Development Lifecycle for Large-Scale Software Systems. Proceedings 11th International Conference on Software Engineering, Pittsburgh, PA (1989)

    Google Scholar 

  34. Frank, G.A., Smith, C.U., Cuadrado, J.L.: Software/Hardware Codesign with an Architecture Design and Assessment System. Proceedings Design Automation Conference, Las Vegas, NV (1985)

    Google Scholar 

  35. Graham, R.M., Clancy, G,.J., DeVaney, D.B.: A Software Design and Evalation System. Communications of the ACM, 16(1973)2, 110–116

    Article  Google Scholar 

  36. Gunther, N.: The Practical Performance Analyst: Performance-By-Design Techniques for Distributed Systems. McGraw-Hill (1998)

    Google Scholar 

  37. Gunther, N.: E-Ticket Capacity Planning: Riding the E-Commerce Growth Curve. Proc. Computer Measurement Group, Orlando (2000)

    Google Scholar 

  38. Hanson, C., Crain, P., Wigginton, S.: User and Computer Performance Optimization. CMG, Reno (1999)

    Google Scholar 

  39. Hills, G., Rolia, J.A., Serazzi, G.: Performance Engineering of Distributed Software Process Architectures. Modelling Techniques and Tools for Computer Performance Evaluation, Heidelberg, Germany, Vol. 977, Springer (1995) 357–371

    Google Scholar 

  40. Howes, N.R.: Toward a Real-Time Ada Design Methodology. Proceedings Tri-Ada 90, Baltimore, MD (1990)

    Google Scholar 

  41. Hrischuk, C., Rolia, J.A., Woodside, C.M.: Automatic Generation of a Software Performance Model Using an Object-Oriented Prototype. Proceedings of the Third International Workshop on Modeling, Analysis, and Simulation of Computer and Telecommunications Systems, Durham, NC (1995) 399–409

    Google Scholar 

  42. Hrischuk, C.E. et al.: Trace-Based Load Characterization for Generating Performance Software Models. TSE, 25(1999)1, 122–135

    Google Scholar 

  43. HyPerformix: Inc., 4301 West Bank Dr, Bldg A, Austin, TX 78746, (512)328-5544, http://www.hyperformix.com

  44. Jain, R.: Art of Computer Systems Performance Analysis. New York, NY, John Wiley (1990)

    Google Scholar 

  45. Jalics, P.J.: Improving Performance The Easy Way. Datamation, 23(1977)4, 135–148

    Google Scholar 

  46. Kant, E.: Efficiency in Program Synthesis. Ann Arbor, MI, UMI Research Press (1981)

    Google Scholar 

  47. King, P., Pooley, R.: Derivation of Petri Net Performance Models from UML Specifications of Communications Software. In: Haverkort, B., Bohnenkamp, H., Smith, C. (eds).: Modelling Tools and Techniques. Schaumburg, IL, Vol. 1786, Springer (2000)

    Google Scholar 

  48. Knuth, D.E.: An Empirical Study of FORTRAN Programs. Software Practice & Experience, 1(1971)2, 105–133

    Article  MATH  Google Scholar 

  49. Knuth, D.E: The Art of Computer Programming. Vol.1: Fundamental Algorithms, Third Edition, Reading, MA, Addison-Wesley (1997)

    Google Scholar 

  50. Knuth, D.E.: The Art of Computer Programming Vol.3: Sorting and Searching, Second Edition, Reading, MA, Addison-Wesley (1998)

    Google Scholar 

  51. Kopetz, H.: Design Principles of Fault Tolerant Real-Time Systems. Proceedings Hawaii International Conference on System Sciences, Honolulu, HI (1986) 53–62

    Google Scholar 

  52. Lampson, B.W.: Hints for Computer System Design. IEEE Software, 2(1984)1, 11–28

    Article  Google Scholar 

  53. Larman, C., Guthrie, R.: Java 2 Performance and Idiom Guide. Upper Saddle River, NJ, Prentice Hall PTR (2000)

    Google Scholar 

  54. Lazowska, E.D. et al.: Quantitative System Performance: Computer System Analysis Using Queuing Network Models. Englewod Cliffs, NJ, Prentice-Hall, Inc. (1984)

    Google Scholar 

  55. LeMer, E.: MEDOC: A Methodology for Designing and Evaluating Large-Scale Real-Time Systems. Proceedings National Computer Conference, 1982, Houston, TX (1982)

    Google Scholar 

  56. Levi, S., Agrawala, A.K.: Real-Time System Design, New York, NY, McGraw-Hill (1990)

    Google Scholar 

  57. Lor, K., Berry, D.B.: Automatic Synthesis of SARA Design Models from System Requirements. IEEE Transactions on Software Engineering, 17(1991)12, 1229–1240

    Article  Google Scholar 

  58. L&S Computer Technology Inc.: Performance Engineering Services Division. Austin, TX 78766, (505) 988-3811, http://www.perfeng.com

  59. Martin, C.R.: An Integrated Software Performance Engineering Environment. Masters Thesis, Duke University (1988)

    Google Scholar 

  60. Menascé, D.A., Almeida, V.A.F.: Scaling for E-Business: Technologies, Models, Performance, and Capacity Planning. Prentice Hall (2000)

    Google Scholar 

  61. Menascé, D.A., Almeida, V.A.F., Dowdy, L.W.: Capacity Planning and Performance Modeling. Englewood Cliffs, NJ, PTR Prentice Hall (1994)

    Google Scholar 

  62. Menascé, D.A., Gomaa, H.: On a Language Based Method for Software Performance Engineering of Client/Server Systems. Workshop on Software and Performance, Santa Fe, NM, ACM (1998) 63–69

    Google Scholar 

  63. Nichols, K.M.: Performance Tools. IEEE Software, 7(1990)3, 21–30

    Article  MathSciNet  Google Scholar 

  64. Nichols, K.M., Oman, P.: Special Issue in High Performance. IEEE Software, 8(1991)5

    Google Scholar 

  65. Opdahl, A.: A CASE Tool for Performance Engineering During Software Design. Proceedings Fifth Nordic Workshop on Programming Environmental Research, Tampere, Finland (1992)

    Google Scholar 

  66. Opdahl, A., Sølvberg, A.: Conceptual Integration of Information System and Performance Modeling. Proceedings Working Conference on Information System Concepts: Improving the Understanding (1992)

    Google Scholar 

  67. Paterok, M., Heller, R., deMeer, H.: Performance Evaluation of an SDL Run Time System-A Case Study. Proceedings 5th International Conference on Modeling Techniques and Tools for Computer Performance Evaluation, Torino, Italy (1991) 86–101

    Google Scholar 

  68. Pooley, R.: The Integrated Modeling Support Environment. Proceedings 5th International Conference on Modeling Techniques and Tools for Computer Performance Evaluation, Torino, Italy (1991) 86–101

    Google Scholar 

  69. Qin, B.: A Model to Predict the Average Response Time of User Programs. Performance Evaluation, Vol. 10 (1989) 93–101

    Article  Google Scholar 

  70. QSP: Quantitative System Performance. 7516 34th Ave N., Seattle, WA 98117-4723

    Google Scholar 

  71. Riddle, W.E. et al.: Behavior Modeling During Software Design. IEEE Transactions on Software Engineering, Vol. 4 (1978)

    Google Scholar 

  72. Rolia, J.A.: Predicting the Performance of Software Systems. University of Toronto (1992)

    Google Scholar 

  73. Rolia, J.A., Sevcik, K.C.: The Method of Layers. IEEE Trans. on Software Engineering, 21(1995)8 689–700

    Article  Google Scholar 

  74. Rolia, J.A., Vetland, V.: Correlating Resource Demand Information with ARM Data for Application Services. Int. Workshop on Software and Performance, Santa Fe, NM, ACM (1998)

    Google Scholar 

  75. Sahner, R.A., Trivedi, K.S.: Performance and Reliability Analysis Using Directed Acyclic Graphs. IEEE Transactions on Software Engineering, 13(1987)10, 1105–1114

    Article  Google Scholar 

  76. Sanguinetti, J.W.: A Formal Technique for Analyzing the Performance of Complex Systems. Proceedings Performance Evaluation Users Group 14, Boston, MA (1978)

    Google Scholar 

  77. Schmietendorf, A., Scholz, A., Rautenstrauch, C.: Evaluating the Performance Engineering Process. Proc. Workshop on Software and Performance (WOSP2000), Ottawa, Canada (2000)

    Google Scholar 

  78. Sevcik, K.C., Smith, C.U., Williams, L.G.: Performance Prediction Techniques Applied to Electronic Commerce Systems. In: Kou, W., Yesha, Y. (eds.): Electronic Commerce Technology Trends: Challenges and Opportunities. IBM Press (2000)

    Google Scholar 

  79. Sheikh, F., Woodside, C.M.: Layered Analytic Performance Modelling of a Distributed Database System. ICDCS (1997)

    Google Scholar 

  80. Sholl, H., Kim, S.: An Approach to Performance Modeling as an Aid in Structuring Realtime, Distributed System Software. Proceedings Hawaii International Conference on System Sciences, Honolulu, HI (1986) 5–16

    Google Scholar 

  81. Sholl, H.A., Booth, T.L.: Software Performance Modeling Using Computation Structures. IEEE Transactions on Software Engineering, 1(1975)4

    Google Scholar 

  82. Smith, C.U.: The Prediction and Evaluation of the Performance of Software from Extended Design Specifications. Ph.D. Dissertation, University of Texas (1980)

    Google Scholar 

  83. Smith, C.U.: Software Performance Engineering: Proceedings Computer Measurement Group Conference XII (1981) 5–14

    Google Scholar 

  84. Smith, C.U.: A Methodology for Predicting the Memory Management Overhead of New Software Systems. Proceedings Hawaii International Conference on System Sciences, Honolulu, HI (1982) 200–209

    Google Scholar 

  85. Smith, C.U.: Independent General Principles for Constructing Responsive Software Systems. ACM Transactions on Computer Systems, 4(1986)1, 1–31

    Article  Google Scholar 

  86. Smith, C.U.: Applying Synthesis Principles to Create Responsive Software Systems. IEEE Transactions on Software Engineering, 14(1988)10, 1394–1408

    Article  Google Scholar 

  87. Smith, C.U.: Who Uses SPE? Computer Measurement Group Transactions (1988) 69–75

    Google Scholar 

  88. Smith, C.U.: Performance Engineering of Software Systems. Reading, MA, Addison-Wesley (1990)

    Google Scholar 

  89. Smith, C.U., Browne, J.C.: Performance Specifications and Analysis of Software Designs. Proceedings ACM Sigmetrics Conference on Simulation Measurement and Modeling of Computer Systems, Boulder, CO (1979)

    Google Scholar 

  90. Smith, C.U., Browne, J.C.: Aspects of Software Design Analysis: Concurrency and Blocking. Proceedings ACM Sigmetrics Conference on Simulation Measurement and Modeling of Computer Systems (1980)

    Google Scholar 

  91. Smith, C.U., Browne, J.C.: Performance Engineering of Software Systems: A Case Study. Proceedings National Computer Conference, Houston, TX, Vol. 15, (1982) 217–224

    Google Scholar 

  92. Smith, C.U., Loendorf, D.D.: Performance Analysis of Software for an MIMD Computer. Proceedings ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems, Seattle, WA (1982) 151–162

    Google Scholar 

  93. Smith, C.U., Williams, L.G.: Software Performance Engineering: A Case Study with Design Comparisons. IEEE Transactions on Software Engineering, 19(1993)7, 720–741

    Article  Google Scholar 

  94. Smith, C.U., Williams, L.G.: Performance Engineering of Object-Oriented Systems with SPEED. In: Mari, R. et al. (eds.): Lecture Notes in Computer Science 1245: Computer Performance Evaluation. Berlin, Germany, Springer (1997) 135–154

    Chapter  Google Scholar 

  95. Smith, C.U., Williams, L.G.: Performance Engineering Evaluation of CORBA-based Distributed Systems with SPEED. In: Puigjaner, R. (ed.): Lecture Notes in Computer Science. Berlin, Germany, Springer (1998)

    Google Scholar 

  96. Smith, C.U., Williams, L.G.: Performance Engineering Models of CORBA-based Distributed Object Systems. Proc. Computer Measurement Group, Anaheim (1998)

    Google Scholar 

  97. Smith, C.U., Williams, L.G.: Performance Models of Distributed System Architectures. Proc. Computer Measurement Group, Anaheim (1998)

    Google Scholar 

  98. Smith, C.U., Williams, L.G.: Software Performance Antipatterns. Workshop on Software and Performance, Ottawa, Canada, ACM (2000)

    Google Scholar 

  99. Smith, C.U., Williams, L.G.: SPE Models for Web Applications. Proc. Computer Measurement Group, Orlando (2000)

    Google Scholar 

  100. Smith, C.U., Williams, L.G.: Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software. Addison-Wesley (2001)

    Google Scholar 

  101. Smith, C.U., Wong, B.: SPE Evaluation of a Client/Server Application. Proc. Computer Measurement Group, Orlando, FL (1994)

    Google Scholar 

  102. Steppler, M: Performance Analysis of Communication Systems Formally Specified in SDL. Proc. 1st Int. Workshop on Software and Performance (WOSP98), Santa Fe, NM (1998)

    Google Scholar 

  103. Trivedi, K.S.: Probability and Statistics With Reliability, Queueing, and Computer Science Applications. Englewood Cliffs, NJ, Prentice-Hall (1982)

    Google Scholar 

  104. Vetland, V., Hughes, P., Solvberg, A.: A Composite Modelling Approach to Software Performance Measurement. Proc. ACM Sigmetrics, Santa Clara, CA (1993) 275–276

    Google Scholar 

  105. Vetland, V.: Measurement-Based Composite Computational Work Modelling of Software. University of Trondheim (1993)

    Google Scholar 

  106. Woodside, C.M.: Throughput Calculation for Basic Stochastic Rendezvous Networks. Technical Report, Carleton University, Ottawa, Canada, April (1986)

    Google Scholar 

  107. Woodside, C.M.: Throughput Calculation for Basic Stochastic Rendezvous Networks. Performance Evaluation, Vol. 9 (1989)

    Google Scholar 

  108. Woodside, C.M. et al.: The CAEDE Performance Analysis Tool,” Ada Letters, XI(1991)3

    Google Scholar 

  109. Woodside, C.M. et al.: A Wideband Approach to Integrating Performance Prediction into a Software Design Environment. Proc. First Int. Workshop on Software and Performance (WOSP98), Santa Fe, NM (1998)

    Google Scholar 

  110. Woodside, C.M. et al.: The Stochastic Rendezvous Network Model for Performance of Synchronous Client-Server-like Distributed Software. IEEE Trans. Computers, 44(1995)1, 20–34

    Article  MATH  MathSciNet  Google Scholar 

  111. WOSP: Workshop on Software and Performance (WOSP98, WOSP2000). ACM Sigmetrics

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Smith, C.U. (2001). Origins of Software Performance Engineering: Highlights and Outstanding Problems. In: Dumke, R., Rautenstrauch, C., Scholz, A., Schmietendorf, A. (eds) Performance Engineering. WOSP GWPESD 2000 2000. Lecture Notes in Computer Science, vol 2047. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45156-0_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-45156-0_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42145-0

  • Online ISBN: 978-3-540-45156-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics