UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines...

27
E183 - Institut f. Rechnergestützte Automation Department of Automation Forschungsgruppe für Industrielle Software (INSO) www.inso.tuwien.ac.at E188 - Institut f. Softwaretechnik und Interaktive Systeme, Information & Software Engineering Group Quality Software Engineering (QSE) Research qse.ifs.tuwien.ac.at UML Tutorial Erik Gostischa-Franta Vienna University of Technology Institute of Software Technology and Interactive Systems [email protected] http://qse.ifs.tuwien.ac.at Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO) Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 2 Inhalt 1. UML Einführung & Domänen 2. Anwendungsfall-diagramm 3. Anwendungsfall-beschreibung 4. Klassendiagramme

Transcript of UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines...

Page 1: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

E183 - Institut f. Rechnergestützte Automation Department of Automation Forschungsgruppe für Industrielle Software (INSO) www.inso.tuwien.ac.at

E188 - Institut f. Softwaretechnik und Interaktive Systeme, Information & Software Engineering Group Quality Software Engineering (QSE) Research qse.ifs.tuwien.ac.at

UML Tutorial

Erik Gostischa-Franta

Vienna University of Technology Institute of Software Technology and Interactive Systems

[email protected] http://qse.ifs.tuwien.ac.at

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 2

Inhalt

1.  UML Einführung & Domänen

2.  Anwendungsfall-diagramm

3.  Anwendungsfall-beschreibung

4.  Klassendiagramme

Page 2: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 3

UML Allgemein 1/2

!  UML, Unified Modelling Language, ist standardisiert

!  UML ist Standardsprache für Visualisierung, Spezifikation, Konstruktion und Dokumentation komplexer Softwaresysteme.

!  UML kombiniert Konzepte aus: !  Objektorientierter Modellierung !  Datenmodellierung (Entity Relationship Diagrams) !  Business-Modellierung (work flow) !  Component Modeling

!  UML bietet Entwicklern und Kunde die Möglichkeit zur Diskussion von z.B. Softwareentwürfen und -entwicklungen auf einer einheitlicher Basis.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 4

Die Unified Modelling Language ist:

•  nicht spezialisiert auf ein Anwendungsgebiet

•  keine rein formale Sprache

•  keine Programmiersprache

•  nicht vollständig

•  nicht perfekt

•  kein vollständiger Ersatz für Textbeschreibung

•  keine Methode oder kein Vorgehensmodell

UML Allgemein 2/2

Page 3: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 5

Diagramme der UML

Interaktionsdiagramme

Verhaltensdiagramme Strukturdiagramme

!  Gekennzeichnete Diagramme werden häufig in der SE&PM LU verwendet.

Klassen- Paket- Objekt- Kompositionsstruktur- Komponenten- Verteilungsdiagramm

Use-Case- Aktivitäts- Zustandsdiagramm

Sequenz- Kommunikations- Timing- Interaktionsübersichts- diagramm

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 6

Zweck des UML-Tutorials

!  Using UML

!  Vorbereitung auf das Einzelbeispiel und Gruppenphase

!  Praktische Verwendung von UML im Software Engineering

!  Inhalt des UML Tutorials ist Prüfungsstoff für den Einstiegstest

!  Wo und Wie soll UML Verwendet werden?

!  Schon zu Projektbeginn wird mit UML Modelliert (z.B.Domänenmodell), aber im weiteren Projektverlauf steht mehr und mehr echte Software hinter dem Konzeptionellen Modell.

!  UML Anwendungsfälle: Erhebung der Anforderungen !  UML Klassendiagramme: Technisches Design & Projektplanung

!  Grundkenntnissen der Programmierung (EPROG, OOP) und Domänenmodellierung (Datenmodellierung, OOM) sind notwendig um die in diesem Tutorial beschriebenen Konzepte und Vorgehensweisen anzuwenden.

Page 4: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 7

Domäne "MP3-Player"

Anhand einer MP3-Player Applikation soll hier im weiteren Verlauf UML an praktischen Beispielen erläutert werden.

