Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright...

10
Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di Ingegneria del Software - quinta edizione Principi di Ingegneria del Software - quinta edizione Capitolo 4 Capitolo 4 Sviluppo Agile Sviluppo Agile I contenuti di questa presentazione sono stati realizzati a cura di M. Cerioli e G. Reggio utilizzando e integrando con contributi originali i materiali gentilmente concessi da R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005.

Transcript of Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright...

Page 1: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1

Principi di Ingegneria del Software - quinta edizionePrincipi di Ingegneria del Software - quinta edizione

Capitolo 4Capitolo 4Sviluppo AgileSviluppo Agile

I contenuti di questa presentazione sono stati realizzati a cura di M. Cerioli e G. Reggio utilizzando e integrando con contributi originali i materiali gentilmente concessi da R.S. Pressman & Associates, Inc., copyright © 1996, 2001, 2005.

Page 2: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 2

Manifesto for Manifesto for Agile Software DevelopmentAgile Software Development

““Scopriamo modi migliori di sviluppare il software facendolo ed Scopriamo modi migliori di sviluppare il software facendolo ed aiutando gli altri a farlo. Da queste esperienze, siamo giunti a aiutando gli altri a farlo. Da queste esperienze, siamo giunti a privilegiare i seguenti elementi : privilegiare i seguenti elementi :

Gli individui e le loro interazioniGli individui e le loro interazioni rispetto ai processi ed agli strumenti rispetto ai processi ed agli strumenti Software funzionanteSoftware funzionante rispetto ad un’ampia documentazione rispetto ad un’ampia documentazione La collaborazione col clienteLa collaborazione col cliente rispetto alla negoziazione dei contratti rispetto alla negoziazione dei contratti La pronta risposta ai cambiamentiLa pronta risposta ai cambiamenti rispetto all’esecuzione di un piano rispetto all’esecuzione di un piano

Ovvero, anche se attribuiamo un valore agli elementi riportati a destra, Ovvero, anche se attribuiamo un valore agli elementi riportati a destra, riteniamo piriteniamo più importanti quelli a sinistraù importanti quelli a sinistra””

Kent Beck et alKent Beck et al

Page 3: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 3

Che cos’Che cos’è l’è l’AgilitàAgilità??

Reazione efficace (rapida e adattiva) ai cambiamentiReazione efficace (rapida e adattiva) ai cambiamenti Comunicazione efficace fra tutti gli stakeholderComunicazione efficace fra tutti gli stakeholder Assorbimento del cliente nel team di sviluppoAssorbimento del cliente nel team di sviluppo Organizzazione del team che lo ponga in diretto controllo Organizzazione del team che lo ponga in diretto controllo

del proprio lavorodel proprio lavoro

ProducendoProducendo … … Consegne incrementali e frequenti di softwareConsegne incrementali e frequenti di software

Page 4: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 4

Processi agiliProcessi agili

Guidati dalle descrizione del cliente di che cosa gli serve Guidati dalle descrizione del cliente di che cosa gli serve (scenario)(scenario)

Basati sull’assunzione che i piani hanno vita breveBasati sull’assunzione che i piani hanno vita breve Sviluppano software in maniera iterativa con forte enfasi Sviluppano software in maniera iterativa con forte enfasi

sulle attivitsulle attività di costruzioneà di costruzione Producono e consegnano molteplici Producono e consegnano molteplici incrementi softwareincrementi software Si adattano ai cambiamentiSi adattano ai cambiamenti

Page 5: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 5

Extreme Programming (XP)Extreme Programming (XP)

Il piIl più largamente adottato dei processi agili, proposto ù largamente adottato dei processi agili, proposto inizialmente da inizialmente da Kent BeckKent Beck

Il planning in XPIl planning in XP Inizia con la creazione di varie “Inizia con la creazione di varie “user storyuser story”” Il team agile valuta ciascuna user story e le assegna un costoIl team agile valuta ciascuna user story e le assegna un costo Le varie user story sono raggruppate per determinare un Le varie user story sono raggruppate per determinare un

incremento da consegnare in tempi breviincremento da consegnare in tempi brevi Si stabilisce la data di consegnaSi stabilisce la data di consegna Dopo il primo incremento la “Dopo il primo incremento la “velocitvelocità del progettoà del progetto” viene usata ” viene usata

per definire le date delle consegne successiveper definire le date delle consegne successive

