Jörg Raasch
Systementwicklung mit Strukturierten Methoden
Ein Leitfaden für Praxis und Studium
2., durchgesehene Auflage
mit 270 Bildern
Carl Hanser Verlag München Wien
Vorwort
Inhaltsverzeichnis
1.1.1 1.2 1.3 1.4
1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6
1.51.5.1 1.5.2 1.5.3 1.5.4
2.2.1
2.1.1 2.1.2 2.1.3 2.1.4 2.1.4.
2.1.4.
2.1.5
2.22.2.1 2.2.2 2.2.3 2.2.3.
2.2.3.
2.2.4
2.32.3.1 2.3.2 2.3.3 2.3.4
1 2
1 2
Probleme der Software-Entwicklung Qualität - Kosten - Zeit
Mängel existierender Systeme Wirtschaftliche Aspekte
Weshalb scheitern Software-Projekte ? Projektmanagement
Konzept und Lösung Veränderte Anforderungen Akzeptanzprobleme
Methodische Unterstützung des Analytikers Planung, Kontrolle und Steuerung
Vorgeschlagene Maßnahmen Enduser - Produkte
Standard-Software einsetzen Prototyping
Reverse Engineering
Anforderungen an das Software-Produkt Qualitätsmerkmale aus Anwendersicht Funktionserfüllung
Effizienz Zuverlässigkeit Benutzbarkeit Software-Ergonomie
Anforderungen an die Benutzerschnittstelle Sicherheit
Qualitätsmerkmale aus Entwicklersicht Erweiterbarkeit
Wartbarkeit
Übertragbarkeit, Portabilität Software-Architektur
Portabilität und Software-Architektur Wiederverwehdbarkeit
Systeme mit Sicherheitsverantwortung
Betriebliche und sicherheitsbezogene Funktionen Risikoanalyse
Fehlerarten
Sicherheitsmaßnahmen ~
1 1 3 6 9 9 10 11 11 12 15 16 16 16 17 19 21 22 22 23 24 24 25 28 29 30 30 31 32 32 34 35 37 38 39 41 42
2.4 Kommerzielle Anwendungen und Systeme 43 2.4.1 Wirtschaftlichkeit 44 2.4.2 Integration 44 2.4.2.1 Definition des Begriffs "Integration" 46 2.4.2.2 Schnittstellen zwischen Teilverfahren des integrierten Systems 47 2.4.2.3 Integration und Wirtschaftlichkeit 48 2.4.3 Rechtsgrundsätze und Internes Kontroll-System 49 2.5 Definition von Qualitätszielen 50 2.5.1 Skalierung von Zielen 51 2.5.2 Konzeptionelle Einordnung 55 2.5.2.1 Akzeptanzbereiche 55 2.5.2.2 Ergänzung durch Qualitätssicherung 57 2.6 Zusammenfassung - Qualität 57
3. Modelle und Methoden 59 3.1 Modellbau 59 3.1.1 Systeme 59 3.1.1.1 Ereignisse, Auslöser, Reaktionen 60 3.1.1.2 Spontane Hülle und geplanter Kern 62 3.1.1.3 Interaktive Systeme 65 3.1.2 Modell und Realität 65 3.1.3 Modellierung von Systemen 68 3.1.4 Anforderungen an das Methodendokument 71 3.1.5 Syntax, Semantik und Pragmatik 73 3.1.6 Ansätze zur Systemanalyse 75 3.1.6.1 Anforderungen an eine Zerlegungsstrategie 76 3.1.6.2 Funktionsorientierte (funktionale) Zerlegung 76 3.1.6.3 Datenorientierte Zerlegung 76 3.1.6.4 Essentielle Zerlegung 77 3.1.6.5 Objektorientierte Zerlegung 77 3.1.6.6 Trends 78 3.2 Qualitätssicherung 79 3.3 Basistechniken 80 3.4 Methoden 81
4. SA Strukturierte Analyse 85 4.1 SA - Übersicht zur Strukturierten Analyse 85 4.1.1 Die Funktion 85 4.1.2 Rahmengliederung der Analyseschritte 87 4.1.3 Beispiel- Flugkarten-Verkauf 88 4.2 SA - Modellierung - Modellnotation 96 4.2.1 Grafische Mittel 96 4.2.1.1 Datenflußdiagramme - DFD 96 4.2.1.2 Verfeinerung 97
4.2.1.3 Syntaktische Regeln 99
4.2.1.4 Semantische Regeln 100
4.2.1.4.1 Namensgebung 100
4.2.1.4.2 Datensichten 102
4.2.1.4.3 Fehlerbearbeitung 102
4.2.2 Textliche Mittel 102
4.2.2.1 Prozeßspezifikationen - PSPEC 102
4.2.2.2 Datenkatalogeinträge 106
4.2.3 Formale Qualität und Balance 108
4.3 SA - Modellbewertung 109
4.3.1 Die Essenz eines Systems 109
4.3.1.1 Perfekte Technologie 109
4.3.1.2 Bestandteile der Essenz 111
4.3.2 Essentielle Zerlegung 114
4.3.2.1 Erkennen von Ereignissen 114
4.3.2.2 Ereignisorientierte Zerlegung des Systems in essentielle Aktivitäten 117
4.3.2.3 Objektorientierte Zerlegung des essentiellen Speichers 120
4.3.2.4 Resultat dieser Zerlegung 121
4.3.2.5 Das essentielle Modell 124
4.3.3 Prinzipien der essentiellen Modellierung 124
4.3.4 Die Anatomie von Systemen 127
4.3.4.1 Beispiel - Angebote erstellen 128
4.3.4.2 Infrastruktur 129
4.3.4.3 Administration 129
4.3.4.4 Die Inkarnation eines Systems 130
4.3.4.5 , Systeme und Prozessoren 132
4.3.4.6 Zusammenfassung 134
4.3.4.7 Vorteile der essentiellen Zerlegung 134
4.3.5 Das Kommunikationsproblem 135
4.3.5.1 Fünf Stufen beim Erwerb von Fähigkeiten 135
4.3.5.2 Objektive Probleme der Kommunikation 136
4.3.5.3 Subjektive Probleme des Anwenders 137
4.3.5.4 Fehlverhalten des Analytikers 137
4.3.5.5 Abstimmung mit dem Anwender 139
4.4 SA - Methoden 141
4.4.1 Eine neue Essenz finden 142
4.4.1.1 Ziele des neuen Systems festlegen 142
4.4.1.2 Grundlegende Aktivitäten finden . 143
4.4.1.3 Speicher des Systems finden 143
4.4.1.4 Verwaltungsaktivitäten finden 144
4.4.1.5 Vorläufiges essentielles Modell erstellen 144
4.4.1.6 Die Vorgehens-Strategie 145
4.4.1.7 Beispiel Auftragsbearbeitung 145
4.4.1.8 Rückfragen beim Anwender 154
4.4.2 (Teilweise) Modellierung eines Vorgängersystems 156
4.4.2.1 Pierheben 157
4.4.2.2 Pl expandieren 157 4.4.2.3 Das expandierte Pl reduzieren 158 4.4.2.4 Essentielle Fragmente klassifizieren 159 4.4.2.5 Eine essentielle Aktivität ableiten 160 4.4.3 Essentielle Aktivitäten zu einem Modell integrieren 162 4.4.3.1 Eine essentielle Aktivität integrieren 162 4.4.3.2 Das globale essentielle Modell erstellen 163 4.4.4 Die Modellqualität optimieren 163 4.4.4.1 Aufteilung der Datenelemente auf Speicher optimieren 163 4.4.4.2 Verfeinerte PSPECs erzeugen 163 4.4.4.3 Die essentielle Ebene vergröbern 164 4.4.4.4 Zugriff auf Daten anderer Kontexte 165 4.4.4.5 Beziehungstypen im SA-Modell 165 4.4.5 Den Analyse-Aufwand reduzieren 167 4.4.5.1 Eine Analyse des Altsystems durchführen 167 4.4.5.2 Blitzen 168 4.4.6 Regeln zur Kontextabgrenzung 169 4.4.6.1 Elementare Regeln 171 4.4.6.2 Kontexte zu Superkontexten zusammenfassen 172 4.4.6.2.1 Beispiel Teil 1 - eine stark vereinfachte FIBU 173 4.4.6.2.2 Beispiel Teil 2 - Zusammenführung mit der vereinfachten
Auftragsbearbeitung 174 4.4.6.3 Elementarkontexte und Superkontexte • 175 4.4.6.4 Praktische Konsequenzen 177 4.4.6.5 Beispiele " 178 4.4.7 Zusammenfassung der Methodenschritte 180 4.4.8 Systemstatistiken erstellen (Mengengerüste) 180 4.5 SA - Zwischen Analyse und Design 183 4.5.1 Ein essentielles Modell konzeptionell weiterentwickeln 185 4.5.1.1 Essentielle Minimodelle entwerfen 186 4.5.1.2 Essentielle Mini-Modeile integrieren 187 4.5.2 Eine Inkarnation der Essenz auswählen 189 4.5.2.1 Globale Sicht 189 4.5.2.2 Aus Sicht einer einzelnen essentiellen Aktivität
(Transformationsanalyse) 191 4.5.2.3 Aus Sicht aller essentiellen Aktivitäten eines
Anwenders (Transaktionsanalyse) 192 4.5.2.4 Beispiel Autowerkstatt 193
5. RT Strukturierte Real-Time-Analyse 199 5.1 RT - Übersicht zur Methode 199 5.1.1 Grenzen der SA bei technischen Anwendungen 199 5.1.1.1 Kommerzielle und technische Systeme 201 5.1.1.2 Beispiel - Arztpraxis 202 5.1.2 Das zusammengesetzte Modell aller Anforderungen 207 5.1.3 Endliche Automaten 208
5.1.3.1 Kombinatorische Maschinen 209
5.1.3.2 Sequentielle Maschinen 209
5.1.3.2.1 Zustandsdiagramme 209
5.1.3.2.2 Der Zustandsbegriff 210
5.1.3.3 Die Kontrollebene als endlicher Automat 210
5.2 RT - Modellierung 211
5.2.1 Daten-und Kontrollflüsse 212
5.2.2 Modellnotation 213
5.2.2.1 Balken, CSPECs und Kontrollflüsse 214
5.2.2.2 Terminatoren, Prozesse und Speicher 215
5.2.3 Beispiel - Wischer 216
5.2.4 Aufbau der Kontrollschicht 220
5.2.4.1 Kontroll-Kontextdiagramm (CCD) 220
5.2.4.2 Kontrollflußdiagramm (CFD) und Kontrollprozesse 221
5.2.4.3 Quellen und Senken der Kontrollflüsse 221
5.2.4.4 Kontrollflußverarbeitung 222
5.2.4.4.1 DT - Decision Tables - Entscheidungstabellen 223
5.2.4.4.2 STD - State Transition Diagram - Zustandsdiagramm 223
5.2.4.4.3 SEM - State Event Matrix - Zustands-Ereignis-Matrix 224
5.2.4.4.4 PAT - Process Activation Table - Prozeßaktivierungstabelle 224
5.2.5 Schnittstellen zur Prozeßschicht 225
5.2.6 Konsistenzprüfungen 226
5.3 RT - Modellbewertung 227
5.3.1 Wann RT nutzen? 227
5.3.2 Beispiel - Drehzahl regeln 229
5.3.3 Essentielle Zerlegung 231
5.3.3.1 Implementationsfreiheit 231
5.3.3.2 Ergänzung der Prozeßebene 232
5.3.3.3 Intern erkannte Ereignisse 233
5.3.4 Beispiel - Kamera steuern 233
5.3.5 Behandlung der Zeit 238
5.4 RT - Methoden 239
5.4.1 Eine neue Essenz finden 239
5.4.1.1 Erweiterung der Ereignistabelle 240
5.4.1.2 Die Essenz modellieren 241
5.4.1.3 Die Kontroll-Schicht entwickeln 241
5.4.2 Das Anforderungsmodell erweitern 242
5.4.2.1 Die Architektur-Schablone 242
5.4.2.2 Das Inkarnationsmodell 243
5.4.2.3 Inkarnationsrriodell Kamera steuern 244
5.4.3 Architekturmodelle 246
5.4.3.1 Notation von Architekturmodellen 246
5.4.3.2 AFD und AID 248
5.4.3.3 Architekturmodell Kamera steuern 248
5.4.4 Das Architekturmodell erstellen 249
5.4.4.1 Der Architekturkontext 250
5.4.4.2 5.4.4.3 5.4.4.4 5.4.5 5.4.6 5.4.7
6.6.1 6 . 2
6.2.1 6.2.2 6.2.3 6.2.4 6.2.5
6.36.3.1 6.3.1.1 6.3.1.2 6.3.1.2.1 6.3.1.2.2 6.3.1.2.3 6.3.1.3 6.3.1.4 6.3.2 6.3.2.1 6.3.2.2 6.3.2.3 6.3.2.4 6.3.2.4.1 6.3.2.4.2 6.3.3 6.3.3.1 6.3.3.2 6.3.3.3
6.4
6.4.1 6.4.2 6.4.2.1 6.4.2.2 6.4.2.3 6.4.2.4 6.4.2.5 6.4.3 6.4.4
Architekturmoduln identifizieren Architekturverbindungen entwickeln
Architekturverbindungsmodell Kamera steuern Die HW- und SW-Architektur modellieren Die SW-Architektur entwickeln
Moduldesign Kamera steuern
SM Semantische Modellierung der Datenstruktur SM - Vorbemerkungen
SM - Modellierung Begriffsbestimmungen Beispiel Vorlesungsbesuch Modellnotation
Erweiterte Modellnotation Alternative Notationen SM - Modellbewertung Das Relationenmodell Relationen
Integrität Entity-Integrität Referentielle Integrität Fremdschlüssel-Regeln
Charakterisierung des relationalen Modells Datenmodellierung
Normalisierung
Beispiel Lehrgangsreferat Funktionale Abhängigkeit Die Normalformen
Beispiel zur Normalisierung - Student und Vorlesung Version 1 - Herleitung aufgrund der Normalisierungsregeln Version 2 - Vorgehensweise des Praktikers
Konstruktion von Primärschlüsseln Das Problem
Identnummern Primärschlüssel-Epilog SM - Methoden
Beispiel Anschriften - die Probleme Entity-Analyse (Top-Down) Entitytypen erkennen Beziehungstypen erkennen Attribute erkennen Das ER-Modell darstellen Weitere Empfehlungen Entity-Synthese (Bottom-Up) Das normalisierte Entity-Modell
250 252 2 5 2 254 255 255
257 257 2 5 8 258 259 261 262 2 6 4 267 267 268 271 271 272 273 275 2 7 6 281 282 284 285 288 289 290 291 2 9 1 295 2 9 8 2 9 9 2 9 9 3 0 2 3 0 2 3 0 4 3 0 4 3 0 4 3 0 4 3 0 6 307
6.4.5 Strukturierte Darstellung 312 6.4.6 Lebenszyklen von Entitytypen 314 6.4.7 Das essentielle Modell 315 6.4.8 Logisches Datendesign 315 6.4.8.1 Das relevante Entity-Modell 315 6.4.8.2 Zugriffspfadanalyse 316 6.4.8.2.1 Beschreibung der Zugriffspfadanalyse 316 6.4.8.2.2 Notation 316 6.4.8.2.3 Einfache Beispiele 316 6.4.8.3 Das quantifizierte Entity-Modell 317 6.4.8.4 Beispiel Anschriften - Zugriffspfadanalyse 317 6.4.9 Physisches Datendesign 320 6.4.9.1 Performance 321 6.4.9.2 Das Entity-Modell partiell denormalisieren 321 6.4.9.3 Das Datenmodell an die Implementierung anpassen 329 6.4.9.3.1 Abbildung von Entitytypen 329 6.4.9.3.2 Abbildung von Attributen 329 6.4.9.3.3 Abbildung von Beziehungstypen 329 6.4.9.3.4 Definition von Sekundärschlüsseln 330 6.4.9.4 Beispiel Anschriften - Relationenmodell zur Implementierung 330
7. SD Strukturiertes Design 333 7.1 SD-Vorbemerkungen 334 7.1.1 Abstraktion 334 7.1.1.1 Funktionale Abstraktion 335 7.1.1.2 Datenabstraktion 335 7.1.2 Was ist ein Modul ? 337 7.1.3 Weshalb Modularisieren ? 338 7.2 SD-Modellierung 338 7.2.1 Hierarchiediagramm - Programmorganisationsplan 338 7.2.2 Modellnotation - Structure-Chart 339 7.2.2.1 Beispiel für einen Structure-Chart 342 7.2.2.2 Eigenschaften des Structure-Charts 342 7.2.3 Modul-Spezifikation 342 7.2.3.1 Modulkopf 343 7.2.3.2 Spezifikation mit Preconditions / Postconditions 344 7.2.3.3 Spezifikation auf SA-Basis ' 345 7.2.3.4 Spezifikation mit Pseudocode 345 7.2.3.5 Formale Spezifikation 346 7.3 SD-Modellbewertung 348 7.3.1 Kopplung 348 7.3.1.1 Datenkopplung 348 7.3.1.3 Kontrollkopplung 350 7.3.1.4 Globale Kopplung 354 7.3.1.5 Inhaltskopplung " 355 7.3.1.6 Zusammenfassung 356
7.3.2 7.3.2.1 7.3.2.2 7.3.2.3 7.3.2.4 7.3.2.5 7.3.2.6 7.3.2.7 7.3.2.8 7.3.3 7.3.3.1 7.3.3.2 7.3.3.3 7.3.3.4 7.3.3.5 7.3.3.6 7.3.3.7 7.3.3.8 7.3.3.9 7.3.3.10 7.3.3.11 7.3.3.12 7.3.3.13 7.3.3.14 7.4 7.4.1 7.4.1.1 7.4.1.2 7.4.1.3 7.4.1.4 7.4.1.5 7.4.1.6 7.4.2 7.4.3 7.4.4 7.4.5
8.
8.1 8.2 8.2.1 8.2.1.1 8.2.1.2 8.2.1.3 8.2.1.4 8.2.2
Zusammenhalt
Funktionaler Zusammenhalt Sequentieller Zusammenhalt Kommunizierender Zusammenhalt
Problembezogener (prozeduraler) Zusammenhalt Zeitlicher Zusammenhalt
Programmstruktureller Zusammenhalt Zufälliger Zusammenhalt
Zusammenfassung Weitere Kriterien Faktorisieren
Decision-Split vermeiden Balancierte Systeme Fehlerverarbeitung Prüfen
Moduln mit Gedächtnis
Programmstruktur der Datenstruktur anpassen Information-Cluster
Initialisierung und Terminierung Restriktiv vs. allgemein
Fan-Out Fan-In
Die Form des Systems Semantische Konsistenz SD-Methoden
Konstruktion des neuen Systems Subsysteme nach Betriebsart abgrenzen Implementationsgrenzen festlegen Weitere Unterteilung
Essentielle Prozesse fragmentieren
Implementationsabhängige Prozesse hinzufügen Auswahl von Hardware und Software
Transaktionsanalyse Transformationsanalyse Die Systemstruktur Physisches Moduldesign
OOA Objektorientierte Analyse OOA-Vorbemerkungen
OOA-Modellbewertung Die Analysemethoden Funktionale Zerlegung Strukturierte Analyse
Semantische Datenmodellierung Zusammenfassung bisheriger Methoden Obiektorientierte Proqrammieruna
356 357 3 5 7 358 358 358 358 359 359 360 360 362 363 365 368 369 369 370 371 371 373 373 373 374 375 376 376 377 378 378 379 379 380 382 386 387
389 390 391 391 391 392 393 394 396