Laura Semini Dipartimento di Informatica Università di Pisa



Documenti analoghi
Vincenzo Gervasi, Laura Semini Dipartimento di Informatica Università di Pisa

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

Il ciclo di vita del software

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

Luca Cabibbo A P S. Analisi e Progettazione del Software. Agile. 3.1 Metodi e atteggiamenti agili

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

Tecniche di Programmazione 2009/10

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

Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_2 V3.

Il ciclo di vita del SW

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

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

Sistemi Informativi. Marino Segnan

Gestione dello sviluppo software Modelli Agili

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Il ciclo di vita del SW

Sviluppo software Agile

Il ciclo di vita del SW

Agile e Scrum in pratica

Gestione dello sviluppo software Modelli Base

Processi iterativi. Marina Zanella - Ingegneria del Software RUP 1

Roberto Garrucciu Software Product Vargroup

Sviluppo software in gruppi di lavoro complessi 1

Materiale didattico. Sommario

Corso di Ingegneria del Software. Modelli di produzione del software

SCD IS. Processi SW. Processi Software. Ciclo di vita del SW 1. Ciclo di vita del SW 2. Parole chiave 3

Agile Principles Agile People. Gaetano Mazzanti Gama-Tech

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

Unified Process - introduzione

3. Ciclo di Vita e Processi di Sviluppo

Redazione e Presentazione di Progetti Informatici

Il ciclo di vita del SW

Gestione dello sviluppo software Modelli Agili

Introduzione al corso

Be Agile Sinesy 16 Ottobre FABIO BABUIN e MARTINA TOLDO

Sistemi Informativi: Il processo software

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

Corso di Ingegneria del Software. Il modello UP

Ingegneria del Software

Corso di Ingegneria del Software. Modelli di produzione del software

Evoluzione del ruolo dell informatico nell ambito dello sviluppo del software: una prospettiva storica. Informatici e sviluppo del software

Sviluppo iterativo ed evolutivo

Corso di Ingegneria del Software. Modelli di produzione del software

I revisori tecnici...xi. Ringraziamenti...xv. Introduzione...xvii. Il software dall idea alla produzione...1

Allegato 1 Descrizione profili professionali

Corso di Ingegneria del Software. Introduzione al corso

TECNOLOGIA E BUSINESS AGILITY L APPROCCIO AGILE DI ALTEA UP MASSIMILIANO LENZI, PMP

Il lavoro del project manager per il cambiamento della PA.

SCRUM: gestire progetti di successo in mercati volatili e altamente competitivi

Introduzione all Ingegneria del Software

1. Ciclo di Vita e Processi di Sviluppo

SCD IS. Processi SW. Processi Software. Glossario 4. Ciclo di vita del SW 2. Ciclo di vita del SW 1

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

Bologna, 12 Marzo 2016 AGILE IOT. Igor Antonacci dotdotnet.org /

Corso di Ingegneria del Software

La fase di Progettazione

Corso di Ingegneria del Software. Modelli di produzione del software

A. Ferrari sistemi informativi e sistemi informatici

Analisi dell attività e definizione dei requisiti. Definizione dei requisiti

Verifica e validazione: introduzione

Definizioni - 1. Ingegneria del Software modulo B 2. Processi di sviluppo software. Modelli. Modello sequenziale. Modello incrementale

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

18 Settembre 2019, Milano

PIANO DI STUDIO DELLA DISCIPLINA DISCIPLINA: Tecnologia e Progettazione di Sistemi Informatici e di Telecomunicazioni

Definizioni - 1. Ingegneria del Software 2 2. Processi di sviluppo software. Ingegneria del Software 2 Processi di sviluppo software

Agile in a Complex Environment

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

Progetto software 2007/2008 Lezione I. Dott.ssa Marianna Nicolosi Asmundo

Ingegneria del Software 3. Analisi dei requisiti. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Analisi e Progettazione del Software

INTERAZIONE UOMO-MACCHINA

IS Corso di Ingegneria del Software 1

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

CASE STUDY AWDOC BY AWTECH

INGEGNERIA DEL SOFTWARE

ottobre Fonti [SSA] Chapter 19, The Development Viewpoint Luca Cabibbo Punto di vista dello Sviluppo Luca Cabibbo SwA

Programmazione Orientata agli Oggetti in Linguaggio Java

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

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

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Ingegneria del Software

Dalle USER STORY al TEST AUTOMATICO in Django: un percorso step-by-step per dormire sonni tranquilli

Pagine Web. Accessibili. Pagina comune a Ing Sw A e B. Pagina dei singoli corsi A/B. Da didawiki Dalla mia pagina web

Ingegneria del Software L-A

REPERTORIO DELLE QUALIFICAZIONI PROFESSIONALI DELLA REGIONE CAMPANIA

Il processo di sviluppo del software

SERVICE MANAGEMENT E ITIL

Esame di Ingegneria del software Appello del 7 ottobre 2017

Il ciclo PDCA. Gli strumenti del miglioramento continuo. William Edwards

Lezione 4- Sviluppo Agile del Software. Metodi Agili 1

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

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

CICLO DI VITA DEL PROGETTO

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

Introduzione a DevOps

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A5_3 V2.1. Controllo Qualità. Ispezioni

Introduzione ai casi d uso

Corso di Amministrazione di Sistema Parte II ISO 20000

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

Transcript:

Laura Semini Dipartimento di Informatica Università di Pisa

Lezione precedente: Sistemi complessi Necessità di tecniche e strumenti per realizzarli Definizione di Ingegneria del Software Questa lezione Organizzazione del lavoro per realizzare un sistema sw Processo sw Modelli di ciclo di vita del sw

Un insieme di attività correlate che trasformano ingressi in uscite (ISO 9000) Modellare il processo significa (Strutturarlo): Suddividerlo in attività di ogni attività, dire: Cosa Quali prodotti Quando Un esempio: ISO 12207

Organizzazione delle attività Ordinamento delle attività Criteri per terminare e passare alla successiva Esempio Preparazione di un dolce Modello di sviluppo generico Non è la ricetta del dolce! Indipendente dal dolce.

Code&Fix: un non-modello Attività non identificate né organizzate Progetti non gestiti Modelli prescrittivi Cascata Iterativi Modello a V Spirale Unified Process Modelli agili Extreme Programming Scrum

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

Definito nel 1970 da Royce Successione di fasi sequenziali Impossibilità di ritornare a fasi precedenti In caso di eventi eccezionali il processo riparte Documentazione Modello document driven Ogni fase produce documenti che concretizzano la fase I documenti sono necessari per la fase successiva

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à

Mancanza di flessibilità Rigorosa sequenzialità delle fasi Non prevede cambiamenti nei requisiti Genera molta manutenzione Burocratico e poco realistico Variazioni proposte: Cascata con prototipazione Cascata con ritorni

Fasi del modello a cascata vs Fuggetta 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

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, hardware sperimentale, ecc) Le iterazioni sono pianificate

Requisiti stabili Necessità di uscire con qualcosa velocemente analisi e progettazione progettazione di dettaglio Versione incompleta realizzazione

Requisiti instabili Necessità di uscire con un prototipo analisi preliminare analisi e progettazione prototipo (usa e getta) realizzazione

Proposto da Boehmnel 1988 È un modello astratto: va specializzato Ogni iterazione organizzata in 4 fasi Note: attenzione alla parole incrementale nel Fuggetta incrementale o evolutivo. Errore nella legenda Figura 8.3 (Fuggetta): invertire i colori

Evidenzia gli aspetti gestionali Pianificazione delle fasi Analisi dei rischi (modello risk driven ) Tipici Rischi: Dominio poco noto, Linguaggi, strumenti nuovi, Personale non addestrato Applicabile ai cicli tradizionali Maggior comunicazione e confronto con il committente Ispirato dal plan-do-check-actplan.

Plan Identifying and analyzing the problem Do Developing&testing a potential solution Check Measuring how effective the test solution was, and analyzing whether it could be improved in any way Act Implementing the improved solution [William Edwards Deming 1950]

Proposto nel 1999 da Grady Booch, Ivar Jacobson, James Roumbaugh Caratteristiche Guidato dai casi d uso e dall analisi dei rischi Raccolta dei requisiti e passi successivi guidati dallo studio degli use case Incentrato sull architettura il processo assegna alla descrizione dell architettura del sistema un ruolo molto importante. L approccio è infatti quello di concentrarsi, soprattutto nelle prime fasi, sull architettura di massima, lasciando i dettagli alle fasi successive. In tal modo è possibile avere da subito una visione generale del sistema facilmente adattabile al cambiamento dei requisiti Iterativo incrementale

Avvio Fattibilità; Analisi dei rischi; Requisiti essenziali per definire il contesto del sistema; Eventuale prototipo Elaborazione Analisi dei requisiti; Analisi dei 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

Per metodologia agile (o leggera)o metodo agilesi intende un particolare metodo per lo sviluppo del software che coinvolge quanto più possibile il committente. Adatti a progetti con meno di 50 persone Una metodologia agile si basa sui principidel Manifesto di Snowbird, feb 2001

