Overview of Software Engineering
This chapter presents a short history of software engineering from its birth at the Garmisch conference in Germany in the late 1960s. The IEEE definition of software engineering is discussed, and it is emphasised that software engineering is a lot more than just programming. We discuss key challenges in software engineering, as well as several high-profile software failures. The waterfall and spiral life cycles are discussed, as well as a brief discussion of the rational unified process and the popular Agile methodology. We discuss the key activities in the waterfall model such as requirements, design, implementation, unit, system and acceptance testing.