Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Dozenten: Markus Rentschler Andreas Stuckert Version 18.05.2014 Software Engineering I VE 04: Einführung UML Vorlesung Software Engineering I Einführung.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Dozenten: Markus Rentschler Andreas Stuckert Version 18.05.2014 Software Engineering I VE 04: Einführung UML Vorlesung Software Engineering I Einführung."—  Präsentation transkript:

1 1 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Vorlesung Software Engineering I Einführung UML Verhaltensidagramme Strukturdiagramme Design Pattern

2 2 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Statik FunktionenDatenDatenstrukturenArchitektur Dynamik KontrollstrukturenZuständeProzesseZeitliches Verhalten Logik AbhängigkeitenEntscheidungstabellenMathematikRegeln Systemsichten und Modellierung Beschreiben das Verhalten und die Veränderungen während der Laufzeit. Beschreiben die feste Struktur des Systems, die sich während der Laufzeit nicht ändert. Beschreiben die Programmfunktion logisch und mathematisch

3 3 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Unified Modelling Language (UML) UML = Sprache zur Beschreibung von Softwaresystemen 3 Grundgedanke: Einheitliche Modellierungs-Notation für alle Softwaresysteme -UML entstand aus mehreren bestehenden Notationen -UML ist eine Notation, keine Methode ! -UML ist ein Werkzeug für Systemanalyse und Systemdesign -Unterstützung durch viele CASE-Tools Verschiedene Diagrammtypen, die sich gegenseitig ergänzen können und verschiedene Systemaspekte hervorheben

4 4 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Geschichte der UML

5 5 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Diagrammarten UML Diagrammübersicht siehe sieben Strukturdiagrammesieben Verhaltensdiagramme

6 6 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Verhaltensdiagramme Anwendungsfalldiagramm (Use Case Diagram) (stellt Beziehungen zwischen Akteuren und Anwendungsfällen dar) Aktivitätsdiagramm (Activity Diagram) (beschreibt Abläufe, die aus einzelnen Aktivitäten bestehen) Zustandsdiagramm (Statechart Diagram) (beschreibt endliche Zustandsautomaten für ein Objekt oder System) Sequenzdiagramm (Sequence Diagram) (beschreibt den zeitlichen Ablauf von Nachrichten zwischen Objekten) Kommunikationsdiagramm (Communication Diagram, ehem. Kollaborationsdiagramm) (Interaktionsdiagramm, zeigt Beziehungen und Interaktionen zwischen Objekten) Zeitverlaufsdiagramm (Timing Diagram) (Interaktionsdiagramm mit Zeitverlaufskurven von Zuständen) Interaktionsübersichtsdiagramm (Interaction Overview Diagram) (Interaktionsdiagramm zur Übersicht über Abfolgen von Interaktionen, ähnlich Aktivitätsdiagramm)

7 7 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Use-Case-Diagramme Beschreiben das Zusammenwirken von Aktoren [bspw. Personen] mit einem System Use-Case-Diagramme sind Verhaltensdiagramme: Sie beschreiben bestimmte Aspekte, wie sich ein System verhält. Im Use-Case-Diagramm können wesentliche Funktionen des Systems hervorgehoben und zueinander in Beziehung gesetzt werden. Diesen Diagrammen fehlt jedoch eine Möglichkeit, die Reihenfolge der Ausführung festzulegen.

8 8 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Use Case Diagramm: Notation Akteur

9 9 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Use Case Diagramm: Notation

10 10 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktionen In UML2 sind die Spracheinheit Aktionen (engl. actions) elementare Bausteine zur Verhaltensmodellierung. Ein- und Ausgabewerte werden über sog. Eingabepins entgegengenommen an sog. Ausgabepins ausgegeben.

11 11 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Spezielle Aktionen Die UML2 definiert einen Satz von elementaren Aktionen und teilt diese in mehrere Gruppen ein. Im folgenden eine Auswahl:

12 12 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivität Eine Aktivität ordnet Aktionen als elementare Verhaltensbausteine in einem Netzwerk an, das aus Knoten und Kanten besteht. Aktivitätskanten sind in zwei Hauptgruppen eingeteilt: –ein Kontrollfluss ist eine Aktivitätskante, über die keine Objekt-Token fließen –ein Objektfluss ist eine Aktivitätskante, über die Objekt-Token von einem Objektknoten zum nächsten fließen können

13 13 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivitätsdiagramm (Flussnotation) Das UML-Äquivalent zum Flussdiagramm Beispiel:

14 14 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivitätsdiagramm (Knoten-Notation) Knoten-Notation: Zur Darstellung von Kontrollstrukturen ähnlich wie Struktogramme Unterstützt strukturierte Programmierung besser als Fluss-Notation

