280 likes | 383 Views
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")
E N D
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 ¤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" ausgebenwenn 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 ¤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
Essenz Administration Infrastruktur spontane Hülle Structured Analysis ¤Schalenförmige Systemstruktur • Technologieabhängige Systemteile werden vom logischen Systemkern getrennt und in die Randbereiche des Systems ausgegliedert.
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 neuerSpeicher 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 Vorstellungsortund Vorstellungstermin = gewünschter Vorstellungsterminwenn in gewünschter Platzkategorie freier Platz vorhanden Reihen-Nr + Sitz-Nr + Theaterkartenpreis + Vorverkaufsgebühr ausgebensonst falls beide Platzkategorien ausverkauft "Vorstellung ist ausverkauft" ausgeben falls nur gewünschte Platzkategorie ausverkauft " Platzkategorie ist ausverkauft" ausgebenwenn 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.