Progettazione dei sistemi informatici
Gestione dei progetti
CARLO BELLETTINI [email protected]
Organizzazione del corso
✤
3 lezioni:
✤
Presentazione dei processi classici Ingegneria del Software
✤
Presentazione delle metodologie agili
✤
Laboratorio
Alcune riflessioni di metadidattica
✤
Attenzione terminologica
✤
Periodo di attenzione continuativo limitato
✤
Stimolare curiosità ad approfondire
✤
Stimolare il ragionamento
✤
Stimolare la prova diretta
Processi di produzione del sw
✤
Negli anni ’50-’60 si è colta la necessità di superare metodi di
produzione artigianale
✤
Studio quindi di tecniche e metodologie che potessero migliorare e
“assicurare” software di qualità
Principali problemi
✤
Numero e tipo persone coinvolte
✤
✤
✤
il programmatore non è il cliente e questo crea problemi di
comunicazione
Dimensioni del software
✤
milioni di linee di codice
✤
migliaia di anni uomo
SOFTware
✤
malleabilità porta a moltiplicarsi di versioni e evoluzioni
The mythical man/month
https://archive.org/stream/mythicalmanmonth00fred
Fred Brooks
L’approccio ingegneristico
Target
Metric
Method
Process
Tool
Closer to target?
NO
OK
accept
modify
Measurements
Perché studiare un processo?
✤
Convinzione che un buon processo produca un prodotto di qualità
✤
✤
quali sono le qualità a cui miriamo nel software?
✤
che funzioni
✤
che sia bello
✤
che mi faccia diventare ricco
quali sono le qualità del processo che possono influenzare?
Cosa vuol dire “che funziona”
✤
✤
✤
che fa quello che è stato chiesto
R.Glass’ Law (L1):
Requirements deficiences are the prime source of projects failures
✤
CORRETTEZZA
✤
e se mi è stato chiesto qualcosa di sbagliato? incompleto?
che mi posso fidare di lui
✤
AFFIDABILITÀ
✤
come misurarla? rispetto a cosa?
che non fa male
✤
INNOCUITÀ (SAFETY) e/o ROBUSTEZZA
Cosa vuol dire “bello”?
✤
facile da usare
✤
✤
USABILITÀ
veloce
✤
✤
Nielsen-Norman’s Law (L26):
Usability is quantifiable
EFFICIENZA nell’uso delle risorse
pulito
✤
VERIFICABILITÀ
Come fa a farmi diventare ricco?
✤
non rifare qualcosa di già fatto
✤
RIUSABILITÀ di componenti
✤
✤
McIlroy’s Law (L15):
Software reuse reduces cycle time and increases
productivity and quality
minori costi e maggiore affidabilità
semplificare gli interventi post consegna
✤
M. Lehman’s Laws (L27 e L28):
A system that is used will be changed
MANUTENIBILITÀ
An evolving system increases its
✤
correzione errori (RIPARABILITÀ) complexity unless work is done to reduce it
✤
estensione dei requisiti (EVOLVIBILITÀ)
✤
adattamento a nuove situazioni
Come deve essere un processo?
✤
resistere agli imprevisti
✤
✤
veloce
✤
✤
ROBUSTEZZA
PRODUTTIVITÀ
cogliere l’attimo
✤
TEMPISMO
Waterfall Process
✤
Fine anni ‘50, ma diventato “famoso” nei ‘70
✤
Una famiglia di processi
Requisiti
Progetto
Codifica
Testing
Prodotto
Problemi di comunicazione
Pianificare: caso semplice?
Who’s Afraid of The Big Bad Waterfall?
in https://leanpub.com/leprechauns
Fountain Life-Cycle
(Henderson-Sellers 1993)
“Problemi” con modelli incrementali
http://www.ibm.com/developerworks/rational/library/content/RationalEdge/dec00/
FromWaterfalltoIterativeDevelopmentDec00.pdf
✤
✤
Viene complicato il lavoro di planning
✤
Lo stato del processo è meno visibile
✤
Bisogna pianificare tutte le iterazioni
Si riconosce che bisogna rimettere mano a ciò che si è fatto
✤
✤
Il sistema può non convergere
Cosa è una iterazione, quanto dura?
✤
Rischio di voler mettere troppo nella prima iterazione
✤
Rischio di overhead dovuto a troppe iterazioni
✤
Rischio di avere un eccessivo overlapping tra le iterazioni
✤
Non si ha tempo di avere feedback dell’utente
COTS: Component Off The Shelf
Modello prototipale
✤
Prototipo usa e getta (throw away)
✤
Pubblici o esterni
✤
Per capire meglio i requisiti e/o far compiere scelte all’utente
✤
✤
Boehm’s Law (L3)
Prototyping (significantly)
reduces requirements and design
errors,
especially for user interfaces
interfacce
Privati o interni
✤
Per esplorare nuovi strumenti, linguaggi, diverse scelte per problema
difficili
✤
progetti pilota, testbed
Scarica

Progettazione dei sistemi informatici