Informatik II: Modellierung Prof. Dr. Martin Glinz. Kapitel 3. Funktionsmodelle. Universität Zürich Institut für Informatik



Ähnliche Dokumente
Funktionsmodellierung II: Datenflussmodelle

Funktionsmodellierung I: Steuerflussmodelle

Modellierung von Arbeitsprozessen

Traditionelle strukturierte Spezifikationsmethoden

Hilfe zur Urlaubsplanung und Zeiterfassung

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Übung 4. Musterlösungen

Lehrer: Einschreibemethoden

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Übungen zur Softwaretechnik

Anwendungsbeispiele Buchhaltung

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

macs Support Ticket System

Excel Pivot-Tabellen 2010 effektiv

Benutzerverwaltung Business- & Company-Paket

36. SonntagsBlick Langlaufplausch 2015 Anleitung für eine Gruppenanmeldung

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Some Software Engineering Principles

Arbeiten mit UMLed und Delphi

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

36. SonntagsBlick Langlaufplausch 2015 Anleitung für die Online-Anmeldung

GEVITAS Farben-Reaktionstest

Vgl. Kapitel 4 aus Systematisches Requirements Engineering, Christoph Ebert

Kurzeinführung Moodle

Leichte-Sprache-Bilder

Das Persönliche Budget in verständlicher Sprache

Erstellen von Mailboxen

FastViewer Remote Edition 2.X

So geht s Schritt-für-Schritt-Anleitung

Tutorial. Wie kann ich meinen Kontostand von meinen Tauschpartnern in. übernehmen? Zoe.works - Ihre neue Ladungsträgerverwaltung

BABOK Knowledge Area Requirements Analysis Modeling Techniques - Process Models - - State Diagrams - Holger Dexel,

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

1. Modellierung einer Weinhandlung mit der Strukturierten Analyse (SA) 2. Modellierung einer Kassenbuchverwaltung mit der Strukturierten Analyse (SA)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Dokumentation zum Genehmigungsverfahren im Programm CIPDialog

Im Original veränderbare Word-Dateien

myfactory.go! - Verkauf

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Kreditorenbuchhaltung

IFV Informatik für Verbände

Kostenstellen verwalten. Tipps & Tricks

Inventur. Bemerkung. / Inventur

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

Beschaffung mit. Auszug aus dem Schulungshandbuch: Erste Schritte im UniKat-System

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

Requirements Engineering Die Dinge von Anfang an richtig machen

Umstellung des Vergütungsverfahrens externer Gutachter beim Versorgungsamt Hamburg

teischl.com Software Design & Services e.u. office@teischl.com

Arcavis Backend - Invoice Baldegger+Sortec AG

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Faktura. IT.S FAIR Faktura. Handbuch. Dauner Str.12, D Mönchengladbach, Hotline: 0900/ (1,30 /Min)

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Arbeitsschritte EAÜ Leistungserbringer Einnahmen erfassen

Erstellen eines Formulars

Handbuch ECDL 2003 Basic Modul 6: Präsentation Diagramm auf einer Folie erstellen

Anwendungsbeispiele Buchhaltung

Einstieg in Exact Online Buchungen erfassen. Stand 05/2014

Klausur Software-Engineering SS 2005 Iwanowski

Die Richtlinien Stornobedingungen, Buchungsgarantie, Nächtigungsabgabe, Haustiere, Endreinigung

Buchungs- und Umsatzsteuerzeitraum ändern

Wenn Sie das T-Online WebBanking das erste Mal nutzen, müssen Sie sich zunächst für den Dienst Mobiles Banking frei schalten lassen.

Erstellung eines Google-Kontos Stand: Juni 2013

ecaros2 - Accountmanager

Online bezahlen mit e-rechnung

DIE ZUKUNFT BEGINNT JETZT: ELEKTRONISCHE UNTERSCHRIFT

Erste Schritte. Lavid-F.I.S. Faktura. Erste Schritte

