Analista de Sistemas
Feature Driven Development (Desarrollo Basado en Funcionalidades) es un proceso ágil para el desarrollo de sistemas. Fue diseñado por Peter Coad, Eric Lefebvre y Jeff DeLuca. En FDD no se hace énfasis en la obtención de los requerimientos sino en como se realizan las fases de diseño y construcción preocupándose por la calidad, por lo que incluye un monitoreo constante del proyecto.
FDDSe basa en un proceso iterativo, con iteraciones cortas que producen un software funcional que el cliente y la dirección de la empresa pueden ver y monitorear. Define claramente entregas tangibles y formas de evaluación del progreso del proyecto.
Etapas
El proceso FDD consiste de cinco pasos secuénciales durante los cuales se diseña y se construye el sistema:
Desarrollo de un modeloglobal.
Construcción de una lista de funcionalidades.
Planeación por funcionalidad.
Diseño por funcionalidad.
Construcción por funcionalidad.
http://www.step-10.com/SoftwareProcess/FeatureDrivenDevelopment/images/fdd.jpg
Desarrollo de un modelo global
Como entrada a este proceso el cliente debe estar listo para comenzar con la construcción del sistema. Además se debe tener una lista derequerimientos especificada en alguna forma, hecha por los expertos del dominio.
Cuando comienza el proceso, los expertos del dominio están al tanto de la visión, el contexto y los requerimientos del sistema a construir. Se divide el dominio global en áreas que son analizadas detalladamente y los desarrolladores construyen un diagrama de clases o de objetos por cada área. A su vez se construyeun modelo global del sistema.
Esta etapa termina con el desarrollo del diagrama de clases global del sistema, una lista de funcionalidades o características, y un modelo global del sistema a construir.
Construcción de una lista de funcionalidades
Una funcionalidad se define como un ítem útil a los ojos del cliente.
Basado en el modelo global obtenido en la etapa anterior, y en la listade funcionalidades informal, se procede a elabora una lista de funcionalidades que resuma la funcionalidad general del sistema. Dicha lista debe ser elaborada por los desarrolladores y es evaluada por el cliente.
Se divide la lista en subconjuntos según la afinidad y la dependencia de las funcionalidades. Luego la lista es finalmente revisada por los usuarios y los responsables para suvalidación y aprobación.
Planeación por funcionalidad
En este punto se procede a ordenar los conjuntos de funcionalidades conforme a su prioridad y dependencia, y se asigna a los programadores jefes.
También se debe generar un cronograma donde se especifique la duración del diseño y la construcción de cada una de las características.
Diseño por funcionalidades y Construcción porfuncionalidades
En esta etapa se selecciona un conjunto de funcionalidades de la lista y se procede a diseñar y construir la funcionalidad mediante un proceso iterativo.
Una iteración puede tomar de unos pocos días a un máximo de dos semanas. El proceso iterativo incluye inspección de diseño, codificación, pruebas unitarias, integración e inspección de código.
Para cada una de estas iteraciones en lafase de diseño se debe generar:
Diagrama de secuencia detallado
Diagrama de clases actualizado
Descripción de clases y métodos
Notas adicionales
En la fase de construcción:
Implementacion e inspeccion de metodos
Testing unitarios para cada metodo
Check in de las clases
Main Build del sistema y testing de integración.
Roles
Gerente de proyecto
Arquitecto en jefe
Gerente dedesarrollo
Programador en Jefe
Experto del dominio
Gerente del dominio
Administrador de release
Language Guru
Ingeniero de construcción
Administrador del sistema
Tester
Deployer
Escritor Técnico
Diferencias entre RUP, FDD, y XP
Tamaño de los equipos:
RUP esta pensado para proyectos y equipos grandes, en cuanto a tamaño y duración. FDD y XP se implementan mejor para proyectos...
Regístrate para leer el documento completo.