fdd feature-driven development manuela xavier 05/11/2004

37
FDD Feature-Driven Development Manuela Xavier 05/11/2004

Upload: isabela-esteves-gorjao

Post on 07-Apr-2016

226 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: FDD Feature-Driven Development Manuela Xavier 05/11/2004

FDDFeature-Driven Development

Manuela Xavier05/11/2004

Page 2: FDD Feature-Driven Development Manuela Xavier 05/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

Page 3: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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.

Page 4: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Introduzido aqui...

Page 5: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Expandido aqui...

Page 6: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 7: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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 é?

Page 8: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 9: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Os Papéis

Papéis principais Gerente de projeto Arquiteto chefe Especialistas no domínio Gerentes de desenvolvimento Programadores chefes Proprietários de classes

Page 10: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 11: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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)

Page 12: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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)

Page 13: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 14: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 15: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 16: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 17: FDD Feature-Driven Development Manuela Xavier 05/11/2004

FDD Processo #2 - Atividades

Formar a Equipe da Lista de Características

Construir a lista de características

Page 18: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 19: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 20: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 21: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 22: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 23: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 24: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 25: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 26: FDD Feature-Driven Development Manuela Xavier 05/11/2004

FDD Processo #5- Atividades

Codificar

Testar Unidades Inspecionar Código

Promover à versãoatual (Build)

Ponto de integração para a funcionalidade inteira

Page 27: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 28: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 29: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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%

Page 30: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Relatando resultados

KEY: Work In Progress Attention Completed Not Started

Page 31: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Relatando resultados

Page 32: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 33: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 34: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Relatando resultados

Page 35: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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

Page 36: FDD Feature-Driven Development Manuela Xavier 05/11/2004

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/

Page 37: FDD Feature-Driven Development Manuela Xavier 05/11/2004

Feature-Driven Development

Dúvidas ??