1. FDD
Feature Driven Development
Angelo Bigotto Godarelli
Camila Garcia
Jales
2016
Trabalho apresentado a disciplina de Engenharia de Software para Web
da Faculdade de Tecnologia de Jales
Orientador: Prof. Fabiana P. Masson Caravieri
3. INTRODUÇÃO
3
O FDD nasceu no ano de 1997, em um grande projeto utilizando a
linguagem Java para o United Overseas Bank, em pequeno país do sudeste
asiático, chamado Singapura.
É uma metodologia ágil na engenharia de software, elaborado com o
intuito de entrega frequente de software-funcionando.
Busca o desenvolvimento por funcionalidade, ou seja, por um requisito
funcional do sistema.
4. CARACTERÍSTICAS
- Proporciona a todos os envolvidos interação.
- Possui um controle fácil e inteligente;
- É desenvolvida através de uma Funcionalidade, trazendo
<ação> <resultado> <objeto> ;
- Fornece dentro dos primeiros 10% de um projeto, uma base
se o plano e a estimativa são sólidos;
- Rastreabilidade e relatórios com incrível precisão;
- -É uma metodologia bastante objetiva, possuindo apenas: 2
Fases e 5 Processos;
4
5. FEATURES
• Features são características ou Funcionalidades que representam algum valor para o cliente
e devem ser expressas da seguinte forma:
<action><result><object>
• Exemplo:
Ação Resultado Objeto
• Calcular o total de uma venda.
5
6. PAPÉIS
• Gerente de Projetos
• Arquiteto Chefe
• Gerente de Desenvolvimento
• Programadores Chefes
• Donos de Classes
• Gerente de Versão
• “Guru” da Linguagem
• Engenheiro Construtor
• Criador de Ferramentas
• Implantador
• Escritor Chefe
6
8. PRÁTICAS
• Modelagem do objeto do domínio;
• Desenvolver por características;
• Propriedade individual de classes;
• Equipes de características;
• Inspeções;
• Construção de builds regulares;
• Gerência de configuração;
• Comunicação dos resultados;
8
9. OS CINCO PROCESSOS
9
Modelo de Objeto
(mais formas do que
conteúdo)
Uma lista de
características
categorizada
Um plano de
desenvolvimento
Um pacote de
projeto (seqüências)
Uma função do
cliente completada
(mais conteúdo do que forma)
1.Desenvolver
um Modelo
geral
2. Construir
uma lista de
características
3. Planejar
através de
característica
4. Projetar
através de
característica
5. Construir
através de
característica
10. • Processo 1
• DMA- Desenvolver um Modelo Abrangente
Adquirir conhecimento do domínio e desenvolver um modelo
geral
Estabelecer o “propósito do negócio” do novo sistema.
Construção de um “modelo conceitual” do sistema.
10
12. Saídas
Modelo Geral do Domínio;
Diagrama das Classes principais com alguns métodos e
atributos identificados;
Diagramas de Sequência de algumas funcionalidades mais
complexas (se houver);
Comentário sobre o modelo;
12
13. PROCESSO 2
CLF- Construir uma Lista de Funcionalidades
O domínio é decomposto até chegar nas funcionalidades;
As funcionalidades são agrupadas e categorizadas;
As funcionalidades são granuladas até ser necessário menos de 2 semanas para seu
desenvolvimento;
13
14. • Entradas
• O Processo 1 ter sido concluído com sucesso.
• Atividades :
14
15. SAÍDAS
Uma lista de áreas do domínio identificadas;
Para cada área, uma lista de atividades de negócio (conjunto
de funcionalidades);
Para cada atividade são definidos os passos a serem
realizados(Funcionalidades);
15
16. PROCESSO 3
•PPF- Planejar Por Funcionalidade
Uma data de lançamento é estabelecida para o release inicial;
A lista de funcionalidades priorizadas é refinada;
O Trabalho técnico é planejado e atribuído;
16
17. • Entradas
• O Processo 2 ter sido concluído com sucesso.
• Atividades
•
17
18. SAÍDAS
Atividades de negócio com data de término;
Programadores chefes atribuídos a atividades de
negócio;
A lista de classes e seus donos (desenvolvedores);
18
19. PROCESSO 4
•DPF- Detalhar por Funcionalidade
Regras e transações são identificadas;
O modelo da interface do usuário é esboçado;
Diagramas de sequência mais detalhados são produzidos;
Especialistas são consultados para descobrir qualquer necessidade
específica adicional;
19
20. • Entradas
• O Processo 3 ter sido concluído com sucesso.
• Atividades
20
21. SAÍDAS
Diagramas de sequência;
Projetos alternativos (caso exista);
O modelo de objeto com classes, métodos e atributos novos
ou atualizados ;
Lista de tarefas(calendário/o que fazer)
21
22. PROCESSO 5
• CPF- Construir por Funcionalidade
As funcionalidades são construídas implementando todas as
classes e métodos necessários;
Testes de unidades;
As funcionalidades são inseridas no build quando o teste
resulta em sucesso;
22
23. • Entradas
• O processo anterior (Processo 4) ter sido concluído com sucesso.
• Atividades
23
25. RESULTADOS
• Cada característica é uma unidade planejada
de trabalho que pode ser devolvida
• A soma de características entregues é igual ao
status do projeto
25
28. Referências
SBROCO. J.H., MACEDO P.C., Metodologias Ágeis Sob medida, pág 99,100,101.
FIGUEIREDO, A.M. FDD em uma casca de banana. 2007. Disponível em:
<http://homes.dcc.ufba.br/~mauricio052/Engenharia%20de%20Software%20I/FDD/FDD%20Em
%20Uma%20Casca%20De%20Banana.pdf >. Acesso em: 26 Ago. 2016.
SIQUEIRA,F.L. Métodos Ágeis. Disponível em:
<http://www.levysiqueira.com.br/artigos/metodos_ageis.pdf> Acesso em 04 Set. 2016.
MARQUES A. N. Responsabilidade empresarial: Metodologias ágeis de desenvolvimento:
Processos e Comparações FACULDADE DE TECNOLOGIA DE SÃO PAULO –SÃO PAULO 2012,
Monografia submetida como exigência parcial para a obtenção do Grau de Tecnólogo em
Processamento de Dados.
Retamal A.M. Feature-Driven Development – Maio/2008. Disponível em :
<http://heptagon.com.br/files/FDD-Processos.pdf> Acessado 7 Set 2016.
Magno A. Apresentando...FDD! 29 Set 2006. Disponível em:
<http://amagno.blogspot.com.br/2006/09/apresentandofdd.html> Acessado 7 Set 2016
28