11.03.2014 Aufrufe

Zusammenfassung ZA und PN Modellierung

Zusammenfassung ZA und PN Modellierung

Zusammenfassung ZA und PN Modellierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Zusammenfassung</strong> <strong>ZA</strong> <strong>und</strong> <strong>PN</strong><br />

Zustandsautomaten:<br />

Systemreaktion auf Ereignisse abhängig von Folge vorangegangener<br />

Ereignisse: momentane <strong>und</strong> frühere Eingaben bestimmen Ausgabe <strong>und</strong><br />

Folgezustände.<br />

z (t+∆) = f [z(t),e] beschreibt Dynamik, aber Verarbeitung (Funktion) nur<br />

elementar.<br />

Petri-Netze:<br />

Systemzustand bestimmt durch Markenverteilung auf die Stellen, beschrieben<br />

z.B. durch Markierungsvektor. Petri-Netz beschreibt Änderung der<br />

Markenverteilung (Zustandsänderung) durch Schalten von Transitionen.<br />

v v v<br />

v<br />

m t + ∆)<br />

= m(<br />

t)<br />

+ ∑ε<br />

t , ε ∈(0,1) : Eintreten des zu t gehörenden Ereignisses<br />

(<br />

j j j<br />

j<br />

v<br />

t j aktiviert<br />

beschreibt Dynamik, aber Verarbeitung (Funktion) nur elementar.<br />

Nächster Schritt:<br />

Verbindung von Basiskonzepten der Datentransformation (funktionale,<br />

algorithmische, regelbasierte <strong>und</strong> datenorientierte Sicht) mit den<br />

Basiskonzepten der zustandsorientierten Sicht in einer<br />

<strong>Modellierung</strong>smethode: SA/RT<br />

Vorlesung Automatisierungsprojekte Seite 7/1<br />

<strong>Modellierung</strong><br />

Basiskonzepte der SW-Entwicklung: Übersicht<br />

Konzepte <strong>und</strong> Sichten<br />

Alternative Notationen<br />

Häufig verwendet<br />

Selten verwendet<br />

Pro-<br />

gramm-<br />

Ablaufplan<br />

Struktogramm<br />

Entscheidungstabelle<br />

Aktivitätsdiagramm<br />

Kollaborationsdiagramm<br />

Funktionsbaum<br />

Geschäftsprozess<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Regeln<br />

Entity<br />

Relationship<br />

Klassendiagramm<br />

Pseudocode<br />

Zustandsautomat<br />

Petri-<br />

Netz<br />

Sequenzdiagramm<br />

Funktionale Sicht<br />

Datenorientierte<br />

Sicht<br />

Interaktionsstrukturen<br />

Objektorient.<br />

Sicht<br />

Algorithm.<br />

Sicht<br />

Endlicher<br />

Automat<br />

Regelbasierte<br />

Sicht<br />

Zustandsorientierte<br />

Sicht<br />

Funktionale<br />

Hierarchie<br />

Arbeitsablauf<br />

Informationsfluss<br />

Datenstrukturen<br />

Entitätstypen<br />

u.<br />

Beziehungen<br />

Klassenstrukturen<br />

Kontrollstrukturen<br />

Wenn-<br />

dann-<br />

Strukturen<br />

Nebenläufige<br />

Strukturen<br />

Szenariobasierte<br />

Sicht<br />

Vorlesung Automatisierungsprojekte Seite 7/2


<strong>Modellierung</strong><br />

Kombination der Basiskonzepte<br />

in „SA/RT“ oder auch „RT“<br />

RT<br />

1987<br />

SA<br />

1979<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Entity<br />

Relationship<br />

Pseudocode<br />

Zustandsautomat<br />

Funktionale<br />

Hierarchie<br />

Entitätstypen<br />

Beziehungen<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Endlicher<br />

Automat<br />

Vorlesung Automatisierungsprojekte Seite 7/3<br />

Strukturierte Analyse<br />

Kombination von Basiskonzepten in SA<br />

SA<br />

1979<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Zweck<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Zentrale<br />

Komponente<br />

Verfeinerungskonzept<br />

Data<br />

Dictionary<br />

Konsistenzhaltung<br />

Pseudocode<br />

Elementare<br />

Datentransformation<br />

dargestellt Funktionale<br />

Hierarchie<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Problem: Datenflussdiagramm bei umfangreichen Problemen unübersichtlich.<br />

Lösung: Hierarchische Verfeinerung der Datenflussdiagramme.<br />

Wurzel: Kontextdiagramm (abstraktes Datenflussdiagramm).<br />

Blätter: Beschreibung durch Mini-Spec in Form von Pseudo-Code,<br />

Entscheidungstabellen oder Entscheidungsbäumen.<br />

Vorlesung Automatisierungsprojekte Seite 7/4


Strukturierte Analyse<br />

Kombination von vorhandenen Basiskonzepten in SA<br />

Basiskonzept Datenflussdiagramm<br />

SA<br />

1979<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Pseudocode<br />

Funktionale<br />

Hierarchie<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Vorlesung Automatisierungsprojekte Seite 7/5<br />

Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

DFD: Beschreibung<br />

• Wege (Flüsse)<br />

von<br />

• Daten <strong>und</strong> Informationen<br />

zwischen<br />

• Funktionen,<br />

• Speichern <strong>und</strong><br />

• Schnittstellen<br />

• Transformationen<br />

von<br />

Daten <strong>und</strong> Informationen<br />

durch<br />

Funktionen<br />

Datenname<br />

Speichername<br />

Datenflussdiagramm<br />

Funktionsname<br />

Schnittstellenname<br />

Gr<strong>und</strong>vorstellung: Das zu entwickelnde System laufe bereits: Welche<br />

Information fließt von wo nach wo durch das System?<br />

Vorlesung Automatisierungsprojekte Seite 7/6


Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Umweltmodellierung (äußere Systemschnittstellen):<br />

Informationsquellen<br />

Informationen entstehen <strong>und</strong><br />

Quelle<br />

fließen zu Funktion<br />

Informationssenken<br />

Informationen fließen aus<br />

Funktion <strong>und</strong> verschwinden<br />

Senke<br />

Funktionen transformieren eingehende<br />

Datenflüsse in ausgehende<br />

Datenflüsse<br />

schreibend<br />

lesend<br />

Speicher:<br />

Hilfsmittel zur Ablage von Informationen<br />

Speicher<br />

Schreib/Lese<br />

Vorlesung Automatisierungsprojekte Seite 7/7<br />

Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Syntaktische Regeln:<br />

1. Ein DFD enthält mindestens eine Schnittstelle<br />

2. Jede Schnittstelle nur einmal vorhanden<br />

3. Keine Datenflüsse zwischen Schnittstellen<br />

4. Jeder Datenfluss hat einen Namen, außer von <strong>und</strong> zu<br />

Speichern, wenn gesamter Speicherinhalt transportiert<br />

wird<br />

5. Keine direkten Flüsse zwischen Speichern<br />

6. Keine direkten Flüsse zwischen Schnittstellen <strong>und</strong><br />

Speichern<br />

falsch<br />

Semantische Regeln:<br />

1. DFD beschreibt den Datenfluss <strong>und</strong> keinen Kontrollfluss<br />

2. Schnittstelle ist stets so zu wählen, dass sie die<br />

ursprüngliche Quelle oder Senke einer Information angibt.<br />

3. Datenflussnamen bestehen aus (Adjektiv <strong>und</strong>) Substantiv<br />

4. Funktionsname repräsentiert Aktion <strong>und</strong> besteht aus<br />

Aktionsverb <strong>und</strong> Substantiv (Objekt)<br />

Vorlesung Automatisierungsprojekte Seite 7/8


Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Überprüfbarkeit von DFD<br />

Mittels „Handsimulation“:<br />

Man stelle sich vor, man wäre der Prozessor.<br />

Prüfung, ob man anhand der eingehenden Informationsflüsse die<br />

ausgehenden Informationsflüsse erzeugen kann.<br />

Bewertung von DFD<br />

• Leicht erstellbar <strong>und</strong> gut lesbar<br />

• Gut vermittelbar<br />

• Schwierig, einheitliches Abstraktionsniveau bei Daten <strong>und</strong><br />

Funktionen einzuhalten<br />

• Diagramm schnell zu groß <strong>und</strong> unübersichtlich Hierarchie<br />

in SA<br />

• Bezeichnung der Datenflüsse durch Namen reicht nicht aus.<br />

• Datenaufbau muss bekannt sein, um bei Simulation Fehler zu<br />

finden. Data Dictionary in SA<br />

Vorlesung Automatisierungsprojekte Seite 7/9<br />

Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Aufgabe<br />

Verwaltung einer Arztpraxis:<br />

Neue Patienten werden in eine Patientenkartei aufgenommen, an der<br />

auch später noch Änderungen vorgenommen werden können.<br />

Erscheint ein Patient zur Behandlung, so werden dem behandelnden<br />

Arzt die Patientendaten <strong>und</strong> die Daten der letzten Behandlungen zur<br />

Verfügung gestellt. Nach der Behandlung werden das Datum, die<br />

erbrachten Leistungen <strong>und</strong> die Verordnungen gespeichert.<br />

Schnittstellen<br />

Funktionen<br />

Datenflüsse<br />

Vorlesung Automatisierungsprojekte Seite 7/10


Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Verwaltung einer Arztpraxis<br />

Vorlesung Automatisierungsprojekte Seite 7/11<br />

Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Übung: Überprüfung fehlerhaftes DFD<br />

Vorlesung Automatisierungsprojekte Seite 7/12


Strukturierte Analyse<br />

Das Datenflussdiagramm zur K<strong>und</strong>enverwaltung enthält folgende Fehler:<br />

1. Der Datenfluss "erhöhe_Anzahl_der_Bestellungen" enthält ein Verb <strong>und</strong><br />

führt von einem Prozess zum selben Prozess (Schleife). Richtig wäre es,<br />

einen Speicher "Anzahl_der Bestellung" einzuzeichnen, der lesend /<br />

schreibend von Prozess 1 benutzt wird.<br />

2. Der Name des Datenflusses "Anschrift" ist ungeschickt. Besser wäre es, ihn<br />

als "K<strong>und</strong>enanschrift" zu bezeichnen.<br />

3. Die Speicher "K<strong>und</strong>endatei" <strong>und</strong> "Rechnungen" sind direkt durch einen<br />

Datenfluss verb<strong>und</strong>en. Richtig wäre es, einen dritten Prozess "erstelle<br />

Rechnungen" einzuzeichnen, der die "K<strong>und</strong>enanschrift", die<br />

"Artikelbezeichnung" <strong>und</strong> den "Artikelpreis" als Eingabedatenflüsse sowie<br />

"Rechnungen" als Ausgabedatenfluss besitzt.<br />

4. Ein Datenfluss von Speicher "Rechnungen" zu Schnittstelle "K<strong>und</strong>e" ist<br />

nicht erlaubt.<br />

5. Der Datenfluss "Artikeldaten" von der Schnittstelle "Sachbearbeiter" direkt in<br />

den Speicher "Artikeldaten" ist nicht erlaubt. Richtig wäre es, einen Prozess<br />

"aktualisiere Artikeldateien" einzuzeichnen.<br />

6. Die Schnittstelle K<strong>und</strong>e sollte nur einmal vorhanden sein, da die Lesbarkeit<br />

durch die getrennte Ausführung der Schnittstellen nicht erhöht wird.<br />

Vorlesung Automatisierungsprojekte Seite 7/13<br />

Strukturierte Analyse<br />

SA Basiskonzept Datenflussdiagramm (DFD)<br />

Übung für zuhause: Überprüfung fehlerhaftes DFD<br />

Vorlesung Automatisierungsprojekte Seite 7/14


Strukturierte Analyse<br />

Kombination von vorhandenen Basiskonzepten in SA<br />

Basiskonzept Data Dictionary<br />

Data<br />

Dictionary<br />

SA<br />

1979<br />

???<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Pseudocode<br />

Funktionale<br />

Hierarchie<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Vorlesung Automatisierungsprojekte Seite 7/15<br />

Strukturierte Analyse<br />

SA Basiskonzept Data Dictionary (DD)<br />

Sammlung von Datendefinitionen (Glossar) + Verfeinerungskonzept<br />

Dient Konsistenzüberwachung eines Datenbestandes<br />

Übersicht über Datenstrukturen<br />

Überprüfung auf Red<strong>und</strong>anzfreiheit <strong>und</strong> Widerspruchsfreiheit<br />

Entsteht in Definitionsphase <strong>und</strong> wird in Entwurfs- <strong>und</strong><br />

Implementierungsphase weiter verwendet <strong>und</strong> verfeinert.<br />

Notation:<br />

Symbol<br />

=<br />

+<br />

[ ]<br />

{ }<br />

M{ }N<br />

( )<br />

*...*<br />

Bedeutung<br />

Äquivalent zu<br />

Sequenz<br />

Auswahl (entweder ... Oder)<br />

Wiederholung<br />

Wiederholung von M bis N<br />

Option<br />

Kommentar<br />

Beispiel<br />

A = B + C<br />

X = X1 + X2 + X3<br />

A = [B | C]<br />

A = {B}<br />

A = 1{B}10<br />

A = B + (C)<br />

A = X + Y *sowas*<br />

Vorlesung Automatisierungsprojekte Seite 7/16


Strukturierte Analyse<br />

SA Basiskonzept Data Dictionary (DD)<br />

Beispiel Speicherung K<strong>und</strong>endaten Symbol<br />

=<br />

K<strong>und</strong>endatei = {K<strong>und</strong>eneintrag} +<br />

K<strong>und</strong>eneintrag = K<strong>und</strong>en-Nr.<br />

[ ]<br />

+ Name<br />

+ Adresse<br />

+ (Geburtsdatum)<br />

+ (Funktion)<br />

+ Umsatz<br />

Name = Anrede + (Titel)<br />

+ Vorname + Nachname<br />

Kommentar<br />

Adresse = [Straße + Hausnr. | Postfachnr.]<br />

+ (Länderkennzeichen) + PLZ + Ort + (Telefon) + (Fax)<br />

{ }<br />

M{ }N<br />

( )<br />

*...*<br />

Bedeutung<br />

Äquivalent zu<br />

Sequenz<br />

Auswahl (entweder ...<br />

Oder)<br />

Wiederholung<br />

Wiederholung von M bis N<br />

Option<br />

Beispiel<br />

A = B + C<br />

X = X1 + X2 + X3<br />

A = [B | C]<br />

A = {B}<br />

A = 1{B}10<br />

A = B + (C)<br />

A = X + Y<br />

*sowas*<br />

Datendefinition Top-Down Schrittweise Verfeinerung<br />

Bis zum notwendigen Detaillierungsniveau oder „Datenatom“<br />

Vorlesung Automatisierungsprojekte Seite 7/17<br />

Strukturierte Analyse<br />

SA Basiskonzept Data Dictionary (DD)<br />

Anwendungsregeln<br />

Wiederholungs- <strong>und</strong> Optionsklammern auf möglichst hoher<br />

Verfeinerungsebene (frühe Erkennbarkeit der Struktur)<br />

0. Keine zirkulären Definitionen<br />

A = B + C<br />

C = D + A ergibt A = B + D + A<br />

1. Unterschiedliche Bezeichnungen identischer Strukturen:<br />

Bezeichnungen können gleich gesetzt werden (Alias-Namen)<br />

2. Problembezogene Namen wählen, z.B. K<strong>und</strong>enname statt Name<br />

3. Bereits definierte Datenstrukturen wiederverwenden,<br />

z.B. K<strong>und</strong>enname = Name, wenn Name bereits definiert.<br />

4. Auswahl muss mindestens zwei Alternativen enthalten, z.B.<br />

A=[B|C].<br />

5. „Kontinuierliche“ Datenelemente: Wertebereich, z.B. B=0 ... 255<br />

6. Diskrete Datenelemente: Aufführung der möglichen Werte, z.B.<br />

Familienstand=[ledig|verheiratet|geschieden|verwitwet]<br />

7. Semantische Randbedingungen, die nicht in DD-Notation<br />

formulierbar sind, als Kommentare<br />

Vorlesung Automatisierungsprojekte Seite 7/18


Strukturierte Analyse<br />

Kombination von vorhandenen Basiskonzepten in SA<br />

Basiskonzept Pseudocode<br />

Pseudocode<br />

???<br />

SA<br />

1979<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Pseudocode<br />

Funktionale<br />

Hierarchie<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Vorlesung Automatisierungsprojekte Seite 7/19<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Pseudocode<br />

Kontrollstrukturen<br />

• Sequenz<br />

• Auswahl<br />

• Wiederholung<br />

• Aufruf anderer Algorithmen<br />

Pseudocode:<br />

1. Textuelle, halb-formale Darstellungsform von<br />

Kontrollstrukturen in Anlehnung an problemorientierte<br />

Programmiersprachen:<br />

Syntax <strong>und</strong> Wortsymbole, z.B. if, switch, while<br />

2. Anweisungen in verbaler Formulierung oder<br />

programmsprachlich angelehnter Notation.<br />

Vorlesung Automatisierungsprojekte Seite 7/20


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Pseudocode<br />

z.B. in Anlehnung an C<br />

Sequenz<br />

Auswahl<br />

Ein- oder<br />

zweiseitig<br />

Anweisung1;<br />

Anweisung2;<br />

Anweisung3;<br />

if (bedingter Ausdruck)<br />

Ja-Anweisung; bzw. {Ja-Anweisungsblock}<br />

else<br />

Nein-Anweisung; bzw. {Nein-Anweisungsblock}<br />

Auswahl switch (Ausdruck)<br />

mehrfach {<br />

case Wert1: Anweisung1; bzw. {Anweisungsblock1}; break;<br />

case Wert2: Anweisung2; bzw. {Anweisungsblock2}; break;<br />

default: Anweisung_d; bzw. {Anweisungsblock_d}<br />

}<br />

Vorlesung Automatisierungsprojekte Seite 7/21<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Pseudocode<br />

z.B. in Anlehnung an C<br />

Wiederholung<br />

Mit Abfrage<br />

vor jedem<br />

Durchlauf<br />

Wiederholung<br />

Mit Abfrage<br />

nach jedem<br />

Durchlauf<br />

while (Bedingung)<br />

Anweisung; bzw. {Anweisungsblock}<br />

Anweisung3;<br />

do Anweisung; bzw. {Anweisungsblock}<br />

while (Bedingung)<br />

Wiederholung for (Startwerte; Bedingung; Veränderung)<br />

Mit bestimmter {<br />

Anzahl von<br />

Anweisung; bzw. {Anweisungsblock}<br />

Wiederholungen }<br />

Aufruf<br />

Operationsname (aktuelle Parameter);<br />

Vorlesung Automatisierungsprojekte Seite 7/22


Strukturierte Analyse<br />

Kombination von vorhandenen Basiskonzepten in SA<br />

Basiskonzept Entscheidungstabelle<br />

Entscheidungstabelle<br />

???<br />

SA<br />

1979<br />

Entscheidungstabelle<br />

Entscheidungsbäume<br />

Funktions-<br />

Baum<br />

Datenflussdiagramm<br />

Data<br />

Dictionary<br />

Pseudocode<br />

Funktionale<br />

Hierarchie<br />

Informationsfluss<br />

Datenstrukturen<br />

Kontrollstrukturen<br />

Vorlesung Automatisierungsprojekte Seite 7/23<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Kompakte Definition bedingter Handlungen (eine oder mehrere<br />

Bedingungen) in Form einer Tabelle<br />

Name der ET<br />

Regelnummern<br />

Wenn<br />

Dann<br />

Bedingungen<br />

Aktionen<br />

Bedingungsanzeiger<br />

Aktionsanzeiger<br />

Darstellung von wenn ..., dann ...-Sachwissen (Regeln).<br />

Vorlesung Automatisierungsprojekte Seite 7/24


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Beispiel:<br />

Scheckeinlösung durch Banksachbearbeiter<br />

Wenn Kreditgrenze des Ausstellers überschritten, bisheriges<br />

Zahlungsverhalten aber einwandfrei war <strong>und</strong> der<br />

Überschreitungsbetrag kleiner als 500 € ist, dann soll Scheck<br />

eingelöst werden.<br />

Wenn Kreditgrenze des Ausstellers überschritten, bisheriges<br />

Zahlungsverhalten aber einwandfrei war <strong>und</strong> der<br />

Überschreitungsbetrag über 500 € ist, dann soll Scheck eingelöst<br />

<strong>und</strong> dem Aussteller neue Konditionen vorgelegt werden.<br />

Wenn das Zahlungsverhalten nicht einwandfrei war, wird der Scheck<br />

nicht eingelöst.<br />

Wenn die Kreditlinie nicht überschritten wird, wird der Scheck<br />

eingelöst.<br />

Vorlesung Automatisierungsprojekte Seite 7/25<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Beispiel:<br />

Scheckeinlösung durch Banksachbearbeiter<br />

Analyse:<br />

1. Aktionen ermitteln<br />

A1: Scheck einlösen<br />

A2: Scheck nicht einlösen<br />

A3: Neue Konditionen vorlegen<br />

2. Bedingungen ermitteln:<br />

B1: Kreditgrenze überschritten ?<br />

B2: Zahlungsverhalten einwandfrei ?<br />

B3: Überschreitungsbetrag < 500 € ?<br />

Vorlesung Automatisierungsprojekte Seite 7/26


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Beispiel:<br />

Scheckeinlösung durch Banksachbearbeiter<br />

Tabelle erstellen<br />

ET1<br />

Scheckeinlösung<br />

R1<br />

R2<br />

R3<br />

R4<br />

R5<br />

R6<br />

R7<br />

R8<br />

B1<br />

Kreditgrenze<br />

überschritten ?<br />

J<br />

J<br />

J<br />

J<br />

N<br />

N<br />

N<br />

N<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

J<br />

J<br />

N<br />

N<br />

J<br />

J<br />

N<br />

N<br />

B3<br />

Überschreitungsbetrag<br />

< 500€ ?<br />

J<br />

N<br />

J<br />

N<br />

J<br />

N<br />

J<br />

N<br />

A1<br />

Scheck einlösen<br />

X<br />

X<br />

X<br />

X<br />

A2<br />

Scheck nicht<br />

einlösen<br />

X<br />

X<br />

A3<br />

Neue Konditionen<br />

vorlegen<br />

X<br />

A4<br />

unlogisch<br />

X<br />

X<br />

Vorlesung Automatisierungsprojekte löschen Seite 7/27<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Vereinfachung<br />

Erinnerung: Blockbildung in Funktionstabelle<br />

R1<br />

R2<br />

B1 Kreditgrenze<br />

überschritten ?<br />

1<br />

1<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

1<br />

1<br />

B3 Überschreitungsbetrag<br />

< 500 € ?<br />

1<br />

0<br />

A1 Scheck einlösen<br />

1<br />

1<br />

zusammenfassen<br />

R3<br />

1<br />

0<br />

1<br />

0<br />

R4<br />

1<br />

0<br />

0<br />

0<br />

R5<br />

0<br />

1<br />

1<br />

1<br />

R6<br />

R7<br />

0<br />

0<br />

1<br />

0<br />

0<br />

1<br />

-<br />

1<br />

zusammenfassen<br />

R8<br />

0<br />

0<br />

0<br />

-<br />

Vorlesung Automatisierungsprojekte Seite 7/28


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Vereinfachung der Tabelle<br />

Zusammenfassen<br />

Zusammenfassen<br />

ET1<br />

Scheckeinlösung<br />

R1<br />

R2<br />

R3<br />

R4<br />

R5<br />

R6<br />

R7<br />

R8<br />

B1<br />

Kreditgrenze<br />

überschritten ?<br />

J<br />

J<br />

J<br />

J<br />

N<br />

N<br />

N<br />

N<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

J<br />

J<br />

N<br />

N<br />

J<br />

J<br />

N<br />

N<br />

B3<br />

Überschreitungsbetrag<br />

< 500€ ?<br />

J<br />

N<br />

J<br />

N<br />

J<br />

N<br />

J<br />

N<br />

A1<br />

Scheck einlösen<br />

X<br />

X<br />

X<br />

X<br />

A2<br />

Scheck nicht<br />

einlösen<br />

X<br />

X<br />

A3<br />

Neue Konditionen<br />

vorlegen<br />

X<br />

A4<br />

unlogisch<br />

X<br />

X<br />

Nicht gleiche Gleiche<br />

löschen<br />

Aktion Aktion Gleiche<br />

Vorlesung Automatisierungsprojekte Aktion<br />

Seite 7/29<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Vereinfachung der Tabelle durch <strong>Zusammenfassung</strong><br />

ET1<br />

B1<br />

Scheckeinlösung<br />

Kreditgrenze<br />

überschritten ?<br />

R1<br />

J<br />

R2<br />

J<br />

R3/<br />

4<br />

J<br />

R5/<br />

7<br />

N<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

J<br />

J<br />

N<br />

-<br />

B3<br />

Überschreitungsbetrag<br />

< 500€ ?<br />

J<br />

N<br />

-<br />

J<br />

A1<br />

Scheck einlösen<br />

X<br />

X<br />

X<br />

A2<br />

Scheck nicht<br />

einlösen<br />

X<br />

A3<br />

Neue Konditionen<br />

vorlegen<br />

X<br />

Vorlesung Automatisierungsprojekte Seite 7/30


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Vereinfachung der Tabelle durch „else“-Regel<br />

Wenn im Beispiel R6 <strong>und</strong> R8 nicht unlogisch wären, sondern im<br />

Aktionsanzeigerteil auch nur A1 besäßen, könnte die Tabelle durch „else“<br />

vereinfacht werden:<br />

ET1<br />

B1<br />

Scheckeinlösung<br />

Kreditgrenze<br />

überschritten ?<br />

R1<br />

J<br />

R2<br />

J<br />

R3/<br />

4<br />

J<br />

R5/<br />

7<br />

N<br />

ET1<br />

B1<br />

Scheckeinlösung<br />

Kreditgrenze<br />

überschritten ?<br />

R2<br />

J<br />

R3/<br />

4<br />

J<br />

else<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

J<br />

J<br />

N<br />

-<br />

B2<br />

Zahlungsverhalten<br />

einwandfrei ?<br />

J<br />

N<br />

B3<br />

Überschreitungsbetrag<br />

< 500€ ?<br />

J<br />

N<br />

-<br />

J<br />

B3<br />

Überschreitungsbetrag<br />

< 500€ ?<br />

N<br />

-<br />

A1<br />

Scheck einlösen<br />

X<br />

X<br />

X<br />

A1<br />

Scheck einlösen<br />

X<br />

X<br />

A2<br />

Scheck nicht<br />

einlösen<br />

X<br />

A2<br />

Scheck nicht<br />

einlösen<br />

X<br />

A3<br />

Neue Konditionen<br />

vorlegen<br />

X<br />

A3<br />

Neue Konditionen<br />

vorlegen<br />

X<br />

Vorlesung Automatisierungsprojekte Seite 7/31<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungsbäume<br />

Alternative Darstellungsform der Entscheidungstabelle<br />

Überschr.-<br />

betr. < 500€<br />

Zahlungsverh.<br />

einwandfr.<br />

Kreditgrenze<br />

überschr.<br />

Überschr.-<br />

betr. > 500€<br />

Überschr.-<br />

betr. < 500€<br />

Zahlungsverh.<br />

nicht einwandfr.<br />

Überschr.-<br />

betr. > 500€<br />

Überschr.-<br />

betr. < 500€<br />

Zahlungsverh.<br />

einwandfr.<br />

Kreditgrenze<br />

nicht überschr.<br />

Überschr.-<br />

betr. > 500€<br />

Überschr.-<br />

betr. < 500€<br />

Zahlungsverh.<br />

nicht einwandfr.<br />

Scheckeinlösung<br />

Überschr.-<br />

betr. > 500€<br />

unlogisch<br />

Scheck<br />

einlösen<br />

unlogisch<br />

Scheck<br />

einlösen<br />

Scheck nicht<br />

einlösen<br />

Scheck nicht<br />

einlösen<br />

Scheck nicht<br />

Einlösen,<br />

neue Kond.<br />

Scheck<br />

einlösen<br />

Vorlesung Automatisierungsprojekte Seite 7/32


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Tabellengröße im Bedingungsteil wächst mit 2 N (N: Anzahl der<br />

Bedingungen) nicht mehr handhabbar ab N=5.<br />

Abhilfe durch Aufspaltung in mehrere Entscheidungstabellen, z.B.<br />

Verzweigung:<br />

ET0<br />

R1 R2 R3 R4<br />

B1<br />

J<br />

J<br />

N<br />

N<br />

B2<br />

J<br />

N<br />

J<br />

N<br />

A1<br />

X<br />

X<br />

A2<br />

X<br />

X<br />

Weiter bei ET:<br />

ET1<br />

ET2<br />

ET3<br />

ET1<br />

R1.1<br />

R1.2<br />

R1.3<br />

R1.4<br />

B3<br />

J<br />

J<br />

N<br />

N<br />

B4<br />

J<br />

N<br />

J<br />

N<br />

A1.1<br />

X<br />

X<br />

A1.2<br />

X<br />

X<br />

X<br />

Vorlesung Automatisierungsprojekte Seite 7/33<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Erweiterte Entscheidungstabellen<br />

Bisher begrenzte ET: Bedingungsanzeiger J,N,-<br />

Aktionsanzeiger X<br />

Jetzt: beliebiger Text im Anzeigerteil<br />

Text im Bedingungsanzeiger muss erfüllt sein.<br />

Aktionsanzeigertext ist auszuführen.<br />

Beispiel Tarifdschungel einer Airline mit Zielen A <strong>und</strong> B:<br />

- Personenalter >= 18a: Ferientarif (-20%) falls Abflug zw. 21.12. <strong>und</strong><br />

30.12. <strong>und</strong> 6 Tage Mindestaufenthalt<br />

- Für A kein Ferientarif<br />

- Personenalter < 18a: kein Ferientarif<br />

- 2a


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Erweiterte Entscheidungstabellen<br />

Tarifdschungel<br />

R1<br />

R2<br />

R3<br />

R4<br />

R5<br />

R6<br />

Alter?<br />

Ziel<br />

>= 18<br />

B<br />

>= 18<br />

A<br />

>= 18<br />

B<br />

>= 18<br />

B<br />

>=2 u. <<br />

18<br />

-<br />

= 6 Tage<br />

J<br />

-<br />

N<br />

-<br />

-<br />

-<br />

Abflug zw.<br />

21.12. <strong>und</strong><br />

30.12.<br />

J<br />

-<br />

-<br />

N<br />

-<br />

-<br />

Rabatt %<br />

20<br />

0<br />

0<br />

0<br />

30<br />

100<br />

Vorlesung Automatisierungsprojekte Seite 7/35<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Eintreffer- <strong>und</strong> Mehrtreffer-Entscheidungstabellen<br />

Eintreffer-Tabellen:<br />

Höchstens eine der Regeln ist anwendbar, d.h. die Bedingungen im<br />

Bedingungsanzeigerteil schließen sich gegenseitig aus. Abbruch nach<br />

Auffinden gültiger Regel.<br />

Mehrtreffer-Tabellen:<br />

Bedingungen brauchen nicht disjunkt zu sein. Sie können identisch,<br />

überschneidend, einschließend <strong>und</strong> gegenseitig ausschließend sein.<br />

Alle Regeln müssen überprüft werden.<br />

Aktionen aller gültigen Regeln werden ausgeführt. Widerspruchsfreiheit !<br />

Gleichheit: Red<strong>und</strong>anz, Widerspruch oder Zusammenfassbarkeit<br />

- Löschen red<strong>und</strong>anter Regeln<br />

- Modifikation bei widersprüchlichen Regeln (widersprüchliche<br />

Aktionsteile von gleichlautenden Bedingungsanzeigern)<br />

- <strong>Zusammenfassung</strong> widerspruchsfreier Aktionsteile von<br />

gleichlautenden Bedingungsanzeigern<br />

Vorlesung Automatisierungsprojekte Seite 7/36


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung<br />

Umwandlung einer Tabelle in einen Entscheidungsbaum<br />

Vorlesung Automatisierungsprojekte Seite 7/37<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung<br />

Umwandlung einer Tabelle in einen Entscheidungsbaum<br />

B1 erfüllt<br />

B1 nicht erfüllt<br />

Vorlesung Automatisierungsprojekte Seite 7/38


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung<br />

Aufgabe „Bestellannahme“<br />

Ist der Besteller noch nicht im K<strong>und</strong>enstamm enthalten, soll eine Ersterfassung erfolgen.<br />

Ist ein bestellter Artikel verfügbar, muss der Lagerbestand aktualisiert werden. Falls ein<br />

Artikel nicht verfügbar ist, muss dies dem Besteller mitgeteilt werden.<br />

Hat der Besteller seinen Kreditrahmen überschritten, können keine weiteren<br />

Bestellungen erfolgen. Bei K<strong>und</strong>en mit großem Umsatz soll dennoch der Auftrag<br />

ausgeführt werden.<br />

Mit der Auftragsbestätigung soll eine Rechnung erstellt <strong>und</strong> ausgedruckt werden.<br />

Ist bei einem Artikel der Mindestlagerbestand unterschritten, so ist der Sachbearbeiter<br />

zu informieren.<br />

Ist eine sofortige Bearbeitung wegen Nichtverfügbarkeit eines Artikels oder wegen<br />

Überschreitung der Kreditlinie des K<strong>und</strong>en nicht möglich, soll diese Bestellung<br />

"eingefroren" werden.<br />

a) Bedingungen <strong>und</strong> Aktionen für eine Entscheidungstabelle ?<br />

