Sei sulla pagina 1di 35

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
www.dis.uniroma1.it/~cadoli

PRIMA PARTE

Il processo di produzione del SW


Esercitazione: Project Management
Versione definitiva
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo dellesercitazione
Stabilire le regole per la rappresentazione delle
caratteristiche di un progetto tramite rete temporale
Fornire algoritmi per il calcolo di:
tempi minimi e massimi di raggiungimento delle attivit
percorso critico

esemplificandoli su un progetto
Valutare la comprensione degli argomenti su un caso
di interesse per lingegneria del software
Esaminare brevemente un prodotto commerciale per la
modellazione e soluzione dei problemi esaminati
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Caratteristiche del progetto


In un progetto, sono previste 10 attivit, denotate dalle lettere A,
B, ..., L
Fra le attivit sono previste le seguenti relazioni di precedenza:

A, L < C
C<B
B, E, H < D
D, G, I < F
L<G

(C non pu iniziare se prima A ed L non sono completate)

Per ogni attivit X prevista una durata t(X), che per semplicit
viene assunta essere fissa. Le durate (in settimane) sono elencate
di seguito
A

13

13

21

39

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivi specifici
1. Tracciare un grafo che rappresenti tutte le caratteristiche del
progetto (diagramma PERT)
2. Determinare i tempi minimi e massimi di raggiungimento
per ognuna delle attivit
3. Determinare i percorsi critici
4. Tracciare un diagramma di Gantt per il progetto

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 1: tracciare il grafo del progetto


1. NODI:
1. Ad ogni attivit corrisponde un nodo
2. Esistono due nodi speciali s e t, per linizio e la fine del
progetto, rispettivamente
2. ARCHI:
1. Ad ogni relazione di precedenza corrisponde un arco
(orientato)
2. Esiste un arco dal nodo s ad ogni nodo sorgente
(individuato al punto 1)
3. Esiste un arco da ogni nodo pozzo (individuato al punto
1) al nodo t
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 1: tracciare il grafo del progetto (2)


3. ETICHETTE:
1. Ogni nodo X etichettato con la durata t(X) della
corrispondente attivit
2. I nodi s e t sono etichettati con 0 (hanno
convenzionalmente durata nulla)
NOTA: in molti libri di Ricerca Operativa, le attivit
vengono fatte corrispondere agli archi, non ai nodi

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 1: tracciare il grafo del progetto (3)


L 2
A
0
s

G
13

C 1
6

2
t

21
F
13

E 8
I

39

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 1: tracciare il grafo del progetto (4)


VERIFICA:
Numero di nodi =
numero di attivit + numero di nodi speciali =
10 + 2 = 12 OK
Numero di archi =
numero di precedenze fra attivit +
numero di sorgenti + numero di pozzi =
10 + 5 + 1 = 16 OK

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 2: Tempi min e max -- Definizioni


Tempo minimo di raggiungimento di unattivit A
(tmin(A)):
minimo tempo entro cui possono essere terminate tutte le
fasi necessarie per iniziare A
Tempo minimo di completamento di un progetto:
tempo minimo di raggiungimento dellattivit t
Tempo massimo di raggiungimento di unattivit A
(tmax(A)):
massimo tempo entro cui devono essere terminate tutte le
fasi necessarie per iniziare A, pena un aumento del tempo
minimo di completamento del progetto
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

Obiettivo 2: Tempi min e max (2)


Algoritmo per il calcolo del tempo minimo di raggiungimento
di tutte le attivit (calcolo in avanti)
Precondizione: il grafo aciclico
1. tmin(s) = 0;
2. scegli un nodo Y tale che per tutti i suoi predecessori Z
stato calcolato tmin(Z);
3. tmin(Y) = max [tmin(Z) + t(Z)];
// t(Z) la durata dellattivit Z
4. se Y t vai al passo 2;
5. fine;
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

10

Obiettivo 2: Tempi min di raggiungimento (3)


0

L 2

G
C 1
6

A 6
0
s
0

7
B

13

21
8

52

H 21
0

E 8

39

13

0
I

39

0
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

11

Obiettivo 2: Tempi min e max (4)


Algoritmo per il calcolo del tempo massimo di
raggiungimento di tutte le attivit (calcolo allindietro):
Precondizione: il grafo aciclico
1. tmax(t) = tmin(t);
2. scegli un nodo Y tale che per tutti i suoi successori Z
stato calcolato tmax(Z);
3. tmax(Y) = min [tmax(Z) - t(Y)];
// t(Y) la durata dellattivit Y
4. se Y s vai al passo 2;
5. fine;
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

12

Obiettivo 2: Tempi max di raggiungimento (5)


0..24
L 2
A 6
0..0

0..22
H 21

2..26
G
C 1
6..28

7..29
8
B

