Einführung in UML

Transcription

Einführung in UML
Vorlesung GIS
Einführung in UML
Stephan Mäs
28. Mai 2009
Überblick
1. Was ist UML???
• Was ist ein Modell???
• UML Geschichte,...
2. Diagrammtypen
• Schwerpunkt: Klassendiagramme
3. UML Software
Arbeitsgemeinschaft GIS
Stephan Mäs
2
Was ist ein Modell???
1. Abbildung:
Ein Modell ist immer ein Abbild von etwas, eine Repräsentation natürlicher oder
künstlicher Originale, die selbst wieder Modelle sein können.
2. Verkürzung / Vereinfachung:
Ein Modell erfasst nicht alle Attribute des Originals, sondern nur diejenigen, die dem
Modellschaffer bzw. Modellnutzer relevant erscheinen.
3. Pragmatismus:
Pragmatismus bedeutet soviel wie Orientierung am Nützlichen. Ein Modell ist einem
Original nicht von sich aus zugeordnet. Die Zuordnung wird durch die Fragen Für wen?,
Warum? und Wozu? relativiert. Ein Modell wird vom Modellschaffer bzw. Modellnutzer
innerhalb einer bestimmten Zeitspanne und zu einem bestimmten Zweck für ein Original
eingesetzt. Das Modell wird somit interpretiert.
Ein Modell zeichnet sich also durch Abstraktion aus, also die bewusste
Vernachlässigung bestimmter Merkmale, um die für den Modellierer oder den
Modellierungszweck wesentlichen Modelleigenschaften hervorzuheben.
http://de.wikipedia.org/wiki
Arbeitsgemeinschaft GIS
Stephan Mäs
3
Modelle in der Geoinformatik
Konzeptionelle
Modelle: stellen (in der Regel permanent) gespeicherte Daten, ihre
innere Struktur und ihre Beziehungen untereinander dar. Die
Beschreibung der Daten erfolgt durch eine formale
Darstellung (z.B. einem Diagramm) und zusätzlicher
textueller Beschreibung.
Es sind alle relevanten Daten der Aufgabenstellung
vollständig und widerspruchsfrei darzustellen.
• Unterstützen Kommunikation zwischen Entwicklern und
Anwendern
• Bilden Grundlage für den Entwurf von Datenbanken
http://de.wikipedia.org/wiki
Arbeitsgemeinschaft GIS
Stephan Mäs
4
Was ist UML???
• standardisierte graphische Sprache zur
- Spezifikation,
- Visualisierung,
- Konstruktion
- und Dokumentation objektorientierter Modelle
• Ist eine Notation: ein Ausdruck zur verkürzten Darstellung einer
Klasse und/oder von Relationen zwischen Klassen in
Klassifikationssystemen
-> Notationssysteme liefern Zeichenvorrat aus
Symbolen Zahlen, Sonderzeichen und Buchstaben
Arbeitsgemeinschaft GIS
Stephan Mäs
5
UML - Geschichte
• Erste OO-Modellierungssprachen bereits Mitte der 70er
• Bis 1994 gab es ca. 50 Modellierungssprachen
• Von der Object Management Group (OMG)
als Standard herausgegeben
• Entwickelt von Grady Boch, Ivar Jacobsen und Jim Rumbaugh von
RATIONAL ROSE SOFTWARE
• Beteiligte Firmen: Microsoft, HP, IBM, Oracle....
• Versionen:
- November 1997 UML 1.1
- November 1999 UML 1.3
- Inzwischen 2.2 (seit Feb. 2009)
Arbeitsgemeinschaft GIS
Stephan Mäs
6
Diagrammtypen
1.
2.
3.
4.
5.
6.
7.
8.
Class Diagram - Klassendiagramm
Use Case Diagram - Anwendungsfalldiagramm
Sequenz Diagram – Sequenzdiagramm
Statechart Diagram - Zustandsdiagramm
Activity Diagram - Aktivitätsdiagramm
Collaboration Diagram – Kollaborationsdiagramm
Component Diagram – Komponentendiagramm
Deployment Diagram - Verteilungsdiagramm
Arbeitsgemeinschaft GIS
Stephan Mäs
7
1. Class Diagram - Klassendiagramm
Klasse
Definition: Eine Klasse ist eine Menge von Objekten, in der die
Eigenschaften (Attribute), Operationen/Methoden und die
Semantik der Objekte definiert werden. Alle Objekte einer
Klasse entsprechen dieser Festlegung.
Beschreibung: Eine Klasse ist eine Zusammenfassung gleichartiger
Objekte. Die Gleichartigkeit bezieht sich auf Eigenschaften
(Attribute) und/oder auf Fähigkeiten (Operationen /
Methoden) der Objekte einer Klasse.....
Arbeitsgemeinschaft GIS
Stephan Mäs
8
1. Class Diagram - Klassendiagramm
Notation:
Abstrakte Klasse: • Grundlage für weiter Unterklassen
• bewußt unvollständig gehalten
• hat keine konkreten Objekte / Instanzen
Pakete: Ansammlungen von Modellelementen
mit denen das Gesamtmodell in kleine
überschaubare Einheiten untergliedert
wird.
Arbeitsgemeinschaft GIS
Stephan Mäs
9
1. Class Diagram - Klassendiagramm
Attribut
Definition: ein Datenelement, das in jedem Objekt einer Klasse
gleichermaßen enthalten ist und von jedem Objekt mit einem
individuellen Wert repräsentiert wird.
Beschreibung: Attribute sind Informationen bzw. Daten die ein Element
einer Klasse näher beschreiben. Sie werden mindestens
durch ihren Namen beschrieben, außerdem sind möglich:
Initialwert, Zusicherungen (Wertebereich, Wertemenge),
Merkmale (read only), Sichtbarkeit nach außen (public,
privat)
Attributtypen: z.B. Integer, Double, String, Boolean,
Enumerationen....
Arbeitsgemeinschaft GIS
Stephan Mäs
10
1. Class Diagram - Klassendiagramm
Methoden/ Operationen
Definition: sind Dienstleistungen, die von einem Objekt aufgerufen
werden können. Sie werden durch ihre Signatur
(Operationsname, Parameter, Rückgabewert) beschrieben.
Eine Methode ist die Implementation einer Operation. Sie
besteht aus einer Folge von Anweisungen.
Beschreibung: besteht aus Namen, evtl. Übergabeparametern (vgl.
Attribute), einem Rückgabewert und Merkmalen (z.B.
abstrakt, veraltet)
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
11
Klassen vs. Instanzen
Instanzen / Objekte
Klasse
Id: 1
Besitzer: Donald
Farbe: gelb
Id: 2
Besitzer: Speedy
Farbe: rot
Arbeitsgemeinschaft GIS
Stephan Mäs
12
1. Class Diagram - Klassendiagramm
Vererbung
Definition: ...ein Umsetzungsmechanismus für die Relation zwischen
Oberklasse und Unterklasse, wodurch Attribute und
Operationen der Oberklasse auch den Unterklassen
zugänglich werden. Generalisierung und Spezialisierung
sind Abstraktionsprinzipien zur hierarchischen Gliederung
der Semantik eines Modells.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
13
1. Class Diagram - Klassendiagramm
Beispiele: Vererbung / Generalisierung
Arbeitsgemeinschaft GIS
Stephan Mäs
14
1. Class Diagram - Klassendiagramm
Beispiele: Vererbung / Generalisierung
Arbeitsgemeinschaft GIS
Stephan Mäs
15
1. Class Diagram - Klassendiagramm
Vorsicht bei
Mehrfachvererbung !!!
• Was passiert, wenn verschiedene Oberklassen gleichnamige
Eigenschaften beinhalten, die sich natürlich unterschiedlich
verhalten können ?
• Von welcher Oberklasse soll die Unterklasse die Eigenschaften
übernehmen ?
Arbeitsgemeinschaft GIS
Stephan Mäs
16
1. Class Diagram - Klassendiagramm
Assoziation
Definition: Eine Assoziation beschreibt als Relation zwischen Klassen die
Notation:
gemeinsame Semantik und Struktur einer Menge von
Objektverbindungen. Varianten der Assoziation sind die Aggregation
und die Komposition. ....
Die Multiplizität / Cardinalität einer Assoziation gibt an, mit wieviel
Objekten der gegenüberliegenden Klasse ein Objekt assoziiert sein
kann. Ist diese Zahl variabel, wird die Bandbreite angegeben, also
Minimum und Maximum. Ist das Minimum gleich Null, so ist die
Beziehung optional. Auf jeder Seite der Assoziation können
Rollennamen vergeben werden....
Arbeitsgemeinschaft GIS
Stephan Mäs
17
1. Class Diagram - Klassendiagramm
Gerichtete Assoziation
Definition: Gerichtete Assoziationen sind Beziehungen, die nur in
eine Richtung navigierbar sind. Dargestellt wird die
Navigation durch eine offen Pfeilspitze, die die zugelassene
Navigationsrichtung angibt.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
18
1. Class Diagram - Klassendiagramm
Aggregation
Definition: Eine Aggregation ist eine Assoziation, deren beteiligte
Klassen eine Ganzes-Teile-Hierarchie darstellen.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
19
1. Class Diagram - Klassendiagramm
Komposition
Definition: Eine Komposition ist eine strenge Form der Aggregation,
bei der die Teile vom Ganzen existenzabhängig sind.
Notation:
Unterschiede
zur Aggregation: • Die Kardinalität auf der Aggregatseite kann nur 1 sein.
-> Jedes Teil ist von nur genau einem Kompositionsobjekt
abhängig.
• Die Lebenszeit der Einzelteile ist der des Ganzen
untergeordnet.
Arbeitsgemeinschaft GIS
Stephan Mäs
20
1. Class Diagram - Klassendiagramm
Annotationen / Notizen
Definition: sind Kommentare zu einem Diagramm oder zu einem
beliebigen Element in einem Diagramm, ohne semantische
Bedeutung.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
21
1. Class Diagram - Klassendiagramm
Abhängigkeiten (Dependencies)
Definition: Eine Abhängigkeit ist eine Beziehung zwischen zwei
Modellelementen, die zeigt, daß eine Änderung in dem einen
(unabhängigen) Element eine Änderung in dem anderen
(abhängigen) Element bewirkt. Die Abhängigkeit bezieht sich
dabei auf die Modellelemente selbst und nicht auf eventuelle
Instanzen dieser Elemente.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
22
1. Class Diagram - Klassendiagramm
Klasse 1
Parent
(generalized element)
Attribute
Methoden()
Package
(Paket)
Dependencies
(Abhängigkeit)
Generalization
(Vererbung)
multiplicity
Klasse 3
Klasse 2
*
0..1
Attribute
Name 1
Methoden()
Class (Klasse)
Association
(Beziehung)
Name 2
Child
(spezialized element)
Attribute
Methoden()
Role
(Rolle)
1
Aggregation
Part
(Teil)
Arbeitsgemeinschaft GIS
Stephan Mäs
23
1. Class Diagram - Klassendiagramm
Beispiel:
Arbeitsgemeinschaft GIS
Stephan Mäs
24
1. Class Diagram - Klassendiagramm
0..1
isObserved /
Observes
Bsp.: Verknüpfung von
geologischen Objekten,
Messgeräten und
Messungen
*
*
Arbeitsgemeinschaft GIS
Stephan Mäs
25
Aufgabe - Klassendiagramm
Situation:
8
10
12
Waldstraße
Arbeitsgemeinschaft GIS
Stephan Mäs
26
Aufgabe - Klassendiagramm
Identifizierung von Objektklassen
Strasse
Straße
Flurstueck
Flurstück
Gebaeude
Gebäude
8
Arbeitsgemeinschaft GIS
Stephan Mäs
27
Aufgabe - Klassendiagramm
Katasterobjekte
• Alle Objekte werden von einer
Basisklasse abgeleitet
iD: Integer
• Flächenförmige Objekte
verwenden in diesem Fall den
Datentyp GM_POLYGON des
ISO Spatial Schemas
Flaechenfoermige_Objekte
-geometrie :
GM_Polygon
Flurstueck
*
-Flurstuecksnr:String
Liegt an
Strasse
Steht auf
1
Gebaeude
-Hausnummer :String
• Die Klassen enthalten
sowohl die Attribute als
auch die Geometrie (sie
wurde von der
Vaterklasse geerbt)
-Strassenname:String
Arbeitsgemeinschaft GIS
Stephan Mäs
28
OCL for UML
Object Constraint Language:
• Textuelle Erweiterung für UML
• Beschreibt Einschränkungen und Erläuterungen zum
objektorientierten Modell
context Flight
inv: passengers->size() <= plane.numberOfSeats
Arbeitsgemeinschaft GIS
Stephan Mäs
29
2. Use Case - Anwendungsfalldiagramm
Definition: besteht aus einer Menge von Anwendungsfällen und
stellt die Beziehungen zwischen Akteuren und
Anwendungsfällen dar. Es zeigt das äußerlich erkennbare
Systemverhalten aus der Sicht eines Anwenders.
Beschreibung: beschreibt die Zusammenhänge zwischen
verschiedenen Anwendungsfällen untereinander und
zwischen Anwendungsfällen und den beteiligten Akteuren.
Es zeigt die Struktur und Zusammenhänge von
verschiedenen Geschäftsvorfällen und wie mit ihnen
verfahren wird.
Arbeitsgemeinschaft GIS
Stephan Mäs
30
2. Use Case - Anwendungsfalldiagramm
Notation: • Anwendungsfälle und Akteure durch Linien einander
zugeordnet,
• Beschreibung des Anwendungsfalls in Textform
• Hierarchische Schachtelung von Anwendungsfällen
Arbeitsgemeinschaft GIS
Stephan Mäs
31
2. Use Case - Anwendungsfalldiagramm
Arbeitsgemeinschaft GIS
Stephan Mäs
32
2. Use Case - Anwendungsfalldiagramm
Beispiel:
http://de.wikipedia.org/wiki/Unified_Modeling_Language
Arbeitsgemeinschaft GIS
Stephan Mäs
33
3. Sequenz Diagram – Sequenzdiagramm
Definition: beschreibt die zeitliche Abfolge von Interaktionen
zwischen einer Menge von Objekten innerhalb eines zeitlich
begrenzten Kontextes.
Notation:
Objekte
Nachricht mit
Argumenten
Lebenslinien
http://de.wikipedia.org/wiki/Unified_Modeling_Language
Arbeitsgemeinschaft GIS
Stephan Mäs
34
3. Sequenz Diagram – Sequenzdiagramm
Beispiel:
Arbeitsgemeinschaft GIS
Stephan Mäs
35
4. Statechart Diagram - Zustandsdiagramm
Definition: Ein Objekt kann in seinem Leben verschiedenartige
Zustände annehmen. Mit Hilfe des Zustandsdiagrammes
visualisiert man diese, sowie Funktionen, die zu
Zustandsänderungen des Objektes führen.
Beschreibung: beschreibt eine hyphotetische Maschine, die sich zu
jedem Zeitpunkt in einer Menge endlicher Zustände
befindet. Sie besteht aus:
• einem Anfangszustand
• einer endlichen Menge von Zuständen
• einer endlichen Menge von Ereignissen
• einer endlichen Anzahl von Transitionen (beschreiben
Übergang des Objektes zum nächsten Zustand)
• einem oder mehrerer Endzustände
Arbeitsgemeinschaft GIS
Stephan Mäs
36
4. Statechart Diagram - Zustandsdiagramm
Notation: Im Zustandsdiagramm werden die Zustände als
abgerundete Rechtecke verbunden durch Pfeile, auf denen
die Transitionen stehen, visualisiert. Startzustand ist ein
gefüllter Kreis, die Endzustände sind leere Kreise mit einem
kleineren gefüllten in der Mitte.
Arbeitsgemeinschaft GIS
Stephan Mäs
37
4. Statechart Diagram - Zustandsdiagramm
Beispiel „Buchzustände in der Bibliothek“:
http://de.wikipedia.org/wiki/Unified_Modeling_Language
Arbeitsgemeinschaft GIS
Stephan Mäs
38
5. Activity Diagram - Aktivitätsdiagramm
Definition: In einem Aktivitätsdiagramm werden die Objekte eines
Programmes mittels der Aktivitäten, die sie während des
Programmablaufes vollführen, beschrieben. Eine Aktivität ist
ein einzelner Schritt innerhalb eines Programmablaufes, d.h.
ein spezieller Zustand eines Modellelementes, eine interne
Aktion sowie eine oder mehrere von ihm ausgehende
Transitionen enthält. ... ein Aktivitätsdiagramm (gilt) als
Sonderform eines Zustandsdiagrammes, dessen Zustände
der Modellelemente in der Mehrzahl als Aktivitäten definiert
sind.
Arbeitsgemeinschaft GIS
Stephan Mäs
39
5. Activity Diagram - Aktivitätsdiagramm
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
40
5. Activity Diagram - Aktivitätsdiagramm
Beispiel:
Arbeitsgemeinschaft GIS
Stephan Mäs
41
5. Activity Diagram - Aktivitätsdiagramm
Beispiel „Spagetti kochen“:
http://de.wikipedia.org/wiki/Unified_Modeling_Language
Arbeitsgemeinschaft GIS
Stephan Mäs
42
6. Collaboration Diagram – Kollaborationsdiagramm
Definition: Die verschiedenen Modellelemente eines Programmes
agieren innerhalb des Programmablaufes miteinander. Um
diese Interaktionen für einen bestimmten begrenzten
Kontext, unter besonderer Beachtung der Beziehungen unter
den einzelnen Objekten und ihrer Topographie, darzustellen,
wird das Kollaborationsdiagramm (Interaktionsdiagramm)
verwendet.
Notation:
Arbeitsgemeinschaft GIS
Stephan Mäs
43
7. Component Diagram – Komponentendiagramm
Definition: Damit bei späterer Implementierung der Softwarelösung
Compiler- und Laufzeitabhängigkeiten klar sind, werden die
Zusammenhänge der einzelnen Komponenten der späteren
Softwarelösung in einem Komponentendiagramm
dargestellt.
Abhängigkeit zwischen
Komponenten
Notation:
-> Festlegung der
Compilierreihenfolge
Arbeitsgemeinschaft GIS
Stephan Mäs
44
8. Deployment Diagram - Verteilungsdiagramm
Definition: Ein Verteilungsdiagramm (Einsatzdiagramm) beschreibt,
welche Komponenten (Objekte) auf welchen Knoten
ablaufen, d.h. wie diese konfiguriert sind und welche
Abhängigkeiten bestehen.
Kommunikation zwischen
Knoten
Notation:
Knoten
Arbeitsgemeinschaft GIS
Stephan Mäs
45
Austausch von UML Diagrammen - XMI
• Zum Austausch von UML Diagrammen zwischen
verschiedenen Softwarewerkzeugen ist ein standardisiertes
Format notwendig:
XMI: XML Metadata Interchange
•
•
•
•
Object Management Group
XML basiert
Für UML Modelle und beliebige andere Metadaten
Ab UML 2.0
Arbeitsgemeinschaft GIS
Stephan Mäs
46
UML Software
http://jeckle.de/umltools.html
Was zeichnet ein gutes UML-Tool aus???
• Unterstützung möglichst aller Diagrammtypen
• Übersetzung von und nach C++, Java.....
-> Codegenerierung / Roundtrip Engineering / Reverse Engineering
• Datenbankentwicklung
• XMI Unterstützung
• Standardkonformität !!!
Arbeitsgemeinschaft GIS
Stephan Mäs
47
UML im Internet
http://www.jeckle.de
UML Spezifikationen
Tutorials
UML-Software
UML-Begriffsübersetzung
......
Wikipedia
http://ivs.cs.uni-magdeburg.de/~dumke/UML/
Arbeitsgemeinschaft GIS
Stephan Mäs
48