Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank...

32
Kurzreferenz UML Autor: Michael Puff Stand: 2010-05-21 http://www.michael-puff.de [email protected]

Transcript of Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank...

Page 1: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

Kurzreferenz UML

Autor: Michael Puff

Stand: 2010-05-21

http://[email protected]

Page 2: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

Inhaltsverzeichnis

Inhaltsverzeichnis

1 Die Modellierungssprache UML 51.1 Definition Klasse - Objekt . . . . . . . . . . . . . . . . . . . . . . 51.2 Reale Welt - Modellwelt . . . . . . . . . . . . . . . . . . . . . . . 51.3 Beziehungen zwischen Klassen . . . . . . . . . . . . . . . . . . . 6

2 Vererbung 16

3 Dynamische Modellierung 203.1 Das Sequenzdiagramm . . . . . . . . . . . . . . . . . . . . . . . 203.2 Das Kollaborationsdiagramm . . . . . . . . . . . . . . . . . . . . 23

4 Nebenläufigkeit 26

5 Arbeitsblätter 28

Stichwortverzeichnis 28

2

Page 3: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

Abbildungsverzeichnis

Abbildungsverzeichnis

1.1 Zusammenhang Klasse/Objekt an Hand eines Termins . . . . . . 61.2 Klassendiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . 71.3 Objektdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4 Klassendiagramm Aufgabe 1.1 . . . . . . . . . . . . . . . . . . . 81.5 Objektdiagramm Aufgabe 1.1 . . . . . . . . . . . . . . . . . . . . 81.6 Klassendiagramm Aufgabe 1.1a . . . . . . . . . . . . . . . . . . 81.7 Objektdiagramm Aufgabe 1.1a . . . . . . . . . . . . . . . . . . . 91.8 Klassendiagramm Aufgabe 1.2 . . . . . . . . . . . . . . . . . . . 91.9 Objektdiagramm Aufgabe 1.2 . . . . . . . . . . . . . . . . . . . . 101.10 Klassendiagramm Oder-Restriction . . . . . . . . . . . . . . . . . 101.11 Klassendiagramm Aufgabe 1.3 . . . . . . . . . . . . . . . . . . . 111.12 Objektdiagramm Aufgabe 1.3 . . . . . . . . . . . . . . . . . . . . 121.13 Klassendiagramm Untermengenrestriktion . . . . . . . . . . . . . 121.14 Klassendiagramm Aufgabe 1.4 . . . . . . . . . . . . . . . . . . . 131.15 Objektdiagramm Aufgabe 1.4 . . . . . . . . . . . . . . . . . . . . 131.16 Klassendiagramm Aggregation . . . . . . . . . . . . . . . . . . . 141.17 Klassendiagramm Komposition . . . . . . . . . . . . . . . . . . . 141.18 Klassendiagramm Aufgabe 1.5 . . . . . . . . . . . . . . . . . . . 141.19 Klassendiagramm Aufgabe 1.6 . . . . . . . . . . . . . . . . . . . 15

2.1 Vererbung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.2 Klassendiagramm Aufgabe 1.7 ohne Vererbung . . . . . . . . . . 172.3 Klassendiagramm Aufgabe 1.7 mit Vererbung . . . . . . . . . . . 182.4 Klassendiagramm Aufgabe 1.8 . . . . . . . . . . . . . . . . . . . 192.5 Klassendiagramm Aufgabe 1.9 . . . . . . . . . . . . . . . . . . . 19

3.1 Sequenzdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 Klassendiagramm Aufgabe 1.10 . . . . . . . . . . . . . . . . . . 223.3 Kollaborationsdiagramm . . . . . . . . . . . . . . . . . . . . . . . 233.4 Kollaborationsdiagramm zu Aufgabe 3.1.4 . . . . . . . . . . . . . 243.5 Kollaborationsdiagramm zu Aufgabe 3.1.2 . . . . . . . . . . . . . 25