b) Entscheidungstabelle, welche die Annahme von Bestellungen spezifiziert.<br />

Vorlesung Automatisierungsprojekte Seite 7/39<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung<br />

Aufgabe „Bestellannahme“<br />

Ist der Besteller noch nicht im K<strong>und</strong>enstamm enthalten, soll eine Ersterfassung erfolgen.<br />

Ist ein bestellter Artikel verfügbar, muss der Lagerbestand aktualisiert werden. Falls ein<br />

Artikel nicht verfügbar ist, muss dies dem Besteller mitgeteilt werden.<br />

Hat der Besteller seinen Kreditrahmen überschritten, können keine weiteren<br />

Bestellungen erfolgen. Bei K<strong>und</strong>en mit großem Umsatz soll dennoch der Auftrag<br />

ausgeführt werden.<br />

Mit der Auftragsbestätigung soll eine Rechnung erstellt <strong>und</strong> ausgedruckt werden.<br />

Ist bei einem Artikel der Mindestlagerbestand unterschritten, so ist der Sachbearbeiter<br />

zu informieren.<br />

Ist eine sofortige Bearbeitung wegen Nichtverfügbarkeit eines Artikels oder wegen<br />

Überschreitung der Kreditlinie des K<strong>und</strong>en nicht möglich, soll diese Bestellung<br />

