190 likes | 323 Views
SWT-Übung WS 10/11. 12.01.2010 SA-SA/RT. Strukturierte Analyse. Beinhaltet keine unbekannten Basiskonzepte Neu: Art und Weise der Verwendung Bestandteile: Hierarchisch angeordnete DFDs Data Dictionary-Einträge Mini-Specs (Mini-Spezifikationen). Bestandteile SA.
E N D
SWT-ÜbungWS 10/11 12.01.2010 SA-SA/RT
Strukturierte Analyse • Beinhaltet keine unbekannten Basiskonzepte • Neu: Art und Weise der Verwendung • Bestandteile: • Hierarchisch angeordnete DFDs • Data Dictionary-Einträge • Mini-Specs (Mini-Spezifikationen)
Bestandteile SA • „Kontextdiagramm“ = oberstes DFD • Beschreibung der Beziehung zur Umwelt • genau 1 Prozess („0.“) • Keine Speicher • Mindestens 1 Schnittstelle • DFD 0 – Verfeinerung des Kontextdiagrammes • Zerlegung von „0“ in Teilprozesse • Verfeinerung der Datenflüsse • Speicher • DFD 1, DFD 2, DFD 1.1 ... • Verfeinerung von Prozessen zu • Weiteren Diagrammen (|Prozesse| < 7) oder • MiniSpecs
Strukturierte Analyse • Data Dictionary-Einträge • Alle Datenflüsse und Speicher • Zusammenhang zwischen Datenflüssen verschiedener Ebenen • Namen aller Datenflüsse müssen • Identisch zu 1 Ebene höher oder • Teilkomponenten eines „höheren“ Datenflusses (balancing) sein. • MiniSpec • EAV-Beschreibung • Pseudocode, Entscheidungsbaum, -tabelle
Entscheidungstabelle Tabellenname Namen der Regeln Bedingungen Bedingungskombinationen Aktionsnamen Aktionszuordnungen Quelle: Balzert
Entscheidungsbaum Quelle: Balzert
Funktionsbaum • konstruiert aus den hierarchischen DFDs • DFD-Ebenen abgebildet auf FB-Ebenen
SA/RT Strukturierte Analyse, Real Time • Hierarchische Flussdiagramme (Update: Kontrollflüsse) • Requirements Dictionary-Einträge (RDs, DD plus Kontrollflüsse) • Prozess-Spezifikationen (PSpecs) • Kontrollflußspezifikationen (CSpecs) • Zeitspezifikationen
Kontrollflüsse in Flussdiagrammen • Steuern die Verarbeitung • Meist diskret und nehmen eine Anzahl bekannter Werte an • Dargestellt als gestrichelte Linien, im RD spezifiziert löscheBetrag Signal_1 Druckknopf 1 Modelliert wird die Steuerung der Verarbeitung von Daten Datenfluß prüfePIN PIN EC-Karte Modelliert wird die Verarbeitung von Daten
CSpecs • Durch Balkennotation im Flussdiagramm beschrieben • Kontrollflusseingänge, Kontrollflussausgänge • ET / Zustandsautomaten • ET:
Beispiel • Modellierung eines Geldwechselautomatens • Geld rein (100, 50, 20, 10, 5, 2, 1) • Stückelung bestimmen • Geld raus • Abbruch • Schritt 1: Kontextdiagramm • Schritt 2: Kontrollspezifikation, Flussdiagramm 0 • Schritt 3: Requirements Dictionary • Schritt 4: CSpec
Beispiel • Kontextdiagramm • Funktion „.0 Geld wechseln“ • Schnittstellen zur Umwelt • Eingabe- und Ausgabeinformationsgruppen Schnittstelle Datenfluss Kontrollfluss Eingabeöffnung Geld eingegeben Display Betrag Displayrefresh Geldausgabe Geld geliefert, Geld genommen Abbruchknopf Abbruch gedrückt Wechselknopf Wechseln gedrückt Betreiber Anfrage_Stückelung, Stückelung
Beispiel • Kontrollspezifikation • „Inputschnittstellen“ • Eingabeöffnung • Geldausgabe • Wechselknopf • Abbruchknopf • „Outputschnittstellen“ • Geldausgabe • Display
Beispiel Schnittstelle Datenfluss Kontrollfluss Eingabeöffnung Geld eingegeben Display Betrag Displayrefresh Geldausgabe Geld geliefert, Geld genommen Abbruchknopf Abbruch gedrückt Wechselknopf Wechseln gedrückt Betreiber Anfrage_Stückelung, Stückelung Beispieleinträge im RD Abbruch gedrückt [Ja | Nein] Wechseln gedrückt [Ja | Nein] Displayrefresh [Betrag | Stückelung | Abbruchmeldungen] Geld eingegeben [Ja | Nein] Geldfehler [Ja | Nein] Break [Ja | Nein] Geld geliefert [Ja | Nein] Geld genommen [Ja | Nein] ...
Abbruch gedrückt Display-refresh Geldgeliefert Geld eingegeben Geldgenommen Geld_Fehler Break Betragsspeicher Betrag Wechselweg Wechselngedrückt Anfrage Display-refresh Stückelungs-vorschlag Stückelungen Beispiel – Flussdiagramm 0 .5Vorgangabbrechen .1Geldprüfen .4Geldausgeben .3VorschlagStückelung anzeigen .2Wechselweg suchen
Beispiel • Requirements Dictionary (Kontroll- und Datenflüsse) Abbruch gedrückt [Ja | Nein] Wechseln gedrückt [Ja | Nein] Displayrefresh [Betrag | Stückelung | Abbruchmeldungen] Geld eingegeben [Ja | Nein] Geldfehler [Ja | Nein] Break [Ja | Nein] Geld geliefert [Ja | Nein] Geld genommen [Ja | Nein] Anfrage [Betrag] Betrag [100 | 50 | 20 | 10 | 5] Stückelungsvorschlag [(50 + 20 + 20 + 10) | (50 +20 +10 + 10 + 10) | (50 +10 +10 +10 + 10 + 10) | *Eingabe 100* (20 + 20 + 10) | (20 + 10 + 10 + 10) | *Eingabe 50* (10 + 10) | (10 + 5 + 5) | *Eingabe 20* (5 + 5) | (5 + 2 + 2 + 1) | (5 + 2 + 1 + 1 + 1) | (5 + 1 + 1 + 1 + 1 + 1) | *Eingabe 10* (2 + 2 + 1)|(2 + 1 + 1 + 1)|(1 + 1 + 1 + 1 + 1)] *Eingabe 5*
Geld entnommenAusgabe schließen Wartezustand Geld entnommenFehler anzeigen Geld eingegebenPrüfung vorbereiten Geld_FehlerVorgang abbrechen Geld_Fehler Vorgang abbrechen Abbruch gedrücktVerarbeitungabbrechen Geld ist korrektErmittlung vorbereiten Abbruch gedrücktVorgangabbrechen Abbruch gedr. Vorgang abbrechen Time OutVorgang abbrechen Betrag ermitteltStückelung suchen Wechseln gedr.Ausgabe vorbereiten Beispiel - CSpec Start Initialisierung Geldzurückgeben Geldprüfen Vorgangabbrechen Betragermitteln Stückelunganzeigen Geldausgeben
Zusammenfassung Strukturierte Analyse, Real Time • Hierarchische Flussdiagramme (Update: Kontrollflüsse) • Requirements Dictionary-Einträge (RDs, DD plus Kontrollflüsse) • Prozess-Spezifikationen (PSpecs) • Kontrollflußspezifikationen (CSpecs) • Zeitspezifikationen