4.1 Nebenläufigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.1 Arbeitsblatt 2006-10-09 . . . . . . . . . . . . . . . . . . . . . . . 285.2 Arbeitsblatt 2006-10-11 . . . . . . . . . . . . . . . . . . . . . . . 29

3

Page 4: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

Abbildungsverzeichnis

5.3 Arbeitsblatt 2006-10_a . . . . . . . . . . . . . . . . . . . . . . . . 305.4 Arbeitsblatt 2006-10_b . . . . . . . . . . . . . . . . . . . . . . . . 31

4

Page 5: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

1 Die Modellierungssprache UML

Die Unified Modeling Language (UML, engl. Vereinheitlichte Modellierungs-sprache) ist eine von der Object Management Group (OMG) entwickelte undstandardisierte Sprache für die Modellierung von Software und anderen Sys-temen. Im Sinne einer Sprache definiert die UML dabei Bezeichner für diemeisten Begriffe, die für die Modellierung wichtig sind, und legt mögliche Be-ziehungen zwischen diesen Begriffen fest. Die UML definiert weiter graphischeNotationen für diese Begriffe und für Modelle von statischen Strukturen undvon dynamischen Abläufen, die man mit diesen Begriffen formulieren kann.

1.1 Definition Klasse - Objekt

Eine Klasse ist eine Beschreibung einer Menge von Objekten, die miteinan-der die selben Attribute und Methoden teilen. Objekte mit gleichen Eigen-schaften und gleichen Verhalten werden in Klassen zusammengefasst.

Objekte sind Instanzen von Klassen. Sie sind konkrete Ausprägungen einerAbstraktion (der Klasse).

Eine Klasse ist wie ein Vorlage, die allozierbaren Objekte = Instanzen um-schreiben. Man erzeugt aus einer Klasse, also einem OOP Typ, durch Spei-cher Allozierung eine Instanz. Diese Instanz bezeichnet man auch als ein Ob-jekt. Eine Klasse ist also eine Datentyp-Deklaration, die das Verhalten undAussehen ihrer zur Laufzeit erstellbaren Instanzen = Objekte definiert. Veran-schaulichend kann man sagen, dass eine Klasse einer Formularvorlage ent-spricht, während das Objekt dann die ausgefüllte Kopie der Formularvorlagewäre.

1.2 Reale Welt - Modellwelt

In der Modellwelt werden nur die relevanten Fakten der realen Welt dargestellt,Es wird eine Vereinfachung vorgenommen.

5

Page 6: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Beispiel: Ein TerminDie Eigenschaften (z. B. Datum und Dauer) der Termine und die Vorgänge(z.B. Termin verschieben), die auf den Termin wirken, werden in einer Klas-se zusammengefasst. Ein induvidueller Termin aus der realen Welt, z.B. einePräsentation, wird in der Modellwelt zu einem Objekt der Klasse „Termin“. DieEigenschaften eines Termins werden zu Attributen. Die Vorgänge werden zuMethoden. (Abb.: 1.1)

Abb. 1.1: Zusammenhang Klasse/Objekt an Hand eines Termins

1.3 Beziehungen zwischen Klassen

1.3.1 Die Assoziation

Eine Assoziation beschreibt eine Beziehung zwischen zwei oder mehr Klas-sen. Sie wird dann als binäre Assoziation bezeichnet und spezifiziert, wennbeide Klassen miteinander in Beziehung stehen. Eine Assoziation heißt re-flexiv , wenn sie einen Typ mit sich selbst verbindet.

Ein Termin ist gekennzeichnet durch seine Anfangszeit und Dauer. Terminewerden durch Teilnehmer wahrgenommen. Jeder Teilnehmer hat einen Na-men.

Beziehungen zwischen Klassen werden in einem Klassendiagramm darge-stellt.

Ein Klassendiagramm zeigt eine Menge von Klassen und ihre Be-ziehungen. Sie stellen die statische Entwurfsschicht eines Systemsdar. (Abb.: 1.2)

6

Page 7: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.2: Klassendiagramm