Mediator 9 - Lernprogramm

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

Kundenrechnungen (Debitor) schreiben

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

1. Einführung. 2. Die Mitarbeiterübersicht

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Informatik für Schüler, Foliensatz 21 Objektorientierte Programmierung

Tevalo Handbuch v 1.1 vom

SEQUENZDIAGRAMM. Christoph Süsens

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

e LEARNING Kurz-Anleitung zum Erstellen eines Wikis 1. Wiki erstellen

Anleitung für IQES-Verantwortliche Persönliche Konten verwalten

1. Einführung. 2. Weitere Konten anlegen

sidoku sidoku EXPRESS Release Stand: erstellt von: EXEC Software Team GmbH Südstraße Ransbach-Baumbach

Einnahmen und Ausgaben buchen und auswerten

Übungen Workflow Management. Blatt 2

Kreativ visualisieren

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Test-Driven Design: Ein einfaches Beispiel

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Grundsätzliche Informationen zu SpAz

BUDGETIERUNG IM WÜRTH ONLINE-SHOP

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

Prüfung Computation, Programming

Bedienungsanleitung für den Online-Shop

Transkript:

Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel 3 Funktionsmodelle Universität Zürich Institut für Informatik

3.1 Motivation, Einsatz von Funktionsmodellen Funktionsmodelle beschreiben und strukturieren die Funktionalität eines Systems ( das, was ein System kann ) Folgende Aspekte können modelliert werden: Der Steuerfluss (control flow) in einem System oder in einer Funktion eines Systems Ablaufstrukturen Aufrufstrukturen Der Datenfluss (dataflow) zwischen den Funktionen eines Systems bzw. innerhalb einer Funktion Der Arbeitsfluss (workflow) in einem Arbeitsprozess Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 2

3.2 Steuerflussmodelle Programmablaufpläne (flow charts) Strukturierte Modellierung von Programmabläufen Jackson-Diagramme Nassi-Shneiderman-Diagramme Aktigramme, Pseudocode Prozeduraufrufgraphen Entscheidungstabellen UML-Aktivitätsdiagramme (hier nicht behandelt, siehe Kapitel 3.4) Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 3

Programmablaufpläne (flow charts) Ältestes Mittel zur graphischen Visualisierung von Programmabläufen. Beliebige Strukturen können modelliert werden Gefahr der Modellierung von Spaghetti -Strukturen Ist veraltet und sollte nicht mehr verwendet werden Symbole in Programmablaufplänen: Aktion Entscheidung Eingabe Ausgabe Steuerfluss Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 4

Beispiel eines Programmablaufplans Beleg vorhanden? nein ja Beleg lesen Buchung Belegart? Stornierung Buchungsbeleg verarbeiten Stornobeleg verarbeiten Log schreiben weitere Belege? nein ja Log abschließen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 5

Strukturierte Modellierung von Programmabläufen Jedes sequentielle Programm kann aus Anweisungssequenzen, Alternativen (Fallunterscheidungen) und Iterationen zusammengesetzt werden (Böhm und Jacopini 1966). Dies ist die Grundlage der strukturierten Programmierung. Gebräuchliche Notationen zur graphischen Modellierung strukturierter Abläufe: Jackson-Diagramme Nassi-Shneiderman-Diagramme Aktigramme (oder Aktionsdiagramme, action diagrams) Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 6

Jackson-Diagramme Jackson-Diagramme (Jackson 1975) bestehen aus drei Grundelementen. Jedes Rechteck steht für eine Aktion. Die obenstehende Aktion wird durch die untenstehenden Komponenten-Aktionen definiert. Diagramme entstehen durch Verschachtelung: Jede Komponenten- Aktion kann durch ein Grundelement ersetzt werden. Dieser Vorgang ist beliebig oft wiederholbar. A A A B C B C B * Sequenz: A ist B gefolgt von C Alternative: A ist entweder B oder C Iteration: A ist mehrfache Wiederholung von B Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 7