Es handelt sich um ein sehr einfaches System zum:

!  Abspielen von Musik

!  Playlist Verwaltung !  Importieren/Suchen/Löschen/Sortieren

!  Verwalten von Musik Dateien !  Create, Read, Update, Delete (CRUD)

!  Anzeigen von musikspezifischen Infos !  LastFM, Lyric Wiki, MusicBrainz

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 8

Domäne "Bibliotheksverwaltungssystem"

Anhand eines Bibliotheksverwaltungssystem soll hier im weiteren Verlauf UML an praktischen Beispielen erläutert werden.

Es handelt sich um ein sehr einfaches System zur:

!  Verwaltung der Bücher

!  Verwaltung der personenbezogenen Daten

!  Tägliche Routine

!  Buchdaten, Zustandsbeschreibungen, Standortinformationen

!  Mitarbeiter und Kunden

!  Suchen und Ausleihen der Bücher

Page 5: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 9

Inhalt

1.  UML Einführung & Domänen

2.  Anwendungsfall-diagramm

3.  Anwendungsfall-beschreibung

4.  Klassendiagramme

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 10

UML Anwendungsfälle

Ein Anwendungsfall (engl. use case) beschreibt das Verhalten eines Aktors, welches einen Teil der Funktionalität des Gesamtsystems repräsentiert. Ein Anwendungsfall sollte primär einen logischen zusammengehörigen, wiederkehrende Ablauf von Aktionen innerhalb des Systems darstellen welcher ein beobachtbares Resultat für den Aktor zu folge hat.

Was definiert einen Anwendungsfall?

!  Name: kurzer Ausdruck mit einem möglichst starken Verb !  Primäre Aktoren, Vorbedingungen, Nachbedingungen, Szenario, Alternativszenario (Anwendungsfallbeschreibung)

Anwendungsfälle können mit einem Anwendungsfalldiagramm graphisch dargestellt werden.

Page 6: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 11

UML Anwendungsfalldiagramm Übersicht

Kommunikationslinie

Include Beziehung

Extends Beziehung

<extends>

Generalisierung

<include>

UML Extension Points

12

!  Anwendungsfallbeschreibung

!  Anwendungsfalldiagramm

Name: Bücher suchen Primärer Aktor: ... Vorbedingungen: ... Szenario: 1. ...

2. Extension Point: Suchergebnis drucken

3. ...

Page 7: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 13

Aktorenhierarchie

Ein Aktor ist ein bestimmter Benutzer, der im System genau definierte Rechte und Aufgaben hat. Ein Aktor benützt das System und führt Anwendungsfälle aus.

Dieser User kann keine bestehenden Daten ändern außer die von ihm angelegten Reservierungen

Kann Bücher suchen, reservieren und bestellen

Kunde (KD)

Keine Darf neue Bücher anlegen und bestehende Bücherdaten ändern, kann auch neue Bücher bei diversen Büchhändlern bestellen

Mitarbeiter (MA)

Systemtechniker besitzen uneingeschränkten Zugriff auf alle Bereiche im System

Uneingeschränkte Rechte im System

Admin (AD)

Anmerkungen Rechte Aktorename

Aktorenliste Beziehungs- Hierarchie

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 14

Anwendungsfalldiagramm

!  Akteure stehen klar außerhalb des Systems ! Ein Aktor hat genau dann eine Beziehung zu einem Anwendungsfall, wenn er ermächtigt ist, diesen durchzuführen bzw. mit diesen zu kommunizieren

!  Ein Anwendungsfall wird in Form einer Ellipse dargestellt. !  Die Bezeichnung des Anwendungsfalls wird in die Ellipse eingeschrieben. !  Ein Anwendungsfalldiagramm wird durch seine Systemgrenzen definiert.

Page 8: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 15

Anwendungsfall Beispiele

!  MP3-Player:

!  Bibliotheksverwaltung:

save playlist, delete song = system-level use case

= user-level use case

