Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A2_2 V3.4 Processi Modelli di processi di sviluppo software (cicli di vita) Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale
INDICE Code and fix Sequenziale Sequenziale: Processi e documenti Sequenziale: Sforzi e Costi Incrementale Con prototipi per la specifica Iterativo Per integrazione (COTS e legacy systems) Sviluppo di un sistema A2 - Processi Paolo Salvaneschi 2
INDICE Modello a spirale Unified Process Modelli agili Sviluppo, controllo e gestione Integrazione con le attività di controllo Integrazione con le attività di gestione A2 - Processi Paolo Salvaneschi 3
Code and fix Un non-modello Attività non identificate né organizzate Progetti non gestiti Utilizzabile in piccolo Codifica Prova A2 - Processi Paolo Salvaneschi 4
Sequenziale Sequenziale o a cascata Definito nel 1970 da Royce Lo sviluppo di software procede attraverso una sequenza lineare di attività. Ogni attività produce un risultato intermedio che viene utilizzato dall attività a valle Uno svolgimento normale dei lavori è tale per cui non si comincia una nuova fase fintantoché non si è terminata la precedente A2 - Processi Paolo Salvaneschi 5
Sequenziale Specificazione Progettazione Codifica Test A2 - Processi Paolo Salvaneschi 6
Sequenziale Specificazione CHE COSA deve fare il prodotto software (risultato dell analisi dei requisiti) Funzioni Dati Caratteristiche non funzionali Obiettivi Contesto Utenti. A2 - Processi Paolo Salvaneschi 7
Sequenziale Progettazione COME deve essere fatto il prodotto software che realizza le specifiche Architettura Componenti Connessioni tra componenti Progetto dettagliato A2 - Processi Paolo Salvaneschi 8
Sequenziale Codifica Realizzazione del codice Sorgenti Prodotto installabile Procedura di installazione A2 - Processi Paolo Salvaneschi 9
Sequenziale Test Acquisizione di una sufficiente fiducia che il codice realizza le prestazioni specificate e progettate Acquisizione di una sufficiente fiducia che il codice soddisfa le esigenze di chi lo ha commissionato A2 - Processi Paolo Salvaneschi 10
Sequenziale Le fasi sono descritte in termini di: Attività e prodotti intermedi Contenuti e struttura dei documenti Responsabilità e ruoli coinvolti Scadenze di consegna dei documenti A2 - Processi Paolo Salvaneschi 11
Sequenziale Boehm 1976 A2 - Processi Paolo Salvaneschi 12
Sequenziale Ogni fase rilascia un documento che serve da ingresso per la fase successiva Specificazione Specifica Progettazione Progetto Codifica Codice Test A2 - Processi Paolo Salvaneschi 13
Sequenziale: Processi e documenti Contesto e obiettivi I processi si manifestano in documenti Specifica Progetto architett. Progetto dettagliato Codice Doc. Utente Piano di Qualita Piano/Rapp. di Test Rapporto di Qualita Piano di Sviluppo Piano di Gestione Config. A2 - Processi Paolo Salvaneschi 14
Sequenziale: Processi e documenti European Space Agency ESA software engineering standards ESA PSS-05-0 A2 - Processi Paolo Salvaneschi 15
Sequenziale: Sforzi e Costi Tipica distribuzione dei costi nelle fasi Verifica e validazione 45% Documentazione 20% Sviluppo 20% Codifica 10% Modifiche e correzioni 15% Sviluppo Specifica e progettazione 10% Manutenzione 80% Vita dell applicazione A2 - Processi Paolo Salvaneschi 16
Sequenziale: Sforzi e Costi MS Windows NT prima versione: 6 milioni di linee di codice, 150 Milioni US $, 4 anni, 250 persone (1000 anni/uomo, 20 linee/giorno/uomo, 25 $/linea) A2 - Processi Paolo Salvaneschi 17
Sforzi e Costi Andamento dei costi di correzione di un errore in funzione della fase del processo in cui è individuato (importanza delle fasi di specifica e progettazione) Boehm 1980 A2 - Processi Paolo Salvaneschi 18
Sequenziale Modello molto criticato Rigidità Necessità di adattarsi a specifiche incerte Necessità di gestire l evoluzione Modello molto usato A2 - Processi Paolo Salvaneschi 19
Incrementale I requisiti e l architettura sono definiti Il sistema è decomposto in componenti E pianificata una progettazione di dettaglio, realizzazione e test incrementale dei componenti Criteri: i componenti più critici, i componenti più urgenti, Integrazioni progressive e rilasci incrementali del sistema A2 - Processi Paolo Salvaneschi 20
Incrementale Specificazione Progettazione architetturale Progett. dettaglio Progett. dettaglio Progett. dettaglio Codifica Test Integrazione e rilascio di Versione 1 Codifica Test Integrazione e rilascio di Versione 2 Codifica Test Integrazione e rilascio di Versione 3 A2 - Processi Paolo Salvaneschi 21
Con prototipi per la specifica Sviluppo di un prototipo come strumento per comprendere i requisiti Specificazione Sviluppo prototipo Progettazione Codifica Test A2 - Processi Paolo Salvaneschi 22
Iterativo Sviluppo di un prototipo ed evoluzione Specificazione Progettazione Sviluppo prototipo Test A2 - Processi Paolo Salvaneschi 23
Per integrazione Tiene conto dei sistemi esistenti (legacy) Valuta l integrazione di prodotti acquisiti dal mercato (COTS) A2 - Processi Paolo Salvaneschi 24
Per integrazione Specificazione Analisi dei componenti esistenti. Analisi alternative (make or buy) Progettazione architetturale Specificazione Software ad hoc Progettazione Codifica Test Integrazione con i componenti (legacy) esistenti Acquisizione e adattamento di componenti di mercato Integrazione e test A2 - Processi Paolo Salvaneschi 25
Sviluppo di un sistema Software Engineering e System Engineering Il software è solo un tipo di componente di un sistema Il processo di sviluppo di un sistema è più complesso ed articolato del processo di sviluppo di un prodotto software A2 - Processi Paolo Salvaneschi 26
Sviluppo di un sistema Specificazione del sistema Progettazione del sistema Software Specificazione Progettazione Codifica Test Altri componenti: Hardware di elaborazione Reti Procedure organizzative Dati. Integrazione e test del sistema A2 - Processi Paolo Salvaneschi 27
Modello a spirale Definito nel 1988 da Boehm Prevede quattro attività principali da iterare ciclicamente Definizione degli obiettivi Analisi dei rischi Sviluppo e validazione Pianificazione Non e un modello, ma uno strumento per descrivere i modelli A2 - Processi Paolo Salvaneschi 28
Modello a spirale Definizione degli obiettivi Analisi dei rischi Pianificazione Barry Boehm 1980 Sviluppo e validazione A2 - Processi Paolo Salvaneschi 29
Modello a spirale Fasi Definizione degli obiettivi Requisiti, identificazione di rischi, alternative (es make or buy), vincoli, piano di gestione Analisi dei rischi Studio di conseguenze e alternative, prototipi e simulazioni Sviluppo e validazione Realizzazione del prodotto e verifica Pianificazione Revisione dei risultati, Decisione circa il proseguimento, pianificazione del ciclo A2 - Processi Paolo Salvaneschi 30
Modello a spirale Introduce la gestione del rischio Evidenzia gli aspetti gestionali Pianificazione Definizione degli obiettivi Incorpora cicli sequenziali e per prototipi A2 - Processi Paolo Salvaneschi 31
Unified Process (UP o RUP) Processo iterativo e incrementale guidato dai casi d uso e centrato attorno all architettura Utilizza UML Unified Process Il processo è costituito da più cicli di sviluppo. Ogni ciclo produce una versione rilasciabile del prodotto Ogni ciclo è costituito da Fasi (parzialmente sovrapposte) Fase di avviamento Fase di elaborazione Fase di realizzazione Fase di transizione Verifiche possibili al termine di ogni fase e ogni ciclo A2 - Processi Paolo Salvaneschi 32
Fase di avviamento Valutazione iniziale del progetto. Sforzo costo, tempo (studio di fattibilità) Fase di elaborazione Unified Process Sviluppo iterativo della struttura portante del prodotto attraverso i casi d uso più importanti (architettura, baseline) Fase di realizzazione Accrescimento iterativo (guidato da casi d uso) e perfettivo delle funzionalità necessarie per il rilascio Fase di transizione Messa in servizio A2 - Processi Paolo Salvaneschi 33
Modelli agili Il problema Tempi stretti e requisiti incerti Approccio (criteri gestionali, valori, euristiche, Importanza delle persone Adattamento vs pianificazione Poca documentazione.. A2 - Processi Paolo Salvaneschi 34
Modelli agili Agile Modeling http://www.agilemodeling.com http://www.agilemanifesto.com extreme Programming (Kent Beck) http://www.xprogramming.com SCRUM http://www.scrumalliance.org/pages/what_is_scrum A2 - Processi Paolo Salvaneschi 35
Modelli agili A2 - Processi Paolo Salvaneschi 36
Modelli agili A2 - Processi Paolo Salvaneschi 37
Modelli agili In che modo gli elementi agili (principi, regole organizzative, tecniche, ) si sostituiscono/integrano con processi più strutturati (specifica-architettura-..)? Gli elementi agili includono: Aspetti dannosi per il processo software Aspetti indifferenti e poco usati Aspetti buoni e utilizzabili con profitto integrati in processi strutturati A2 - Processi Paolo Salvaneschi 38
Modelli agili The ugly Rejection of upfront tasks (requirements/specification, architecture). The indifferent Pair programming. The good Short iterations. Bertrand Meyer: Agile! The Good, the Hype and the Ugly Springer-Verlag, 2014 A2 - Processi Paolo Salvaneschi 39
Sviluppo, controllo e gestione La realizzazione di un prodotto software richiede la conduzione di un insieme di processi Specificare Progettare Codificare Documentare Gestire ordinatamente gli oggetti che si realizzano Pianificare.. Definire ed eseguire test Eseguire verifiche sui documenti A2 - Processi Paolo Salvaneschi 40
Sviluppo, controllo e gestione SVILUPPO CONTROLLO GESTIONE Uno schema semplificato: i processi di sviluppo, controllo e gestione A2 - Processi Paolo Salvaneschi 41
Integrazione con le attività di controllo Le attività di controllo raccolgono misure dal processo di sviluppo e retroagiscono sullo stesso Le attività di controllo possono essere eseguite durante tutte le fasi del processo di sviluppo Es: verifica della corrispondenza tra progetto e specifica Tutte le funzioni sono state allocate? L architettura progettata è adeguata rispetto alle caratteristiche specificate (es. tempi di risposta) A2 - Processi Paolo Salvaneschi 42
Integrazione con le attività di controllo Boehm 1976 A2 - Processi Paolo Salvaneschi 43
Integrazione con le attività di controllo Il modello a V Jensen, Tonies 1979 A2 - Processi Paolo Salvaneschi 44
Integrazione con le attività di gestione Le attività di gestione si applicano trasversalmente sia allo sviluppo che al controllo Es. Sviluppo e controllo rilasciano documenti (documento di progettazione, moduli di codice sorgente, casi di test, ). Tutti devono essere ordinatamente conservati (data base di progetto) Devono essere gestite le versioni Deve essere gestita la configurazione degli oggetti che produce un sistema consegnabile A2 - Processi Paolo Salvaneschi 45