Non-functional requirements in the design of software

  • Alfs T. Berztiss
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 750)


We argue for greater emphasis on design in software engineering courses, and for design under consideration of non-functional requirements. In particular we show that it is sometimes quite easy to determine early whether a design satisfies performance and reliability requirements. This is done by means of examples we have used in our courses. Performance and reliability analyses, which acquire particular importance with embedded real-time systems, require familiarity with probability and queueing theory. We recommend a special course on these topics.


Software Engineering Software Reliability Traditional Engineering Performance Engineering Reliability Requirement 
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. 1.
    M. Shaw: Prospects for an engineering discipline of software. IEEE Software 7, 6, 15–24 (Nov. 1990).CrossRefGoogle Scholar
  2. 2.
    A. Spector, D. Gifford: A computer science perspective on bridge design. Comm. ACM 29, 268–283 (1986).CrossRefGoogle Scholar
  3. 3.
    M. Dyer: The Cleanroom Approach to Quality Software Development. New York: Wiley 1992.Google Scholar
  4. 4.
    A. J. Offutt, R. H. Untch: Integrating research, reuse, and integration into software engineering courses. Proc. SEI Conference 1992 on Software Engineering Education (Springer-Verlag LNCS 640), 88–98.Google Scholar
  5. 5.
    W. Swartout, R. Balzer: On the inevitable intertwining of specification and implementation. Comm. ACM 25, 438–440 (1982).CrossRefGoogle Scholar
  6. 6.
    R. Balzer, T. E. Cheatham, C. Green: Software technology in the 1990's: using a new paradigm. Computer 16, 11, 39–45 (Nov. 1983).Google Scholar
  7. 7.
    R. T. Yeh: Notes on concurrent engineering. IEEE Trans. Knowledge and Data Eng. 4, 407–414 (1992).CrossRefGoogle Scholar
  8. 8.
    P. Dewan, J. Riedl: Toward computer-supported concurrent software engineering. Computer 26, 1, 17–27 (Jan. 1993).CrossRefGoogle Scholar
  9. 9.
    R. Kerr: A materialistic view of the software “engineering” analogy. ACM SIGPLAN Notices 22, 3, 123–125 (Mar. 1987).CrossRefGoogle Scholar
  10. 10.
    A. T. Berztiss: Engineering principles and software engineering. Proc. SEI Conference 1992 on Software Engineering Education (Springer-Verlag LNCS 640), 437–451.Google Scholar
  11. 11.
    B. W. Boehm: Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall 1981.Google Scholar
  12. 12.
    C. A. R. Hoare: An overview of some formal methods for program design. Computer 20, 9, 85–91 (Sept. 1987).Google Scholar
  13. 13.
    A. Hall: Seven myths of formal methods. IEEE Software 7, 5, 11–19 (Sept. 1990).CrossRefGoogle Scholar
  14. 14.
    J. F. Rockart: Critical success factors. Harvard Business Review 57, 2, 81–91 (March–April 1979).PubMedGoogle Scholar
  15. 15.
    B. M. E. De Waal, G. H. van der Heiden: The evaluation of user-friendliness in the design process of user interfaces. In Human Factors in Information Systems Analysis and Design, A. Finkelstein, M. J. Tauber, R. Traunmueller, Eds., 93–103. Amsterdam: North-Holland 1990.Google Scholar
  16. 16.
    D. L. Parnas: On the criteria to be used in decomposing systems into modules. Comm. ACM 15, 1053–1058 (1972).CrossRefGoogle Scholar
  17. 17.
    C. U. Smith: Performance Engineering of Software Systems. Reading, MA: Addison-Wesley 1990.Google Scholar
  18. 18.
    R. G. G. Cattell, J. Skeen: Object operations benchmark. ACM Trans. Database Systems 17, 1–31 (1992).CrossRefGoogle Scholar
  19. 19.
    A. O. Allen: Probability, Statistics, and Queueing Theory with Computer Science Applications. New York: Academic Press 1978.Google Scholar
  20. 20.
    J. C. Knight, N. G. Leveson: An experimental evaluation of the assumption of independence in multiversion programming. IEEE Trans. Software Eng. SE-12, 96–109 (1986).Google Scholar
  21. 21.
    R. K. Scott, J. W. Gault, D. F. McAllister: Fault-tolerant software reliability modeling. IEEE Trans. Software Eng. SE-13, 582–592 (1987).Google Scholar
  22. 22.
    J. D. Musa, A. Iannino, K. Okumoto: Software Reliability — Measurement, Prediction, Application. New York: McGraw-Hill 1987.Google Scholar
  23. 23.
    S. Brocklehurst, B. Littlewood: New ways to get accurate reliability measures. IEEE Software 9, 4, 34–42 (July 1992).CrossRefGoogle Scholar
  24. 24.
    R. W. Butler, G. B. Finelli: The infeasibility of experimental quantification of life-critical software reliability. Proc. ACM SIGSOFT '91 Conf. Software for Critical Systems (Software Engineering Notes 16, 5 (Dec. 1991)), 66–76. [Reprinted: IEEE Trans. Software Eng. 19, 3–12 (1993).]CrossRefGoogle Scholar
  25. 25.
    S. V. Hoover, R. F. Perry: Simulation, a Problem-Solving Approach. Reading, MA: Addison-Wesley 1989.Google Scholar
  26. 26.
    R. Jain: The Art of Computer Systems Performance Analysis. New York: Wiley 1991.Google Scholar
  27. 27.
    K. Kant: Introduction to Computer System Performance Evaluation. New York: McGraw-Hill 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Alfs T. Berztiss
    • 1
    • 2
  1. 1.Department of Computer ScienceUniversity of PittsburghPittsburghUSA
  2. 2.SYSLABUniversity of StockholmSweden

Personalised recommendations