La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software il processo Processo software."— Transcript della presentazione:

1 Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software il processo Processo software

2 Ingegneria del software il processo Sommario 1.Prodotto e processo software 2.Ciclo di vita del software 3.Modelli del processo di sviluppo 1.Modelli a processo prescrittivo 2.Modelli

3 Ingegneria del software Processo e prodotto Prodotto software –Insieme di tutti gli artifatti che permettono l'utilizzo di un programma da parte di un utente: codice, documentazione, prodotti intermedi quali casi di test, manuali tecnici, ecc. Processo software –Insieme organizzato di pratiche (attività) che sovrintendono alla costruzione del prodotto da parte del team di sviluppo utilizzando metodi, tecniche, metodologie e strumenti. –È suddiviso in varie fasi secondo uno schema di riferimento (il ciclo di vita del software). –Descritto da un modello: informale, semi-formale o formale (maturità del processo) il processo

4 Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software il processo Modelli di processo Ciclo di vita del software

5 Ingegneria del software il processo

6 Ingegneria del software il processo Ciclo di vita Descrive lo schema secondo cui sono organizzate le varie attività base (fasi) dello sviluppo software: –Specifiche del software, –Progettazione ed Implementazione, –Convalida –Evoluzione. Durante la vita del sistema è prevista una singola esecuzione di tutte le fasi di sviluppo I cambiamenti ai requisiti causano lavvio di un nuovo processo di sviluppo È indipendente da metodi e strumenti di sviluppo software Procedimento rigidoche non prevede la possibilità di eseguire uno o più passi a ritroso

7 Ingegneria del software il processo Obiettivi e limiti 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 software

8 Ingegneria del software il processo Evoluzione dei modelli Code-n-fix: un non-modello –Consiste di attività casuali non organizzate –Dà luogo a progetti caotici non gestiti né gestibili Modelli a processo prescrittivo –Cascata a rigide fasi sequenziali oppure sue varianti con prototipi e ritorni –Incrementali realizzazione in più passi Modello incrementale (Rapid Application Development) RAD –Evolutivi modelli ciclici con ripetute iterazioni interne Prototipi Spirale contesto allargato a modello astratto –Modelli specializzati Sviluppo a componenti Software orientato dallaspetto –Processo unificato Sviluppo agile Extreme programmimg (XP) Sviluppo di software adattativo (ASD) Metodo Dynamic Systems Development Method (DSDM) Metodo Scrum Crystal Sviluppo feature driven (FDD)

9 Ingegneria del software il processo Il modello a cascata Definito nel 1970 da Winston Royce Managing the development of large software systems: concept and techniques Una successione di fasi sequenziali –Non consente ritorno a fasi precedenti –Eventi eccezionali fanno ripartire dallinizio Documentazione –Ogni fase produce documenti che concretizzano –Emissione ed approvazione di documenti sono condizione necessaria per lavvio della fase successiva –Modello document-driven

10 Ingegneria del software il processo Schema del modello a cascata

11 Ingegneria del software il processo Caratteristiche delle fasi Le fasi sono 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 determina le proprie attività

12 Ingegneria del software Problemi Problemi legati alla eccessiva rigidità –Il cliente deve essere in grado di enunciare esplicitamente tutti i requisiti –Non ammette modifiche nei requisiti in corso dopera –Richiede molta manutenzione –Solo alla fine del processo il cliente riceve una versione funzionante del software –La natura lineare del modello porta a stati bloccanti, nei quali alcuni membri del team devono attendere che i loro colleghi completino una certa attività il processo

13 Ingegneria del software il processo Varianti del modello a cascata Variante 1: cascata con prototipazione Prototipo usa e getta, solo per capire meglio i requisiti Variante 2: cascata con ritorni Entrambe raggruppano sotto-sequenze di fasi

14 Ingegneria del software il processo Modelli iterativi Applicabili a qualunque modello generale di ciclo di vita Necessità di adattamento ai cambiamenti Evoluzione di problemi, soluzioni possibili e tecnologie utilizzabili Diversificazione dei requisiti del committente Soluzione generale Decomporre la realizzazione del sistema Differire la realizzazione delle componenti critiche Le iterazioni devono essere pianificate

15 Ingegneria del software il processo Modello incrementale Analisi e progettazione sono definitive I requisiti sono identificati completamente Larchitettura del sistema è identificata e fissata I passi della realizzazione incrementale sono pianificati La realizzazione è incrementale Progettazione di dettaglio, codifica e prove Integrazione e collaudo Accettazione e rilascio di versioni parziali Dai requisiti essenziali (prima) a quelli desiderabili (poi)

16 Ingegneria del software il processo Schema del modello incrementale Analisi e progettazione Progettazione di dettaglio Realizzazione Accettazione di versione

17 Ingegneria del software il processo Modello evolutivo Analisi preliminare Per identificare i requisiti di massima Per definire larchitettura di massima Per pianificare i passi di analisi e realizzazione evolutiva Analisi e realizzazione di evoluzione Per raffinamento ed estensione dellanalisi Per progettazione, codifica, prove e integrazione Rilascio di prototipi, accettazione finale

18 Ingegneria del software il processo Schema del modello evolutivo

19 Ingegneria del software il processo Il modello a spirale Proposto da Barry W. Boehm nel 1988 Prevede quattro attività principali Definizione degli obiettivi Analisi dei rischi Sviluppo e validazione Pianificazione È un modello astratto: va specializzato