"eingefroren" werden.<br />

a) Bedingungen <strong>und</strong> Aktionen für eine Entscheidungstabelle ?<br />

b) Entscheidungstabelle, welche die Annahme von Bestellungen spezifiziert.<br />

Vorlesung Automatisierungsprojekte Seite 7/40


Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung<br />

B1<br />

B2<br />

B3<br />

B4<br />

B5<br />

B6<br />

A1<br />

A2<br />

A3<br />

A4<br />

A5<br />

A6<br />

Im K<strong>und</strong>enstamm?<br />

Artikel verfügbar?<br />

Mindestbestand unterschritten?<br />

Kreditrahmen überschritten?<br />

Umsatz eines Großk<strong>und</strong>en?<br />

Bestellung trotz Überschreitung des Kreditrahmens<br />

In K<strong>und</strong>enstamm aufnehmen<br />

Lagerbestand aktualisieren<br />

K<strong>und</strong>en über Nichtverfügbarkeit des Artikels informieren<br />

Bestellung "einfrieren"<br />

Auftragsbestätigung <strong>und</strong> Rechnung erstellen<br />

Sachbearbeiter über Unterschreitung des Mindestbestandes informieren<br />

Vorlesung Automatisierungsprojekte Seite 7/41<br />

Strukturierte Analyse<br />

