Software-Technik: (fortgeschrittene) Klassendiagramme

Slides:



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

der Universität Oldenburg
Rollenbasierter Entwurf am Beispiel eines benutzeradaptierbaren Hyperbooks Institut für Informatik Rechnergestützte Wissensverarbeitung Universität Hannover.
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Kapitel 4 Datenstrukturen
Anwendungsfalldiagramm
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Java: Grundlagen der Sprache
Java: Grundlagen der Objektorientierung
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Polymorphie (Vielgestaltigkeit)
Objektorientierte Konzepte und Notation in UML
Übung Datenbanksysteme UML
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
3. Klassendiagramme in Java implementieren
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
UML-Klassendiagramm: Assoziationen (1)
UML Begleitdokumentation des Projekts
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
Entwurfs- und Implementationsdiagramme
Objektorientiertes Programmieren
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 12 WS 2000/2001 Gerhard Gröger Modellierung mit Geodatabases.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Software-Technik: (fortgeschrittene) Klassendiagramme
Datenbanksysteme für Hörer anderer Fachrichtungen
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
Programmiervorkurs WS 2014/15 Instanzmethoden
Korrektheit von Programmen – Testen
Normen und Standards in GIS
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Geoinformation I Lutz Plümer
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Java-Kurs Übung Besprechung der Hausaufgabe
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Software-Demo: CASE-Tool „Together“
Datenaustausch und Interoperabilität
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Ableitung UML  XML Schema
Sichtbarkeit einschränken
UML-Klassendiagramm: Klassen
Tutorium Software-Engineering SS14 Florian Manghofer.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
OCL – Object Constraint Language
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Einführung in die Programmierung mit Java
1. Die rekursive Datenstruktur Liste 1
 Präsentation transkript:

Software-Technik: (fortgeschrittene) Klassendiagramme 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" Zielgruppe: Programmentwickler, Projektleiter Schwerpunkt: Objektorientierte Methoden (Werkzeug: UML - Unified Modeling Language) Anwendungsbeispiele: angelehnt an ALKIS (Amtliches Liegenschaftskataster-Informationssystem)

Ü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)

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

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

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

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

Mögliche Multiplizitäten ( Wh.) 7 Mögliche Multiplizitäten ( Wh.) 1 genau eins 0..1 null oder eins 0..4 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..*

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

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

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

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

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

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

/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

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

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

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

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

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

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