Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf ·...

35
I diagrammi di attività e stato Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010-2011 Lab. di Ingegneria del Software () I diagrammi di attività e stato A.A. 2010-2011 1 / 35

Transcript of Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf ·...

Page 1: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 2: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 3: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 4: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 5: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 6: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 7: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 8: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 9: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 10: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 11: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 12: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 13: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 14: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 15: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 16: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 17: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 18: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 19: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 20: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 21: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 22: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 23: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 24: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 25: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 26: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 27: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 28: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 29: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 30: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 31: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 32: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 33: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 34: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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

Page 35: Dott. Sara Zuppiroli Prof. Paolo Ciancarini Laboratorio di ...zuppirol/dia_attivita_stato.pdf · Cosa sono e a cosa servono I diagrammi di attività (activity diagram) e stato (state

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