Sei sulla pagina 1di 38

Ingegneria del Software

(Ing.Informatica Nuovo Ord.)


Canale M-Z / A.A. 2005-06
Marco Cadoli
Universit di Roma La Sapienza
Dipartimento di Informatica e Sistemistica

TERZA PARTE
Analisi dei requisiti e definizione delle
specifiche
Sezione II: Complementi di UML
Versione definitiva
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

TERZA PARTE

Analisi e specifica dei requisiti


I.
II.

Concetti fondamentali dellanalisi e specifica


dei requisiti
Complementi di UML

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

II. Complementi di UML


II.1. Ripasso di UML
II.2. Diagramma delle attivit
II.3. Altri diagrammi

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

II.1. Ripasso di UML


Come si arrivati alla convergenza dei metodi
Rassegna dei principali diagrammi di UML

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

La convergenza dei metodi


anni 80 compaiono le prime metodologie OO
1989-1994 vengono presentati oltre 50
linguaggi di modellazione OO
1994 Grady Booch e Jim Rumbaugh iniziano il
loro lavoro di unificazione: Booch+OMT
1995 viene presentato Unified Method 0.8,
nello stesso anno si unisce Ivar Jacobson
portando il suo OOSE
1995 inizia lunificazione degli approcci
Booch, OMT e OOSE
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

La convergenza dei metodi (2)


1996 vengono rilasciate le versioni UML
(Unified Modeling Language) 0.9 e 0.91.
Durante lo stesso anno molti altri partner si
uniscono a supportare UML
1997 viene rilasciata la versione UML 1.0 e
OMG lo adotta come standard
giugno 1999 - : 1.1, 1.2, 1.3,

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

La convergenza dei metodi (3)


Industrialization
UML 1.3

Publication of UML 1.3 June 99

Publication of UML 1.1 September 97 UML

Publication of
UML 1.0, Jan 97

public
feedback

June 96 & Oct 96

UML 0.9 & 0.91

Booch 93

Ing. del SW: Terza parte Sez II

Standardization

UML 1.0

OOPSLA 95 Unified Method 0.8

Other methods Booch 91

1.1

UML Partners
Expertise

Unification

OMT - 2
OMT - 1

OOSE

Fragmentation

Marco Cadoli, Universit La Sapienza, nov 2005

Alcuni strumenti che usano UML


Tool
Composer
ObjectTeam
Paradigm Plus
Rose
Select
System Architect
Visio 2000
ArgoUML

Ing. del SW: Terza parte Sez II

Azienda
Texas Instruments
Cayenne
Platinum
Rational
Select
Popkin
Microsoft
Open source

Marco Cadoli, Universit La Sapienza, nov 2005

I principali diagrammi di UML


Progettazione
del SW 1

1.
2.
3.
4.
5.
6.
7.
8.

1,7,8: Diagrammi
statici

Class Diagram
Use Case Diagram
State&Transition Diag.
Activity Diagram
Sequence Diagram
Collaboration Diagram
Component Diagram
Deployment Diagram

Ing. del SW: Terza parte Sez II

2..6: Diagrammi
comportamentali

Struttura statica
Interazione con lutente
Ciclo di vita di un oggetto
Attivit e sincronizzazione

Design
model

Interazione fra
gruppi di oggetti
Realizzazione di classi Implementation/
Architectural
Risorse HW
model

Marco Cadoli, Universit La Sapienza, nov 2005

Diagrammi di UML: class


Illustra gli elementi statici di un modello assieme alle loro
propriet caratteristiche e alle relazioni tra di loro intercorrenti
Studente
Corso

Nome: stringa
Cognome: stringa
Matricola: int
Et: int

Nome: stringa
Disciplina: stringa

{complete}
corso di laurea

Esame
Professore
Codice: stringa
Et: int

Ing. del SW: Terza parte Sez II

Voto: 18..30

Base

Specialistico

Crediti: intero

Marco Cadoli, Universit La Sapienza, nov 2005

10

Diagrammi di UML: use case