20 Ingegneria del software il processo Fasi del modello a spirale Definizione degli obiettivi –Requisiti, identificazione dei rischi, piano di gestione Analisi dei rischi –Studio delle conseguenze, valutazione delle alternative con lausilio di prototipi e simulazioni Sviluppo e validazione –Realizzazione del prodotto Pianificazione –Decisione circa il proseguimento, pianificazione del ciclo di vita

21 Ingegneria del software il processo Schema del modello a spirale

22 Ingegneria del software il processo Aspetti del modello a spirale Pone grande attenzione sugli aspetti organizzativi Pianificazione delle fasi Analisi dei rischi( modello risk-driven) Richiede forte interazione tra committente e fornitore –Committente: definizione degli obiettivi, pianificazione –Fornitore: sviluppo e validazione –Entrambi: analisi dei rischi Applicabile ai cicli tradizionali

23 Ingegneria del software il processo Altri modelli Modelli agili Extreme Programming –Facilita il coinvolgimento (informale) del committente Non solo nellanalisi, ma anche in progettazione e sviluppo Fortemente incrementale ( a passo piccolo)

24 Ingegneria del software Component-based Massima attenzione al riuso sistematico di componenti preesistenti proprie od off-the-shelf il processo

25 Ingegneria del software il processo Schema del modello component-based Analisi delle componenti Adattamento dei requisiti Analisi dei requisiti Progettazione e riuso Sviluppo ed integrazione Validazione di sistema

26 Ingegneria del software Sviluppo agile Introdotto nel 2001 –K. Beck et al. Manifesto for agile software development, È focalizzato più sulle persone e le interazioni che sui processi e gli strumenti Combina una filosofia e una serie di linee guida per lo sviluppo il processo

27 Ingegneria del software Filosofia Soddisfazione del cliente e consegna incrementale anticipata del software Impiego di gruppi di progettazione compatti e motivati Impiego di metodi formali Livello minimo di prodotti collaterali e una generale semplicità di sviluppo Eimportantissima linterazione e la collaborazione sia allinterno del team che con il cliente e lutente finale La motivazione del team è fondamentale Le richieste di cambiamento vengono considerate positivamente anche se intervengono in fase avanzata. Un team agile è un team in grado di rispondere in modo appropriato ai cambiamenti. il processo

28 Ingegneria del software Fattori umani : competenza, obiettivi comuni, collaborazione, capacità di prendere decisioni, capacità di soluzione creativa dei problemi, reciproca fiducia e rispetto, auto-organizzazione, ecc. Il successo dello sviluppo agile dipende dai fattori umani: il processo viene plasmato sulla base delle persone e dei team e non viceversa. Per molti tipi di software le fasi di progettazione e costruzione sono parzialmente sovrapponibili cioè possono essere svolte in parallelo in modo che i modelli progettuali possano vengano applicati non appena vengono creati. Gli incrementi software (prototipi eseguibili o porzioni di sistemi funzionanti) devono essere forniti con grande frequenza, in modo che ladattamento tenga il passo dei cambiamenti (imprevedibilità di analisi, progettazione, costruzione e collaudo da punto di vista della pianificazione) il processo

29 Ingegneria del software Modelli agili Extreme programmimg (XP) – è il modello agile più famoso proposto nel 1999 da Kent Beck. Sviluppo di software adattativo (ASD) – modello iterativo per la realizzazione di software e sistemi complessi utilizzando la collaborazione umana, lauto- organizzazione dei team e lapprendimento dei singoli membri del team. Dynamic Systems Development Method (DSDM) – modello iterativo simile al modello RAD per sistemi che rispondono a vincoli temporali molto rigidi che suggerisce che in ciascun incremento venga svolto solo il lavoro utile per facilitare il passaggio allincremento successivo. Scrum–modello che fornisce frequenti incrementi software definendo le unità di lavoro necessarie per ottenere uninsieme a priorità di requisiti (sprint) e svolgendo riunioni brevi quotidianamente. Sviluppo feature driven (FDD) – modello più formale che concentra il team di sviluppo sulle funzionalità che hanno valore per il cliente e che possono essere implementate al massimo in due settimane. Rispetto agli altri modelli agili privilegia la progettazione e la gestione della qualità. il processo

30 Ingegneria del software Extreme programming Prevede quattro attività strutturali: –Pianificazione –Progettazione –Programmazione –Collaudo E strettamente connesso alladozione di metodologie object-oriented su tutto il processo Pone unenfasi molto forte sul test, che viene visto come unattività da avviare il prima possibile La collaborazione tra utenti (cliente) e gruppo di sviluppo è centrale in tutto il processo il processo

31 Ingegneria del software il processo Schema dell XP

32 Ingegneria del software il processo Costo del cambiamento

33 Ingegneria del software il processo Riepilogo Il ciclo di vita Il modello a cascata Il modelli iterativi Il modello a spirale

34 Ingegneria del software il processo Riferimenti bibliografici Testo: Altri riferimenti –B.W. Bohem, A spiral model of software development and enhancement, IEEE software, maggio –W.W. Royce, Managing the development of large software systems: concepts and techniques, Proceedings of Wescon70, agosto 1970.


Scaricare ppt "Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software il processo Processo software."

Presentazioni simili


Annunci Google