1234567891011121314151617181920 Geoinformation3 Geoinformation III Software-Technik:...

21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Geoinformation 3 Geoinformation III Software-Technik: (fortgeschrittene) Klassendiagramme Vorlesung 6a

Transcript of 1234567891011121314151617181920 Geoinformation3 Geoinformation III Software-Technik:...

Page 1: 1234567891011121314151617181920 Geoinformation3 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

Geoinformation III

Software-Technik:

(fortgeschrittene)

Klassendiagramme

Vorlesung 6a

Page 2: 1234567891011121314151617181920 Geoinformation3 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"

Page 3: 1234567891011121314151617181920 Geoinformation3 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

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)

Page 4: 1234567891011121314151617181920 Geoinformation3 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

3

UML Klassendiagramme – Wh. aus GIS I

• Klassen mit Attributen und Methoden• Assoziationen mit Multiplizitäten• Aggregation und Komposition• Generalisierung

Page 5: 1234567891011121314151617181920 Geoinformation3 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

4

• Abstrakte Klassen• Abgeleitete Attribute und Assoziationen• Zusicherungen (Object Constraint Language)

– Invarianten– Vor- und Nachbedingungen

UML Klassendiagramme – neue Konzepte

Page 6: 1234567891011121314151617181920 Geoinformation3 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

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

Page 7: 1234567891011121314151617181920 Geoinformation3 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

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

Page 8: 1234567891011121314151617181920 Geoinformation3 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

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

Page 9: 1234567891011121314151617181920 Geoinformation3 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

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

Page 10: 1234567891011121314151617181920 Geoinformation3 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

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

Page 11: 1234567891011121314151617181920 Geoinformation3 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

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

Page 12: 1234567891011121314151617181920 Geoinformation3 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

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

Page 13: 1234567891011121314151617181920 Geoinformation3 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

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)

Page 14: 1234567891011121314151617181920 Geoinformation3 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

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

Page 15: 1234567891011121314151617181920 Geoinformation3 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

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

Page 16: 1234567891011121314151617181920 Geoinformation3 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

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

Page 17: 1234567891011121314151617181920 Geoinformation3 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

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

Page 18: 1234567891011121314151617181920 Geoinformation3 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

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

Page 19: 1234567891011121314151617181920 Geoinformation3 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

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

Page 20: 1234567891011121314151617181920 Geoinformation3 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

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

Page 21: 1234567891011121314151617181920 Geoinformation3 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

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