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.
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
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
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
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
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
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)
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
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
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…
Top Related