Download - große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected],

Transcript
Page 1: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

1

Spezifikation von Anwendungskernen (mit UML)

Vorlesung: Software-Engineering für große Informationssysteme

TU-Wien, Sommersemester 2003Bernhard AnzelettI

Page 2: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

2

Überblick

• Anwendungskern – wo finde ich den?• Spezifikation versus „Runterprogrammieren“

versus UML- Bilder• Dennoch UML!

Page 3: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

3

AnwendungskernWo finde ich den?

Electronic Clerk Electronic Clerk Electronic Clerk

Application Kernel

Database Access Layer

GatewaysPresentation Layer

Dialog Control

Input/Output Formats

Batch Control

Appl

icat

ion

Serv

ices

Page 4: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

4

AnwendungskernWo finde ich den?

Client Schicht Web KomponentenSchicht

Business LogikSchicht

EIS Schicht

Browser

AppletContainer

Web KomponentenContainer

EJB Container

Servlet

JSP

EJB

Applet

ERPSysteme

LegacySysteme

Daten-banken

Page 5: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

5

AnwendungskernVerantwortlichkeiten

• Ein Anwendungskern implementiert fachliche Funktionalität

• Seine Abstraktionen sind „fachliche Objekte “ und er hat dementsprechend „fachliche Aufträge“.

• Der Anwendungskern muß auch ohne GUI oder Oberfläche funktionieren

Page 6: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

6

Grundlage für Implementierungvon Software

• Das fachliche WAS muß präzise spezifiziert sein• WIE etwas implementiert wird, muß nicht

spezifiziert werden.• Präzision muß so gut sein, daß zwei Software-

anbieter aus einer Spezifikation Software bauen können, die sich identisch verhält und austauschbar ist.

Page 7: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

7

Nicht ausreichend sind also....

• Nennung von Funktionen• Es muß genau beschrieben werden, was die Funktionen tun• Die Ein-/ und Ausgabeparameter müssen genau beschrieben

werden• Nennung von Entitäten und Attributen

• Beziehungen müssen beschrieben werden• Attribute müssen typgenau beschrieben sein• fachliche Beschreibungen müssen vorhanden sein

• Aufzählung von Anforderungen• sind wichtig für den späteren Abgleich mit der spezifizierten

Funktionalität

Page 8: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

8

Ihre Leser sind ...

• Zuallerst Sie selbstSie strukturieren damit Ihre Arbeit

• Entwickler aus anderen Teilteams• die werden Sie reviewen und sich

informieren• und auch Mitarbeiter aus der Fachabteilung

• wir erinnern uns – dass Fachmitarbeiter Datenmodelle lesen und Datentypen definierenist Wunschdenken

Page 9: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

9

Vor der Spezifikation des Anwendungskerns sollten Sie ...

• Anforderungen gelistet haben• Geschäftsprozesse und deren Teilprozesse

genannt und beschrieben haben• Geschäftsvorfälle genannt haben• Wesentlichen Systemfunktionen katalogisiert

haben

Page 10: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

10

Und wie bitte beschreibe ich einen Anweungskern?

wait and see ☺

Page 11: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

11

Spezifikation versus „Runterprogrammieren“ versus UML-Bilder

Page 12: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

12

Bilder ...

• ein Bild sagt mehr als 1000 Worte• aber was sagen 1000 Bilder dieser Art ...

Page 13: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

13

Bilder ...• noch ein

schönesBeispiel ...

Page 14: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

14

einfach „Runterprogrammieren“?

• das geht solange man sich im Umfeld von XP bewegt

• Wir erinnern uns an die Voraussetzungen:• entsprechende Entwicklungsumgebung• Debuggen, Änderungen und Refactoring werden

einfach unterstützt• Kurze Compile oder Change Zyklen• in großen Team nicht erprobt

Page 15: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

15

einfach „Runterprogrammieren“?

• wenn Sie die Voraussetzungen von XP oder agilen Prozessen nicht erfüllen, haben Sie es mit der Änderungskostenkurve zu tun

Analysis Spec Code Test Test

Kosten einesAnalysefehlers,

der in der PhaseX gefunden wird

Page 16: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

16

Folgerung

