Software Engineering

  • Gerard O’Regan
Part of the Undergraduate Topics in Computer Science book series (UTICS)


Software engineering involves the multi-person construction of multi-version programs, and is a systematic approach to the development and maintenance of software. It is the application of engineering to software development, and the challenge is to deliver high-quality software on time and on budget to customers.

The birth of software engineering dates to a conference dealing with the crisis in software development held at Garmisch in Germany in the late 1960s. This conference highlighted the problems that existing in the software field including schedule and cost overruns, as well as problems with software quality. It was clear that there was a need to engineer software, and to develop effective methodologies to design and develop software. This chapter provides a broad overview of software engineering, and discusses various software lifecycles such as the Waterfall Model and the Spiral Model, and the phases in software development.


  1. 3.
    Beck K (2000) Extreme Programming explained. Embrace change. Addison-Wesley, ReadingGoogle Scholar
  2. 8.
    Boehm B (1988) A spiral model for software development and enhancement. Computer 21:61–72CrossRefGoogle Scholar
  3. 10.
    Brooks F (1975) The mythical man month. Addison Wesley, ReadingGoogle Scholar
  4. 11.
    Brooks F (1986) No silver bullet. Essence and accidents of software engineering. In: Information processing. Elsevier, AmsterdamGoogle Scholar
  5. 12.
    Buxton JN, Naur P, Randell B (1975) Software Engineering. Petrocelli. Report on two NATO conferences held in Garmisch, Germany (October1968) and Rome, Italy (October 1969)Google Scholar
  6. 16.
    Dijkstra EW (1972) Structured programming. Academic, LondonzbMATHGoogle Scholar
  7. 20.
    Fagan M (1976) Design and code inspections to reduce errors in software development. IBM Syst J 15(3):182–210CrossRefGoogle Scholar
  8. 24.
    Gilb T, Graham D (1994) Software inspections. Addison-Wesley, ReadingGoogle Scholar
  9. 30.
    Ince D, Andrews D (1991) Practical formal methods with VDM, McGraw Hill International series in software engineering. McGraw Hill, New YorkGoogle Scholar
  10. 32.
    Jacobson I, Booch G, Rumbaugh J (1999) The unified software modelling language user guide. Addison-Wesley, ReadingGoogle Scholar
  11. 47.
    O’Regan G (2002) A practical approach to software quality. Springer, New YorkCrossRefzbMATHGoogle Scholar
  12. 48.
    O’Regan G (2006) Mathematical approaches to software quality. Springer, LondonzbMATHGoogle Scholar
  13. 51.
    O’Regan G (2010) Introduction to software process improvement. Springer, LondonGoogle Scholar
  14. 49.
    Office of Government Commerce (2004) Managing successful projects with PRINCE2. TSO, LondonGoogle Scholar
  15. 52.
    Parnas D (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15(12):1053–1058CrossRefGoogle Scholar
  16. 56.
    Royce W (1970) The software lifecycle model (Waterfall Model). In: Proceedings of the WESTCON, Los Angeles, August, 1970Google Scholar
  17. 57.
    Rumbaugh J et al (1999) The unified software development process. Addison-Wesley, ReadingGoogle Scholar
  18. 62.
    Spivey JM (1992) The Z notation. A reference manual, Prentice Hall International series in computer science. Prentice Hall, Englewood CliffsGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Gerard O’Regan
    • 1
  1. 1.SQC ConsultingMallowIreland

Personalised recommendations