Software Engineering: Grundlagen, Menschen, Prozesse, Techniken

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Das Handbuch fürs Selbststudium, für den Job oder vorlesungsbegleitend

  • erfahrungsbasierter Über- und Einblick ins Software Engineering, der sowohl die Theorie als auch die Praxis abdeckt
  • umfassend, verständlich und praxiserprobt

Das Buch vermittelt die Grundlagen, Erfahrungen und Techniken, die den Kern des Software Engineerings bilden. Es ist als Material zu Vorlesungen über Software Engineering konzipiert. Auch für Praktiker, die mit der Softwareentwicklung und -bearbeitung und den dabei auftretenden Problemen vertraut sind, ist das Buch sehr gut geeignet, um die Kenntnisse im Selbststudium zu ergänzen und zu vertiefen. Der Inhalt des Buches ist in fünf Hauptteile gegliedert:

  • Grundlagen
  • Menschen und Prozesse
  • Daueraufgaben im Softwareprojekt
  • Techniken der Softwarebearbeitung
  • Verwaltung und Erhaltung von Software

Auf die Ausbildung zukünftiger Software Engineers wird ebenfalls eingegangen. Ergänzende Informationen sind auf der Webseite der Autoren verfügbar: https://se-buch.de.

Die 4. Auflage enthält neben vielen kleinen Verbesserungen und Aktualisierungen neue Themen wie Schätzung in agilen Projekten, agile Skalierung, Microservices, Domain-Driven Design und automatische Software-Auslieferung.

Author(s): Jochen Ludewig, Horst Lichter
Edition: 4
Publisher: dpunkt
Year: 2023

Language: German
Pages: 712
City: Heidelberg
Tags: Software Engineering; Software Development; Software Projects; Software Processing Techniques; Software Management; Software Maintenance; Project Estimation; Agile; Agile Scaling; Microservices; Domain-Driven Design; Automatic Software Deliver; Continuous Delivery