Beispiel eines Jackson-Diagramms Beleg lesen Belegprogramm Buchungsbeleg verarb. Belege verarbeiten Beleg bearbeiten Inhalt verarbeiten * Stornobeleg verarb. Log abschließen Log schreiben Hinweis: In der Programmentwicklungsmethode von Jackson (Jackson Structured Programming, JSP) werden zunächst die Datenstrukturen, die ein Programm verarbeiten soll, mit den gleichen Mitteln modelliert. Daraus wird eine Programmstruktur abgeleitet, die den zu verarbeitenden Datenstrukturen entspricht (Jackson 1975). Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 8

Modelltheoretische Konzepte in Jackson-Diagrammen Modellelement Aktion Iterationssymbol Alternativsymbol Komponenten-Beziehung Zu schreibendes Programm Abbildung der Programmstruktur Keine Programmdetails Granularität der Darstellung Rechteck, Linie, Stern,... Modelltheoretisches Konzept Individuum Attribut Attribut Attribut Original Abbildungsmerkmal Verkürzungsmerkmal Pragmatisches Merkmal Notation Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 9

Nassi-Shneiderman-Diagramme Nassi-Shneiderman-Diagramme, auch Struktogramme genannt, (Nassi und Shneiderman, 1973) sind konzeptionell eng mit den Jackson- Diagrammen verwandt. Sie verwenden jedoch eine andere Notation für die Grundelemente und stellen die Verschachtelung von Aktionen graphisch auch als solche dar. Ferner gibt es zusätzliche Elemente, mit denen Prozeduren, das Verlassen von Prozeduren und das Verlassen von Schleifen modelliert werden können. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 10

Aufgabe 3.1 In einer Bibliothek werden Bücher wie folgt behandelt: Ein Buch wird beschafft und dann katalogisiert. Anschließend steht es im Lesesaal zum Betrachten und Ausleihen bereit. Ein Buch kann beliebig oft betrachtet oder ausgeliehen werden. Ist ein Buch ausgeliehen, so muss es zurückgegeben werden, bevor es erneut betrachtet oder ausgeliehen werden kann. Modellieren Sie die Funktionalität eines einzelnen Buches als Jackson- Diagramm. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 11

Grundelemente von Nassi-Shneiderman-Diagrammen Grundsymbole: A1 W B A2 A1 A2 F B A Sequenz: A2 folgt auf A1 Zusatzsymbole: Alternative: Wenn B dann A1 sonst A2 Iteration: Solange B wahr ist, führe A aus name Verlassen einer Schleife Verlassen einer Prozedur Diagramm einer Prozedur Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 12

Beispiel eines Nassi-Shneiderman-Diagramms Nicht bearbeiteter Beleg vorhanden Beleg lesen Belegart = "Buchung" Wahr Buchungsbeleg verarbeiten Stornobeleg verarbeiten Falsch Log schreiben Log abschließen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 13

Aufgabe 3.2 a) Beschreiben Sie die modelltheoretischen Konzepte, welche den Nassi- Shneiderman-Diagrammen zugrunde liegen. b) Sind Jackson-Diagramme und Nassi-Shneiderman-Diagramme äquivalente Modellierungsmittel? Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 14

Aktigramme, Pseudocode Aktigramme (action diagrams) sind eine Mischung aus einer programmartigen Text-Notation, unterstützt durch graphische Elemente. Konzeptionell sind sie mit Jackson-Diagrammen und Nassi-Shneiderman-Diagrammen vergleichbar Beispiel: WHILE Nicht bearbeiteter Beleg vorhanden Beleg lesen IF Belegart = Buchung Buchungsbeleg verarbeiten ELSE Stornobeleg verarbeiten ENDIF Log schreiben END Log abschließen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 15