Page 6: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 6

Extreme Programming (XP)Extreme Programming (XP)

Il design in XPIl design in XP Segue il principio Segue il principio KISS (Keep It Simple, Stupid!)KISS (Keep It Simple, Stupid!) Incoraggia l’uso di schede Incoraggia l’uso di schede CRC CRC (si veda il capitolo 10)(si veda il capitolo 10) Per problemi di design difficoltosi, suggerisce la creazione di “Per problemi di design difficoltosi, suggerisce la creazione di “spike solutionsspike solutions”— ”—

prototipi operativi per il designprototipi operativi per il design Incoraggia il “Incoraggia il “refactoringrefactoring”— un raffinamento iterativo del design interno del ”— un raffinamento iterativo del design interno del

programmaprogramma La programmazione in XPLa programmazione in XP

Prevede la costruzione di unit test per le varie user story Prevede la costruzione di unit test per le varie user story primaprima di iniziare a di iniziare a implementare il sistema implementare il sistema

Incoraggia il “Incoraggia il “pair programmingpair programming”” Il Testing in XPIl Testing in XP

Tutti gli Tutti gli unit test unit test vengono eseguiti quotidianamente vengono eseguiti quotidianamente Gli Gli “acceptance test”“acceptance test” sono definiti dal cliente ed eseguiti per verificare le sono definiti dal cliente ed eseguiti per verificare le

funzionalitfunzionalità visibili al clienteà visibili al cliente

Page 7: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 7

Extreme Programming (XP)Extreme Programming (XP)

Page 8: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 8

Sviluppo Adattivo di SoftwareSviluppo Adattivo di Software(ASD - Adaptive Software Development)(ASD - Adaptive Software Development)

Proposto originariamente da Jim HighsmithProposto originariamente da Jim Highsmith ASD — aspetti caratteristiciASD — aspetti caratteristici

PlanningPlanning Mission-driven (guidato dalla Mission-driven (guidato dalla missionmission del del cliente)cliente)

Focus basato sulle componentiFocus basato sulle componenti I I rischirischi sono esplicitamente presi in considerazione nel sono esplicitamente presi in considerazione nel

planningplanning Enfatizza la Enfatizza la collaborazionecollaborazione per la raccolta dei requisiti per la raccolta dei requisiti Enfatizza Enfatizza l’apprendimentol’apprendimento durante tutto il processo durante tutto il processo

Page 9: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 9

Adaptive Software DevelopmentAdaptive Software Development

Page 10: Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 1 Principi di.

Roger S. Pressman, Principi di Ingegneria del software, a cura di M. Cerioli e G. Reggio, Copyright 2008 - The McGraw-Hill Compianies Srl 10

Il metodo DSDMIl metodo DSDM(Dynamic Systems Development Method)(Dynamic Systems Development Method)

Promosso e supportato dal DSDM Consortium (Promosso e supportato dal DSDM Consortium (www.www.dsdmdsdm..orgorg))

DSDM — DSDM — aspetti caratteristiciaspetti caratteristici Simile sotto molti aspetti a XP e/o ASDSimile sotto molti aspetti a XP e/o ASD Nove principi guidaNove principi guida

Il coinvolgimento attivo degli utenti Il coinvolgimento attivo degli utenti è indispensabileè indispensabile Il team DSDM deve avere l’autonomia per prendere decisioniIl team DSDM deve avere l’autonomia per prendere decisioni Ci si focalizza su frequenti consegne incrementali Ci si focalizza su frequenti consegne incrementali La rispondenzaLa rispondenza agli scopi del agli scopi del business business è il criterio essenziale per l’accettazione dei prodotti è il criterio essenziale per l’accettazione dei prodotti

intermediintermedi Lo sviluppo iterativo ed incrementale Lo sviluppo iterativo ed incrementale è necessario per convergere su una soluzione accurata è necessario per convergere su una soluzione accurata

dal punto di vista del dal punto di vista del businessbusiness Tutti i cambiamenti durante lo sviluppo devono essere reversibili Tutti i cambiamenti durante lo sviluppo devono essere reversibili I requisiti sono stabiliti ad un alto livelloI requisiti sono stabiliti ad un alto livello Il testing Il testing è integrato durante tutto il ciclo di vita del progettoè integrato durante tutto il ciclo di vita del progetto

Continua…