Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Geoinformation3 123456789101112131415161718 Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6b.

Ähnliche Präsentationen


Präsentation zum Thema: "Geoinformation3 123456789101112131415161718 Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6b."—  Präsentation transkript:

1 Geoinformation Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6b

2 Geoinformation3 1 OCL: Invarianten - Beispiel II context Auftrag inv: Ware = "Waffen" implies Auftragnehmer -> forAll( k | k.vorbestraft = false and k.Alter >= 18) Auftrag Ware: String Wert: int Kunde Alter: int Bonität: String vorbestraft: bool 0..* 1..* Auftragnehmer context Auftrag inv: Wert > 1000 implies Auftragnehmer -> exists( k | k.Bonität = "gut") Menge von Kunden A 3x

3 Geoinformation3 2 Invarianten können sich auch auf eine Klasse beziehen, die mit einer mengenwertigen Assoziation zu der Klasse in Verbindung steht –Multiplizität nicht 1, z.B. * oder 1..* Bedingung: –Assoziationsname -> forAll(B) –Assoziationsname -> exists(B) B ist Bedingung an die Klasse, zu der die Assoziation besteht –forAll: Bedingung B muss für alle Objekte gelten –exists: es reicht aus, wenn Bedingung B für ein Objekt gilt OCL: Invarianten II

4 Geoinformation3 3 Invarianten für Landkarten: Beispiel III Landkarten-Axiom: Jede Masche wird von mindestens 3 Kanten begrenzt. Masche Kante wird begrenzt von 2 3..* Wie sieht die Darstellung im UML-Diagramm aus? Idee A 2x

5 Geoinformation3 4 Invarianten für Landkarten: Beispiel III Landkarten-Axiom: Jede Masche wird von mindestens 3 gerichteten Kanten begrenzt. Masche Kante auf linker Seite auf rechter Seite * Hmm? A 7x

6 Geoinformation3 0..* 4 Invarianten für Landkarten: Beispiel III Landkarten-Axiom: Jede Masche wird von mindestens 3 gerichteten Kanten begrenzt. Masche Kante auf linker Seite auf rechter Seite 1 1 Hmm? context Masche inv: auf_linker_Seite -> size + auf_rechter_Seite -> size >= 3 size liefert Anzahl der Objekte A 7x

7 Geoinformation3 5 Invarianten in ALKIS: Beispiel IV A 1x zwei Flurstücke dürfen sich nicht überlagern context Flurstueck inv: Flurstueck.allInstances->forAll (p1, p2 | p1.ID != p2.ID implies p1.intersects(p2) = false) Flurstueck ID: int..... intersects(Fläche): boolean..... Alle Instanzen der Klasse "Flurstueck"

8 Geoinformation3 6 OCL-Syntax: Invarianten context inv:

9 Geoinformation3 7 OCL-Syntax (vereinfacht) ist –ein boolescher Operator (=,>,<,..) angewendet auf zwei arithmetischen Ausdrücke (Konstanten/Attribute/Methoden, die integer- oder real-Wert zurückliefern; auch mit Navigation, wenn eindeutig) –ein boolesches Attribut/Methode (auch mit Navigation, wenn eindeutig) –eine mengenwertige Navigation mit forAll( ) exists( ) –.allInstances( ) Kombination mehrerer mit not, and, or, implies

10 Geoinformation3 8 Operatoren für Mengen (Collections) OperatorErgebnis-typBeschreibung sizeintegerAnzahl d. Elemente isEmptybooleanwahr, wenn Menge leer ist forAll(Bed.)booleanwahr, wenn Bed. für jedes Element gilt exists(Bed.)booleanwahr, wenn Bed. für mind. ein Element gilt select(Bed.)MengeTeilmenge, für die Bed. gilt includesAll (Menge2) booleanwahr, wenn alle Elemente der Menge Menge2 enthalten sind

11 Geoinformation3 Ariane 5 Schaden: ca. 500 Mio. $ Ursache: Software-Fehler –Wiederverwendung eines Moduls von Ariane 4 –Modul war korrekt für Ariane 4 –nicht jedoch für Ariane 5, da Neigungswinkel größer 9 Start am 4. Juni Sekunden später....

12 Geoinformation3 10 Problem bei Ariane 5 Eine Methode wurde verwendet, ohne deren Voraussetzungen zu beachten Lösung in UML: Explizite Formulierung der Vor- und Nachbedingungen von Methoden Formulierung: ebenfalls mit OCL Beispiel...