Erstellung strukturierter Ablaufmodelle Klassischer Ansatz: Schrittweise Verfeinerung (Wirth 1971, Dijkstra 1976, Wirth 1983) 1 Wähle eine Aktion, welche den gesamten Ablauf repräsentiert 2 Zerlege diese Aktion entsprechend der Problemstellung in eine Sequenz, eine Alternative oder ein Iteration 3 Wiederhole Schritt 2 für jede beim Zerlegen neu entstandene Aktion, bis das Modell hinreichend detailliert ist Zerlegungsfehler zu Beginn sind später kaum mehr reparierbar Funktioniert nur für kleine Probleme sonst besser: Teilprobleme identifizieren Alle Teilprobleme durch schrittweise Verfeinerung modellieren Teilmodelle durch Verschachtelung zusammensetzen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 16

Prozeduraufrufgraphen Prozeduraufrufgraphen (structure charts, call graphs) modellieren die statische Aufrufhierarchie der Prozeduren (Unterprogramme) eines Programms. Das zugrundeliegende Konzept ist, nur die Prozedurnamen und die Aufrufbeziehungen zwischen den Prozeduren zu modellieren. Von den Prozedurrümpfen wird abstrahiert. Je nach Notation werden auch die Prozedurparameter noch modelliert. Prozeduraufrufgraphen sind ein Mittel, um die Struktur von Programmen begrenzter Größe zu visualisieren. Sie sind automatisch aus dem Programm-Code erzeugbar und können daher auch beim Reverse-Engineering bestehender Software eingesetzt werden. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 17

Beispiel eines Prozeduraufrufgraphen Prozess beobachten Prozesswert erfassen Trend berechnen Alarm auslösen Prozessabbild anzeigen Messwert lesen Grenzwertüberschreitung prüfen Sensor abfragen Sensorwert skalieren Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 18

Entscheidungstabellen Entscheidungstabellen (decision tables) modellieren komplexe Entscheidungsabläufe in tabellarischer Form Eine Entscheidungstabelle besteht aus einem Bedingungsteil (mögliche Bedingungskombinationen) und einem Aktionsteil (auszuführende Aktion(en)) Einsatz: Anschauliche tabellarische Darstellung komplexer Entscheidungsstrukturen mit vielen Bedingungen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 19

Beispiel einer Entscheidungstabelle 1 2 3 4 5 6 7 Bestellbetrag > Kreditlimite N J J J J J J Bestellbetrag > 1.5 Kreditlimite N N J J J J Sonderkunde J N J N N N Jahresumsatz > 50000 N J N 2-Monats-Umsatz > 20000 J N Bestellung ausliefern X X Bestellung an Verkaufsleiter X X X X Bestellung zurückweisen X Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 20

Vereinfachung von Entscheidungstabellen Bei n binären Bedingungen hat die volle Tabelle 2 n Spalten Durch Zusammenfassung von Bedingungskombinationen, die gleiche Aktionen auslösen, wird die Tabelle kompakter. Beim Zusammenfassen muss sichergestellt werden, dass es keine Bedingungskombination gibt, für die mehr als eine Spalte zutrifft (Widerspruchsfreiheit) für jede Bedingungskombination mindestens eine Spalte zutrifft (Vollständigkeit) Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 21

Methodik der Erstellung von Entscheidungstabellen Alle Bedingungen (und deren mögliche Werte) ermitteln Vollständigen Bedingungsteil (ohne egal -Werte) aufbauen; Bedingungswerte systematisch variieren Aktionsteil aufbauen: Zu jeder Bedingungskombination die zu treffende(n) Aktion(en) notieren Tabelle durch Zusammenfassen von Spalten mit gleichem Aktionsteil vereinfachen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 22

