UML Unified Modeling Language Vortrag im Rahmen des Praktikums Telematik SS04 03.05.04 Bilmeze Atalan Biljana Sapundjieva Was ist UML? UML ist eine Sprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme. 1 Inhaltsverzeichnis • • • • • Anwendungsfalldiagramme Klassendiagramme Sequenzdiagramme Paket-Diagramme Deployment-Diagramme Anwendungsfalldiagramme Definition Anwendungsfall (use case): Eine Folge von Schritten (sequence of events), die die Interaktion eines Benutzers mit einem System beschreibt. Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 2 Bestandteile von Anwendungsfalldiagrammen • Akteuren • Anwendungsfällen • Beziehungen Bezeichner des Anwendungsfalles Die Arten von Beziehungen 1. Beziehungen zwischen Anwendungsfällen und Akteuren 2. include-Beziehung zwischen Anwendungsfall und Anwendungsfall 3. extend-Beziehung zwischen Anwendungsfall und Anwendungsfall 4. Generalisierung- und SpezialisierungsBeziehung: Diese Beziehung besteht immer zwischen Komponenten gleichen Typs. 3 Beispiel Szenario: Der Kunde durchstöbert einen Katalog und legt die ausgewählten Artikel in seinen Einkaufskorb. Zum Zahlen gibt er seine Versand- und Kreditkateninformation an und bestätigt seinen Kauf. Das System autorisiert den Verkauf mit einer Quittung und einer E-Mail an die Email-Adresse aus der Versandinformation. Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 Modellierung als Anwendungsfall • • • • • • • • • • • • Name des Anwendungsfalles: Einkauf eines Artikel Akteur: Kunde Ereignisfluss: Kunde durchstöbert den Katalog. Kunde wählt Artikel aus. Kunde legt die ausgewählten Artikel in den Einkaufskorb. Kunde gibt Versand- und Kreditkarteninformation an. Kunde bestätigt Kauf. Kunde gibt Kreditkarte an. System autorisiert die Kreditkarte. System bestätigt den Verkauf mit Quittung. System bestätigt Verkauf mit E-Mail an die E-MailAdresse aus der Versandinformation. Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 4 Modellierung als Anwendungsfalldiagramm Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 Klassendiagramme Ein Klassendiagramm beschreibt die Typen von Objekten im System und die verschiedenen Arten von statischen Beziehungen zwischen diesen. 5 Klassendiagramme bestehen aus: • • • • Klassen Assoziationen Aggregationen/Kompositionen Generalisierungen Klassen • Klassen sind Baupläne für Objekte. • UML-Darstellung: 6 Notation der Attribute • Notation: <Zugriffsmodifizierer><Name>:<Typ>[=<Initialwert>] • Beispiel: +name: String = Müller • Java: public String name=Müller; • Zugriffsmodifizierer: 1. +: public 2. - : private 3. #: protected Notation der Methoden • <Zugriffsmodifizierer><Name>(<Parameterliste>): <Rückgabetyp> • Notation der Parameterliste: • <Argument>:<Argumenttyp>[=Standardwert] • Beispiel: • -summe ( a: Integer, b: Integer) : Integer • in Java: private int summe(int a, int b){} 7 Kommentare in UML Assoziationen • Beschreiben allgemein Verbindungen zwischen Klassen • Besteht dann, wenn eine Klasse eine andere Klasse kennen muss, um ihre Aufgaben erfüllen zu können. 8 Multiplizitäten • Die Zahl an einem Assoziationsende, die besagt, wie viele Objekte an der Beziehung beteiligt sein können, heißt Multiplizität. • Beispiele für Multiplizitäten: – 0...* –1 – 0...1 Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 Aggregationen •Assoziationen •Ganzes-Teile-Hierarchie 9 Kompositionen • Spezialfall der Aggregation, bei denen die Teile existenzabhängig vom Aggregat sind Generalisierung (Vererbung) •Ermöglicht eine hierarchische Klassenstruktur Beispiel: 10 Beispiel für ein Klassendiagramm Vom Klassendiagramm zum Java Code • Assoziationen werden analog zu Attributen als Instanzoder Klassenvariablen übersetzt. • Ungerichtete Assoziationen werden durch je eine Variable in beiden assoziierten Klassen realisiert; für den Namen der Variablen bietet sich der Rollenname an. • gerichtete Assoziationen stellen eine Navigierbarkeit in der Pfeilrichtung an: – Die Klasse, von der der Pfeil ausgeht, hat eine Variable der anderen Klasse mit deren Rollenname Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 11 Vom Klassendiagramm zum Java Code • Beispiele für die Übersetzung der Multiplizität an einen Assoziationsende: – 1 wird übersetzt durch eine Variable, die auch instantiiert sein muss – * wird übersetzt durch eine Variable, die beliebig viele Objekte beinhalten kann, also ein Objekt vom Typ einer Sammlungs-Klasse (collection) • Reihung • Sequenz • Baum • Java.util.Vector Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 Übersetzung von Methoden im Klassen-Diagramm • Aus einer Beschreibung einer Methode im UMLKlassendiagramm (Implementierungsmodell) kann man folgende Informationen zur Code-Generierung entnehmen: – Name der Methode – Parameter – Ergebnistyp, falls vorhanden – Modifikatoren (private, protected, public, abstract) – Art der Methode: • Instanz-Methode oder Klassen-Methode Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 12 Übersetzung von Vererbung im Klassendiagramm • Beide Arten von Vererbung in UML haben ein Gegenstück in Java: • Implementierungsvererbung Æ Unterklassenbildung • Code der Oberklasse wird nicht geändert • Schlüsselwort extends in Unterklasse • • • • Schnittstellenvererbung Æ Implementierungsklassen, Code der Schnittstelle bzw. abstrakten Klasse wird nicht geändert Konkretisierung von abstrakten Klassen Schlüsselwort implements in Implementierungsklasse bzw. Konkretisierung von abstrakten Methoden Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 Probleme der Übersetzung der Mehrfachvererbung in Java • Mehrfachvererbung ist in Java nicht erlaubt • Lösung: – Komposition/Aggregation: von einer oder gewünschten Klassen wird eine Instanzvariable angelegt – Delegation: für jedes gewünschte Merkmal der aggregierten Klasse wird eine Methode definiert (eventuell sogar gleichen Namens), in der auf der Instanzvariable die entsprechende Methode aufgerufen wird. Der Aufruf wird also weitergegeben. Diese Weitergabe bezeichnet man als Delegation. 13 Beispiel für die Lösung von Mehrfachvererbung Beispiel für die Lösung von Mehrfachvererbung class Sicht extends java.awt.Button implements ModelChangeListener{ //Komposition private java.awt.Textfiel field; //Delegation public String getText(){ return field.getText(); } } Quelle: Professor Bernd Brügge, Ph.D, SS2001, Einführung in die Informatik 2 14 Beispiel für ein Klassendiagramm Vom Klassendiagramm zum Java Code public class Kunde{ Korb korb; Rechnung rechnung; Katalaog katalog; public Nummer kreditKartenNr(){} } 15 Vom Klassendiagramm zum Java Code public class Rechnung{ Kunde kunde; public String versandArt(){} public Daten kreditKartenDaten(){} public Rechnung erstelle(){} } Vom Klassendiagramm zum Java Code public class Katalog{ java.util.Vector artikel; public void stoebern(){} } 16 Vom Klassendiagramm zum Java Code public class Artikel{ Katalog katalog; Korb korb; public Artikel auswaehlen(){} } Vom Klassendiagramm zum Java Code public class Korb{ java.util.Vector artikel; public void hineinlegen(){} public void kaufBestaetigen(){} } 17 Sequenzdiagramme • Zeigt die Interaktion der Objekte in ihrer zeitlichen Abfolge • Im Vordergrund steht die Lebenszeit der Objekte im Bezug auf bestimmte Abläufe Beispiel für ein Sequenzdiagramm 18 Vom Sequenzdiagramm nach Java • Nachrichten werden in Java in Form von Methoden bzw. Methodenaufrufen implementiert • Für die Übersetzung in Programmcode sind folgende Punkte zu überlegen: • Wo wird der Code platziert? (in welchen Methoden?) • Auf welchen Objektinstanzen wird ein Methodenaufruf durchgeführt? • Unter welchen Bedingungen findet dieses Szenario statt? Java Code zum SequenzDiagramm • class Kunde{ ... f.Stoebern(); a.Auswaehlen(); b.Hineinlegen(); r.Versandart(); r.KreditkartenDaten(); b.Kaufbestaetigen(); } • class Katalog { ... stöbern() ... } 19 Java Code zum SequenzDiagramm • class Artikel{ ... auswaehlen() ... } • class Korb{ ... hineinlegen() ... kaufBestaetigen() ... } Java Code zum SequenzDiagramm • class Rechnung{ ... versandart() ... kreditkartenDaten() ... erstellen() ... pruefe() ... } 20 Das Paketdiagramm Dient – Strukturierung des Systems – Beschreibung von Abstraktionen – Gliederung von Klassendiagrammen Antwort auf die Frage: Wie kann ich das Modell so darstellen, dass ich den Überblick bewahre? Funktion Das Paketdiagramm • Bündelt zusammenhängende Klassen in ein Paket Æ vereinfachte, abstrakte Sicht auf System • Mehrere Abstraktionsebenen sind möglich ÆHierarchische Paketschachtelung Æ1 Paket kann aus anderen, detaillierteren Paketen bestehen Vorteil: Wiederverwendbarkeit von Paketen 21 Beispiel für ein Paket-Diagramm Deployment Diagramm • zur Darstellung der Hardware • Bestandteile eines Deployment-Diagramms: – Knoten – physikalische Verbindungen 22 Beispiel für ein DeploymentDiagramm Weiterführende Links / Literatur •The Unified Modeling Language User Guide Booch, Rumbaugh, Jacobsen, Addis-Wesley(1999) •Rational-Homepage: www.rational.com •Tutorial Uni Wien : http://qse.ifs.tuwien.ac.at/courses/SE1/UML_Tutorial_20040 308.pdf •UML konzertriert Fowler,Scott,Addis-Wesley(2000) •www.oose.de 23
© Copyright 2024 ExpyDoc