45
Università degli Studi dell’Aquila Dipartimento di Ingegneria e Scienze dell'Informazione e Matematica (DISIM) - Università degli Studi dell’Aquila [email protected] Antinisca Di Marco Laboratorio di Ingegneria del Software a.a. 2014-2015

Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Embed Size (px)

Citation preview

Page 1: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Università degli Studi dell’Aquila

Dipartimento di Ingegneria e Scienze dell'Informazione e Matematica (DISIM) - Università degli Studi dell’Aquila

[email protected]

Antinisca Di Marco

Laboratorio di

Ingegneria del Software

a.a. 2014-2015

Page 2: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Rielaborazione delle slide di

Guglielmo De Angelis

e Catia Trubiani

Page 3: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Riepilogo della lezione precedente

Cos’è un Use Case Diagram? A cosa serve?!

3

Page 4: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Riepilogo della lezione precedente

Quali sono le relazioni che possono essere definite in uno use case diagram?!

4

inclusione

estensione

associazione

Page 5: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Riepilogo della lezione precedente

…e la generalizzazione?! A cosa serve?!

5

generalizzazione

di attori

generalizzazione

di casi d’uso

Page 6: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORY

ISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”

»introduzione alla modellazione

»UML è un linguaggio di modellazione

»le viste di UML

» use case view

» logical view

» implementation view

» process view

» deployment view

Page 7: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORY

ISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”

la famiglia di diagrammi UML

diagrammi per descrivere :

»struttura statica del sistema

» structure diagrams

»comportamento del sistema

» behavior diagrams

»interazioni tra gli oggetti

» interaction diagrams

Page 8: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORY

ISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”

structure diagrams

»class diagram

»object diagram

»component diagram

»deployment diagram

»composite structure diagram

»package diagram

Page 9: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

SOFTWARE ENGINEERING AND DEPENDABLE COMPUTING LABORATORY

ISTITUTO DI SCIENZA E TECNOLOGIE DELL'INFORMAZIONE “A. FAEDO”

behavior diagram

»state machine diagram

»activity diagram

»use case diagram

»interaction diagrams

»sequence diagram

»communication diagram

»interaction overview diagram

»timing diagram

Page 10: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram

Un Activity Diagram modella le attività in un processo generale di workflow, è utilizzato per:

- modellare le azioni compiute quando una operazione viene eseguita (sequenza di steps).

- modellare il comportamento di un oggetto

- descrivere come un insieme di azioni influisce su un insieme di oggetti

- modellare come uno use case è eseguito in termini di azioni e (cambiamento di stato di) oggetti

- modellare un processo di business in termini di lavoratori (actors), workflows, organizzazioni, e risorse (oggetti)

10

Page 11: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram

Cosa serve per definire un activity diagram:

- azioni

- relazioni di flusso

- nodi di controllo

nodi decisionali

nodi di esecuzione parallela

nodi di sincronizzazione

nodi di inizio e fine attività

nodi di fine flusso

- contenitori di attività

11

Page 12: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram -azioni-

Azioni: rappresentano un singolo “step” nella descrizione di una attività

Possono includere una descrizione del comportamento

attraverso altri modelli UML

attraverso altri tipi di linguaggi

Possono essere collegate al verificarsi di un evento

generazione di un evento

ricezione di un evento

12

Page 13: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram -relazioni di flusso-

Relazioni di flusso: rappresentano come due o più attività sono collegate

possono aver associato una condizione di esecuzione

possono aver associato un peso (i.e. probabilità di transizione)

possono descrivere il flusso di dati tra attività

13

Page 14: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram -nodi di controllo-

Nodi di controllo: rappresentano costrutti per la manipolazione dei flussi di controllo

- decision node: struttura rami alternativi in un flusso

- merge node: flussi alternativi confluiscono in un unico flusso

- fork node: consente l'esecuzione parallela di più flussi

- join node: sincronizza tutti i flussi entranti nel nodo

- initial node: inizio di una attività

- final node: fine di una attività

- final flow: fine di un flusso ma non dell'attività

14

Page 15: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram -partizioni di azioni-

Ogni partizione raggruppa azioni che condividono caratteristiche comuni

In un “business-model” sono utili nel modellare la corrispondenza con unità organizzative

Possono essere utilizzate per allocare caratteristiche e/o risorse in funzione delle attività

Non influiscono sul flusso delle attività

15

Page 16: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity Diagram

Notazione grafica utilizzata per specificare activity diagrams:

16

Page 17: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di -fork- e -join-

17

fork

join

Page 18: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di -decision node-

18

decision node

Page 19: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di -connector-

A reppresenta un connettore

19

connector

Page 20: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di -object-

20

object

L’azione Measuring fornisce i valori da misurare all’azione Updating displayer (measured value è un object)

Page 21: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di -signal-

Tra Create PostScript file e Remove MessageBox, viene inviato un segnale di Print. Il segnale contiene un file che è ricevuto e stampato dall’oggetto Printer

21

signal

Page 22: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM - EXAMPLE - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 23: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM - EXAMPLE - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 24: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM - EXAMPLE - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 25: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM - EXAMPLE - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 26: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM - EXAMPLE (REJECTED)- Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 27: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 28: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 29: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 30: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 31: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 32: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 33: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 34: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE (ACCEPTED) - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 35: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE - Le attività hanno lo stesso tempo di esecuzione (es. 1 sec)

Page 36: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE -

Page 37: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

ACTIVITY DIAGRAM – EXAMPLE - Cosa accade se i tempi di esecuzione sono quelli indicati?

3sec 5sec 20sec

3sec 9sec 5sec

Page 38: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

38

Partizione delle azioni tra differenti entità

Page 39: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

39

Page 40: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

40

Page 41: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

41

Page 42: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

Rent a video

42

Page 43: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Un esempio di activity diagram

Hospital management

43

Page 44: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Activity diagram... proviamoci!

Modellare tramite un activity diagram i passi essenziali di un processo di stampa:

- un utente può lanciare la stampa di un insieme finito di documenti. L'utente controlla il corretto svolgimento delle operazioni per mezzo di un dialog a video

- la stampa avviene per mezzo di uno spooler

- lo spooler prende in ingresso esclusivamente file codificati in PS, li processa e li invia sulla stampante fisica

- il processo di stampa può essere innescato se e solo se c'è sufficiente spazio sul disco che ne consenta l'eventuale codifica nel formato PS

44

Page 45: Laboratorio di Ingegneria del Software a.a. 2014-2015 · Ingegneria del Software a.a. 2014-2015 . Rielaborazione delle slide di Guglielmo De Angelis e Catia Trubiani . Riepilogo della

Una possibile soluzione

45