Software-Technik: (fortgeschrittene) Klassendiagramme

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

der Universität Oldenburg
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Klassen - Verkettete Liste -
Kardinalität von binären Beziehungen (1)
Zusammenfassung der Vorwoche
Anwendungsfalldiagramm
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Baumstrukturen Richard Göbel.
Java: Grundlagen der Objektorientierung
Boolesche Ausdrücke Ist der Rückgabewert eines Ausdrucks vom Typ boolean, so wird dieser als Boolescher Ausdruck bezeichnet (nach dem Mathematiker George.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung Foliendesign: cand. geod. Jörg Steinrücken.
Software-Technik: (fortgeschrittene) Klassendiagramme
Vorlesung Geoinformation I WS 01/02 Musterlösung für die Klausur vom
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Institut für Kartographie und Geoinformation Dipl.-Ing. J. Schmittwilken Diskrete Mathe II Übung
Geoinformation III Vorlesung 3 Quadtrees.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Schiller-Gymnasium Hof Manuel Friedrich OStR,
Programmiermethodik SS2009 © 2009 Albert Zündorf, University of Kassel 1 Gliederung 1. Einführung 2. Objektdiagramme zur Analyse von Beispielen 3. Methodenentwurf.
3. Klassendiagramme in Java implementieren
UML-Klassendiagramm: Assoziationen (1)
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
6. Vorlesung: Statische Konzepte
10. Vorlesung: Dynamische Konzepte
Diskrete Mathe 9 Vorlesung 9 SS 2001
Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 5 WS 2000/2001 Topologie, Landkarten, Datenstrukturen.
Datenstrukturen für Landkarten
Fortsetzung DTDs, UML  XML
Geoinformation I Vorlesung 8 WS 2000/2001 Graphen.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 SS 2000 Punkt-in-Polygon-Verfahren II (Trapezkarte)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Konstruktion der Voronoi-Diagramme II
Geoinformation II Vorlesung 3 SS 2001 Polygon Overlay.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
UML Modellierung des Verhaltens von Klassen und Objekten
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
7.1.9 Kardinalität von Beziehungen (1|15)
Einfache OQL-Ausdrücke (1) Literale und Objekte können direkt konstruiert werden; gültige Ausdrücke und ihre Typen sind z.B.: "Quader77": string struct(x:1.0,
CuP - Java Sechste Vorlesung Entspricht ungefähr Kapitel 3. 1 – 3
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Normen und Standards in GIS
Meta-Modell für Story-Diagramme und Expressions
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Landkarten Landkarten sind Tesselationen mit folgenden Eigenschaften:
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 4 WS 01/02 Quadtrees.
Einführung in die Programmierung mit Java
Geoinformation III Vorlesung 10c Normen und Standards.
Software-Demo: CASE-Tool „Together“
Datenaustausch und Interoperabilität
LdL am S. Roth :05: :05:44 Weitere Übungsbeispiele zur Booleschen Algebra Franz Jehle Boolesche Algebra, 4.3.
Ableitung UML  XML Schema
VRS Liniennetzplan der Bonner Innenstadt
Sichtbarkeit einschränken
UML-Klassendiagramm: Klassen
UML Klassendiagramme von Felix Bornholdt. Klassendiagramme dienen der grafischen Veranschaulichung von Klassen und deren Beziehungen untereinander.
OCL – Object Constraint Language
Vorlesung April 2000 Polygon Overlay
Lösung der Aufgabe 1: Die Erweiterung des Diagramms auf „Winged Egde“ besteht in zwei Beziehungen, nr-Kante und vl-Kante, zwischen der Klasse Kante. Jede.
Straße * besteht aus Flurstück 1 Masche 2 begrenzt 3..* Kante 2 2..* begrenzt Lösung der Aufgabe 1: Die Ergänzung (grau) des Diagramms besteht.
Punkt-in-Landkarte II
 Präsentation transkript:

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

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

2 OCL: Invarianten II 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

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

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

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

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

OCL-Syntax: Invarianten 6 OCL-Syntax: Invarianten context <Klassenname> inv: <OCL-Ausdruck>

OCL-Syntax (vereinfacht) 7 OCL-Syntax (vereinfacht) <OCL-Ausdruck> 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(<OCL-Ausdruck>) exists(<OCL-Ausdruck>) <Klassenname>.allInstances(<OCL-Ausdruck>) Kombination mehrerer <OCL-Ausdruck> mit not, and, or, implies

Operatoren für Mengen (Collections) 8 Operatoren für Mengen (Collections) Operator Ergebnis-typ Beschreibung size integer Anzahl d. Elemente isEmpty boolean wahr, wenn Menge leer ist forAll(Bed.) wahr, wenn Bed. für jedes Element gilt exists(Bed.) wahr, wenn Bed. für mind. ein Element gilt select(Bed.) Menge Teilmenge, für die Bed. gilt includesAll (Menge2) wahr, wenn alle Elemente der Menge Menge2 enthalten sind

Ariane 5 Schaden: ca. 500 Mio. $ Ursache: Software-Fehler 9 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 Start am 4. Juni 1996 40 Sekunden später....

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 ...

5. Vor- und Nachbedingungen 11 5. 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 = Fläche@pre + f.Fläche Vorbedingung (pre) muss vor Ausführung der Methode gelten Nachbedingung (post) muss nach Ausführung der Methode gelten Fläche@pre: Wert des Attributs Fläche vor dem Aufruf der Methode

"Programmieren durch Vertrag" 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)

Zusicherungen Oberbegriff für Invarianten und Vor-/ Nachbedingungen 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

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

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

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

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

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

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

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

Übungsaufgabe 5 besteht_aus 0 .. * Stellen Sie im nebenstehenden UML- 17 Übungsaufgabe 5 besteht_aus 0 .. * 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. Raum- bezogenes zusammen- gesetztes Objekt (ZUSO) 0..1 1 Repräsen- tation 0 ..* Raum- bezogenes Elementar- objekt (REO)

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