Die 10. Auflage des Klassikers "Software Engineering" von Ian Sommerville wurde aktualisiert und um neue Inhalte erweitert, wie z.B. die fortschreitende Einbindung von Methoden der agilen Softwareentwicklung, Resilienz-Engineering, Systems-Engineering, Systeme von Systemen und vieles mehr.
Das Buch gibt im ersten Teil eine grundlegende Einführung in den Komplex Software-Engineering. Der zweite Teil widmet sich der Entwicklung verlässlicher, sicherer Systeme. Unter anderem werden hier auch Cybersicherheit und resiliente Systeme besprochen. Der dritte Teil enthält ein breites Spektrum an Themen, die heutzutage für das Software-Engineering eine wichtige Rolle spielen. Die Inhalte reichen von der Wiederverwendung, komponenten- und serviceorientierte Entwicklung über Systeme von Systemen bis hin zum Echtzeit-Software-Engineering. Der vierte Teil ist dem Projekt- und Konfigurationsmanagement gewidmet. Hier spielt sowohl die Planung als auch die Qualitätssicherung von Softwareprozessen eine bedeutende Rolle. Das Buch richtet sich primär an Studierende der Informationstechnik, die Einführungs- und Fortgeschrittenenkurse in Software- und Systems-Engineering besuchen. Alle Inhalte werden anhand von vier Beispielprojekten unter Verwendung von UML und der Programmiersprache Java ausführlich erläutert. Zu jedem Kapitel gibt es Lernziele, Weblinks, Übungsaufgaben und Literaturempfehlungen, die das Selbststudium unterstützen. Professionellen Softwareingenieuren/Softwareingenieurinnen dient das Buch als Nachschlagewerk, mit dessen Hilfe sie ihr Wissen auf den aktuellen Stand bringen können.
- Grundlagen des Software-Engineerings
- Softwareprozesse und Vorgehensmodelle
- Agile Softwareentwicklung
- Anforderungsanalyse und -definition
- Systemmodellierung und -implementierung
- Testen, Integration, Betrieb und Weiterentwicklung
- Software-Engineering für verlässliche, sichere Systeme
- Verfügbarkeit, Zuverlässigkeit, Betriebs- und Informationssicherheit
- Resilienz-Engineering
- Wiederverwendung von Software
- Komponentenbasierte Entwicklung
- Entwicklung verteilter Systeme
- Servicebasierte Entwicklung
- Systems-Engineering
- Systeme von Systemen
- Echtzeit-Software-Engineering
- Projektmanagement
- Projektplanung
- Qualitätssicherung
- Konfigurationsmanagement