Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Il modello a cascata
del SW
IS
Modelli iterativi
Il modello a spirale
Ingegneria del Software Altri modelli
V. Ambriola, G.A. Cignoni,
C. Montangero, L. Semini Seminario: cicli di vita in ISO/IEC 12207
Aggiornamenti : T. Vardanega (UniPD)
Dipartimento di Informatica, Università di Pisa 1/36 Dipartimento di Informatica, Università di Pisa 2/36
Concezione → sviluppo → utilizzo → ritiro Un ciclo di vita concreto attua processi di progetto
Istanziati a partire dal modello dei processi definiti
Per identificare le attività necessarie
Ci basiamo su modelli generici, indipendenti dal progetto / prodotto Pone vincoli su pianificazione e gestione del progetto
Decomponiamo le fasi in attività
Adottiamo una terminologia consistente È indipendente da metodi e strumenti di sviluppo
Precede e non segue la loro selezione
Per organizzare le attività
Identifichiamo le dipendenze tra i loro ingressi e le loro uscite Richiede un sistema di qualità|g| per garantire e
Fissiamo il loro ordinamento nel tempo misurare conformità|g| e maturità|g|
Definiamo criteri di completamento e di avanzamento
Temi che approfondiremo in una prossima lezione
Dipartimento di Informatica, Università di Pisa 3/36 Dipartimento di Informatica, Università di Pisa 4/36
Dipartimento di Informatica, Università di Pisa 5/36 Dipartimento di Informatica, Università di Pisa 6/36
Ogni stato di vita (fase) è caratterizzato da pre- Ogni fase viene definita in termini di
condizioni di ingresso e post-condizioni di uscita Attività previste e prodotti attesi in ingresso e in uscita
Il loro soddisfacimento è dimostrato da prodotti costituiti prima da Contenuti e struttura dei documenti
documentazione e poi da SW
Responsabilità e ruoli coinvolti
Le fasi sono distinte e non si sovrappongono Scadenze di consegna dei documenti
Adatto allo sviluppo di sistemi complessi sul piano Presentano dipendenze causali e temporali
organizzativo
Le iterazioni costano troppo per essere un buon mezzo di Ciascuna fase comporta azioni specifiche
mitigazione dei rischi tramite approssimazioni successive Realizzate come attività erogate dai processi coinvolti
Dipartimento di Informatica, Università di Pisa 7/36 Dipartimento di Informatica, Università di Pisa 8/36
Dipartimento di Informatica, Università di Pisa 9/36 Dipartimento di Informatica, Università di Pisa 10/36
Possono produrre “valore” a ogni incremento Sono applicabili a qualunque modello di ciclo di vita
Un insieme non vuoto di funzionalità diventa presto disponibile Consentono maggior capacità di adattamento
I primi incrementi possono corrispondere a fasi di prototipazione
Evoluzione di problemi, soluzioni possibili e tecnologie utilizzabili
Che aiutano a fissare meglio i requisiti per gli incrementi successivi
Diversificazione dei requisiti del committente
Ogni incremento riduce il rischio di fallimento I requisiti restano stabili solo in casi molto rari
Senza però azzerarlo a causa dei costi aggiuntivi derivanti dalle Soluzione generale
eventuali iterazioni
Decomporre la realizzazione del sistema
Le funzionalità essenziali sono sviluppate nei primi Identificare e trattare prima le componenti più critiche
incrementi Quelle più complesse
Oppure quelle i cui requisiti non sono sufficientemente chiari
Attraversano più fasi di verifica
E quindi diventano più stabili con ciascuna iterazione Ma il numero di iterazioni va limitato superiormente
Dipartimento di Informatica, Università di Pisa 13/36 Dipartimento di Informatica, Università di Pisa 14/36
Dipartimento di Informatica, Università di Pisa 15/36 Dipartimento di Informatica, Università di Pisa 16/36
Analisi e
Progettazione
Progettazione
5.3.2 AR sistema di dettaglio
5.3.3 DA sistema
Accettazione
5.3.4 AR software
5.3.5 DA software Realizzazione
5.3.6 DD software 5.3.9 Collaudo software
5.3.11 Collaudo sistema
Le iterazioni sono La validazione è
parte dello sviluppo anch’essa incrementale 5.3.7 Codifica software
5.3.8 Integrazione software
5.3.10 Integrazione sistema
Tratto da: Ian Sommerville, Software Engineering, 8th ed.
Dipartimento di Informatica, Università di Pisa 17/36 Dipartimento di Informatica, Università di Pisa 18/36
Dipartimento di Informatica, Università di Pisa 19/36 Dipartimento di Informatica, Università di Pisa 20/36
Analisi
preliminare
Analisi e
5.3.1 Istanziazione Progettazione Prototipo oppure
del processo
Accettazione finale
5.3.2 AR sistema
5.3.3 DA sistema 5.3.3 DA sistema Realizzazione
5.3.4 AR software 5.3.4 AR software 6.6 Revisione
5.3.5 DA software 5.3.5 DA software oppure
5.3.6 DD software 5.3.9 Collaudo software
5.3.11 Collaudo sistema
Ogni fase ammette
5.3.7 Codifica software
iterazioni multiple e Il numero di iterazioni
5.3.8 Integrazione software
effettuate è conseguenza
e parallele stessa del ciclo interno!
5.3.10 Integrazione sistema
Dipartimento di Informatica, Università di Pisa 21/36 Dipartimento di Informatica, Università di Pisa 22/36
Dipartimento di Informatica, Università di Pisa 23/36 Dipartimento di Informatica, Università di Pisa 24/36
Dipartimento di Informatica, Università di Pisa 25/36 Dipartimento di Informatica, Università di Pisa 26/36
Dipartimento di Informatica, Università di Pisa 27/36 Dipartimento di Informatica, Università di Pisa 28/36
Dipartimento di Informatica, Università di Pisa 29/36 Dipartimento di Informatica, Università di Pisa 30/36
Obiettivi strategici
Poter costantemente dimostrare al cliente quanto è stato fatto
Verificare l’avanzamento tramite progresso reale
Dare agli sviluppatori la soddisfazione del risultato
Assicurare che l’intero prodotto SW è ben integrato e verificato
Esempi
Scrum (caos organizzato), Kanban (just-in-time), Scrumban
Dipartimento di Informatica, Università di Pisa 31/36 Dipartimento di Informatica, Università di Pisa 32/36
Dipartimento di Informatica, Università di Pisa 33/36 Dipartimento di Informatica, Università di Pisa 34/36
Applicazioni serie “normali” W.W. Royce, “Managing the development of large software
~ 60% dei costi allo sviluppo systems: concepts and techniques”, Atti della conferenza
Modello iterativo
“Wescon ’70”, agosto 1970
~ 40% alla qualifica
B.W. Bohem, “A spiral model of software development
I costi complessivi variano al and enhancement”, IEEE Software, maggio 1998
variare del dominio e del tipo
Modello “component-based”
di sistema Center for Software Engineering,
http://sunset.usc.edu/research/spiral_model
La ripartizione dei costi sulle
ISO/IEC TR 15271:1998, Information Technology – Guide
fasi varia al variare del Modello evolutivo for ISO/IEC 12207
modello e del dominio
Sistemi critici: > 60% qualifica Scrum: http://www.scrumalliance.org/learn_about_scrum
Tratto da: Ian Sommerville, Software Engineering, 8th ed.
Dipartimento di Informatica, Università di Pisa 35/36 Dipartimento di Informatica, Università di Pisa 36/36