= enterprise-level use case

= system-level use case

= user-level use case

= enterprise-level use case

listen to playlist-mix, play recently imported songs

maintain music library, collect song information

verschicke E-Mail Benachrichtigung, Buch speichern

Buch entlehnen, Buch reservieren, Student eintragen

Buch katalogisieren, gesamten Buchbestand erfassen

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO) Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research

16

Abstraktionsstufen

!  Alle UML Diagrammarten haben Abstraktionsstufen! Z.B. Klassendiagramme:

!  Domänenmodell !  Komponentendiagramm !  Klassendiagramm (Impl)

!  Es werden drei Arten von Anwendungsfällen unterschieden !  System Level: Buch speichern (z.B. in der Datenbank) !  User Level: Buch entlehnen (auch User Goals genannt) !  Enterprise-Level: Buchbestand katalogisieren

!  Ein UML Diagramm ist ein Ausschnitt des UML Models.

!  Ein gutes UML Tool erlaubt Einfügen eines Modelelements in mehreren UML Diagrammen

Page 9: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Modelle und Diagramme

!  Elemente in unterschiedlichen Diagrammen können sich auf ein und das selbe Modellelement beziehen.

!  Ein UML-Modell ist eine Menge von Modellelementen (Klassen, Attribute, Interaktionen, Anwendungsfälle, etc.)

!  Ein UML-Diagramm ist eine graphische Darstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell)

!  Im Anwendungsfalldiagramm udX1 realisiert die Kollaboration einen Anwendungsfall.

!  Jene Kollaboration wird im Klassendiagramm cdX2 von Klassen A und B implementiert.

!  Verhalten der Klassen in X2 wird im Sequenzdiagramm sdX3 dargestellt.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO) Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 18

UML Anwendungsfälle Übungsbeispiel 1 !  Welcher User hat mehr Rechte im System, Admin oder Mitarbeiter?

!  Welche Anwendungsfälle kann der Mitarbeiter ausführen?

!  Welche Anwendungsfälle kann der Admin ausführen?

Page 10: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 19

UML Anwendungsfälle Übungsbeispiel 2

!  Modellieren Sie folgende Anwendungsfälle:

!  Im System gibt es die User Mitarbeiter und Admin.

!  User Admin hat mehr Rechte im System als Mitarbeiter.

!  Beide können sich im System einloggen.

!  Nach dem Einloggen können beide ihr persönliches Passwort ändern.

!  Weiters haben beide die Möglichkeit neue Buchdaten einzugeben.

!  Der Admin hat außerdem noch die Möglichkeit Benutzer zu sperren und neue Benutzer anzulegen.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 20

UML Anwendungsfälle Übungsbeispiel 2 Lösung

Page 11: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 21

UML Anwendungsfälle Übungsbeispiel 3

!  Modellieren Sie folgende Anwendungsfälle:

!  Ein Student kann sich in der Bibliotheksverwaltung entweder per Matrikelnummer/Passwort oder per Retinascan einloggen.

!  Der Student kann Bücher suchen

!  Beim Suchen nach Bücher kann entschieden werden ein bestimmtes Buch zu entlehnen.

!  Um ein Buch zu entlehnen muss der Student eingeloggt sein.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 22

UML Anwendungsfälle Übungsbeispiel 3 Lösung

Student

Page 12: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 23

Inhalt

1. Einführung in UML

2. Anwendungsfalldiagramm

3. Anwendungsfallbeschreibung

4. Klassendiagramme

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 24

UML Anwendungsfallbeschreibung Jeder Anwendungsfall bedarf einer genauen Beschreibung, die man wie folgt einteilen kann:

1.  „Identification summary“: •  Titel des Anwendungsfalles (2-7 Wörter mit starkem Verb) •  Scope (Use Case Package) •  Level (User, System, Enterprise) •  Welche Aktoren sind beteiligt •  Kurzbeschreibung des Anwendungsfalles (“Aktor interests”)