• einfach Runterprogrammieren: Für große Systeme wegen der Arbeitsteiligkeit nicht geeignet

• und für „ältere Umgebungen“ mit langsamen Zyklen schon garnicht

• 1000 Bilder• es kann passieren, dass man dabei den Überblick verliert

• Also: Auf eine gesunde Mischung kommt es an aus• Bilder, Texten, Generierung ....

Page 17: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

17

Dennoch - UML!

Page 18: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

18DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Bei der Entstehung von OO waren Analyse- und Designmethoden gesucht

• Methoden tauchten auf....Jacobson – Use CasesRumbaugh – OMTBooch – OOA,OOD

•Leider: Jeder hat alles anders aufgeschrieben...

•UML = Vereinheitlichte Notation Objektorientierte Analyse und Design Gründung „Los tres amigos“ bei RationalSchaffung des Rational Unified ProcessHauptsächlich Grafiken„Prä-Programmierung“

•XMI = UML auf XML (Grafiken in XML-Code)

Was ist UML – kurze HistorieWas ist UML – kurze Historie

Page 19: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

19DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

Grundidee UMLGrundidee UML

Projektphasen

Analyse Design Codieren Test

UML

Page 20: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

20DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

UML und ProgrammierenUML und Programmieren

Integrierte Entwicklungsumgebung

UML-Tool Editor

Compiler

Debug,Test,

Optimize,Deploy

...

„RoundTrip“

XMI Generator

• UML ToolsRational RosePoseidon (OpenSource)MagicDraw UML ☺