SA Basiskonzept Kontrollstrukturen: Entscheidungstabellen<br />

Übung: Fehlerhafte Lösung korrigieren<br />

x<br />

A5<br />

x<br />

ET3<br />

ET3<br />

Vorlesung Automatisierungsprojekte Seite 7/42


Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Strukturierte Analyse<br />

Hierarchiekonzept in SA<br />

Kontext-Diagramm<br />

System (0) mit Schnittstellen<br />

zur Umwelt<br />

A<br />

B<br />

0<br />

C<br />

Diagramm 0<br />

System (0) verfeinert durch<br />

Funktionen 1, 2, 3 <strong>und</strong> 4<br />

b2<br />

a1<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

C<br />

Diagramm 3<br />

Funktion 3 verfeinert durch<br />

Funktionen 3.1, 3.2 <strong>und</strong> 3.3<br />

x<br />

3.1<br />

e2<br />

e1<br />

3.2<br />

3.3<br />

a3<br />

a4<br />

MiniSpec 3.1<br />

Vorlesung Automatisierungsprojekte Seite 7/43<br />

Strukturierte Analyse<br />

Kontext-Diagramm<br />

A<br />

Schnittstellen des zu modellierenden<br />

0<br />

C<br />

Systems zu seiner Umwelt.<br />

