Activity Diagram

Transcription

Activity Diagram
Orientierung
Elemente der externen Sicht
Martin Jud 04.05.2004
•
UseCase Diagramme
zeigen Akteure, Business UseCases
und deren Beziehungen
=> Überblick über Funktionalität und
Kontext des Systems
•
Aktivitätsdiagramme
beschreiben die Geschäftsprozesse als
Sequenzen, Alternativen und Parallelen
von Abläufen
=> Interaktionen der Akteure,
Leistungen des Systems
•
Sequenzdiagramme
zeigen den Nachrichtenaustausch
mit Partnern und Kunden
in zeitlicher Reihenfolge
=> Überblick über Interaktionen
und Datenaustausch
Software-Engineering BusinessModel – Activity & Sequence
1
Activity Diagram
Continuing the process ...
– Visualize workflows
– Visualize use case sequences
It is important to get a good understanding of the relevant business
processes, especially in large projects. The UML activity diagram is a
very helpful tool to model the important business processes
– to give the developer a better understanding
of the stakeholder requirements and
– to visualize the control flow of an individual scenario
in an overview diagram.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
2
Adapted from SWEED, Martin Kropp
Activity Diagram
•
What it is
– graphical representation of process and control flow
•
Purpose
1. Describe business processes
2. Describe individual use case scenarios
3. Model concurrent behavior
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
3
Adapted
© 2001
from
by SWEED, Martin Kropp
Activity Diagram
•
•
•
Activity diagrams inherited a lot from event diagrams,
SDL state modeling, workflow modeling and Petri Nets.
These diagrams are especially helpful for modeling
workflow and use case scenarios without having to dive
into OO technology. They are very well understood
without any computer knowledge, so are an excellent
means for user communication
They are also very good means to describe concurrent
behavior in a process.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
4
Adapted from SWEED, Martin Kropp
Basic Elements of an Activity Diagram
•
Registration
Activity
Start
Browse Course
Catalog
Guard
Confirm
Registration
Enter Personal
Data
Select Course
Info
Branch
[data correct]
End
[else]
Update Course
Martin Jud 04.05.2004
Send Email
Print Bill
Software-Engineering BusinessModel – Activity & Sequence
5
© 2001 by SWEED, Martin Kropp
Modellieren eines Geschäftsprozesses
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
6
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
Start- und Endpunkte
•
Jedes UML ActivityDiagramm
sollte einen Startpunkt haben,
vorzugsweise liegt dieser
links oben.
•
Normalerweise hat ein UML
ActivityDiagramm einen
Endpunkt. (nach Fowler sind
Endpunkte aber optional)
Das Diagramm rechts hat z.B.
keinen Endpunkt weil es
einen endlosen Prozess
beschreibt.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
7
Adapted from Scott W. Ambler, www.modelingstyle.info
Entscheidungen
•
•
•
•
•
Entscheidungen werden - wie in Flussdiagrammen - mit einer Raute
dargestellt.
Allerdings steht im UML ActivityDiagram nichts in der Raute. Die
Verbindung zu nachfolgenden Aktivitäten, wird mit einem Guard der
Form [ Bedingung ] beschriftet.
Jede von einer Entscheidung abgehende Verbindung muss einen
Guard haben. Die Bedingung muss zutreffen, damit die eine
Verbindung gewählt werden kann.
Die Bedingungen müssen ausserdem so gewählt sein, dass nach der
Entscheidung immer weiter gefahren werden kann.
Im ActivityDiagramm sollten nur für das Verständnis wichtige
Entscheidungen dargestellt werden.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
8
Adapted from Scott W. Ambler, www.modelingstyle.info
Partitions
UML 1.4: Swimlane
Martin Jud
AktivitätsdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
9
Elements of an Activity Diagram
Customer
Browse Course
Catalog
Registration
System
Billing
System
Database
System
Select Course
Info
Swimlane
[else]
Enter Personal
Data
[data correct]
Confirm
Registration
Fork
Send Email
Update Course
Print Bill
Join
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
10
© 2001 by SWEED, Martin Kropp
Parallele Abläufe
Forks und Joins
– Ein Ablauf kann sich in mehrere parallele Pfade
aufspalten (Fork) die an ihrem Ende wieder
zusammengeführt (Join) werden.
– Eine Gabelung hat nur einen Eingang, ein
Zusammenschluss hat nur einen Ausgang.
– Erst wenn alle parallelen Pfade zu Ende sind wird der
Ablauf nach dem Join weitergeführt.
Im ActivityDiagramm sollten nur für das Verständnis
wichtige Parallelitäten dargestellt werden
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
11
Adapted from Scott W. Ambler, www.modelingstyle.info
Mehrere Rollen / Threads
Swimlanes
– Mit Swimlanes können Aktivitäten gruppiert werden,
die zum gleichen Actor oder Thread gehören.
– Die Anordnung der Bahnen hat keine semantische
Bedeutung. Allerdings verbessert es die Lesbarkeit,
wenn sie in der gleichen Reihenfolge dargestellt werden,
in der sie typischerweise auch abgearbeitet werden.
– Am besten eignen sich Swimlanes in linearen Prozessen,
an denen mehrere Akteure beteiligt sind.
Zu viele Swimlanes verringern die Lesbarkeit der Diagramme.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
12
Adapted from Scott W. Ambler, www.modelingstyle.info
Action-Objekte
Bei der Geschäftsfall-Modellierung können Action-Objekte für beliebige
Gegenstände stehen.
– Werden diese von mehreren Akteuren
verwendet, legt man sie auf die Swimlane.
– Erscheint ein Action-Objekte mehrmals
verwendet man Zustandsnamen.
Das Spesen-Formular ExpenseForm ist ein Beispiel für beides
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
13
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
Verfeinernde Zerlegung
• Eine Aktivität kann in einem andern ActivityDiagram
weiter verfeinert werden.
• Natürlich muss die Verfeinerung gleich viele Start- und
Endpunkte haben, wie die abstrakte Aktivität Ein- und
Ausgänge besitzt.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
14
Dataflow
•
If the requirement involves process elements, each
taking inputs, and producing outputs, use data flow.
1. Identify the processing elements (usually high level);
show as circles or rectangles
2. Identify the data sources & destinations;
show as names between two horizontal lines
3. Show the data paths among processing elements.
Indicate types of data flowing on each
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
15
Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.
Structured Analysis (SA)
• Edward Yourdon’s book written in 1989
• 3 grundlegende Modelle
– Environmental Model:
Statement of Purpose / Context Diagram / Event List
– Behavioral Model:
DFD / ERD / DataDict. / PSpec / STD
– Implementation Model:
SD (Transformation / Transaktion, Tom de Marco)
Martin Jud
Software-Engineering BusinessModel – Activity & Sequence
SA Konzepte
•
hierarchisch angeordnete Datenflussdiagramme (DFDs),
– die einzelnen Datenflussdiagramme sind als Baum angeordnet.
Wurzel des Baumes ist das Kontextdiagramm
•
Data Dictionary-Einträge (DDs)
– definiert Datenflüsse und Datenspeicher sowie die Bedeutung
der verschiedenen Namen
Datenflüsse müssen zwischen Kind- und Elterndiagramm
ausbalanciert sein
•
Prozess-Spezifikationen (PSpecs)
– Prozesse dieser Datenflussdiagramme werden
durch PSpecs beschrieben.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
17
DFD 0
=> Verfeinerung des Kontextdiagramms
Regeln:
– Prozess 0 wird in Teilprozesse (hier: P1 und P2) zerlegt.
– Datenflüsse werden ebenfalls verfeinert (hier: D1E und D2E).
– Speicher werden eingeführt (hier: Speicher 1).
– Neue Datenflüsse zwischen Prozessen und zwischen Prozessen
und Speicher werden eingetragen.
– Schnittstellen und Speicher können nicht verfeinert werden,
dürfen aber auf tiefern Diagrammen wiederholt werden.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
18
Aus Lehrbuch der Software Technik von Helmut Balzert (Spektrum-Verlag)
DFD1, DFD2, ... DFD1.1, ...
•
Jeder Prozess kann weiter verfeinert werden
=> neues Diagramm
•
Die Anzahl der Prozesse pro Diagramm soll kleiner 7 sein.
•
Ist ein Prozess ausreichend verstanden,
dann erfolgt keine weitere Verfeinerung,
sondern eine Beschreibung durch eine PSpec.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
19
Data Dictionary
•
Jeder Datenfluss und jeder Speicher wird im DD definiert
•
Der Zusammenhang zwischen den Datenflüssen
der einzelnen DFDs wird über die Definition im DD hergestellt.
•
Alle Datenflüsse eines untergeordneten DFDs müssen im
übergeordneten DFD
– entweder mit gleichem Namen (hier: D1A, D2A) erscheinen
– oder Teilkomponenten eines Datenflusses sein (hier: D1E = D1E1
+ D1E2, D2E = D2E1 + D2E2).
Gilt dies für alle DFDs, dann liegt Datenintegrität vor (balancing).
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
20
PSpec
beschreibt einen nicht weiter verfeinerten Prozess
– PSpec beschreibt, wie die Eingabedatenflüsse eines
Prozesses
in die Ausgabedatenflüsse transformiert werden.
– Beschreibung erfolgt durch Pseudocode,
Entscheidungstabellen oder Entscheidungsbäume.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
21
Vorgehen SA
•
•
•
•
•
•
Festlegung der Schnittstellen zur
Umwelt des Systems.
Identifizierung aller Eingabe- und
Ausgabedatenflüsse von den
Schnittstellen zum
Prozess 0.
Ermitteln der Funktionen bzw.
Prozesse, die Eingaben in
Ausgaben transformieren.
Identifizierung der Speicher (aus
dem ER-Modell)
Verfeinern / ergänzen der
ermittelten Datenflüsse
Definition der Datenflüsse und
Speicher im Data Dictionary.
Martin Jud 04.05.2004
•
•
•
•
Überarbeiten des vorliegenden
Modells:
– allfällige Initialisierungen
weglassen
– allfällige Steuerflüsse
weglassen
– trivialen Fehlermeldungen
weglassen
– Sorgfältige und eindeutige
Namenswahl.
schrittweise Erarbeitung der
weiteren Ebenen.
PSpecs für alle nicht weiter
verfeinerten Prozesse erstellen.
Nicht unnötig tief verfeinern
Software-Engineering BusinessModel – Activity & Sequence
22
UML 2: DataStore
Zentraler Speicherknoten für nicht-transiente Daten.
Bewahrt alle einkommenden Daten auf.
=> DFDs als UML ActivityDiagramme darstellen
«datastore»
Kosten
«datastore»
Personal
Datenbank
Einstellung
{weight=all}
Review der
Angestellten
Nur Neuangestellte
jährlich
Angestellte
einteilen
Martin Jud
Time Event Action
AktivitätsdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
23
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
… & Dataflow-Diagram (DFD)
ObjectFlow
Bestellung
Entgegennehmen
Bestellung
Kunde
Quittung
ObjectNode
«datastore»
Kosten
{tägliche
Kostensumme}
Martin Jud
Activity
Action
Bestellung
bearbeiten
Bestellung
Küche
{update Inventar}
DataStore
{update Kosten}
«datastore»
Inventar
Management
Reports
generieren
{tägliche
Bestandesänderungen}
Managment
Report
UML Element
EinführungSoftware-Engineering BusinessModel – Activity & Sequence
24
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
When to Use
•
•
•
•
Analyzing Use Cases
Understanding Workflows
Describing complicated sequential algorithms
Modeling parallel behavior
There are actually two main strengths to activity diagrams:
1. They can be used very well for visualizing business and workflow
processes. They are not yet SW related and can be easily
understood by users and customers.
2. The support modeling parallel behavior. This again makes them
a very good tool for workflow modeling.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
25
© 2001 by SWEED, Martin Kropp
When NOT to Use
• Analyzing Object Collaboration
• Analyzing an Objects lifetime
• Representing complex conditional logic
• Wenn ein Ablauf so komplex ist, dass Sie ein UML
ActivityDiagram entwickeln müssen um ihn zu verstehen,
ist möglicherweise Refactoring angesagt...
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
26
© 2001 by SWEED, Martin Kropp
Exercise
– Describe the workflow and behavior
of a UseCase in an activtiy diagram:
Describe the standard scenario for
one UseCase.
Create the activity diagram showing
the general workflow and possible
concurrent behavior.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
27
© 2001 by SWEED, Martin Kropp
Sequence Diagram
Purpose
– Displaying the exchange of messages between objects
within a limited period of time
Ideal
– for short time period with few objects
– with low nesting / few branches
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
28
© 2001 by SWEED, Martin Kropp
Elements of a Sequence Diagram
aRegistration
Form
Object
aRegistration
Manager
aCourse:
Course
register(Joe, aCourseList)
aCust = getCustomer(Joe)
Self Delegation
Message
Creation
[not aCust]
a Cust = new(Joe)
Condition
Joe:
Customer
*[for all courses]
addParticipant(aCust)
Iteration
Return
numPart
Activation Box
delete()
Martin Jud 04.05.2004
Deletion
Software-Engineering BusinessModel – Activity & Sequence
29
© 2001 by SWEED, Martin Kropp
Advanced Elements
aCustomer:
Customer
UML 1.4
aDatabase:
save()
aTransaction
addCustomer(aCustomer)
new()
Synchronous
Message
Create its own
transaction thread
Asynchronous
Message
finished()
finished()
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
Self Deletion
30
© 2001 by SWEED, Martin Kropp
Guidelines
•
Strive for ordering of messages
– arrange the classifiers (actors, classes, objects, and use cases)
in such a way as to depict message flow from left to right.
– a message that appears lower in the diagram is sent after one
that appears above it
•
Layer the classifiers
– First indicate the human actors, then a controller class representing the
logic of that scenario, then the user interface class(es), and then the
business class(es), finally technical classes wrapping your system
– Place human actors and proactive system actors, i.e. systems that
initiates interaction with yours, on the left-most side.
– Reactive system actors, systems that yours initiates interaction with
(through access techniques such as APIs, IDLs, message queues, or web
services), should be placed on the right-most side.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
31
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
More Guidelines
Name actors and classes consistently with Use Cases
– For the sake of consistency an actor that appears on a sequence diagram
should have the same name that it does on your use case diagram
– An actor can have the same name as a class, if the two represent the
same concept in the real world and in the application respectively.
Avoid modeling object destruction
– Although memory management issues are important, object destruction
introduces clutter into your diagrams.
Include a prose description of the logic
– Diagrams can be hard to follow, it is quite common to include
a business description of the logic you are modelin
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
32
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
Messages
Creating objects
– you can either send a message with the <<create>> stereotype or
– you can directly show creation by dropping the classifier down in
your diagram and invoking a message into its side.
Message names
– for a message sent to a class, interface, or component it is
common convention to apply the operation signature.
– for messages involving human actors label it with brief prose
Messages to classes indicate static operations
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
33
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
Use Case Invocations
a use case may be invoked in a sequence diagram
via a message with the <<include>> stereotype.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
34
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
Return Values
Return values are optional
– indicate the return value when it is not obvious what is being
returned using a dashed arrow with a label .
– If you need to refer to a return value elsewhere in your sequence
diagram, typically as a parameter passed in another message
Return values as part of a method invocation
– consider indicating the return value in the message name, using
the notation message(parameters): returnValue
Types vs. actual values
– Prefer indicating actual values for simple values over indicating
types as return value placeholders.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
35
© 2002-2003 by Scott W. Ambler, www.modelingstyle.info
When to Use
• Use Case Analysis
– Using rather high level objects (objects, that may be
split into several classes), allows the illustration of
individual scenarios on different abstraction levels.
– They also give you a first impression of how your
identified objects collaborate, which means, how
relationships between the corresponding classes will
be.
• SW-Design
• Implementation
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
36
Adapted from SWEED, Martin Kropp
When NOT to Use
• Collaboration of many objects
• Complex logic
• Behavior of a single object
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
37
© 2001 by SWEED, Martin Kropp
Sequence Diagram in UML 2.0
sd Reservation bestätigen
Lifeline
:Credit Card
System
:System
:Gast
Bereit für Reservation
Zahlungsinfo angeben
Interaction
meineInfo(Zahlungsinfo)
ref
Kreditkarte prüfen(Zahlungsinfo)
create
Reservation ok
Martin Jud
:Reservation
ReservationsNr
SequenzdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
38
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
Interaction
sd Kreditkarte prüfen
:Credit Card
System
:System
bittePrüfen(Betrag, Zahlungsinfo)
Autorisierungscode
Martin Jud
SequenzdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
39
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
Lifeline
Lifeline
:System
Martin Jud
Class Name
• Ein Modell Element, welches einen
individuellen Teilnehmer einer Interaktion
repräsentiert.
• Nur eine einzige Entität.
SequenzdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
40
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
Fragment
:Credit Card
System
:System
:Gast
Bereit für Reservation
Interaction
Zahlungsinfo angeben
Fragment
meineInfo(Zahlungsinfo)
ref
Operator
alt
Kreditkarte prüfen(Zahlungsinfo)
[Prüfung = OK]
create
guard
Reservation ok
:Reservation
ReservationsNr
[else]
Reservation fehlgeschlagen
Martin Jud
Separator
SequenzdiagrammeSoftware-Engineering BusinessModel – Activity & Sequence
41
Aus der Vorlesung Softwareengineering von Jörg Hofstetter HTA Luzern
When NOT to Use
• Collaboration of many objects
• Complex logic
• Behavior of a single object
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
42
© 2001 by SWEED, Martin Kropp
Exercise
• Describe the collaboration of
objects for one scenario.
Use the scenario from above.
Identify the important objects.
Create the sequence diagrams
for the scenario.
Martin Jud 04.05.2004
Software-Engineering BusinessModel – Activity & Sequence
43
© 2001 by SWEED, Martin Kropp