Il ciclo di vita del software

Documenti analoghi
Il ciclo di vita del SW

Il ciclo di vita del SW

Il ciclo di vita del SW

Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software. Processo software. Marina Mongiello. il processo

Il ciclo di vita del SW

Tecniche di Programmazione 2009/10

SCD IS. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Modelli di ciclo di vita.

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_2 V3.

SCD IS. Processi SW. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Parole chiave 4. Modelli di ciclo di vita

SCD IS. Processi SW. Processi Software. Ciclo di vita del SW 1. Ciclo di vita del SW 2. Parole chiave 3

IS Corso di Ingegneria del Software 1

Definizioni - 1. Ingegneria del Software 2 2. Processi di sviluppo software. Ingegneria del Software 2 Processi di sviluppo software

IS Corso di Ingegneria del Software 1

Definizioni - 1. Ingegneria del Software modulo B 2. Processi di sviluppo software. Modelli. Modello sequenziale. Modello incrementale

Gestione dello sviluppo software Modelli Base

SCD IS. Processi SW. Processi Software. Glossario 4. Ciclo di vita del SW 2. Ciclo di vita del SW 1

Corso di Ingegneria del Software. Modelli di produzione del software

IS Corso di Ingegneria del Software 1

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

software Progettazione software IS Corso di Ingegneria del Software 1 Contenuti Progettare prima di produrre Dall analisi alla progettazione

IS Corso di Ingegneria del Software 1

Ingegneria del Software 2. Ciclo di vita. Dipartimento di Informatica Università di Pisa A.A. 2014/15

IS Corso di Ingegneria del Software 1

Verifica e validazione: introduzione

3. Ciclo di Vita e Processi di Sviluppo

Corso di Ingegneria del Software

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

Progettazione software

INTERAZIONE UOMO-MACCHINA

Verifica e validazione: introduzione

Corso di Ingegneria del Software. Modelli di produzione del software

Corso di Ingegneria del Software. Il modello UP

Qualità del software. Qualità: intuizione iniziale. Qualità del software. Qualità: una definizione. IS Sistema qualità

INTERAZIONE UOMO-MACCHINA

Qualità del software. Qualità del software. Qualità: intuizione iniziale. IS Glossario 10. IS Glossario 9

Qualità del software. Qualità del software. Glossario. IS Glossario. Qualità: intuizione iniziale

Sistemi Informativi. Marino Segnan

Verifica e validazione: introduzione

Gradi di liberta. Ingegneria del Software modulo B. Metodiche standard di sviluppo industriale. Pianificazione - 1. Pianificazione - 2

Gradi di libertà. Ingegneria del Software 2 5. Metodiche standard di sviluppo industriale

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Progettazione software

Gestione di progetto. Cosa è un progetto? Gestione di progetto. Fondamenti di gestione. Ruoli

Gestione di progetto. Gestione di progetto. Criticità. Fondamenti. Fattori di rischio. IS Ingegneria del Software 1

Presentazione ragionata del corso

Corso di Ingegneria del Software. Modelli di produzione del software

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni

SCD IS. Considerazioni strategiche. Fasi del progetto didattico. Gradi di libertà. Pianificazione 1. UniPD Ingegneria del Software mod.

Materiale didattico. Sommario

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

Analisi e Progettazione del Software

Introduzione al corso

Qualità del software. Qualità del software. IS Corso di Ingegneria del Software 1. Contenuti. IS Qualità: una definizione.

Verifica e validazione: introduzione

Gestione di progetto. Cosa è un progetto? Gestione di progetto. Fondamenti di gestione. Criticità

RRS The Mythical Man-Month

Analisi dei requisiti

Gestione di progetto. Gestione di progetto. Fondamenti di gestione. Cosa è un progetto? Ruoli

Ingegneria del Software

Corso di Laurea Magistrale in Ingegneria Informatica. Module B-Software Systems Engineering a.a Gigliola Vaglini.

SCD IS. Documentazione. Domande ricorrenti 1. Valutazione quantitativa 1. Perché documentare... UniPD Ingegneria del Software mod.

Gestione di progetto. Gestione di progetto. Fondamenti di gestione. Cosa è un progetto? Ruoli

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

INGEGNERIA DEL SOFTWARE

