Desenvolvimento Guiado por Funcionalidades (FDD)
20 pág.

Desenvolvimento Guiado por Funcionalidades (FDD)


DisciplinaEngenharia de Software I6.101 materiais60.563 seguidores
Pré-visualização1 página
ENGENHARIA DE SOFTWARE I
DESENVOLVIMENTO
GUIADO POR FUNCIONALIDADES (FDD)
FEATURE-DRIVEN DEVELOPMENT
EQUIPE:
ANDERSON ABREU DE MELO JOGLEN BATALHA RODRIGUES
ANTONIO QUEIROZ NETO RAFAEL PINCEGHER SIMÕES
EULER DE AZEVEDO COSTA
FUNDAMENTAÇÃO TEÓRICA
Definição e Características
DEFINIÇÃO
\u2022 Antes do manifesto ágil, existiam algumas metodologias ágeis, dentre a quais
o FDD \u201cFeature Driven Developement\u201d era uma delas. Surgindo oficialmente
na república de Singapura, cidade-estado insular localizada na ponta sul da
Península Malaia entre os anos de 1997 e 1999, foi criada pelo australiano Jeff
De Luca, tendo como base o método Coald (criado pelo americano Peter
Coald). Jeff De Luca também se baseou nos Processos Interativos e Lean que o
mesmo já utilizava.
CARACTERÍSTICAS
\u2022 O FDD tem como característica a busca de um requisito funcional do sistema,
sendo pratico para trabalhar com projetos iniciais e projetos com codificações
já existentes, caracterizando-se como um processo de desenvolvimento de
software iterativo e incremental, que segue os princípios do manifesto ágil. A
ideia é desenvolver os recursos de alto nível, o escopo e o modelo de objeto
de domínio, usando-o para planejar, projetar, desenvolver e testar os
requisitos e tarefas específicos com base no recurso abrangente ao qual eles
pertencem.
O FOCO SEMPRE FOI O DE DESENVOLVER 
UMA METODOLOGIA DE SOFTWARE ÁGIL.
\u2022 Apesar de existirem atividades relacionadas a metodologia de gerenciamento
de projetos de software, o FDD não se encaixa nesse padrão, ele tem como
potencial foco cobrir os processos da engenharia de software, e não do
gerenciamento. Assim, ele estaria mais próximo do XP do que do SCRUM.
BENEFÍCIOS / DESVANTAGENS
\u2022 Para ver como os requisitos podem ser organizados por área funcional, eles
devem ser bem compreendidos e, assim, um design é criado. A partir do
design é derivada uma lista de recursos em que ponto os ciclos de
implementação iterativa podem começar. Consequentemente, e como com
alguns outros métodos, as duas primeiras fases do processo de FDD não são
iterativas, mas ocorrem apenas uma vez, o que restringe a parte iterativa do
projeto e, portanto, pode-se argumentar que a agilidade do projeto geral é
reduzida.
BENEFÍCIOS / DESVANTAGENS
\u2022 Ao mesmo tempo, há alguns benefícios reais para essa abordagem. Por
exemplo, com cada área funcional escrita de uma só vez, há menos
necessidade de refatoração do que com um processo em que o mesmo código
pode ser repetidamente alterado. Não é de surpreender que menos
refatoração seja um dos benefícios dos métodos tradicionais de
desenvolvimento, de modo que, em certo sentido, pode- se argumentar que a
FDD combina abordagens tradicionais e ágeis .
PRÁTICAS E PAPÉIS
Uma visão geral
PRÁTICAS E PAPÉIS 
CICLO DE VIDA
Especificações de cada fase
CICLO DE VIDA
\u2022 O FDD tem duas fases basicamente a fase de Concepção e Planejamento e a
fase de Construção.
\u2022 Na fase concepção e planejamento acontece a triagem de requisitos
onde ainda pode ser usada as técnicas tradicionais de requisitos mas focando
sempre nas funcionalidades
\u2022 Na fase de construção existe um detalhamento por funcionalidade, nesse
ponto que será especificadomais o que deve ser feito.
CICLO DE VIDA
\u2022 A Concepção e Planejamento atua inicialmente com o objetivo de
proporcionar ummelhor entendimento inicial e abrangente do corpo.
\u2022 Já na fase de Construção, o foco será na maneira iterativa do desenvolvimento
e também na entrega das funcionalidades do programa.
OS PROCESSOS
Os cinco processos são bem definidos e integrados
\u2022 DMA (Desenvolver um Modelo Abrangente): o produto é um modelo de
objetos de alto nível, que conduzirá a equipe durante os ciclos de construção;
Um processo que abrange todo o projeto, sendo, portanto executado apenas
uma vez no inicio do mesmo
\u2022 CLF (Construir a Lista de Funcionalidades): decomposição funcional do modelo
do domínio. Também se trata de um processo executado apenas no inicio do
projeto.
OS PROCESSOS 
\u2022 PPF (Planejar por Funcionalidade): o resultado é um plano de
desenvolvimento. Também sendo um processo abrangente, é executado
somente uma vez no inicio do projeto.
\u2022 DPF (Detalhar por Funcionalidade): criação de um modelo de domínio mais
detalhado. Esse processo, e o processo seguinte, são executados uma vez para
cada funcionalidade.
OS PROCESSOS 
\u2022 CPF (Construir por Funcionalidade): codificação, testes e inspeções,
resultando em um incremento do produto integrado ao repositório principal
de código. Este processo também será executado uma vez para cada
funcionalidade, como o anterior. São implementadas as classe, métodos e o
detalhamento realizado nos processos anteriores.
OS PROCESSOS 
OS PROCESSOS 
DESENVOLVER UM 
MODELO ABRANGENTE
CONSTRUIR A LISTA DE 
FUNCIONALIDADES
PLANEJAR POR 
FUNCIONALIDADE
DETALHAR POR 
FUNCIONALIDADE
CONSTRUIR POR 
FUNCIONALIDADE
MODELO DE OBJETO 
(MAIS FORMAS DO QUE 
CONTEÚDO)
UMA LISTA DE 
CARACTERÍSTICAS 
CATEGORIZADA
UM PLANO DE 
DESENVOLVIMENTO
UM PACOTE DE PROJETOS 
(SEQUÊNCIAS)
UMA FUNÇÃO DO CLIENTE 
COMPLETADA
MAIS CONTEÚDO DO QUE FORMA
CONCLUSÃO DA EQUIPE E 
REFERÊNCIAS
Conclusão geral dos integrantes da equipe e lista de fontes de 
pesquisa para o desenvolvimento do trabalho proposto
\u2022 Nas pesquisas em que a equipe desenvolveu, chegou-se a conclusão de que as
práticas do FDD podem conflitar-se com o método XP, levando em
consideração o tratamento do código por cada uma delas, pois as mesmas
possuem características que são adequadas à necessidade de cada empresa.
Abordando o foco principal em ambas as metodologias, temos então o
desenvolvimento incremental, a constante comunicação com o cliente, além
da integração continua. Além disso, o FDD pode atuar em conjunto com
demais metodologias, como o SCRUM, encaixando-se perfeitamente como
metodologia de engenharia e projeto ágil de software.
CONCLUSÃO DA EQUIPE
\u2022 http://www.pcoad.com/download/bookpdfs/jmcuch06.pdf
\u2022 http://www.inf.vtt.fi/pdf/publications/2002/P478.pdf
\u2022 http://www.vtt.fi/ele/uutta/electra/agile.pdf
\u2022 http://www.nebulon.com/articles/fdd/download/fddoverview.pdf
\u2022 http://www.leandromtr.com/gestao/metodologia-agil-fdd/
\u2022 https://pt.wikipedia.org/wiki/Feature_Driven_Development
\u2022 http://agilemodeling.com/essays/fdd.htm
\u2022 http://homes.dcc.ufba.br/~mauricio052/Engenharia%20de%20Software%20I/FD
D/FDD-Processos.pdf
REFERÊNCIAS