Cover
Über den Autor
Titel
Impressum
Widmung
Vorwort
Inhalt und Aufbau, Zielgruppen
Inhaltsverzeichnis
Teil I Grundlagen
1 Modelle und Modellierung
1.1 Modelle, die uns umgeben
1.2 Modelltheorie
1.3 Ziele beim Einsatz von Modellen
1.4 Entwicklung und Validierung von Modellen
1.5 Modelle im Software Engineering
1.6 Theoriebildung
1.7 Modellierung durch Graphen und Grafiken
1.8 Modellierung durch Zahlen: Skalen und Skalentypen
1.9 Übergänge zwischen verschiedenen Skalentypen
2 Grundbegriffe
2.1 Kosten
2.2 Engineering und Ingenieur
2.3 Software
2.4 Arbeiten, die an Software ausgeführt werden
2.5 Weitere Grundbegriffe
3 Software Engineering
3.1 Fortschritte in Hardware und Software
3.2 Grundideen des Software Engineerings
3.3 Probleme und Chancen des Software Engineerings
3.4 Lehrbücher und andere Basisliteratur
4 Software-Nutzen und -Kosten
4.1 Die Kosten eines Software-Projekts
4.2 Der Aufwand in den einzelnen Phasen des Software-Projekts und in der Wartung
4.3 Risiken durch Qualitätsmängel
4.4 Die Beziehung zwischen Fehlerentstehung und -entdeckung
5 Software-Qualität
5.1 Qualität
5.2 Taxonomie der Software-Qualitäten
5.3 Qualitätsmodelle
Teil II Menschen und Prozesse
6 Menschen im Software Engineering
6.1 Software-Leute und Klienten
6.2 Rollen und Verantwortlichkeiten
6.3 Die Produktivität des Projekts
6.4 Motivation und Qualifikation
6.5 The Personal Software Process
6.6 Moralische und ethische Aspekte
7 Das Software-Projekt – Begriffe und Organisation
7.1 Begriffsbildung
7.2 Software-Projekte
7.3 Projekttypen
7.4 Formen der Teamorganisation
7.5 Die interne Organisation der Software-Hersteller
8 Projektleitung und Projektleiter
8.1 Ziele und Schwerpunkte des Projektmanagements
8.2 Das Vorprojekt
8.3 Start des Projekts und Projektplanung
8.4 Aufwands- und Kostenschätzung
8.5 Einige Verfahren zur Aufwandsschätzung
8.6 Schätzung in agilen Projekten
8.7 Risikomanagement
8.8 Projektkontrolle und -steuerung
8.9 Der Projektabschluss
8.10 Projektmanagement als Führungsaufgabe
9 Vorgehensmodelle
9.1 Code and Fix und der Software Life Cycle
9.2 Schwierigkeiten mit dem Wasserfallmodell
9.3 Die Klassifikation der Programme nach Lehman
9.4 Prototyping
9.5 Nichtlineare Vorgehensmodelle
9.6 Das Spiralmodell
10 Prozessmodelle
10.1 Begriffe und Definitionen
10.2 Das Phasenmodell
10.3 Das V-Modell
10.4 Der Unified Process
10.5 Cleanroom Development
10.6 Agile Prozesse
11 Bewertung und Verbesserung des Software-Prozesses
11.1 Voraussetzungen hoher Software-Qualität
11.2 Reifegradmodelle für die Prozessbewertung
11.3 Die CMM/CMMI-Reifegradmodelle
11.4 Fazit
11.5 Verbesserung des Software-Prozesses
Teil III Daueraufgaben im Software-Projekt
12 Dokumentation in der Software-Entwicklung
12.1 Begriff und Einordnung
12.2 Ziele und Wirtschaftlichkeit der Dokumentation
12.3 Taxonomie der Dokumente
12.4 Die Benutzungsdokumentation
12.5 Die Qualität der Dokumente
12.6 Vorlagen und Normen für Dokumente
12.7 Dokumentation in der Praxis
12.8 Die gefälschte Entstehungsgeschichte
13 Software-Qualitätssicherung und -Prüfung
13.1 Software-Qualitätssicherung
13.2 Prüfungen
13.3 Mängel und Fehler
13.4 Prüfungen im Überblick
13.5 Reviews
13.6 Varianten der Software-Inspektion
14 Metriken und Bewertungen
14.1 Metriken, Begriff und Taxonomie
14.2 Objektive Metriken – Messungen
14.3 Subjektive Metriken – Beurteilungen
14.4 Pseudometriken
14.5 Die Suche nach der geeigneten Metrik
14.6 Ein Beispiel für die Entwicklung einer Metrik
14.7 Hinweise für die praktische Arbeit
Teil IV Techniken der Software-Bearbeitung
15 Analyse und Spezifikation
15.1 Die Bedeutung der Spezifikation im Entwicklungsprozess
15.2 Die Analyse
15.3 Begriffslexikon und Begriffsmodell
15.4 Anforderungen
15.5 Die Spezifikation im Überblick
15.6 Die Darstellung der Spezifikation
15.7 Konzepte und Komponenten der Spezifikation
15.8 Muster und Normen für die Spezifikation
15.9 Regeln für Analyse und Spezifikation
16 Entwurf
16.1 Ziele und Bedeutung des Entwurfs
16.2 Begriffe
16.3 Prinzipien des Architekturentwurfs
16.4 Architekturmuster
16.5 Entwurfsmuster
16.6 Weitere Arten der Wiederwendung von Architekturen
16.7 Der Entwurf von Anwendungssoftware
16.8 Die Qualität der Architektur
17 Codierung
17.1 Programmiersprachen als Werkstoffe
17.2 Regeln für die Codierung
17.3 Die Dokumentation des Codes
17.4 Realisierungen des Information Hiding
17.5 Robuste Programme
17.6 Das Vertragsmodell
17.7 Werkzeuge zur Codierung
18 Programmtest
18.1 Begriffe und Grundlagen des Tests
18.2 Einige spezielle Testbegriffe
18.3 Die Testdurchführung
18.4 Die Auswahl der Testfälle
18.5 Der Black-Box-Test
18.6 Der Glass-Box-Test
18.7 Testen mit Zufallsdaten
18.8 Beispiele zum Test
18.9 Werkzeuge für den Test
18.10 Ausblick
19 Integration
19.1 Einbettung der Integration in die Software-Entwicklung
19.2 Integrationsstrategien
19.3 Probleme der Integration
19.4 Planung und Dokumentation der Integration
19.5 Grundsätze für die Integration
Teil V Verwaltung und Erhaltung von Software
20 Konfigurationsverwaltung
20.1 Grundlagen der Konfigurationsverwaltung
20.2 Die Aufgaben der Konfigurationsverwaltung
20.3 Benennung und Identifikation von Software-Einheiten
20.4 Arbeitsumgebungen für die Software-Bearbeitung
20.5 Automatisierte Software-Auslieferung
21 Software-Wartung
21.1 Begriff und Taxonomie der Software-Wartung
21.2 Inhalt und Ablauf der Wartung
21.3 Risiken, Probleme und Grundsätze der Wartung
21.4 Die Wartungsorganisation
22 Reengineering
22.1 Software-Evolution
22.2 Reengineering
22.3 Refactoring
22.4 Erblasten, Legacy Software
22.5 Technische Schulden
23 Wiederverwendung
23.1 Die alltägliche Wiederverwendung
23.2 Terminologie und Taxonomie der Wiederverwendung
23.3 Kosten und Nutzen der Wiederverwendung
23.4 Chancen und Probleme der Wiederverwendung
23.5 Rahmenbedingungen für die Wiederverwendung
23.6 Entwicklungstechniken für die Wiederverwendung
23.7 Von der Codierung zur Komposition
Teil VI Software Engineering lehren
24 Software-Engineering-Ausbildungs- und -Studiengänge
24.1 Der Studiengang Software Engineering in Stuttgart
24.2 Weitere Software-Engineering-Ausbildungs- und -Studiengänge
Teil VII Literatur und Index
25 Literaturangaben
25.1 Hinweise zu den Literaturangaben
25.2 Literaturangaben, nach Verfassern geordnet
25.3 Verzeichnis der Normen und Standards
Fußnoten
26 Index