• Keine Ergebnisse gefunden

Systementwicklung mit Strukturierten Methoden

N/A
N/A
Protected

Academic year: 2022

Aktie "Systementwicklung mit Strukturierten Methoden"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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

(2)

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.5

1.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.2

2.2.1 2.2.2 2.2.3 2.2.3.

2.2.3.

2.2.4

2.3

2.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

(3)

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)

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

(5)

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

(6)

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

(7)

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.3

6.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

(8)

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

(9)

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

(10)

8.2.2.1 Geschichte 396 8.2.2.2 . Objekte und Mitteilungen 396 8.2.2.3 Klassen und Instanzen 398 8.2.2.4 Vererbung 398 8.2.2.5 Klassenhierarchie 399 8.2.2.6 Polymorphismus 399 8.2.2.7 Frühe und späte Bindung 400 8.2.3 Charakterisierung der Objektorientiertheit 400 8.3 OOA-Methoden 400 8.3.1 Objekte identifizieren 401 8.3.2 Strukturen identifizieren 403 8.3.3- Subjekte definieren 404 8.3.4 Attribute und Instanzverbindungen definieren 404 8.3.5 Methoden und Mitteilungsverbindungen definieren 405 8.4 OOA und die Strukturierten Methoden 407 8.4.1 Bewertung der OOA 407 8.4.2 Bestandsaufnahme 408 8.4.3 Vorgehensweise 409 9. Projektmanagement 411 9.1 Vorgehensmodelle 412 9.1.1 Das Wasserfallmodell 412 9.1.2 Das Prototypingmodell 413 9.1.3 Das Spiralmodell 414 9.1.4 Evolutionäre Auslieferung 415 9.1.5 Weitere Ansätze 417 9.2 Strukturiertes Projektmanagement 417 9.2.1 Definition des Strukturierten Projektmanagements 419 9.2.2 Beispiel - DBMS-Entwicklung 420 9.2.3 Eigenschaften des Strukturierten Projektmanagements 422 Literaturverzeichnis 425 Index 437 Anhang:

Anfdorderungen an Benutzerschnittstellen 449

Referenzen

ÄHNLICHE DOKUMENTE

schaft Kaupos betreffende Zurechtstellung zu einem von Herrn Falck gehaltenen Vortrage (s. Derselbe gab einen Beitrag zur Reformationsgeschichte Oeseis. Herr

Abstract: Climate adaptation is an extremely relevant theme for landscape architecture. This article is based on 2 design studies. The first is our manifesto and regional

This is an extended precision arithmetic program testing both integer arithmetic and" character manipulation.- Code is in both FORTRAN and

Vorliegend ist mangels entgegenstehender Angaben im Sachverhalt davon auszugehen, dass keine mündliche Verhandlung stattgefunden hat, sodass das VU durch Beschluss

Da unsere Spiralen wie auch der Schwerpunkt mit Teilverhältnissen definiert sind, bleibt die Eigenschaft erhalten, dass die Spiralen in den Schwerpunkt einmünden.. Allerdings sind

Damit der Zugriff auf alle Neukatalogisate tatsächlich auch allen KatalogisiererInnen in allen Verbünden sowie in der Deutschen Nationalbibliothek zu einem möglichst frühen Zeitpunkt

To study the effect of increased concentrations of inorganic nutrients in the pore water, due to a simulated increased remineralization of organic matter in the sediment,

do (egressa da gradua) da quel reparto della siderurgia (tempio fHerculi57 ) veniva serrata (compellaretur) /"oppure: andava ad urtare^7 nell'attrezzatura di produzione