Cicli di Vita del Software. Porfirio Tramontana 2009 Ingegneria del Software Cicli di Vita del Software

SCD IS. Documentazione. Documentazione. Valutazione quantitativa 1. Domande ricorrenti 1. Modello a V. Perché documentare

Unified Process - introduzione

Corso di Ingegneria del Software. Modelli di produzione del software

SCD IS. Documentazione. Domande ricorrenti 1. Cosa documentare. Come documentare. Perché documentare 3. Domande ricorrenti 2. Perché documentare

Qualità del software. Qualità: intuizione iniziale. Contenuti. Qualità del software. IS Qualità: una definizione

Ingegneria del Software 13a. Architetture software. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_4 V3.

Introduzione. Contenuti da Cap. 1 Ghezzi et al.

IL PROCESSO di PROGETTAZIONE

SCD IS. Analisi dei requisiti. Analisi dei Requisiti. Glossario 10. Attività necessarie. Glossario 9. V & V = Qualifica. Verifica

SCD IS. Documentazione. Documentazione. Perché documentare... Valutazione quantitativa 1. Domande ricorrenti 1. Perché documentare

SCD IS. Regole del Progetto Didattico. Regole del Progetto Didattico. Fasi esterne di progetto 1. Fasi esterne di progetto 2. Progetto didattico

IS Corso di Ingegneria del Software 1

SCD IS. Ingegneria dei requisiti. Ingegneria dei Requisiti. Definizioni 2. Definizioni 1. Attività necessarie 1. V & V = Qualifica.

APPALTI PUBBLICI LA PROGETTAZIONE DEI LAVORI E LA VALIDAZIONE DEL PROGETTO

Processo e modelli. Cap. 7 Ghezzi et al.

Redazione e Presentazione di Progetti Informatici

IS Corso di Ingegneria del Software 1

A. Ferrari sistemi informativi e sistemi informatici

1. Ciclo di Vita e Processi di Sviluppo

Fasi di revisione del progetto

Corso di Ingegneria del Software. Introduzione al corso

MANUALE DELLA QUALITÀ Pag. 1 di 9

ORGANIZZAZIONE Un modello organizzativo per l efficacia e l efficienza dello Studio

Modelli di Ciclo di Vita del Software (CVS)

PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci

UniPD Ingegneria del Software mod. A 1

SISTEMA QUALITA GESTIONE DEI PRODOTTI NON CONFORMI. Rev. Data Descrizione revisione Redatto Verificato Approvato

IS Corso di Ingegneria del Software 1

PROGETTAZIONE E SVILUPPO Procedura PG. 01 REV.00 del

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

SCD IS. Premesse al Corso. UniPD Ingegneria del Software mod. A 1. Ingegneria del software 1. Parole chiave 1. Ingegneria del software 2

Transcript:

Contenuti Il ciclo di vita del software 2001-2009 Corso di Ingegneria del Software V. Ambriola, G.A. Cignoni, C. Montangero, L. Semini Con aggiornamenti di: T. Vardanega (UniPD) Il modello a spirale Il modello a cascata I modelli iterativi Seminario: i cicli di vita in O/IEC 12207 Dipartimento di Informatica, Università di Pisa 1/25 Dipartimento di Informatica, Università di Pisa 2/25 Il concetto di ciclo di vita Obiettivi e limiti Concezione sviluppo utilizzo ritiro Identificazione delle attività Modelli generici, indipendenti dal prodotto Decomposizione delle fasi in attività (ricerca di coesione) Adozione di terminologia consistente Organizzazione delle attività Ordinamento delle attività Definizione di criteri di completamento e di avanzamento Propedeutico al processo definito Richiede controllo di qualità Definizione del processo produttivo (standard aziendale) Identificazione di attività, obiettivi, dipendenze Agevola la pianificazione e la gestione dei progetti Indipendente da metodi e strumenti di sviluppo Problematica essenziale (invece che accidentale) Dipartimento di Informatica, Università di Pisa 3/25 Dipartimento di Informatica, Università di Pisa 4/25 Evoluzione dei modelli (1) Il modello a cascata Code- n-fix : un modello in negativo Attività eseguite senza organizzazione Risulta in progetti caotici non gestiti né gestibili Modelli organizzati (alcuni ) Cascata Incrementale Evolutivo A spirale a rigide fasi sequenziali oppure sue varianti con prototipi e ritorni realizzazione in più passi modelli ciclici con ripetute iterazioni interne contesto allargato e modello astratto Definito nel 1970 da Winston W. Royce Managing the development of large software systems: concepts and techniques Successione di fasi rigidamente sequenziali Non consente ritorno a fasi precedenti Eventi eccezionali fanno ripartire dall inizio Documentazione Ogni fase produce documenti che la concretizzano Emissione e approvazione di documenti sono condizione necessaria per l avvio della fase successiva Modello document-driven Dipartimento di Informatica, Università di Pisa 5/25 Dipartimento di Informatica, Università di Pisa 6/25 2001-9 - Corso di Ingegneria del Software 1

