FDD - Edmilson Campos
Transcrição
FDD - Edmilson Campos
Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario FDD Desenvolvimento dirigido a funcionalidades 2 Agenda FDD; Melhores práticas do FDD; Principais papéis; Processos. FDD Metodologia interativa e incremental gerenciamento e engenharia de software; de Possui ênfase na qualidade em todo o processo e um monitoramento de progresso direto, preciso e intuitivo; Entrega tangível e freqüente de software funcional. Histórico Criado em 1997 em projeto para um banco em Singapura; Inicialmente publicado em 1999; O que o FDD pode proporcionar? Inovação continua; Adaptabilidade do produto; Cronogramas reduzidos de entrega; Adaptabilidade das pessoas e processos e; Resultados confiáveis. Características da FDD Fornece a estrutura suficiente para equipes maiores; Enfatiza a produção de software de qualidade; Entrega resultados freqüentes; Realiza trabalho significativo desde do início; Agrada cliente, gerentes e desenvolvedores. O que é Feature? Característica ou funcionalidade; Mapeia passos em uma atividade de negócio; Conceito muito próximo de requisito funcional. Melhores práticas da FDD Modelagem de objetos do domínio; Desenvolvimento por funcionalidades; Posse individual de classe; Equipes de Features; Melhores práticas da FDD Inspeções; Builds regulares; Gerenciamento de configuração; Relatório/Visibilidade de resultados. Modelagem de objetos do domínio Diagramas de classe com os principais tipos de objetos no domínio do problema e suas relações; Auxilia no levantamento e esclarecimento dos requisitos; Possibilita um entendimento comum e mais completo sobre o domínio do problema; Desenvolvimento por funcionalidade Pensamento sistêmico, visando o resultado final; Teste objetivo; Garante a distribuição organizada responsabilidades por meio de classes; de Posse individual de classe Estimula o responsável final pelo conteúdo de uma classe; Especialista para classes complexas ou críticas para o negócio; Equipes de Features Formadas dinamicamente; Múltiplas mentes projetando; Membros são relevantes; Enfatiza o trabalho em equipe. os proprietários de classes Inspeções Quando bem feitas, são muito úteis na melhoria da qualidade do design e do código; Recomendadas desde de 1970; Benefícios secundários. Inspeções Detecção antecipada de defeitos Montagens freqüentes Ajuda a antecipar erros de integração; Garante que sempre haverá alguma coisa para mostrar ao cliente; Gerenciamento de configuração Disciplina que suporta e controla as evoluções e modificações em artefatos chaves; Facilita o desenvolvimento de software; Garantir a integridade dos produtos; Controlar as modificações; Gerenciamento de configuração Tarefas rotineiras do gerenciamento de configuração Versionamento; Gestão de mudanças; Gestão de tarefas; Gerenciamento de configuração Tarefas rotineiras do gerenciamento de configuração Gerenciamento de processos; Gerenciamento de montagens; Gerenciamento de liberação. Relatório /Visibilidade de resultados Ter método simples, de baixa sobrecarga, para coletar informações de progresso de forma acurada e confiável; Formatos de relatórios objetivos e intuitivos, para todos interessados no projeto. Principais papéis Principais papéis Gerente de Projeto Coordena as ações da equipe do projeto; Responsável pelo gerenciamento; Responsável por todos os assuntos administrativos do projeto. Principais papéis Gerente de Desenvolvimento Possui habilidades técnicas e gerenciais para coordenar as ações da equipe de desenvolvimento; Lidera o desenvolvimento do produto; Possui boa experiência no desenvolvimento de software e nas tecnologias que estarão sendo utilizadas no projeto. Principais papéis Especialista no domínio de negócio Responsável por informar a equipe do projeto o que deve ser feito para que o produto seja adequado às necessidades dos usuários; Compreende as regras e a dinâmica do domínio do problema; Principais papéis Arquiteto Líder Profissional com experiência em análise e modelagem orientada a objetos; Possui habilidade para atuar como facilitador na absorção das regras de negócio; Principais papéis Programador Líder Coordena o desenvolvimento das features, monta as equipes de features e participa das definições técnicas; Normalmente é atribuído ao programador líder a propriedade das classes mais complexas do sistema; Principais papéis Proprietário de Classe Desenvolvedor da equipe, ao qual foram atribuído algumas classes do modelo; Programa, diagrama, testa e documenta as funcionalidades a ele atribuídas pelo programador chefes da equipe; Fases da FDD Concepção e planejamento Pensar um pouco antes de fazer (tipicamente de 1 a 2 semanas); Construção Fazer de forma iterativa (tipicamente em iterações de 2 semanas). Processos Desenvolver um modelo abrangente; Construir a lista de features; Planejar por features; Detalhar por features; Construir por features. Desenvolver um modelo abrangente Modelagem do processos de negócio; Levantamento de requisitos; Análise orientada por objetos; É uma atividade inicial de estudo, análise e modelagem do sistema. Desenvolver um modelo abrangente Artefatos produzidos Diagrama de classe, seqüência, atividade, estado e caso de uso; Desenvolver um modelo abrangente Construir a lista de features Decomposição funcional do domínio do negócio; Categorizada em 3 níveis: Áreas de negócio; Atividades de negócio; Passos da atividade de negócios. Construir a lista de features Artefatos produzidos Lista de features Requisitos mais detalhados Planejar por features Ordena as funcionalidades implementadas, tendo como base: que Necessidades do usuário; Dependências entre elas; Carga de trabalho da equipe de desenvolvimento; Complexidade serão Planejar por features Artefatos produzidos Plano de desenvolvimento; Pacotes de trabalho; Lista de classes com seus donos. Detalhar por features A equipe de feature será formada proprietários das classes envolvidas. pelos Detalhar por features Artefatos produzidos Modelos detalhados; Esqueletos de classes com métodos; Pacote de trabalho detalhado; Relatório de inspeção do design e relatório de progresso atualizado. Construir por features Proprietários de classe desenvolvem o código correspondente a cada feature; Os testes de unidade e as inspeções são realizadas; O código final é promovido ao build atual; O resultado são funções com valor para o cliente (features). Construir por features Artefatos produzidos Código fonte testado e integrado; Relatórios de inspeção e testes; Lista de alterações feitas ou necessárias; Relatório de progresso atualiza. Construir por features Referências FDD - Feature Driven Development. Disponível em: http://www.sysevolution.com.br/metodologia-agil--software-de-colaboracao/agile--metodoagil--desenvolvimento-agil/feature-driven-development-desenvolvimento-guiado-porfuncionalidades Acesso em: 20/02/2012 Ericb. Projeto de Software com FDD. Disponível em: http://engenharia-desoftware.nuvvo.com/lesson/11129-projeto-de-software-com-fdd Acesso em: 20/02/2012 Métodologia ágil de desenvolvimento de software FDD. Disponível em: http://htwojsystem.wordpress.com/2011/06/26/metodologia-agil-de-desenvolvimento-desoftware-fdd/ Acesso em: 21/02/2012 O que é FDD?. Disponível em: http://www.heptagon.com.br/fdd-oque Acesso em: 21/02/2012 CALETTI, Eduardo. Um breve estudo sobre a metodologia ágil FDD. Dispinível em: http://www.webartigos.com/artigos/um-breve-estudo-sobre-a-metodologia-agil-fdd/32061/ Acesso em: 22/02/2012 RETAMAL, ADAIL MUNIZ. Metodologias de Desenvolvimento: UDP, FDD e XP. Disponível em: http://adailmr.sites.uol.com.br/artigos/fdd-udp-xp.htm Acesso em: 24/02/2012 Luiz Fernando Maurício de Souza Sidemar Fidelis Cezario FDD Desenvolvimento dirigido a funcionalidades 2
Documentos relacionados
FDD - WordPress.com
Gerente do domínio Gerente de versão Especialista (guru) de linguagem Coordenador de construção
Leia maisFDD – Processo
FDD – Processo nº 4: Detalhar por Funcionalidade É uma atividade para cada funcionalidade, para produzir o pacote de projeto (design) para a funcionalidade. Certo número de funcionalidades são agen...
Leia mais