Aufgabe 3.3 Franziska Freitag hat folgendes Problem mit der Vorlesung Informatik II am Dienstag Nachmittag: Wenn sie Lust auf Lernen hat und ihr Freund Abendschicht hat, besucht sie die ganze Vorlesung. Wenn sie Lust auf Lernen hat und ihr Freund keine Abendschicht hat, besucht sie die Vorlesung, geht aber in der Pause. Wenn sie keine Lust auf Lernen hat und nicht an die Vorprüfung denkt, geht sie nicht zur Vorlesung. Wenn sie keine Lust auf Lernen hat, aber an die Vorprüfung denkt, besucht sie die die ganze Vorlesung, wenn ihr Freund Abendschicht hat. Hat er keine Abendschicht, bleibt sie nur bis zur Pause. Modellieren Sie das Verhalten von Franziska Freitag als Entscheidungstabelle. Vereinfachen Sie die Tabelle so weit wie möglich. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 23

3.3 Datenflussmodelle Datenflussmodelle beschreiben die Funktionalität eines Systems durch Aktivitäten und die Datenflüsse zwischen diesen Aktivitäten. Basis: Konzept der datengesteuerten Verarbeitung: Eine Aktivität arbeitet, wenn ihre benötigten Datenflüsse eintreffen Sie erzeugt bei ihrer Arbeit neue Datenflüsse Diese steuern entweder andere Aktivitäten an oder verlassen das System als Ergebnis Der Steuerfluss ist implizit und wird nicht modelliert Ein reines Datenflussmodell modelliert nur Datentransport und Datenbearbeitung, nicht aber Datenspeicherung In der Praxis hinderliche Einschränkung Hinzufügen von Mitteln zur Modellierung von Datenspeicherung Bekanntester Vertreter: Datenflussdiagramm Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 24

Datenflussdiagramme Ein Datenflussdiagramm (dataflow diagram, DFD) modelliert den Transport, die Bearbeitung und die Speicherung von Daten. Zwei Notationen sind gebräuchlich: Aktivität (Prozess; activity, process) Datenfluss (dataflow) Speicher (store, file) Endknoten (terminator, terminal, external) Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 25

Interpretation von Datenflussdiagrammen Datenflüsse transportieren Datenpakete, die von Aktivitäten oder Endknoten produziert bzw. konsumiert werden. Aktivitäten arbeiten nur dann, wenn alle von ihnen benötigten Eingabe-Datenflüsse vorliegen. Die Aktivität konsumiert die Daten, bearbeitet sie und produziert Ausgabe-Datenflüsse. Sie kann dabei zusätzlich Speicherinhalte lesen oder schreiben. Speicher modellieren Datenbehälter. Ihr Inhalt kann gelesen werden (ohne den Speicher zu verändern) und geschrieben werden (dabei wird der alte Inhalt zerstört). Endknoten sind Aktivitäten in der Systemumgebung. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 26

Beispiel eines Datenflussdiagramms Messreihe auswerten PrüfNr vergeben.1 PrüfNr fehlerhaftemessreihe ausgewertete Messreihe Messreihe Messreihe kalibrieren.2 kalibrierte Messreihe Kenngrößen berechnen.3 Referenzkurven Kenngrößen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 27

Aufgabe 3.4 Das nachstehende Datenflussdiagramm zeigt einen Ausschnitt aus dem Modell der Kursadministration einer Volkshochschule. Fassen Sie die Aussagen dieses Datenflussdiagramms in Worte. Wo können Sie (fast) sichere Aussagen machen, was ist nur wahrscheinlich, was wissen Sie nicht? Wie könnten Sie die Wissenslücken schließen? Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 28

Aufgabe 3.4 (Fortsetzung) Kursadministration Kurs buchung RechnungMit Einzahlungsschein Rechnung stellen.1 Guthaben Ausstehende Guthaben auflisten.2 ListeAusstehender Guthaben Stichtag Sichere Aussagen? Wahrscheinliche Aussagen? Wie Wissenslücken schließen? Zahlung verbuchen QuittungFür Bareinzahlung Zahlungs eingang Bezahlte Kursbelegung Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 29.3

