FDD er en modelstyret kortiterings-proces, der består af fem grundlæggende aktiviteter. For at sikre nøjagtig tilstandsrapportering og holde styr på softwareudviklingsprojektet defineres milepæle, der markerer de fremskridt, der gøres på hver funktion. Dette afsnit giver en oversigt på højt niveau over aktiviteterne. I figuren til højre vises meta-procesmodellen for disse aktiviteter. I løbet af de to første sekventielle aktiviteter fastlægges en overordnet modelform. De sidste tre aktiviteter gentages for hver funktion.
Udvikle overordnet modelRediger
FDD-projektet starter med en gennemgang på højt niveau af systemets omfang og dets kontekst. Dernæst oprettes detaljerede domænemodeller for hvert modelområde af små grupper og præsenteres til peer review. En eller flere af de foreslåede modeller udvælges til at blive modellen for hvert domæneområde. Modellerne for domæneområderne smeltes gradvist sammen til en samlet model.
Opbygning af funktionslisteRediger
Den viden, der er indsamlet under den indledende modellering, bruges til at identificere en liste over funktioner ved at dekomponere domænet funktionelt i emneområder. Emneområderne indeholder hver især forretningsaktiviteter, og trinene inden for hver forretningsaktivitet danner grundlaget for en kategoriseret funktionsliste. Funktioner i denne henseende er små stykker af klientvurderede funktioner udtrykt i formen “<action> <result> <object>”, f.eks. “Beregn summen af et salg” eller “Validér en brugers adgangskode”. Funktioner bør ikke tage mere end to uger at færdiggøre, ellers bør de opdeles i mindre stykker.
Planlæg efter funktionRediger
Når funktionslisten er færdig, er det næste skridt at udarbejde udviklingsplanen og tildele ejerskab af funktioner (eller funktionssæt) som klasser til programmører.
Design efter funktionRediger
Der udarbejdes en designpakke for hver funktion. En chefprogrammør udvælger en lille gruppe funktioner, som skal udvikles inden for to uger. Sammen med de tilsvarende klasseejere udarbejder chefprogrammøren detaljerede sekvensdiagrammer for hver funktion og forfiner den overordnede model. Dernæst skrives klasse- og metodeprologerne, og til sidst afholdes en designinspektion.
Byg efter funktionRediger
Når en vellykket designinspektion for hver aktivitet til produktion af en funktion er planlagt, udvikler klasseejerne kode til deres klasser. Efter enhedstest og vellykket kodeinspektion forfremmes den færdige funktion til hovedbygningen.