Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD (Feature-driven development), FDD (Feature-Driven Development), 2 fase…
FDD (Feature-driven development)
1- fase Desenvolver um Modelo Abrangente:
Desenvolver o Modelo Inicial: :check:
Neste processo, a equipe trabalha para criar um modelo inicial do sistema, que serve como uma representação abstrata das funcionalidades e estrutura do software.
Isso geralmente envolve identificar as principais classes do sistema, suas interações e dependências iniciais.
Identificar as Funcionalidades Principais: :check:
Este processo se concentra em identificar as funcionalidades principais ou características do sistema que precisam ser desenvolvidas.
As funcionalidades são derivadas dos requisitos do usuário e das necessidades do negócio.
Definir as Funcionalidades e seus Detalhes: :check:
Aqui, as funcionalidades identificadas são detalhadas em termos de comportamento esperado, entradas e saídas, requisitos de dados e qualquer lógica de negócios associada.
Isso pode ser feito por meio de técnicas como modelagem de casos de uso, diagramas de sequência, ou qualquer outra técnica de modelagem relevante.
Priorização das Funcionalidades: :check:
Após a identificação e definição das funcionalidades, elas são priorizadas com base na sua importância para os usuários e no valor agregado ao sistema.
A priorização ajuda a equipe a focar seus esforços nas funcionalidades mais críticas e a planejar o desenvolvimento de acordo com as necessidades do cliente.
Estabelecer o Ambiente de Desenvolvimento: :check:
Este processo envolve a configuração do ambiente de desenvolvimento necessário para apoiar o trabalho da equipe.
Isso pode incluir a configuração de ferramentas de desenvolvimento, sistemas de controle de versão, ambientes de teste, entre outros.
Definir Papéis e Responsabilidades: :check:
Durante esta fase, os papéis e responsabilidades dentro da equipe são definidos e atribuídos.
Isso garante que cada membro da equipe saiba o que é esperado dele e como ele contribuirá para o sucesso do projeto.
sses processos na fase DMA são fundamentais para estabelecer uma base sólida para o desenvolvimento do software dentro do FDD. Eles ajudam a equipe a compreender as necessidades do sistema, priorizar o trabalho e estabelecer uma estrutura para o desenvolvimento futuro.
2 CLF - (Construir e Lista de Funcionalidades)
Identificar Stakeholders: :check:
Identifique as pessoas interessadas no projeto.
Coletar Requisitos: :check:
Reúna as necessidades do sistema por meio de entrevistas e análises.
Priorizar Requisitos: :check:
Determine quais requisitos são mais importantes para o sistema.
Descompor Requisitos em Funcionalidades: :check:
Divida os requisitos em funcionalidades específicas.
Validar a Lista de Funcionalidades: :check:
Verifique se as funcionalidades capturam todas as necessidades dos stakeholders.
Organizar Funcionalidades por Grupos: :check:
Agrupe as funcionalidades de acordo com sua natureza ou interdependência.
Refinar e Iterar: :check:
Ajuste e atualize a lista de funcionalidades conforme o projeto avança.
3- PPF (planejar por funcionalidade)
Entender os Requisitos: :check:
Compreenda as necessidades do cliente e os objetivos do projeto.
Planejar as Funcionalidades: :check:
Liste as funcionalidades necessárias para atender aos requisitos.
Priorizar Funcionalidades:
Determine quais funcionalidades são mais importantes e devem ser desenvolvidas primeiro.
Agendar Funcionalidades: :check:
Estabeleça prazos para a implementação de cada funcionalidade.
Atribuir Recursos: :check:
Designe membros da equipe para trabalhar em cada funcionalidade.
Desenvolver Funcionalidades: :check:
Implemente as funcionalidades de acordo com o planejado.
Testar Funcionalidades: :check:
Verifique se as funcionalidades estão funcionando conforme o esperado.
Entregar Funcionalidades: :check:
Disponibilize as funcionalidades concluídas para os usuários.
Revisar e Ajustar: :check:
Obtenha feedback dos usuários e faça ajustes conforme necessário.
1 Fase Concepção e Planejamento :green_cross:
2 Fase (Construção)
DPF(Detalhar por Funcionalidades)
Definir Objetivos: :check:
Estabeleça os objetivos claros e mensuráveis do projeto.
Planejar Iterações: :check:
Divida o projeto em iterações gerenciáveis.
Focar em Funcionalidades: :check:
Identifique e priorize as funcionalidades a serem desenvolvidas em cada iteração.
Desenvolver Funcionalidades: :check:
Implemente as funcionalidades planejadas dentro de cada iteração.
Inspeção Regular: :check:
Realize inspeções periódicas para revisar o progresso e garantir a qualidade.
Integrar Continuamente: :check:
Integre novas funcionalidades ao sistema principal de forma regular.
Testar e Qualidade: :check:
Realize testes para garantir que as funcionalidades estejam funcionando corretamente e atendendo aos requisitos.
Entregar Incrementalmente:
Entregue versões incrementais do software com funcionalidades adicionadas após cada iteração.
Refinar Constantemente: :check:
Aprenda com cada iteração e ajuste o plano e as prioridades conforme necessário.
CPF(Construir por funcionalidades)
Coletar Requisitos: :check:
Entenda as necessidades e expectativas do cliente.
Planejar Funcionalidades: :check:
Liste e organize as funcionalidades com base nos requisitos coletados.
Focar nas Prioridades: :check:
Priorize as funcionalidades com maior valor para o cliente.
Desenvolver Funcionalidades: :check:
Implemente as funcionalidades de acordo com as prioridades estabelecidas.
Testar Funcionalidades: :check:
Verifique se as funcionalidades atendem aos requisitos e estão livres de defeitos.
Entregar ao Cliente: :check:
Disponibilize as funcionalidades concluídas para o cliente.
Obter Feedback: :check:
Receba feedback do cliente sobre as funcionalidades entregues.
Revisar e Ajustar: :check:
Faça ajustes com base no feedback do cliente para melhorar o produto.
FDD (Feature-Driven Development)
Padrão ETVX:
Entrada:
Especifica e define os critérios de entradas para as etapas.
Tarefas:
E composto por uma lista com as tarefas que deverão ser realizadas.
Verificação:
Especifica tipos de avaliação (internas e internas) e inspeções de projetos e códigos.
Saida:
Especifica os critérios de saída, definindo os produtos tangíveis.
Vantagens e desvantagens do (FDD)
Vantagens do FDD: :check:
Visibilidade do progresso: As entregas frequentes proporcionam uma visão clara do andamento do projeto e permitem ajustes rápidos.
Flexibilidade: Capacidade de adaptação a mudanças nos requisitos do cliente ao longo do processo de desenvolvimento.
Foco nas funcionalidades: Prioriza o desenvolvimento de funcionalidades essenciais, garantindo que o produto atenda às necessidades do cliente.
Redução de riscos: Identifica e aborda riscos precocemente, mitigando potenciais problemas durante o desenvolvimento.
Envolvimento do cliente: O cliente está envolvido desde o início, o que leva a uma maior satisfação do cliente e a um produto final mais alinhado com suas expectativas.
Entrega contínua: Possibilita entregas incrementais e frequentes, permitindo que partes do produto sejam lançadas mais rapidamente.
Desvantagens do FDD:
Requisitos detalhados: Pode exigir uma documentação detalhada dos requisitos iniciais para funcionar efetivamente.
Dependência da equipe: O sucesso do FDD depende da colaboração e da competência da equipe de desenvolvimento.
Custos de implementação: Pode exigir investimento inicial em treinamento e infraestrutura para adotar e implementar o FDD.
Mudanças de escopo: Mudanças frequentes nos requisitos podem causar interrupções e atrasos no desenvolvimento.
Não adequado para todos os projetos: Pode não ser apropriado para projetos muito pequenos ou muito grandes, ou para projetos onde os requisitos são altamente voláteis.
Diferença entre FDD e Extreme Programing
Desenvolvimento Dirigido por Funcionalidades (FDD):
Ênfase nas funcionalidades: O FDD se concentra na entrega de funcionalidades específicas em iterações curtas. O desenvolvimento é orientado pela identificação e implementação de funcionalidades específicas do sistema.
Modelagem orientada a objetos: O FDD usa modelagem orientada a objetos para representar as funcionalidades do sistema, com ênfase em identificar classes de objetos e suas interações.
Processo formalizado: O FDD possui um processo formalizado com cinco etapas principais: Desenvolvimento de um Modelo de Domínio, Construção de uma Lista de Funcionalidades, Planejamento por Funcionalidade, Design por Funcionalidade e Construção por Funcionalidade.
Foco na gestão de projetos: O FDD coloca uma ênfase considerável na gestão de projetos, com uma estrutura clara para o desenvolvimento, atribuição de papéis específicos e monitoramento do progresso.
Programação Extrema (Extreme Programming - XP):
Ênfase na qualidade do código: XP enfatiza a qualidade do código através de práticas como desenvolvimento orientado a testes (TDD), integração contínua e refatoração constante.
Desenvolvimento iterativo e incremental: Assim como o FDD, o XP também segue uma abordagem iterativa e incremental, mas com um foco mais forte na melhoria contínua do código e no feedback do cliente.
Comunicação e colaboração: XP enfatiza a comunicação e a colaboração próximas entre os membros da equipe de desenvolvimento e os clientes. Isso é facilitado por práticas como programação em pares e cliente presente.
Práticas específicas: XP inclui práticas específicas, como desenvolvimento orientado a testes, integração contínua, refatoração, programação em pares, cliente presente e design simples.
enquanto o FDD se concentra na entrega de funcionalidades específicas em iterações curtas, com uma ênfase na gestão de projetos e modelagem orientada a objetos, o XP coloca uma forte ênfase na qualidade do código, comunicação e colaboração próximas, e inclui uma série de práticas específicas para alcançar esses objetivos. Ambos são métodos ágeis de desenvolvimento de software, mas com abordagens distintas.
Diferença de FDD e Rup.
Desenvolvimento Dirigido por Funcionalidades (FDD):
Abordagem iterativa e incremental centrada em funcionalidades: O FDD enfatiza a entrega de funcionalidades específicas do sistema em iterações curtas e incrementais. O desenvolvimento é orientado pela identificação e implementação dessas funcionalidades.
Modelagem orientada a objetos: O FDD usa modelagem orientada a objetos para representar as funcionalidades do sistema, com foco na identificação de classes de objetos e suas interações.
Processo simplificado: O FDD possui um processo simplificado, com cinco etapas principais: Desenvolvimento de um Modelo de Domínio, Construção de uma Lista de Funcionalidades, Planejamento por Funcionalidade, Design por Funcionalidade e Construção por Funcionalidade.
Ênfase na gestão de projetos: O FDD coloca uma ênfase considerável na gestão de projetos, com uma estrutura clara para o desenvolvimento, atribuição de papéis específicos e monitoramento do progresso.
Processo Unificado Rational (RUP):
Abordagem mais abrangente: O RUP é um processo de desenvolvimento de software mais abrangente e formal, que inclui uma ampla gama de práticas e disciplinas, como modelagem de negócios, análise e design, implementação, teste e gerenciamento de configuração.
Arquitetura centrada: O RUP enfatiza uma abordagem centrada na arquitetura, onde a arquitetura do sistema é projetada e documentada desde o início do processo de desenvolvimento.
Modelagem extensiva: O RUP utiliza uma variedade de técnicas de modelagem para representar diferentes aspectos do sistema, incluindo modelos de caso de uso, modelos de classes, diagramas de sequência, entre outros.
Adaptação flexível: O RUP é altamente adaptável e pode ser personalizado para atender às necessidades específicas de um projeto ou organização. Ele fornece uma estrutura flexível que pode ser ajustada conforme necessário.
enquanto o FDD é uma abordagem mais simples e focada na entrega de funcionalidades específicas em iterações curtas, o RUP é um processo mais abrangente e formal, com uma ênfase na arquitetura, modelagem extensiva e adaptação flexível. Ambos os métodos têm suas próprias vantagens e são adequados para diferentes contextos e necessidades de desenvolvimento de software.
2 fase :check: