Ingegneria del Software 2. Ciclo di vita. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Documenti analoghi
Laura Semini Dipartimento di Informatica Università di Pisa

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

Il ciclo di vita del SW

Il ciclo di vita del SW

SCD IS. Processi SW. Processi Software. UniPD Ingegneria del Software mod. A 1. Parole chiave 3. Parole chiave 4. Modelli di ciclo di vita

3. Ciclo di Vita e Processi di Sviluppo

Pratiche di XP [Beck] Extreme Programming (XP) Story Card. Gioco di pianificazione

Modelli di processo. Marina Zanella - Ingegneria del Software Processo 1

Unified Process - introduzione

Sviluppo software in gruppi di lavoro complessi 1

I lucidi messi a disposizione sul sito del corso di Analisi e progettazione del software NON sostituiscono il libro di testo

Corso di Ingegneria del Software. Modelli di produzione del software

Cicli di Vita del Software. Porfirio Tramontana 2009 Ingegneria del Software Cicli di Vita del Software

Sviluppo iterativo ed evolutivo

Ingegneria del Software

Analisi e Progettazione del Software

Modulo 2. La produzione industriale del software Il ciclo di vita del software I modelli di sviluppo. La industrializzazione del software

Introduzione. Sommario. Il software. Definizione di Ingegneria del software

AGENDA SECTION n Approccio Agile al PM. 2. Il metodo SCRUM

Corso di Ingegneria del Software. Modelli di produzione del software

Modelli di processo. Modello a cascata (Royce 1970) Studio di fattibilità. Analisi e specifica dei requisiti. Progettazione. Codifica e test di unità

Materiale didattico. Sommario

Configuration Management secondo l ISO

Analisi e Progettazione del Software

Sviluppo software Agile

Agile Principles Agile People. Gaetano Mazzanti Gama-Tech

Gestione dello sviluppo software Modelli Agili

Ingegneria del Software

Ingegneria del Software

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

metodologie metodologia una serie di linee guida per raggiungere certi obiettivi

Ingegneria del Software 4. Introduzione a UML. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Programma operativo Regione Lombardia/Ministero del Lavoro/Fondo Sociale Europeo, Obiettivo 3 Misura C3

PROGETTARE SISTEMI INFORMATIVI. Fasi e relativi approcci

Progetto Mattone Internazionale. Metodi e fasi del progetto: La Gestione del Ciclo di Progetto

Modelli di Ciclo di Vita del Software (CVS)

Lezione 2 Cicli di Vita e Processi Software. Ingegneria del Software 2 CVS e Processi Software 1

Studio del linguaggio TROPOS per la modellazione dei requisiti orientata agli agenti

Ciclo di vita del software

Metodologie Agili per lo sviluppo di applicazioni Internet Distribuite. Agile Group DIEE, Università di Cagliari

Sistemi e modelli. Sistemi

Verifica e validazione: introduzione

Ingegneria del Software

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Il BIM per la gestione della commessa. Ing. Antonio Ianniello

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Introduzione ai casi d uso. Iolanda Salinari

Rational Unified Process Introduzione

Ciclo di vita per lo sviluppo di software sicuro

Ingegneria del Software

UML come abbozzo. Introduzione all UML. UML come linguaggio x programmi. UML come progetto dettagliato

MANUALE SISTEMA DI GESTIONE INTEGRATO QUALITA E AMBIENTE

Ciclo e Processo di Sviluppo: approcci tradizionali, evolutivi, agili, free open source software

Progettazione di basi di dati

PIANIFICAZIONE DI PROGETTO DI SISTEMI INFORMATIVI

Basi di Dati. Progettazione di una Base di Dati. Progettazione di una Base di Dati

SISTEMI DI GESTIONE AMBIENTALE ORIENTATI AL PRODOTTO (POEMS): UN MODELLO PER LE IMPRESE DEL SETTORE AGRO-ALIMENTARE

ORGANIZZAZIONE Un modello organizzativo per l efficacia e l efficienza dello Studio

CICLO DI VITA DEL PROGETTO

Introduzione all Agile Software Development

Insegnamento di Gestione e Organizzazione dei Progetti A.A. 2008/9

Concetti fondamentali. Laboratorio di Ingegneria del Software Andrea Bei

2. Modellazione dei casi d uso

I REQUISITI INNOVATIVI DELLA ISO Alessandra Peverini Perugia 23 ottobre 2015

