Copyright © 2004 Moreno Marzolla

This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 Italy License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/it/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Esercizio 1

Un certo progetto di un sistema software è composto dalle attività (tasks) indicate nella tabella seguente. Per ciascuna attività è indicata la durata, e quali altre attività devono essere consluse prima.

Esercizio 1 (cont.)

Calcolare la durata complessiva del progetto, assumendo che tutti i task siano completati senza ritardi

Determinare il (i) cammini critici (critical paths) nel diagramma delle attività

Calcolare la durata complessiva del progetto in ciascuno dei seguenti casi:

Il task T1 richiede 15 giorni per essere completato

Il task T3 richiede 3 giorni per essere completato

Il task T4 richiede 5 giorni per essere completato

Svolgimento 1

T1 (10)

T2 (5)

T3 (8)

T4 (3)

T5 (9)

T6 (10)

T7 (15)

Svolgimento 1 (cont.)

Determiniamo tutti i possibili cammini da T1 a T6

T1->T2->T4->T6 (28 giorni)

T1->T3->T4->T6 (31 giorni)

T1->T3->T5->T6 (37 giorni)

T1->T3->T5->T7 (42 giorni)

La durata complessiva del progetto è 42 giorni

Il critical path è T1->T3->T5->T7

La durata del progetto sale a 47 giorni

La durata del progetto scende a 37 giorni

La durata del progetto rimane invariata

Esercizio 2

Un progetto software è stimato richiedere 24 mesi/uomo. 3 programmatori vengono assegnati al progetto a tempo pieno. Dopo 3 mesi di lavoro, si stima che il progetto sia in ritardo, poiché solo 6 mesi/uomo di lavoro sono stati fatti.
Determinare quanti programmatori è necessario aggiungere affinché il progetto sia completato entro la scadenza originariamente prevista, nei casi seguenti:

Esercizio 2 (cont.)

Assumere che i nuovi programmatori siano immediatamente produttivi, non vi siano ulteriori ritardi, e che la stima iniziale del tempo sia corretta.

E' necessario un mese di tempo per addestrare i nuovi programmatori. Durante questo tempo nessun ulteriore progresso viene compiuto sul sistema. Assumere non ci siano ulteriori ritardi e la stima originaria del tempo sia corretta

Assumere che i nuovi programmatori siano immediatamente produttivi, ma la stima iniziale del tempo non è corretta. Il progetto richiederebbe 36 mesi/uomo anziché 24.

Svolgimento 2: caso 1)

Dopo 3 mesi, rimangono ancora 18 mesi/uomo di lavoro da fare nei rimanenti 5 mesi

Servono 4 uomini => Aggiungere un uomo

Uomini

Mesi

6 mesi/uomo

18 mesi/uomo

Svolgimento 2: caso 2)

Dopo 4 mesi, rimangono ancora 18 mesi/uomo di lavoro da fare nei rimanenti 4 mesi

Servono 5 uomini => Aggiungere 2 uomini

Uomini

Mesi

6 mesi/uomo

18 mesi/uomo

Svolgimento 2: caso 3)

Dopo 3 mesi, rimangono ancora 30 mesi/uomo di lavoro da svolgere in 5 mesi

Servono 6 uomini => Aggiungere 3 uomini

Uomini

Mesi

6 mesi/uomo

30 mesi/uomo

Esercizio 3

Descrivere in UML il sistema seguente
Si consideri una libreria “virtuale” che accetta ordini via WEB. I potenziali clienti possono navigare sul sito WEB della libreria, in cui possono anche effettuare ordini riempiendo un form. Tutti i prodotti in vendita hanno un codice univoco, un titolo, una descrizione e un prezzo. I prodotti in vendita sono di tre tipi: Libri, CD e Videocassette. I Libri sono caratterizzati anche da un autore e da un editore. I CD hanno un autore e una durata complessiva. Le videocassette hanno lo standard di registrazione (PAL/NTSC) e la durata.
Il sistema memorizza gli ordini relativi a ciascun cliente. Un cliente può avere più ordini attivi allo stesso istante, e ogni singolo prodotto può comparire al più in un solo ordine (ordini vuoti non sono ammessi). Ogni ordine puà includere più prodotti, e riporta la data in cui è stato effettuato. Ciascun cliente è identificato da codice, dal cognome, nome e indirizzo

Svolgimento 3: Use Cases

Svolgimento 3: Class Diagram

Moreno Mazolla

2002-11-29T11:20:18