Notwendige Ergänzungen Datenflussdiagramme sind Übersichtsmodelle. Zur Präzisierung müssen die Namen aller Datenflüsse und Speicher definiert werden die Funktionalität jeder Aktivität beschrieben werden Eine Aktivität kann wiederum durch ein Datenflussdiagramm beschrieben werden DFD-Hierarchie Es braucht eine Notation zur Beschreibung elementarer, nicht zerlegter Aktivitäten Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 30

Strukturierte Analyse Strukturierte Analyse (structured analysis) ist das klassische Beispiel einer datenflussorientierten Methode (DeMarco 1978, Gane und Sarson 1979, McMenamin und Palmer 1984, Yourdon 1989) SA verwendet vier Konzepte: Datenflussdiagramme als zentrales Modellierungsmittel Ein Datenlexikon zur Datendefinition Mini-Spezifikationen zur Beschreibung elementarer Aktivitäten Hierarchische Zerlegung der DFD zur Strukturierung des Modells Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 31

Grundkonzepte der Strukturierten Analyse Datenfluss- Diagramm(e) Zimmer reservieren WENN Zimmer der gewünschten Art ist frei DANN...... Gast := Name + Vorname + Adresse Name := {Zeichen}... Datenlexikon Mini- Spezifikationen SA Dekomposition Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 32

Hierarchische Zerlegung Die Datenflussdiagramme eines Systems können hierarchisch in Schichten angeordnet werden Jede Ebene fasst die Datenflussdiagramme der darunterliegenden Ebenen zu je einer Aktivität zusammen In der Regel wird ein dazu passendes hierarchisches Nummerierungsschema für Aktivitäten und DFD verwendet Bei geeigneter Wahl der Zerlegung kann so ein komplexes Modell schrittweise in einfachere Teilmodelle zerlegt werden Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 33

Beispiel einer DFD-Hierarchie in SA Kontext-Diagramm 0 DFD 0 2 3 1 DFD 1 DFD 3.2.3.2.3.1.1.4 Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 34

Konsistenz der Hierarchieebenen In jeder DFD-Hierarchie müssen die Diagramme auf den verschiedenen Ebenen miteinander konsistent sein. Beispiel: zwei konsistente DFD: DFD 4.2 Auswertung Messreihe Messreihe auswerten.1 zuprotokollierende Messreihe Kenngrößen Referenzkurven Referenzwerte....2... Referenzkurven berechnen.4 DFD 4.2.1 Messreihe auswerten Messreihe Messreihe kalibrieren.2 PrüfNr vergeben.1 kalibrierte Messreihe PrüfNr fehlerhaftemessreihe Kenngrößen berechnen.3 Referenzkurven ausgewertete Messreihe Kenngrößen Auszug aus dem Datenlexikon: zuprotokollierendemessreihe := PrüfNr + [ausgewertetemessreihe fehlerhaftemessreihe] Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 35

Modelltheoretische Konzepte in SA Modellelement Aktivität, Speicher, Endknoten Datenfluss Datenlexikon-Eintrag Mini-Spezifikation Problembereich Abbildung der Flussstruktur (beispielsweise) keine Beziehungen zwischen Speichern Auswahl und Granularität von Aktivitäten und Speichern Kreis, Doppellinie, Pfeil... Modelltheoretisches Konzept Individuum Attribut Attribut Attribut Original Abbildungsmerkmal Verkürzungsmerkmal pragmatisches Merkmal Notation Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 36

Methodik der Modellerstellung Klassisches Vorgehen (event partitioning, McMenamin und Palmer 1984) 1 Erstelle ein Kontext-Diagramm (vgl. Kapitel 6) 2 Erstelle eine Ereignisliste (Ereignis = Anstoß aus der Außenwelt, der eine Reaktion des Systems erfordert) 3 Zeichne ein DFD mit einer Aktivität für jeden Vorgang (= Verarbeitung eines Ereignisses und Erzeugung der erwarteten Reaktionen) Schließe interaktiv die dabei auftretenden Informationslücken Definiere die verwendeten Daten Skizziere Mini-Spezifikationen 4 Restrukturiere dieses (in der Regel sehr große) DFD in eine Hierarchie 5 Vervollständige das Modell Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 37