15 15 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivitätsdiagramm: Notation Aktivität Aktivität1Aktivität2 [Bedingung] Aktivität Kontrollfluß Aktivität2 wird nach Abschluß von Aktivität1 gestartet. Verzweigunsaktivität (kann auch durch normale Aktivität dargestellt werden) Kontrollfluß, der unter der angegebenen Bedingung gewählt wird. Synchronisation der Kontrolle (AND) mit Synchronisationsbedingung (Die Bedingung ist optional.) Aufsplitten der Kontrolle (Zulassen von Parallelität) [Bedingung]

16 16 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivitätsdiagramm: Notation Aktivität Objekt [Zustand] Aktivität Klasse Die Ausführung der Aktivität versetzt das Objekt in den angegebenen Zustand (optionales, selten verwendetes Konstrukt in Aktivitätsdiagrammen). Überlappung zu Zustandsdiagrammen ! Beispiel: aus dem Aktivitätsdiagramm wird eine Bestellung in den Zustand abgewiesen versetzt (was bedeutet das,für das Zustandsdiagramm?) Aktivität wird durchgeführt, wenn über einen der eingehenden Kontrollflüsse die Kontrolle ankommt (OR) Start des Ablaufs und Identifikation der betroffenen Klasse Ende des Ablaufs (optional)

17 17 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML2: Aktivitätsdiagramm Veränderungen gegenüber der UML1: In der UML1 waren die Aktivitätsdiagramme eine spezielle Form der Zustandsdiagramme. In der UML2 sind die Aktivitätsdiagramme eigenständig. Einige Begriffe der UML1 wurden weiterverwendet, bekamen aber eine vollständig neue Bedeutung. Ein Aktivitätsdiagramm in UML2 beschreibt eine Aktivität, die Teilschritte werden Aktionen genannt. In der UML1 wurden die Teilschritte eines Aktivitätsdiagramms Aktivitäten genannt; die Aktivitäten der UML1 heißen jetzt Aktionen, das Aktivitätsdiagramm von UML1 heißt jetzt Aktivität. Aktivitätsmodelle haben jetzt eine starke Ähnlichkeit zu Petrinetzen. Ein Aktivitätsdiagramm darf mehrere Anfangszustände haben. Signale, Zeitereignis und das Ablaufende wurden als neue Notationselemente eingeführt. Aktivitätsdiagramme dürfen Ein- und Ausgabeparameter enthalten.

18 18 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Beispiel Geschäftsprozessmodellierung Mit BPMN gibt es auch eine UML-Erweiterung für Geschäftsprozesse:

19 19 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Aktivitätsdiagramme (Bewertung) Ein Aktivitätsdiagramm beschreibt die Reihenfolge und Abhängigkeiten von logisch zusammengehörenden Aktionen. Die Aktionen eines Aktivitätsdiagramms sind Objekten zugeordnet (Unterschied zur Funktionsorientierung von Datenflußdiagrammen !) Geeignet für die Modellierung von Geschäftsprozessen über die Grenzen von Anwendungsfällen hinweg. geeignet für die detaillierte Analyse von Anwendungsfällen. geeignet für die Modellierung von parallelen Software-Systemen mittels Partitionierung (sog. Swimlanes) nicht geeignet für die Beschreibung der Interaktion von Objekten nicht geeignet für die Zustandsübergänge eines einzelnen Objektes

20 20 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML: Interaktionsdiagramme Beschreiben zeitliche Abläufe (Aufrufsequenzen) zwischen (bekannten) Objekten Zwei semantisch äquivalente Darstellungen: (Andere Darstellung, aber dieselbe Sicht) –Sequenzdiagramm - Verwendung bei wenigen Klassen - Zeitablauf klar ersichtlich - Basierend auf den Message Sequence Charts (MSCs) der ITU-T –Kommunikationsdiagramm - Verwendung bei wenigen Nachrichten - Zeitablauf weniger klar ersichtlich

21 21 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Sequenzdiagramm: Notation ZEIT

22 22 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Sequenzdiagramm: Notation

23 23 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Kommunikationsdiagramm: Notation

24 24 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Kommunikationsdiagramm: Beispiel Pfandmaschine FlaschenMechanik 1: nimmEineFlasche() 2: [Genommen==TRUE] habeFlasche() Nachricht Objekt Sequenznummer

25 25 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Kommunikationsdiagramm: Bewertung Vorteile: Darstellung von sowohl dynamischen als auch statischen Beziehungen zwischen Objekten. Darstellung komplexer Strukturen und Abläufe möglich. Nachteile: Zeitlicher Verlauf ist weniger übersichtlich.

26 26 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Kommunikations- vs. Sequenzdiagramm Beide Diagramme modellieren denselben Sachverhalt !