SISTEMI INFORMATIVI TERRITORIALI DATABASES -LEZIONE 3

Laboratorio di Progettazione di Sistemi Software Progetto: modellazione di un dominio e sue attività

Servizio L2.S3.9 - Servizi professionali

Ingegneria del Software. Processi di Sviluppo

Programmazione con Java

UFFICIO TECNICO E ANALISI DI MERCATO- Settore I Informatica e Settore II Telecomunicazioni. Lotto 1 Appendice 1 Profili Professionali

Qualità dei processi software

IL PROCESSO di PROGETTAZIONE

14. Verifica e Validazione

ALLEGATO 2A MODELLO DI OFFERTA TECNICA LOTTO 1

Sistemi Informativi: Il processo software

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Richiami di ingegneria del software

Ingegneria del Software L-A

SAFER, SMARTER, GREENER

Il PROCESSO UNIFICATO

Progetto di Informatica III

Capacity Availability Continuity Infrastructure Management

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

TECN.PROG.SIST.INF. Ciclo di vita del software Roberta Gerboni

La programmazione degli investimenti in un importante aeroporto Italiano. Cristian Lombardo e Matteo Marino

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

MODALITÀ DI ACQUISIZIONE DEL SOFTWARE APPLICATIVO

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Windchill ProjectLink Guida al curriculum

Esperienze di Advanced Analytics nella statistica ufficiale: strumenti e progetti

Ciclo di vita del progetto

I contenuti e i vantaggi della certificazione ISO in relazione agli obblighi del Dlgs 102/2014

L attività di formazione. Marzo 2016

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

Basi di Dati Concetti Introduttivi

Software Embedded Integration Testing. Ing. Matteo Maglio Milano, 17 Febbraio 2011

Modelli di Processo.

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Un linguaggio per la rappresentazione formale di vincoli su scenari d'uso

Transcript:

Ingegneria del Software 2. Ciclo di vita Dipartimento di Informatica Università di Pisa A.A. 2014/15

la parola agli standard PROCESSO: un insieme di attività correlate che trasformano ingressi in uscite [ISO 9000] norme di codifica specifica codifica codice programmatore, postazione, strumenti Modellare un processo significa suddividerlo e per ogni attività dire cosa, quali prodotti, quando

ISO/IEC 12207:2008 Processi del ciclo di vita del software Il modello più noto e riferito (ne esistono altri) Modello ad alto livello Identifica i processi dello sviluppo software Struttura modulare (specializzazione) Identifica le entità responsabili dei processi Identifica i prodotti dei processi

attività primarie Comunicazioni con le parti in causa (stakeholder) Pianificazione costruzione del piano (chi, cosa, quando) Modellazione per capire dominio e prodotto Costruzione codice e verifica Dispiegamento fornitura al cliente e feedback

di supporto e organizzative Controllo del progetto Gestione dei rischi Valutazione della qualità Revisioni tecniche formali Misura Gestione configurazioni Gestione del riutilizzo Preparazione e produzione del prodotto Gestione dei progetti Gestione delle infrastrutture Miglioramento del processo Formazione del personale

il ciclo di vita Modelli del processo primario di produzione sw Concezione, sviluppo, gestione e ritiro Identificazione delle attività NON è un metodo di sviluppo Modelli generici, indipendenti dal prodotto Organizzazione delle attività Ordinamento delle attività NON è un insieme di indicazioni e strumenti Criteri per terminare e passare alla successiva

modelli tradizionali Code&Fix un non-modello Attività non identificate né organizzate Progetti non gestiti modelli di possibili processi standard Modelli organizzati (prescrittivi) Cascata fasi sequenziali, con ritorni e prototipi Incrementali/Evolutivi realizzazione in più passi/ciclici Spirale contesto allargato e modello astratto

modelli agili Cicli di vita leggeri Flessibilità nell organizzazione delle attività Meno documentazione (strumentata, nel codice, ) Meno pianificazione (più frequente) Tecniche di gestione del personale Strumenti di sviluppo rapido extreme Programming, Crystal, Scrum,

modello a cascata Reso popolare nel 1970 da Winston Royce Successione di fasi sequenziali Impossibilità di ritornare a fasi precedenti In caso di eventi eccezionali il processo riparte Documentazione Ogni fase produce documenti che la concretizzano He was a pioneer in the field of software development, known for his 1970 paper from which the Waterfall model for software development was mistakenly drawn. [wiki] I documenti sono necessari per la fase successiva Modello document driven

