Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Hingabe
Vorwort
Entstehungsgeschichte
Rollenbezeichnungen
Sprachstil
Material zum Buch
Dank
Vorwort zur 3. Auflage
Inhalt und Aufbau, Zielgruppen
Inhalt
Aufbau
Zielgruppen
Inhaltsverzeichnis
Teil I Grundlagen
1 Modelle und Modellierung
1.1 Modelle, die uns umgeben
1.1.1 Die Bedeutung der Modelle
1.1.2 Beispiele für Modelle
1.2 Modelltheorie
1.2.1 Deskriptive und präskriptive Modelle
1.2.2 Die Modellmerkmale
1.3 Ziele beim Einsatz von Modellen
1.3.1 Modelle für den Einsatz in der Lehre und zum Spielen
1.3.2 Formale (mathematische) Modelle
1.3.3 Modelle für die Dokumentation
1.3.4 Explorative Modelle
1.4 Entwicklung und Validierung von Modellen
1.4.1 Die Entwicklung eines Modells
1.4.2 Die Validierung eines Modells
1.4.3 Beispiel: Wie wirkt sich die Methode der Entwicklung aus?
1.5 Modelle im Software Engineering
1.6 Theoriebildung
1.7 Modellierung durch Graphen und Grafiken
1.7.1 Beispiele für Graphen
1.7.2 Graphen der Mathematik und Graphen des Software Engineerings
1.7.3 Spezielle Eigenschaften der Graphen
1.7.4 Grafiken und Schaubilder
1.7.5 Skizzen im Software Engineering
1.8 Modellierung durch Zahlen: Skalen und Skalentypen
1.8.1 Die Skalentypen
1.8.2 Beispiele für die Skalentypen
1.9 Übergänge zwischen verschiedenen Skalentypen
1.9.1 Der Wechsel auf eine schwächere Skala
Boxplots
1.9.2 Rangliste und Ordinalskala
1.9.3 Schulnoten
1.9.4 Aufstellung einer Rangliste aus einer heterogenen Bewertung
2 Grundbegriffe
2.1 Kosten
2.2 Engineering und Ingenieur
2.2.1 Der Ingenieur als Leitbild
2.2.2 Merkmale der alten Ingenieurdisziplinen
2.3 Software
2.3.1 Was ist Software?
2.3.2 Spezielle Eigenschaften der Software
Software ist immateriell.
Natürliche Lokalität gibt es bei Software nicht.
Ein Programm realisiert keine stetige Funktion.
Software-Systeme sind sehr komplex.
Software-Systeme müssen autonom funktionieren.
Die wenigen »Werkstoffe« der Software, die Sprachen, implizieren keine sinnvolle Strukturierung.
Software spiegelt (in vielen Fällen) die Realität.
2.4 Arbeiten, die an Software ausgeführt werden
2.5 Weitere Grundbegriffe
2.5.1 Taxonomie
2.5.2 Methoden, Sprachen, Werkzeuge
2.5.3 Effektiv und effizient
3 Software Engineering
3.1 Fortschritte in Hardware und Software
3.1.1 Die Ausgaben für Hard- und Software
3.1.2 Die Entstehung des Software Engineerings
3.1.3 Definitionen für »Software Engineering«
3.2 Grundideen des Software Engineerings
3.2.1 Software Engineering versus Kunst der Programmierung
3.2.2 Quantität als Qualität
3.3 Probleme und Chancen des Software Engineerings
3.3.1 Software Engineering als globale Optimierung
3.3.2 Software Engineering als defensive Disziplin
3.3.3 Software Engineering als ein Gestrüpp von Problemen
3.3.4 Software Engineering als Technologie für die Köpfe
3.3.5 Software Engineering als Goldader
3.4 Lehrbücher und andere Basisliteratur
4 Software-Nutzen und -Kosten
4.1 Die Kosten eines Software-Projekts
4.1.1 Entwickeln oder Wiederverwenden (make or buy)
4.1.2 Die Gründe für Nutzen und Kosten, Kostenarten
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.2.1 Der Zusammenhang der Qualitätsaspekte
5.2.2 Einstufung verschiedener Produktqualitäten
Teil II Menschen und Prozesse
6 Menschen im Software Engineering
6.1 Software-Leute und Klienten
6.2 Rollen und Verantwortlichkeiten
6.2.1 Der Entwickler und seine Spezialisierungen
6.2.2 Projektleiter und Gruppenleiter
6.2.3 Der Kunde, die Anwender und andere Betroffene
6.3 Die Produktivität des Projekts
6.3.1 Einflussfaktoren der Produktivität
6.3.2 Die Variationsbreite der Entwickler-Produktivität
6.3.3 Die Messung der individuellen Produktivität
6.4 Motivation und Qualifikation
6.4.1 Die übliche Programmiererkarriere
6.4.2 Ein Modell der Motivation
6.4.3 Folgerungen für das Management
6.4.4 Veränderungen und persönliche Interessen
6.5 The Personal Software Process
6.6 Moralische und ethische Aspekte
7 Das Software-Projekt – Begriffe und Organisation
7.1 Begriffsbildung
7.1.1 Die Entdeckung der Software-Prozesse
7.1.2 Prozess, Projekt und Vorgehensmodell
7.1.3 Abgrenzung der Begriffe
7.2 Software-Projekte
7.3 Projekttypen
7.3.1 Das Entwicklungsprojekt
7.3.2 Das Auftragsprojekt
7.3.3 Das EDV-Projekt
7.3.4 Das Systemprojekt
7.3.5 Vergleich der Projekttypen
7.4 Formen der Teamorganisation
7.4.1 Kleine Teams und »Einzelkämpfer«
7.4.2 Anarchische Teams
7.4.3 Demokratische Teams
7.4.4 Hierarchische Teams
7.4.5 Chief-Programmer-Teams
7.5 Die interne Organisation der Software-Hersteller
7.5.1 Die funktionale Organisation
7.5.2 Die reine Projektorganisation
7.5.3 Die Matrixorganisation
8 Projektleitung und Projektleiter
8.1 Ziele und Schwerpunkte des Projektmanagements
8.2 Das Vorprojekt
8.2.1 Die Organisation des Vorprojekts
8.2.2 Das Angebot
8.2.3 Weitere Ergebnisse des Vorprojekts
8.3 Start des Projekts, Planung
8.3.1 Planungsaspekte
Die Planung der Aufgaben: Arbeitspakete
8.3.2 Projektphasen
8.3.3 Der Projektplan
8.4 Aufwand, Kosten, Risiken
8.4.1 Aufwandsschätzung
8.4.2 Ansätze der Aufwandsschätzung
Die Expertenschätzung
Algorithmische Verfahren
8.4.3 COCOMO
Durchführung der COCOMO-Schätzung
8.4.4 COCOMO II
8.4.5 Das Function-Point-Verfahren
Die Suche nach einem Standard für die funktionale Größe
Verfahren mit abweichender Grundlage der Schätzung
8.4.6 Risikomanagement
Definition und Beschreibung der Risiken
Risikobewertung
Prävention und Notfallmaßnahmen
Risikoüberwachung
8.5 Projektkontrolle und -steuerung
8.5.1 Der Regelkreis der Projektdurchführung
8.5.2 Die Bewertung des Erreichten
Zeiterfassung
Fertigstellungsgrad
Earned Value Analysis
8.5.3 Termindrift-Diagramme (Meilenstein-Trend-Analyse)
8.6 Der Projektabschluss
8.6.1 Abschlussarbeiten
8.6.2 Rituale
8.6.3 Die Dokumentation der Erfahrungen
8.7 Projektmanagement als Führungsaufgabe
8.7.1 Die Wahl des Projektleiters
8.7.2 Woran scheitern Projekte?
8.7.3 Führungsprobleme
8.7.4 Regeln für das Projektmanagement
Auswahl und Tätigkeit der Projektleiter
Kompetenz und Verteilung
Kontrolle und Beurteilung
Zeitlos gültige Regeln
9 Vorgehensmodelle
9.1 Code and Fix und der Software Life Cycle
9.1.1 Code and Fix
9.1.2 Der Software-Lebenslauf
9.1.3 Das Wasserfallmodell
9.1.4 Gliederung der Aktivitäten
9.2 Schwierigkeiten mit dem Wasserfallmodell
9.2.1 Die Interpretation des Wasserfallmodells
9.2.2 Kritik am Wasserfallmodell
9.3 Die Klassifikation der Programme nach Lehman
9.3.1 S-, P- und E-Programme
9.3.2 Zusammenhänge zwischen den Programmtypen und Folgerungen
9.4 Prototyping
9.4.1 Der Begriff des Prototyps
9.4.2 Prototypentwicklung
9.4.3 Spezielle Prototypen und verwandte Begriffe
9.4.4 Die Taxonomie von Floyd
9.5 Nichtlineare Vorgehensmodelle
9.5.1 Rapid Prototyping
9.5.2 Evolutionäre Entwicklung
9.5.3 Iterative Software-Entwicklung
9.5.4 Inkrementelle Software-Entwicklung
9.5.5 Das Treppenmodell
9.6 Das Spiralmodell
10 Prozessmodelle
10.1 Begriffe und Definitionen
10.1.1 Das Prozessmodell und seine Ausprägung im Prozess
10.1.2 Leichte und schwere Prozesse
10.2 Das Phasenmodell
10.2.1 Phasen und Meilensteine
10.2.2 Phasen und Meilensteine im Software-Projekt
10.2.3 Abgrenzung zum Wasserfallmodell
10.2.4 Vor- und Nachteile des Phasenmodells
10.2.5 Überlappende Phasen
10.3 Das V-Modell
10.3.1 Hintergrund und Geschichte
10.3.2 Eigenschaften des Modells
10.3.3 Projekttypen
10.3.4 Elemente des Modells
Aktivitäten, Produkte und Rollen
Vorgehensbausteine
Entscheidungspunkte und Projektdurchführungsstrategien
Zusammenfassung
10.3.5 Entwicklungsstrategien
10.3.6 Tailoring
10.3.7 Projektdurchführung
10.3.8 Bewertung des V-Modells
10.4 Der Unified Process
10.4.1 Eigenschaften des Unified Process
10.4.2 Die Struktur des Unified Process
Rollen, Aktivitäten und Artefakte
Phasen
Arbeitsabläufe
Iterationen
10.4.3 Der Rational Unified Process
10.4.4 Bewertung des Rational Unified Process
10.5 Cleanroom Development
10.5.1 Der Hintergrund des Cleanroom Development Process
10.5.2 Merkmale und Eigenschaften des Cleanroom Development Process
Die Situation vor dem Cleanroom-Ansatz
Cleanroom-Konzepte
Spezifikation und Entwurf mit Black, State und Clear Boxes
Der statistische Test
10.5.3 Die Struktur des Modells
10.5.4 Bewertung des Cleanroom Development Process
10.6 Agile Prozesse
10.6.1 Die agile Bewegung
10.6.2 Das »Agile Manifesto«
10.6.3 Gemeinsamkeiten der agilen Prozesse
10.6.4 Extreme Programming
Grundlagen
XP-Konzepte
Bewertung des Extreme Programming
10.6.5 Crystal
Vorgehensweise, Regeln und Rollen in Crystal
Bewertung von Crystal
10.6.6 Scrum
Rollen in Scrum
Dokumente
Der Scrum-Prozess
Bewertung von Scrum
10.6.7 Zusammenfassung der agilen Prozesse
11 Bewertung und Verbesserung des Software-Prozesses
11.1 Voraussetzungen hoher Software-Qualität
11.2 CMMI, das Reifegradmodell für Software-Prozesse
11.2.1 Ziele und Annahmen des CMMI
11.2.2 Prozessbereiche
11.2.3 Varianten des Reifegradmodells
Die stufenförmige Variante
Stufe 1 – Der ungeformte Prozess (initial)
Stufe 2 – Der gesteuerte Prozess (managed)
Stufe 3 – Der definierte Prozess (defined)
Stufe 4 – Der geregelte Prozess (quantitatively managed)
Stufe 5 – Der optimierende Prozess (optimizing)
Einstufung
Die kontinuierliche Variante
11.2.4 Prozessbewertung
Vorgehen bei der Begutachtung
11.2.5 Die Prozessreife-Profile des SEI
Untersuchungen und Kritik
Schwächen der Prozessreife-Profile
Negative Prozessreife
Fazit
11.3 SPICE / ISO 15504
11.3.1 Die SPICE-Reifegrade
11.3.2 Die Bewertung der Prozesse
11.4 Prozessverbesserung
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 Die Form der Dokumente, Normen
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.1.1 Maßnahmen zur Hebung der Qualität
13.1.2 Schwerpunkte der Software-Qualitätssicherung
13.1.3 Aufgaben des Qualitätssicherungsingenieurs
13.2 Prüfungen
13.2.1 Sinn und Wirkung von Prüfungen
13.3 Mängel und Fehler
13.3.1 Definitionen
13.3.2 Kleine Theorie der Fehlersuche
13.4 Prüfungen im Überblick
13.4.1 Verifikation und Validierung
13.4.2 Positive und negative Prüfresultate
13.4.3 Möglichkeiten und Prinzipien der Software-Prüfung
13.4.4 Die Trennung der Korrektur von der Prüfung
13.4.5 Inspektionsverfahren
13.5 Reviews
13.5.1 Rollen im Technischen Review
13.5.2 Organisation und Ablauf
13.5.3 Review-Regeln
13.5.4 Das Review als soziales Experiment
13.5.5 Ein Erste-Hilfe-Kasten für die häufigsten Probleme mit Reviews
13.5.6 Gründe, die Einführung von Reviews zu verschieben
13.6 Varianten der Software-Inspektion
13.6.1 Durchsicht
13.6.2 Stellungnahme
13.6.3 Structured Walkthrough
13.6.4 Design and Code Inspection
14 Metriken und Bewertungen
14.1 Metriken, Begriff und Taxonomie
14.1.1 Metrik
14.1.2 Nutzen und Schaden durch Metriken
14.1.3 Anforderungen an Metriken
14.1.4 Arten von Metriken
14.2 Objektive Metriken, Messung
14.2.1 Die Motivation zur Messung
14.2.2 Die Sammlung von Basisdaten
14.2.3 Zusammenhänge zwischen den Basisdaten
14.3 Subjektive Metriken, Beurteilung
14.3.1 Feststellung, Bewertung und Benotung
14.3.2 Die systematische Beurteilung der Qualität
14.3.3 Ein Beispiel für die Qualitätsbewertung
14.3.4 Hinweise für die praktische Anwendung
14.4 Pseudometriken
14.4.1 Die Produktivität
14.4.2 Merkmale der Metriken
14.4.3 Die Bestimmung der Komplexität nach McCabe
14.4.4 Software Science nach Halstead
14.4.5 Metriken von Chidamber und Kemerer
14.5 Die Suche nach der geeigneten Metrik
14.5.1 Der Goal-Question-Metric-Ansatz
14.5.2 Die Entwicklung einer Pseudometrik
14.6 Ein Beispiel für die Entwicklung einer Metrik
14.6.1 Software-Zuverlässigkeit
14.6.2 Definition der Zuverlässigkeit
14.6.3 Quantifizierung der Zuverlässigkeit
14.7 Hinweise für die praktische Arbeit
14.7.1 Welche Metrik soll man einsetzen?
14.7.2 Standardisierte Metriken, Normen
15 Werkzeuge und Entwicklungsumgebungen
15.1 Bewertung von Methoden und Werkzeugen
15.2 Computer-Aided Software Engineering
15.2.1 Begriffe
15.2.2 Die Entwicklung von CASE
15.2.3 Klassifikationen von CASE-Systemen
15.3 Offene integrierte Software-Engineering-Umgebungen
15.3.1 Architekturen
15.3.2 Anforderungen zur horizontalen Integration
15.3.3 Das Problem der vertikalen Integration
15.4 Code-Generierung aus Modellen
15.4.1 Model-Driven Software Development
15.4.2 Model-Driven Architecture
15.4.3 Ein Beispiel für eine MDA
15.5 Die Auswahl eines Werkzeugs
Chancen
Probleme
15.6 Ein Blick in die Praxis
Wahl und Auswahl von Werkzeugen
Die Vorteile kleiner Werkzeuge
Der Wert von Werkzeugen
Teil IV Techniken der Software-Bearbeitung
16 Analyse und Spezifikation
16.1 Die Bedeutung der Spezifikation im Entwicklungsprozess
16.1.1 Analyse und Spezifikation im Überblick
16.1.2 Der Nutzen der Spezifikation
16.2 Die Analyse
16.2.1 Grundbegriffe der Analyse
16.2.2 Dokumente der Analyse
16.2.3 Die Ist-Analyse
16.2.4 Die Soll-Analyse
16.2.5 Die Spielräume der Soll-Analyse
16.2.6 Techniken der Analyse
16.2.7 Die Schwierigkeiten der Analyse
16.2.8 Ein Praxisbericht
16.3 Begriffslexikon und Begriffsmodell
16.4 Anforderungen
16.4.1 Offene und latente Anforderungen, Entwickler-Optionen
16.4.2 Harte und weiche Anforderungen
16.4.3 Objektivierbare und vage Anforderungen
16.4.4 Funktionale und nichtfunktionale Anforderungen
16.4.5 Formulierung der nichtfunktionalen Anforderungen
16.4.6 Anforderungen zur Benutzbarkeit (Usability)
Methoden zur Verbesserung der Usability
Personas
16.4.7 Der praktische Umgang mit den verschiedenen Anforderungen
16.5 Die Spezifikation im Überblick
16.5.1 Der Spezifikationsbegriff
16.5.2 Angestrebte Eigenschaften der Spezifikation
16.5.3 Die Abgrenzung der Spezifikation zum Entwurf
16.6 Die Darstellung der Spezifikation
16.6.1 Formale Spezifikation
Langsame Entwicklung oder Durchbruch?
16.6.2 Grafische Darstellungen der Spezifikation
16.6.3 Natürlichsprachliche Spezifikation
Sprachschablonen
16.7 Konzepte und Komponenten der Spezifikation
16.7.1 Die Ausrichtung auf die Anforderungen
16.7.2 Die Spezifikation der Funktion
16.7.3 Anwendungsfälle
16.7.4 Das Mengengerüst
16.8 Muster und Normen für die Spezifikation
16.8.1 Vorlagen und Standardstruktur
16.8.2 Normen
16.9 Regeln für Analyse und Spezifikation
17 Entwurf
17.1 Ziele und Bedeutung des Entwurfs
17.1.1 Die Gliederung in überschaubare Einheiten
17.1.2 Die Festlegung der Lösungsstruktur
17.1.3 Die hierarchische Gliederung
17.1.4 Die Entwicklungsrichtung
17.1.5 Der Entwurf in der Praxis
17.2 Begriffe
17.2.1 System
17.2.2 Komponente und Modul
17.2.3 Schnittstelle
17.2.4 Entwurf und Software-Architektur
17.2.5 Architekturbeschreibung
17.2.6 Zusammenfassung
17.3 Prinzipien des Architekturentwurfs
17.3.1 Modularisierung
17.3.2 Kopplung und Zusammenhalt
17.3.3 Information Hiding
Vor- und Nachteile des Information Hiding
17.3.4 Die Trennung von Zuständigkeiten
17.3.5 Die hierarchische Gliederung
17.3.6 Die Prinzipien im Zusammenhang
17.4 Der objektorientierte Entwurf
17.4.1 Das objektorientierte Metamodell
17.4.2 Ein Beispiel
17.4.3 Wie findet man fachliche Klassen?
17.4.4 Das Offen-geschlossen-Prinzip
17.4.5 Hinweise zur Codierung
17.4.6 Bewertung
17.5 Wiederverwendung von Architekturen
17.5.1 Architekturmuster
Das Architekturmuster der Software-Schichten
Das Drei-Schichten-Architekturmuster
Das Pipe-Filter-Architekturmuster
Das Model-View-Controller-Architekturmuster
Das Plug-in-Architekturmuster
17.5.2 Entwurfsmuster
Ein einführendes Beispiel
Muster zum Verwalten von Objekten
Muster zur Anbindung vorhandener Klassen oder Komponenten
Muster zur Entkopplung von Komponenten
Muster zur Trennung der unterschiedlichen von den gemeinsamen Merkmalen
Die praktische Anwendung der Entwurfsmuster
Bewertung
17.5.3 Bibliotheken und Rahmenwerke
Klassenbibliotheken
Rahmenwerke
Offene Rahmenwerke
Geschlossene Rahmenwerke
Bewertung
17.5.4 Produktlinien- und Referenzarchitekturen
Produktlinienarchitektur
Referenzarchitektur
17.6 Die Qualität der Architektur
17.6.1 Qualitätskriterien
17.6.2 Die Bewertung und Prüfung einer Architektur
18 Codierung
18.1 Programmiersprachen als Werkstoffe
18.2 Regeln für die Codierung
18.2.1 Richtlinien
18.2.2 Ratschläge
18.3 Die Dokumentation des Codes
18.3.1 Der Feinentwurf
18.3.2 Integrierte Dokumentation
18.4 Realisierungen des Information Hiding
18.4.1 Kapselung
Ein Beispiel zur Kapselung
Implementierung einer Kapsel in ADA
Implementierung einer Kapsel in C
18.4.2 Abstrakte Datentypen
Implementierung eines Abstrakten Datentyps in ADA
18.4.3 Vergleich zwischen Kapselung und ADT
18.5 Robuste Programme
18.6 Das Vertragsmodell
18.6.1 Zusicherungen
18.6.2 Die Formulierung von Zusicherungen
18.6.3 Zusicherungen in Programmiersprachen
18.6.4 Bewertung
18.7 Werkzeuge zur Codierung
19 Programmtest
19.1 Begriffe und Grundlagen des Tests
19.1.1 Definition
19.1.2 Soll-Resultate
19.1.3 Der Regressionstest
19.1.4 Fehler und Fehlersymptome
19.1.5 Vollständiger Test und Stichprobe
19.1.6 Vor- und Nachteile des Testens
19.2 Einige spezielle Testbegriffe
19.2.1 Klassifikation nach den Grundlagen des Tests
19.2.2 Klassifikation nach dem Aufwand für Vorbereitung und Archivierung
19.2.3 Klassifikation nach der Komplexität des Prüflings
19.2.4 Klassifikation nach der getesteten Eigenschaft
19.2.5 Klassifikation nach den beteiligten Rollen
19.3 Die Testdurchführung
19.3.1 Der prinzipielle Testablauf
19.3.2 Testvorbereitung
19.3.3 Testausführung
19.3.4 Testauswertung
19.3.5 Das Testendekriterium
19.3.6 Werkzeuge für den Test
19.4 Die Auswahl der Testfälle
19.4.1 Der Testfall
19.4.2 Testkonzepte
19.4.3 Starke und schwache Äquivalenz
19.4.4 Anwendung der Äquivalenzklassen zur Testdatenauswahl
19.5 Der Black-Box-Test
19.5.1 Die Ziele des Black-Box-Tests
19.5.2 Die Testfallauswahl für die Funktionsüberdeckung
19.5.3 Der zustandsbasierte Test
19.5.4 Der Test auf Basis der Anwendungsfälle
19.6 Der Glass-Box-Test
19.6.1 Überdeckungskriterien für den Glass-Box-Test
19.6.2 Die Anweisungsüberdeckung
19.6.3 Die Zweig-, auch Entscheidungsüberdeckung
19.6.4 Die Termüberdeckung
Beispiel zur Ermittlung der Termüberdeckung
MC/DC Coverage
19.6.5 Schwierigkeiten bei der Zweig- und Termüberdeckung
19.6.6 Die Pfadüberdeckung
19.6.7 Die Behandlung von Schleifen und die einfache Pfadüberdeckung
19.6.8 Überdeckungskriterien für Programmkomponenten
19.7 Testen mit Zufallsdaten
19.8 Beispiele zum Test
19.8.1 Demonstration der Teststrategien an einem konstruierten Beispiel
Zusammenfassung
19.8.2 Ein Beispiel zur Testfallauswahl
19.8.3 Spezifikation
19.8.4 Black-Box-Test
Eingabeüberdeckung
Ausgabeüberdeckung
Funktionsüberdeckung
Grenzwerte
Testsequenz
19.8.5 Glass-Box-Test
19.8.6 Schlussbemerkungen zum Test-Beispiel
19.9 Ausblick
20 Integration
20.1 Einbettung der Integration in die Software-Entwicklung
20.2 Integrationsstrategien
20.2.1 Integration in einem Schritt
20.2.2 Inkrementelle Integration
Top-down-Integration
Bottom-up-Integration
Kontinuierliche Integration
20.2.3 Ein Beispiel zur Integration
20.3 Probleme der Integration
20.4 Planung und Dokumentation der Integration
20.5 Grundsätze für die Integration
Teil V Verwaltung und Erhaltung von Software
21 Konfigurationsverwaltung
21.1 Grundlagen der Konfigurationsverwaltung
21.1.1 Software-Einheiten
21.1.2 Versionen
21.1.3 Varianten
21.1.4 Konfigurationen
21.1.5 Probleme mit Versionen und Varianten
21.1.6 Baselines und Releases
21.1.7 Konfigurationsverwaltung
21.2 Die Aufgaben der Konfigurationsverwaltung
21.3 Identifikation und Benennung von Software-Einheiten
21.3.1 Die Benennung von Software-Einheiten
21.3.2 Identität und Verwaltung von Software-Einheiten
21.4 Arbeitsbereiche für die Software-Verwaltung
21.4.1 Die Bereiche und ihr Zusammenspiel
21.4.2 Realisierung der Arbeitsbereiche
22 Software-Wartung
22.1 Begriff und Taxonomie der Software-Wartung
22.1.1 Verschleiß und Wartung
22.1.2 Definitionen des Wartungsbegriffs
22.1.3 Arten der Wartung
22.1.4 Die Kosten der Wartung
22.2 Inhalt und Ablauf der Wartung
22.2.1 Ein Modell der Wartung
22.2.2 Schritte der Wartung
22.2.3 Die Verteilung der geänderten Software
22.3 Risiken, Probleme und Grundsätze der Wartung
22.3.1 Risiken und Probleme
22.3.2 Grundsätze der Wartung
22.4 Die Wartungsorganisation
22.4.1 Problemmeldung und Änderungsantrag
22.4.2 Die Behandlung von Problemmeldungen
22.4.3 Die Wartungsingenieure
22.4.4 Der Änderungsausschuss
23 Reengineering
23.1 Software-Evolution
23.2 Reengineering
23.2.1 Begriffe
23.2.2 Vorgehensweise
23.2.3 Techniken
23.2.4 Varianten, Probleme, Erfahrungen
23.3 Refactoring
23.3.1 Code-Refactoring
23.3.2 Architektur-Refactoring
23.4 Erblasten, Legacy Software
23.4.1 Eigenschaften
23.4.2 Erneuern oder Ablösen einer Software-Erblast
23.4.3 Migration einer Software-Erblast
23.4.4 Die Ablösung auf einen Schlag
24 Wiederverwendung
24.1 Die alltägliche Wiederverwendung
24.1.1 Wiederverwendung außerhalb der Informatik
24.1.2 Die geläufige Wiederverwendung der Software
24.2 Terminologie und Taxonomie der Wiederverwendung
24.2.1 Der Begriff der Wiederverwendung
24.2.2 Wiederverwendbarkeit
24.3 Kosten und Nutzen der Wiederverwendung
24.3.1 Die Kosten der Wiederverwendung
24.3.2 Der Nutzen der Wiederverwendung
24.4 Chancen und Probleme der Wiederverwendung
24.5 Rahmenbedingungen für die Wiederverwendung
24.6 Entwicklungstechniken für die Wiederverwendung
Prozeduren
Module, Information Hiding
Objekte, Vererbung
Programmgeneratoren
Rahmenwerke
Muster
Komponenten
Produktlinien
Model Driven Architecture (MDA)
24.7 Von der Codierung zur Komposition
Teil VI Nachwort, Literatur und Index
25 Nachwort: Die Schule der Software-Ingenieure
25.1 Software Engineering in der Praxis
25.2 Stand der Technik und Stand der Praxis
25.3 Der Studiengang Softwaretechnik
25.4 Nachfrage und Angebot auf dem Ausbildungsmarkt
26 Literaturangaben
26.1 Hinweise zu den Literaturangaben
26.2 Literaturangaben, nach Verfassern geordnet
26.3 Verzeichnis der Normen und Standards
26.3.1 DIN-Normen
26.3.2 IEEE-Standards
26.3.3 ISO-Standards
Index
Fußnoten
Kapitel 1
Kapitel 2
Kapitel 4
Kapitel 8
Kapitel 9
Kapitel 10
Kapitel 11
Kapitel 13
Kapitel 14
Kapitel 15
Kapitel 17
Kapitel 19
Kapitel 24
Kapitel 25
← Prev
Back
Next →
← Prev
Back
Next →