Kurzreferenz UML. Autor: Michael Puff. Stand: 2010-05-21. http://www.michael-puff.de mail@michael-puff.de



Ähnliche Dokumente
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Unified Modeling Language (UML)

SEQUENZDIAGRAMM. Christoph Süsens

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Software Engineering Interaktionsdiagramme

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

Arbeiten mit UMLed und Delphi

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

How to do? Projekte - Zeiterfassung

Einführung in die Programmierung für NF

SWE5 Übungen zu Software-Engineering

Vgl. Oestereich Kap 2.7 Seiten

SS 2014 Torsten Schreiber

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

Assoziation und Aggregation

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

FlowFact Alle Versionen

Lehrer: Einschreibemethoden

Sage Start Einrichten des Kontenplans Anleitung. Ab Version

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Kapitalerhöhung - Verbuchung

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Übung 4. Musterlösungen

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Inventur. Bemerkung. / Inventur

Änderung des Portals zur MesseCard-Abrechnung

Professionelle Seminare im Bereich MS-Office

Objektorientierte Programmierung OOP

SEPA-Anleitung zum Release 3.09

Zwischenablage (Bilder, Texte,...)

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Techniken der Projektentwicklungen

Skriptenverkauf Datenmodell. Lars Trebing, 4. Juli 2008

Erstellen einer digitalen Signatur für Adobe-Formulare

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Anleitung über den Umgang mit Schildern

Primzahlen und RSA-Verschlüsselung

Klassendiagramm. (class diagram)

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Professionelle Seminare im Bereich MS-Office

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

Leichte-Sprache-Bilder

Einfügen von Bildern innerhalb eines Beitrages

Anwendungsbeispiele Buchhaltung

BASIS Karten, WEA-Katalog, Projektierung, Objekte etc.

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

Konzepte der Informatik

Schritte 4. Lesetexte 13. Kosten für ein Girokonto vergleichen. 1. Was passt? Ordnen Sie zu.

PowerPoint 2010 Mit Folienmastern arbeiten

Animationen erstellen

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

1. So beginnen Sie eine Kalkulation

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Software Engineering Klassendiagramme Assoziationen

Dossier: Rechnungen und Lieferscheine in Word

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Analyse und Entwurf objektorientierter Systeme

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Freigabemitteilung Nr. 39. Neue Funktionen adresse zurücksetzen / ändern Kennung ändern Anlegen von OCS (elektr. Postfach) Mailbenutzern

Installation und Inbetriebnahme von SolidWorks

Speicher in der Cloud

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Aufruf der Weboberflache des HPM- Warmepumpenmanagers aus dem Internet TIPPS

-Inhalte an cobra übergeben

Mediumwechsel - VR-NetWorld Software

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Tevalo Handbuch v 1.1 vom

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Software Engineering Klassendiagramme weiterführende Konzepte

Tipps zur Nutzung der ViT 1 Lernen ViT Üben HAU ViT ViT ViT ViT ViT Testen ViT VORSC Bewerten RAGTIME ViT zur Vollversion ViT

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