caratteristiche delle fasi Le fasi sono descritte in termini di Attività e prodotti intermedi Contenuti e struttura dei documenti Responsabilità e ruoli coinvolti Scadenze di consegna dei documenti Dipendenze causali e temporali Riferimento per l identificazione delle attività

schema del modello analisi Fattibilità Requisiti Specifica progettazione Architetturale Dettaglio realizzazione Codifica Prove Integrazione Collaudo manutenzione Correttiva Adattativa Perfettiva

in accordo a ISO 12207 [ISO/IEC 12207:2008] analisi Fattibilità Requisiti Specifica progettazione Architetturale Dettaglio realizzazione Codifica Prove Integrazione Collaudo manutenzione Correttiva Adattativa Perfettiva

in accordo a Binato et alii analisi Fattibilità Requisiti Specifica Studio di fattibilità Descrizione del problema progettazione Architetturale Dettaglio Progettazione della soluzione realizzazione Codifica Prove Integrazione Collaudo Sviluppo e test di unità Integrazione e test di sistema Deployment manutenzione Correttiva Adattativa Perfettiva Manutenzione

variazioni sequenziali Mancanza di flessibilità Rigorosa sequenzialità delle fasi Non prevede cambiamenti nei requisiti Genera molta manutenzione Burocratico e poco realistico Cascata con prototipazione Cascata con ritorni [i contributi di Royce ]

schema del modello a V

modello a V The V-Modell is a guideline for the planning and execution of development projects, which takes into account the whole life cycle of the system. [IABG V1997, V-XT 2005 v-modell.iabg.de] Prime formalizzazioni intorno al 1990 [Paul Brook 1986] Standard approvato dal governo tedesco Enfatizza la relazione fra le singole fasi di sviluppo e le corrispondenti fasi di testing

schema agile [sympatec.com] Sympatec is using the so called V-model as the standard life cycle model for all kinds of development projects, i.e. this method is not limited to the development of software

modelli iterativi Necessità di modelli adattabili ai cambiamenti delle soluzioni e delle tecnologie dei requisiti Soluzione generale Ritardare la realizzazione delle componenti che dipendono criticamente da fattori esterni (tecnologie, hw sperimentale, ) Pianificare le iterazioni

modelli incrementali analisi e progettazione progettazione di dettaglio realizzazione Versione incompleta Analisi e progettazione sw Requisiti identificati e stabili Architettura identificata e stabilita I passi della realizzazione incrementale vengono pianificati Realizzazione incrementale necessità di rilasciare in tempo una parte del prodotto finale Sum up: Applicazione iterativa (a release) del modello a cascata

modelli evolutivi analisi preliminare analisi e progettazione realizzazione prototipo (usa e getta) Analisi preliminare Requisiti di massima identificati Architettura di massima identificata I passi dell analisi e realizzazione evolutiva vengono pianificati Analisi e realizzazione evolutive raffinamento ed estensione dell analisi progettazione, codifica, prove e integrazione Sum up: versione del modello evolutivo con requisiti instabili

modello a spirale Proposto da Barry Bohem nel 1988 [Boehm 2000] [A] risk-driven process model generator [T]he risk that technology is unready may be mitigated by an appropriate prototype implementation in an early spiral cycle o dominio poco noto, strumenti nuovi, personale non addestrato, Anchor point milestones drive the spiral to progress toward completion and offer a means to compare progress between one spiral project and another

schema modello a spirale Requisiti identificazione dei rischi piano di gestione definizione degli obiettivi Studio di conseguenze e alternative, prototipi e simulazioni analisi dei rischi prototipi e simulazioni pianificazione del nuovo ciclo Decisione circa il proseguimento, pianificazione del ciclo successivo Realizzazione del prodotto sviluppo e validazione

ancora Ogni iterazione suddivisa in 4 fasi Applicabile ai cicli tradizionali Maggior comunicazione e confronto con il committente nelle versioni più recenti [attenzione ai colori della Figura 8.3 in Binato et alii]

ispirato da PDCA/PDSA Plan: Identifying and analyzing the problem sviluppo della policy Do: Developing&testing a potential solution deployment della policy Check: Measuring how effective the test solution was, and analyzing whether it could be improved in any way Audit, diagnosi, report Act: Implementing the improved solution eventuale raffinamento soluzione [William Edwards Deming 1950]

