CS ATLAS A map of computing

Domain 08 —

Software Engineering

5 topics1968 — 2001

Chronology — 21 entries

Chronology

Every milestone in this domain, ordered by date. An event shared by several topics is counted once.

1968The NATO software engineering conferenceThe moment the discipline is named.The Software Crisis
1968Dijkstra on gotoA manifesto for structured programming.The Software Crisis
1970Royce's waterfall paperThe classic statement of staged process.Waterfall & the Software Lifecycle
1970The SDLC spreadsThe software lifecycle becomes a management framework.Waterfall & the Software Lifecycle
1972SCCSOne of the first version-control systems.Version Control & Git
1975The Mythical Man-MonthBrooks's law: adding people does not speed things up.The Software Crisis
1982RCSVersion control for single files.Version Control & Git
1983The GNU projectThe free-software movement begins.The Open Source Movement
1985The Free Software FoundationAn organisational and legal home for GNU.The Open Source Movement
1986The spiral modelBoehm introduces risk management.Waterfall & the Software Lifecycle
1989The GPL, version 1Copyleft becomes law.The Open Source Movement
1990CVSMulti-person collaboration and open source.Version Control & Git
1991The Linux kernelA model of global collaboration.The Open Source Movement
1998The OSI is foundedThe term 'open source' is coined.The Open Source Movement
1999Extreme Programming ExplainedKent Beck systematises XP.Agile Software Development
2000SVNA central repository with atomic commits.Version Control & Git
2001The Agile ManifestoA reaction against document-heavy process, written at Snowbird.Waterfall & the Software Lifecycle
2002Scrum spreadsIterations and role separation.Agile Software Development
2005GitDistributed version control.Version Control & Git
2008GitHubSocial collaboration for code.The Open Source Movement
2010Agile at scaleFrameworks such as SAFe appear.Agile Software Development

Curriculum

Courses and labs

Which university courses this domain usually maps to, and whether the practical work is a standalone project course or an in-class lab.

In-class labs + a project

The lab is a team project: four to eight people for a semester, graded on deliverables, reviews and test coverage rather than lines of code.

Courses

Software EngineeringSoftware Engineering Project

Open courses

  • CMU 17-313 Foundations of Software Engineering
  • Berkeley CS 169 Software Engineering

What the labs look like

  • Team project

    Walk the whole path from requirements to delivery, with weight on version control, code review and automated tests

  • Open-source contribution

    Some courses require a pull request to a real project that passes maintainer review