Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1234567891011121314151617181920 Geoinformation3 Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6a.

Ähnliche Präsentationen


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

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

2 Geoinformation3 1 "Anwendung von Methoden, Prinzipien und Techniken auf den Entwurf und die Implementierung von Programmen und Programmsystemen" engl.: "Software Engineering" Zielgruppe: Programmentwickler, Projektleiter Schwerpunkt: Objektorientierte Methoden (Werkzeug: UML - Unified Modeling Language) Anwendungsbeispiele: angelehnt an ALKIS (Amtliches Liegenschaftskataster- Informationssystem) "Software-Technik"

3 Geoinformation3 2 UML - (fortgeschrittene) statische Diagramme (Klassendiagramme) UML - dynamische Diagramme Software-Demo: CASE-Tool "Together" Korrektheit: Testen von Programmen Normen und Standards in GIS (2 Termine) Überblick über Vorlesung (6 Termine)

4 Geoinformation3 3 UML Klassendiagramme – Wh. aus GIS I Klassen mit Attributen und Methoden Assoziationen mit Multiplizitäten Aggregation und Komposition Generalisierung

5 Geoinformation3 4 Abstrakte Klassen Abgeleitete Attribute und Assoziationen Zusicherungen (Object Constraint Language) –Invarianten –Vor- und Nachbedingungen UML Klassendiagramme – neue Konzepte

6 Geoinformation3 5 UML - Klassendiagramm (Wh.) A 6x Liste + FügeEin(Objekt) + Lösche(Objekt) + Suche(Objekt): boolean + Länge():integer erstesElement: Element - letztesElement: Element Die Klasse Liste Klassenname Attribute Methoden Zugriff auf Klasse nur über Methoden (Geheimnisprinzip) Abstrakter Datentyp

7 Geoinformation3 6 Beziehungen in UML (Wh.) A 7x Name Multiplizität jedes Grundstück hat mindestens drei Kanten jede Kante begrenzt genau zwei Grundstücke

8 Geoinformation3 7 Mögliche Multiplizitäten ( Wh.) 1genau eins 0..1null oder eins 0..4zwischen null und vier 3,7drei oder sieben 0..*größer oder gleich null (Standard) *dto. 1..*größer oder gleich eins 0..3, 7, 9..*

9 Geoinformation3 8 Aggregation und Komposition (Wh.) Ganzes Teil Ganzes Teil n 1 Aggregation: eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile- Hierarchie darstellen Komposition: eine strenge Form der Aggregation, bei der die Teile vom Ganzen existenzabhängig sind

10 Geoinformation3 Generalisierung und Spezialisierung (Wh.) Die GeomFigur ist ein allgemeineres Konzept als Dreieck, Kreis oder Rechteck GeomFigur ist Oberklasse, Dreieck, Kreis und Rechteck sind Unterklassen Unterklassen erben die Attribute der Oberklasse und fügen ggf. weitere hinzu 9 GeomFigur DreieckKreisRechteck

11 Geoinformation3 10 Und was ist mit Methoden? (Wh.) A 4x GeomFigur +anzeigen() +entfernen() +verschieben() -Mittelpunkt : Punkt -sichtbar : Boolean Dreieck +anzeigen() +entfernen() -a : Zahl -b : Zahl -c : Zahl Kreis anzeigen() entfernen() -radius : Zahl Rechteck anzeigen() entfernen() -a : Zahl -b : Zahl Methoden werden vererbt oder überschrieben

12 Geoinformation3 11 Generalisierung: Probleme A 3x eine Seitenlänge zuviel Redundanz Gefahr: Inkonsistenzen (z.B. a=2, b=5) Fehlerhafte Modellierung z.B. Anzahl der Quadrate umfasst Rechtecke Rechteck ist kein Quadrat Rechteck a: double b: double Quadrat {a = b} 1. Alternative Rechteck a: double Quadrat b: double 2. Alternative

13 Geoinformation Rekursive Aggregation (Beispiel ALKIS) A 1x Raumbezogenes Objekt abstract Raumbezogenes Elementarobjekt Raumbezogenes zusammengesetztes Objekt 1.. * 1 Raumbezogenes Elementarobjekt: REO Zusammengesetztes Objekt: ZUSO abstrakte Klasse: es werden keine Instanzen erzeugt (nur Instanzen der Unterklassen)