Uno Use Case:
rappresenta una tipica
interazione tra un attore
(persona o sistema esterno)
ed il sistema software da
realizzare
cattura una qualche funzione
visibile dallutente
la sua descrizione si ottiene
attraverso linterazione tra
analista e cliente in fase di
analisi
Ing. del SW: Terza parte Sez II

Studente

chiede-iscrizione

Iscrizione
ad un corso
fattura
Sistema di Fatturazione

Marco Cadoli, Universit La Sapienza, nov 2005

11

Diagrammi di UML: state & transition


Illustra il comportamento dettagliato di un singolo

oggetto come macchina a stati


Esempio: diagramma degli stati e delle transizioni relativo
ad una classe UML Caldaia.
off

spento

on [acqua non gelata]

inizio

off
temperatura
desiderata
off

Ing. del SW: Terza parte Sez II

fine-accensione

in-funzione

temperatura
inferiore
caldo

Marco Cadoli, Universit La Sapienza, nov 2005

temperatura
desiderata

12

II.2. Diagramma delle attivit


Differenze rispetto al diagramma degli stati e
delle transizioni
Esempi

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

13

Diagrammi di UML: state & activity


State (o statechart o state and transition)
diagram
Illustra il comportamento dettagliato di un singolo
oggetto come macchina a stati
Prende spunto (con significative modifiche) dal
modello classico di automa a stati finiti

Activity Diagram
Descrive processi paralleli
Coinvolge pi oggetti
Prende spunto dal modello delle reti di Petri
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

14

Diagramma delle attivit


Un diagramma delle attivit (activity diagram) pu essere
visto come un caso particolare di diagramma degli stati e
delle transizioni per il quale tutti (o la maggior parte) degli
stati sono activity state (stati in cui viene svolta unattivit)
Un diagramma delle attivit tipicamente associato ad una
o pi classi UML. In alcuni casi pu essere associato ad un
metodo
Permette di concentrarsi sul flusso di controllo definito
dalle elaborazioni interne (complementare a quello definito
dagli eventi esterni)
I diagrammi delle attivit permettono di rappresentare
processi paralleli e la loro sincronizzazione

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

15

Diagramma delle attivit (2)


Questi diagrammi sono utili per rappresentare
comportamenti sequenziali, non determinismo,
concorrenza, sistemi distribuiti, business workflow.
Il diagramma delle attivit deve essere utilizzato
quando la maggioranza degli eventi da
rappresentare sono la terminazione delle azioni.
Viceversa, il diagramma degli stati e delle
transizioni deve essere usato nei casi in cui
accadono eventi asincroni.

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

16

Esempio
Questo diagramma mostra le
varie attivit che devono
essere svolte per bere una
bevanda (che pu essere
caff o cola)
Se la bevanda caff devono
essere svolte varie attivit (di
durata non nulla) che hanno
bisogno di sincronizzazione
e che in alcuni casi possono
essere svolte in parallelo.
Si noti la presenza di
eventi (ad es. light goes
out),
condizioni (ad es. [no
coffee]),
azioni (ad es.
coffeePot.turnOn)
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

17

Commenti sui diagrammi delle attivit


Dal punto di vista concettuale questi diagrammi sono simili
ai diagrammi PERT.
In meno, hanno lassenza delle durate per ciascuna attivit
In pi, hanno la possibilit di specificare alcuni aspetti del
controllo. Ad esempio, si possono inserire dei nodi di scelta
(rombi), simili a quelli nei diagrammi di flusso della
programmazione. In particolare, sono ammessi cicli.
Per il resto, la sintassi degli elementi grafici (stato iniziale e
finale, transizioni, condizioni, azioni) identica a quella dei
diagrammi degli stati e delle transizioni

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

18

Esercizio 1
Tracciare il diagramma delle attivit a partire da
questi requisiti.
La costruzione e commercializzazione di un
edificio per uffici inizia con la scelta del sito e
prosegue con la commessa ad uno studio di
ingegneria che presenta un progetto. Il progetto
deve essere sottoposto alle autorit, che lo possono
accettare o rifiutare. In questultimo caso, il
progetto pu essere ripresentato. Quando il
progetto viene accettato, iniziano sia lopera sul
sito sia la ricerca di un ente acquirente. Lente
acquirente propone ulteriori (limitati) interventi,
che vengono realizzati.
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

