Software-Engineering ist die praktische Anwendung wissenschaftlicher Erkenntnisse für die wirtschaftliche Herstellung und den wirtschaftlichen Einsatz qualitativ hochwertiger Software.
Schon vorher, seit etwa 1965, begann man, von der Softwarekrise zu sprechen. Gemeint waren damit die enorm ansteigenden Schwierigkeiten bei der Softwareentwicklung, sowohl bei Betriebssystemen als auch bei Applikationssoftware: Softwareentwicklung hinkte erheblich der revolutionär verlaufenden Hardwareentwicklung hinterher. Softwareprojekte kamen fast regelmäßig in erheblichen Verzug, wenn sie denn nicht vollständig scheiterten, z.B. wegen erheblicher Qualitätsprobleme. Zu dieser Zeit wurde Software auch noch als Anhängsel der Hardware betrachtet, die meist kostenlos mitgeliefert wurde.
Man wurde sich rasch einig, daß ein ingenieurmäßiger Ansatz zur Softwareentwicklung nur Vorteile bringen konnte: disziplinierte Entwicklung, Abgrenzung von Tätigkeiten sowie Verwendung von Normen und Standards.
Die folgende Zeittafel (nach Denert) wirft Schlaglichter auf einige
Ereignisse, die die Entwicklung des Fachgebietes Software-Enginering beinflußten:
| 1965 | Simula: Class Concept |
| 1968 | Dijkstra: Goto considered harmful |
| 1968/1969 | NATO-Konferenzen, der Begriff Software-Engineering wird geprägt. Die ersten Softwarehäuser werden gegründet |
| 1970 | Codd: Relationales Datenmodell |
| 1971 | Weinberg: Psychology of Computer Programming ("egoless"attitude) |
| 1971 | Baker: Chief Programmer Team |
| 1972 | Parnas: On the criteria to be used in decomposing systems in to modules; Software module specification |
| 1973 | Nassi/Shneiderman: Struktogramme |
| ab 1973 | diverse SW Life Cycle-Modelle |
| 1975 | Guttag: Algebraische Spezifikation abstrakter Datentypen |
| 1975 | Brooks: The Mythical Man Month ("Adding manpower to a late project makes it later") |
| 1976 | DeRemer/Kron: Programming in the large versus small |
| 1975 | Structured Analysis/Design |
| 1976 | Fagan: Code Inspection |
| 1976 | Chen: Entity/Relationship Approach |
| 1977 | SADT (Structured Analysis and Design Technique) |
| 1975-1980 | Sprachen: CLU/Alphard/Euclid/Modula Ada |
| 1981 | Boehm COCOMO |
| ab 1980 | Diverse Entwicklungsumgebungen und Methodensysteme kommen: Promod,
Epos, Predict Case ... und einige gehen auch wieder.
Relationale Datenbanksysteme (RDBMS) kommen in der Praxis zum Einsatz, Sprachen der sog. 4. Generation gewinnen an Bedeutung. Unix setzt sich durch |
| 1985/86 | SDI-Debatte |
| ab ca. 1987 | CASE-Tools mit graphischen Oberflächen überfluten den Markt; sie unterstützen hauptsächlich Structured Analysis und Entity/Relationship Daten-Modellierung |
| 1988 | Meyer: Object-oriented Software Construction; Eiffel |
| 1989 | Objektorientierte Methodik gewinnt immer mehr Anhänger |