B<br />

Syntaktische Regeln:<br />

1. Nur ein Prozess mit Nummer 0: Repräsentiert Gesamtsystem<br />

2. Mindestens eine Schnittstelle<br />

3. Keine Datenflüsse zwischen den Schnittstellen<br />

4. Kein Speicher<br />

5. Jede Schnittstelle nur einmal vorhanden<br />

Semantische Regeln:<br />

1. Kontextdiagramm beschreibt Anwendungsbereich (problem domain) des<br />

zu modellierenden Systems<br />

2. Kontextdiagramm zeigt Datenflüsse, die Systemgrenzen passieren<br />

3. Kontextdiagramm stellt die zusammengefasste Form von Diagramm 0<br />

dar.<br />

4. Steht eine Schnittstelle für eine Vielzahl von beliebigen Instanzen, wird<br />

sie als eine Schnittstelle dargestellt.<br />

5. Eine Schnittstelle gibt die ursprüngliche Quelle oder Senke einer<br />

Information an.<br />

Vorlesung Automatisierungsprojekte Seite 7/44


Status,<br />

dock<br />

info,<br />

images<br />

Strukturierte Analyse<br />

Kontext-Diagramm<br />

Beispiel DGS<br />

Schnittstellen des zu modellierenden Systems<br />

zu seiner Umwelt.<br />