14 Geoinformation3 13 Klassendiagramm:Instanzendiagramm: REO ZUSO Raum- bezogenes Objekt abstract Raum- bezogenes Elementar- objekt Raum- bezogenes zusammen- gesetztes Objekt 1.. * 0..1 NRW Reg. Bez. Ddorf Reg. Bez. Köln Kreis Rhein - Sieg Kreis Euskirchen Flurst. 12 Flurst. 444Flurst. 21 Flurst. 1

15 Geoinformation Abgeleitete Attribute und Assoziationen A 7x Polygon Staat / Flächeninhalt Bundesland / Flächeninhalt Gemeinde / Flächeninhalt / besteht aus besteht aus Repräsentation Abgeleitetes Attribut: Ermittlung aus Polygon Abgeleitetes Attribut: Ermittlung aus Flächeninhalten der Teile Abgeleitete Assoziation/Aggregation: Ermittlung aus beiden Aggregationen Flächeninhalt wird aus Polygon ermittelt Notiz

16 Geoinformation3 15 Syntax: / vor Namen des Attributs bzw. der Assoziation Zwei Möglichkeiten der Umsetzung a)Ableitung bei jedem Zugriff Informatik-Begriff: "Virtuelle Sicht" Konsistenz gewährleistet Effizienzprobleme b)Ableitung und Speicherung Informatik-Begriff: "Materialisierte Sicht" Konsistenz? UML macht keine Aussage, ob a) oder b) verwendet wird Abgeleitete Attribute und Assoziationen

17 Geoinformation Einschränkungen A 6x Stadt Punkt Polygon {or} Raumbezug2 Raumbezug1 Staat liegt in Hauptstadt von {subset} 1..* Stützpunkt {ordered} Hauptstadt muss im Staat liegen Entweder Punkt oder Polygon, nicht beides zugleich (exklusives oder) Liste statt Menge 3..*

18 Geoinformation3 17 Zweck der bisher vorgestellten Konzepte (Multiplizitäten, abgeleiteten Attribute/Assoziationen, Einschränkungen): Zustände, die in der realen Welt nicht vorkommen, sollen im Modell ebenfalls nicht auftreten Korrektheit der Modelle / der Software Viele Realwelteigenschaften lassen sich mit bisherigen Mitteln jedoch nicht darstellen Ansatz im UML: Formulierung von Invarianten Zwischenresümé: Korrektheit

19 Geoinformation Invarianten Ziel: Anreicherung von UML, um in der Realität nicht mögliche Zustände auszuschließen Invarianten sind boolesche Ausdrücke (wahr/falsch) Invarianten müssen immer gelten (immer den Wert "wahr" ergeben) Andere Begriffe: Integritätsbedingungen, Konsistenzbedingungen, engl. Constraints Formalismus zur Formulierung in UML: OCL (Object Constraint Language) Beispiele....

20 Geoinformation3 19 OCL: Einfache Invarianten - Beispiel I A 4x context Auftrag inv: Wert > 0 context Kunde inv: Alter >= 12 context Auftrag inv: Ware = "Waffen" implies Auftragnehmer.vorbestraft = false Auftrag Ware: String Wert: int Kunde Alter: int Bonität: String vorbestraft: bool 0..* 1 Auftragnehmer and Auftragnehmer.Alter >= 18

21 Geoinformation3 20 OCL: Invarianten I Invariante bezieht sich auf eine Klasse –Bsp.: context Auftrag inv: Invariante kann Bedingung an Attribute der Klasse stellen (z.B. Wert > 0, Alter > 12) Invariante kann auch Bedingung an Attribute anderer Klassen stellen, die mir der Klasse eindeutig in Beziehung stehen (Multiplizität 1) –Syntax: Beziehungsname.Attributname, Bsp: Auftragnehmer.vorbestraft = false Kombination der einzelnen Bedingungen mit booleschen Operatoren and, or, not, implies Notation der Invariante: in Notiz an Klasse


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

Ähnliche Präsentationen


Google-Anzeigen