Modelli di Ciclo di Vita del Software (CVS) Una morfologia dell organizzazione del lavoro nelle fabbriche del software: fasi della produzione, tipi di attività, collegamento ed interfacciamento, pianificazione, controllo e misura, ma anche linee guida per organizzare, pianificare, dimensionare personale, assegnare budget, schedulare e gestire, definire e prescrivere prodotti e documenti (deliverables) da rilasciare al committente determinare metodi, tecniche e tecnologie della IS adatte a supportare le attività previste per imparare, analizzare, migliorare 1 Diverse tipologie di Ciclo di Vita del Sw molti aspetti influenzano la definizione del modello di CVS: specificità dell organizzazione produttrice know-how area applicativa e particolare progetto strumenti di supporto diversi ruoli produttore/ committente produttore e committente coincidono produttore e committente sono entità organizzativamente distinte all interno della stessa azienda o istituzione il produttore sviluppa un applicazione specifica per uno specifico committente il produttore sviluppa un applicazione ( il pacchetto ) da immettere sul mercato e non per uno specifico cliente il produttore è anche erogatore dei servizi di gestione operativa 2 1
Modelli del CVS a cascata (Waterfall models) Progressione sequenziale (in cascata) di fasi, senza ricicli, al fine di meglio controllare tempi e costi ogni fase raccoglie un insieme di attività omogenee per metodi, tecniche, tecnologie, skill del personale, Ogni fase è caratterizzata da attività (tasks), prodotti di tali attività (deliverables), controlli relativi (quality control measures) La fine di ogni attività è un punto rilevante (milestone) del processo I deliverables prodotti in una fase sono input alla fase successiva I prodotti di una fase vengono congelati, ovvero non sono più modificabili se non innescando un processo formale e sistematico di modifica 3 Studio di fattibilita Modello a cascata Analisi e specifica dei requisiti Progettazione Codifica Testing Messa in esercizio Manutenzione 4 2
Le fasi del modello a cascata... Studio di fattibilità stabilire se lo sviluppo debba essere avviato quali le alternative possibili e le scelte più ragionevoli stima delle risorse finanziarie e umane necessarie, per ciascuna possibilie soluzione redazione di un un Documento di Fattibilità Analisi e specifica dei requisiti definizione, tramite interviste con il commitente, di funzioni, vincoli, prestazioni, interfacce e di qualsiasi altra caratteristica che il sistema dovrà soddisfare redazione di un Documento di Specifica dei Requisiti Software, che sia completo, preciso, consistente, non ambiguo, comprensibile in maniera adeguata sia al committente che allo sviluppatore predisposizione di un piano di test e della versione 0 del manuale utente N.B. Definizione di CHE COSA deve essere fatto e NON COME 5 Le fasi del modello a cascata... Progettazione definizione dell architettura del sistema: componenti del sistema e relazioni tra questi (progetto di alto livello - HLD) definizione della struttura interna di ciascun componente (progetto di dettaglio - LLD) definizione della struttura dei dati redazione di un documento di Specifica di Progetto Codifica Implementazione, usando il linguaggio di programmazione prescelto, dei vari componenti definiti nel Progetto Testing Definizione ed esecuzione di casi di prova sia per i singoli componenti che per l intero sistema, da essi costituito, con l intento di rilevare malfunzionamenti N.B. Il Testing ha lo scopo di rilevare malfunzionamenti 6 3
Le fasi del modello a cascata Messa in esercizio Insieme di tutte le operazioni necessarie per il rilascio, l installazione e rendere operativo il sistema realizzato presso il committente Manutenzione Processo di modifica di un sistema o di un componente software dopo il suo rilascio al fine di eliminare anomalie, migliorare le prestazioni o altri attributi di qualità, o adattarlo a mutamenti dell ambiente operativo e/o del dominio applicativo 7 Vantaggi e limitazioni del modello a cascata Vantaggi la fasi da seguire sono ben definite gli output di ciascuna fase precisamente individuati Svantaggi il modello assume che i requisiti possano essere congelati alla fine della fase di specifica, ma ciò è impensabile per un sistema i cui requisiti non siano ben chiari neanche al committente in alcuni casi è auspicabile sviluppare prima una parte del sistema e poi completarlo (utente finale= mercato) in alcuni casi lo sviluppo di tutta la documentazione richiesta è non necessaria (uso di ambienti di sviluppo visuali) 8 4
Modello a cascata: una variante Fattibilità validazione Analisi e specifica dei requisiti validazione Progettazione verifica Codifica Verifica: Stabilire la verità della corrispondenza tra un prodotto software e la sua specifica Validazione: Stabilire l appropriatezza di un prodotto software rispetto alla sua missione operativa verifica Verifica: Stiamo costruendo il prodotto giusto? Validazione: Stiamo costruendo giustamente il prodotto? Testing V&V Messa in esercizio V&V Manutenzione Ri-validazione 9 Modelli basati su prototipo Un prototipo per aiutare a comprendere i requisiti o per valutare la fattibilità di un approccio Realizzazione di una prima implementazione (prototipo), più o meno incompleta da considerare come una prova, con lo scopo di: accertare la fattibilità del prodotto validare i requisiti il prototipo è un mezzo attraverso il quale si interagisce con il committente per accertarsi di aver ben compreso le sue richieste, per specificare meglio tali richieste, per valutare la fattibilità del prodotto dopo la fase di utilizzo del prototipo si passa alla produzione della versione definitiva del Sistema Sw mediante un modello che, in generale, è di tipo waterfall 10 5
Modello con Prototipo REQUISITI PROGETTAZIONE VELOCE PROTOTIPO VALUTAZIONE E RAFFINAMENTO REQUISITI SVILUPPO PRODOTTO CVS CLASSICO 11 2 tipi di prototipazione: Modelli con prototipo mock-ups: produzione completa dell interfaccia utente. Consente di definire con completezza e senza ambiguità i requisiti (si può, già in questa fase, definire il manuale di utente) breadboards: implementazione di sottoinsiemi di funzionalità critiche del SS, non nel senso della fattibilità ma in quello dei vincoli pesanti che sono posti nel funzionamento del SS (carichi elevati, tempo di risposta,...), senza le interfacce utente. Produce feedbacks su come implementare la funzionalità (in pratica si cerca di conoscere prima di garantire). il prototipo è uno strumento di identificazione dei requisiti di utente; è incompleto, approssimativo, realizzato utilizzando parti già possedute o routines stub. Il prototipo deve essere gettato. 12 6
Modelli Evolutivi Il prodotto SW evolve continuamente (aggiunta di funzionalità, cambio di piattaforma, cambiamenti nella organizzazione dell azienda che lo utilizza e quindi adeguamento del SW,...). Necessità di modelli che tengano conto di queste esigenze Ethernal Development Cycle (Denning, 1985) Requireme nts Design Coding Testing Maintenance Development Evolution Operation & Maintenance Nella fase di evoluzione: si analizza l esperienza di uso del Sw sul campo e si utilizza la maggiore conoscenza per definire nuovi obiettivi, si determinano esigenze e nuove funzionalità emerse o non coperti in precedenza, si riprende il ciclo dalla definizione dei requisiti alla messa in esercizio e manutenzione del nuovo SS nato dall arricchimento ed evoluzione del precedente. 13 Modelli Incrementali Risolvono la difficoltà a produrre l intero Sistema in una sola volta nel caso di grandi progetti SW (sia per problemi del produttore che del committente - quest ultimo potrebbe non avere l immediata disponbilità finanziaria necessaria per l intero progetto) Un approccio sistematico alla costruzione per parti: Modelli incrementali modello ad implementazione incrementale modello a sviluppo e consegna incrementale 14 7
Modelli Incrementali Modello ad implementazione incrementale Definisci Progetto Stralcio e LLD Code & Test Integration & Test Installazione & Manutenzione Le fasi alte del Waterfall Modell sono completamente realizzate. Il Sw viene totalmente definito nei requisiti, specificato e progettato (solo HLD). Il sistema così progettato viene decomposto in sottosistemi che vengono implementati, testati, rilasciati, installati e messi in manutenzione secondo un piano di priorità in tempi diversi. Diventa fondamentale la fase, o in insieme di attività, di integrazione di nuovi sottosistemi prodotti con quelli già in esercizio 15 Modelli Incrementali Modello a sviluppo e consegna incrementale Set Global Objectives; Define Basic Open Structure Approach; Define Preliminary Evolutionary Plan Engineer Step; Implement Planned Steps; Deliver to User; Evaluate Performance; L approccio incrementale viene esteso a tutte le fasi del ciclo di sviluppo waterfall-like. È uno partizionamento del processo di produzione waterfall: ogni partizione definisce un insieme di ben definiti comportamenti del sistema e procede dalla definizione dei requisiti all implementazione, etc. del software che riproduce tali comportamenti; i prodotti di ogni nuova slice vengono aggiunti ed integrati con l esistente e costituiscono un incremento del sistema. 16 8