I diagrammi di attività e stato - A.A. 2010-2011 Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli

Pagina creata da Lorenzo Mancuso
 
CONTINUA A LEGGERE
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
Cosa sono e a cosa servono

       I diagrammi di attività (activity diagram) e stato (state
       machine diagram) sono diagrammi che descrivono un
       processo.
       Il diagramma di attività modella un processo. Organizza più
       entità in un insieme di azioni secondo un determinato
       flusso.
       Il diagramma di stato identifica le variazioni di stato al
       verificarsi 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 un
       particolare diagramma di stato.
       In UML 2 definisce e separa la semantica:
            I   diagrammi di attività si basano sulle reti di Petri
            I   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 di
       modellazione, ad esempio:
            I   classi
            I   casi d’uso
            I   interfacce
            I   componenti
            I   interfacce
            I   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
The notations for activity nodes are illustrated below. There are three kinds of nodes: action
Attività: ingredienti
    control node. See these classes for more information.

         Action node                  Object node                                Control nodes

    Figure
       Nodi12.50 - Activityspecificano
              azione:       node notation      unità atomiche, non interrompibili
       e istantanee di comportamento.
    Examples
       Nodi di inizio e di fine: sono nodi speciali che indicano
    This figure illustrates the following kinds of activity node: action nodes (e.g., Receive Orde
       l’inizioande control
    (Invoice),       la fine   del(the
                            nodes    flusso.
                                        initial node before Receive Order, the decision node after
    node  and Join
       Nodi         node around
               oggetto:      sono Shipoggetti
                                        Order, merge  node before Close importanti
                                                 particolarmente         Order, and activity
                                                                                        usatifinal a

       come input e output di azioni.
       Nodi controllo: descrivono il flusso dell’attività.
                             [order
                             rejected]
 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à, bisogna
       immaginare delle entità, dette token, che viaggiano lungo il
       diagramma.
       Il flusso dei token definisce il flusso dell’attività.
       I token possono rimanere fermi in un nodo azione/oggetto
       in 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 token
       su tutti gli archi in entrata, e tutte le precondizioni sono
       soddisfatte.
       Al termine di un’azione, sono generati control token su tutti
       gli archi in uscita.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   6 / 35
«localPostcondition», respectively.
Precondizioni e postcondizioni
                                     «localPrecondition»
                                      constraint

                                             name

                                       «localPostcondition»
                                        constraint

                  Figureespresse
Si tratta di condizioni, 12.29 - Local  pre- andmodo,
                                  in qualunque  postconditions
                                                       che devono
essere soddisfatte per far iniziare o terminare l’azione
(permettere a unExamples
                   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 (nodo
        finale), l’attività ha termine.
        Possono comparire in qualunque numero all’interno di
        un’attività (ogni nodo iniziale fa partire un flusso di
        esecuzione, il primo nodo finale raggiunto ferma tutti i
        flussi).

 Lab. di Ingegneria del Software ()       I diagrammi di attività e stato                    A.A. 2010-2011   8 / 35
Nodi decisione

                                     [x0]
                                                            Action3

       I nodi decisione: specificano percorsi alternativi, hanno un
       solo input e vari output sotto una condizione mutualmente
       esculsiva.
       I nodi fusione: hanno vari input e un solo output, sul quale
       vengono 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 in
       ingresso sono duplicati su tutte le uscite.
       I nodi join hanno vari ingressi e una sola uscita: quando
       sono presenti token su tutti gli ingressi, viene prodotto
       almeno un token in uscita.
       I nodi fork dividono un’esecuzione in più flussi concorrenti, i
       nodi 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 terminazione
        solo del flusso che li ha toccati.
        Il raggiungimento di un nodo finale di attività causa
        comunque 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 di
uno studente che vuole superare l’esame di laboratorio di
ingegneria del software. Individuare le attività, gli oggetti, i nodi
di decisione, e le biforcazioni.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   12 / 35
Nodi oggetto
                                 Crea progetto                 Progetto

                                                                                   Sostieni scritto

                                                  Studia

       I token in uscita da questi nodi sono object token, e sono
       diversi dai control token prodotti dai nodi azione:
       rappresentano veri e propri oggetti.
       Gli archi in entrata e uscita dai nodi oggetto sono object
       flow anziché control flow, e ci sono regole che limitano il
       loro uso.
       Per esempio, gli archi che entrano ed escono dai nodi
       decisione e fusione devono essere o tutti object o tutti
       control.
Lab. di Ingegneria del Software ()               I diagrammi di attività e stato            A.A. 2010-2011   13 / 35
Stato degli oggetti

                                                                          Progetto
                                Crea progetto                            [valutato]

                                     Progetto
                                                                    Consegna progetto
                                      [finito]

       Spesso risulta conveniente aggiungere lo stato di un
       oggetto per mostrarne l’evoluzione durante l’attività.
       Gli stati devono essere coerenti con la macchina a stati
       associata all’oggetto.
       Questo è l’anello di congiunzione tra diagrammi di attività e
       stato.
Lab. di Ingegneria del Software ()           I diagrammi di attività e stato            A.A. 2010-2011   14 / 35
Pin

                                       progetto
                 Crea progetto                                         Consegna progetto

       Si agganciano ai nodi azione per definire un input oppure
       un output di quell’azione.
       Questa notazione è equivalente a quella di un nodo oggetto
       tra i due nodi azione.
       I pin aiutano a mostrare i parametri e valori di ritorno di
       un’azione.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato                 A.A. 2010-2011   15 / 35
Segnali ed eventi (1)

          Manda segnale                 Accetta evento

                                                                       Accetta evento temporale

       Ci sono alcuni nodi azione specializzati che gestiscono
       l’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)
                                           Segui lezioni

                                               Studia                                               Sostieni scritto

   Inizio corso                                                                    Data scritto

                           Ricevi specifiche              Ricevi valutazione

                           Crea progetto                Notifica consegna

       I nodi ricezione sono attivi quando hanno token su tutti gli
       archi in entrata (se ne hanno) oppure durante l’intera vita
       dell’attività (se non ne hanno); generano token alla
       ricezione.
       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
           Issue    8208 - add explanatory paragraph

           Figure 12.37shows another example activity for a process to resolve a trouble ticket.

                           Trouble Ticket
                                                                        [problem statement rectified]
                                                                           [cannot
                                                                           reproduce
                                      [recorded]                           problem]
                           Record                         Reproduce                    Correct
                           Problem                         Problem                     Problem
                            [not recorded]
                                                                                        [known
                                                     [can                               problem
                                                     reproduce          [duplication    and solution]
                                                     problem]           of another
                                                                        problem]
                                                                                                          Communicate
                                                   ID Problem                Verify                         Results
                                                       and                 Resolution
                                                    Resolution                                   [else]
                                                                                                           Audit and
                                                                                                            Record
                                                                 [problem not solved]

           Figure 12.37 - Workflow example
Un’attività     è costituita da un flusso di azioni che ne sono i
      Below is an example of using class notation to show the class features of an activity. Associations and state machines can
mattoni.
      also beSi   può rappresentare graficamente con un rettangolo
             shown.

arrotondato, come le azioni stesse (in effetti, un’azione può
                 «activity»
invocare un’altraFill Order attività).
               costSoFar : USD
               timeToComplete : Integer
 Lab. di Ingegneria del Software ()                       I diagrammi di attività e stato                               A.A. 2010-2011   18 / 35
Attività: parametri e valori di ritorno

                                                                                                  Rejected
                                                                                                 Computers
                                 Produce               Assemble                     Test
         Production
                              Printed-Circuit          Computers                  Computers
          Materials
                                  Boards
                                                                                                 Accepted
                                          Printed-                                               Computers
                                                                     Assembled
                                          Circuit
                                                                     Computers
                                          Boards

  Figure 12.55 - Example of activity parameters.nodes

Parametri          e valori
 In the example below,           di materials
                         production  ritorno,      se esistono,
                                              are streaming in to feed thesi rappresentano
                                                                          ongoing                        come At
                                                                                  printed circuit board fabrication.
 end of the activity, computers are quality checked. Computers that do not pass the test are exceptions. See Parameter
nodi    oggetto
 semantics  of streamingsul
                          and bordo      dell’attività.
                              exception parameters.

       {stream}                                                                                   Rejected
 Lab. di Ingegneria del Software ()             I diagrammi di attività e stato               A.A.Computers
                                                                                                   2010-2011   19 / 35
Partizioni (swimlanes)

                               Studente                                      Docente

                                                           Progetto
                          Crea progetto                    Progetto
                                                            [finito]         Valuta progetto

                                                           Progetto
                          Supera scritto                   Progetto
                                                           [valutato]

       Suddividono il flusso dell’attività, ma non ne modificano il
       significato.
       La suddivisione può essere orizzontale, verticale o
       multidimensionale.

Lab. di Ingegneria del Software ()         I diagrammi di attività e stato             A.A. 2010-2011   20 / 35
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

Partizioni (2)   not specified by the containing partition, because it has an overriding partition.

                                                                 «attribute» performingLocation:Location
                                                  Seattle                                                  Reno

                     Order Processor
                         «class»        Receive                        Fill                 Ship                     Close
                                         Order                        Order                 Order                    Order
                                                       [order
                                                       accepted]
                     Accounting Clerk

                                                                        «external»
                                                   Send                                      Accept
                          «class»

                                                                        (Customer)
                                                  Invoice             Make Payment          Payment

                                                            Invoice

                 Figure 12.61 - Activity partition using multidimensional swimlane example

Le partizioni sono generalmente suddivise secondo uno 359
                 UML Superstructure Specification, v2.1   di
questi criteri:
    classificatori le cui istanze eseguono le varie parti
    istanze che eseguono le varie parti
    ruoli/parti del sistema che eseguono le varie parti
    attributi 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 di
sviluppo del software a cascata e iterativo, nelle sue fasi
principali. Individuare le attività, gli oggetti, i nodi di decisione, e
le 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 in
       qualunque momento e comporta l’interruzione dell’attività.
       Esempi: eccezioni, interrupt, segnali, situazioni di errore
       dall’esterno.
       La notazione impiegata è quella di un’attività con i bordi
       tratteggiati. Uno o più archi di interrupt (a zigzag) partono
       da nodi interni e puntano verso nodi esterni.
       L’interrupt è generato quando un arco di interrupt è
       attraversato da un token: tutti gli altri token e
       comportamenti nella regione sono terminati.
       La ricezione di eventi all’interno della regione funziona solo
       se ci sono token al suo interno.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   23 / 35
The first figure below illustrates that when an order cancellation request is made—only while receiving
shipping) orders—the Cancel Order behavior is invoked.
Regioni interrompibili (2)
                                                                                    Cancel
                                                                     Order          Order
                                                                     cancel
                                                                     request
                  [order
                  rejected]

           Receive                         Fill                      Ship                       Close
            Order                         Order                      Order                      Order
                              [order
                              accepted]

                       Send                 Make                 Accept
                      Invoice              Payment              Payment

                                Invoice

Figure 12.100 - InterruptibleActivityRegion example
L’ordine
 Rationale
           è cancellato solo se un token si trova all’interno della
regione al momento della ricezione del segnale.
Interruptible regions are introduced to support more flexible non-local termination of flow.
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 una
       macchina a stati che descrive il funzionamento delle sue
       istanze; si tratta del contesto della macchina a stati.
       Uno stato è una condizione o situazione nella vita di un
       oggetto in cui esso soddisfa una condizione, esegue
       un’attività o aspetta un evento.
       Un evento è la specifica di un’occorrenza che ha una
       collocazione nel tempo e nello spazio.
       Una transizione è il passaggio da uno stato a un altro in
       risposta 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, ma
       al contrario di un’azione dei diagrammi di attività è
       solitamente rappresentato con aggettivi e nomi piuttosto
       che verbi.
       Le transizioni da uno stato ad un altro avvengono nel
       momento in cui si verifica un evento.
       Lo stato iniziale e quello finale si rappresentano come nei
       diagrammi di attività.
       I nodi decisione (decidono lo stato di destinazione in base a
       una guardia) e i nodi fork/join, che permettono al sistema di
       trovarsi 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 comportamento
       hanno la seguente sintassi:
          event1, event2, ... [guard] / behavior,
       ma nessuna delle tre parti è obbligatoria. Significa che la
       transizione avviene come risposta a uno degli eventi
       (quando la guardia è vera), e al momento della transizione il
       contesto esegue un comportamento.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   27 / 35
Esempio:
 Examples m.s. di comportamento

           Dialing

                         Start            digit(n)           Partial Dial           [number.isValid()]
                 entry/ start dial tone              entry/number.append(n)
                  exit/ stop dial tone

                                                               digit(n)

 Figure 15.33 - Composite state with two states

       In una m.s. di comportamento, gli stati possono contenere
       azioni intraprese all’entrata (entry), all’interno (do) e
        HiddenComposite
       all’uscita         (exit) dello stato.
      entry / start dial tone
       ’Dialing’
      exit              è uno stato composito che contiene altri stati.
           / stop dial tone

Lab. di Ingegneria
  Figure           del Software State
           15.34 - Composite     ()            I diagrammi
                                      with hidden          di attività indicator
                                                    decomposition      e stato   icon            A.A. 2010-2011   28 / 35
Esercizio n.3

Descrivere con un diagramma di stato della classe libro di una
biblioteca. 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 compositi
                                     CompositeState                                   HiddenComposite

                                                                                    entry / start dial tone
                            State1                    State2
                                                                                    exit / stop dial tone

                                                                              Figure 15.34 - Composite State with hid
       Permettono di suddividere la complessità del modello:
       dall’esterno si vede un macro-stato, al cui interno vi sono
       altri stati.
       Si può anche creare uno stato che fa riferimento ad un’altro
       diagramma di macchina a stati (submachine state).
       Si può usare un’icona per rappresentare uno stato
       composito il cui comportamento interno non è mostrato.
       Transizioni in uscita dal bordo dello stato composito e legate
       ad 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 di
       completamento è eseguita al termine dell’attività di quello
       stato (fine azioni do).
       Nel caso di uno stato composito o submachine state una
       transizione di completamento è eseguita quando si giunge
       in uno stato finale oppure un exit point.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   32 / 35
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
Stati compositi ed entry/exit points (1)
                called aborted.

                                activeEntry          Active
                                                                                    Time-out
                                                                                  do/ play message
                                                                                                                 dial digit(n)
                                                                       after (15 sec.)                           [incomplete]
                                                                                            after (15 sec.)
                                                          DialTone          dial digit(n)
                                                                                                               Dialing
                                                     do/ play dial tone
                       lift                                                       dial digit(n)[invalid]
                       receiver                                                                                     dial digit(n)[valid]
                       /get dial tone                                                                               /connect
                                                                            Invalid
                                                                        do/ play message                      Connecting
                     Idle

                                                                                                       busy
                                                          Pinned                                                    connected
                                                                                      Busy
                                                                 callee           do/ play busy
                                                    callee       hangs up            tone
                                caller            answers
                                hangs up
                                /disconnect                                                                     Ringing
                                                          Talking
                                                                                  callee answers           do/ play ringing
                                                                                  /enable speech               tone

                                                                    abort                          terminate

                                                                     aborted

Notare entry ed exit points (cerchi e cerchi con croce). Possono
                Figure 15.41 - State machine diagram representing a state machine

essere posti sulla cornice del diagramma, se visibile.
Lab. di Ingegneria del Software ()                       I diagrammi di attività e stato                                          A.A. 2010-2011   33 / 35
Issue      8415 - replace ‘sub state machine’ with ‘submachine state’

Entry/exit points (2)                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.

                                                            HandleFailure:
                                                            FailureSubmachine

                                      error1/

                                                          sub1

                                                error3/
                                                                     subEnd

                                                                                           /fixed1

                                     Figure 15.36 - Submachine State

       L’evento error3 fa partire l’esecuzione dallo stato iniziale
                                     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.
       della submachine o stato composito.
                                     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
       L’evento error1 fa partire l’esecuzione dall’entry point sub1.
                                     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.

       Se l’esecuzione termina nell’exit point subEnd si esegue la
                                     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.

       transizione di completamento che genera il comportamento
       fixed1.
       Se l’esecuzione termina nello stato finale si segue la
       transizione 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 che
       realizzano un certo comportamento specifico. L’enfasi non
       è sullo scambio di messaggi ma sui blocchi di
       comportamento.
       I diagrammi di macchina a stati si concentrano su un solo
       classificatore di contesto e modellano il suo stato interno in
       relazione al suo comportamento o alle operazioni che
       possono eseguite sulle sue istanze.
       Come tutti i diagrammi UML, possono essere usati sia a
       livello di analisi che di progettazione.

Lab. di Ingegneria del Software ()   I diagrammi di attività e stato   A.A. 2010-2011   35 / 35
Puoi anche leggere