Methodik der Modellerstellung Das klassische Vorgehen hat bei großen Modellen erhebliche Schwächen Besseres Vorgehen: 2' Gliedere die Aufgabe in Teile, die (soweit wie möglich) in sich geschlossen sind Erstelle die Ereignisliste Bilde Unter-Ereignislisten für jede Teilaufgabe 3' Arbeite gemäß 3 für jede Teilaufgabe; stimme dabei das Neue mit schon vorhandenen Teilmodellen ab 4' Arbeite gemäß 4 für jede Teilaufgabe (falls nötig) 5' Arbeite gemäß 5 und synthetisiere die oberste(n) Zerlegungsebene(n) aus den Teilmodellen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 38

Aufgabe 3.5 Ein Kurs-Informationssystem für eine Volkshochschule ist zu spezifizieren. Folgende Informationen sind Ihnen bekannt: Meldet sich jemand zu einem Kurs an, so werden der belegte Kurs sowie Name und Adresse der angemeldeten Person erfasst. Das Kursgeld kann entweder direkt bar bezahlt oder mit einem bei der Anmeldung erzeugten Einzahlungsschein eingezahlt werden. Eingehende Zahlungen werden verbucht; nur Bareinzahlungen werden quittiert.... Bis eine Woche vor Kursbeginn kann eine angemeldete Person sich wieder abmelden. Hat sie das Kursgeld bereits bezahlt, wird der Betrag von der Buchhaltung zurückerstattet. Die Abmeldung wird schriftlich bestätigt.... Eine Woche vor Kursbeginn wird automatisch eine Liste aller Kursteilnehmer erzeugt.... a) Erstellen Sie aufgrund dieser Informationen eine Ereignisliste. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 39

Aufgabe 3.5 (Fortsetzung) b) Modellieren Sie mit Hilfe der Ereignisliste das Problem der Kursadministration als Datenflussdiagramm. Stimmen Sie Ihr Modell mit dem Modell der Buchhaltung (Aufgabe 3.4) ab. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 40

3.4 Arbeitsflussmodelle Arbeitsflussmodelle (workflow models) dienen zur Beschreibung von Arbeitsprozessen. Sie modellieren den Ablauf von Arbeitsschritten, die den Ablauf steuernden Ereignisse, die beteiligten Stellen bzw. die Rollen der beteiligten Personen und die verwendeten bzw. erzeugten Materialien. Einfache Arbeitsflussmodelle modellieren nur eine Folge von Arbeitsschritten Vollständige Arbeitsflussmodelle beschreiben alle Elemente eines Arbeitsprozesses Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 41

Beispiel eines einfachen Arbeitsflussmodells Das sogenannte Wasserfallmodell für die Entwicklung von Software System feasibility Validation Software plans and requirements Validation Product design Verification Detailed design Verification Code Unit test Integration Product verification Implementation System test Operations and maintenance Revalidation Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 42

Notationen für Arbeitsflussmodelle Generische Notation, siehe Beispiel rechts (Bearbeitung eines Kreditantrags) UML-Aktivitätsdiagramme Ereignis-Prozessketten-Diagramme (in dieser Vorlesung nicht behandelt) Sprachen zur Verhaltensmodellierung (zum Beispiel Statecharts oder Petrinetze, vgl. Kapitel 4) Kunde will Kredit Antrag aufnehmen Sachbearbeiter Antrag prüfen Antrag (über Limite) Sachbearbeiter Sicherheiten prüfen Sachbearbeiter Antrag (mit Sicherheit) Antrag (Sicherheit nicht ok) Antrag (Budget nicht ok) Kredit ablehnen Antrag (abgelehnt) Sachbearbeiter Filialleiter Antrag Kreditbudget prüfen Sachbearbeiter Antrag genehmigen Kunde Konto Antrag (unter Limite) Antrag (Budget ok) Antrag (genehmigt) Kredit sprechen Sachbearbeiter Antragsablage Kunde Kreditportfeuille Kunde Kundendossier Bescheid (abgelehnt) Bescheid (bewilligt) Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 43

