1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling...

24
1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial basiert auf einem Internet-Tutorial von Prof. Dr.-Ing. R. Dumke an der Universität Magdeburg, es ist zu finden unter der URL http://www-ivs.cs.uni-magdeburg.de/~dumke/UML

Transcript of 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling...

Page 1: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

1

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

UMLUnified Modelling Language

Dipl.-Inform. Christian Fuß

Dieses Tutorial basiert auf einem Internet-Tutorial von Prof. Dr.-Ing. R. Dumke

an der Universität Magdeburg, es ist zu finden unter der URLhttp://www-ivs.cs.uni-magdeburg.de/~dumke/UML

Page 2: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

2

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Einführung

• UML ist eine Sammlung von Diagrammsprachen für den objektorientierten Entwurf

• Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen

• Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme

• OMG Standard seit 1998, derzeit aktuell UML 2• Entwickelt von Grady Boch, Ivar Jacobsen und

Jim Rumbaugh

Object-OrientationDefining abstractions of real-world entities known as objects, which contain both data and procedures. Key characteristics of object-oriented systems are encapsulation, inheritance and polymorphism.

Page 3: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

3

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Überblick

UML-Diagramme

Strukturdiagramme

Klassendiagramm Objektdiagramm

Kompositions-strukturdiagramm

Komponenten-diagramm

Paketdiagramm

Einsatzdiagramm

Verhaltensdiagramme

Interaktionsdiagramme

Use-Case-Diagramm

State-Chart-Diagramm

Aktivitätsdiagramm

SequenzdiagrammInteraktionsüber-sichtsdiagramm

Kommunikations-diagramm

Timing-Diagramm

Page 4: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

4

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Klassen

• Klasse ist Konstruktionsbeschreibung für Objekte– Attribute– Operationen (Methode=Implementierung der Operation)

• Abstrakte Klassen– Grundlage für Unterklassen – nicht instanzierbar

• Parametrisierbare Klassen– Schablone zur Erzeugung von Klassen– Erzeugte Klasse muss mit <<bind>>-Assoziation mit

Schablone verbunden werden

Page 5: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

5

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Attribute, Operationen

• Datenelement jedes Objekts einer Klasse– /abgeleitetes Attribut (nach Berechnungsvorschrift)– klassenattribut – +publicAttribut– #protectedAttribut– -privateAttribut

• Klasse beschreibt Typ des Attributs• Merkmal beschreibt weitere Eigenschaften, z.B. read-only• Zusicherung schränkt Inhalte, Zustände oder Semantik eines

Modellelements ein

attribut : Klasse = Initialwert {Merkmal}{Zusicherung}

operation(argument:Argumenttyp=Standardwert,...) : Rückgabetyp {Merkmal} {Zusicherung} • vergleichbar den Attributen

• Operationen sind Dienstleistungen, die aufgerufen werden können

Page 6: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

6

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Schnittstellen

• Schnittstellen spezifizieren Teil des äußerlich sichtbaren Verhaltens von Modellelementen

• beinhalten eine Menge von Signaturen für Operationen

• symbolisiert durch nicht ausgefüllten Kreis, der durch Linie mit anbietender Klasse verbunden ist

• Name der Schnittstelle entspricht dem Namen der Schnittstellenklasse

• Nutzung durch Abhängigkeitsbeziehung

Page 7: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

7

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Stereotypen

• erweitern vorhandene Modellelemente des UML-Metamodells

• Element wird direkt durch definierte Semantik beeinflusst

• besitzen keine Typsemantik• sollten projekt-, unternehmens- oder

methodenspezifisch vergeben werden

Page 8: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

8

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Pakete

• Ansammlungen von Modellelementen• Gesamtmodell in kleine überschaubare Einheiten

untergliedern• definieren keine Modellsemantik• jedes Modellelement gehört zu genau einem

Paket • können hierarchisch gegliedert werden

Page 9: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

9

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Objekte

• interessierende Objekte und Beziehungen in einer Art Momentaufnahme

• z.B. Datensatz für den Test zu definierenSystemablauf während des Debuggingerwünschte oder unerwünschte Zustände

• Objektdiagramm bildet konkrete Instanz des abstrakt beschriebenen Modells

Page 10: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

10

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Vererbung

• Programmiersprachenkonzept für Relation zwischen Ober- und Unterklasse

• Attribute und Operationen der Oberklasse sind auch Unterklassen zugänglich

• Abstraktionsprinzip zur hierarchischen Gliederung der Semantik eines Modells

• Unterscheidung eines Diskriminators: z.B. Antriebsart für PKWs

Page 11: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

11

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Assoziation

• Assoziationen beschreiben Verbindungen zwischen Klassen

• Objekte können nur dann miteinander kommunizieren

• konkrete Beziehung (Instanz einer Assoziation) wird Objektverbindung (Link) genannt