7DVWH.HOOQHU. Kassensystem SANYO (X&D6RIWKapitel 42

Grundwissen Informatik 6. Jahrgangsstufe

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

Darstellung von Assoziationen

Was ist Sozial-Raum-Orientierung?

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Bedienungsanleitung für den Online-Shop

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Transkript:

Kurzreferenz UML Autor: Michael Puff Stand: 2010-05-21 http://www.michael-puff.de mail@michael-puff.de

Inhaltsverzeichnis Inhaltsverzeichnis 1 Die Modellierungssprache UML 5 1.1 Definition Klasse - Objekt...................... 5 1.2 Reale Welt - Modellwelt....................... 5 1.3 Beziehungen zwischen Klassen................... 6 2 Vererbung 16 3 Dynamische Modellierung 20 3.1 Das Sequenzdiagramm....................... 20 3.2 Das Kollaborationsdiagramm.................... 23 4 Nebenläufigkeit 26 5 Arbeitsblätter 28 Stichwortverzeichnis 28 2

Abbildungsverzeichnis Abbildungsverzeichnis 1.1 Zusammenhang Klasse/Objekt an Hand eines Termins...... 6 1.2 Klassendiagramm.......................... 7 1.3 Objektdiagramm........................... 7 1.4 Klassendiagramm Aufgabe 1.1................... 8 1.5 Objektdiagramm Aufgabe 1.1.................... 8 1.6 Klassendiagramm Aufgabe 1.1a.................. 8 1.7 Objektdiagramm Aufgabe 1.1a................... 9 1.8 Klassendiagramm Aufgabe 1.2................... 9 1.9 Objektdiagramm Aufgabe 1.2.................... 10 1.10 Klassendiagramm Oder-Restriction................. 10 1.11 Klassendiagramm Aufgabe 1.3................... 11 1.12 Objektdiagramm Aufgabe 1.3.................... 12 1.13 Klassendiagramm Untermengenrestriktion............. 12 1.14 Klassendiagramm Aufgabe 1.4................... 13 1.15 Objektdiagramm Aufgabe 1.4.................... 13 1.16 Klassendiagramm Aggregation................... 14 1.17 Klassendiagramm Komposition................... 14 1.18 Klassendiagramm Aufgabe 1.5................... 14 1.19 Klassendiagramm Aufgabe 1.6................... 15 2.1 Vererbung............................... 16 2.2 Klassendiagramm Aufgabe 1.7 ohne Vererbung.......... 17 2.3 Klassendiagramm Aufgabe 1.7 mit Vererbung........... 18 2.4 Klassendiagramm Aufgabe 1.8................... 19 2.5 Klassendiagramm Aufgabe 1.9................... 19 3.1 Sequenzdiagramm.......................... 21 3.2 Klassendiagramm Aufgabe 1.10.................. 22 3.3 Kollaborationsdiagramm....................... 23 3.4 Kollaborationsdiagramm zu Aufgabe 3.1.4............. 24 3.5 Kollaborationsdiagramm zu Aufgabe 3.1.2............. 25 4.1 Nebenläufigkeit............................ 27 5.1 Arbeitsblatt 2006-10-09....................... 28 5.2 Arbeitsblatt 2006-10-11....................... 29 3

Abbildungsverzeichnis 5.3 Arbeitsblatt 2006-10_a........................ 30 5.4 Arbeitsblatt 2006-10_b........................ 31 4

1 Die Modellierungssprache UML 1 Die Modellierungssprache UML Die Unified Modeling Language (UML, engl. Vereinheitlichte Modellierungssprache) ist eine von der Object Management Group (OMG) entwickelte und standardisierte Sprache für die Modellierung von Software und anderen Systemen. Im Sinne einer Sprache definiert die UML dabei Bezeichner für die meisten Begriffe, die für die Modellierung wichtig sind, und legt mögliche Beziehungen zwischen diesen Begriffen fest. Die UML definiert weiter graphische Notationen für diese Begriffe und für Modelle von statischen Strukturen und von 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 miteinander die selben Attribute und Methoden teilen. Objekte mit gleichen Eigenschaften und gleichen Verhalten werden in Klassen zusammengefasst. Objekte sind Instanzen von Klassen. Sie sind konkrete Ausprägungen einer Abstraktion (der Klasse). Eine Klasse ist wie ein Vorlage, die allozierbaren Objekte = Instanzen umschreiben. Man erzeugt aus einer Klasse, also einem OOP Typ, durch Speicher Allozierung eine Instanz. Diese Instanz bezeichnet man auch als ein Objekt. Eine Klasse ist also eine Datentyp-Deklaration, die das Verhalten und Aussehen ihrer zur Laufzeit erstellbaren Instanzen = Objekte definiert. Veranschaulichend kann man sagen, dass eine Klasse einer Formularvorlage entspricht, während das Objekt dann die ausgefüllte Kopie der Formularvorlage wäre. 1.2 Reale Welt - Modellwelt In der Modellwelt werden nur die relevanten Fakten der realen Welt dargestellt, Es wird eine Vereinfachung vorgenommen. 5

1 Die Modellierungssprache UML Beispiel: Ein Termin Die Eigenschaften (z. B. Datum und Dauer) der Termine und die Vorgänge (z.b. Termin verschieben), die auf den Termin wirken, werden in einer Klasse zusammengefasst. Ein induvidueller Termin aus der realen Welt, z.b. eine Präsentation, wird in der Modellwelt zu einem Objekt der Klasse Termin. Die Eigenschaften eines Termins werden zu Attributen. Die Vorgänge werden zu Methoden. (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 Klassen. Sie wird dann als binäre Assoziation bezeichnet und spezifiziert, wenn beide Klassen miteinander in Beziehung stehen. Eine Assoziation heißt reflexiv, wenn sie einen Typ mit sich selbst verbindet. Ein Termin ist gekennzeichnet durch seine Anfangszeit und Dauer. Termine werden durch Teilnehmer wahrgenommen. Jeder Teilnehmer hat einen Namen. Beziehungen zwischen Klassen werden in einem Klassendiagramm dargestellt. Ein Klassendiagramm zeigt eine Menge von Klassen und ihre Beziehungen. Sie stellen die statische Entwurfsschicht eines Systems dar. (Abb.: 1.2) 6

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 Klassendiagrammen aus der Sicht tatsächlicher oder beispielhaften Fällen. (Abb.: 1.3) Abb. 1.3: Objektdiagramm 7

1 Die Modellierungssprache UML Aufgaben Aufgabe 1.1: Bank Eine Bank verwaltet für ihre Kunden Konten. Frank Knappe besitzt ein Geschä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 Kontoberechtigte am Geschäftskonto. (Abb.: 1.6, 1.7) Abb. 1.6: Klassendiagramm Aufgabe 1.1a 8

1 Die Modellierungssprache UML Abb. 1.7: Objektdiagramm Aufgabe 1.1a Aufgabe 1.2: Mitarbeiter - Vorgesetzter In einem Unternehmen ist ein Mitarbeiter Vorgesetzter von mehreren anderen Mitarbeitern. Ein Mitarbeiter hat immer genau einen Mitarbeiter als Vorgesetzten. (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 Beziehungen zu Objekten von zwei anderen Klassen nur eine Beziehung hergestellt wird. Zum Beispiel kann sich ein Buch entweder nur im Lager oder nur im Ausstellungsraum befinden. (Abb.: 1.10) 9

1 Die Modellierungssprache UML Abb. 1.9: Objektdiagramm Aufgabe 1.2 Abb. 1.10: Klassendiagramm Oder-Restriction Aufgabe 1.3: Lagerverwaltung Ein Unternehmen verfolgt Lagerverwaltung von Paletten mit einer Software. Es gibt Lagerräume und Hochregale. Eine Palette wird entweder in einem Lagerraum oder in einem Hochregallager gelagert. (Abb.: 1.11, 1.12) 1.3.3 Untermengenrestriktion Bei einer mehrfachen Assoziation zwischen Klassen wird diese Eigenschaft durch eine Untermengenrestriktion ausgedrückt. (Abb.: 1.13) Die an einem Projekt beteiligten Personen nehmen die Rollen Projektleiter und Mitarbeiter ein. Um zu zeigen, dass der Projketleiter auch Mitarbeiter ist, steht in UML die Untermengenrestriktion zur Verfügung. 10

1 Die Modellierungssprache UML Abb. 1.11: Klassendiagramm Aufgabe 1.3 Aufgabe 1.4: Sportfest Für einen Wettbewerb wird die Sportart festgehalten. Ein Sportler kann an mehreren Wettbewerben teilnehmen. ein Wettbewerb hat genau einen Sieger. Der Sieger ist auch Teilnehmer des Wettbewerbs. Am Wettbewerb Kugelstossen 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 Klassen 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 Ganze existieren. Beispiel: Die Beziehung zwischen einem Teilnehmer und einem Kurs stellt eine Ganzteil-Beziehung dar. Ein Teilnehmer ist Teil eines Kurses. Ein Teilnehmer kann an mehreren Kursen teilnehmen. Fällt ein Kurs aus, so kann er weiterhin Teilnehmer einer Tagung sein. (Abb.: 1.16) Kann ein Teilobjekt zu mehreren Aggregationsobjekten gehören, bezeichnet man dies als shared aggregation oder auch als weak ownership. 11

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 ist eine strenge Form der Aggregation, bei der die Teile nicht ohne das Ganze existieren können. Beispiel: Eine Abteilung ist Teil einer Firma. Eine Abteilung kann aber nur Teil einer Firma sein. Wird die Firma geschlossen, wird auch die Abteilung geschlossen. (Abb.: 1.17) Eine Komposition ist die starke Form der Aggregation (strong ownership, unshared ownership. Daraus folgt, dass die Kardinalität an der Aggegrationsklasse 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 Waggonobjekt gelöscht wird? 12

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: Unternehmensorganisation In einem Unternehmen ist die Arbeit nach Projekten organisiert. Das Projekt hat mindestens einen Projektleiter und einen Namen. Dazu kommt eine beliebige Zahl von Projektmitgliedern. Projektleiter und Projektmitglieder werden als Mitarbeiter geführt. Der Projektleiter ist selbst auch Mitarbeiter. Ein Projektleiter leitet nur ein Projekt. Jedes Projekt hat zwei bis drei Berater. Ein Projekt verfügt über ein Projektkonto und eine Projektdokumentation. Unternehmensweit gibt es eine Dokumentation, die jedes Projekt und jede Projektdokumentation kennt. (Abb.: 1.19) 13

1 Die Modellierungssprache UML Abb. 1.16: Klassendiagramm Aggregation Abb. 1.17: Klassendiagramm Komposition Abb. 1.18: Klassendiagramm Aufgabe 1.5 14

1 Die Modellierungssprache UML Abb. 1.19: Klassendiagramm Aufgabe 1.6 15

2 Vererbung 2 Vererbung Die Definition einer neuen Klasse kann auf der Definition einer bereits vorhandenen Klasse aufbauen, so dass die neue Klasse die Merkmale der vorhandenen Klasse übernimmt und um neue Bestandteile ergänzt. Die Übernahme der Merkmale der vorhandenen Klasse bezeichnet man als Vererbung. Beispiel: Bankkonten Eine 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 noch ein Dispolimit. Vererbung stellt eine Beziehung zwischen einer speziellen Subklasse und einer allgemeineren Superklasse her. Dies bezeichnet man als Generalisierung. Zwischen Sub- und Superklasse besteht eine ist-wie -Beziehung. Die Vererbung stellt so von der Subklasse gesehen eine Verallgemeinerung zur Superklasse 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: Tagungsverwaltung Für jeden Teilnehmer werden Namen, die Adresse und der Status (Mitglied, nicht Mitglied, Schüler) gespeichert. Jeder Teilnehmer kann sich für mehrere 16

2 Vererbung Vorträge anmelden. Für jeden Vortrag werden dessen Nummer, Bezeichnung und das Datum gespeichert. Alle Vorträge kosten gleich viel. An einem Vortrag können 100 Teilnehmer teilnehmen. Jeder Vortrag wird von einem Referenten angeboten. Ein Referent kann mehrere Vorträge anbieten. Für jeden Referenten werden Name und Vorname gespeichert. Ein Teilnehmer kann nicht gleichzeitig Referent sein. Jeder Teilnehmer muss genau ein Konto haben. Im Konto werden Kontonummer und der anfallende Konferenzbetrag gespeichert. (Abb.: 2.2, 2.3) Abb. 2.2: Klassendiagramm Aufgabe 1.7 ohne Vererbung 17

2 Vererbung Abb. 2.3: Klassendiagramm Aufgabe 1.7 mit Vererbung Aufgabe 1.8: Bankkonten Ein Kunde kann beliebig viele Konten eröffnen. Für jeden Kunden werden Name, Adresse und Datum erfasst. Es gibt Giro- und Sparkonten. Jedes Konto besitzt ein Habenzins, Girokonten auch ein Sollzins. Jedes Konto hat eine Kontonummer. Für jedes Sparkonto wird die Art des Sparens gespeichert. Ein Kunde kann Beträge einzahlen und abheben. Es werden Zinsen gutgeschrieben un dbei Girokonten Überziehungszinsen gebucht. Um die Zinsen zu berechnen, muss für jede Kontobewegung das Datum und der Betrag notiert werden. (Abb.: 2.4) Aufgabe 1.9: Gemeinschaftspraxis Die Abrechnung einer Gemeinschaftspraxis mehrerer Ärzte mit unterschiedlichen fachgebieten soll verwaltet werden. Einem Patienten werden die durchgeführten Behandlungen zugeordnet. Eine Behandlung wird genauvon einem Arzt durchgeführt. Zu einer Behandlung kann es eine Verordnung geben. Mehrere Behandlungen werden gemeinsam abgerechnet. (Abb.: 2.5) 18

2 Vererbung Abb. 2.4: Klassendiagramm Aufgabe 1.8 Abb. 2.5: Klassendiagramm Aufgabe 1.9 19

3 Dynamische Modellierung 3 Dynamische Modellierung Während das Objektmodell rein statische Informationen trägt, soll das dynamische Modell das zeitabhängige Verhalten des zu modellierenden Systems enthalten. Die Rolle der Zeitabhängigkeit ist nicht bei jedem System gleich wichtig. Für die Darstellung wird entweder ein Sequenzdiagramm oder ein Kollaborationsdiagramm verwendet. 3.1 Das Sequenzdiagramm Ein Sequenzdiagramm ist ein Interaktionsdiagramm, bei dem die zeitliche Abfolge der Nachrichten im Vordergrund steht. Das Sequenzdiagramm ist in zwei Achsen unterteilt. Auf der horizontalen stehen die betrachteten Objekte, deren Interaktion dargestellt werden soll und auf der vertikalen wird der zeitliche Verlauf dargestellt. Ein Methodenaufruf wird durch eine waagerechte Linie dargestellt, die auf das Objekt zeigt, auf das sich der Methodenaufruf bezieht. Ein Methodenaufruf ist nur zulässig, wenn die Methode im Klassendiagramm existiert und eine Beziehung zu dem Objekt besteht. Die zeitliche Dauer wird durch ein Rechteck in Richtung der Zeitachse dargestellt. Die grau schattierten Bereiche in den Methoden zeigen den Programmabschnitt, der im Fokus der Abarbeitung durch den Rechner steht. Die Lebenslinie kennzeichnet die Lebensdauer eines Objektes im Verlauf eines Programmes. Wird ein Objekt gelöscht, endet seine Lebenslinie. Zur Erstellung eines Sequenzdiagrammes muss ein Klasse- und Objektdiagramm vorliegen. (Abb.: 3.1) 20

3 Dynamische Modellierung Abb. 3.1: Sequenzdiagramm Aufgabe 1.10: Supermarktkette Eine Supermarktkette wird durch eine Zentrale verwaltet. Eine Kasse speichert am Morgen die bereitgestellte Bargeldeinlagen und den aktuellen Kassenstand. Wenn ein Kunde bezahlt, wird der Kassenstand um diesen Betrag erhöht. nach Geschäftsschluss wird von der Zentrale die gesamte Tageseinnahme aller Märkte ermittelt. Klassendiagramm siehe Abb.: 3.2. Berechnen der Gesamteinnahmen durch die Zentrale. Vorgehensweise: Jeder Supermarkt wird nacheinander die Nachricht berechnetageseinnahme geschickt. Die zurückgegebenen Werte werden aufaddiert und bilden die Gesamttageseinnahme. Jeder Supermarkt verfährt mit seinen Kassen ebenso. Lösung siehe Arbeitsblatt 1/2006-10-09 Seite 28. 21

3 Dynamische Modellierung Abb. 3.2: Klassendiagramm Aufgabe 1.10 Aufgabe 1.11: Lagerhaltung Eine Firma stellt ihre Produkte auf Paletten bereit. Einem Kundenauftrag, der zur Auslieferung ansteht, werden paletten zugeordnet. Bis zur abholung werden die Paletten entweder in einem der Hochregallager oder in einem der Lagerräume eingestellt. Zur Abholung durch den Kunden werden die Paletten in einem 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

3 Dynamische Modellierung 3.2 Das Kollaborationsdiagramm Ein Kollaborationsdiagramm ist ein Interaktionsdiagramm bei dem die strukturelle Organisation der Objekte im Vordergrund steht. In einem Kollaborationsdiagramm werden die Objektbeziehungen durch Verbindungslinien ausgedrückt. Um die Kommunikation zwischen den Objekten darzustellen, wird der Methodenname zusammen mit einem Pfeil an der Verbindungtslinie 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 der hierarchischen Nummerierung verdeutlicht. (Abb.: 3.3) Abb. 3.3: Kollaborationsdiagramm 23

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

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

4 Nebenläufigkeit 4 Nebenläufigkeit Unter Nebenläufigkeit versteht man, dass in einem Programm mehrere Anweisungsfolgen parallel abgearbeitet werden. Eine solche Anweisungsfolge bezeichnet man als Thread. Beim Arbeiten mit Threads ist darauf zu achten, dass bei gemeinsamem genutzten Ressourcen durch mehrere Threads keine Nutzungskonflikte entstehen. Um dies zu verhindern, muss ein Zugriff synchronisiert werden. Zu diesem Zweck fordert ein Thread über ein Lock einen exklusiven Zugriff an. Der Zugriff durch andere Threads ist dann so lange blockiert, bis das Lock wieder aufgehoben wird. Wird ein Lock nicht wieder aufgehoben, kann es zu einem Deadlock kommen, wenn ein Thread auf die Freigabe der Ressource wartet. Beispiel: Der Wert einer Speicherzelle soll mit der Methode austauschen() getauscht werden. Diese Methode wird durch den Akteur angestossen, der als Argument die Partnerzelle für den Tausch mit angibt. Um einen Ressourcenkonflikt zu vermeiden, setzt die Speicherzelle, die den Austauschaufruf erhält, ein Lock auf sich selbst und dann ein Lock auf die Partnerzelle. Besteht noch ein Lock auf eine der beiden Zellen, o wartet die Methode bis das fremde Lock aufgehoben wurde. (Abb.: 4.1) 26

4 Nebenläufigkeit Abb. 4.1: Nebenläufigkeit 27

5 Arbeitsblätter 5 Arbeitsblätter Abb. 5.1: Arbeitsblatt 2006-10-09 28

5 Arbeitsblätter Abb. 5.2: Arbeitsblatt 2006-10-11 29

5 Arbeitsblätter Abb. 5.3: Arbeitsblatt 2006-10_a 30

5 Arbeitsblätter Abb. 5.4: Arbeitsblatt 2006-10_b 31

Stichwortverzeichnis Stichwortverzeichnis Aggregation, 11, 12 Aggregationsklasse, 12 Aggregationsobjekt, 12 Assoziation, 6 binäre, 6 mehrfach, 10 reflexiv, 6 Attribut, 5 Entwurfsschicht, 6 Ganz-Teil-Beziehung, 11 Generalisierung, 16 Instanz, 5 Interaktion, 20 Interaktionsdiagramm, 20, 23 Kardinalität, 12 Klasse, 5, 9 11 Definition, 5 Klassendiagramm, 6, 20 Kollaborationsdiagramm, 20, 23 Komposition, 11, 12 Objekt, 5, 9, 12, 16, 20, 23 Definition, 5 Objektbeziehungen, 23 Objektdiagramm, 7 Objektmodell, 20 Oder-Restriction, 9 Sequenzdiagramm, 20 Subklasse, 16 Superklasse, 16 Teilobjekt, 12 Thread, 26 UML, 5 Unified Modeling Language, 5 Untermengenrestriction, 10 Verallgemeinerung, 16 Vererbung, 16 Methode, 5, 16 Methodenaufruf, 20 Modellierung dynamisch, 20 Modellierungssprache, 5 Modellwelt, 5 Nebenläufigkeit, 26 Deadlock, 26 Lock, 26 Nutzungskonflikte, 26 Thread, 26 32