geoinformation iii
DESCRIPTION
Geoinformation III. Vorlesung 6a. Software-Technik: (fortgeschrittene) Klassendiagramme. 1. "Software-Technik". "Anwendung von Methoden, Prinzipien und Techniken auf den Entwurf und die Implementierung von Programmen und Programmsystemen" engl.: "Software Engineering" - PowerPoint PPT PresentationTRANSCRIPT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
Geoinformation III
Software-Technik:
(fortgeschrittene)
Klassendiagramme
Vorlesung 6a
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
3
UML Klassendiagramme – Wh. aus GIS I
• Klassen mit Attributen und Methoden• Assoziationen mit Multiplizitäten• Aggregation und Komposition• Generalisierung
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
4
• Abstrakte Klassen• Abgeleitete Attribute und Assoziationen• Zusicherungen (Object Constraint Language)
– Invarianten– Vor- und Nachbedingungen
UML Klassendiagramme – neue Konzepte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
KanteGrundstück
+getFläche() : Zahl+getBesitzer() : Person
-Besitzer : Person2
3..*
begrenzt
6
Beziehungen in UML (Wh.)
A 7x
Name
Multiplizität
• jedes Grundstück hat mindestens drei Kanten
• jede Kante begrenzt genau zwei Grundstücke
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
7
Mögliche Multiplizitäten ( Wh.)
1 genau eins0..1 null oder eins0..4 zwischen null und vier3,7 drei oder sieben0..* größer oder gleich null (Standard)* dto.1..* größer oder gleich eins0..3, 7, 9..*
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
Dreieck Kreis Rechteck
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
11
Generalisierung: Probleme
A 3x
• eine Seitenlänge zuviel
Redundanz• Gefahr: Inkonsistenzen
(z.B. a=2, b=5)
• Fehlerhafte Modellierungz.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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
12
1. Rekursive Aggregation (Beispiel ALKIS)
A 1x
Raumbezogenes Objekt
abstract
Raumbezogenes Elementarobjekt
Raumbezogenes zusammengesetztes
Objekt
1 .. *
1
Raumbezogenes Elementarobjekt: REOZusammengesetztes Objekt: ZUSO
abstrakte Klasse:es werden keine
Instanzen erzeugt (nur Instanzen der
Unterklassen)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
13
Klassendiagramm: Instanzendiagramm:
REO
ZUSORaum-bezogenes
Objekt
abstract
Raum-bezogenes Elementar-
objekt
Raum-bezogenes zusammen-gesetztes
Objekt
1 .. *
0..1
NRW
Reg. Bez.D‘dorf
Reg. Bez.Köln
Kreis Rhein - Sieg
Kreis Euskirchen
Flurst. 12 Flurst. 444Flurst. 21Flurst. 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
14
2. Abgeleitete Attribute und Assoziationen
A 7x
Polygon
Staat
/Flächeninhalt
Bundesland
/Flächeninhalt
Gemeinde
/Flächeninhalt
/besteht aus
besteht aus
besteht aus
Repräsentation
Abgeleitetes Attribut: Ermittlung aus
Polygon
Abgeleitetes Attribut:Ermittlung aus
Flächeninhalten der Teile
Abgeleitetes Attribut:Ermittlung aus
Flächeninhalten der Teile
Abgeleitete Assoziation/Aggregation:
Ermittlung aus beiden Aggregationen
Flächeninhalt wird aus Polygon
ermittelt
Notiz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
16
3. Einschränkungen
A 6x
Stadt
Punkt Polygon
{or}
Raumbezug2Ra
umbe
zug1
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..*
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
18
4. 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 ....
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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: StringWert: int
Kunde
Alter: intBonität: Stringvorbestraft: bool
0..* 1
Auftragnehmer
and Auftragnehmer.Alter >= 18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3
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