Inhalt Übersicht Datenflussdiagramm (erweitert) Kontrollfluss Kontroll-Spezifikation Entscheidungstabelle Zustandsdiagramm Alternative Ablaufbeschreibungen (standardisierte Diagramme): Flussdiagramm (Programmablaufplan, flowchart) nach DIN 66001) Aktivitätsdiagramm (activity diagram) nach der UML (s. OOAVorlesungsskript) Christoph Riewerts Seite 1
Übersicht Kontext Diagramm 0 Erweiterte Legende: Kontrollfluss Kontroll-Spezifikation (CSpec) DFD 0 1 3 2 Zustandsdiagramm (CSpec) DFD 1 DFD 2 1.1 2.1 1.2 2.2 2.3 Entscheidungstabelle (CSpec) Data Dictionary Definition von: - Datenflüssen und Bestandteilen davon - Kontrollflüssen und Bestandteilen davon - Dateien / Datenbanken und Bestandteilen davon Seite 2
Datenflussdiagramme werden erweitert um: Kontrollflüsse und Kontroll-Spezifikationen: Entscheidungstabelle Zustandsdiagramm Datenflussdiagramm Die ist eine Erweiterung der Strukturierten Analyse und basiert auf den Arbeiten von Hatley/Pirbhai zum Requirements Model. Beispiel DFD 0 (Ausschnitt) Beispiel Kontext-Diagramm Seite 3
Übung: Kontextdiagramm Entwerfen Sie für den folgenden Geschäftsvorfall ein Kontext-Diagramm, das den beschriebenen Informationsfluss widerspiegelt. Es soll ein Tempomat entwickelt werden, der im Auto während langer Fahrten eine vorgegebene Geschwindigkeit erreichen und einhalten soll. Durch ein Signal vom Fahrer wird der Tempomat aktiviert (nur bei laufendem Motor und Stellung des automatischen Getriebes auf D ), der die derzeitige Geschwindigkeit ermittelt, als Sollgeschwindigkeit übernimmt und durch Ansteuerung der Drosselklappe beibehält. Ermittlung der Geschwindigkeit mit: Geschwindigkeit [km/h] = Impulsrate[1/h] der Antriebswelle / Impulse [1/km] Die Geschwindigkeitsregelung wird automatisch abgeschaltet, sobald der Fahrer die Bremse betätigt. Der Fahrer kann nach Aktivierung des Tempomats die Sollgeschwindigkeit durch zwei Kommandos schneller und langsamer schrittweise verändern. Seite 4
Datenflussdiagramm Der Kontrollfluss ist eine Leitung, auf der diskrete Informationen zur Steuerung/Kontrolle des Systems transportiert werden. Darstellung im Diagramm: gestrichelte Linien mit optionalen Pfeilspitzen Namensvergabe: Substantiv im Singular, möglichst mit Verb im Partizip Beispiele: System aktiviert, Funktion beendet, Taste gedrückt, Flugzeug steigend Kontrollflüsse werden im Gegensatz zu den Datenflüssen nicht in den Prozessen, sondern in den Kontroll-Spezifikationen (z.b. ET = Entscheidungstabelle) verarbeitet. Seite 5
Datenflussdiagramm Die Kontroll-Spezifikation (CSpec) dient zur Verarbeitung von diskreten Kontrollflüssen/- informationen. Darstellung im Diagramm: senkrechter Strich (engl. bar, Barren) Namensvergabe: keiner, nur Typkennzeichen Typen von Kontroll-Spezifikationen: PAT = Prozess-Aktivierungstabelle ET = Entscheidungstabelle STD = Zustandsdiagramm Motor läuft Tempomat aktiviert Falls Kontrollflüsse als Ein- oder auch Ausgangsgrößen von Prozessen eingezeichnet werden, dann nur deshalb, weil sie in den zuständigen DFD's benötigt werden. Kontroll-Spezifikationen können komplex aufgebaut sein und aus mehreren Teil-Spezifikationen bestehen (mehrere ET und STD und PAT) zu jedem DFD gibt es genau eine oder keine CSpec ==> dieselbe Ident-Nummer Bedieneingabe Gang D eingelegt Seite 6
Prozess-Aktivierungstabelle Die Prozess-Aktivierungstabelle (PAT) zeigt, welche Kontrollflüsse welche Prozesse starten/beenden. In einem CSPEC können nur die Prozesse aktiviert (oder auch terminiert) werden, die im zugehörigen DFD enthalten sind; d.h., der Analytiker muss die Kontrollflüsse so lange durch das Modell schleusen, bis sie auf dem DFD als Eingangsgröße eines Barrens erscheinen, wo auch die Prozesse eingezeichnet sind, die es zu aktivieren gilt. Beachte: eine PAT hat als Barren in einem DFD keine Ausgänge! Beispiel: Wenn K2=1, wird P2 gestartet, wenn K1=1, wird P1 und P3 gestartet G K 2 E PAT Regel 1 Regel 2 Kontrollfluss K1 "0" "1" Kontrollfluss K2 "1" "0" Eingabe 1 D 3 M PAT K1 K2 Starte Prozess 1 Starte Prozess 2 Starte Prozess 3 X X X Seite 7 Ausgabe
Übung: Kontroll-Spezifikation Modellieren Sie schematisch ein System, in dem zur Aktivierung der Prozesse 1 und 2.1 der externe Kontrollfluss C1 und zur Aktivierung des Prozesses 2.2 der externe Kontrollfluss C2 herangezogen werden muss; externe Kontrollflüsse kommen aus dem Kontext. Seite 8
Entscheidungstabelle Entscheidungstabelle (ET) als logischer Automat: Alle Ausgangsgrößen lassen sich durch die derzeitigen Eingangsgrößen herleiten. Definition (DIN 66241): Tabellarisches Beschreibungsmittel für formalisierbare Entscheidungsprozesse Aufteilung der ET in 4 Quadranten und schrittweises Vorgehen: 2. Schritt Bedingungen formulieren 1. Schritt Bedingungen Aktionen Regeln Maßnahmen 3. Schritt Alle formal möglichen Bedingungskombinationen (Regeln) aufstellen (Eintragen von "J" und "N") Aktionen formulieren 6. Schritt Auf Eindeutigkeit und Vollständigkeit prüfen 5. Schritt Redundanzen verringern durch Verwendung der don't-care-anweisung ("-") und der ELSE-Regel 4. Schritt Zu jeder Regel Maßnahmen definieren (Eintragen von "X") Seite 9
Entscheidungstabelle Beispiel Zahlenschloss: Bei der Einstellung von drei Ziffern zwischen 0 und 9 ist das Zahlenschloss nur geöffnet, wenn die Ziffernfolge 2-5-3 beträgt, sonst bleibt das Schloss geschlossen. 2 5 3 2. Schritt Bedingungen formulieren 3. Schritt Alle formal möglichen Bedingungskombinationen (Regeln) aufstellen (Eintragen von "J" und "N") Wahrheitstabelle R1 R2 R3 R4 R5 R6 R7 R8 1. Schritt Aktionen formulieren 1. Ziffer gleich 2 J J J J N N N N 2. Ziffer gleich 5 J J N N J J N N 3. Ziffer gleich 3 J N J N J N J N Schloss öffnen X Schloss schließen X X X X X X X 4. Schritt Zu jeder Regel Maßnahmen definieren (Eintragen von "X") Seite 10
Beispiel Zahlenschloss (ff) Entscheidungstabelle Wahrheitstabelle R1 R2 R3 R4 R5 R6 R7 R8 1. Ziffer gleich 2 J J J J N N N N 2. Ziffer gleich 5 J J N N J J N N 3. Ziffer gleich 3 J N J N J N J N 5. Schritt Redundanzen verringern bei DEN Regeln, die dieselben Aktionen hervorrufen Schloss öffnen X Schloss schließen X X X X X X X durch Verwendung von don't-care ("-") durch Verwendung der ELSE-Regel Entscheidungstab. R1 R2 R3 R4 1. Ziffer gleich 2 J - - N 2. Ziffer gleich 5 J - N - 3. Ziffer gleich 3 J N - - Schloss öffnen X Schloss schließen X X X Entscheidungstab. R1 ELSE 1. Ziffer gleich 2 J 2. Ziffer gleich 5 J 3. Ziffer gleich 3 J Schloss öffnen X Schloss schließen X Felder bleiben leer Seite 11
6. Schritt Entscheidungstabelle Auf Eindeutigkeit und Vollständigkeit prüfen Eine ET ist immer vollständig, wenn sie über die Wahrheitstabelle entwickelt wird. ET R1 R2 R3 R4 Else Ansteckende Krankheit j n n n Besuch außerhalb Besuchszeit - j j n Patient hat Fieber - j n j Besuchszeit max. 30 min x Widerspruchsfreiheit und Vollständigkeit Besuch ablehnen x x lassen sich formal prüfen, z.b. durch ein CASE-Tool (INNOVATOR). Woran erkennt man auf einen Blick, Besuch mit Begleitung einer Schwester Besuch in der öffentlichen Besuchszeit x x dass die nebenstehende ET formal vollständig ist? Seite 12
Übung: Entscheidungstabelle Spezifizieren Sie folgenden Geschäftsvorfall in Form einer Entscheidungstabelle Ein am Bankschalter vorgelegter Scheck soll eingelöst werden, wenn die vereinbarte Kreditgrenze des Ausstellers des Schecks überschritten wird, das bisherige Zahlungsverhalten des Kunden aber einwandfrei war und der Überschreitungsbetrag kleiner als 500 Euro ist. Wenn die Kreditgrenze überschritten wird, das bisherige Zahlungsverhalten einwandfrei war, aber der Überschreitungsbetrag über 500 Euro liegt, dann soll der Scheck eingelöst und dem Kunden neue Konditionen vorgelegt werden. War das Zahlungsverhalten nicht einwandfrei und ist die Kreditgrenze überschritten, wird der Scheck nicht eingelöst. Der Scheck wird eingelöst, wenn der Kreditbetrag nicht überschritten ist. Seite 13
Übung: Prozessaktivierungstabelle 1. Entwerfen Sie für die spezifizierten Informationsflüsse(!) ein Datenflussdiagramm mit 4 Prozessen. 2. Entwerfen Sie für die Steuerung der Prozesse eine Entscheidungstabelle (als Prozessaktivierungstabelle=PAT), die die vier angegebenen Bedingungen zu verarbeiten hat. 3. Integrieren Sie die Entscheidungstabelle (PAT) in das Prozessmodell, indem Sie festlegen, in welchem der Prozesse die vier Bedingungen erzeugt werden; Tragen Sie die Bedingungen als Ausgangsgrößen dieser Prozesse in das DFD ein, wobei die Pfeile gestrichelt sein sollen (zur Kennzeichnung, dass es sich hierbei nicht um Datenflüsse, sondern um Kontrollflüsse handelt); das Symbol, das im DFD die Entscheidungstabelle (oder auch PAT) präsentiert, ist ein senkrechter Strich (Bar). Ein chemischer Reaktor (Tank) wird mit verschiedenen chemischen Stoffen (Reagenzien) gefüllt. Der Zufluss wird über ein Ventil gesteuert. Wenn alle Reagenzien im Reaktor enthalten sind, muss die Reaktionstemperatur erzeugt werden. Dazu wird eine Heizstufe eingeschaltet und die Temperatur so lange erhöht, bis die Reaktion beginnt. Während der Reaktion wird der Säurewert der Lösung überwacht, um festzustellen, wann die Reaktion abgelaufen ist. Ist die Reaktion abgeschlossen, wird der Tank über ein Ventil entleert und kann wieder für die nächste Reaktion mit Reagenzien voll gefüllt werden. Seite 14
Zustandsdiagramm Zustandsdiagramm (STD = state transition diagram) als endlicher Automat: Alle Ausgangsgrößen lassen sich durch die derzeitigen und vergangenen Eingangsgrößen herleiten; der somit erforderliche Speicher definiert die Zustände des Automaten. Zustandsdiagramm enthält vier Komponenten: Zustand, repräsentiert durch ein Rechteck (mit abgerundeten Ecken), das den Namen des Zustands enthält; der Anfangszustand eines STD's ist extra gekennzeichnet. Zustandsübergang, repräsentiert durch einen Pfeil, dessen Spitze die Richtung des Übergangs zeigt. Ereignis, das den Zustandsübergang auslöst Aktion, die beim Zustandsübergang ausgeführt wird Folgendes ist möglich: Syntax: Ereignis / Aktion oder Ereignis Aktion Ein Zustandsübergang führt wieder zu sich selbst, wenn beim Auftreten des Ereignisses eine Aktion ausgeführt wird, aber kein Zustandswechsel stattfinden soll. Ein Zustand wird beim Auftreten des Ereignisses gewechselt, ohne dass eine Aktion ausgeführt wird. Seite 15
Zustandsdiagramm Beispiel Tresorschloss: Bei der Einstellung der drei richtigen Ziffern, die das Öffnen des Tresorschlosses erlauben, kommt es auf die zeitliche Reihenfolge an. Frage: Aus Sicht eines endlichen Automaten hat das Zustandsdiagramm 3 Eingangsgrößen und 4 Ausgangsgrößen. Welche sind das? Seite 16
Zustandsdiagramm Beispiel Tresorschloss (ff): Die Information eines STD s lässt sich auch mit Hilfe einer Zustandsübergangsmatrix (SEM = state event matrix) darstellen: Zustand/Ereignis Ziffer richtig Ziffer falsch Tresor schließen Schloss verriegelt Auf 2.Ziffer wartend Auf 3.Ziffer wartend Schalter1 setzen/ Auf 2.Ziffer wartend Schalter2 setzen/ Auf 3.Ziffer wartend Schalter3 setzen/ Schloss geöffnet Schalter rücksetzen/ Schloss verriegelt Schalter rücksetzen/ Schloss verriegelt SEM wird häufig bei einer großen Anzahl von Zustandsübergängen eingesetzt. Schloss geöffnet Schalter rücksetzen/ Schloss verriegelt Seite 17
Übung: Zustandsdiagramm Spezifizieren Sie die im folgenden beschriebene Stoppuhr mittels eines Zustandsdiagramms. Halten Sie dabei die Anzahl der Zustände minimal. Die Stoppuhr kann über zwei Druckknöpfe bedient werden. Wenn die Stoppuhr im Grundzustand steht, d.h. der große und der kleine Zeiger stehen auf Null, dann kann mit dem Knopf 1 die Uhr gestartet werden. Während die Uhr läuft, kann Knopf 1 oder Knopf 2 gedrückt werden: Beim Drücken von Knopf 1 wird die bisher abgelaufene Zeit angezeigt und die Uhr zum Stillstand gebracht; in diesem Zustand kann die Uhr entweder durch Drücken von Knopf 1 zum Weiterlaufen gebracht werden (die Anzeige läuft mit) oder durch Drücken von Knopf 2 in den Grundzustand versetzt werden. Beim Drücken von Knopf 2 wird ebenfalls die bisher abgelaufene Zeit angezeigt, jedoch läuft die Uhr im Hintergrund weiter. Ein nochmaliges Drücken von Knopf 2 bringt die Anzeige wieder zum Laufen, sie synchronisiert sich jedoch mit der in der Zwischenzeit (im Hintergrund) abgelaufenen Zeit und zeigt diese Gesamtzeit an. Seite 18
Übung: Zustandsdiagramm Zeichnen Sie ein Zustandsdiagramm einer digitalen Armbanduhr, deren Funktionsweise unten beschrieben ist.(ggfs. mit den Zustandsdiagramm-Editor vom INNOVATOR). Verwenden Sie die drei Zustände Zeit anzeigen, Stunden einstellen und Minuten einstellen. Eine einfache digitale Armbanduhr hat eine Anzeige und zwei Knöpfe, um die Uhr zu stellen (Knopf A und Knopf B). Die Uhr hat zwei Betriebsarten: Zeit anzeigen und Zeit einstellen. Im Modus Zeit anzeigen werden die Stunden und Minuten angezeigt. Sie sind durch einen blinkenden Doppelpunkt voneinander getrennt. Im Modus Zeit einstellen gibt es die Untermodi Stunden einstellen und Minuten einstellen. Mit Knopf A werden die Modi gewählt. Mit jedem Drücken des Knopfes wird der nächste Modus eingeschaltet. Dabei gilt die Reihenfolge: anzeigen, Stunden einstellen, Minuten einstellen, anzeigen, usw. In den Untermodi werden durch Drücken von Knopf B die Stunden oder Minuten jeweils um eine Einheit vorgestellt. Die Knöpfe müssen losgelassen werden, bevor sie ein anderes Ereignis veranlassen können. Seite 19
Vorteile bei standardisierten Diagrammen: standardisierte Diagramme Symbole und Verbindungen/Pfeile sind eindeutig definiert. Die verwendeten Symbole sind für den Kontext wichtig. Den Anwendern ist die Darstellung bekannt. Beispiel Flussdiagramm nach DIN 66001 (s. Beispiel): Extra-Symbole für Ein- und Ausgabefunktion Pfeile kennzeichnen keinen Datenfluss Beispiel Aktivitätsdiagramm nach der UML: Extra-Symbole für Parallelität Unterscheidung zwischen Daten- und Kontrollfluss Extra-Symbolik für Verantwortungsbereich Hinweis: Wenn möglich, bei Verwendung der standardisierten Diagramme keine eigenen Erweiterungen einbauen. Diagramme können immer nur einen Ausschnitt wiedergeben, den jedoch vollständig und widerspruchsfrei. Seite 20