Schema del modello a cascata Caratteristiche delle fasi Fattibilità Requisiti Specifica Architetturale Dettaglio Codifica Prove Integrazione Collaudo Manutenzione Correzione Adattamento Miglioramento Descritte in termini di Attività previste e prodotti attesi Contenuti e struttura dei documenti Responsabilità e ruoli coinvolti Scadenze di consegna dei documenti Presentano dipendenze causali e temporali Ciascuna fase comporta azioni specifiche Realizzate come attività erogate dai processi coinvolti Dipartimento di Informatica, Università di Pisa 7/25 Dipartimento di Informatica, Università di Pisa 8/25 Modello a cascata in O 12207 Varianti del modello a cascata 5.3.2 AR sistema Insieme dei processi primari Processo Sviluppo Attività del processo Sviluppo AR: analisi dei requisiti DA: progetto (design) architetturale DD: progetto (design) di dettaglio Manutenzione 5.5 Manutenzione Difetto principale: eccessiva rigidità Stretta sequenzialità tra fasi Non ammette modifiche nei requisiti in corso d opera Richiede molta manutenzione Esprime una visione burocratica e poco realistica Variante 1: cascata con prototipazione Prototipo usa e getta Solo per capire meglio i requisiti Variante 2: cascata con ritorni Entrambe le varianti raggruppano sottosequenze di fasi Dipartimento di Informatica, Università di Pisa 9/25 Dipartimento di Informatica, Università di Pisa 10/25 Modelli iterativi Vantaggi dei modelli iterativi Applicabili a qualunque modello base di ciclo di vita Consentono maggior capacità di adattamento Evoluzione di problemi, soluzioni possibili e tecnologie utilizzabili Diversificazione dei requisiti del committente I requisiti restano stabili solo in casi molto rari Soluzione generale Decomporre la realizzazione del sistema Identificare e gestire le componenti più critiche Quelle più complesse Oppure quelle i cui requisiti non sono sufficientemente chiari Le iterazioni devono essere pianificate Dipartimento di Informatica, Università di Pisa 11/25 Possono produrre valore a ogni iterazione Un insieme non vuoto di funzionalità è reso presto disponibile al cliente Le prime iterazioni viste come fasi di prototipazione Che aiutano a fissare meglio i requisiti per le iterazioni successive Aiutano a diminuire il rischio di fallimento Ma senza azzerarlo a causa dei costi aggiuntivi di ciascuna iterazione Se le componenti di sistema essenziali sono sviluppate nelle prime iterazioni Attraversano più fasi di verifica E quindi diventano più stabili con ciascuna iterazione Tratto da: Ian Sommerville, Software Engineering, 8 th ed. Dipartimento di Informatica, Università di Pisa 12/25 2001-9 - Corso di Ingegneria del Software 2

