Structured Analysis ¤ Historie SA ("Structured Analysis") wurde in den 70-er Jahren von Tom DeMarco und von C.Gane / T.Sarson entwickelt. 1984 von Stephen M. McMenamin / John F. Palmer um eine Analysestrategie erweitert ("essentielle Systemanalyse") 1985 von Paul Ward /Stephen J. Mellor und 1987 von D. J. Hatley / I. A. Pirbhai erweitert für die Spezifikation von Echtzeitsystemen. 1989 Erweiterungen durch Ed Yourdan zusammengefaßt.
Structured Analysis ¤ Hauptkomponenten Grafische Beschreibung durch hierarchisch angeordnete Datenflußdiagramme (DFDs bzw. „Bubble Charts“). Zerlegung der Prozesse, bis für die Teilprozesse knappe Minispezifikationen (MiniSpecs) erstellbar sind. Data Dictionary zur Beschreibung der Datenflüsse und der Datenspeicher.
Structured Analysis ¤ Notation nach DeMarco
Structured Analysis ¤ Dynamische Elemente Die Prozesse, die nicht weiter verfeinert werden, werden mittels Minispezifikationen (MiniSpecs) beschrieben. Die MiniSpecs beschreiben den Kontrollfluß in strukturierter Sprache. Faustregel: max. 1 DIN A4 -Seite Für Theatervorstellung mit Aufführung = gewünschte Aufführung und Vorstellungsort = gewünschter Vorstellungsort und Vorstellungstermin = gewünschter Vorstellungstermin wenn in gewünschter Platzkategorie freier Platz vorhanden Reihen-Nr+Sitz-Nr+Theaterkartenpreis+Vorverkaufsgebühr ausgeben sonst falls beide Platzkategorien ausverkauft "Vorstellung ist ausverkauft" ausgeben falls nur gewünschte Platzkategorie ausverkauft "Platzkategorie ist ausverkauft" ausgeben wenn nicht gefunden "gewünschte Vorstellung findet nicht statt" ausgeben
Structured Analysis ¤ Data Dictionary / Datenstrukturierung Jeder Datenfluß und jeder Datenspeicher wird im Data Dictionary in seiner Zusammensetzung beschrieben. Hierbei gelten folgende syntaktische Regeln: Platzkategorie = [ Rang | Parkett ] Platz = Platzkategorie + Reihen-Nr. + Sitz-Nr. Bestuhlung = { Vorstellungsort + {Platz} } * für alle Plätze an allen Vorstellungsorten *
Structured Analysis ¤ Hierarchiekonzept
Structured Analysis ¤ Syntaktische Regeln Das Kontextdiagramm beschreibt die Schnittstellen des Systems zur Umgebung und enthält nur einen einzigen Prozeß für das gesamte Zielsystem. Terminatoren (Datenquellen und -senken) werden nur in das Kontextdiagramm eingetragen. Das Kontextdiagramm enthält keine Datenspeicher. Keine Beschriftung der Datenflüsse von und zu Datenspeichern, wenn alle Attribute des Datenspeichers benutzt werden.
Structured Analysis ¤ Konventionelle Vorgehensweise Nach DeMarco erfolgt die Systemanalyse in 4 Schritten: Auf Basis der physischen Details des IST-Modells erfolgt Abstraktion. Logisches IST-Modell durch Entfernung von Implementierungsdetails. Logisches SOLL-Modell berücksichtigt Anforderungen an zukünftiges System. Physisches SOLL-Modell nimmt physische Festlegungen vor (z.B. Festlegung der Automatisierungsgrenze des Zielsystems; Performance-Anforderungen)
Structured Analysis ¤ Kritikpunkte an der konventionellen Vorgehensweise Viele Projekte blieben in der "physikalischen Schlammgrube" stecken (Erhebung überflüssiger physikalischer Details des IST- Modells - Informationen, die nachher weggeworfen werden). Ein Festbeißen an den Fehlern des IST-Modells vergiftet das Projekt-Klima. Häufig existieren schon konkrete Anforderungen an ein neues System. Es handelt sich um eine reine Darstellungstechnik ohne Leitfaden zur Modellentwicklung.
Structured Analysis ¤ Essentielle Systemanalyse McMenamin und Palmer Vorgehensweise zum Aufspüren des logischen Soll Geeignet für interaktive Systeme mit geplanten Reaktionen auf externe und zeitliche Ereignisse Gedankenmodell der perfekten Technologie Essenz des Systems und essentielle Zerlegung Ereignisorientierte Zerlegung der essentiellen Aktivitäten Objektorientierte Zerlegung des essentiellen Speichers
Structured Analysis ¤ Essentielle Systemanalyse Bestandteile eines vollständigen essentiellen Modells Umgebungsmodell Zielformulierung Kontextdiagramm Ereignisliste Internes Modell des Zielsystems DFDs (außer Kontext) Entity-Relationship-Diagramm Data Dictionary MiniSpecs
Structured Analysis ¤ Schalenförmige Systemstruktur Technologieabhängige Systemteile werden vom logischen Systemkern getrennt und in die Randbereiche des Systems ausgegliedert. Essenz Administration Infrastruktur spontane Hülle
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Ziele des Systems festlegen Ereignistabelle erstellen Kontext-Diagramm erstellen Zusammensetzung der Auslöser und Reaktionen im Data Dictionary beschreiben Grundlegende Aktivitäten und erforderliche Speicher in Datenflußdiagramm des Zielsystems eintragen Objektorientierte Zerlegung des essentiellen Speichers Ereignistabelle vervollständigen Data Dictionary vervollständigen Kontextdiagramm vervollständigen DFD um Verwaltungsaktivitäten ergänzen Verdichtung des DFD nach oben Detaillierung einzelner Prozesse mit weiteren DFD MiniSpecs für die nicht weiter zerlegten Prozesse erstellen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Ziele des Systems festlegen Das Vorverkaufssystem soll: Auskunft über laufende Aufführungen erteilen Verkauf von Theaterkarten abwickeln Nach Abschluß des Vorverkaufs die Vorverkaufsbelegung an das Theater mitteilen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Ereignistabelle erstellen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Kontext-Diagramm erstellen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Zusammensetzung der Auslöser und Reaktionen im DD beschreiben Kartenanfrage = Theatervorstellung + Platzkategorie *Frage nach freiem Platz zu bestimmter Vorstellung* Kartenauskunft = " Vorstellung ausverkauft " | "Platzkategorie ist ausverkauft" | Platz + Theaterkartenpreis + Vorverkaufsgebühr] Kartenbestellung = Theatervorstellung + Platz + Zahlung *Theaterkartenpreis und Vorverkaufsgebühr * Theaterkarte = Theatervorstellung + Platz * Anrecht auf bestimmten Sitzplatz * Platz = Platzkategorie + Reihen-Nr. + Sitz-Nr. Platzkategorie = [ Rang | Parkett ] Theatervorstellung = Aufführung + Vorstellungsort + Vorstellungstermin Aufführung = Titel + Regisseur Vorstellungstermin = Jahr + Monat + Tag + Stunde + Minute Belegungs-Info = Theatervorstellung + {Platz + Belegungsstatus} Belegungsstatus = [ frei | belegt ]
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Grundlegende Aktivitäten und erforderliche Speicher in Datenflußdiagramm des Zielsystems eintragen neuer Speicher Belegung = {Theatervorstellung + {Platz + Belegungsstatus}}
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Objektorientierte Zerlegung des essentiellen Speichers Eine objektorientierte Zerlegung des Speichers sichert eine größere Flexibilität hinsichtlich zukünftiger Systemerweiterungen (z. B. erweiterte Auskunftsfunktionen). Denkbare Zerlegung des essentiellen Speichers in folgende Objekte Spielplan (mit n Aufführungen) Aufführung (mit n Theatervorstellungen; denkbare beschreibende Attribute: Länge des Stücks, Bühnenbildner, Schauspieler, ...) Theatervorstellung Veranstaltungsort /Theater (denkbare beschreibende Attribute: Adresse, Buslinie, Eignung für Rollstuhlfahrer, Tel.-Nr., ...) Preisliste (Preis abhängig von Platzkategorie, u. U. auch vorstellungsspezifisch) Bestuhlung (denkbare beschreibende Attribute: räumliche Anordnung, Beinfreiheit)
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Ereignistabelle vervollständigen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Data Dictionary vervollständigen Spielplan = {Theatervorstellung} * alle Theatervorstellungen einer Saison * Spielplanänderung = Theatervorstellung *alt* + Theatervorstellung *neu* Aufführungsinfo = Titel + Regisseur + Spieldauer Spieldauer = *in Minuten incl. Pause* Theaterinfo = Vorstellungsort + Vorstellungsadresse + Buslinie Bestuhlung = Datum + {Vorstellungsort + {Platz}} Preisliste = Datum + {Vorstellungsort + {Platzkategorie + Theaterkartenpreis}
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Kontextdiagramm vervollständigen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse DFD um Verwaltungs- aktivitäten ergänzen
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Verdichtung des DFD nach oben
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse Detaillierung einzelner Prozesse mit weiteren DFD Komplexe Prozesse werden in Teilprozesse zerlegt Kartenauskunft: Spielplanauskunft Aufführungsauskunft Vorstellungsortauskunft Bestuhlungsauskunft
Structured Analysis ¤ Arbeitsschritte der essentiellen Systemanalyse MiniSpecs für die nicht weiter zerlegten Prozesse erstellen Für Theatervorstellung mit Aufführung = gewünschte Aufführung und Vorstellungsort = gewünschter Vorstellungsort und Vorstellungstermin = gewünschter Vorstellungstermin wenn in gewünschter Platzkategorie freier Platz vorhanden Reihen-Nr + Sitz-Nr + Theaterkartenpreis + Vorverkaufsgebühr ausgeben sonst falls beide Platzkategorien ausverkauft "Vorstellung ist ausverkauft" ausgeben falls nur gewünschte Platzkategorie ausverkauft " Platzkategorie ist ausverkauft" ausgeben wenn nicht gefunden "gewünschte Vorstellung findet nicht statt" ausgeben
Structured Analysis ¤ Datenflußdiagramme nach Gane / Sarson Formale Unterschiede
Structured Analysis ¤ Datenflußdiagramme nach Gane / Sarson Inhaltliche Unterschiede Eine modifizierte Ebenenbildung unterstützt die Vernachlässigung von Ausnahmesituationen auf höheren Ebenen. Zusätzliche Datenflüsse und Prozesse, die in den Detaildiagrammen zum erstenmal auftauchen werden mit einem X" markiert. Während das Yourdan/DeMarco - Lager vorschlägt, die Prozeßanzahl auf 7 +/- 2 zu begrenzen, akzeptieren Gane/Sarson auch 100 Prozesse in einem Datenflußdiagramm.