Ein Objektdiagramm zeigt eine Menge von Objekten und ihre Beziehungen.Sie zeigen statische Momentaufnahmen der Instanzen von Klassendiagram-men aus der Sicht tatsächlicher oder beispielhaften Fällen. (Abb.: 1.3)

Abb. 1.3: Objektdiagramm

7

Page 8: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Aufgaben

Aufgabe 1.1: BankEine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto mit der Nummer 34923 und ein Konto mit der Nummer 34924.(Abb.: 1.4, 1.5)

Abb. 1.4: Klassendiagramm Aufgabe 1.1

Abb. 1.5: Objektdiagramm Aufgabe 1.1

Neben Herrn Knappe als Kontoinhaber sind auch seine Geschäftspartner Kon-toberechtigte am Geschäftskonto. (Abb.: 1.6, 1.7)

Abb. 1.6: Klassendiagramm Aufgabe 1.1a

8

Page 9: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.7: Objektdiagramm Aufgabe 1.1a

Aufgabe 1.2: Mitarbeiter - VorgesetzterIn einem Unternehmen ist ein Mitarbeiter Vorgesetzter von mehreren anderenMitarbeitern. Ein Mitarbeiter hat immer genau einen Mitarbeiter als Vorgesetz-ten. (Abb.: 1.8, 1.9)

Abb. 1.8: Klassendiagramm Aufgabe 1.2

1.3.2 Die Oder-Restriktion

Die Oder-Restriction drückt aus, dass für ein Objekt bei zwei möglichen Be-ziehungen zu Objekten von zwei anderen Klassen nur eine Beziehung her-gestellt wird.

Zum Beispiel kann sich ein Buch entweder nur im Lager oder nur im Ausstel-lungsraum befinden. (Abb.: 1.10)

9

Page 10: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.9: Objektdiagramm Aufgabe 1.2

Abb. 1.10: Klassendiagramm Oder-Restriction

Aufgabe 1.3: LagerverwaltungEin Unternehmen verfolgt Lagerverwaltung von Paletten mit einer Software.Es gibt Lagerräume und Hochregale. Eine Palette wird entweder in einem La-gerraum oder in einem Hochregallager gelagert. (Abb.: 1.11, 1.12)

1.3.3 Untermengenrestriktion

Bei einer mehrfachen Assoziation zwischen Klassen wird diese Ei-genschaft durch eine Untermengenrestriktion ausgedrückt. (Abb.:1.13)

Die an einem Projekt beteiligten Personen nehmen die Rollen Projektleiter undMitarbeiter ein. Um zu zeigen, dass der Projketleiter auch Mitarbeiter ist, stehtin UML die Untermengenrestriktion zur Verfügung.

10

Page 11: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.11: Klassendiagramm Aufgabe 1.3

Aufgabe 1.4: SportfestFür einen Wettbewerb wird die Sportart festgehalten. Ein Sportler kann anmehreren Wettbewerben teilnehmen. ein Wettbewerb hat genau einen Sieger.Der Sieger ist auch Teilnehmer des Wettbewerbs. Am Wettbewerb Kugelstos-sen nehmen 5 Sportler teil. Teilnehmer 3 ist der Sieger. (Abb.: 1.14, 1.15)

1.3.4 Aggregation und Komposition

Zwischen Klassen können auch Ganz-Teil-Beziehungen bestehen, wenn Klas-sen nicht gleich berechtigt sind. Man unterscheidet zwei Arten von Bindungen:Die Aggregation und die Komposition.

Die Aggregation beschreibt eine schwache Beziehung zwischen Objekten.ein Objekt ist „Teil“ eines anderen „Ganzen“. Es kann aber ohne das Ganzeexistieren.

Beispiel:Die Beziehung zwischen einem Teilnehmer und einem Kurs stellt eine Ganz-teil-Beziehung dar. Ein Teilnehmer ist Teil eines Kurses. Ein Teilnehmer kannan mehreren Kursen teilnehmen. Fällt ein Kurs aus, so kann er weiterhin Teil-nehmer einer Tagung sein. (Abb.: 1.16)