(2) Modello incrementale Modello incrementale in O 12207 e progettazione non sono ripetute I requisiti sono identificati e fissati completamente L architettura del sistema è identificata e fissata definitivamente I passi della realizzazione incrementale sono pianificati Per assicurare convergenza entro tempo e costi previsti La realizzazione è incrementale di dettaglio, codifica e prove Integrazione e collaudo Accettazione e rilascio di versioni parziali Dai requisiti essenziali (prima) a quelli desiderabili (poi) 5.3.1 Istanziazione del processo e 5.3.2 AR sistema Numero di iterazioni di dettaglio Accettazione Dipartimento di Informatica, Università di Pisa 13/25 Dipartimento di Informatica, Università di Pisa 14/25 (3) Modello evolutivo Modello evolutivo in O 12207 preliminare Per identificare i requisiti di massima Per definire l architettura di massima Per pianificare i passi di analisi e realizzazione evolutiva e realizzazione di evoluzione Per raffinamento ed estensione dell analisi Per progettazione, codifica, prove e integrazione Rilascio di prototipi, poi accettazione finale preliminare 5.3.1 Istanziazione del processo 5.3.2 AR sistema Il numero di iterazioni effettuate è conseguenza stessa del ciclo interno! e Il prototipo diventa visibile al committente Prototipo oppure Accettazione finale 6.6 Revisione oppure Dipartimento di Informatica, Università di Pisa 15/25 Dipartimento di Informatica, Università di Pisa 16/25 (4) Il modello a spirale Fasi del modello a spirale Proposto da Barry W. Boehm nel 1988 Prevede quattro attività principali Definizione degli obiettivi dei rischi Sviluppo e validazione Pianificazione È un modello astratto che va specializzato Come rappresentarlo in termini dei diagrammi di processo? Definizione degli obiettivi Requisiti, rischi, piano di gestione dei rischi Studio delle conseguenze Valutazione delle alternative con l ausilio di prototipi e simulazioni Sviluppo e validazione del prodotto Pianificazione Decisione circa il proseguimento Pianificazione del ciclo di vita successivo Dipartimento di Informatica, Università di Pisa 17/25 Dipartimento di Informatica, Università di Pisa 18/25 2001-9 - Corso di Ingegneria del Software 3

Schema del modello a spirale Aspetti del modello a spirale Definizione degli obiettivi 1 (esplorazione delle alternative) Revisioni 2 3 dei rischi Valutazione via Prototipi e Simulazioni Pone grande attenzione sugli aspetti gestionali Pianificazione delle fasi dei rischi (modello risk-driven ) Richiede forte interazione tra committente e fornitore Committente: Fornitore: Entrambi: definizione degli obiettivi definizione dei vincoli sulla pianificazione sviluppo e validazione analisi dei rischi Pianificazione del nuovo ciclo 4 Sviluppo e Validazione Applicabile ai modelli tradizionali Dipartimento di Informatica, Università di Pisa 19/25 Dipartimento di Informatica, Università di Pisa 20/25 Altri modelli Modello CBD Agile Software Development http://agilemanifesto.org/ Molto attraente ma con soglia di ingresso alta Richiede un ambiente favorevole Extreme Programming (XP) http://www.extremeprogramming.org Deriva dal movimento agile ma con enfasi sospetta sulla programmazione Coinvolge molto il committente ma in modo informale Non solo nell analisi, ma anche in progettazione e sviluppo (!) Fortemente incrementale (a passo piccolo) dei Requisiti con Riuso delle Componenti Sviluppo e Integrazione Adattamento dei Requisiti Component-based development (CBD) Massima attenzione al riuso sistematico di componenti preesistenti proprie oppure off-the-shelf Validazione di Sistema Dipartimento di Informatica, Università di Pisa 21/25 Dipartimento di Informatica, Università di Pisa 22/25 Ripartizione dei costi sui modelli Riepilogo Modello sequenziale Applicazioni serie normali ~ 60% dei costi allo sviluppo ~ 40% alla qualifica I costi complessivi variano al variare del dominio e del tipo di sistema Modello iterativo Modello component-based Il modello a cascata I modelli iterativi La ripartizione dei costi sulle fasi varia al variare del modello e del dominio Sistemi critici: > 60% qualifica Modello evolutivo Il modello a spirale Cicli di vita espressi mediante O/IEC 12207 Tratto da: Ian Sommerville, Software Engineering, 8 th ed. Dipartimento di Informatica, Università di Pisa 23/25 Dipartimento di Informatica, Università di Pisa 24/25 2001-9 - Corso di Ingegneria del Software 4

Riferimenti B.W. Bohem, A spiral model of software development and enhancement, IEEE Software, maggio 1998 Center for Software Engineering, http://sunset.usc.edu/research/spiral_model W.W. Royce, Managing the development of large software systems: concepts and techniques, Atti della conferenza Wescon 70, agosto 1970 O/IEC TR 15271:1998, Information Technology Guide for O/IEC 12207 Dipartimento di Informatica, Università di Pisa 25/25 2001-9 - Corso di Ingegneria del Software 5