21..37
D

52..52

2
F

0..16
E 8

13

13

t
0

39..39

0..29
39

I
0..0

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

13

Obiettivo 3: Percorso critico -- Definizioni


Attivit critica: attivit A per cui tmin(A) = tmax(A)
Percorso critico: cammino s-t in cui tutte le attivit sono
critiche
Tempo minimo di completamento di unattivit A
(tmin_c(A)):
tmin_c(A) = tmin(A) + t(A)
Tempo massimo di completamento di unattivit A
(tmax_c(A)):
tmax_c(A) = tmax(A) + t(A)

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

14

Obiettivo 3: Percorso critico (2)


Attivit

Durata

13

13

21

39

Tempo min
raggiungim

21

39

Tempo max 22
raggiungim

29

28

37

29

39

26

16

24

Tempo min
completam

15

23

52

15

21

39

37

29

39

37

52

39

37

39

26

Tempo max 28
completam

I ed F sono attivit critiche


s-I-F-t lunico percorso critico
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

15

Obiettivo 4: Diagramma di Gantt


Nota: possibile ritardare linizio di qualche attivit (ad es. L, G, C) che
non si trova su alcun percorso critico

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

16

Commenti
A partire da un diagramma PERT P sempre possibile
tracciare un diagramma di Gantt:
facendo partire tutte le attivit critiche il prima possibile
scegliendo la partenza delle altre attivit in maniera da
rispettare i tempi minimi e massimi di raggiungimento
Il diagramma di Gantt ottenibile da P tipicamente non
unico
Per tale motivo, a partire da un diagramma di Gantt non
tipicamente possibile risalire al diagramma PERT
(questultimo contiene pi informazione)
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

17

Possibili estensioni
La definizione del problema pu essere resa pi realistica
dallintroduzione di altri aspetti nella modellazione (non
presenti nel grafo PERT), ad esempio:
1. Le durate delle attivit non sono determinate a priori, ma
sono delle variabili aleatorie
2. Esistono dei vincoli di indisponibilit di alcune risorse in
determinati periodi temporali
Vedremo un esempio dellestensione del secondo tipo.

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

18

E viene ritardata e non


si sovrappone a C

Vincoli di indisponibilit

Di conseguenza,
anche D deve
essere ritardata

Esempio: non possibile svolgere contemporaneamente le attivit C ed E


Soluzione possibile: viene ritardato linizio di E e, di conseguenza, di D

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

19

Vincoli di indisponibilit (2)


Ovviamente, dobbiamo verificare che i cambiamenti
apportati al diagramma di Gantt non abbiano violato alcun
vincolo di precedenza presente nel PERT.
Nota: esistono vari strumenti commerciali che verificano la
consistenza del PERT e del Gantt.

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

20

Un progetto di ingegneria informatica


In un progetto SW sono previste le seguenti attivit:
Raccolta dei requisiti, da effettuarsi con intervista al cliente (A)
e tramite questionario da distribuire a vecchi clienti (B)
Preparazione del questionario di cui sopra (C)
Analisi dei requisiti e progettazione concettuale (D)
Codifica in Java (E)
Test (F)
Il progetto deve iniziare il 01/01/2003.
Il team di test non sar disponibile nel mese di luglio 2003, perch
impegnato in altro progetto.
Le durate delle varie attivit, in mesi, sono riportate di seguito:
A

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

21

Un progetto di ingegneria informatica (2)


1. Tracciare un grafo che rappresenti tutte le caratteristiche del
progetto (diagramma PERT)
2. Determinare i tempi minimi e massimi di raggiungimento
per ognuna delle attivit
3. Determinare i percorsi critici
4. Tracciare un diagramma di Gantt per il progetto
5. Verificare la consistenza del diagramma di Gantt con i
vincoli, ed eventualmente modificarlo

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

22

Passo 1: considerazioni preliminari


Nella scelta delle attivit evidentemente stato utilizzato il
modello a cascata per il ciclo di vita del SW
La raccolta dei requisiti pu essere parallelizzata,
conducendo indipendentemente:
lintervista al cliente, e
la distribuzione/raccolta dei questionari ai vecchi clienti
Per il resto, vanno rispettate le ovvie relazioni di precedenza
fra le attivit

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

23

Passo 1: tracciare il grafo del progetto

C
0
s

1
D

2
t

F
3

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

24

Passo 2: calcolo tempi min e max di raggiung.

0
s

0..0

1..1

2..2
1
D

3..3
E

2
5..5

F
3

0..1

Ing. del SW: Eserc. Project Management

8..8
0
t

Marco Cadoli, Universit La Sapienza, nov 2005

25

Passo 3: Percorso critico


Attivit

Durata

Tempo min
raggiungim

Tempo max 1
raggiungim

Tempo min
completam