27 27 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML: Strukturdiagramme Klassendiagramm (Class Diagram) (wichtigstes Diagramm: Klassen und ihre Beziehungen untereinander) Paketdiagramm (Package Diagram) (Gliedert Softwaresysteme in Untereinheiten) Objektdiagramm (Object Diagram) (Objekte, Assoziationen und Attributwerte während Laufzeit) Kompositionsstrukturdiagramm (Composite Structure Diagram) (Abbildung innerer Zusammenhänge einer komplexen Systemarchitektur, Darstellung von Design Patterns) Komponentendiagramm (Component Diagram) (Komponenten und ihre Beziehungen und Schnittstellen) Verteilungsdiagramm (Deployment Diagram) (Einsatzdiagramm, Knotendiagramm, Laufzeitumfeld) Profildiagramm (Profile Diagram) Seit UML 2.2, um eigendefinierte Stereotypen-Sammlungen strukturieren zu können.

28 28 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Konto Kontonummer: 1007 Inhaber: Emil Braun Kontostand: 560,60 EUR Kontostand abfragen => 560,60 EUR Einzahlen 200,- EUR Konto Kontonummer: 1009 Inhaber: Helga Schmitt Kontostand: 1.340,- EUR Abheben 300,- EUR Konto Kontonummer Inhaber Kontostand Einzahlen Abheben Kontostand abfragen Attribute Methoden Kontomodell Klasse Objekt

29 29 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML + für public # für protected ~ für package für private Abstrakt: kursiv geschriebener Klassennamen. Oder {abstract} Klassenname. Notationsbeispiel: Klassendiagramm: Notation

30 30 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Klasse1 erbt von Klasse2 (Klasse1 spezialisiert Klasse2) Beziehung zwischen Klasse 1 und Klasse 2 Gerichtete Assoziation Navigierbar: von Klasse 1 nach 2 nicht navigierbar: von Klasse 2 nach 1 Beziehung zwischen Klasse 1 und Klasse 2 Klassendiagramm: Notation

31 31 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Klasse1 realisiert Klasse2 Aggregation: Teil des Ganzen. Der Teil kann aber auch alleine bestehen. Komposition: Existenzabhängiges Teil kann nur in Verbindung mit dem Ganzen existieren. Klassendiagramm: Notation

32 32 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Das Objektdiagramm soll verdeutlichen, wie die Attribute einer Klasse zu einem bestimmten Zeitpunkt (Momentaufnahme) des Programms sind. => Es werden die Ausprägungen einer Klasse dargestellt Objektdiagramm: Notation

33 33 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Die Komponenten (Assoziationen, Vererbungspfeile, usw.) sind genau gleich wie beim Klassendiagramm. Unterschiede zum Klassendiagramm: - Es werden nur die Attribute mit ihren Werten eingetragen (nicht die Methoden) - Statt dem Klassennamen wird das Objekt folgendermaßen bezeichnet: - Objektname:Klassenname (Wichtig: Unterstreichen nicht vergessen! Mit Unterstreichen wird deutlich gemacht, dass es sich um Objekte handelt. Dies gilt für alle UML-Diagramme) - Bei unbekanntem Objektnamen: :Klassenname - Datentypen können fortgelassen werden! Objektdiagramm: Notation

34 34 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML - Eine Komponente ist eine austauschbare Einheit - Diese Einheit ist ausführbar - Komponenten bieten Schnittstellen - Komponenten nutzen Schnittstellen anderer Komponenten Komponentensymbol UML: Komponentendiagramm

35 35 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Komponenten enthalten z.B.: - Klassen - Pakete - Komponenten Verschiedene Darstellungsweisen: UML: Komponentendiagramm

36 36 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML: Komponentendiagramm

37 37 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Implementierungsdiagramme Zur Darstellung von Aspekten der Implementierung. –Dies betrifft sowohl die statische Code-Struktur als auch die Systemstruktur zur Ausführungszeit (Runtime). Speziell bei verteilten Anwendungen und Komponenten ist dies von besonderer Bedeutung. Die UML sieht zwei Implementierungsdiagramme vor: Komponentendiagramm –Komponentendiagramme zeigen den Aufbau des Applikationscodes Verteilungsdiagramm –Verteilungsdiagramme zeigen die Struktur des Laufzeitsystems, (Physische Struktur)

38 38 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML:Komponentendiagramm

39 39 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML UML: Verteilungsdiagramm

40 40 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Bsp. Verteilungsdiagramm Knoten Kommunikation

41 41 Dozenten: Markus Rentschler Andreas Stuckert Version Software Engineering I VE 04: Einführung UML Übung UML Design Pattern Praxisprojekt Erstellen Sie für Ihre Systemmodellierung ein Design Pattern in UML Benutzen Sie dazu ein CASE-Tool Starten sie mit einem Use-Case-Diagramm Fügen sie jedem Use-Case ein Aktivitätsdiagramm hinzu Modellieren Sie die Systemarchitektur mit einem Component/Deployment Diagram Fügen Sie jeder Komponente ein State Diagramm hinzu etc.


Herunterladen ppt "1 Dozenten: Markus Rentschler Andreas Stuckert Version 18.05.2014 Software Engineering I VE 04: Einführung UML Vorlesung Software Engineering I Einführung."

Ähnliche Präsentationen


Google-Anzeigen