Ingegneria del Software Processi di Sviluppo - ICAR
Transcript
Ingegneria del Software Processi di Sviluppo - ICAR
Ingegneria del Software Processi di Sviluppo Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Ingegneria del Software: Tecnologia Stratificata tools metodi processi Focus sulla qualità qualità Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 –… Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello Waterfall: Una Variante • Introduzione di azioni di Verifica e Validazione degli artifatti • Possibilità di ritorno alla fase precedente Communication V&V Planning Modeling V&V V&V Construction V&V Deployment V&V Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche I Modelli Evolutivi • Applicazione iterata delle attività strutturali per il “refinement” degli artifatti Modeling Modeling Planning Planning Construction Construction Communication Communication Deployment Deployment Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 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 is des ign C o n s t r u c t i o n c ode t es 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 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 # 2 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 ly s i s d e s ig n C o n s t r u c t c ode t es 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 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 i o n P l a n n i n g M o d e l i n g a n a ly s i s d e s ig n C o n s t c ode t es t r u c 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 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello Incrementale (2) • Applicabilità – 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello a Spirale • Si individua un nucleo di requisiti e successivamente si estende il sistema a “macchia d’olio” Modeling Modeling Planning Planning Construction Construction start Communication Communication Deployment Deployment Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello Concorrente • Le attività strutturali sono sviluppate secondo un modello a stati concorrenti none Modeling activit y represents the state of a software engineering activity or task Under development Awaiting • Lo “stato” di una attività strutturale dipende dallo stato di altre attività changes Under review Under revision Baselined Done Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello concorrente (2) • Applicabilità – 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 Const ruct ion component reuse automatic code generation testing Team # 2 Communication Modeling business modeling dat a modeling process modeling Planning Construction Team # 1 Deployment component reuse aut omat ic code generat ion t est ing Modeling business modeling dat a modeling process modeling Construction component reuse aut omat ic code generat ion t est ing 60 - 90 days Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Il Modello RAD (2) • Applicabilità – 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche int egrat ion delivery feedback Altri Modelli di Processo • Modelli per sistemi a componenti • Modelli basati su metodi formali Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Lo Unified Process (UP) Elaboration • Tentativo di standardizzazione dei processi di sviluppo Inception • Processo evolutivo basato su iterazioni focalizzate su Release attività differenti construct ion transit ion soft ware increment production Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche Fasi dell’UP UP Phases Inception Elaboration Construction Transition Production Workflows Requirements Analysis Design Implementation Test Support Iterations #1 #2 #n-1 #n Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche 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 nc ept i o n Elaboration phase Use-case model Supplement ary requirement s including non-funct ional Analysis model Soft ware archit ect ure Descript ion. Execut able archit ect 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 egrat ed soft ware 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 Corso di Ingegneria del Software Ing. Antonio Coronato Università “Federico II” di Napoli Consiglio Nazionale delle Ricerche