13 Geoinformation Vor- und Nachbedingungen Bsp.: Methode zur Verschmelzung zweier Flurstücke: context Flurstück::verschmelze_mit(f: Flurstück) pre : Eigentümer = f.Eigentümer post : Fläche = + f.Fläche Vorbedingung (pre) muss vor Ausführung der Methode gelten Nachbedingung (post) muss nach Ausführung der Methode gelten Wert des Attributs Fläche vor dem Aufruf der Methode

14 Geoinformation3 12 "Programmieren durch Vertrag" Beteiligte: –Klasse: bietet Methode an –Kunde: nutzt Methode Vertragspflichten des Kunden: –vor Ausführung der Methode gilt die Vorbedingung Vertragspflichten der Klasse: –wenn Methode bei gültiger Vorbedingung aufgerufen wurde, so gilt nach Ausführung die Nachbedingung Klare, exakte Verteilung von Verantwortlichkeiten Keine redundanten Prüfungen (vermindert Komplexität des Programmcodes)

15 Geoinformation3 13 Zusicherungen Oberbegriff für Invarianten und Vor-/ Nachbedingungen Formulierung in OCL Invarianten: gelten jederzeit für eine Klasse Vor-/Nachbedingungen: gelten für eine Methode –Vorbedingung muss vor dem Aufruf gelten –Nachbedingung gilt nach dem Aufruf Invarianten der Klasse ergänzen (implizit) die Vor- und Nachbedingungen der entsprechenden Methoden

16 Geoinformation3 14 Zurück zu Ariane 5 Start am 4. Juni Sekunden später.... Vermeidung des Unfalls: explizite Spezifikation der Vorbedingung des wiederverwendeten Moduls: pre: Neigungswinkel <= maximaler_Neigungswinkel

17 Geoinformation3 15 abstrakte Klassen rekursive Aggregation abgeleitete Attribute und Assoziationen Einschränkungen Zusicherungen –Invarianten –Vor- und Nachbedingungen Object Constraint Language OCL Zusammenfassung: neue UML-Konzepte

18 Geoinformation3 16 Vielen Dank für die Aufmerksamkeit. Fragen?

19 Geoinformation3 18 Übungsaufgabe 1 Flurstück Nutzung Eigentümer Flächeninhalt Formuliert OCL-Ausdrücke für folgende Bedingungen: 1.Der Flächeninhalt darf nicht negativ oder Null sein 2.Straßen (Nutzung=Verkehr) müssen der Gemeinde gehören

20 Geoinformation3 18 Übungsaufgabe 2 Flurstück Nutzung Flächeninhalt Formuliert OCL-Ausdrücke für folgende Bedingungen: 1.Straßen (Nutzung=Verkehr) müssen der Gemeinde gehören 2.Baugrundstücke (Nutzung=Wohnen) müssen an einer Straße (Nutzung=Verkehr) liegen Eigentümer Name 0.. *benachbart_zu 0.. * gehört 1.. * 0.. *

21 Geoinformation3 18 Übungsaufgabe 3 Flurstück Nutzung Flächeninhalt Formuliert OCL-Ausdrücke für folgende Bedingungen: 1.Flurstücke mit Gebäuden müssen an einer Straße (Nutzung=Verkehr) liegen Gebäude Name 0.. *benachbart_zu 0.. * liegt_auf 0.. * 1

22 Geoinformation3 18 Übungsaufgabe 4 Flurstück Nutzung Flächeninhalt Formuliert OCL-Ausdrücke für folgende Bedingungen: 1.Flurstücke mit Gebäuden und einer Fläche von mind. 500 m² müssen an einer Straße (Nutzung=Verkehr) liegen Gebäude Name 0.. *benachbart_zu 0.. * liegt_auf 0.. * 1

23 Geoinformation3 Raum- bezogenes Elementar- objekt (REO) 0..* Repräsen- tation 17 Übungsaufgabe 5 Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) 0.. * besteht_aus Stellen Sie im nebenstehenden UML- Diagramm durch OCL-Ausdrücke sicher, dass ein ZUSO entweder nur durch REOs repräsentiert wird (mindestens eines) oder nur aus ZUSOs (mindestens einem) besteht. Nicht passieren darf also, dass ein ZUSO aus gar nichts besteht, oder dass ein ZUSO aus REO und ZUSO besteht.

24 Geoinformation3 18 Übungsaufgabe 5Instanzendiagramm Raum- bezogenes Elementar- objekt (REO) 0..* Repräsen- tation Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) 0.. * besteht_aus REO ZUSO NRW Reg. Bez. Ddorf Reg. Bez. Köln Kreis Rhein - Sieg Kreis Euskirchen Flurst. 12 Flurst. 444Flurst. 21 Flurst. 1


Herunterladen ppt "Geoinformation3 123456789101112131415161718 Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6b."

Ähnliche Präsentationen


Google-Anzeigen