Beispiel-Generator-Tipp: UML2EJB (http://uml2ejb.sourceforge.net/)

Page 21: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

21DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML – Sprache der DiagrammeUML – Sprache der Diagramme

Page 22: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

22DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagramme

• Ein UseCase beschreibt die Schnittstelle zwischen Benutzer (Akteur) und System für einen logischen Geschäftsvorgang.

•Er hat einen Standardablauf.

•Ausnahmefälle werden in „Szenarios“ dargestellt.

•UseCases dienen zur Abstimmung mit den Auftraggebern.

Was ist ein UseCase?Was ist ein UseCase?

System

UseCases

Page 23: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

23DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagramme

• Endbenutzer (als Rollen!)

• Andere Systeme (aktive und passive)

•Eventuell auch: Die Zeit

Gute BenutzerGute Benutzer

Die Systemgrenze muß klar definiert sein.Die Systemgrenze muß klar definiert sein.

Page 24: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

24DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagramme

• Der Makler drückt auf „Person suchen“.• Das System liefert die Suchmaske.• Der Makler füllt die Suchkriterien aus und drückt auf „Suche“.• Das System liefert eine Liste von gefundenen Personen.• Der Makler doppelklickt auf die zu ändernde Person.• Das System liefert die Personendetailmaske• Der Makler ändert den Namen• Der Makler drückt auf „Änderung durchführen“• Das System antwortet mit der „Name geändert“ Nachricht.

Namensänderung – Standard-UseCaseNamensänderung – Standard-UseCase

Page 25: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

25

{Vorbedingung: gesuchte Person ist nicht im System}

• Der Makler drückt auf „Person suchen“.• Das System liefert die Suchmaske.• Der Makler füllt die Suchkriterien aus und drückt auf „Suche“.• Das System liefert die Suchmaske mit der Rückmeldung „Für Ihre Eingabe wurde keine Person gefunden“.

DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagramme

Namensänderung – Szenario Person nicht gefundenNamensänderung – Szenario Person nicht gefunden

Page 26: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

26DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagramme

{Vorbedingung: gesuchte Person ist nicht im System}

• Der Makler drückt auf „Person suchen“.• Das System liefert die Suchmaske.• Der Makler füllt die Suchkriterien aus und drückt auf „Suche“.• Das System liefert die Suchmaske mit der Rückmeldung „Für Ihre Eingabe wurde keine Person gefunden“.

Namensänderung – Szenario Person nicht gefundenNamensänderung – Szenario Person nicht gefunden

Diesen Text muß man hier zweimal schreiben

Page 27: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

27DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagram

UseCase Diagram -Beispiel (ohne Worte)UseCase Diagram -Beispiel (ohne Worte)

Page 28: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

28DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagram

„extends“ - Sonderfunktion„extends“ - Sonderfunktion

• Makler können Anträge anlegen (UseCase 1)•Makler können auch Kunden anlegen (UseCase2)

•Beim Antragsanlegen können auch Kunden angelegt werden.

•UseCase „Kunden anlegen“ <<extends>> UseCase „Antrag anlegen“.

Page 29: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

29DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UseCase Diagram

„includes“ - Sonderfunktion„includes“ - Sonderfunktion

• Login an sich existiert nicht (nehmen wir mal an...)

•Bei egal welchem UseCase kann „Login“ gemacht werden.

•„Login“ ist in den anderen UseCases <<included>>.

Page 30: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

30DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 31: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

31DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Class Diagrams

• Bilden statische Aspekte ab (früher: Datenmodell)

• Werden im Lauf der Zeit „entdeckt“

• Klassen, Methoden, Attribute, Beziehungen, Vererbung etc

Class DiagramsClass Diagrams

Page 32: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

32DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Eine Klasse wird als Rechteck dargestellt.

• Der Name ist in der Überschrift. Er beginnt mit einem Großbuchstaben. Bei abstrakten Klassen ist er kursiv.

• Extra Segmente im Rechteck für Attribute und Methoden

• Sichtbarkeits-“Marker“ können verwendet werden

-... Private+... Public#... Protected

Darstellung einer KlasseDarstellung einer Klasse

Page 33: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

33DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Attribute können Typen haben

• Sie können einen Default Wert haben

• Man kann sie mit „Constraints“ (Zusicherungen) versehen

•Natürlich existieren auch Klassenattribute.

•Bei konstanten Attributen kommt „@“.

AttributeAttribute

Page 34: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

34DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Beliebige Return- und Parametertypen (auch andere Klassen)

• Diverse Modifier ([], &, *) – je nach Programmiersprache

• abstrakt, Klassenmethode etc. natürlich auch darstellbar

MethodenMethoden

Page 35: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

35DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Allgemeine Verbindungen – „Associations“

• Das Ganze und seine Teile – „Aggregations“

• Vererbung

Mehrere Klassen ...Mehrere Klassen ...

Page 36: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

36DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Verbinden zwei Klassen

• Haben einen Namen

• Man kann Mengen der verbundenen Objekte einschränken – steht immter bei „Ziel“

* ... Beliebig viele (Null bis n)1 ... Genau 10..1 ... Optional, „Keins oder eins“2..* ... Mindestens 21..7,9,13..* Kombinierter Ausdruck

Associations – GrundvarianteAssociations – Grundvariante

Page 37: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

37DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Eigener Name für jede Richtung • zusätzliche Attribute (Association Class) • Reflexive Assozationen

Associations – AusbaustufenAssociations – Ausbaustufen

Page 38: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

38DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Zusicherungen machen die Semantik stärker• Subset, or, etc

Associations – ZusicherungenAssociations – Zusicherungen

Page 39: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

39DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Allgemeine Verbindungen – „Associations“

• Das Ganze und seine Teile – „Aggregations“

• Vererbung

Mehrere Klassen ...Mehrere Klassen ...

Page 40: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

40DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Ein Ganzes

• besteht aus mehreren Teilen

• Die Teile können „für sich“ (also ohne das Ganze) existieren

AggregationAggregation

Page 41: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

41DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Ein Ganzes

• besteht aus mehreren Teilen

• Die Teile können „für sich“ (also ohne das Ganze)

NICHT

existieren

CompositionComposition

Page 42: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

42DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Allgemeine Verbindungen – „Associations“

• Das Ganze und seine Teile – „Aggregations“

• Vererbung

Mehrere Klassen ...Mehrere Klassen ...

Page 43: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

43DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Klar, auch darstellbar:

• Einfach- oder Mehrfachvererbung

• Abstrakte Klassen können nicht instanziiert werden, müssen also mindestens eine Unterklasse haben

VererbungVererbung

Page 44: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

44DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Abgekürzte Notation für Standard-KlassenartenBoundary, Entity, ControlMetaclassProcess...

StereotypesStereotypes

Page 45: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

45DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Klassendiagramm

• Ein System braucht oft viele Klassendiagramme zur Beschreibung.• Ein Diagramm „reift“ über mehrere Versionen hinweg.• Nicht „die Welt“ modellieren, sondern das „Wesen des Geschäfts“.

• Ein Diagramm sollte ca. 1 DIN A4 Seite seinZum Überblick ohne Methoden und Attribute

• Es sollte einen Aspekt darstellen. Wird in UML durch „Pakete“ gestützt

• Vorsicht mit VerbindungenKeine „Kreise“ (redundante Assoziationen)Keine „Platinenlayouts“E/R und Entity-Dependency in Überlegung einbeziehenTypische Muster (Patterns) verwendenStereotypen verwenden

•Siehe Sonderkapitel „Patterns“

Gute Klassendiagramme – Meine persönliche MeinungGute Klassendiagramme – Meine persönliche Meinung

Page 46: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

46DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 47: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

47DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Sequence Diagrams

• Bilden dynamische Aspekte ab (Aufruf-Baum)

• Können aus UseCases gebildet werden

• Müssen mit dem Klassendiagramm übereinstimmen

Sequence DiagramsSequence Diagrams

Page 48: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

48DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Sequence Diagrams

Sequence Diagrams – BeispielSequence Diagrams – Beispiel

Page 49: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

49DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Sequence Diagrams

• Standard: Synchroner Aufruf

• new, delete möglich

• Return möglich

• Bedingungen, Iteration

Sequence Diagrams – Ausdruckmöglichkeiten 1Sequence Diagrams – Ausdruckmöglichkeiten 1

Man erkennt die Bedeutung an der Gestalt der Pfeilspitze....

Page 50: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

50DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Sequence Diagrams

• Asynchroner Start

• Asynchroner Stopp

• Parallele Threads in gleichem Objekt

Sequence Diagrams – Ausdruckmöglichkeiten asynchronSequence Diagrams – Ausdruckmöglichkeiten asynchron

Page 51: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

51DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Sequence Diagrams

Sequence- und KlassendiagrammSequence- und Klassendiagramm

• Methoden im Klassendiagramm passen mit Aufrufen im Sequencediagramm zusammen.

• Um aufrufen zu können, gibt es einen Weg (Association etc) vom Aufrufer zum Aufgerufenen.

Page 52: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

52DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 53: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

53DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Collaboration Diagrams

• Bilden dynamische Aspekte ab (Aufruf-Baum)

• Können aus UseCases gebildet werden

• Müssen mit dem Klassendiagramm übereinstimmen

• Sind „Sequence-Diagrams“ im Überblick, d.h. für frühe Phasen besser geeignet

•Vorteil: Navigation über Assoziationen wird dargestellt

Collaboration DiagramsCollaboration Diagrams

Page 54: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

54DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Collaboration Diagrams

Collaboration Diagrams – Beispiel (ohne Worte)Collaboration Diagrams – Beispiel (ohne Worte)

• „Lyrik“ wie Sequence Diagrams...

Page 55: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

55DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 56: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

56DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

• Bilden dynamische Aspekte ab (Aufruf-Baum)

• Lebenszyklus eines Objekts

• Ereignisse (=Methodenaufrufe) bewirken Statusübergänge

• Für bestimmte Klassen sinnvoll

• Gut mit Benutzer abstimmbar!

Status DiagramsStatus Diagrams

Page 57: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

57DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

Status Diagrams – BeispielStatus Diagrams – Beispiel

• Ein Status Diagramm bezieht sich auf eine Klasse

• Ein Zustand hat einen Namen

• Der Startzustand ist schwarz, ohne „Kringel“• Ein Endzustand ist schwarz „mit Kringerl“

• Ein Übergang tritt aufgrund eines Ereignisses ein

Page 58: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

58DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

Status Diagrams – Erweitertes Beispiel (ohne Worte)Status Diagrams – Erweitertes Beispiel (ohne Worte)

Page 59: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

59DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

Status Diagrams – Erweitertes BeispielStatus Diagrams – Erweitertes Beispiel

• Zustände haben auch Aktionen

Do ... Solange in diesem ZustandEntry ... Beim Eintritt in ZustandExit ... Beim Austritt aus Zustand

• Zustände haben auch Attribute

zB Wetter

• Aktionen können an Bedingungen geknüpft sein

•Aktionen sonst wie Sequence Diagrams...

Page 60: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

60DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

Status Diagrams – Erweitertes Beispiel mit ParallelitätStatus Diagrams – Erweitertes Beispiel mit Parallelität

• Unterzustände können parallel verfeinert werden

Page 61: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

61DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Status Diagrams

Status Diagrams – Class DiagramsStatus Diagrams – Class Diagrams

• Zustände, Zustandsattribute in Status Diagram sind Attribute der Klasse• Methoden im Status Diagram sind Methoden der Klasse

Page 62: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

62DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 63: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

63DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

• Bilden Prozesse ab

• (Wer kennt ADONIS oder ARIS?)

•Schaut aus wie Status-Diagrams

•Besonderheit: Zeit fliesst „von oben nach unten“

Activity DiagramsActivity Diagrams

Page 64: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

64DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams 1 - GrundlagenActivity Diagrams 1 - Grundlagen

• Es gibt wieder einen Start (ohne Kringerl)

• Es gibt wieder ein Ende (mit Kringerl)• Die Kästchen sind diesmal Aktivitäten• Die Übergänge sind – Aktivitätsfolgen

• Achtung: Was genau ist eine Aktivität?

Ende bei1) Übergabe eines Dings2) Übergabe der Verantwortung3) ... ?

