Skript zur Vorlesung Softwaretechnik Folge 6 Analyse und Definition: Basiskonzepte II IT Kompaktkurs Sommersemester 2001 Prof. Dr. Herbert Fischer Fachhochschule Deggendorf IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1 Basiskonzepte für Analyse und Definition (Teil 2) In diesem Kapitel werden wir weitere Basiskonzepte für Analyse und Entwurf kennenlernen und zwar datenorientierte Konzepte – hier die Jackson-Diagramme, dann regelbasierte Basiskonzepte, zu erwähnen wären Entscheidungstabellen und zuguterletzt beschäftigen wir uns mit zustandsorientierten Konzepten, als da wären Petrinetze. Weitere Basiskonzepte • datenorientierte • regelbasierte • zustandsorientierte Abbildung 1: Weitere Basiskonzepte Prof. Dr. Herbert Fischer Seite: 2 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 1.1 Skript SS 2001 Überblick Beginnen wir zunächst mit der Frage: Braucht man denn in der Praxis so viele verschiedene Basiskonzepte ? Das hängt eben vom Anwendungsbereich der Softwareentwicklung ab ! Ein Beispiel soll dies verdeutlichen: Sie sollen ein Rabattsystem für eine Fluggesellschaft entwickeln. Es werden Ihnen eine Vielzahl von Bedingungen wie Alter Flugziel Aufenthaltsdauer Abflugtermin genannt, welche einzeln oder in Kombination zu bestimmten Preisnachlässen wie 20% 30% 50% 0% führen. Sie kennen ja nun schon einige Basiskonzepte für Analyse und Definition von Softwaresystemen. Welches Konzept wäre für den fachlichen Entwurf geeignet ? Funktionsbäume ? Geschäftsprozesse ? Datenflußdiagramme ? Was meinen Sie ? Die Antwort auf diese Frage werden Sie am Ende dieses Kapitels mit Begründung geben können ! Prof. Dr. Herbert Fischer Seite: 3 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 1.2 Skript SS 2001 Datenorientierte Basiskonzepte 1.2.1 Entity Relationship Models (ERM) Das bekannteste datenorientierte Basiskonzept sind sicherlich die ERMs (Entity Relationship Models). Im Bereich der Datenmodellierung wird dieses Basiskonzept sehr häufig eingesetzt. An einem Beispiel soll dieses zentrale Konzept nochmals wiederholt werden. Entity-Relationship-Diagramm Datum Kunde aus leiht Kd.-Nr. Bibl. Name Buch Name Adresse Ort Titel ISBN Abbildung 2: ERM Erläuterung des Beispiels: Es werden drei Datenobjekte (Kunde, Buch, Bibliothek) mit den jeweiligen Attributen und Beziehungen (leiht, aus) in einem ERM dargestellt. Sie werden noch ein weiteres datenorientiertes Basiskonzept vorstellen, welches die strukturierte Vorgehensweise bei der Softwareentwicklung unterstützt, die JACKSON-Diagramme. Prof. Dr. Herbert Fischer Seite: 4 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.2.2 Jackson-Diagramme Jackson-Diagramm bestehen nur aus 3 Grundstrukturen Sequenz Auswahl Wiederholung Datenorientierte Basiskonzepte JACKSON-Diagramm • Grundstrukturen • Sequenz • Auswahl • Wiederholung • Unterstützung aller Kernphasen Abbildung 3: Jackson-Diagramme Diese drei Grundstrukturen können beliebig miteinander kombiniert werden. Bei konsequenter Verwendung entsteht eine hochstrukturierte Analyse und Definition eines geplanten Softwaresystems. Ausserdem unterstützt dieses Basiskonzept die Kernphasen der Softwareentwicklung Analyse und Definition Entwurf Implementierung Jackson-Diagramme untersützten sowohl die datenorientierte als auch die algorithmische Sicht (Kontrollstrukturen). Sehen wir uns die Grundstrukturen der JACKSON-Diagramm genauer an ! Prof. Dr. Herbert Fischer Seite: 5 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.2.2.1 Sequenz Eine Sequenz besteht aus einer oder mehreren Komponenten, die genau einmal auftreten. Beispiel: ADRESSE besteht aus den Komponenten STRASSE, POSTLEITZAHL und ORT. Zur Notation führen wir die Backus-Naur-Form (BNF) ein. JACKSON-Diagramme I Sequenz Adresse Straße PLZ Ort BNF-Notation: Adresse = Straße + PLZ + Ort Abbildung 4: Jackson-Diagramme: Sequenz Prof. Dr. Herbert Fischer Seite: 6 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.2.2.2 Auswahl Eine Auswahl besteht aus zwei oder mehreren Komponenten, von denen bei jedem Auftreten der Auswahl genau eine ausgewählt wird Beispiel: FAMILIENSTAND besteht aus der Komponente LEDIG oder VERHEIRATET oder GESCHIEDEN JACKSON-Diagramme II Auswahl Familienstand ledig0 verheiratet0 geschieden0 BNF-Notation: Familienstand = [ledig|verheiratet|geschieden] Abbildung 5: Jackson-Diagramme: Auswahl Prof. Dr. Herbert Fischer Seite: 7 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.2.2.3 Wiederholung: Eine Wiederholung besteht aus einer Komponente, die nicht, einmal oder mehrmals auftritt. Beispiel: KUNDENDATEI besteht aus vielen (Sonderfälle beachten !) KUNDEN. JACKSON-Diagramme III Wiederholung Kundendatei Kunden* BNF-Notation: Kundendatei = {Kunden} Abbildung 6: Jackson-Diagramme: Wiederholung Wann sollte man denn JACKSON-Diagramme einsetzen ? Das ist immer dann sinnvoll, wenn die Daten im Vordergrund stehen. Beispiele hierzu sind: Berichts- und Informationssysteme Datenbankanwendungen etc. Prof. Dr. Herbert Fischer Seite: 8 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 1.3 Skript SS 2001 Regelbasierte Basiskonzepte 1.3.1 Definition einer Entscheidungstabelle Entscheidungstabellen kann man immer dann empfehlen, wenn aufgrund eingetretener Bedingungen Entscheidungen gefällt werden müssen. Entscheidungstabellen eignen sich zur Darstellung einfacher und komplexer Entscheidungsfolgen. Mithilfe von Entscheidungstabellen können Aktionen oder Handlungen, die von der Erfüllung oder Nichterfüllung mehrerer Bedingungen abhängen, kompakt und übersichtlich definiert werden. Eine Entscheidungstabelle besteht aus einem Bedingungsteil und einem Aktionsteil In der linken Spalte werden die Bedingungen und Aktionen benannt und rechts sind die Regeln enthalten. Die Regeln setzen sich aus den Bedingungsanzeigern (JA/NEIN) und den Aktionsanzeigern (X) zusammen. Die Aktionsanzeiger stellt dar, welche Aktionen bei den ausgewählten Bedingungen auszuführen sind. Regelbasierte Basiskonzepte Entscheidungstabellen Name der Entscheidungstabelle Regelnummern wenn Bedingungen dann Aktionen Bedingungsanzeiger Aktionsanzeiger n Bedingungen 2n Regeln ! Abbildung 7: Definition einer Entscheidungstabelle Bei n Bedingungen gibt es theoretisch 2n Regeln ! Prof. Dr. Herbert Fischer Seite: 9 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 Am besten sehen wir uns hierzu ein praktisches Beispiel an ! Gehen wir hierzu in den Vertriebsbereich einer Firma und betrachten eine Entscheidungstabelle, welche die „Bearbeitung von Kundenbestellungen“ definieren soll. „Kundenbestellungen“ Beispiel Bearbeitung Kundenbestellung Artikel lieferbar Zahlungsverhalten Kunde i.O. Per Zahlung liefern Per Nachnahme liefern Artikel nachbestellen Tel. Zwischenbescheid Schriftl. Zwischenbescheid R1 R2 R3 R4 J J X J N N J N N X X X X X Abbildung 8: Entscheidungstabelle für Kundenbestellungen Kann es bei diesem Beispiel noch weitere Regeln geben bzw. kann ich diese Entscheidungstabelle nachträglich noch erweitern ? Bei 2 Bedingungen kann es max. 4 Regeln geben ! Aber weitere Bedingungen oder Aktionen können Sie natürlich eintragen und ergänzen. Prof. Dr. Herbert Fischer Seite: 10 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript 1.3.2 Schritte zum Aufbau einer Entscheidungstabelle Ausgangssituation ist eine verbale Problembeschreibung 1. Ermittlung der Aktionen 2. Ermittlung der Bedingungen 3. Aufbau der Entscheidungstabelle (siehe Folie 8) 4. Eintragen aller Bedingungskombinationen (JA/NEIN) Entscheidungstabelle Schritte zur Erstellung Ausgangssituation: Verbale Problembeschreibung 1. Ermittlung der Aktionen 2. Ermittlung der Bedingungen 3. Aufbau der Entscheidungstabelle 4. Eintragen aller Bedingungskombinationen 5. Eintragen der Aktionsanzeiger Abbildung 9: Schritte zur Entscheidungstabelle Empfehlung: Entwurf einer vollständigen ET bei weniger als 5 Bedingungen 5. Eintragen der Aktionsanzeiger (jeweils ein „X“) Vollständige Entscheidungstabellen können oft noch optimiert werden: Regeln können zusammengefasst werden Regeln können gestrichen werden (bei sinnlosen Aktionen !) Entscheidungstabellen können hierarchisch strukturiert werden. Prof. Dr. Herbert Fischer Seite: 11 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik SS 2001 IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.3.3 Praktisches Beispiel einer Entscheidungstabelle Abschliessend noch ein praktisches Beispiel einer optimierten Entscheidungstabelle, welche in einem Praxisprojekt mit einem CASE-Tool entwickelt worden ist. „Karte lesen und prüfen“ Beispiel Quelle: MID/INNOVATOR Abbildung 10: Beispiel einer Entscheidungstabelle Wann sollte man denn Entscheidungstabellen einsetzen ? Immer wenn unsere Problemlösung in ein komplexes System von Bedingungen eingebettet ist: Beispiele hierzu: Kalkulationsprogramme, wir hatten am Anfang dieser Sendung ein Rabattsystem für Fluggesellschaften diskutiert ! Simulation- und Spielprogramme Prof. Dr. Herbert Fischer Seite: 12 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 1.4 Skript SS 2001 Zustandsorientierte Basiskonzepte 1.4.1 Überblick Zustandsorientierte Basiskonzepte sind in der Softwareentwicklung immer dann gefragt, wenn wir Software-Lösungen für dynamische Systeme brauchen. Die Besonderheit der zustandsorientierten Basiskonzepte ist, daß diese auch nebenläufige Aktivitäten nichtdeterministische Vorgänge und den Vergangenheitsverlauf Praktische Beispiele gibt es genügend ! Verkehrssteuerung Fertigungs- und Montagesteuerung Transportsteuerung Automaten 1.4.2 Definition der Petrinetze Wie kann man nun denn komplexe, dynamische Systeme definieren und darstellen ? Zum Beispiel mit PETRINETZEN: Zunächst müssen wir hierfür die Elemente eines Petrinetzes erläutern: Ein Petrinetz ist ein gerichteter Graph mit Knoten mit Stellen für Zustände und Transitionen für Zustandsübergänge (Worel: was sind denn Transitionen?) Kanten für die gerichtete Verbindung zwischen Stellen und Transitionen und umgekehrt Marke Eingabestellen: Stellen, von denen Kanten zu einer Transition gehen Ausgabestellen: Stellen, zu denen von einer Transition aus Kanten führen Mit den Marken wird das dynamische Verhalten des Systems definiert. Prof. Dr. Herbert Fischer Seite: 13 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 Zustandsorientierte Basiskonzepte Elemente und Notation der Petrinetze Gerichteter Graph mit • Knoten • Stellen für Zustände • Transitionen für Zustandsübergänge • Kanten • zwischen Stellen und Transitionen • zwischen Transitionen und Stellen • Marken Stelle mit Marke Kante Transition Stelle ohne Marke Abbildung 11: Elemente und Notation der Petrinetze Prof. Dr. Herbert Fischer Seite: 14 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.4.3 Regeln für Aufbau und Nutzung von Petrinetzen Folgende Regeln gilt es zu beachten: Regel 1: Eine Transition kann schalten (oder feuern), wenn jede Eingabestelle einer Transition eine Marke enthält Regel 2: Schaltet eine Transition, dann wird aus jeder Eingabestelle eine Marke entfernt und zu jeder Ausgabestelle eine Marke hinzugefügt. Petrinetze Regeln Regel 1: • Eine Transition kann schalten (oder feuern), wenn jede Eingabestelle einer Transition eine Marke enthält Regel 2: • Schaltet eine Transition, dann wird aus jeder Eingabestelle eine Marke entfernt und zu jeder Ausgabestelle eine Marke hinzugefügt Abbildung 12: Regeln für Petrinetze Dazu sollten wir uns ein Beispiel ansehen ! Prof. Dr. Herbert Fischer Seite: 15 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 1.4.4 Beispiel einer Petrinetz-Anwendung Sehen wir uns ein Beispiel aus der Montagesteuerung an. Situationsbeschreibung: Wir sollen zwei Montageplätze von einem Roboter be- und entladen lassen. Die Steuerung dieses Systems soll analysiert und definiert, später entworfen und realisiert werden. Sehen wir uns hierzu das Petrinetz an ! Wir können die Dynamik dieses Montagesystems auch simulieren ! Roboterzelle I Quelle: Visual Object Net ++ Abbildung 13: Roboterzelle als Petrinetz (Ausgangszustand) Prof. Dr. Herbert Fischer Seite: 16 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 Skript SS 2001 Nach dem feuern einiger Transition stellt sich der Zustand der Roboterzelle folgendermassen dar: Roboterzelle II Quelle: Visual Object Net ++ Abbildung 14: Roboterzelle als Petrinetz (Folgezustand) Prof. Dr. Herbert Fischer Seite: 17 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik IT-Kompaktkurs Softwaretechnik, Folge 6 1.5 Skript SS 2001 Aufgaben 1.5.1 Jackson-Diagramm Definieren Sie die angegebenen Datenstruktur (Kundenbestellung) in der Jackson-DiagrammNotation ! 1.5.2 Entscheidungstabelle Bei einem Großhändler soll das Bestellwesen neu organisiert werden: jede Lagerentnahme wird sofort erfasst Artikel, die eine vorgegebene Bestellgrenze unterschreiten, werden täglich zu Geschäftsschluß nachbestellt. Artikel, die bei einer Entnahme einen Bestand ausweisen, der weniger als 10% über der Bestellgrenze liegt, werden nachbestellt, wenn für den betreffenden Tag eine Bestellung bei demselben Lieferanten ansteht. Stellen Sie die Entscheidungsregeln in Form einer Entscheidungstabelle zusammen. 1.5.3 Petrinetz Konstruieren Sie ein Petrinetz und verteilen Sie zu Beginn die Marken so, dass nach 2 Schaltvorgängen eine Verklemmung (dead-lock) auftritt. Prof. Dr. Herbert Fischer Seite: 18 Stand: 14.05.16, Datei: 68624607 FH Deggendorf, Studiengang Wirtschaftsinformatik