Processo software il processo.

Slides:



Advertisements
Presentazioni simili
Agile e Scrum.
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
Paolo Pedrinelli Carrara
La progettazione secondo la norma internazionale ISO 9001
Analisi e progettazione
Sistemi informativi e Sistemi informatici
AMBIENTE VIRTUALE DI APPRENDIMENTO.
COME PROGRAMMARE LE ATTIVITA’
L’Informatica dal Problema alla Soluzione
I contenuti di questa presentazione sono stati realizzati a cura di M
Qualità nei laboratori di ricerca e albo laboratori altamente specializzati Workshop, Genova 11 luglio 2002 G.B. Rossi: Considerazioni sulla qualità nei.
Processo software il processo.
Imprenditorialità e managerialità
4 – Progettazione – Introduzione e Modello E-R
Strumenti e percorsi per la protezione civile locale Antonio Triglia - Formez Torino, 28 Giugno 2006 Progetto Sindaci.
Tratti distintivi elevato grado di specializzazione (INPUT) gli ordini impartiti ad un collaboratore provengono dal suo diretto superiore (unità di comando)
©Carlo Tasso 1999 Object Oriented Programming Slide 1 OO Analysis Vs. OO Design OOA – Object Oriented Analysis. –Specifica COSA, IN QUALE CONTESTO il sistema.
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Il ciclo di vita della progettazione di un sistema informativo
Identificazione delle attività
L’Activity Based Management
PROGETTI DI SISTEMI INFORMATIVI Le principali fasi e i relativi approcci della pianificazione.
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Introduzione a Scrum
L'alternanza scuola - lavoro.
1Milano, 3 Novembre 2004Assemblea Nazionale FISM WORKSHOP La certificazione dei requisiti di qualità per le Società Medico-Scientifiche Presentazione del.
Ciclo di vita del software
FONDAMENTI DI INFORMATICA III A2A2-1 CARATTERISTICHE E MODELLIZZAZIONE DEL LAVORO DUFFICIO Argomento 2 Approfondimento 2 CARATTERISTICHE E MODELLIZZAZIONE.
0 Proposta metodologica per la valutazione dellaccessibilità dei siti web Andrea Crevola, Sonia Modeo CSP – Innovazione nellICT.
Progettare interventi di orientamento Linee guida e suggerimenti operativi.
1 Unità locali EQUAL RESTORE sintesi della ricerca.
Progettazione di una base di dati
Introduzione alla modellazione di sistemi interattivi
Metodologia sviluppo KBS Fabio Sartori 12 ottobre 2005.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
La progettazione di un sistema informatico
L’ingegneria del software
Lo sviluppo del progetto informatico
Ingegneria del software Modulo 4 -Processi software Unità didattica 2 -eXtreme Programming Ernesto Damiani Università degli Studi di Milano Lezione 3 –
Scelta di un modello di processo: esempio
Commenti alle Attività Generiche. Attività Generiche (Pressman) Principali: Comunicazioni; Pianificazione; Modellazione; Costruzione, Dispiegamento Collaterali:
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche che tipicamente servono per portare a termine i compiti iniziali.
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Typical steps in project planning and scheduling To identify the tasks and their durations To evaluate consistency of the task net To evaluate the critical.
Modello di pianificazione strategica
COME FORMARE LE STRUTTURE OPERATIVE DELLA COMMITTENZA Per assumere scelte decisionali con piena consapevolezza delle loro implicazioni Per elaborare e.
La modellazione degli oggetti
MODELLI DI PROCESSO DI PRODUZIONE SOFTWARE
Che cos’è un progetto? È un’impresa: -complessa -unica
ICT e Sistemi informativi Aziendali
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Sistemi di Gestione per la Qualità
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
LABORATORIO DI INFORMATICA Ingegneria Informatica a. a
Sezione F Pianificazione di progetto
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Human-Computer Interaction - A.A. 2002/03 Un po' di background sui processi agili Fabio Vitali.
II - Approccio progettuale
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Extreme Programming Genova, 29 Ottobre /06/20152 Cosa è XP? È una delle metodologie cosiddette agili per lo sviluppo di software. Le metodologie.
Master MATITCiclo di vita del Sistema Informativo1 CICLO DI VITA DEL SISTEMA INFORMATIVO.
Ingegneria del software Modulo 4 -Processi software Unità didattica 2 – eXtreme Programming Ernesto Damiani Università degli Studi di Milano Lezione 1.
Progettazione di basi di dati: metodologie e modelli
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 1 -Cicli di vita Ernesto Damiani Università degli Studi di Milano.
Qualità Definizione: grado in cui un insieme di caratteristiche intrinseche soddisfa i requisiti.
DIT Department of Information and Communication Technology Information System Ingegneria del Software: un caso di studio.
Economia e Organizzazione Aziendale
Standard e strumenti per lo sviluppo del software Marco Carezzano Andrea Andrenacci (ZEROPIU, Business Partner di Telecom Italia) Milano, 2 febbraio 2005.
© 2016 Giorgio Porcu - Aggiornamennto 21/04/2016 I STITUTO T ECNICO QUINTO ANNO G ESTIONE DEL P ROGETTO Realizzare un Progetto Informatico Pianificazione.
Transcript della presentazione:

