FDD est un processus de courte itération piloté par le modèle qui se compose de cinq activités de base. Pour un rapport d’état précis et le suivi du projet de développement logiciel, des jalons qui marquent les progrès réalisés sur chaque fonctionnalité sont définis. Cette section donne un aperçu de haut niveau des activités. Dans la figure de droite, le modèle de méta-processus pour ces activités est affiché. Au cours des deux premières activités séquentielles, une forme globale du modèle est établie. Les trois dernières activités sont itérées pour chaque fonctionnalité.
Développer le modèle globalModifier
Le projet FDD commence par une promenade de haut niveau de la portée du système et de son contexte. Ensuite, des modèles de domaine détaillés sont créés pour chaque domaine de modélisation par de petits groupes et présentés pour une révision par les pairs. Un ou plusieurs des modèles proposés sont sélectionnés pour devenir le modèle de chaque domaine. Les modèles des domaines de domaine sont progressivement fusionnés en un modèle global.
Construire une liste de fonctionnalitésModifier
Les connaissances recueillies lors de la modélisation initiale sont utilisées pour identifier une liste de fonctionnalités en décomposant fonctionnellement le domaine en domaines de sujets. Les domaines contiennent chacun des activités commerciales, et les étapes de chaque activité commerciale constituent la base d’une liste de fonctionnalités catégorisées. À cet égard, les caractéristiques sont de petits morceaux de fonctions à valeur client exprimées sous la forme “<action> <résultat> <objet>”, par exemple : “Calculer le total d’une vente” ou “Valider le mot de passe d’un utilisateur”. Les fonctionnalités ne devraient pas prendre plus de deux semaines pour être complétées, sinon elles devraient être divisées en plus petits morceaux.
Planification par fonctionnalitéEdit
Une fois la liste des fonctionnalités terminée, l’étape suivante consiste à produire le plan de développement et à attribuer la propriété des fonctionnalités (ou des ensembles de fonctionnalités) en tant que classes aux programmeurs.
Conception par fonctionnalitéEdit
Un paquet de conception est produit pour chaque fonctionnalité. Un programmeur en chef sélectionne un petit groupe de fonctionnalités qui doivent être développées en deux semaines. En collaboration avec les propriétaires de classe correspondants, le programmeur en chef élabore des diagrammes de séquence détaillés pour chaque fonctionnalité et affine le modèle global. Ensuite, les prologues des classes et des méthodes sont rédigés et, enfin, une inspection de conception est organisée.
Construire par fonctionnalitéEditer
Après une inspection de conception réussie pour chaque activité visant à produire une fonctionnalité est planifiée, les propriétaires de classe développent le code de leurs classes. Après des tests unitaires et une inspection de code réussie, la fonctionnalité terminée est promue à la construction principale.