Kann ein Teilobjekt zu mehreren Aggregationsobjekten gehören, bezeichnetman dies als shared aggregation oder auch als weak ownership.

11

Page 12: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.12: Objektdiagramm Aufgabe 1.3

Abb. 1.13: Klassendiagramm Untermengenrestriktion

Die Komposition beschreibt eine starke Beziehung zwischen Objekten. Es isteine strenge Form der Aggregation, bei der die Teile nicht ohne das Ganzeexistieren können.

Beispiel:Eine Abteilung ist Teil einer Firma. Eine Abteilung kann aber nur Teil einerFirma sein. Wird die Firma geschlossen, wird auch die Abteilung geschlossen.(Abb.: 1.17)

Eine Komposition ist die starke Form der Aggregation (strong ownership, un-shared ownership. Daraus folgt, dass die Kardinalität an der Aggegrations-klasse nicht größer als eins sein kann. Wird ein Aggregationsobjekt kopiert,werden auch seine Teilobjekte kopiert. Wird ein Aggregationsobjekt gelöscht,werden auch die Teilobjekte gelöscht. („They live with it and they die with it.“)

Aufgabe 1.5: Komposition

1. Was passiert mit einem Abteilobjekt, wenn das zugehörige Waggonob-jekt gelöscht wird?

12

Page 13: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.14: Klassendiagramm Aufgabe 1.4

Abb. 1.15: Objektdiagramm Aufgabe 1.4

Das Abteilobjekt wird auch gelöscht. Kpomosition.2. Kann es leer Abteile geben?

Nein, da die Kardinalität mit 1..6 für die Fahrgäste angegeben ist.3. Wie muss das Klassendiagramm geändert werden, damit leere Abteile

zulässig sind?Die Kardinalität der Fahrgäste muss zu 0..6 geändert werden.

4. Muss sich ein Fahrgast in einem Abteil aufhalten?Ja, da nur eine Beziehung zwischen Fahrgast und Abteil besteht.

Aufgabe 1.6: UnternehmensorganisationIn einem Unternehmen ist die Arbeit nach Projekten organisiert. Das Projekthat mindestens einen Projektleiter und einen Namen. Dazu kommt eine be-liebige Zahl von Projektmitgliedern. Projektleiter und Projektmitglieder werdenals Mitarbeiter geführt. Der Projektleiter ist selbst auch Mitarbeiter. Ein Projekt-leiter leitet nur ein Projekt. Jedes Projekt hat zwei bis drei Berater. Ein Projektverfügt über ein Projektkonto und eine Projektdokumentation. Unternehmens-weit gibt es eine Dokumentation, die jedes Projekt und jede Projektdokumen-tation kennt. (Abb.: 1.19)

13

Page 14: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.16: Klassendiagramm Aggregation

Abb. 1.17: Klassendiagramm Komposition

Abb. 1.18: Klassendiagramm Aufgabe 1.5

14

Page 15: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

1 Die Modellierungssprache UML

Abb. 1.19: Klassendiagramm Aufgabe 1.6

15

Page 16: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

2 Vererbung

2 Vererbung

Die Definition einer neuen Klasse kann auf der Definition einer bereits vor-handenen Klasse aufbauen, so dass die neue Klasse die Merkmale der vor-handenen Klasse übernimmt und um neue Bestandteile ergänzt. Die Über-nahme der Merkmale der vorhandenen Klasse bezeichnet man als Verer-bung.

Beispiel: BankkontenEine Bank bietet ihren Kunden verschiedene Kontotypen an. (Abb.: 2.1)

Abb. 2.1: Vererbung

„Lesen“ einer Verebung: Ein Girokonto ist wie ein Konto, es hat lediglich nochein Dispolimit.

Vererbung stellt eine Beziehung zwischen einer speziellen Subklasse und ei-ner allgemeineren Superklasse her. Dies bezeichnet man als Generalisierung.Zwischen Sub- und Superklasse besteht eine „ist-wie“-Beziehung. Die Verer-bung stellt so von der Subklasse gesehen eine Verallgemeinerung zur Super-klasse dar.

Worauf wirkt die Vererbung?

1. Alle Attribute der Superklasse sind wie Attribute der Subklasse.2. Eine Methode, die auf ein Objekt der Superklasse angewendet werden

kann, lässt sich auch auf ein Objekt der Subklasse anwenden.3. Eine Assoziation zwischen Superklassen und einer anderen Klasse geht

auf die Subklasse über.

Aufgabe 1.7: TagungsverwaltungFür jeden Teilnehmer werden Namen, die Adresse und der Status (Mitglied,nicht Mitglied, Schüler) gespeichert. Jeder Teilnehmer kann sich für mehrere

16

Page 17: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

2 Vererbung

Vorträge anmelden. Für jeden Vortrag werden dessen Nummer, Bezeichnungund das Datum gespeichert. Alle Vorträge kosten gleich viel. An einem Vortragkönnen 100 Teilnehmer teilnehmen. Jeder Vortrag wird von einem Referentenangeboten. Ein Referent kann mehrere Vorträge anbieten. Für jeden Refe-renten werden Name und Vorname gespeichert. Ein Teilnehmer kann nichtgleichzeitig Referent sein. Jeder Teilnehmer muss genau ein Konto haben. ImKonto werden Kontonummer und der anfallende Konferenzbetrag gespeichert.(Abb.: 2.2, 2.3)

Abb. 2.2: Klassendiagramm Aufgabe 1.7 ohne Vererbung

17

Page 18: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

2 Vererbung

Abb. 2.3: Klassendiagramm Aufgabe 1.7 mit Vererbung

Aufgabe 1.8: BankkontenEin Kunde kann beliebig viele Konten eröffnen. Für jeden Kunden werden Na-me, Adresse und Datum erfasst. Es gibt Giro- und Sparkonten. Jedes Kon-to besitzt ein Habenzins, Girokonten auch ein Sollzins. Jedes Konto hat ei-ne Kontonummer. Für jedes Sparkonto wird die Art des Sparens gespeichert.Ein Kunde kann Beträge einzahlen und abheben. Es werden Zinsen gutge-schrieben un dbei Girokonten Überziehungszinsen gebucht. Um die Zinsen zuberechnen, muss für jede Kontobewegung das Datum und der Betrag notiertwerden. (Abb.: 2.4)

Aufgabe 1.9: GemeinschaftspraxisDie Abrechnung einer Gemeinschaftspraxis mehrerer Ärzte mit unterschiedli-chen fachgebieten soll verwaltet werden. Einem Patienten werden die durch-geführten Behandlungen zugeordnet. Eine Behandlung wird genauvon einemArzt durchgeführt. Zu einer Behandlung kann es eine Verordnung geben. Meh-rere Behandlungen werden gemeinsam abgerechnet. (Abb.: 2.5)

18

Page 19: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

2 Vererbung

Abb. 2.4: Klassendiagramm Aufgabe 1.8

Abb. 2.5: Klassendiagramm Aufgabe 1.9

19

Page 20: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

3 Dynamische Modellierung

Während das Objektmodell rein statische Informationen trägt, soll das dyna-mische Modell das zeitabhängige Verhalten des zu modellierenden Systemsenthalten. Die Rolle der Zeitabhängigkeit ist nicht bei jedem System gleichwichtig. Für die Darstellung wird entweder ein Sequenzdiagramm oder ein Kol-laborationsdiagramm verwendet.

3.1 Das Sequenzdiagramm

Ein Sequenzdiagramm ist ein Interaktionsdiagramm, bei dem die zeitlicheAbfolge der Nachrichten im Vordergrund steht.

Das Sequenzdiagramm ist in zwei Achsen unterteilt. Auf der horizontalen ste-hen die betrachteten Objekte, deren Interaktion dargestellt werden soll undauf der vertikalen wird der zeitliche Verlauf dargestellt. Ein Methodenaufrufwird durch eine waagerechte Linie dargestellt, die auf das Objekt zeigt, aufdas sich der Methodenaufruf bezieht. Ein Methodenaufruf ist nur zulässig,wenn die Methode im Klassendiagramm existiert und eine Beziehung zu demObjekt besteht. Die zeitliche Dauer wird durch ein Rechteck in Richtung derZeitachse dargestellt. Die grau schattierten Bereiche in den Methoden zeigenden Programmabschnitt, der im „Fokus“ der Abarbeitung durch den Rechnersteht. Die Lebenslinie kennzeichnet die Lebensdauer eines Objektes im Ver-lauf eines Programmes. Wird ein Objekt gelöscht, endet seine Lebenslinie. ZurErstellung eines Sequenzdiagrammes muss ein Klasse- und Objektdiagrammvorliegen. (Abb.: 3.1)

20

Page 21: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

Abb. 3.1: Sequenzdiagramm

Aufgabe 1.10: SupermarktketteEine Supermarktkette wird durch eine Zentrale verwaltet. Eine Kasse spei-chert am Morgen die bereitgestellte Bargeldeinlagen und den aktuellen Kas-senstand. Wenn ein Kunde bezahlt, wird der Kassenstand um diesen Betragerhöht. nach Geschäftsschluss wird von der Zentrale die gesamte Tagesein-nahme aller Märkte ermittelt. Klassendiagramm siehe Abb.: 3.2.

Berechnen der Gesamteinnahmen durch die Zentrale. Vorgehensweise:Jeder Supermarkt wird nacheinander die Nachricht berechneTageseinnahmegeschickt. Die zurückgegebenen Werte werden aufaddiert und bilden die Ge-samttageseinnahme. Jeder Supermarkt verfährt mit seinen Kassen ebenso.

Lösung siehe Arbeitsblatt 1/2006-10-09 Seite 28.

21

Page 22: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

Abb. 3.2: Klassendiagramm Aufgabe 1.10

Aufgabe 1.11: LagerhaltungEine Firma stellt ihre Produkte auf Paletten bereit. Einem Kundenauftrag, derzur Auslieferung ansteht, werden paletten zugeordnet. Bis zur abholung wer-den die Paletten entweder in einem der Hochregallager oder in einem der La-gerräume eingestellt. Zur Abholung durch den Kunden werden die Paletten ineinem Abhollager bereitgestellt.

1. Stellen Sie die zu Auftrag a2 gehörende Paletten in Lagerraum l1 bereit.2. Stellen Sie für Auftrag a3 eine Liste aller auf den zugehörigen Paletten

bereitgestellten Produkte zusammen.

Klassen- und Objektdiagramm siehe Buch Seite 117, Aufgabe 3.2.1.

Lösung siehe Arbeitsblatt 1/2006-10-11 Seite 29.

22

Page 23: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

3.2 Das Kollaborationsdiagramm

Ein Kollaborationsdiagramm ist ein Interaktionsdiagramm bei dem die struk-turelle Organisation der Objekte im Vordergrund steht.

In einem Kollaborationsdiagramm werden die Objektbeziehungen durch Ver-bindungslinien ausgedrückt. Um die Kommunikation zwischen den Objektendarzustellen, wird der Methodenname zusammen mit einem Pfeil an der Ver-bindungtslinie angegeben, der vom aufrufenden Objekt zum aufgerufenen zeigt.Die Reihenfolge wird durch eine hierarchische Nummerierung verdeutlicht.Wird eine Methode mehrfach aufgerufen, wird dies durch ein Sternchen in derhierarchischen Nummerierung verdeutlicht. (Abb.: 3.3)

Abb. 3.3: Kollaborationsdiagramm

23

Page 24: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

Aufgabe 1.12:Kollaborationsdiagramm zu Aufgabe 3.1.4 im Buch auf Seite 121.

Abb. 3.4: Kollaborationsdiagramm zu Aufgabe 3.1.4

24

Page 25: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

3 Dynamische Modellierung

Aufgabe 1.13:Kollaborationsdiagramm zu Aufgabe 3.1.2 im Buch auf Seite 117.

Abb. 3.5: Kollaborationsdiagramm zu Aufgabe 3.1.2

25

Page 26: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

4 Nebenläufigkeit

4 Nebenläufigkeit

Unter Nebenläufigkeit versteht man, dass in einem Programm mehrere An-weisungsfolgen parallel abgearbeitet werden. Eine solche Anweisungsfolgebezeichnet man als Thread. Beim Arbeiten mit Threads ist darauf zu ach-ten, dass bei gemeinsamem genutzten Ressourcen durch mehrere Threadskeine Nutzungskonflikte entstehen. Um dies zu verhindern, muss ein Zugriffsynchronisiert werden. Zu diesem Zweck fordert ein Thread über ein „Lock“einen exklusiven Zugriff an. Der Zugriff durch andere Threads ist dann so lan-ge blockiert, bis das Lock wieder aufgehoben wird. Wird ein Lock nicht wiederaufgehoben, kann es zu einem Deadlock kommen, wenn ein Thread auf dieFreigabe der Ressource wartet.

Beispiel:Der Wert einer Speicherzelle soll mit der Methode austauschen() getauschtwerden. Diese Methode wird durch den Akteur angestossen, der als Argu-ment die Partnerzelle für den Tausch mit angibt. Um einen Ressourcenkonfliktzu vermeiden, setzt die Speicherzelle, die den Austauschaufruf erhält, ein Lockauf sich selbst und dann ein Lock auf die Partnerzelle. Besteht noch ein Lockauf eine der beiden Zellen, o wartet die Methode bis das fremde Lock aufge-hoben wurde. (Abb.: 4.1)

26

Page 27: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

4 Nebenläufigkeit

Abb. 4.1: Nebenläufigkeit

27

Page 28: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

5 Arbeitsblätter

5 Arbeitsblätter

Abb. 5.1: Arbeitsblatt 2006-10-09

28

Page 29: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

5 Arbeitsblätter

Abb. 5.2: Arbeitsblatt 2006-10-11

29

Page 30: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

5 Arbeitsblätter

Abb. 5.3: Arbeitsblatt 2006-10_a

30

Page 31: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

5 Arbeitsblätter

Abb. 5.4: Arbeitsblatt 2006-10_b

31

Page 32: Kurzreferenz UML - Michael Puff/€¦ · 1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Ge-schäftskonto

Stichwortverzeichnis

Stichwortverzeichnis

Aggregation, 11, 12Aggregationsklasse, 12Aggregationsobjekt, 12Assoziation, 6

binäre, 6mehrfach, 10reflexiv, 6

Attribut, 5

Entwurfsschicht, 6

Ganz-Teil-Beziehung, 11Generalisierung, 16

Instanz, 5Interaktion, 20Interaktionsdiagramm, 20, 23

Kardinalität, 12Klasse, 5, 9–11

Definition, 5Klassendiagramm, 6, 20Kollaborationsdiagramm, 20, 23Komposition, 11, 12

Methode, 5, 16Methodenaufruf, 20Modellierung

dynamisch, 20Modellierungssprache, 5Modellwelt, 5

Nebenläufigkeit, 26Deadlock, 26Lock, 26Nutzungskonflikte, 26Thread, 26

Objekt, 5, 9, 12, 16, 20, 23Definition, 5

Objektbeziehungen, 23Objektdiagramm, 7Objektmodell, 20Oder-Restriction, 9

Sequenzdiagramm, 20Subklasse, 16Superklasse, 16

Teilobjekt, 12Thread, 26

UML, 5Unified Modeling Language, 5Untermengenrestriction, 10

Verallgemeinerung, 16Vererbung, 16

32