DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 1
Realzeit-Modellierung
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
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 2
Realzeit-ModellierungÜbersicht
Kontext
Diagramm
DFD 0
DFD 1 DFD 2
0
1
2
3
1.1
1.2
2.1
2.2 2.3
Kontrollfluss Kontroll-Spezifikation
(CSpec)
Erweiterte Legende:
- Datenflüssen und Bestandteilen davon
- Kontrollflüssen und Bestandteilen davon
- Dateien / Datenbanken und Bestandteilen davon
Data
DictionaryDefinition von:
Zustandsdiagramm (CSpec)
Entscheidungstabelle (CSpec)
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 3
Datenflussdiagrammewerden erweitert um:
• Kontrollflüsse und
• Kontroll-Spezifikationen:
• Entscheidungstabelle
• Zustandsdiagramm
Die Realzeit-Modellierung ist eine Erweiterung der Strukturierten Analyse und basiert auf den Arbeiten von Hatley/Pirbhai zum Requirements Model.
Beispiel DFD 0 (Ausschnitt)
Beispiel Kontext-Diagramm
Realzeit-ModellierungDatenflussdiagramm
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 4
Realzeit-ModellierungKontextdiagramm
Übung:
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 5
Realzeit-ModellierungDatenflussdiagramm
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 6
Realzeit-ModellierungDatenflussdiagramm
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
• Falls Kontrollflüsse als Ein- oder auch Ausgangsgrößen von Prozessen eingezeichnetwerden, dann nur deshalb, weil sie in den zuständigen DFD's benötigt werden.
• Kontroll-Spezifikationen können komplex aufgebaut sein und aus mehrerenTeil-Spezifikationen bestehen (mehrere ET und STD und PAT)
• zu jedem DFD gibt es genau eine oder keine CSpec ==> dieselbe Ident-Nummer
Tempomat aktiviert
Bedien-eingabe
Motor läuft
Gang D eingelegt
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 7
Realzeit-ModellierungProzess-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
1
3
2G
E
D
K
M K1
K2
PAT
Eingabe
Ausgabe
Regel 1 Regel 2
Kontrollfluss K1 "0" "1"
Kontrollfluss K2 "1" "0"
Starte Prozess 1 X
Starte Prozess 2 X
Starte Prozess 3 X
PAT
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 8
Realzeit-ModellierungKontroll-Spezifikation
Übung:
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 9
Entscheidungstabelle (ET) als logischer Automat:
Alle Ausgangsgrößen lassen sich durch die derzeitigen Eingangsgrößen herleiten.
Realzeit-Modellierung Entscheidungstabelle
Bedingungen
Aufteilung der ET in 4 Quadranten und schrittweises Vorgehen:
Regeln
Aktionen Maßnahmen
Definition (DIN 66241):
Tabellarisches Beschreibungsmittel für formalisierbare Entscheidungsprozesse
2. Schritt
1. Schritt
3. Schritt
4. Schritt
Bedingungen formulieren
Aktionen formulieren
Alle formal möglichen
Bedingungskombinationen
(Regeln) aufstellen (Eintragen
von "J" und "N")
Zu jeder Regel Maßnahmen
definieren (Eintragen von "X")
Redundanzen verringern
durch Verwendung der
don't-care-Anweisung ("-")
und der ELSE-Regel
5. Schritt
6. Schritt
Auf Eindeutigkeit und
Vollständigkeit prüfen
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 10
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.
Realzeit-ModellierungEntscheidungstabelle
1. Schritt
3. Schritt
4. Schritt
Aktionen
formulieren
Alle formal möglichen Bedingungs-
kombinationen (Regeln) aufstellen
(Eintragen von "J" und "N")
Zu jeder Regel
Maßnahmen definieren
(Eintragen von "X")
2 5 3
2. Schritt
Bedingungen formulieren
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
Schloss öffnen X
Schloss schließen X X X X X X X
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 11
Beispiel Zahlenschloss (ff)
Realzeit-ModellierungEntscheidungstabelle
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
Schloss öffnen X
Schloss schließen X X X X X X X
Redundanzen verringern
bei DEN Regeln, die dieselben
Aktionen hervorrufen ……
5. Schritt
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
… durch Verwendung von don't-care ("-")
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
… durch Verwendung der ELSE-Regel
Felder
bleiben
leer
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 12
Realzeit-ModellierungEntscheidungstabelle
6. Schritt
Auf Eindeutigkeit und
Vollständigkeit prüfen
Eine ET ist immer vollständig,
wenn sie über die Wahrheitstabelle
entwickelt wird.
Widerspruchsfreiheit und Vollständigkeit
lassen sich formal prüfen, z.B. durch
ein CASE-Tool (INNOVATOR).
Woran erkennt man auf einen Blick,
dass die nebenstehende ET
formal vollständig ist?
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
Besuch ablehnen x x
Besuch mit Begleitung einer Schwester
x
Besuch in der öffentlichen Besuchszeit
x
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 13
Realzeit-ModellierungEntscheidungstabelle
Übung:
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 14
Realzeit-ModellierungProzessaktivierungstabelle
Übung: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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 15
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.
Realzeit-ModellierungZustandsdiagramm
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:
• 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.
Syntax: Ereignis / Aktion
oder Ereignis
Aktion
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 16
Realzeit-ModellierungZustandsdiagramm
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?
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 17
Realzeit-ModellierungZustandsdiagramm
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
Schalter1 setzen/Auf 2.Ziffer wartend
Auf 2.Ziffer wartend
Schalter2 setzen/Auf 3.Ziffer wartend
Schalter rücksetzen/Schloss verriegelt
Auf 3.Ziffer wartend
Schalter3 setzen/Schloss geöffnet
Schalter rücksetzen/Schloss verriegelt
Schloss geöffnet Schalter rücksetzen/Schloss verriegelt
SEM wird häufig
bei einer großen
Anzahl von
Zustandsübergängen
eingesetzt.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 18
Realzeit-ModellierungZustandsdiagramm
Übung:
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 19
Realzeit-ModellierungZustandsdiagramm
Übung:
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.
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 2.3 Aug 2013
Seite 20
Vorteile bei standardisierten Diagrammen:
• Symbole und Verbindungen/Pfeile sind eindeutig definiert.
• Die verwendeten Symbole sind für den Kontext wichtig.
• Den Anwendern ist die Darstellung bekannt.
Realzeit-Modellierung standardisierte Diagramme
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 standardisiertenDiagramme keine eigenen Erweiterungen einbauen. Diagramme können immer nur einen Ausschnitt wiedergeben,den jedoch vollständig und widerspruchsfrei.