Comunicazione: 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); (ossia le relazioni e la comunicazione tra gli attori di un progetto software sono la miglior risorsa del progetto); bisogna collaborare con i clienti al di là del contratto la collaborazione diretta offre risultati migliori dei rapporti contrattuali; Semplicità: analisti mantengano la descrizione formale il più semplice e chiara possibile è più importante avere software funzionante che documentazione bisogna mantenere il codice semplice e avanzato tecnicamente, riducendo la documentazione al minimo indispensabile; 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 al progetto

Si basa su un insieme di prassi: Pianificazione flessibile basata su scenari proposti dagli utenti coinvolge i programmatori Rilasci frequenti due-quattro settimane inizio di una nuova pianificazione

Metafora condivisa per descrivere una funzionalità del sistema software nel gruppo si usa una metafora. Ad esempio, per descrivere un gruppo di agenti softwarein azione lo sciame di piccole api volano sui fiori e rientrano all alveare solo una volta terminato il loro compito. Aiuta a far sì che il team usi un sistema comune di nomi di entità, tale che sia immediato trovare, per uno sviluppatore, una certo modulo in base al nome, o sia chiaro dove inserire le nuove funzionalità appena sviluppate.

Progetti semplici comprensibili a tutti Verifica (testing) di unità e di sistema (basati sugli scenari) supporto automatico Test Driven Development casi di test = specifica Cliente sempre a disposizione (circa ogni settimana)

Programmazione a coppie un solo terminale, il driverscrive il codice mentre il navigatorecontrolla il lavoro del suo compagno in maniera attiva. No lavoro straordinario Collettivizzazione del codice accesso libero integrazione continua standard di codifica

Code Refactoring modifying it without changing its behavior, Uno dei motti del XP è se un metodo necessita di un commento, riscrivilo! (codice auto-esplicativo). Daily Stand Up Meeting

SCRUM è un processo agile il cui nome deriva dalla terminologia del gioco del Rugby. Si basa sulla teoria della complessità (www.controlchaos.com) E un processo Che può essere adottato per gestire e controllare lo sviluppo del software E iterativo, incrementale, per lo sviluppo e gestione di ogni tipologia di prodotto Fornisce alla fine di ogni iterazione un set di funzionalità potenzialmente rilasciabili

Pre-game phase Planning sub-phase Include la definizione del sistema che deve essere sviluppato. Viene creata una Product Backlog List, che contiene tutti i requisiti attualmente conosciuti Architecture sub-phase Viene pianificato un design di alto livello del sistema, inclusa l architettura, in base agli elementi contenuti nel Product Backlog

Development (Game) phase (parte agile dell approccio Scrum) Nella Development Phase, il sistema viene sviluppato attraverso una serie di Sprint Cicli iterativi nei quali vengono sviluppate o migliorate una serie di funzionalità Ciascuno Sprint include le tradizionali fasi di sviluppo del software L architettura ed il design del sistema evolve durante lo sviluppo negli Sprint Uno Sprint si svolge in un intervallo di tempo che va da una settimana ad un mese

Post-game phase (contiene la chiusura definitiva della release)

Responsibilities Product features identification Return of Investment Feature list priority (continuous) A single person The customer or the voice of the customer Product Manager or Product Marketing Manager Powers: Drives directly the development from a business perspective Accepts or rejects work results Stops a Sprint if necessary

Responsibilities Build the product Commit what they can do in a Sprint Characteristics Cross-functional Do not wait for someone who can do it faster than us Reduce waste Handoff People waiting while other are overwhelmed Increase learning No role other than team member inside a team Self-organizing No project (or team) manager Avoid multitasking Feature teams 7 + 2 persons Ideally co-located

Responsibilities Teaches Scrum to all roles Coach for the team Removes barriers for productivity Shields the team from external interferences The Scrum Master is not A team manager A project manager Does not have authority over the team Typical behaviour: I observe [thing], what should we do?

Fasi Identificazione dei componenti necessari Ricerca Realizzazione di componenti (eventuale) Integrazione e testing del componente Favorisce il riuso Non solo di cose sviluppate in casa, ma anche di software comprato o free / open source o no. Nessuno sviluppa un DBMS, oggi!

Cap 8 Fuggetta Cap 2 Arlow Altre letture che potrebbero interessarvi Il manifesto di Snowbird Ken Schwaber e Jeff Sutherland, La Guida a Scrum. La Guida Definitiva a Scrum: Le Regole del Gioco(PDF), Scrum.Org and ScrumInc, 2014.