uml diagrammi di attività activity diagramsrenatoconte.altervista.org/uml/diagattivita.pdf ·...
TRANSCRIPT
![Page 1: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/1.jpg)
© Renato Conte - UML Activity Diagrams - 1 / 39 -
UMLDiagrammi di attività
Activity diagrams
Università di Padova
Facoltà di Scienze MM.FF.NN
Informatica - anno 2009-10
Corso di Ingegneria del Software
v. 3.1
![Page 2: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/2.jpg)
© Renato Conte - UML Activity Diagrams - 2 / 39 -
Diagrammi di attività
• I diagrammi di attività, in UML, sono usati per descrivere il comportamento dinamico di un sistema
• Un diagramma di attività è essenzialmente un flowchart( con alcune modifiche ed aggiunte), che mostra il flusso di controllo tra una attività e l’altra
• Possono essere usati per modellare i workflow, oppure per descrivere i dettagli di un metodo complesso
• I diagrammi di attività sono in correlazione con i diagrammi di stato.
• Un’attività procede senza essere interrotta da segnali esterni
![Page 3: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/3.jpg)
© Renato Conte - UML Activity Diagrams - 3 / 39 -
Sintassi dei diagrammi di Attività (1)
Azione Stato di attività
Transizioni
Stato iniziale Initial state
Stato finale Final state
![Page 4: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/4.jpg)
© Renato Conte - UML Activity Diagrams - 4 / 39 -
Flows or Edges
![Page 5: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/5.jpg)
© Renato Conte - UML Activity Diagrams - 5 / 39 -
Activity node
activity final node
flow final node
![Page 6: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/6.jpg)
© Renato Conte - UML Activity Diagrams - 6 / 39 -
Activity and flow final node
ref. Figure 12.91 - UML Superstructure Specification, v2.1.2
Flow final node
Activity final node
![Page 7: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/7.jpg)
© Renato Conte - UML Activity Diagrams - 7 / 39 -
Sintassi dei diagrammi di Attività (2)
Fork e join
Branch o Merge
Control flow
Signal sending
Signal receipt
![Page 8: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/8.jpg)
© Renato Conte - UML Activity Diagrams - 8 / 39 -
Stati
Activity State
Name: Type[statename]
Uno stato di attività è uno stato atomico. Al completamento dell’azione, avviene la transizione allo stato successivo.
Un “Object flow state” mostra il valore di un oggetto creato od usato in uno stato di attività.
![Page 9: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/9.jpg)
© Renato Conte - UML Activity Diagrams - 9 / 39 -
“Branching” e “merging”
[cond1] [cond2]event[cond1]
event[cond2]
event
S1 S2
S S1
S2
S
![Page 10: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/10.jpg)
© Renato Conte - UML Activity Diagrams - 10 / 39 -
CalculateCost
ChargeAccount
GetAuthorization
[cost < $50]
[cost >= $50]
esempio “Branching” e “merging”
![Page 11: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/11.jpg)
© Renato Conte - UML Activity Diagrams - 11 / 39 -
Fork e join
S
P1 P2
Q1 Q2
R
Da una fork partono due o più thread di controllo.
Una join permetterà la sincronizzazione dei thread.
fork
join
![Page 12: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/12.jpg)
© Renato Conte - UML Activity Diagrams - 12 / 39 -
Combinazione di Fork e Join
A B
C equivalente a
A B C
equivalente a
![Page 13: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/13.jpg)
© Renato Conte - UML Activity Diagrams - 13 / 39 -
Signal: “send” e “receive”
Await Authorisation
Enter Credit
Card Data
request
authorise
creditCenter
Charge Card
[amount <= $25][amount > $25]
Receiver object
Sender objectAwait
Authorisation
Enter Credit
Card Data
Charge Card
[amount <= $25]
[amount > $25]
/authorise
/send creditCenter.request()
![Page 14: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/14.jpg)
© Renato Conte - UML Activity Diagrams - 14 / 39 -
esempio
Signal send Signal
Signal
… interpretata come una transizione con una “send action”.
Signal receipt
… tradotta in un wait state (uno stato con nessuna azione associata e con un signal trigger event ).
![Page 15: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/15.jpg)
© Renato Conte - UML Activity Diagrams - 15 / 39 -
Grafi di attività - metodi
POEmployee
sortMail()
deliverMail()«realize»
POEmployee.sortMail() POEmployee.deliverMail()
Check OutTruck
Put MailIn Boxes
POEmployee DeliverMail Method
Sottoattività 1.4
![Page 16: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/16.jpg)
© Renato Conte - UML Activity Diagrams - 16 / 39 -
• Subactivities
SubActivity
Input Output
Foo
Bar
Sottoattività 2.x
SubActivity
![Page 17: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/17.jpg)
© Renato Conte - UML Activity Diagrams - 17 / 39 -
InstallFoundation
• Uno stato di sincronizzazione ( ) è ereditato dal diagramma a stati, ma prevalentemente è usato in diagrammi di attività
• Permette la comunicazione tra processi paralleli.
Coordinamento e sincronizzazione (1.x)
State machinenotation
Inspect
BuildFrame
InstallElectricity
in Foundation
PutOn
Roof
InstallElectricityIn Frame
InstallElectricityOutside
InstallWalls
* *
![Page 18: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/18.jpg)
© Renato Conte - UML Activity Diagrams - 18 / 39 -
Partitions (Swimlane 1.x)
Request
Take Order
Deliver Order
Fill OrderPay
Collect Order
Sales(vendite)
Stockroom(magazzino)
Customer(cliente)
Le partizioni o corsie evidenziano
responsabilità
evadere
consegnare
portar via
![Page 19: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/19.jpg)
© Renato Conte - UML Activity Diagrams - 19 / 39 -
• Un speciale tipo di “passo” (stato) che rappresenta la disponibilità di un particolare tipo di oggetto, probabilmente in uno stato particolare.
• Nessuna azione o sottoattività viene invocata ed il controllo passa allo stato successivo (passo).
• Si possono inserire vincoli (constraints) sui parametri di input e output prima e dopo di esso.
oggetto[stato]Attività A Attività B
Object flow state
![Page 20: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/20.jpg)
© Renato Conte - UML Activity Diagrams - 20 / 39 -
Partitions & Object flows
Request
Take Order
Deliver Order
Fill Order
Pay
Collect Order
Customer(cliente)
Sales Stockroom
Order[Entered]
Order[Filled]
Order[Placed]
Order[Delivered]
Object[its state]
![Page 21: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/21.jpg)
© Renato Conte - UML Activity Diagrams - 21 / 39 -
Object flow state: example
• Take Order must have an output parameter giving an order, or one of its subtypes.
• Fill Order must have an input parameter taking an order, or one of its supertypes.
• Lines used with object flow have the same semantics as any other state transition.
Order[Taken]Take Order Fill Order
![Page 22: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/22.jpg)
© Renato Conte - UML Activity Diagrams - 22 / 39 -
Synch State• “Object flow state” possono essere
stati di sincronizzazione
Obj[S2]
A11 A12 A13
A21 A22 A23
![Page 23: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/23.jpg)
© Renato Conte - UML Activity Diagrams - 23 / 39 -
Exception Handler Notation
![Page 24: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/24.jpg)
© Renato Conte - UML Activity Diagrams - 24 / 39 -
Exception Handler example
![Page 25: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/25.jpg)
© Renato Conte - UML Activity Diagrams - 25 / 39 -
Console
e
Code
inp
outp
validity
v
Ports
![Page 26: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/26.jpg)
© Renato Conte - UML Activity Diagrams - 26 / 39 -
input/output pin
Sample
Port
Provided Interface
Required Interface
Input/Output
Entry
Stop
Expansion Node
![Page 27: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/27.jpg)
© Renato Conte - UML Activity Diagrams - 27 / 39 -
expansion node / expansion region
<<region type>>• iterative• parallel• stream
![Page 28: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/28.jpg)
© Renato Conte - UML Activity Diagrams - 28 / 39 -
Riassunto ed esempi
![Page 29: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/29.jpg)
© Renato Conte - UML Activity Diagrams - 29 / 39 -
Action/Activity Integration
Amount updateAccount ( Account a, Amount d ){ Amount nb = a.balance + d; // calcolo nuovo saldo
a.balance = nb; // setBalance
send_notice (a.customer, a, nb);
return nb;}
![Page 30: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/30.jpg)
© Renato Conte - UML Activity Diagrams - 30 / 39 -
Action/Activity Example
UpdateAccount
Amount
Account
Deposit
GetBalance
+
SetBalance
SendNotice
GetCustomer
![Page 31: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/31.jpg)
© Renato Conte - UML Activity Diagrams - 31 / 39 -
Modifiche e flusso dati
<<presentation>>
Modifica Profilo Utente
Sistema di Aggiornamento
Profilo
[OK]
[cancel]
memoria persistente
![Page 32: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/32.jpg)
© Renato Conte - UML Activity Diagrams - 32 / 39 -
Diagrammi equivalenti
RegisterBug
EvaluateImpact
FixBug
RevisePlan
ReleaseFix
TestFix
[ priority = 1]
[else]
RegisterBug
EvaluateImpact
FixBug
RevisePlan
ReleaseFix
TestFix
[ priority = 1]
Soluzione meno ambigua
![Page 33: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/33.jpg)
© Renato Conte - UML Activity Diagrams - 33 / 39 -
Alternative
![Page 34: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/34.jpg)
© Renato Conte - UML Activity Diagrams - 34 / 39 -
Analisi requisiti
![Page 35: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/35.jpg)
© Renato Conte - UML Activity Diagrams - 35 / 39 -
parametri
![Page 36: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/36.jpg)
© Renato Conte - UML Activity Diagrams - 36 / 39 -
Signals on an activity diagram
![Page 37: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/37.jpg)
© Renato Conte - UML Activity Diagrams - 37 / 39 -
Bibliografia
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified Modeling Language User Guide, Addison Wesley (1999).
Grady Booch, James Rumbaugh, Ivar JacobsonThe Unified Modeling Language Reference Manual, Addison Wesley (1999).
Ivar Jacobson, Grady Booch, James Rumbaugh The Unified Software Development Process,Addison Wesley (1999).
![Page 38: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/38.jpg)
© Renato Conte - UML Activity Diagrams - 38 / 39 -
Riferimenti nel Web
OMG UML OMG UML • www.omg.org/umlwww.omg.org/uml
UML Superstructure Specification, v2.1.2
UML link: tool, demo, doc, ...• http://www.cetus-links.org
![Page 39: UML Diagrammi di attività Activity diagramsrenatoconte.altervista.org/UML/DiagAttivita.pdf · ©Renato Conte - UML Activity Diagrams - 2 / 39 - Diagrammi di attività • I diagrammi](https://reader030.vdocuments.pub/reader030/viewer/2022011908/5f563d38e975fa453a34004a/html5/thumbnails/39.jpg)
© Renato Conte - UML Activity Diagrams - 39 / 39 -
Domain Model Showing Request Kinds
Several kinds of requests exist between instances, for example, sending a signal or invoking an operation.A send invocation occurrence creates a send request and causes a signal occurrence in the receiver. A call invocation occurrence creates a call request and causes a call occurrence in the receiver.