2.  „Scenarios“: •  Vorbedingungen – Voraussetzungen für erfolgreiche Ausführung (andere Use Cases) •  Hauptszenario – was soll abgebildet werden •  Fehlersituationen – was passiert im Fehlerfall, Systemzustand •  Alternativszenario – gibt es Alternativabläufe, wo sind die Abweichungen? •  Nachbedingungen – Systemzustände nach erfolgreicher Ausführung (andere Use Cases)

3.  „Non-functional constraints“ - NFAs, Bemerkungen, Angaben über Häufigkeit, …

Page 13: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 25

Anwendungsfallbeschreibung Beispiel 1/2 1.  „Identification summary“

•  Titel: Buch suchen •  Scope: Suche •  Level: User Goal •  Aktoren: Student •  Kurzbeschreibung: Der Student sucht nach einem bestimmten Buch.

2.  „Scenarios“:

•  Vorbedingungen: Student authentifizieren/einloggen •  Hauptszenario: Der Anwender gibt die Suchkriterien für ein Buch ein (Titel, Autor, Verlag,

Kategorie). Das System zeigt die zu den Kriterien gefundenen Bücher an. Der Anwender wählt einen Datensatz aus und die Liste mit den Suchergebnissen wird geschlossen.

•  Fehlerszenario: Kann der Connect zur Datenbank nicht aufgebaut werden, dann wird noch 2x versucht den Connect zur DB herzustellen. Sind alle 3 Versuche erfolglos wird eine Fehlermeldung ausgegeben.

•  Alternativszenario: Das System kann kein Buch zu den angegebenen Kriterien finden, es wird eine Fehlermeldung ausgegeben.

•  Nachbedingungen: Student kann ein gefundenes Buch entlehnen (andere Use Cases)

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 26

Anwendungsfallbeschreibung Beispiel 2/2

1.  „Identification summary“ 2.  „Scenarios“: 3.  „Nonfunctional Constraints“ oder „Special Requirements“

•  Der User sollte nicht zu lange auf das Suchergebnis warten müssen (max. 10 sek) •  Der Anwendungsfall „Buch suchen“ wird sehr häufig in einer Bibliothek Verwendung finden.

Page 14: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 27

Scenario Darstellungsformen 1.  User Story

1.  Eine User Story (Benutzergeschichte) ist eine in Alltagssprache formulierte Anforderung an die Software und umfasst in der Regel nicht mehr als ein paar Sätze.

2.  Liste von Aktivitäten

1.  Der Ablauf des Anwendungsfalls wird in Teil-Abläufe (Aktivitäten) zerteilt und als nummerierte Liste aufgeschrieben. Dieser Stil ermöglicht leichtes referenzieren von anderen Anwendungsfällen (extend, include).

3.  Ereignis/Aktions Stil („Flow of Events“)

1.  Um viele Verzweigungen im Ablauf oder viele Alternativ- bzw. Fehlerszenarien übersichtlich darzustellen ist der Ereignis/Aktions Stil sehr hilfreich.

4.  Aktivitätsdiagramm

1.  Um den Ablauf eines Anwendungsfalls übersichtlich darzustellen, etwa für ein Management Review, kann von einer User Story oder Liste von Aktivitäten ein UML Aktivitätsdiagramm gezeichnet werden.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 28

„Flow of Events“ Scenario

Häufige Anwendung finden auch Beschreibungen die in Ereignis und Aktion aufgegliedert werden:

E1) Der Anwender gibt Suchkriterien für ein Buch ein. (Titel, Autor, Kategorie)

A1) Das System sucht nach Büchern, die den eingegebenen Suchkriterien entsprechen.

E2) Es existieren Bücher, die den angegeben Suchkriterien entsprechen A2) Die Daten der Bücher werden angezeigt

AE2) Es wurde kein Buch mit den angegeben Suchkriterien gefunden AA2) Fehlermeldung ausgeben

AE3) Mit diesen Kriterien wurden zu viele Bücher gefunden AA3) Der Benutzer wird aufgefordert, die Suchkriterien zu verfeinern