19

Responsabilit
Oggetto responsabile per unazione
Loggetto responsabile per lesecuzione di unazione
pu essere rappresentato visualizzando la sua linea del
tempo di vita e posizionando le azioni di cui
responsabile lungo questa linea.
Possono esserci differenti linee per differenti oggetti
della stessa classe o di classi diverse.
Queste linee prendono il nome di swimlanes (corsie
di una vasca per il nuoto).

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

20

Esempio
Questo esempio
mostra tre
swimlanes
(cliente, ufficio
vendite e
magazzino) per i tre
oggetti coinvolti
nella vendita di un
certo prodotto
Questo tipo di
modellazione viene
spesso usato per la
modellazione dei
cosiddetti business
workflow

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

21

Object Flow
Flusso degli oggetti
Per aumentare la chiarezza delle informazioni scambiate in
un diagramma delle attivit possono essere rappresentati
gli oggetti che sono in ingresso o in uscita ad una azione

Stato delloggetto
Quando uno stesso oggetto viene manipolato da pi attivit
successive possibile rappresentare tutti i collegamenti da
e verso loggetto
Per maggiore chiarezza si visualizza lo stesso oggetto pi
volte in un diagramma, dove ogni immagine rappresenta
loggetto in un differente stato
Lo stato delloggetto pu essere descritto in forma testuale
Possono essere associati diagrammi degli stati e delle
transizioni per gli oggetti evidenziati
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

22

Esempio

Ing. del SW: Terza parte Sez II

Vengono
evidenziati due
oggetti:
1. o, di tipo
Order, che
pu essere in
tre stati:
aperto
evaso
chiuso
2. f, di tipo
Fattura, che
pu essere in
due stati:
non pagata
pagata

Marco Cadoli, Universit La Sapienza, nov 2005

23

II.3. Altri diagrammi

Component diagram
Deployment diagram
Sequence diagram
Collaboration diagram

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

24

Diagrammi di UML: component


Un componente una parte di un sistema che realizza un
insieme di classi UML.
A differenza di una classe UML, il componente una parte:
fisica: costituita da uno o pi file (eseguibili, sorgenti, dati),
e
rimpiazzabile: possibile sostituirla con unaltra che abbia
la stessa interfaccia.
Il component diagram rappresenta un insieme di componenti
del sistema e le loro mutue relazioni.
cercaFrodi.class
Realizza:
Frode,
Direttiva,
Ricerca
Ing. del SW: Terza parte Sez II

Nome del componente


Descrizione del componente

Marco Cadoli, Universit La Sapienza, nov 2005

25

Diagrammi di UML: deployment


Nodo: elemento fisico che esiste a tempo di esecuzione e
rappresenta una risorsa computazionale, dotata di memoria e
capacit di processamento dati.
Un nodo rappresenta un dispositivo HW su cui pu essere
allocato (e fatto eseguire) uno o pi componenti.
Un diagramma di deployment (allocazione, dislocazione,
spiegamento) contiene nodi e connessioni fra essi.

Nome

server

<<Ethernet>>

chiosco

Componenti
gestCatasto.exe
guiCatasto.exe

<<RS-232>>
Allocazione
Ing. del SW: Terza parte Sez II

console

Nodo
Connessione

Marco Cadoli, Universit La Sapienza, nov 2005

26

Implementation model
Limplementation model la
struttura delle parti usate per
assemblare e realizzare il
sistema fisico.
Comprende, tipicamente, I
diagrammi:
Component,
Deployment,
Package (non considerato
nel corso).
Il deployment diagram pu
mostrare lallocazione
effettiva dei componenti ai
nodi.
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

27

Interaction Diagrams
Linterazione tra oggetti pu essere presentata in due forme,
ciascuna basata sulle stesse informazioni ma in grado di
enfatizzare un particolare aspetto:
il sequence diagram, e
il collaboration diagram.
I sequence diagram e i collaboration diagram esprimono le stesse
informazioni, ma le rappresentano in modo differente.
I sequence diagram illustrano la sequenza esplicita di
messaggi e sono pi indicati per specifiche real-time e per
scenari complessi.
I collaboration diagram rappresentano le relazioni tra gli
oggetti e sono pi indicati per evidenziare tutti gli effetti su un
dato oggetto e per la progettazione procedurale.
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

