Ingegneria del Software Processi di Sviluppo Ingegneria del Software: Tecnologia Stratificata tools metodi processi Focus sulla qualità
Ingegneria del Software: Tecnologia Stratificata (2) Qualità Elemento costitutivo dell ingegneria del software Processo Fornisce i meccanismi di controllo gestionale dei progetti software e stabilisce il contesto all interno del quale applicare i metodi Metodo Tecnica applicabile per il raggiungimento di un obiettivo Tools Strumenti automatici di supporto al processo ed ai metodi Processo di Sviluppo E una struttura di riferimento entro la quale si svolgono le attività necessarie a realizzare software di alta qualità e nei tempi stabiliti Stabilisce quando e come qualcuno fa cosa, per raggiungere un determinato obiettivo
Struttura del Processo di Sviluppo Struttura del Processo Attività Ombrello Attività Strutturale 1 Azione di ingegneria del software 1.1 - Task Azione di ingegneria del software 1.k - Task Attività Strutturale N Azione di ingegneria del software N.1 - Task Azione di ingegneria del software N.M - Task Attività Strutturali Sono ordinate cronologicamente I risultati di una attività costituiscono un input per attività strutturali successive Sono mandatory Non è possibile prescindere da nessuna di esse Communication Planning Modeling Analysis of requirements Design Construction Code generation Testing Deployment
Esempi di Attività Strutturali Communication Comunicazioni col cliente per la raccolta dei requisiti Planning Pianificazione delle attività di ingegneria del software per lo sviluppo del sistema Modeling Creazione dei modelli di specifica Construction Realizzazione delle componenti del sistema software Deployment Installazione e messa in esercizio del sistema Attività Ombrello Attività asincrone rispetto al processo di sviluppo Il processo non vincola l espletamento delle attività ombrello in momenti predefiniti del ciclo di sviluppo Le attività ombrello possono essere espletate più volte durante il ciclo di sviluppo Non mandatory Le attività ombrello non sono tipicamente obligatorie Gestione del progetto software Gestione dei rischi Gestione della qualità Misura Revisioni tecniche formali
Esempi di Attività Ombrello Gestione del progetto software Valutazione dei progressi ottenuti nello sviluppo rispetto ai piani di progettazione Gestione dei rischi Valutazione dei rischi che possono influenzare il risultato o la qualità del progetto Gestione della qualità Attività necessarie a garantire livelli accettabili di qualità Misura Meccanismi di valutazione del livello di qualità del progetto, del grado di efficienza del prodotto, del grado di soddisfazione del cliente Revisioni tecniche formali Valutazione degli artifatti al fine di individuare gli errori, evitarne la propagazione e correggerli Adattabilità del Processo Le attività strutturali devono essere sempre applicate ad ogni progetto ma I tasks variano in funzione: Del tipo di progetto Degli skills del team di sviluppo
I Modelli Prescrittivi Formalizza in maniera rigorosa alcuni elementi del processo Attività strutturali Azioni di ingegneria Prescrive anche il flusso e le correlazioni tra gli elementi del processo Il Modello a cascata (Waterfall) E un modello rigidamente sequenziale Le attività strutturali sono sequenziali Gli artifatti prodotti da un attività strutturale sono di ingresso all attività successiva Communication Project initiation Requirement gathering Planning Estimation Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback
Il Modello Waterfall (2) Applicabilità I requisiti del sistema devono essere ben chiari e stabili nel tempo Il sistema deve essere semplice e non presentare funzionalità critiche Efficiente Se le attività strutturali sono eseguite da team differenti, ogni stadio costituisce un blocco per le attività successive Interazione col cliente Le interazioni solo limitate alle prime fasi del ciclo Il cliente dovrà attendere la fine del ciclo per ottenere qualcosa di funzionante Il Modello Waterfall: Una Variante Introduzione di azioni di Verifica e Validazione degli artifatti Possibilità di ritorno alla fase precedente Communication V&V Planning V&V Modeling V&V Construction V&V Deployment V&V
C o m m u n i c a t i o n P l a n n i n g M o d e l i n g a n a l y s i s d e s i g n C o m m u n i c a t i o n C o n s t r u c t i o n c o d e t e s t P l a n n i n g D e p l o y m e n t d e l i v e r y f e e d b a c k M o d e l i n g a n a l y s i s d e s i g n C o n s t r u c t i o n c o d e t e s t C o m m u n i c a t i o n D e p l o y m e n t d e l i v e r y f e e d b a c k P l a n n i n g M o d e l i n g a n a l y s i s d e s i g n C o n s t r u c t i o n c o d e t e s t D e p l o y m e n t d e l i v e r y f e e d b a c k I Modelli Evolutivi Applicazione iterata delle attività strutturali per il refinement degli artifatti Planning Modeling Construction Communication Deployment Il Modello Incrementale Il sistema viene suddiviso in slices sviluppati indipendentemente Si applica un ciclo a cascata ad ogni incremento in c r e m e n t # n in c r e m e n t # 2 d e liv e r y o f n t h in c r e m e n t in c r e m e n t # 1 d e liv e r y o f 2 n d in c r e m e n t d e liv e r y o f 1 s t in c r e m e n t p r o j e c t c a le n d a r t im e
Applicabilità Il Modello Incrementale (2) Il sistema può essere complesso ma i requisiti del sistema devono essere ben chiari e stabili nel tempo Le funzionalità critiche possono essere testate con il primo incremento Efficienza Realizzazione di una struttura a pipeline nello sviluppo dei diversi incrementi Interazione col cliente Il cliente riceve un incremento alla fine di ogni ciclo Il Modello Prototypale Realizzazione di un prototipo preliminare al sistema Due tipologie di prototipo: Mock-ups: Prototipo completo delle interfacce del sistema Permette di definire completamente i requisiti del sistema Breadboards: Prototipo delle funzionalità critiche del sistema Permette di valutare le scelte relative a vincoli stringenti quali: tempi di risposta, carico, sicurezza, affidabilità, Il prototipo non deve diventare sistema
Il Modello a Spirale Si individua un nucleo di requisiti e successivamente si estende il sistema a macchia d olio Planning Modeling Construction start Communication Deployment Il Modello a spirale (2) Applicabilità Il sistema può essere complesso ed i requisiti possono essere anche non perfettamente stabili o chiari Efficienza Le attività sono sequenziali come nel caso del modello a cascata Interazione col cliente Il cliente interagisce ad ogni ciclo ma non riceve incrementi
Il Modello Concorrente Le attività strutturali sono sviluppate secondo un modello a stati concorrenti Modeling activity Under development none represents the state of a software engineering activity or task Lo stato di una attività strutturale dipende dallo stato di altre attività Awaiting changes Under revision Under review Baselined Done Applicabilità Il Modello concorrente (2) Il sistema può essere complesso ed i requisiti possono essere anche poco stabili o poco chiari Efficienza Elevato grado di parallelismo tra le attività Interazione col cliente Il cliente interagisce frequentemente
Il Modello RAD Modello a sviluppo rapido Team # n Modeling business modeling data modeling process modeling Le attività di modellazione, costruzione e messa in esercizio sono altamente parallelizzate Communication Planning Team # 2 Team # 1 Modeling business modeling data modeling process modeling Modeling business modeling data modeling process modeling Construction component reuse automatic code Construction component reuse automatic code generation testing Const ruct ion component reuse automatic code generation testing generation testing Deployment integration delivery feedback 60-90 days Applicabilità Il Modello RAD (2) Si applica a sistemi con vincoli sui tempi di realizzazione particolarmente stringenti Efficienza Le attività di sviluppo sono fortemente parallelizzate Interazione col cliente Si concentra nella fase iniziale
Altri Modelli di Processo Modelli per sistemi a componenti Modelli basati su metodi formali Tentativo di standardizzazione dei processi di sviluppo Lo Unified Process (UP) Inception Elaboration Processo evolutivo basato su iterazioni focalizzate su attività differenti Release software increment transition construction production
Fasi dell UP UP Phases Inception Elaboration Construction Transition Production Workflows Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n UP - Artifatti Inception phase Vision document Init ial use-case model Init ial project glossary Init ial business case Init ial risk assessment. Project plan, phases and it erat ions. Business model, if necessary. One or more prot ot ypes I ncept i o n Elaboration phase Use-case model Supplementary requirements including non-funct ional Analysis model Soft ware archit ecture Descript ion. Execut able architect ural prot ot ype. Preliminary design model Revised risk list Project plan including it erat ion plan adapt ed workflows milest ones t echnical work product s Preliminary user manual Construction phase Design model Soft ware component s Int egrated software increment Test plan and procedure Test cases Support document at ion user manuals inst allat ion manuals descript ion of current increment Transition phase Delivered soft ware increment Bet a t est report s General user feedback