UML-Aktivitätsdiagramme In der Sprache UML (Unified Modeling Language) [Rumbaugh, Jacobson, Booch 1999] gibt es sogenannte Aktivitätsdiagramme (activity diagrams) Notation: Stelle A Stelle B Rolle C Aktivität Informationsobjekt Verantwortlichkeitsbereiche Arbeitsfluss Verzweigung Parallelität Zugriff auf Informationsobjekt UML-Aktivitätsdiagramme eignen sich als Notation für Arbeitsflussmodelle Steuerfluss- und Interaktionsmodelle Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 44

Beispiel eines Arbeitsflussmodells mit einem UML- Aktivitätsdiagramm Prozess zur Eröffnung eines Kontos: Kundendaten aufnehmen Sachbearbeiter Kontoart festlegen Kontonummer erzeugen System AND AND Vertrag erzeugen [nicht unterschrieben] Vertrag Rücksetzen, Ablegen [unterschrieben] Konto eröffnen Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 45

Aufgabe 3.6 Dieter Dollmaier geht jeden Morgen als erstes zum Kaffeeautomaten. Wenn dieser noch ausgeschaltet ist, schaltet er ihn ein. Während der Automat aufwärmt, spült er seine Tasse und schäkert mit seiner Kollegin Claudia Kussmaul. Dann lässt er seinen Kaffee heraus, nimmt sich Milch und Zucker, verabredet sich gleichzeitig mit Claudia Kussmaul zum Abendessen und kehrt anschließend beschwingt in sein Büro zurück. Modellieren Sie diesen Arbeitsprozess mit einem UML-Aktivitätsdiagramm. Wie abstrakt ist dieses Arbeitsflussmodell im Vergleich zu den weiter oben gezeigten Modellen? Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 46

Literatur Boehm, B. (1981). Software Engineering Economics. Englewood Cliffs, N.J.: Prentice Hall. Böhm, C. G. Jacopini (1966). Flow Diagrams, Turing Machines and Languages With Only Two Formation Rules. Communications of the ACM 9, 5 (May 1966). 366-371. Chvalovski, V. (1983). Decision Tables. Software Practice and Experience 13, 5 (Mai 1983). 423-429. DeMarco, T. (1979). Structured Analysis and System Specification. New York: Yourdon Press. Dijkstra, E.W. (1976). A Discipline of Programming. Englewood Cliffs, N.J.: Prentice Hall. Gane C., T. Sarson (1979). Structured Systems Analysis: Tools and Techniques. Englewood Cliffs, N.J.: Prentice Hall. Jackson, M. (1975). Principles of Program Design. New York: Academic Press. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 47

Literatur 2 McMenamin, S.M., J.F. Palmer (1984). Essential Systems Analysis. New York: Yourdon Press. Nassi, I., B. Shneiderman (1973). Flowchart Techniques for Structured Programming. SIGPLAN Notices August 1973. 12-26. Rumbaugh, J., Jacobson, I., Booch, G. (1999). The Unified Modeling Language Reference Manual. Reading, Mass. : Addison-Wesley. Yourdon. E.N., L.L. Constantine (1978). Structured Design. Englewood Cliffs, N.J.: Prentice Hall. Yourdon, E. (1989). Modern Structured Analysis. Englewood Cliffs, N.J.: Prentice Hall. Wirth, N. (1971). Program Development by Stepwise Refinement. Communications of the ACM 14, 4 (April 1971). 221-227. Wirth, N. (1983). Systematisches Programmieren. Stuttgart: Teubner. Informatik II: Modellierung Kapitel 3 2003 by Martin Glinz 48