Tecnologia em Análise e Desenvolvimento de Sistemas METODOLOGIAS ÁGEIS FEATURE DRIVEN DEVELOPMENT E AUP Definição, aplicações, vantagens e desvantagens Marcelo Buratti de Freitas Vitor Matheus Buratti de Freitas Felipe Yuri Breno Leirião Neto Profª. Andrea ADS A3
INTRODUÇÃO - O que é metodologia ágil? - Existem diferentes tipos de metodologias e frameworks que desenvolvem software de forma iterativa e incremental.
Manifesto para Desenvolvimento Ágil de Software Estamos descobrindo maneiras melhores de desenvolver software, fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através deste trabalho, passamos a valorizar: Indivíduos e interações mais que processos e ferramentas Software em funcionamento mais que documentação abrangente Colaboração com o cliente mais que negociação de contratos Responder a mudanças mais que seguir um plano
1- Nossa maior prioridade é satisfazer o cliente através da entrega contínua e adiantada de software com valor agregado. 2- Mudanças nos requisitos são bem-vindas, mesmo tardiamente no desenvolvimento. Processos ágeis tiram vantagem das mudanças visando vantagem competitiva para o cliente. 3- Entregar frequentemente software funcionando, de poucas semanas a poucos meses, com preferência à menor escala de tempo. 4- Pessoas de negócio e desenvolvedores devem trabalhar diariamente em conjunto por todo o projeto.
5- Construa projetos em torno de indivíduos motivados. Dê a eles o ambiente e o suporte necessário e confie neles para fazer o trabalho. 6- O método mais eficiente e eficaz de transmitir informações para e entre uma equipe de desenvolvimento é através de conversa face a face. 7- Software funcionando é a medida primária de progresso. 8- Os processos ágeis promovem desenvolvimento sustentável. Os patrocinadores, desenvolvedores e usuários devem ser capazes de manter um ritmo constante indefinidamente.
9- Contínua atenção à excelência técnica e bom design aumenta a agilidade. 10- Simplicidade--a arte de maximizar a quantidade de trabalho não realizado--é essencial. 11- As melhores arquiteturas, requisitos e designs emergem de equipes auto-organizáveis. 12- Em intervalos regulares, a equipe reflete sobre como se tornar mais eficaz e então refina e ajusta seu comportamento de acordo.
Tecnologia em Análise e Desenvolvimento de Sistemas Origens do FDD e características - Singapura, meados de 1997 e 1998; - Jeff De Luca e Peter Coad; - sistema bancário internacional com tempo de implementação inviável; - www.featuredrivendevelopment.org
Tecnologia em Análise e Desenvolvimento de Sistemas Origens do FDD e características
Tecnologia em Análise e Desenvolvimento de Sistemas A metodologia do FDD - Benefícios a gerentes, desenvolvedores e clientes: - formas de interação e controle fáceis e inteligentes; - regras de fácil entendimento; - resultados rápidos -> vantagens ao cliente. - Benefício ao cliente por meio de trabalho significativo: - desde o início o cliente percebe os benefícios da implementação. - Para equipes pequenas, médias e grandes. - Software de qualidade: - métricas de qualidade; - qualidade desde o início.
Tecnologia em Análise e Desenvolvimento de Sistemas A metodologia do FDD - Resultados frequentes, tangíveis e funcionais: - funcionalidade implementada testada = funcionalidade disponibilizada. - Acompanhamento do progresso do desenvolvimento do projeto: - constante verificação da evolução do projeto através de método gráfico.
Tecnologia em Análise e Desenvolvimento de Sistemas Práticas da FDD - Modelagem de objetos do domínio: - coleta de dados para produção de documento de requisitos; - entrevista; - questionário; - formulário. - Desenvolvimento por feature: - três níveis de categorização: - Área de Negócios (Business Areas, Major Feature Sets); - Atividade de Negócio (Business Activities, Feature Sets); - Passos da Atividade de Negócio (Activity Steps, Features).
Tecnologia em Análise e Desenvolvimento de Sistemas Práticas da FDD - Entregas regulares (builds): - contrução constante do software; - versão sempre atualizada do software para os desenvolvedores; - clientes utilizam sempre a última compilação do projeto; - testes prévios. - Formação da equipe de projeto: - Gerente de projeto; - contato direto com o stakeholder; - captação dos requisitos e restrições; - equipe de desenvolvimento depende das features requeridas; - para a modelagem do projeto; - projeto grande, mais que uma pessoa é sugerida. - acompanhamento de todo o projeto (!); - zelo pelas boas práticas da FDD; - criar estudo completo das regras de negócio para a equipe.
Tecnologia em Análise e Desenvolvimento de Sistemas Práticas da FDD - Formação da equipe de projeto (continuação): - Arquiteto chefe/especialista no domínio; - especialista no assunto do projeto a ser desenvolvido. - Equipe de modelagem/planejamento; - elaboração da lista de features do sistema em questão; -
Tecnologia em Análise e Desenvolvimento de Sistemas A metodologia do FDD É chamada também de departamentalização territorial, regional ou por localização geográfica. Agrupamento de atividades por localização, na região onde o trabalho será desempenhado: - Oferta de produtos a grandes áreas geográficas, de grande extensão territorial. - Ex.: Multinacionais principalmente nos setor de produção e de vendas.
AUP (Agile Unified Process)
AUP - Introdução É uma versão simplificada do RUP, também criada por Scott Ambler Sua principal característica é criação de releases (versões) do sofware durante o processo de desenvolvimento ágil. Adota muitas técnicas ágeis do XP e de outras metodologias ágeis mantendo parte das formalidades e processos do RUP.
1.Sua equipe sabe o que está fazendo?. 2.Simplicidade? 3.Agilidade (em conformidade com a Agile Alliance) 4.Concentrar os esforços em atividades de alto valor? 5. Independente?(ferramenta). AUP - Filosofia
AUP - Fases O AUP é composto de duas fases principais no que se diz respeito ao desenvolvimento da arquitetura Iniciação: Identificar o escopo inicial Arquitetura potencial de alto nível para o sistema Elaboração: Provar a arquitetura do sistema até se tornar estável Implementação dos requisitos estruturalmente mais críticos
AUP - Disciplinas Modelagem: Os modelos devem ser "suficientemente bons e adequados" para que a equipe possa prosseguir de maneira ágil. Implementação: Os modelos são traduzidos para o código-fonte. Teste: A equipe projeta e executa uma série de testes para descobrir erros e assegurar que o código-forte se ajuste aos requisitos Aplicação:Se foca na entrega em um incrimento de software e coleta de feedback dos usuarios finais.
AUP AUP - Disciplinas
AUP - Disciplinas Modelo: Abrange três disciplinas do RUP (Modelagem de Negócios, Requisitos e Análise e Design; Objetivo é entender o negócio e domínio do problema. Implementação: Objetivo desta disciplina é o de transformar o seu modelo em código executável, e assim realizar um nível básico de testes, em particular o teste de unidade. Teste: O objetivo desta disciplina é a realização de uma avaliação objetiva para garantir a qualidade. Isto inclui encontrar defeitos, assim verificando se o que foi projetado foi realmente realizado, de modo que possa verificar se os requisitos foram atendidos
AUP - Disciplinas Implantação : O objetivo desta disciplina é planejar o fornecimento do sistema para o usuário final Gerenciamento de Configuração: Substitui Gerenciamento de Configuração e Mudança no RUP; Se propõe a gerir o acesso aos produtos de software; Rastrear versões do produto; Controlar e gerenciar alterações Gestão de Projetos: O objetivo desta disciplina é para entendimento das atividades que se realizam no projeto. Isso inclui orientar as pessoas (atribuindo tarefas, seguindo o progresso, etc.), e coordenar as pessoas e o projeto para ter certeza de que ele será entregue no prazo e dentro do orçamento. Ambiente: O objetivo desta disciplina é garantir que o ambiente de trabalho esteja em perfeitas condições para ser implantado a metodologia, em suma o maquinário, (hardware, software, etc.) estão disponíveis para a equipe quando necessário.
AUP - Disciplinas Equipes AUP normalmente entregam versões de desenvolvimento no fim de cada iteração, a área de pré-produção (s). Releases incrementais ao longo do tempo.
AUP - Disciplinas
Referências Bibliográficas AMBLER, Scott W. The Agile Unified Process (AUP) Disponível em: http://www.ambysoft.com/unifiedprocess/agileup.html. Data de acesso: 23/04/2016 [1] Universidade Anhembi Morumbi, Gestão Empresarial. Administração e Estrutura das Organizações. Departamentalização. Disponível em: [2] Ambiente das Empresas.. Disponível em: <http://dc437.4shared.com/doc/cyo3laso/preview.html>. Acesso em: 30 abr. 2016. http: //agilemanifesto.org/iso/ptbr/