Processo software il processo

Prodotto e processo software Ciclo di vita del software Sommario Prodotto e processo software Ciclo di vita del software Modelli del processo di sviluppo Modelli a processo prescrittivo Modelli il processo

Prodotto software Processo 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

Ciclo di vita del software Modelli di processo Ciclo di vita del software il processo

il processo

È indipendente da metodi e strumenti di sviluppo software 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 l’avvio di un nuovo processo di sviluppo È indipendente da metodi e strumenti di sviluppo software Procedimento “rigido”che non prevede la possibilità di eseguire uno o più passi a ritroso il processo

Propedeutico al processo definito Richiede controllo di qualità 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 il processo

Evoluzione dei modelli il processo: il ciclo di vita 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 dall’aspetto 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) il processo

Definito nel 1970 da Winston Royce Una successione di fasi sequenziali 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 dall’inizio Documentazione Ogni fase produce “documenti” che concretizzano Emissione ed approvazione di documenti sono condizione necessaria per l’avvio della fase successiva Modello “document-driven” il processo

Schema del modello a cascata 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à il processo

Problemi legati alla eccessiva rigidità Il cliente deve essere in grado di enunciare esplicitamente tutti i requisiti Non ammette modifiche nei requisiti in corso d’opera 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

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 il processo

Applicabili a qualunque modello generale di ciclo di vita 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 il processo

Analisi e progettazione sono definitive Modello incrementale Analisi e progettazione sono definitive I requisiti sono identificati completamente L’architettura 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) il processo

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

Analisi e realizzazione di evoluzione Modello evolutivo Analisi preliminare Per identificare i requisiti di massima Per definire l’architettura di massima Per pianificare i passi di analisi e realizzazione evolutiva Analisi e realizzazione di evoluzione Per raffinamento ed estensione dell’analisi Per progettazione, codifica, prove e integrazione Rilascio di prototipi, accettazione finale il processo

Schema del modello evolutivo il processo

Proposto da Barry W. Boehm nel 1988 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 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 l’ausilio di prototipi e simulazioni Sviluppo e validazione Realizzazione del prodotto Pianificazione Decisione circa il proseguimento, pianificazione del ciclo di vita il processo

Schema del modello a spirale 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 il processo

Modelli agili Extreme Programming Altri modelli Facilita il coinvolgimento (informale) del committente Non solo nell’analisi, ma anche in progettazione e sviluppo Fortemente incrementale ( a passo piccolo) il processo

Component-based Massima attenzione al riuso sistematico di componenti preesistenti proprie od “off-the-shelf” il processo

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

Combina una filosofia e una serie di linee guida per lo sviluppo Sviluppo agile Introdotto nel 2001 K. Beck et al. “Manifesto for agile software development”, www.agilemodeling.com. È 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

Impiego di gruppi di progettazione compatti e motivati “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 E’importantissima l’interazione e la collaborazione sia all’interno del team che con il cliente e l’utente 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

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 l’adattamento tenga il passo dei cambiamenti (imprevedibilità di analisi, progettazione, costruzione e collaudo da punto di vista della pianificazione) il processo

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, l’auto-organizzazione dei team e l’apprendimento 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 all’incremento successivo. Scrum–modello che fornisce frequenti incrementi software definendo le unità di lavoro necessarie per ottenere un’insieme 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

Prevede quattro attività strutturali: Extreme programming Prevede quattro attività strutturali: Pianificazione Progettazione Programmazione Collaudo E’ strettamente connesso all’adozione di metodologie object-oriented su tutto il processo Pone un’enfasi molto forte sul test, che viene visto come un’attività da avviare il prima possibile La collaborazione tra utenti (cliente) e gruppo di sviluppo è centrale in tutto il processo il processo

Schema dell’ XP il processo

Costo del cambiamento il processo

Il ciclo di vita Il modello a cascata Il modelli iterativi Riepilogo Il ciclo di vita Il modello a cascata Il modelli iterativi Il modello a spirale il processo

Riferimenti bibliografici Testo: Altri riferimenti B.W. Bohem, “A spiral model of software development and enhancement”, IEEE software, maggio 1998. W.W. Royce, “Managing the development of large software systems: concepts and techniques”, Proceedings of “Wescon’70”, agosto 1970. il processo