Download Tecno2 - L`ingegneria del software - Paolo Macchi
Transcript
Processo agile (usato in open source) Nel mondo Open Source è difficile controllare persone e processi. Ecco perché sono nati i cosiddetti "processi agili" (tra i più noti, eXtreme Programming) che sono processi di tipo iterativo. Il manifesto agile (http://www.agilemanifesto.org/iso/it/ con i suoi principi http://www.agilemanifesto.org/iso/it/principles.html) recita: Manifesto per lo Sviluppo Agile di Software Stiamo scoprendo modi migliori di creare software, sviluppandolo e aiutando gli altri a fare lo stesso. Grazie a questa attività siamo arrivati a considerare importanti: Gli individui e le interazioni più che i processi e gli strumenti Il software funzionante più che la documentazione esaustiva La collaborazione col cliente più che la negoziazione dei contratti Rispondere al cambiamento più che seguire un piano Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra. I processi agili si prestano ad essere male interpretati. Semplificatori inesperti possono usarli come alibi per gettarsi subito a creare codice senza prestare attenzione ai requisiti e alla progettazione. I processi agili, in realtà, sono molto disciplinati, essendo basati su pratiche rigorose e misurabili, e sulla trasparenza degli avanzamenti lavoro e dei risultati nei confronti di tutti i partecipanti al progetto. Non a caso, la maggioranza degli autori più rilevanti del software engineering "tradizionale" guarda ai processi agili in modo positivo. Che cos’è l’Agilità? (cfr. http://cs.unibg.it/scandurra/material/PINF3_0809/processo.pdf) Reazione efficace (rapida e adattiva) ai cambiamenti Comunicazione efficace fra tutti gli stakeholder Assorbimento del cliente nel team di sviluppo Organizzazione del team che lo ponga in diretto controllo del proprio lavoro Producendo … • Consegne incrementali e frequenti di software • Ogni iterazione è un piccolo progetto a sé stante: pianificazione (planning), analisi dei requisiti, analisi, implementazione, test e documentazione. Alla fine di ogni iterazione il team deve rivalutare le priorità di progetto • • • • • • • • • I Processi agili sono : Guidati dalle descrizione del cliente di che cosa gli serve (scenario) Basati sull’assunzione che i piani hanno vita breve Sviluppano software in maniera iterativa con forte enfasi sulle attività di costruzione Producono e consegnano molteplici incrementi software Si adattano ai cambiamenti Il problema: La cooperativa “Lacoop4u” (fondata nel 2001) e' costituita da 40 soci, ognuno dei quali e' proprietario di un negozio di Ferramenta e/o Casalinghi. La cooperativa svolge la funzione di magazzino all'ingrosso per gli affiliati, cioè è in grado di ottenere i prodotti di consumo (ordinati dai soci) a prezzi favorevoli. La cooperativa vuole finalmente dotarsi di un applicativo Web in grado di raccogliere gli ordini dei soci in modo automatico. Obiettivo: L’applicativo Web deve permettere ad ogni utente (i soci) di accedere al sistema, previa autenticazione, consentendo di controllare i prodotti che il magazzino ha a disposizione. Inoltre al sistema è richiesta la possibilità di gestire le anagrafiche dei clienti, dei fornitori e di ogni prodotto presente in magazzino. L’applicativo deve essere di facile comprensione e utilizzo. Tecno2 - L’ingegneria del software – paolo macchi - ISIS Facchinetti 151005 21