A<br />

B<br />

0<br />

C<br />

Central Monitoring<br />

and Surveillance<br />

System (CMS)<br />

Airfield<br />

camera<br />

Video data<br />

Pilot<br />

Display<br />

Status, dock<br />

info, images<br />

Type, gate<br />

arrival time<br />

Guidance<br />

information<br />

Central<br />

Personal<br />

Commands<br />

0<br />

Docking<br />

Guidance<br />

System<br />

time<br />

on<br />

time<br />

off<br />

Airfield<br />

Lighting<br />

A/C models<br />

Data<br />

Base<br />

Gate occupation<br />

Status, dock<br />

info, images<br />

Calib. Data, chocks,<br />

On/off, engage, test,<br />

A/C type, gate arrival<br />

time<br />

User defined<br />

Gate Systems<br />

Gro<strong>und</strong><br />

Personel<br />

Vorlesung Automatisierungsprojekte Seite 7/45<br />

Strukturierte Analyse<br />

Kontext-Diagramm<br />

Beispiel DGS<br />

Schnittstellen des zu modellierenden Systems<br />

zu seiner Umwelt.<br />

A<br />

B<br />

C<br />

Vorlesung Automatisierungsprojekte Seite 7/46


Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Beispiel DGS<br />

Gate occupation<br />