modello a componenti (CBSE) Fasi [di un non-modello di successo] identificazione dei componenti necessari ricerca di componenti comparabili eventuale realizzazione di componenti integrazione e testing dei componenti Favorisce il riuso non solo di sw home-grown, ma anche terzo (FREE/OS o meno) nessuno sviluppa un DBMS, oggi! [wiki] [popularised at Garmish]

unified process (USDP/UP) Dai three amigos [Booch Jacobson Rumbaugh 1999] Guidato dai casi d uso e dall analisi dei rischi la raccolta requisiti e i successivi passi sono guidati dallo studio degli use case Incentrato sull architettura UP assegna alla descrizione dell architettura del sistema un ruolo prioritario. L approccio si concentra, soprattutto nelle prime fasi, sull architettura di massima, lasciando i dettagli alle fasi successive. È possibile avere subito una visione generale del sistema facilmente adattabile al cambiamento dei requisiti Iterativo incrementale

fasi (temporali) di UP Avvio fattibilità; analisi rischi; requisiti essenziali per definire il contesto del sistema; [prototipo] Elaborazione analisi requisiti e rischi; sviluppo di un architettura base; piano per la fase di costruzione Costruzione analisi, disegno, implementazione, testing Transizione beta testing; aggiustamento delle prestazioni; creazione di documentazione aggiuntiva; attività di formazione; guide utenti; creazione di un kit per la vendita

UP rispetto all incrementale analisi e progettazione progettazione di dettaglio versione i realizzazione Versione i (UP) UP in viola, incrementale in giallo [non necessariamente evolutivo: non è prevista la realizzazione di prototipi!]

schema di UP

fasi, iterazioni e wf principali

e per ogni fase

metodi agili Particolare metodo per lo sviluppo del software che coinvolge quanto più possibile il committente I principi sui quali si basa una metodologia leggera sono solo 4 [manifesto di Snowbird 2001] Comunicazione [an alternative to documentation driven, heavyweight software development processes] le persone e le interazioni sono più importanti dei processi e degli strumenti [tutti possono parlare con tutti, persino l'ultimo dei programmatori con il cliente] [le relazioni e la comunicazione tra gli attori di un progetto sono la miglior risorsa] bisogna collaborare con i clienti al di là del contratto [la collaborazione diretta offre risultati migliori dei rapporti contrattuali]

metodi agili Semplicità [la descrizione formale sia il più semplice e chiara possibile] è più importante avere software funzionante che documentazione mantenere il codice semplice e avanzato tecnicamente, riducendo la documentazione al minimo Feedback bisogna rilasciare nuove versioni del software ad intervalli frequenti sin dal primo giorno si testa il codice Coraggio si dà in uso il sistema il prima possibile e si implementano i cambiamenti richiesti man mano bisogna essere pronti a rispondere ai cambiamenti più che aderire a un progetto Adatti a progetti con meno di 50 persone agilemanifesto.org/

un metodo agile: XP Una prassi implementativa Pianificazione flessibile basata su scenari proposti dagli utenti e che coinvolge i programmatori Rilasci frequenti due-quattro settimane inizio di una nuova pianificazione Progetti semplici comprensibili a tutti Metafore condivise per descrivere una funzionalità del sistema si usa una metafora. [Aiuta a far sì che il team usi un sistema comune di nomi di entità, tale che sia immediato trovare, per uno sviluppatore, un modulo in base al nome, o sia chiaro dove inserire le nuove funzionalità appena sviluppate.] Verifica (testing) di unità e di sistema (basata su scenari) supporto automatico Test Driven Development [casi di test = specifica] cliente sempre a disposizione (circa ogni settimana)

un metodo agile: XP Programmazione a coppie un solo terminale: il driver scrive il codice mentre il navigatore controlla il lavoro del suo compagno in maniera attiva Code Refactoring modifiche senza cambi nel comportamento se un metodo necessita di una spiegazione, riscrivilo! [codice auto-esplicativo] Collettivizzazione del codice accesso libero integrazione continua standard di codifica No lavoro straordinario Daily Stand Up Meeting I think that ultimately, Extreme Programming has mushroomed in use and interest, not because of pair-programming or refactoring, but because, taken as a whole, the practices define a developer community freed from the baggage of Dilbertesque corporations

una rassegna [forrester.com]