Feature Driven Development: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m correzioni automatiche; |
||
Riga 3:
Come s'intuisce dal nome è una forma di sviluppo ''guidata dalle funzionalità'' richieste e necessarie del programma. Sono disponibili diversi strumenti di supporto free, alcuni anche [[open source]], essendo strettamente basata sull'utilizzo del [[Unified Modeling Language|UML]] e naturalmente sulla versione ''colorata'' del UML ideata dagli autori. Inoltre esiste una community molto attiva che si occupa di questa metodologia e degli strumenti utili per automatizzarne l'utilizzo, sviluppandoli e confrontandosi.
È forse il miglior compromesso e la miglior soluzione agile possibile, ma è molto meno conosciuta di [[Extreme Programming]], pur essendo indicata
==Le fasi di sviluppo==
Il progetto viene diviso in cinque fasi, dette processi:
* '''sviluppare un modello generale'''
** ''criteri
** ''attività'': il project manager deve formare il team di modellazione; il team di modellazione deve offrire una panoramica del dominio del problema, preparare i documenti funzionali e, diviso in piccoli gruppi, sviluppare il modello; il capo-architetto deve rifinire il modello generale ad oggetti insieme al team di modellazione e scrivere le note al modello insieme ai capi-programmatori;
** ''verifica'': il team di modellazione deve effettuare un accertamento interno ed esterno con riferimento agli esperti di business ed ai futuri utenti;
** ''criteri
* '''costruire una lista di funzionalità'''
** ''criteri
** ''attività'': il project manager deve formare il team della lista delle funzionalità che deve comprendere i capi-programmatori del team di modellazione; il team della lista delle funzionalità deve definire la lista delle funzionalità in termini di azione-risultato-oggetto;
** ''verifica'': il team della lista delle funzionalità deve effettuare un accertamento interno ed esterno con riferimento agli esperti di business ed ai futuri utenti;
** ''criteri
* '''pianificare per funzionalità'''
** ''criteri
** ''attività'': il project manager deve formare il team di progettazione che comprende capi-programmatori e manager dello sviluppo; il team di progettazione deve definire la sequenza di sviluppo, assegnare le attività di business ai capi-programmatori ed assegnare le classi agli sviluppatori;
** ''verifica'': il team di progettazione deve effettuare
** ''criteri
* '''progettare per funzionalità'''
** ''criteri
** ''attività'': ogni capo-programmatore forma il team delle funzionalità; ogni esperto del problema definisce la strada per affrontare il problema e risolverlo; il team delle funzionalità studia i documenti dei requisiti delle proprie funzionalità; il team di progettazione sviluppa i diagrammi di sequenza; il capo-programmatore raffina il modello ad oggetti per definire se scrivere o modificare classi, metodi, attributi; il team delle funzionalità scrive le classi e gli header dei metodi;
** ''verifica'': il team delle funzionalità ispeziona il progetto in tutti i suoi aspetti funzionali e temporali;
** ''criteri
* '''sviluppare per funzionalità'''
** ''criteri
** ''attività'': il team delle funzionalità implementa classi e metodi, ispeziona il codice ed effettua i test unitari; il capo-programmatore decide (dopo i test unitari) insieme al team delle funzionalità quali classi siano ''promuovibili'' come utili alla costruzione del progetto in riguardo alle funzionalità richieste;
** ''verifica'': il capo-programmatore sovrintende affinché siano completate effettivamente in tutti i punti dal team delle funzionalità l'ispezione dei codici ed la soddisfazione dei test unitari;
** ''criteri
In pratica si può ridurre l'iterazione al semplice ciclo composto dai soli ultimi due passi: ''definire una lista di funzionalità'' / ''sviluppare per funzionalità''. Il processo critico è il primo, ossia ''sviluppare un modello generale'', ed è questo deve dare in uscita la documentazione [[Unified Modeling Language|UML]]. Questi diagrammi devono essere impostati in maniera tale da ottenere una frammentazione (una granularità)
Ogni iterazione è composta da sei fasi:
Riga 41:
* Development (si implementa il codice previsto con i relativi unit test);
* Code review meeting (la revisione del codice viene effettuata da tutti i programmatori);
* Release meeting (le funzionalità implementate vengono
==Il processo di sviluppo==
|