Software Engineering, 4th Edition

Book description

Das Buch vermittelt die Grundlagen, Methoden und Techniken des Software Engineerings. Es ist als Material zu Vorlesungen über Software Engineering konzipiert. Darum wurde besonderes Gewicht auf die Darstellung und Vermittlung der Einsichten, Erkenntnisse und Erfahrungen gelegt, die von Forschern und Praktikern gewonnen, formuliert und angewendet wurden und der Kritik standgehalten haben. Auch für Praktiker, die mit der Software-Entwicklung 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:I Grundlagen: Modelle und Modellierung, Grundbegriffe, Software-Nutzen und -Kosten, Software-QualitätII Menschen und Prozesse: Software-Projekt, Projektleitung und Projektleiter, Vorgehensmodelle, Prozessmodelle, Bewertung und Verbesserung des Software-ProzessesIII Daueraufgaben im Software-Projekt: Dokumentation, Software-Qualitätssicherung und -Prüfung, Metriken und BewertungenIV Techniken der Software-Bearbeitung: Analyse und Spezifikation, Entwurf, Codierung, Programmtest, IntegrationV Verwaltung und Erhaltung der Software: Konfigurationsverwaltung, Software-Wartung, Reengineering, WiederverwendungEin Nachwort zum Studium der Softwaretechnik, ein aktuelles Literaturverzeichnis und ein präziser Index schließen das Buch ab.Die 4. Auflage enthält neben vielen kleinen Verbesserungen und Aktualisierungen neue Themen wie Schätzung in agilen Projekten, agile Skalierung, Behavior-Driven Development, Microservices, Domain-Driven Design und automatische Software-Auslieferung.

Table of contents

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

Product information

  • Title: Software Engineering, 4th Edition
  • Author(s): Jochen Ludewig, Horst Lichter
  • Release date: January 2023
  • Publisher(s): dpunkt
  • ISBN: 9783864905988