E3) Der Anwender wählt einen der angezeigten Datensätze aus A3) Die Liste mit den Suchergebnissen wird geschlossen und der

ausgewählte Datensatz eventuell als Parameter an einen weiteren Anwendungsfall übergeben

Page 15: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 29

Liste von Aktivitäten mit UML Aktivitätsdiagramm Auch UML Aktivitätsdiagramme können verwendet werden um das Szenario eines Anwenungsfalls zu beschreiben:

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 30

Inhalt

1. Einführung in UML

2. Anwendungsfalldiagramm

3. Anwendungsfallbeschreibung

4. Klassendiagramme

Page 16: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 31

UML Klassendiagramm

Ad 1) Klassename und Schlüsselwörter (Zwingend)

Ad 2) Attribute (Attributname: Typ) (Optional)

Ad 3) Methoden, die die Klasse ausführen kann (Verhalten der Klasse) (Optional)

1. Abschnitt

2. Abschnitt

3. Abschnitt Das Attribut ist für alle Elemente, die sich im selben Packet wie die definierte Klasse befinden, sicht- und zugreifbar.

Package (~)

Nur Instanzen der Klasse, die das Attribut definiert, und Instanzen abgeleiteter Klassen dürfen zugreifen.

Protected (#)

Nur Instanzen der Klasse, die das Attribut definiert, dürfen zugreifen.

Private (-)

Jedes andere Element hat unein-geschränkten Zugriff.

Public (+)

Sichtbarkeit

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 32

UML Klassendiagramm Assoziationen 1/2

Klassen stehen zueinander in unterschiedlichen Beziehungen. Dies wird in Assoziationen dargestellt. Jede Assoziation wird durch eine Kardinalität mitbestimmt. Diese gibt an, wie viele Instanzen einer Klasse zu einer Instanz der Klasse am gegenüberliegenden Ende der Assoziation in Beziehung stehen können. An den Enden der Linie werden die Kardinalitäten angegeben, welche folgende Formen haben können:

!  Ein beliebiger Wert aus den natürlichen Zahlen wird durch einen Stern dargestellt (d.h. 0 bis beliebig viele)

Page 17: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 33

UML Klassendiagramm Assoziationen 2/2

Ein einzelner ganzzahliger positiver Wert (z.B. 1)

Ein Bereich von Werten, wobei der niedrigste vom höchsten Wert durch zwei Punkte getrennt ist

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 34

UML Klassendiagramm Generalisierung !  Allgemeine Gemeinsamkeiten werden in so genannten Oberklassen zusammengefasst. Generalisierung ist eine Relation zwischen einem allgemeineren (Eltern-) und einem spezielleren (Kind-) Element. !  Das Kindelement ist mit dem Elternelement verträglich und fügt weitere Informationen hinzu. !  Ein typisches Beispiel dafür ist Mitarbeiter und Kunde.

Page 18: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 35

UML Klassendiagramm Aggregation

!  Eine Aggregation drückt eine „Teile-Ganzes-Beziehung“ aus. !  Im Kern ist die Aggregationsbeziehung nichts anderes als eine abkürzende

Schreibweise der Rollen „besteht aus“ und „ist Teil von“

!  Dieses Beispiel bedeutet, dass ein Mensch Teil keiner, einer oder mehrerer Personengruppen ist. Eine Personengruppe besteht aus mind. einer Personen, kann aber auch mehrere Personen beinhalten.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 36

UML Klassendiagramm Komposition

!  Eine strengere Form des Zusammenhanges wird durch die Komposition definiert. Teile und Ganzes bilden eine Einheit.

!  Deshalb gilt hier auch die verschärfende Einschränkung, dass ein Teil zu einem Zeitpunkt genau einem Ganzen zugeordnet sein darf.

!  Die Lebensdauer der Teile hängt von der Leibensdauer des Ganzen ab. Wird das Ganze zerstört, „sterben“ auch die dazugehörigen Teile.

Page 19: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 37

UML Sichten auf Softwarestrukturen

!  Konzeptionelle Sicht Gibt eine Übersicht über den zu untersuchten Problembereich z.B. Domänenmodell

!  Spezifizierende Sicht Hier betrachten wir Software, aber wir betrachten Schnittstellen, keine Implementierungen. z.B. Komponentendiagramm

!  Implementierende Sicht Bei dieser Sichtweise haben wir wirklich Klassen, und wir legen die Grundlage für die Implementierung. Dies ist vermutlich die am häufigsten eingenommene Betrachtungsweise. z.B. Klassendiagramm

nach Martin Fowler und Kendall Scott: „UML konzentriert“

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 38

Konzeptionelle Sicht

!  Beispiel: MP3-Player Domänenmodell !  Klassifizierung der Objekte der Realen Welt (Anwendungsbereich der Applikation)

Page 20: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 39

Spezifizierende Sicht

!  Beispiel: !  MP3-Player Komponente Persistance

!  Interfaces !  ITaggingDAO !  ISongDAO

!  Benötigte Typen (Interfaces) !  javax.sql.DataSource

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 40

Implementierende Sicht

!  Beispiel: !  MP3-Player Playlist Feature Klassendiagramm

!  Patterns: !  Interface !  Facade !  Data Access Object

Page 21: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 41

Komponentenorientierter Entwurf mit UML Klassendiagrammen !  Das Domänenmodell entsteht im Projektverlauf als erstes

!  Multiplizitäten der Assoziationen, auch Aggregats und Kompositionsbeziehungen, sollen Verwendet werden. !  Falls bereits bekannt bzw. wichtig, können Attribute der Klassen eingezeichnet werden. ! UML Stereotypen << >> können verwendet werden um Klassen zu typisieren für eine spätete Verfeinerung (sog. UML-Profiles)

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 42

UML Klassendiagramm Übungsbeispiel 1/2 (Implementations-Sicht)

!  Ein Buch kann entweder ein Sachbuch oder ein Roman sein. !  Ein Sachbuch hat einen Titel, eine Nummer und ein Wissenschaftsgebiet. !  Ein Roman hat eine Nummer, einen Titel und Seitenzahlen als Attribute. !  Die Nummer des Buches wird immer mit 1 initialisiert. !  Eine Roman ist entlehnbar. Ein Sachbuch nicht. Bei beiden kann man sich jedoch ein Datenblatt ausdrucken lassen. !  Jeder Raum einer Bibliothek enthält Bücher. !  Eine Bibliothek kann mehrere Räume haben, hat eine Adresse, eine Bezeichnung, einen Fachbereich und eine eindeutige Nummer. !  Ein Raum hat eine Raumnummer, die mit 01 initialisiert wird, und eine Bezeichnung

Page 22: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 43

UML Klassendiagramm Übungsbeispiel 1/2 Lösung

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 44

UML Klassendiagramm Übungsbeispiel 2/2 (Konzeptionelle-Sicht)

Entwerfen Sie ein neues Domänenmodel aus folgendem Sachverhalt:

!  Eine Bibliothek besteht aus mehreren Fachabteilungen und aus mehreren Räumen.

!  Jede Fachabteilung hat verschiedene Kategorien bzw. ist auf mehrere Räume aufgeteilt.

!  In jedem Raum kann 1 oder mehrere Regale stehen.

!  Eine Kategorie besteht aus mehreren Büchern.

Page 23: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 45

UML Klassendiagramm Übungsbeispiel 2/2 Lösung1

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 46

UML Klassendiagramm Übungsbeispiel 2/2 Lösung2

Page 24: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 47

UML Klassendiagramm Zusammenfassung

Mit Hilfe der Notation von UML Klassendiagrammen können in der SE&PM Übung folgende Arten von Daten modelliert werden

!  Domäneninformationen (Domänenmodell) !  Systemkomponenten/Schnittstellen (UML Komponentendiagramm) !  Struktur der implementierten OO Klassen (UML Klassendiagramm) !  Auch Datenbankschemata können in UML Klassendiagrammnotation ausgedrückt werden, ER oder EER ist jedoch üblicher.

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 48

UML Ausblick: Management Reviews

In der SE&PM Gruppenphase wird beim MR-2 verlangt die Systemarchitektur dem Assistenten zu präsentieren.

!  Architektur in SE&PM entsteht durch die Interaktion von vielen verschiedenen Arbeitsvorgängen

!  Modellierung, Design !  Konfiguration; Verwendete Werkzeuge, Frameworks !  Implementation; Patterns und Algorithmen

!  UML Diagramme für Management Reviews !  Klassendiagramm aus der Konzeptionellen Sichtweise (Domänenmodell) !  Anwendungsfälle, Use Cases !  Verteilungsdiagramm, Komponentendiagramm (Spez. Sichtweise)

!  Klassendiagramme aus der Implementierenden Sichtweise eher Gruppen- (Entwickler-) interne Artefakte

Page 25: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 49

Kritik: UML Diagramme zu „fad“ für Management Reviews

!  UML & Beschreibung der Systemarchitektur !  Model: Domänenobjekte + Teile der Persistenz und Service(BL) Schicht !  Struktur: Klassen-, Komponenten-, Verteilungsdiagramm !  Verhalten: Anwendungsfall-, Aktivitäts-, (Zustands-, Sequenzdiagramm)

!  Aber: !  Bei MR‘s sollten Diagramme verwendet werden um eine Übersicht der Architektur zu bekommen. !  Die meisten besprochenen Struktur Diagramme sind sehr technisch, kompliziert bzw. „fad

! UML & Erweiterungen (in SE&PM) !  <<Stereotypen>> !  Einbindung von Graphiken bzw. Farbliche Markierungen für Stereotypen

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 50

Bad-Practice „Systemarchitektur“

!  Unnötiges „Eye-Candy“

!  Statt Stereotypen, Wolke und Zylinder Graphiken verwendet

!  Die Komponenten selbst sagen wenig aus

!  Was wirklich interessant ist, sind die Verbindungen zwischen den Komponenten

!  Davon abgesehen, dass dies zwei völlig unterschiedliche Diagramme sind.

Page 26: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 51

Verteilungsdiagramm Beispiel (ASE LU)

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 52

Komponentendiagramm Beispiel (ASE LU)

Page 27: UML Tutorial - Assemblasvn2.assembla.com/svn/chte/folien/UMLTutorial.pdfDarstellung eines Ausschnitts des Modells (eine Sicht auf ein Modell) ! Im Anwendungsfalldiagramm udX1 realisiert

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 53

Andere nützliche UML Diagramme (SE&PM Eingangsphase)

!  Struktur der Software –  Schichtendiagramme

•  Können mittels UML-Packages modelliert werden •  Schicht impliziert Zugriff (Access) nach unten

!  Verhalten der Software –  UML Aktivitätsdiagramme

•  Als Unterstützung bei Use Cases

Institut f. Rechnergestützte Automation, Department of Automation, Forschungsgruppe für Industrielle Software (INSO)

Institut f. Softwaretechnik und Interaktive Systeme, IFS, Quality Software Engineering (QSE) Research 54

UML Book to get for SE&PM and ASE

!  Beginner –  Perdita Stevens; Using UML: Software Engineering Objects and Components; 2nd

Edition, 02.2006, Addison Wesley, 272 Seiten, 0321269675

!  Intermediate –  Grady Booch, James Rumbaugh, Ivar Jacobson; The Unified Modeling Language

User Guide; 2nd Edition, 05.2005, Addison Wesley, 496 Seiten, 0321267974

!  Advanced –  Craig Larman; Applying UML and Patterns: An Introduction to Object Oriented

Analysis and Design and Interactive Development; 3rd Edition, 11.2004, Prentice Hall, 736 Seiten, 0131489062

!  OR: Any UML Book that has „using“ or „applying“ as a Focus Point "