Mod-8.1 8 Fallstudien Jeweils ein Gegenstandsbereich steht im Vordergrund Seine Strukturen, Eigenschaften, Zusammenhänge werden mit verschiedenen Kalkülen modelliert. Verschiedene Kalküle werden eingesetzt, um * unterschiedliche Aspekte zu beschreiben * Beschreibungen derselben Aspekte zu vergleichen. Fallstudie 1: Autowerkstatt Fallstudie 2: Monopoly - Spiel Fallstudie 3: Getränkeautomat (siehe Übungen) (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 801 Ziele: Kalküle im Zusammenhang verwenden in der Vorlesung: * Erläuterungen dazu, * Fallstudien 1, 2 folgen hier; Fallstudie 3 wurde in Übungsaufgaben behandelt. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.2 Fallstudie 1: Autowerkstatt Wir modellieren die Auftragsabwicklung in einer Autowerkstatt. Ziel: Datenbank entwerfen, Abläufe analysieren und verbessern Teilaufgaben: 1. Informationen und Zusammenhänge 2. Bedingungen und Regeln 3. Abläufe bei der Auftragsabwicklung Kurzbeschreibung der Informationsstruktur: 1. Kunde: hat einen Namen, besitzt Kraftfahrzeuge, erteilt Aufträge 2. Auftrag: hat Eingangsdatum, betrifft ein Kraftfahrzeug, wird von Mechanikern bearbeitet, benötigt Ersatzteile bestimmter Arten und Mengen 3. Kraftfahrzeug: hat Fahrgestellnummer und Baujahr, ist entweder ein PKW oder ein Motorrad; zu PKWs interessiert ihre Farbe, zu Motorrädern der Tuningsatz 4. Typ: Kraftfahrzeug hat einen Typ, Mechaniker ist für einige Typen ausgebildet, Ersatzteil ist für bestimmte Typen verwendbar (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 802 Ziele: Gegenstandsbereich kennenlernen in der Vorlesung: Erläuterungen dazu nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.3 8.1.a Informationsstruktur als ER-Modell KdNr Name FahrgestNr Baujahr TypNr hat [1, 1] Kfz [1, 1] KfzTyp Kunde Typ besitzt IST erteilt PKW Motorrad Datum [1, 1] betrifft Auftrag Farbe [1, 1] Tuning ausgebil- AuftrNr Name PersNr det für bear- Mechaniker [1, *] beitet verwendbar für benötigt ErsatzteilArt [1, *] Vorrat TeileNr Anzahl * Schlüsselattribute ergänzt, wo nicht sowieso gefordert * Kardinalitäten: plausibel ohne unnötig einzuschränken (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 803 Ziele: ER Methode anwenden in der Vorlesung: Erläuterungen dazu (mit Mod-8.2): * Beginnen mit ER Modellierung. * Macht Zusammenhänge deutlicher als Modellierung mit Wertebereichen. * Entity-Typen sind aus der informellen Beschreibung gut erkennbar. * Alle an Relationen beteiligten Objektarten müssen durch Entity-Typen modelliert werden, so auch Ersatzteile. * Offenbar geht es hier nicht um individuelle Ersatzteile sondern um Ersatzteilarten die jeweils in bestimmter Anzahl vorhanden sind. * Entwurf prüfen durch Angabe von Ausprägungen. Kardinalitäten: * Typzugehörigkeit immer [1, 1]; * Auftrag für genau ein Kfz (plausibel); * Auftrag von genau einem Kunden (plausibel); * eindeutiger Kfz-Besitzer (restriktiv); * Mechaniker für mindestens einen Kfz-Typ (restriktiv); * Ersatzteilart für mindestens einen Kfz-Typ (restriktiv); * weitere Restriktionen sind nicht nötig. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.4 Vergleich ER-Modell und Wertebereiche Attribut Vorrat Vorrat := Iota N Wertemenge 0 Schlüsselattribut KdNr KdNr := Iota N Indexmenge 0 Entity-Typ Kunde Kunde := KdNr multiply Name kartesisches Produkt Name ohne Identität der Entities Relation erteilt := Pow (Kunde multiply Auftrag) Relation Kunde erteilt Auftrag Kardinalität [1, 3] Prädikatenlogik: für alle a element Auftrag: 1 lessequal |{ (x,y) | (x,y) element erteilt logicaland y=a}| lessequal 3 [1, 1] erteilt: Auftrag -> Kunde Funktion (hier: total) IST-Beziehung kartesisches Produkt und disjunkte Vereinigung: Kfz Kfz := FahrgestNr multiply KfzVarianten FahrgestNr IST Tuning KfzArten := { istPKW, istMotorrad } KfzVarianten := { (istPKW, p) | p element Farbe } union Farbe PKW Motorrad { (istMotorrad, m) | m element Tuning} (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 804 Ziele: Vergleichen und verstehen in der Vorlesung: Muster zur Zuordnung von Konstrukten des ER Modells und Wertebereichen: * Die Identität der Objekte in Entity-Typen bleibt nur über die Schlüsselattribute erhalten. * Nur funktionale Kardinalitäten kann man direkt als Funktions-Wertebereich ausdrücken; sonst werden Prädikate benötigt. * IST-Hierarchien sollte man schematisch wie hier in disjunkte Vereinigungen umsetzen. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.5 8.1.b Bedingungen Ein Auftrag soll von höchstens 3 Mechanikern bearbeitet werden: ER Kardinalität: [0, 3] Auftrag bearb. Mechaniker Prädikatenlogik: für alle a element Auftrag: 0 lessequal |{ (x,y) | (x,y) element bearb. logicaland x=a}| lessequal 3 Ein Auftrag soll nur dann angenommen werden, wenn für den betreffenden KfzTyp auch Mechaniker ausgebildet sind. Prädikatenlogik: für alle a element Auftrag: für alle k element Kfz: für alle t element KfzTyp: ((a, k) element betrifft logicaland (k, t) element hatTyp) arrowright es gibt m element Mechaniker: (m, t) element ausgebildet (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 805 Ziele: Prädikate formulieren in der Vorlesung: * Einfache Bedingungen können durch ER-Kardinalitäten spezifiziert werden. * Mit PL-Formeln kann man beliebig komplexe Bedingungen formulieren (siehe auch Mod-8.12): * Zusammenhänge über mehrere Relationen hinweg, * Bedingungen über Attributwerte. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.6 8.1.c Ablauf der Auftragsbearbeitung (DEA) * Auftrag wird erteilt, * Verfügbarkeit der Ersatzteile geprüft, erteilen * ggf. bestellt, Ersatzteile * von einem Mechaniker bearbeitet, bestellen * Kraftfahrzeug wird dem Kunden Ersatzteile ausgeliefert. aus Lager nehmen Deterministischer, endlicher Automat Ersatzteile beschreibt streng sequentielle Abfolge von Operationen annehmen Auch als Abhängigkeitsgraph interpretierbar, hier: Kante ist Operation, Knoten ist Ereignis bearbeiten ausliefern (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 806 Ziele: DEA Entwurf für Ereignisfolgen in der Vorlesung: * Erläuterungen dazu und Vergleich mit Petri-Netz-Modell * Hier nur Bearbeitung aus der Sicht eines Auftrages modelliert. * Verzahnte Aktionsfolgen (mehrere Aufträge, mehrere Bearbeiter) nicht modellierbar. * Keine Parameter an den Aktionen (z. B. Anzahl der Ersatzteile). * Als Abhängigkeitsgraph interpretieren. * Duales Modell dazu angeben (Knoten = Operation, Kante = Vorbedingung). nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.7 1.c Ablauf der Auftragsbearbeitung (Petri-Netz) Petri-Netz modelliert nebenläufige Abläufe Durchlauf mehrerer Aufträge Ersatzteile bestellen Auftragseingang empfangen erteilt vorhanden nicht bestellen bearbeiten bearbeiten Mechaniker frei konkurrieren um Aufträge: frei Mechaniker 1 Mechaniker 2 ausliefern (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 807 Ziele: Modellierung mit Petri-Netzen in der Vorlesung: Erläuterungen zu typischen Netz-Komponenten: * Erzeugung von Marken (Aufträgen), * Markensenke (nimmt Aufträge aus dem System), * nicht-deterministische Verzweigung (Ersatzteile), * konkurrierende Bearbeitung (durch Mechaniker). nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.1 -------------------------------------------------------------------------------- Mod-8.8 Fallstudie 2: Monopoly-Spiel Wir modellieren Struktur und Ablauf des Monopoly-Spiels. Ziel: Spielregeln präzisieren und formalisieren Teilaufgaben: 1. Informationen und Zusammenhänge 2. Bedingungen und Regeln 3. Spielabläufe (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 808 Ziele: Spiel mit komplexen Strukturen und Regeln in der Vorlesung: Erläuterungen dazu nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-7.9 Kurzbeschreibung der Informationsstruktur 1. Spieler: hat einen Namen, steht auf einem Spielfeld, hat Vermögen, besitzt Immobilien 2. Feld: hat Nummer und Namen, ist entweder ein Aktionsfeld oder eine Immobilie 3. Immobilie: hat einen Preis und kostet Miete, ist entweder eine Straße oder ein Infrastrukturobjekt 4. Straße: hat Preise und Anzahl für Häuser und Hotels sowie Funktion zur Berechnung der Miete 5. Infrastrukturobjekt: hat Konzerngröße und eine Funktion zur Berechnung der Miete 6. Aktionsfeld: fordert auf zum Bezahlen oder Kassieren eines Betrages oder zum Setzen auf ein Feld 7. Straßengruppe: 2 oder 3 Straßen werden zu einer Gruppe mit gleicher Farbe zusammengefasst (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 809 Ziele: Gegenstandsbereich kennenlernen in der Vorlesung: Erläuterungen dazu nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-8.10 8.2.a Informationsstruktur als ER-Modell FeldNr FeldName SpName Vermögen [1, 1] Felder Stand- Spieler ort Ziel besitzt IST [0, 1] Preis Aktionen Immobilien Miete [1, 1] IST IST Setzen Straße InfraStrObj MietFkt Konzern- Bezahlen HausPreis [1, 1] größe Betrag HotelPreis gehört HausAnz zu [2, 3] Kassieren HotelAnz Straßengrp Farbe Betrag MietFkt (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 810 Ziele: ER-Methode anwenden in der Vorlesung: Erläuterungen dazu: * Entity-Typen vorgegeben, * alle in Relationen beteiligten Mengen müssen durch einen Entity-Typ modelliert werden; * 2-stufige IST-Hierarchie; * Schlüsselattribut nur zur Hierarchiewurzel; * Kardinalitäten sind hier plausibel; * Entwurf prüfen durch Angabe von konkreten Ausprägungen. * Miete und Mietfunktion mit ihren Parametern ist redundant; * Relation gehörtZu eingeführt, damit die Anzahl von Gruppen ([2, 3]) eingeschränkt werden kann; wäre nicht möglich, wenn Farbe einfach ein Attribut von Straße wäre. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-8.11 Einige Wertebereiche zur Informationsstruktur FeldNr := { 1, 2, ..., 40 } FeldArten := { istAktion, istImmobilie } Felder := FeldNr multiply FeldName multiply FeldVarianten FeldVarianten := { (istAktion, a) | a element Aktionen} union { (istImmobilie, i) | i element Immobilien } AktionsArten := { istSetzen, istBezahlen, istKassieren } Aktionen := { (istSetzen) } union { (istBezahlen, b) | b element Betrag } union { (istKassieren, b) | b element Betrag } Betrag := Iota N0 ImmobilienArten := { istStraße, istInfraStrObj } Immobilien := Preis multiply Miete multiply ImmobilienVarianten ImmobilienVarianten := { (istStraße, s) | s element Straße } union { (istInfraStrObj, i) | i element InfrastrObj } Straße := HausPreis multiply HotelPreis multiply HausAnzahl multiply HotelAnzahl multiply MietFkt besitzt := FeldNr minus > SpName Beispiele für Felder: (1, Los, (istAktion, (istKassieren, 4000))) element Felder (2, BadStraße, (istImmobilie, 1200, 40, (istStraße, 1000, 1000, 0, 0, MFkt2))) element Felder (6, Südbahnhof, (istImmobilie, 4000, 1000, (istInfraStrObj, 2, MFktBhf))) element Felder (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 811 Ziele: Wertebereiche systematisch entwickeln in der Vorlesung: Erläuterungen dazu: * Bei komplexen Zusammenhängen wie hier ist es hilfreich, vorher ein ER-Modell zu erstellen, dann die Schemata aus Mod-8.4 anwenden; * IST-Hierarchie schematisch modellieren; * Entwurf prüfen durch Angabe von Werten aus den Wertebereichen. * Relationen undFunktionenüberIndexmengen (Schlüsselattribute)reichenausund sind übersichtlicher alssolche über die ganzen Tupelbereiche der beteiligten Objekte. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-8.12 8.2.b Bedingungen Die Miete einer Straße steigt je intensiver sie bebaut ist; die Miete eines Infrastrukturobjektes steigt je mehr gleichartige Objekte ein Spieler besitzt. für alle x element Immobilien: für alle p für alle m für alle hap für alle hop für alle haanz für alle hoanz für alle n für alle g [ x = (p, m, (istStraße, hap, hop, haanz, hoanz, f)) arrowright m = f (haanz, hoanz) ] logicaland [ x = (p, m, (istInfraStrObj, n, g)) arrowright m = g (n) ] Eine Straße darf nur dann bebaut werden, wenn der Besitzer alle Straßen dieser Gruppe besitzt. für alle x element Felder: für alle nr für alle name für alle p für alle m für alle hap für alle hop für alle haanz für alle hoanz für alle h x = (nr, name, (istImmobilie, p, m, (istStraße, hap, hop, haanz, hoanz, h))) arrowright (haanz + hoanz > 0 logicaland es gibt f element Farbe: (x, f) element gehörtZu logicaland es gibt s element Spieler: (s, x) element besitzt arrowright für alle g element Felder: (g, f) element gehörtZu arrowright (s, g) element besitzt (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 812 Ziele: PL-Formeln entwerfen in der Vorlesung: PL-Formeln werden benötigt, um * Bedingungen über Attributwerte, * Zusammenhänge über mehrere Relationen hinweg * Exakte PL-Notation: Alle Werte der Tupel müssen durch Allquantoren gebunden sein - auch die für die Formel irrelevanten. (Wird in informeller Notation meist weggelassen.) zu spezifizieren. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-8.13 2.c Aktionsfolgen eines Spielers (DEA) alle anderen pleite pleite nichtsTun kassieren kaufen bezahlen würfeln aufImmob. aufAktion. setzen bezahlen kassieren (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 813 Ziele: Aktionsfolgen mit DEA modellieren in der Vorlesung: DEA liefert ein grobes Modell aus eingeschräkter Sicht: * Nur die Sicht eines Spielers - nicht verzahnte Aktionen mehrerer Spieler; * Aktionen ohne Parameter (z. B. gewürfelte Zahl, gezahlter Preis). nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 -------------------------------------------------------------------------------- Mod-8.14 8.2.c Aktionsfolgen eines Spielers (Petri-Netz) kaufen alle anderen pleite aufImmob. bezahlen pleite nichtsTun würfeln aufAktion bezahlen kassieren kassieren setzen zyklischer, sequentieller Ablauf mit nicht-deterministischen Entscheidungen (Konflikt-Stellen) (c) 2008 bei Prof. Dr. Uwe Kastens -------------------------------------------------------------------------------- Vorlesung Modellierung WS 2007/2008 / Folie 814 Ziele: Aktionsfolgen mit Petri-Netz modellieren in der Vorlesung: Vergleich mit DEA in Mod-8.13: * DEA-Übergänge sind hier Transitionen. * nicht-deterministische Entscheidungen werden hier deutlich modelliert. * Auch hier gibt es keine Parameter der Aktionen. * Das Petri-Netz kann leicht erweitert werden, sodass die verzahnten Aktionsfolgen mehrerer Spieler deutlich modelliert werden. * Diese Möglichkeit von Petri-Netzen wird in dieser Version noch nicht genutzt. nachlesen: Kastens, Kleine Büning: Modellierung, Abschnitt 8.2 --------------------------------------------------------------------------------