Video data<br />

2<br />

Erfasse<br />

Andockvorgang<br />

Guidance<br />

information<br />

1<br />

Verwalte<br />

Andockvorgänge<br />

Status, Pose,<br />

Zeit<br />

Beginn/Ende Andockvorgang<br />

3<br />

Zeige an Leitinformation<br />

Type, gate<br />

arrival time<br />

Status, dock<br />

info, images<br />

Status, Pose,<br />

Zeit<br />

Steuerbefehle<br />

8<br />

Kommuniziere<br />

mit<br />

Zentralpers.<br />

Andock-Daten (Status, Pose, Zeit)<br />

Status,<br />

Pose<br />

Flugzeugtyp<br />

Commands<br />

Status, dock<br />

info, images<br />

Typspezifische<br />

Flugzeug-CAD-Daten<br />

Kalibrierdaten<br />

7<br />

Greife auf<br />

Datenbasis<br />

zu<br />

Status,<br />

Zeit<br />

Status, Pose, Zeit<br />

Steuerbefehle<br />

Animationsdaten<br />

Gate-<br />

Modell<br />

Bilddaten<br />

5<br />

Kalibriere<br />

Gatesystem<br />

a1<br />

6<br />

Kommuniziere<br />

mit Gro<strong>und</strong><br />

Operator<br />

b2<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

A/C models<br />

4<br />

Schalte<br />

Rollfeldbeleuchtung<br />

Vorlesung Automatisierungsprojekte Seite 7/47<br />

Kalibrierinformation<br />

Plandaten<br />

Beleuchtungs-<br />

Steuerdaten<br />

Meldungen<br />

C<br />

Kommandos,<br />

(A/C type),<br />

(gate arrival time)<br />

Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Prozess 0 repräsentiert das gesamte zu modellierende<br />

System.<br />

Untergliederung in Teilprozesse<br />

Regeln:<br />

b2<br />

a1<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

C<br />

1. Schnittstellen nicht verfeinerbar, können aber in verfeinerten Diagrammen<br />

zur Verdeutlichung nochmals dargestellt werden (eindeutige Benennung!).<br />

2. Speicher können nicht verfeinert werden, können aber in allen weiteren<br />

Verfeinerungen nach ihrer Einführung nochmals dargestellt werden<br />

(eindeutige Benennung!).<br />

3. Anzahl der pro Diagramm dargestellten Prozesse sollte < 8 sein, dann<br />

(oder wenn das Diagramm bereits zuvor unübersichtlich) neues Diagramm.<br />

4. Verfeinerung der Prozesse Verfeinerung der Datenflüsse; Ziel:<br />

einheitliches Abstraktionsniveau innerhalb eines Diagramms.<br />

5. Prozessnummerierung: Trägt am Anfang die Nummer des verfeinerten<br />

Prozesses, durch „.“ getrennt laufende Nummerierung ab 1.<br />

Vorlesung Automatisierungsprojekte Seite 7/48


Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Beispiel DGS<br />

b2<br />

a1<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

C<br />

Vorlesung Automatisierungsprojekte Seite 7/49<br />

Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Data Dictionary Einträge <strong>und</strong> Datenintegrität (balancing)<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

Verfeinerung Prozesse Verfeinerung Datenflüsse<br />

Welche Datenflüsse zwischen zwei Diagrammen gehören wie zusammen ?<br />

a1<br />

b2<br />

1 2<br />

C<br />

Zusammenhang über Data Dictionary Einträge Forderungen:<br />

1. Jeder Datenflusspfeil hat einen Datenflussnamen (mögl. Ausnahme<br />

gesamter Speicher).<br />

2. Jeder Datenflussname ist im Data Dictionary definiert.<br />

3. Jeder Speicher hat einen Namen.<br />

4. Jeder Speichername ist im Data Dictionary definiert.<br />

5. Alle Datenflüsse eines untergeordneten DFD müssen im übergeordneten<br />

DFD entweder unter gleichem Namen erscheinen oder Teilkomponente<br />

eines Datenflusses sein. Die Teilkomponenten-Eigenschaft muss im DD<br />

beschrieben sein.<br />

Eigenschaft erfüllt: Ausbalanciertes Datenmodell (balancing), Datenintegrität<br />

