Please enable JavaScript.
Coggle requires JavaScript to display documents.
FDD - Coggle Diagram
FDD
Papéis (Principais)
Gerente de Projeto:
O Gerente de Projeto é responsável por coordenar e supervisionar o andamento do projeto como um todo. Eles garantem que as funcionalidades sejam desenvolvidas dentro dos prazos estipulados, que os recursos estejam sendo alocados de maneira eficiente e que os objetivos gerais do projeto estejam sendo atendidos. O Gerente de Projeto também lida com questões de gerenciamento de riscos e é o ponto de contato entre a equipe de desenvolvimento e os stakeholders.
Gerente de Desenvolvimento:
O Gerente de Desenvolvimento é responsável por liderar a equipe de desenvolvimento de software. Eles supervisionam o trabalho dos desenvolvedores, garantem que as funcionalidades sejam implementadas de acordo com as especificações e que a qualidade do código seja mantida. Além disso, o Gerente de Desenvolvimento colabora com o Gerente de Projeto para planejar o desenvolvimento de funcionalidades e alocar recursos.
Arquiteto-chefe:
O Arquiteto-chefe desempenha um papel crucial na definição da arquitetura do software. Eles projetam a estrutura geral do sistema, definem os padrões de design e orientam a equipe de desenvolvimento na implementação das funcionalidades. O Arquiteto-chefe também garante que as funcionalidades se integrem de maneira coesa e que a arquitetura seja escalável e sustentável.
Proprietários de código/classe (Desenvolvedores):
Os Desenvolvedores são os membros da equipe que realmente escrevem o código para implementar as funcionalidades. Cada desenvolvedor é responsável por um conjunto específico de funcionalidades ou classes. Eles trabalham em estreita colaboração com o Gerente de Desenvolvimento e o Arquiteto-chefe para garantir que o código seja de alta qualidade, esteja bem documentado e atenda aos requisitos especificados.
Especialistas do Domínio (negócio):
Os Especialistas do Domínio são membros da equipe que possuem um profundo conhecimento sobre o domínio de negócios para o qual o software está sendo desenvolvido. Eles desempenham um papel fundamental na definição das necessidades e requisitos do cliente, bem como na validação das funcionalidades implementadas em relação às expectativas do negócio. Esses especialistas ajudam a garantir que o software atenda às necessidades reais dos usuários e do mercado.
Características
Desenvolvimento por funcionalidades: Deve-se planejar por funcionalidade e o planejamento deve ser incremental.
Modelagem por objeto: O FDD emprega modelagem orientada a objetos para representar o sistema. Os modelos de domínio são usados para definir as classes, os relacionamentos entre objetos e as responsabilidades de cada classe. Isso ajuda a criar um entendimento comum entre os membros da equipe sobre a estrutura do sistema.
Inspeções regulares: O FDD enfatiza a realização de inspeções regulares para revisar e validar o trabalho concluído. Isso ajuda a garantir a qualidade do código e a conformidade com as especificações.
Equipes multidisciplinares: As equipes de desenvolvimento no FDD são multidisciplinares, compostas por desenvolvedores, designers, analistas e outros profissionais relevantes. Isso promove a colaboração e o compartilhamento de conhecimento.
Padrão ETVX
Entrada (Entry - E): Esta é a fase inicial do processo, onde você define o que é necessário para iniciar uma determinada tarefa ou processo. Isso pode incluir requisitos, recursos, informações de entrada ou qualquer coisa que seja necessária para iniciar a execução da tarefa. É importante ter uma compreensão clara do que se espera antes de começar.
Tarefa (Task -T): Nesta etapa, a tarefa real é executada. Aqui é onde o trabalho é feito. Pode incluir codificação, design, testes, documentação, ou qualquer atividade específica que seja parte do processo.
Verificação (Verification - V): Após a conclusão da tarefa, é fundamental verificar se o trabalho foi realizado de acordo com os requisitos e padrões estabelecidos. Isso pode envolver revisões de código, testes de unidade, testes de aceitação, ou qualquer mecanismo que garanta que a saída da tarefa seja de alta qualidade e atenda às expectativas.
Saída (Exit - X): A etapa de Saída é onde os resultados finais do processo ou tarefa são entregues ou colocados em uso. Se a verificação for bem-sucedida, a saída será aceita e poderá ser entregue ao cliente ou usado em fases posteriores do desenvolvimento.
Fases e processos
-
Processos
DMA (Desenvolver um Modelo Abrangente):
Análise Orientada por Objetos: Nesta fase inicial, a equipe se concentra em desenvolver um modelo abrangente do sistema. Isso envolve a identificação e a modelagem de objetos, classes e relacionamentos no domínio do problema. A análise orientada por objetos é uma técnica que ajuda a entender as entidades e seus comportamentos no contexto do sistema a ser desenvolvido. Esse modelo serve como base para o restante do processo.
CLF (Construir a Lista de Funcionalidades):
Decomposição Funcional: Nesta etapa, a equipe de desenvolvimento identifica as funcionalidades que o sistema precisa ter. Isso envolve a decomposição do modelo abrangente em funcionalidades menores e mais gerenciáveis. Cada funcionalidade é descrita de maneira clara, especificando o que ela deve fazer. A lista de funcionalidades é uma parte fundamental para o planejamento e a organização do desenvolvimento.
PPF (Planejar por Funcionalidade):
Planejamento Incremental: Nesta fase, a equipe começa a planejar o desenvolvimento das funcionalidades. O planejamento incremental envolve a alocação de recursos (tempo, equipe, etc.) para a implementação de cada funcionalidade. O objetivo é dividir o projeto em iterações incrementais, onde cada iteração implementa um conjunto de funcionalidades específicas. Isso permite que o progresso seja monitorado e que as prioridades sejam ajustadas conforme necessário.
DPF (Detalhar por Funcionalidade):
Desenho (Projeto) Orientado por Objetos: Com as funcionalidades planejadas, a equipe se concentra na fase de design e implementação. O desenho orientado por objetos envolve a criação de diagramas de classes, diagramas de sequência e outras representações visuais que detalham como as funcionalidades serão implementadas. O foco está na estrutura e no comportamento das classes e objetos que compõem as funcionalidades.
CPF (Construir por Funcionalidade):
Programação e Teste Orientados por Objetos: Nesta fase, a equipe de desenvolvimento começa a codificar e testar as funcionalidades. A programação orientada por objetos enfatiza a criação de código limpo e bem estruturado, seguindo as diretrizes definidas na fase de design. O teste orientado por objetos envolve a criação de testes unitários, de integração e de aceitação para garantir que as funcionalidades funcionem corretamente.