Page 65: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

65DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams 2 – Entscheidungen und ParallelitätenActivity Diagrams 2 – Entscheidungen und Parallelitäten

• Es gibt auch Entscheidungen• ... Und Parallelität

1) Split2) Join

Page 66: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

66DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams 3 – Swim LanesActivity Diagrams 3 – Swim Lanes

• Man kann auch sagen, wer es macht.

Page 67: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

67DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams 4 – ObjektzuständeActivity Diagrams 4 – Objektzustände

• ... Und mit Objektzuständen verbinden.

Pfeil zu Objekt: Aktivität ändert Zustand im Objekt

Pfeil zu Aktivität: Aktivität kann nur dann fortgesetzt werden, wenn Objektzustand erreicht

Page 68: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

68DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams 5 - SignaleActivity Diagrams 5 - Signale

• ... Und mit Objekten reden

• ... Und Objekten zuhören

Page 69: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

69DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Activity Diagrams

Activity Diagrams – Beispiel (ohne Worte) - SchocktherapieActivity Diagrams – Beispiel (ohne Worte) - Schocktherapie

Page 70: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

70DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

UML-DiagrammeUML-Diagramme

Page 71: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

71DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Implementation Diagrams

• Bilden statische Aspekte ab (Architektur)

• Knoten, Verbindungen

