FDD ist ein modellgesteuerter Kurziteralisierungsprozess, der aus fünf grundlegenden Aktivitäten besteht. Um einen genauen Statusbericht zu erstellen und den Überblick über das Softwareentwicklungsprojekt zu behalten, werden Meilensteine definiert, die den Fortschritt bei jedem Feature markieren. Dieser Abschnitt gibt einen umfassenden Überblick über die Aktivitäten. In der Abbildung rechts ist das Metaprozessmodell für diese Aktivitäten dargestellt. Während der ersten beiden aufeinanderfolgenden Aktivitäten wird eine Gesamtform des Modells erstellt. Die letzten drei Aktivitäten werden für jedes Feature iteriert.
Gesamtmodell entwickelnBearbeiten
Das FDD-Projekt beginnt mit einem High-Level-Walkthrough des Systemumfangs und seines Kontexts. Anschließend werden in Kleingruppen detaillierte Domänenmodelle für jeden Modellierungsbereich erstellt und zur Begutachtung durch Kollegen vorgelegt. Ein oder mehrere der vorgeschlagenen Modelle werden ausgewählt, um das Modell für jeden Bereich zu werden. Die Modelle der Domänenbereiche werden nach und nach zu einem Gesamtmodell zusammengeführt.
Feature-Liste erstellenBearbeiten
Das während der anfänglichen Modellierung gesammelte Wissen wird verwendet, um eine Liste von Features zu ermitteln, indem die Domäne funktional in Themenbereiche zerlegt wird. Die Themenbereiche enthalten jeweils Geschäftsaktivitäten, und die Schritte innerhalb jeder Geschäftsaktivität bilden die Grundlage für eine kategorisierte Featureliste. Merkmale sind in diesem Zusammenhang kleine Teile von Funktionen mit Kundenwert, die in der Form “<Aktion> <Ergebnis> <Objekt>” ausgedrückt werden, zum Beispiel: “Berechne die Summe eines Verkaufs” oder “Überprüfe das Passwort eines Benutzers”. Die Fertigstellung von Funktionen sollte nicht mehr als zwei Wochen in Anspruch nehmen, andernfalls sollten sie in kleinere Teile zerlegt werden.
Planen nach FunktionenBearbeiten
Nach der Fertigstellung der Funktionsliste besteht der nächste Schritt darin, den Entwicklungsplan zu erstellen und den Programmierern die Verantwortung für die Funktionen (oder Funktionsgruppen) als Klassen zuzuweisen.
Entwerfen nach FunktionenBearbeiten
Für jede Funktion wird ein Entwurfspaket erstellt. Ein Chefprogrammierer wählt eine kleine Gruppe von Features aus, die innerhalb von zwei Wochen entwickelt werden sollen. Zusammen mit den entsprechenden Klasseneigentümern arbeitet der Chefprogrammierer detaillierte Sequenzdiagramme für jedes Feature aus und verfeinert das Gesamtmodell. Als nächstes werden die Klassen- und Methodenprotokolle geschrieben und schließlich eine Entwurfsinspektion durchgeführt.
Build by featureEdit
Nach einer erfolgreichen Entwurfsinspektion für jede Aktivität, die zur Erstellung eines Features geplant ist, entwickeln die Klassenbesitzer den Code für ihre Klassen. Nach Unit-Tests und erfolgreicher Code-Inspektion wird das fertige Feature in den Main-Build überführt.