dott. sara zuppiroli prof. paolo ciancarini laboratorio di ...zuppirol/dia_attivita_stato.pdf ·...
Post on 04-Mar-2020
2 Views
Preview:
TRANSCRIPT
I diagrammi di attività e stato
Laboratorio di Ingegneria del SoftwareProf. Paolo CiancariniDott. Sara Zuppiroli
A.A. 2010-2011
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 1 / 35
Cosa sono e a cosa servono
I diagrammi di attività (activity diagram) e stato (statemachine diagram) sono diagrammi che descrivono unprocesso.Il diagramma di attività modella un processo. Organizza piùentità in un insieme di azioni secondo un determinatoflusso.Il diagramma di stato identifica le variazioni di stato alverificarsi di alcune condizioni legate ad una o più entità.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 2 / 35
Attività vs. Stato
In UML 1.x, i due diagrammi delle attività sono unparticolare diagramma di stato.In UML 2 definisce e separa la semantica:
I diagrammi di attività si basano sulle reti di PetriI diagrammi di stato sulla ricerca di Harel.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 3 / 35
Il diagramma di attività
Modella un’attività relativa ad un qualsiasi elemento dimodellazione, ad esempio:
I classiI casi d’usoI interfacceI componentiI interfacceI operazioni di classe
Si usano ad esempio per:I modellare il flusso di un caso d’uso (analisi)I modellare il funzionamento di un’operazione (progettazione)I modellare un algoritmo (progettazione)
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 4 / 35
Attività: ingredienti
UML Superstructure Specification, v2.1 349
Notation
The notations for activity nodes are illustrated below. There are three kinds of nodes: action node, object node, and
control node. See these classes for more information.
Examples
This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Order, Fill Order), object nodes
(Invoice), and control nodes (the initial node before Receive Order, the decision node after Receive Order, and the fork
node and Join node around Ship Order, merge node before Close Order, and activity final after Close Order).
Rationale
Activity nodes are introduced to provide a general class for nodes connected by activity edges.
Changes from previous UML
ActivityNode replaces the use of StateVertex and its children for activity modeling in UML 1.5.
Figure 12.50 - Activity node notation
Figure 12.51 - Activity node example (where the arrowed lines are only the non-activity node symbols)
Action node Object node Control nodes
Receive FillOrder
ShipOrderOrder
CloseOrder
SendInvoice
MakePayment
AcceptPayment
[orderaccepted]
[orderrejected]
Invoice
Nodi azione: specificano unità atomiche, non interrompibilie istantanee di comportamento.Nodi di inizio e di fine: sono nodi speciali che indicanol’inizio e la fine del flusso.Nodi oggetto: sono oggetti particolarmente importanti usaticome input e output di azioni.Nodi controllo: descrivono il flusso dell’attività.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 5 / 35
Transizioni e token
Per capire la semantica dei diagrammi di attività, bisognaimmaginare delle entità, dette token, che viaggiano lungo ildiagramma.Il flusso dei token definisce il flusso dell’attività.I token possono rimanere fermi in un nodo azione/oggettoin attesa che si avveri una condizione su una freccia,oppure una precondizione o postcondizione su un nodo.Il movimento di un token è atomico.Un nodo azione viene eseguito quando sono presenti tokensu tutti gli archi in entrata, e tutte le precondizioni sonosoddisfatte.Al termine di un’azione, sono generati control token su tuttigli archi in uscita.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 6 / 35
Precondizioni e postcondizioni
326 UML Superstructure Specification, v2.1
Package CompleteActivities
Local pre- and postconditions are shown as notes attached to the invocation with the keywords «localPrecondition» and
«localPostcondition», respectively.
Examples
Examples of actions are illustrated below. These perform behaviors called Send Payment and Accept Payment.
Below is an example of an action expressed in an application-dependent action language:
Package CompleteActivities
The example below illustrates local pre- and postconditions for the action of a drink-dispensing machine. This is
considered “local” because a drink-dispensing machine is constrained to operate under these conditions for this particular
action. For a machine technician scenario, the situation would be different. Here, a machine technician would have a key
to open up the machine, and therefore no money need be inserted to dispense the drink, nor change need be given. In such
a situation, the global pre- and postconditions would be all that is required. (Global conditions are described in Activity
specification, in the next subsection.) For example, a global precondition for a Dispense Drink activity could be “A drink
is selected that the vending machine dispenses.” The postcondition, then, would be “The vending machine dispensed the
drink that was selected.” In other words, there is no global requirement for money and correct change.
Figure 12.29 - Local pre- and postconditions
Figure 12.30 - Examples of actions
Figure 12.31 - Example of action with tool-dependent action language
«localPrecondition»constraint
name
«localPostcondition»constraint
AcceptPayment
SendPayment
FOR every Employeecalculate salaryprint checkENDFOR
Si tratta di condizioni, espresse in qualunque modo, che devonoessere soddisfatte per far iniziare o terminare l’azione(permettere a un token di entrare o uscire).
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 7 / 35
Nodi iniziali e finali
Realizza progetto Supera scritto
Il disco nero marca l’inizio dell’attività (genera token).Quando un token raggiunge un disco nero bordato (nodofinale), l’attività ha termine.Possono comparire in qualunque numero all’interno diun’attività (ogni nodo iniziale fa partire un flusso diesecuzione, il primo nodo finale raggiunto ferma tutti iflussi).
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 8 / 35
Nodi decisione
Action1 Action2
[x<0]
[x=0]
[x>0]
Action3
I nodi decisione: specificano percorsi alternativi, hanno unsolo input e vari output sotto una condizione mutualmenteesculsiva.I nodi fusione: hanno vari input e un solo output, sul qualevengono indirizzati tutti i token in ingresso.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 9 / 35
Nodi fork/join
Action1
Action2
I nodi fork hanno un ingresso e varie uscite: i token iningresso sono duplicati su tutte le uscite.I nodi join hanno vari ingressi e una sola uscita: quandosono presenti token su tutti gli ingressi, viene prodottoalmeno un token in uscita.I nodi fork dividono un’esecuzione in più flussi concorrenti, inodi join sincronizzano e riuniscono i flussi.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 10 / 35
Nodi finali di flusso
Action1
Action2
Action3
Quando raggiunti da un token, causano la terminazionesolo del flusso che li ha toccati.Il raggiungimento di un nodo finale di attività causacomunque la terminazione di tutti i flussi.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 11 / 35
Esercizio n.1
Descrivere con un diagramma delle attività il comportamento diuno studente che vuole superare l’esame di laboratorio diingegneria del software. Individuare le attività, gli oggetti, i nodidi decisione, e le biforcazioni.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 12 / 35
Nodi oggetto
Sostieni scritto
Crea progetto Progetto
Studia
I token in uscita da questi nodi sono object token, e sonodiversi dai control token prodotti dai nodi azione:rappresentano veri e propri oggetti.Gli archi in entrata e uscita dai nodi oggetto sono objectflow anziché control flow, e ci sono regole che limitano illoro uso.Per esempio, gli archi che entrano ed escono dai nodidecisione e fusione devono essere o tutti object o tutticontrol.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 13 / 35
Stato degli oggetti
Crea progetto
ProgettoConsegna progetto
Progetto
[finito]
[valutato]
Spesso risulta conveniente aggiungere lo stato di unoggetto per mostrarne l’evoluzione durante l’attività.Gli stati devono essere coerenti con la macchina a statiassociata all’oggetto.Questo è l’anello di congiunzione tra diagrammi di attività estato.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 14 / 35
Pin
Crea progetto
progetto
Consegna progetto
Si agganciano ai nodi azione per definire un input oppureun output di quell’azione.Questa notazione è equivalente a quella di un nodo oggettotra i due nodi azione.I pin aiutano a mostrare i parametri e valori di ritorno diun’azione.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 15 / 35
Segnali ed eventi (1)
Accetta evento temporale
Manda segnale Accetta evento
Ci sono alcuni nodi azione specializzati che gestisconol’invio e la ricezione di segnali.L’invio di segnali è asincrono e non blocca l’attività.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 16 / 35
Segnali ed eventi (2)
Notifica consegnaCrea progetto
Ricevi valutazione
Data scritto
Sostieni scrittoStudia
Inizio corso
Segui lezioni
Ricevi specifiche
I nodi ricezione sono attivi quando hanno token su tutti gliarchi in entrata (se ne hanno) oppure durante l’intera vitadell’attività (se non ne hanno); generano token allaricezione.La ricezione di eventi temporali funziona nello stesso modo,i token sono generati in base ad un’espressione temporale.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 17 / 35
Attività: esempio
UML Superstructure Specification, v2.1 337
Issue 8208 - add explanatory paragraph
Figure 12.37shows another example activity for a process to resolve a trouble ticket.
Below is an example of using class notation to show the class features of an activity. Associations and state machines can
also be shown.
Rationale
Activities are introduced to flow models that coordinate other behaviors, including other flow models. It supports class
features to model control and monitoring of executing processes, and relating them to other objects (for example, in an
organization model).
Figure 12.37 - Workflow example
Figure 12.38 - Activity class with attributes and operations
Record ReproduceProblem
CorrectProblemProblem
Audit andRecord
VerifyResolution
Communicate
Results
[else]
[recorded]
Trouble Ticket
ID Problemand
Resolution
[cannot reproduce problem]
[problem not solved]
[canreproduce problem]
[duplicationof anotherproblem]
[knownproblemand solution]
[not recorded]
[problem statement rectified]
«activity»
Fill Order
costSoFar : USD
timeToComplete : Integer
suspend ()
resume ()
Un’attività è costituita da un flusso di azioni che ne sono imattoni. Si può rappresentare graficamente con un rettangoloarrotondato, come le azioni stesse (in effetti, un’azione puòinvocare un’altra attività).
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 18 / 35
Attività: parametri e valori di ritorno
UML Superstructure Specification, v2.1 353
In the example below, production materials are streaming in to feed the ongoing printed circuit board fabrication. At the
end of the activity, computers are quality checked. Computers that do not pass the test are exceptions. See Parameter for
semantics of streaming and exception parameters.
Rationale
Activity parameter nodes are introduced to model parameters of activities in a way that integrates easily with the rest of
the flow model.
Changes from previous UML
ActivityParameterNode is new in UML 2.0.
12.3.10 ActivityPartition (from IntermediateActivities)
An activity partition is a kind of activity group for identifying actions that have some characteristic in common.
Figure 12.55 - Example of activity parameters.nodes
Figure 12.56 - Example of activity parameter nodes for streaming and exceptions
ProducePrinted-Circuit
Boards
Printed-CircuitBoards
ProductionMaterials
AssembleComputers
AssembledComputers
TestComputers
AcceptedComputers
RejectedComputers
{stream}
ProducePrinted-Circuit
Boards
Printed-CircuitBoards
ProductionMaterials
AssembleComputers
AssembledComputers
TestComputers
AcceptedComputers
RejectedComputers
Parametri e valori di ritorno, se esistono, si rappresentano comenodi oggetto sul bordo dell’attività.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 19 / 35
Partizioni (swimlanes)
Progetto
Progetto Valuta progetto
Docente
Supera scritto
Crea progetto
Studente
Valuta progettoProgetto
Valuta progetto
Progetto
[finito]
[valutato]
Suddividono il flusso dell’attività, ma non ne modificano ilsignificato.La suddivisione può essere orizzontale, verticale omultidimensionale.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 20 / 35
Partizioni (2)
UML Superstructure Specification, v2.1 359
The example below depicts multidimensional swim lanes. The Receive Order and Fill Order behaviors are performed by
an instance of the Order Processor class, situated in Seattle, but not necessarily the same instance for both behaviors.
Even though the Make Payment is contained within the Seattle/Accounting Clerk swim cell, its performer and location are
not specified by the containing partition, because it has an overriding partition.
Figure 12.60 - Activity partition using annotation example
Figure 12.61 - Activity partition using multidimensional swimlane example
(Accounting Department)
(Accounting Department)
(Order
Department)
(Order
Department)
(Order
Department) (Order
Department)
[orderaccepted]
Invoice
«external»
ReceiveOrder
Fill Order Ship Order
Close Order
Send Invoice MakePayment
AcceptPayment
(Customer)
Ord
er
Pro
cess
or
Accounti
ng C
lerk
Receive FillOrder
ShipOrderOrder
SendInvoice
AcceptPayment
Invoice
CloseOrder
Make Payment
[orderaccepted]
Seattle Reno
«attribute» performingLocation:Location
«external»(Customer)
«cl
ass»
«cl
ass»
Le partizioni sono generalmente suddivise secondo uno diquesti criteri:
classificatori le cui istanze eseguono le varie partiistanze che eseguono le varie partiruoli/parti del sistema che eseguono le varie partiattributi o valori relativi alle varie parti
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 21 / 35
Esercizio n.2
Descrivere con un diagramma delle attività il processo disviluppo del software a cascata e iterativo, nelle sue fasiprincipali. Individuare le attività, gli oggetti, i nodi di decisione, ele biforcazioni.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 22 / 35
Regioni interrompibili (1)
Si usano per specificare una reazione che può avvenire inqualunque momento e comporta l’interruzione dell’attività.Esempi: eccezioni, interrupt, segnali, situazioni di erroredall’esterno.La notazione impiegata è quella di un’attività con i borditratteggiati. Uno o più archi di interrupt (a zigzag) partonoda nodi interni e puntano verso nodi esterni.L’interrupt è generato quando un arco di interrupt èattraversato da un token: tutti gli altri token ecomportamenti nella regione sono terminati.La ricezione di eventi all’interno della regione funziona solose ci sono token al suo interno.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 23 / 35
Regioni interrompibili (2)
396 UML Superstructure Specification, v2.1
Examples
The first figure below illustrates that when an order cancellation request is made—only while receiving, filling, or
shipping) orders—the Cancel Order behavior is invoked.
Rationale
Interruptible regions are introduced to support more flexible non-local termination of flow.
Changes from previous UML
Interruptible regions in activity modeling are new to UML 2.0.
12.3.34 JoinNode (from CompleteActivities, IntermediateActivities)
A join node is a control node that synchronizes multiple flows.
Generalizations
• “ControlNode (from BasicActivities)” on page 371
Description
A join node has multiple incoming edges and one outgoing edge.
Issue 8509 - capitalize ‘boolean’ and add package header
Package CompleteActivities
Join nodes have a Boolean value specification using the names of the incoming edges to specify the conditions under
which the join will emit a token.
Figure 12.100 - InterruptibleActivityRegion example
Receive FillOrder
ShipOrderOrder
CloseOrder
SendInvoice
MakePayment
AcceptPayment
[orderaccepted]
[orderrejected]
Invoice
CancelOrder
Order
cancel
request
L’ordine è cancellato solo se un token si trova all’interno dellaregione al momento della ricezione del segnale.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 24 / 35
Macchine a stati
Qualunque classificatore può essere associato a unamacchina a stati che descrive il funzionamento delle sueistanze; si tratta del contesto della macchina a stati.Uno stato è una condizione o situazione nella vita di unoggetto in cui esso soddisfa una condizione, esegueun’attività o aspetta un evento.Un evento è la specifica di un’occorrenza che ha unacollocazione nel tempo e nello spazio.Una transizione è il passaggio da uno stato a un altro inrisposta ad un evento.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 25 / 35
Notazione
Uno stato si rappresenta con un rettangolo arrotondato, maal contrario di un’azione dei diagrammi di attività èsolitamente rappresentato con aggettivi e nomi piuttostoche verbi.Le transizioni da uno stato ad un altro avvengono nelmomento in cui si verifica un evento.Lo stato iniziale e quello finale si rappresentano come neidiagrammi di attività.I nodi decisione (decidono lo stato di destinazione in base auna guardia) e i nodi fork/join, che permettono al sistema ditrovarsi in vari stati ortogonali (paralleli) allo stesso tempo.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 26 / 35
Transizioni
Le transizioni in una macchina a stati di comportamentohanno la seguente sintassi:
event1, event2, ... [guard] / behavior,ma nessuna delle tre parti è obbligatoria. Significa che latransizione avviene come risposta a uno degli eventi(quando la guardia è vera), e al momento della transizione ilcontesto esegue un comportamento.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 27 / 35
Esempio: m.s. di comportamento
UML Superstructure Specification, v2.1 581
Examples
Figure 15.33 - Composite state with two states
Figure 15.34 - Composite State with hidden decomposition indicator icon
Start
entry/ start dial tone
Partial Dial
entry/number.append(n)
digit(n)
digit(n)
[number.isValid()]
Dialing
exit/ stop dial tone
entry / start dial toneexit / stop dial tone
HiddenComposite
entry / start dial toneexit / stop dial tone
HiddenComposite
In una m.s. di comportamento, gli stati possono contenereazioni intraprese all’entrata (entry), all’interno (do) eall’uscita (exit) dello stato.’Dialing’ è uno stato composito che contiene altri stati.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 28 / 35
Esercizio n.3
Descrivere con un diagramma di stato della classe libro di unabiblioteca. Individuare gli stati, le transizioni e gli eventi.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 29 / 35
Esercizio n.4
Descrivere con un diagramma di stato della classe libretto.Individuare gli stati, le transizioni e gli eventi.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 30 / 35
Stati compositiCompositeState
State2State1
UML Superstructure Specification, v2.1 581
Examples
Figure 15.33 - Composite state with two states
Figure 15.34 - Composite State with hidden decomposition indicator icon
Start
entry/ start dial tone
Partial Dial
entry/number.append(n)
digit(n)
digit(n)
[number.isValid()]
Dialing
exit/ stop dial tone
entry / start dial toneexit / stop dial tone
HiddenComposite
entry / start dial toneexit / stop dial tone
HiddenComposite
Permettono di suddividere la complessità del modello:dall’esterno si vede un macro-stato, al cui interno vi sonoaltri stati.Si può anche creare uno stato che fa riferimento ad un’altrodiagramma di macchina a stati (submachine state).Si può usare un’icona per rappresentare uno statocomposito il cui comportamento interno non è mostrato.Transizioni in uscita dal bordo dello stato composito e legatead un evento sono ereditate da tutti gli stati all’interno.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 31 / 35
Transizioni di completamento
Si tratta di transizioni che non hanno un evento associato(ma possono avere una guardia).Nel caso di uno stato semplice, una transizione dicompletamento è eseguita al termine dell’attività di quellostato (fine azioni do).Nel caso di uno stato composito o submachine state unatransizione di completamento è eseguita quando si giungein uno stato finale oppure un exit point.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 32 / 35
Stati compositi ed entry/exit points (1)
UML Superstructure Specification, v2.1 591
Examples
Figure 15.41 is an example statemachine diagram for the state machine for simple telephone object. In addition to the
initial state, the state machine has an entry point called activeEntry, and in addition to the final state, it has an exit point
called aborted.
Figure 15.41 - State machine diagram representing a state machine
DialToneDialing
TalkingRinging
Busy
dial digit(n)
connected
callee answers
Idle
busy
liftreceiver
callerhangs up
calleehangs up
Active
dial digit(n)
/get dial tone
do/ play busytone
do/ play ringingtone/enable speech
/disconnect
do/ play dial tone
Pinned
calleeanswers
Connecting
dial digit(n)[valid]
Time-out
do/ play message
dial digit(n)[invalid]
/connectInvalid
do/ play message
[incomplete]after (15 sec.)
after (15 sec.)
activeEntry
aborted
abort terminate
Notare entry ed exit points (cerchi e cerchi con croce). Possonoessere posti sulla cornice del diagramma, se visibile.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 33 / 35
Entry/exit points (2)
UML Superstructure Specification, v2.1 583
Examples
Issue 8415 - replace ‘sub state machine’ with ‘submachine state’
The diagram in Figure 15.36 shows a fragment from a state machine diagram in which a submachine state (the
FailureSubmachine) is referenced. The actual sub state machine is defined in some enclosing or imported name space.
In the above example, the transition triggered by event “error1” will terminate on entry point “sub1” of the
FailureSubmachine state machine. The “error3” transition implies taking of the default transition of the
FailureSubmachine.
The transition emanating from the “subEnd” exit point of the submachine will execute the “fixed1” behavior in addition
to what is executed within the HandleFailure state machine. This transition must have been triggered within the
HandleFailure state machine. Finally, the transition emanating from the edge of the submachine state is taken as a result
of the completion event generated when the FailureSubmachine reaches its final state.
Note that the same notation would apply to composite states with the exception that there would be no reference to a state
machine in the state name.
Figure 15.36 - Submachine State
HandleFailure:
sub1
subEnd
error1/
error3/
/fixed1
FailureSubmachine
L’evento error3 fa partire l’esecuzione dallo stato inizialedella submachine o stato composito.L’evento error1 fa partire l’esecuzione dall’entry point sub1.Se l’esecuzione termina nell’exit point subEnd si esegue latransizione di completamento che genera il comportamentofixed1.Se l’esecuzione termina nello stato finale si segue latransizione di completamento sulla destra.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 34 / 35
Conclusioni
I diagrammi di attività descrivono un flusso di azioni cherealizzano un certo comportamento specifico. L’enfasi nonè sullo scambio di messaggi ma sui blocchi dicomportamento.I diagrammi di macchina a stati si concentrano su un soloclassificatore di contesto e modellano il suo stato interno inrelazione al suo comportamento o alle operazioni chepossono eseguite sulle sue istanze.Come tutti i diagrammi UML, possono essere usati sia alivello di analisi che di progettazione.
Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 35 / 35
top related