• Komponenten

• In Architekturüberlegungen sinnvoll

• Gut mit Eigentümer abstimmbar

Implementation DiagramsImplementation Diagrams

Page 72: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

72DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

Implementation Diagrams

Implementation Diagrams – BeispielImplementation Diagrams – Beispiel

• Knoten und Verbindungen

• Komponenten• Schnittstellen

• Pfeil bedeutet „abhängig von“

Page 73: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

73DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

• Use Case Diagramms• Class Diagramms• Sequence-Diagramms• Collaboration-Diagrams• Status-Diagrams• Activity-Diagrams• Implementation Diagrams

•Zusammenfassung

UML-DiagrammeUML-Diagramme

Page 74: große Informationssysteme Anwendungskernen (mit UML)06)Spezifikation.pdf · Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, wolfgang_keller@acm.org,

Vorlesung „Software Engineering für große Informationssysteme“, © 2002 Wolfgang Keller, [email protected], all rights reservedTechnische Universität Wien, SS2002

74DI Bernhard AnzelettiLange Gasse 3/9A-1080 [email protected]

UML

•Theorie...http://www.uml.orghttp://www.omg.org/umlhttp://www.rational.com/products/rup/index.jsp

•Und Praxishttp://www.rational.com/products/rose/index.jsphttp://www.magicdraw.comhttp://www.gentleware.com (Poseidon)

UML Links, Literatur etc.UML Links, Literatur etc.