FDD es un proceso de iteración corto dirigido por modelos que consta de cinco actividades básicas. Para informar con exactitud del estado y hacer un seguimiento del proyecto de desarrollo de software, se definen hitos que marcan el progreso realizado en cada característica. Esta sección ofrece un resumen de alto nivel de las actividades. En la figura de la derecha se muestra el modelo de metaproceso de estas actividades. Durante las dos primeras actividades secuenciales, se establece la forma general del modelo. Las tres actividades finales se iteran para cada característica.
Desarrollar modelo globalEditar
El proyecto FDD comienza con un recorrido de alto nivel del alcance del sistema y su contexto. A continuación, se crean modelos de dominio detallados para cada área de modelado por parte de pequeños grupos y se presentan para su revisión por pares. Se seleccionan uno o varios de los modelos propuestos para convertirlos en el modelo de cada área de dominio. Los modelos de áreas de dominio se fusionan progresivamente en un modelo global.
Construir lista de característicasEditar
Los conocimientos recogidos durante el modelado inicial se utilizan para identificar una lista de características descomponiendo funcionalmente el dominio en áreas temáticas. Las áreas temáticas contienen cada una actividades de negocio, y los pasos dentro de cada actividad de negocio forman la base para una lista de características categorizadas. En este sentido, las características son pequeños fragmentos de funciones valoradas por el cliente que se expresan en la forma “<acción> <resultado> <objeto>”, por ejemplo: ‘Calcular el total de una venta’ o ‘Validar la contraseña de un usuario’. Las características no deberían tardar más de dos semanas en completarse, de lo contrario deberían dividirse en piezas más pequeñas.
Planificar por característicaEditar
Una vez completada la lista de características, el siguiente paso es producir el plan de desarrollo y asignar la propiedad de las características (o conjuntos de características) como clases a los programadores.
Diseñar por característicaEditar
Se produce un paquete de diseño para cada característica. Un programador jefe selecciona un pequeño grupo de características que se van a desarrollar en dos semanas. Junto con los propietarios de las clases correspondientes, el programador jefe elabora diagramas de secuencia detallados para cada característica y perfecciona el modelo general. A continuación, se escriben los prólogos de las clases y los métodos y, finalmente, se realiza una inspección de diseño.
Construir por featureEdit
Después de planificar una inspección de diseño exitosa para cada actividad para producir una feature, los propietarios de las clases desarrollan código para sus clases. Después de las pruebas unitarias y la inspección de código exitosa, la característica completada se promueve a la construcción principal.