History of Software Engineering
Timeline
| Era | Period | Characteristics |
|---|---|---|
| Pioneering Era | 1950s–early 1960s | Batch processing, machine/assembly language, no formal process, single programmer builds entire system |
| Stabilizing Era | Mid 1960s–1970s | Multi-programming, real-time systems, high-level languages (COBOL, FORTRAN), "Software Crisis" term coined (NATO Conference, 1968) |
| Micro Era | 1980s | Personal computers, distributed systems, embedded/low-cost hardware, object-oriented concepts emerge |
| Modern Era | 1990s–present | Internet, web-based systems, mobile, agile methods, cloud, AI-driven development |
Key Milestones
- 1968 — NATO Software Engineering Conference (Garmisch, Germany): term "Software Engineering" formally proposed in response to the growing software crisis
- 1970s — Structured Programming, Structured Analysis and Design introduced (Dijkstra, Yourdon)
- 1980s — CASE tools, Object-Oriented methodologies, Software Process Models formalized (Waterfall, Spiral by Boehm 1988)
- 1990s — CMM (Capability Maturity Model), UML, RUP
- 2000s+ — Agile Manifesto (2001), Scrum, XP, DevOps, CI/CD
Why History Matters
Understanding this evolution shows why software engineering practices exist — they were developed as direct responses to real, expensive project failures (the software crisis).
Exam tip: Be ready to explain the 4 eras with one distinguishing feature each, and know 1968 NATO Conference as the birth of the term "Software Engineering."