Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software-Technik: (fortgeschrittene) Klassendiagramme

Ähnliche Präsentationen


Präsentation zum Thema: "Software-Technik: (fortgeschrittene) Klassendiagramme"—  Präsentation transkript:

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

2 1 "Software-Technik" "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)

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

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

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

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

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

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

9 Aggregation und Komposition (Wh.)
8 Aggregation und Komposition (Wh.) 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 Ganzes Ganzes 1 n Teil Teil

10 Generalisierung und Spezialisierung (Wh.)
9 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 GeomFigur Dreieck Kreis Rechteck

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

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

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

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

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

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

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

18 Zwischenresümé: Korrektheit
17 Zwischenresümé: Korrektheit 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

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

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

21 OCL: Invarianten I Invariante bezieht sich auf eine Klasse
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 "Software-Technik: (fortgeschrittene) Klassendiagramme"

Ähnliche Präsentationen


Google-Anzeigen