Vorlesung Automatisierungsprojekte Seite 7/50


Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Zwiziwzrrg fdggg oi oiw<br />

Oihdshf öhjfsodf pweufr<br />

Pwoijdlkjdsljflj eiurowifr8 ifi<br />

Oiroiroiurouroufdjdljdlu eeur<br />

Strukturierte Analyse<br />

Data Balancing mittels DD<br />

A = ?<br />

A<br />

0<br />

C<br />

B = ?<br />

B<br />

X = ?<br />

a1<br />

b2<br />

1 2<br />

C<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

e2<br />

3.2<br />

a3<br />

x<br />

3.1<br />

e1<br />

3.3<br />

a4<br />

Vorlesung Automatisierungsprojekte Seite 7/51<br />

Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Datenfluss-Darstellung<br />

A<br />

A fließt von links nach rechts<br />

A<br />

A<br />

A wird in beide Zweige kopiert<br />

b2<br />

a1<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

C<br />

A<br />

A<br />

B<br />

C<br />

B<br />

C<br />

A<br />

A teilt sich in Komponenten B <strong>und</strong> C.<br />

A hat keine weiteren Komponenten.<br />

DD: A=B+C<br />

A entsteht aus B <strong>und</strong> C; DD: A=B+C<br />

A fließt beide Richtungen entlang<br />

z.B. Schreib/Lese-Zugriff<br />

Vorlesung Automatisierungsprojekte Seite 7/52


Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Hierarchiekonzept von SA<br />

b2<br />

a1<br />

1 2<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

C<br />

Durch Datenintegrität ist sichergestellt, dass alle Datenflussdiagramme –<br />

entsprechend ihrer Hierarchie- ineinander substituiert werden.<br />

Ein Datenfluss ist dann von innen nach außen <strong>und</strong> umgekehrt<br />

ununterbrochen verfolgbar.<br />

Speicher<br />

Vorlesung Automatisierungsprojekte Seite 7/53<br />

Strukturierte Analyse<br />

Verfeinerung Datenfluss-Diagramm<br />

Mini-Spezifikationen (MiniSpec)<br />

a3 Speicher<br />

a2<br />

3 a4 4<br />

b1<br />

Letzte Stufe der Verfeinerung<br />

Jeder Prozess, der nicht durch weiteres DFD verfeinert wird, muss durch<br />

MiniSpec beschrieben werden.<br />

MiniSpec beschreibt, wie Daten, die in den Prozess hineinfließen, in Ausgaben<br />

transformiert werden.<br />

Beschreibungsmittel: Pseudocode, Entscheidungstabellen <strong>und</strong> -bäume<br />

a1<br />

b2<br />

1 2<br />

C<br />

Gate-Plandaten<br />

Andockdaten<br />

Erzeuge<br />

Display-<br />

Information<br />

Textdaten<br />

Abstandsdaten<br />

If ((Flugzeug detektiert)&&(Flugzeugmodell aus Gate-Plandaten passt nicht)<br />

then Textdaten = „Stop“<br />

...<br />

Vorlesung Automatisierungsprojekte Seite 7/54


Strukturierte Analyse<br />

Anwendung Werkzeug<br />

Vorlesung Automatisierungsprojekte Seite 7/55<br />

Strukturierte Analyse<br />

Vorgehen<br />

Iterativer Prozess, d.h. mehrere <strong>Modellierung</strong>sdurchläufe<br />

1. Festlegung der Systemschnittstellen zur Umwelt<br />

2. Identifizierung aller E/A-Datenflüsse von Schnittstellen zu Prozess 0<br />

3. Ermitteln Funktionen bzw. Prozesse, die Eingaben in Ausgaben<br />

transformieren<br />

4. Speicher identifizieren <strong>und</strong> festlegen<br />

5. Verfeinerung von Prozessen <strong>und</strong> Flüssen<br />

6. Definition der Speicher <strong>und</strong> Datenflüsse im Data Dictionary<br />

7. Iterative Überarbeitung<br />

1. Eventuelle Kontrollflüsse entfernen<br />

2. Eindeutige Namenswahl für Datenflüsse<br />

3. Eindeutige Bezeichnung der Prozesse (aller seiner Aktionen)<br />

8. MiniSpecs für alle nicht-verfeinerten Prozesse<br />

Vorlesung Automatisierungsprojekte Seite 7/56


Strukturierte Analyse<br />

<strong>Zusammenfassung</strong><br />

Konzepte<br />

• Hierarchisch angeordnete Datenflussdiagramme (DFDs)<br />

• Data Dictionary Einträge (DDs)<br />

• Mini-Spezifikationen (MiniSpecs)<br />

DFD 0: Verfeinerung des Kontextdiagramms<br />

• Prozess 0 wird in Teilprozesse zerlegt.<br />

• Datenflüsse werden ebenfalls verfeinert.<br />

• Speicher werden eingeführt.<br />

• Neue Datenflüsse zwischen Prozessen <strong>und</strong> mit Speichern werden<br />

eingetragen.<br />

• Schnittstellen <strong>und</strong> Speicher dürfen nicht verfeinert werden.<br />

DFD 1, ..., DFD 1.1, ..., DFD n.m<br />

• Jeder Prozess kann weiter zu einem neuen Diagramm verfeinert<br />

werden.<br />

• Anzahl der Prozesse pro Diagramm soll maximal 7 sein.<br />

• Ist ein Prozess ausreichend verstanden, dann Beschreibung durch<br />

MiniSpec.<br />

Vorlesung Automatisierungsprojekte Seite 7/57<br />

Strukturierte Analyse<br />

<strong>Zusammenfassung</strong><br />

DD-Eintrag <strong>und</strong> Datenintegrität<br />

• Jeder Datenfluss <strong>und</strong> jeder Speicher wird im DD definiert.<br />

• Zusammenhang zwischen den Datenflüssen der DFDs über DD<br />

• Datenflüsse untergeordneter DFDs müssen im übergeordneten DFD<br />

unter gleichem Namen erscheinen oder dort Komponente eines DFD<br />

sein. Datenintegrität: Gültigkeit für alle DFDs.<br />

MiniSpec<br />

• Beschreibung eines nicht mehr verfeinerten Prozesses<br />

• Beschreibung, wie Eingabedatenflüsse in Ausgabedatenflüsse<br />

transformiert werden<br />

• Beschreibung durch Pseudocode, Entscheidungstabellen oder<br />

Entscheidungsbäume<br />

Vorlesung Automatisierungsprojekte Seite 7/58

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!