28

Diagrammi di UML: sequence &


collaboration
Sequence Diagram
Rappresenta le interazioni tra gli
oggetti disponendole in sequenza
Mostra gli oggetti che partecipano
allinterazione e la sequenza dei
messaggi scambiati

1:

Collaboration Diagram

2:

3:

Illustra le interazioni nel sistema


organizzandole attorno agli oggetti e
ai legami tra questi oggetti
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

29

Sequence Diagram
Un sequence diagram rappresenta uninterazione visualizzata
rispetto a una sequenza temporale. Esso:
mostra gli oggetti che partecipano allinterazione in termini
del loro tempo di vita e dei messaggi che essi si scambiano,
non mostra le relazioni esistenti tra gli oggetti.
Sono definiti alcuni formati (leggermente differenti tra loro)
da usarsi per enfatizzare differenti aspetti (concorrenza,
controllo, creazione e distruzione di oggetti, ricorsione,
esecuzione condizionale).
Vedremo due esempi, uno relativo ad una conversazione
telefonica, ed un altro relativo allevasione di un ordine
bibliotecario.
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

30

tempo

Esempio 1

oggetti (lordine ininfluente)


Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

31

Commenti sul sequence diagram


Lasse orizzontale quello degli oggetti
Lasse verticale quello del tempo
Di conseguenza, la vita di un oggetto viene evidenziata dalla
sua linea verticale
Un oggetto pu inviare o ricevere messaggi da altri oggetti
possibile dare un nome alloggetto nei suoi vari stati
possibile annotare il diagramma con vincoli temporali (ad
esempio sui tempi di trasmissione e ricezione dei messaggi)
Un oggetto pu esistere per tutta la durata dellinterazione,
oppure pu essere creato in qualche istante intermedio
(quando riceve il messaggio <<create>>)
Un oggetto pu anche essere distrutto (quando riceve il
messaggio <<destroy>>). La distruzione viene evidenziata
graficamente con una grande X
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

32

Esempio 2
Cittadino

Bibliotecario

Catalogo
Vita delloggetto

Tessera +
Richiesta libro

Tessera
valida
Richiesta
libro

Libro in
prestito

Ing. del SW: Terza parte Sez II

Tempo

Libro
disponibile

Marco Cadoli, Universit La Sapienza, nov 2005

33

Collaboration diagram
Un collaboration diagram rappresenta gli oggetti partecipanti
a uninterazione ed i loro collegamenti. Diversamente da un
sequence diagram, un collaboration diagram rappresenta le
relazioni tra gli oggetti.
Daltra parte, un collaboration diagram non tratta il tempo
come una dimensione separata, di conseguenza la sequenza
dei messaggi deve essere determinata utilizzando i numeri di
sequenza.
Un collaboration diagram pu essere utilizzato per specificare
limplementazione dei costrutti di progetto, ma a questo
scopo sono tipicamente necessarie ulteriori informazioni
Vedremo lesempio precedente (relativo allevasione di un
ordine bibliotecario) nel formato del collaboration diagram

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

34

Collaboration diagram

2: tessera valida
1: tessera +
richiesta libro

Cittadino

3: richiesta libro

Bibliotecario
5: libro in prestito

Ing. del SW: Terza parte Sez II

Catalogo

4: libro disponibile

Marco Cadoli, Universit La Sapienza, nov 2005

35

Soluzioni degli esercizi


Terza parte, sezione II

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

36

Soluzione esercizio 1
Scelta sito
Commessa

Progettazione

Valutazione
[non accettato]
[else]

Continua ...
Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

37

Soluzione esercizio 1 (2)


Valutazione
[non accettato]
[else]

Opera su sito

Ricerca acquirente

Finalizzazione

Ing. del SW: Terza parte Sez II

Marco Cadoli, Universit La Sapienza, nov 2005

38

Potrebbero piacerti anche