• an den Enden kann Multiplizität angegeben werden (als einzelne Zahl oder Wertebereich)

• eine abgeleitete Assoziation wird nicht gespeichert, sondern bei Bedarf berechnet

Page 12: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

12

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Aggregation, Komposition

• Aggregation ist Zusammensetzung eines Objektes aus einer Menge von Einzelteilen

• Aggregat nimmt stellvertretend für Teile Aufgaben wahr

• Aggregat kann Nachrichten an seine Teile weiterleiten

• die beteiligten Klassen führen keine gleichberechtigte Beziehung

• Teil kann zu mehreren Aggregationen gehören• Komposition ist existenzabhängige

Aggregatbeziehung

Page 13: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

13

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Abhängigkeit

• Beziehung zwischen Modellelementen, die zeigt, dass Änderung des einen (unabhängigen) Elements Änderung im anderen (abhängigen) Element bewirkt

• bezieht sich dabei auf Modellelemente selbst, nicht auf Instanzen

Page 14: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

14

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Klassendiagramm – Verfeinerung

• Verfeinerungen sind Beziehungen zwischen gleichartigen Elementen unterschiedlichen Detaillierungsgrades

• Beispiele– Beziehung von Analyse- und Designversion– Beziehung von sauberer und optimierter Variante– Beziehung zwischen zwei unterschiedlich granulierten

Elementen– Beziehung zwischen Schnittstellenklasse und

umsetzender Klasse

Page 15: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

15

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Komponentendiagramm

• Komponente stellt physisches Stück Programmcode dar

• Komponente kann Elemente (Objekte, Komponenten, Knoten) enthalten und Schnittstellen besitzen

• Komponentendiagramm zeigt Abhängigkeiten zwischen Komponenten

Page 16: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

16

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Einsatzdiagramm

• Knoten stellen Laufzeitumgebungen dar• Knoten werden als Quader visualisiert• In den Knoten werden dort installierte

Komponenten und Objekte dargestellt• Knoten die miteinander kommunizieren werden

durch Linien miteinander verbunden

Page 17: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

17

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Kompositionsstrukturdiagramm• dient der internen hierarchischen Strukturierung von

Komponenten (Klassen)• Interne Strukturierung geschieht auf Instanzebene

(Zusammenfassung zur Laufzeit)• Externe Struktur kann durch Ports verfeinert werden• Ports bündeln geforderte und gelieferte Schnittstellen

mit logischen Interaktionen

UML2

Page 18: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

18

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Use-Case-Diagramm

• stellt Beziehungen zwischen Akteuren und Anwendungsfällen dar

• Anwendungsfall beschreibt äußerlich sichtbares Systemverhalten, kann hierarchisch geschachtelt werden

• Akteur befindet sich außerhalb der Systemgrenze• Systemgrenze wird durch Rahmen symbolisiert

Page 19: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

19

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

State-Chart-Diagramm

• Zustandsmaschine• ein Anfangszustand• endliche Menge Zustände

Unterzustände mit Anfangszustand möglich

• endliche Menge Transitionen durch Ereignisseereignis(argumente) [bedingung] / operation(argumente)

^zielobjekte.gesendetesEreignis(argumente)

• endliche Menge Endzustände

Page 20: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

20

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Aktivitätsdiagramm

• Sonderform des State-Chart-Diagramms• ähnelt prozeduralem Flussdiagramm• beschreibt Aktivitäten von Objekten• Aktivität ist Zustand mit interner Aktion

Page 21: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

21

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Sequenzdiagramm

• beschreibt zeitliche Abfolge von Interaktionen zwischen Objekten

• Zeitlinie senkrecht von oben nach unten• Objekte durch senkrechte Lebenslinien beschrieben • gesendete Nachrichten waagerecht entsprechend

zeitlichen Auftretens

Page 22: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

22

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Interaktionsübersichtsdiagramm

• Vermischung aus Aktivitäts- und Sequenzdiagramm• Aktivitätsbeschreibung in Form von

Sequenzdiagrammen

UML2

Page 23: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

23

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Kommunikationsdiagramm

• Kollaborationsdiagramm in UML 1• Interaktionen für begrenzten Kontext, unter

besonderer Beachtung der Beziehungen der Objekte und ihrer Topographie– Objekte durch Assoziationslinien verbunden– Nachrichten (zeitliche Nummerierung, Namen, Antwort

und Argumenten) entlang der Assoziationslinien– Startnachricht erhält noch keine Nummer

• Aussagekraft wie Sequenzdiagramm

Page 24: 1 Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen UML Unified Modelling Language Dipl.-Inform. Christian Fuß Dieses Tutorial.

24

Dipl.-Inform. Christian Fuß Lehrstuhl für Informatik 3 an der RWTH Aachen

Timing-Diagramm

• dienen Darstellung von Zeitbeschränkungen für Zustandswechsel von ein oder mehreren Objekten

UML2