FDD Feature-Driven Development Manuela Xavier 05/11/2004.
-
Upload
isabela-esteves-gorjao -
Category
Documents
-
view
227 -
download
1
Transcript of FDD Feature-Driven Development Manuela Xavier 05/11/2004.
FDDFeature-Driven Development
Manuela Xavier05/11/2004
O estado atual dos projetos
Resultados pobres Planejamento pobre ou incompleto Falta de entendimento das questões de negócio
ou técnico Falha em não colocar as necessidades dos
clientes ou dos usuários finais em primeiro lugar Estouro de cronograma, e entrega de
produtos indesejáveis
Feature Driven Development - FDD
O que é? é um processo definido para produzir resultados
freqüentes, tangíveis e que funcionem combina as principais vantagens de outras abordagens
ágeis com técnicas centradas no modelo possui iterações curtas e altamente adaptativas introduzido em 1999 por Jeff DeLuca, Peter Coad e Steve
Palmer num desenvolvimento de um projeto grande em Singapura
descreve uma série de passos a seguir – desde a concepção até a implementação.
Introduzido aqui...
Expandido aqui...
Feature Driven Development - FDD
Por que usar? Clientes têm resultados rápidos e relatório do
status numa linguagem que eles entendem Gerentes de projeto têm uma visão completa e
exata do status do projeto Desenvolvedores conseguem trabalhar em novas
coisas em poucos dias e ficam mais envolvidos em análise, projeto e codificação
São blocos muito pequenos de funcionalidades São organizados em grupos de negócio
relacionados: Conjuntos de Características (atividades de
negócio) Conjuntos de Características Principais (áreas do
domínio) São expressadas na forma
<ação> <resultado> <objeto>
Característica – O que é?
Cliente
caclTotal
Venda
caclTotalestimativaEntrega
1
0..*
Área de Características Principal Gerenciamento de venda de produtos
Conjunto de Características Vender para um cliente
Características Calcular o total de vendas Calcular o total de compras de um cliente Estimar o tempo de entrega de uma venda Calcular a taxa de uma venda
Característica - exemplo
Os Papéis
Papéis principais Gerente de projeto Arquiteto chefe Especialistas no domínio Gerentes de desenvolvimento Programadores chefes Proprietários de classes
Melhores Práticas do FDD
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
1.Desenvolver um Modelo
geral2. Construir uma lista de
características 3. Planejar através de
característica4. Projetar através de
característica
5. Construir através de
característica
Os 5 processos do FDD
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)
Descrição dos Processos de FDD
Cada processo é descrito em não mais do que duas páginas de papel tamanho carta, frente-e-verso
Cada descrição do processo apresenta-se de acordo com a estrutura: Entrada, Tarefas, Verificação e Saídas (ETVX)
FDD Processo #1: Desenvolver um modelo geral
Adquirir conhecimento do domínio e construir o modelo geral Estabelecimento do “propósito de negócio” do
novo sistema Construção de um “modelo conceitual” do
sistema
FDD Processo #1- Atividades
Formar a Equipe de Modelagem
Estudo dirigido sobre o Domínio
Estudar Documentos
Desenvolver pequenos Modelos de Grupo
Desenvolver um Modelo da Equipe Refinar o Modelo Geral
Escrever Anotações do Modelo
Entrada Especialistas no domínio, programadores e arquitetos chefes
são selecionados Saídas
Modelo geral do domínio Diagrama das classes principais com alguns métodos e
atributos identificados Diagramas de seqüência de algumas funcionalidades mais
complexas (se houver) Comentário sobre o modelo
FDD Processo #1:Entradas e Saídas
FDD Processo #2:Construir lista de características
O domínio é decomposto até chegar nas características
Características são agrupadas e categorizadas Características são granuladas até ser
necessário menos de 2 semanas pro seu desenvolvimento
FDD Processo #2 - Atividades
Formar a Equipe da Lista de Características
Construir a lista de características
Entrada O processo #1 ter sido concluído com sucesso
Saídas Uma lista das áreas do domínio identificadas Para cada área, uma lista de atividades de
negócio (conjunto de características) Para cada atividade, os passos a serem realizados
(características)
FDD Processo #2:Entradas e Saídas
FDD Processo #3:Planejar através de características
Uma data de lançamento é estabelecida para o release inicial
A lista de características priorizadas é refinada
O trabalho técnico é planejado e atribuído – plano de desenvolvimento
FDD Processo #3 - Atividades
Formar a Equipe de Planejamento
Determinar a Seqüência de Desenvolvimento
Atribuir Conjuntos de Características para Programadores Chefes
Atribuir Classes para Desenvolvedores
Entrada O processo de construir a lista de características
(processo #2) ter sido concluído com sucesso Saídas
Atividades de negócio com datas de término Programadores-chefes atribuídos a atividades de
negócio A lista de classes e seus donos (desenvolvedores)
FDD Processo #3: Entradas e Saídas
FDD Processo #4:Projetar através de características
Regras e transações são identificadas O modelo da interface do usuário é esboçado Diagramas de seqüência mais detalhados são
produzidos Especialistas são consultados para descobrir
qualquer necessidade específica adicional
FDD Processo #4 - Atividades
Formar a Equipe de Características
Estudo do Domínio Estudar Documentos de Referências
Desenvolver Diagramas de Seqüência
Refinar o ModeloDescrever os prefácios de
classes e métodos
Entrada O processo de planejado (processo #3) ter sido concluído
com sucesso Saídas
Diagramas de seqüência Projetos alternativos (caso exista) O modelo de objeto com classes, métodos e atributos novos
ou atualizados A documentação da API do sistema Lista de tarefas (calendário/ To-Do)
FDD Processo #4:Entradas e Saídas
FDD Processo #5:Construir através de características
Características são construídas implementando todas as classes e métodos necessários
Testes de unidades Características são inseridas no build quando
o teste resulta em sucesso
FDD Processo #5- Atividades
Codificar
Testar Unidades Inspecionar Código
Promover à versãoatual (Build)
Ponto de integração para a funcionalidade inteira
Entrada O processo anterior ter sido concluído com
sucesso Saídas
Classe(s) e/ou método(s) que passaram na inspeção de código com sucesso
Classes inseridas no build A conclusão da funcionalidade do cliente
FDD Processo #5:Entradas e Saídas
Cada característica é uma unidade planejada de trabalho que pode ser devolvida
A soma de características entregues é igual ao status do projeto
Divulgando Resultados
Os seis marcos do FDD
Projetar pelas características Construir pelas características
Análise do domínio
Projeto Inspeção do projeto
Código Inspeção do código
Geração de build
1% 40% 3% 45% 10% 1%
Relatando resultados
KEY: Work In Progress Attention Completed Not Started
Relatando resultados
Relatando resultados
Dez 2001
Porcentagem completa:
Status Completo:Completo
Mês de conclusão
Exemplo: Conjunto de características: Fazendo avaliação de produtos – Trabalho em progresso CP-1 é o programador chefe inicial
(14) esse conjunto de características possui 14 características
Conjunto de características está 75% completado
A conclusão é para dezembro de 2001
Status Geral:
MY
Barra de progresso
Trabalhos em progresso
Atenção (ie, atrasado)
Completo
Fazendoavaliação
de produtos(14)
75%Não iniciado
CP-1
Relatando resultados
Product Sale Management (PS)
InvoicingSales
(33)
Dec 2001
CP-1
Setting upProduct
Agreements(13)
Dec 2001
SellingProducts
(22)
Nov 2001
CP-1
ShippingProducts
(19)
Dec 2001
CP-1
10%
DeliveringProducts
(10)
Dec 2001
CP-3
30%
MakingProduct
Assessments(14)
Dec 2001
75%99% 3%
Customer A/C Mgmt (CA)
EvaluatingAccount
Applications(23)
Oct 2001
95%
LoggingAccount
Transactions(30)
Nov 2001
82%
OpeningNew
Accounts(11)
Oct 2001
100%
Inventory Mgmt (IM)
EstablishingStorage Units
(26)
Nov 2001
100%
MovingContent
(19)
Nov 2001
82%
CP-3
AcceptingMovementRequests
(18)
Nov 2001
97%
CP-3
KEY: Work In Progress Attention Completed Progress Bar Not Started
CP-2 CP-1
CP-2 CP-2 CP-2 CP-3
Relatando resultados
FDD Fornece clareza Eleva o controle Facilita a comunicação – reporta resultados Status do projeto completo é determinado pelas
características entregues Características quebram o trabalho em entregas
menores e mais gerenciáveis Builds regulares É bom para os desenvolvedores, gerentes e clientes...
Conclusão
Referências
A Practical Guide to Feature-Driven Development Stephen R. Palmer, John M. Felsing
http://www.featuredrivendevelopment.com/ http://www.nebulon.com/fdd/ http://br.groups.yahoo.com/group/gufdd/ http://www.fddmanager.com/ http://fddtools.sourceforge.net/
Feature-Driven Development
Dúvidas ??