FDD é um processo de curta-iteração orientado por modelos que consiste em cinco actividades básicas. Para um relatório de estado preciso e um acompanhamento do projeto de desenvolvimento do software, são definidos marcos que marcam o progresso feito em cada recurso. Esta seção fornece uma visão geral de alto nível das atividades. Na figura à direita, é exibido o modelo de meta-processo para estas atividades. Durante as duas primeiras actividades sequenciais, é estabelecida uma forma geral do modelo. As três atividades finais são iteradas para cada característica.
Desenvolver modelo geralEditar
O projeto FDD começa com uma caminhada de alto nível pelo escopo do sistema e seu contexto. Em seguida, modelos de domínio detalhados são criados para cada área de modelagem por pequenos grupos e apresentados para revisão por pares. Um ou mais dos modelos propostos são selecionados para se tornarem o modelo para cada área de domínio. Os modelos de domínio são progressivamente fundidos num modelo global.
Build feature listEdit
Knowledge reunidos durante a modelação inicial é usado para identificar uma lista de características, decompondo funcionalmente o domínio em áreas temáticas. Cada área temática contém atividades comerciais, e as etapas dentro de cada atividade comercial formam a base para uma lista de características categorizada. As funcionalidades a este respeito são pequenas peças de funções avaliadas pelo cliente expressas no formulário “<ação> <resultado> <objeto>”, por exemplo: ‘Calcular o total de uma venda’ ou ‘Validar a senha de um usuário’. Os recursos não devem levar mais de duas semanas para serem concluídos, ou então devem ser divididos em partes menores.
Plan by featureEdit
Após a lista de recursos ser completada, o próximo passo é produzir o plano de desenvolvimento e atribuir a propriedade dos recursos (ou conjuntos de recursos) como classes para programadores.
Design by featureEdit
Um pacote de design é produzido para cada recurso. Um programador chefe selecciona um pequeno grupo de funcionalidades que devem ser desenvolvidas dentro de duas semanas. Juntamente com os proprietários da classe correspondente, o programador chefe trabalha em diagramas de seqüência detalhados para cada recurso e refina o modelo geral. Em seguida, a classe e o método são escritos e finalmente uma inspeção de projeto é realizada.
Build by featureEdit
Após uma inspeção de projeto bem sucedida para cada atividade para produzir uma característica é planejada, os donos da classe desenvolvem código para suas classes. Após testes unitários e inspeção de código bem sucedida, o recurso completo é promovido para o build principal.