Tempo max 2
completam

B, C, D, E ed F sono attivit critiche


s-C-B-D-E-F-t lunico percorso critico
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

26

Passo 4: Diagramma di Gantt


GEN

Abbiamo
scelto di
ritardare
linizio di A

FEB

C
D
E
F

Ing. del SW: Eserc. Project Management

MAR APR

MAG GIU

LUG

AGO

X
X
X

X
X

Marco Cadoli, Universit La Sapienza, nov 2005

27

Passo 5: Verifica del diagramma di Gantt


Non viene rispettato il vincolo di indisponibilit del
team di test a luglio
Modificando le scelte a nostra disposizione, non
riusciamo comunque a soddisfare tale vincolo
Di conseguenza, lattivit F (Test) deve essere
interrotta a luglio, ed il progetto pu finire solamente
col mese di settembre
Nota: se avessimo, inoltre, avuto il vincolo di non
interrompibilit delle attivit, il test sarebbe potuto
iniziare solamente ad agosto, ed il progetto sarebbe
terminato col mese di ottobre
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

28

Passo 5: Modifica del diagramma di Gantt


GEN

FEB

MAR APR

MAG GIU

LUG

AGO

SET

D
E
F

Ing. del SW: Eserc. Project Management

X
X

X
X

Marco Cadoli, Universit La Sapienza, nov 2005

29

Utilizzo di un sistema automatico


Codice sorgente in OPL Solver/Scheduler (ILOG, www.ilog.com):
1. Dichiarazione dei dati:

Activity
Activity
Activity
Activity
Activity
Activity
Activity

C(1);
A(1);
B(1);
D(1);
E(2);
F(3) breakable;
t(0);

UnaryResource TestTeam;
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

30

Utilizzo di un sistema automatico (2)


Codice sorgente in OPL Solver/Scheduler (ILOG):
2. Dichiarazione dei vincoli:

minimize
t.start
subject to {
C precedes B;
B precedes D;
A precedes D;
D precedes E;
E precedes F;
F precedes t;
F requires TestTeam;
break(TestTeam,6,7);
};
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

31

Utilizzo di un sistema automatico (3)


3. Soluzione generata:

Optimal Solution with Objective Value: 9


C = [0 -- 1 --> 1]
A = [0 -- 1 --> 1]
B = [1 -- 1 --> 2]
D = [2 -- 1 --> 3]
E = [3 -- 2 --> 5]
F = [5 -- (3) 4 --> 9]
t = [9 -- 0 --> 9]
TestTeam = Unary Resource
required by F over [5,9] in capacity 1
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

32

Output in forma grafica

Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

33

Esercizio
Una societ di ricerca e sviluppo del software, nel progettare e realizzare
un sistema innovativo su web alloca un analista, tre programmatori, un
esperto di test ed un ricercatore ed utilizza un approccio prototipale
prevedendo due iterazioni.
Nella prima iterazione sono previste le seguenti attivit: raccolta e analisi
dei requisiti (A, 1 mese); codifica in Java di un prototipo che
implementa le funzionalit (B, 1 mese); realizzazione dell'interfaccia
utente in HTML (C, 2 mesi); test dell'interfaccia (D, 1 mese); test del
programma (E, 1 mese); ricerca di soluzioni tecnologiche avanzate
alternative a quelle comunemente usate dalla societ (F, 3 mesi);
valutazione con il cliente del prototipo e delle soluzioni tecnologiche
alternative (G, 1 mese), dove le attivit di ricerca di soluzioni
tecnologiche e di codifica del programma e dellinterfaccia utente
possono avvenire indipendentemente.
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

34

Esercizio (2)
Nella seconda iterazione sono previste le seguenti attivit: analisi dei
requisiti del secondo prototipo (H, 1 mese); insegnamento delle nuove
tecnologie ai programmatori da parte del ricercatore (I, 2 mesi);
realizzazione nelle nuove tecnologie di un programma che implementa
tutte le funzionalit (L, 2 mesi); test del programma e dell'interfaccia
(M, 0,5 mesi); test di accettazione presso il cliente (N, 0,5 mesi), dove le
attivit di analisi e di insegnamento possono avvenire
indipendentemente.
Il progetto deve iniziare il 01/01/2004. Il ricercatore non sar disponibile
nel mese di giugno, in quanto impegnato per un congresso.
Tracciare il diagramma PERT del progetto. Determinare i tempi minimi e
massimi di raggiungimento per ognuna delle attivit. Determinare i
percorsi critici. Tracciare un diagramma di Gantt per il progetto.
Verificare la consistenza del diagramma di Gantt con il personale
allocato, ed eventualmente modificarlo.
Ing. del SW: Eserc. Project Management

Marco Cadoli, Universit La Sapienza, nov 2005

35

Potrebbero piacerti anche