DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis Profª Esp.: Maysa de Moura Gonzaga 2º Semestre / 2011
Extreme Programming (XP); DAS (Desenvolvimento Adaptativo de Software) DSDM (Método de Desenvolvimento Dinâmico de Sistemas) Scrum Crystal FDD (Desenvolvimento Guiado por Características) AM (Modelagem Ágil) Modelos Ágeis de Processo
Extreme Programming (XP) O Extreme Programming XP foi escrito por Kent Beck na década de 1980 e foi publicado em 1999. O XP usa uma abordagem orientada a objetos; Ocorrem no contexto de 4 atividades: Planejamento, Projeto, Codificação e Teste.
Extreme Programming (XP) Planejamento: Criação de histórias (características e funcionalidades do software). Cada história é descrita pelo cliente e colocada em um cartão de indexação. O cliente atribui um valor (prioridade). Membros da equipe XP avaliam cada história e atribuem um custo. Se a história precisar mais de 3 semanas pedese ao cliente para dividir a história em histórias menores. Clientes e a equipe XP trabalham juntos.
Projeto: Extreme Programming (XP) O XP encoraja o uso de cartões CRC (raciocionar no contexto orientação a objetos); CRC (Classe-Responsabilidade-Colaboração) identificam e organizam as classes orientadas a objetos; Os cartões CRC são o único produto de trabalho do projeto que é realizado como parte do processo XP. O uso de protótipo é recomendado para um problema de projeto difícil encontrado com parte de uma história.
Extreme Programming (XP) Projeto: O XP encoraja a refabricação: uma técnica de construção que é também uma técnica de projeto. A intenção da refabricação é controlar as modificações (limpeza do código) sem alterar o seu comportamento, sugerindo pequenas alterações de projeto que podem aperfeiçoar radicalmente o projeto.
Extreme Programming (XP) Codificação: Desenvolve uma série de testes unitários que exercitarão cada uma das histórias. O XP recomenda programação em pares no qual, duas pessoas trabalhem juntas em uma estação de trabalho para criar o código correspondente a uma história. Fornece uma solução de problemas em tempo real. Mantém os desenvolvedores focados no problema em mãos.
Testes Unitários: Extreme Programming (XP) Teste unitário (esforço para descobrir erros que são locais para o componente) antes da codificação começar é um elemento-chave da abordagem XP. Os testes de aceitação XP são os testes do cliente e especificados por ele no qual focalizam as características e funcionalidades do sistema global. Revisão pelo cliente. Testes de aceitação são derivados das histórias do usuário.
Extreme Programming (XP)
DAS Desenvolvimento Adaptativo de Software Proposto por Jim Highsmith como uma técnica para cosnturação de sistemas e softwares complexos. Concentra-se na colaboração humana e na autoorganização da equipe. Uma abordagem de desenvolvimento ágil, adaptativa, baseada em colaboração. O ciclo de vida do DAS incorpora 3 fases: Especulação, Colaboração e Aprendizado.
Especulação: DAS Desenvolvimento Adaptativo de Software O projeto é iniciado; Declara a missão feita pelo cliente; Identifica as restrições do projeto (datas de entrega ou descrições de usuários); Requisitos básicos para definir o conjunto de ciclos de versão (incrementos de software) que serão necessários para o projeto. Colaboração: Não é apenas comunicação, não é uma questão de equipe de trabalho. Trata-se de um questão de confiança.
Colaboração: DAS Desenvolvimento Adaptativo de Software Pessoas que trabalham juntas precisam confiar umas nas outras; Ajudar sem ressentimento; Trabalhar tão duro ou mais duro do que costumam; Ter habilidades para contribuir com o trabalho em mãos; Comunicar problemas e/ou preocupações de um modo que conduza á ação efetiva. Aprendizado: Foco nos grupos: Feedback de clientes e usuários sobre os incrementos que são entregues se o produto satisfaz ou não a necessidade de negócio.
Aprendizado: DAS Desenvolvimento Adaptativo de Software Revisões técnicas formais: Os membros da equipe DAS revisam os componentes que são desenvolvidos, aperfeiçoando a qualidade e aprendendo à medida que prosseguem; Pós-conclusões: Intenção de aprender e depois aperfeiçoar a sua abordagem.
DSDM Método de Desenvolvimento Dinâmico de Sistemas Trata-se de uma abordagem Ágil; Fornece atividades para construir e manter sistemas que satisfazem às restrições de prazo apertadas por meio do uso de prototipagem incremental em um ambiente controlado de projeto. Semelhante em alguns pontos ao processo RAD. Assim como o XP e o DAS, o DSDM sugere um processo iterativo de software.
DSDM Método de Desenvolvimento Dinâmico de Sistemas O ciclo de vida do DSDM define 3 ciclos iterativos diferentes: Estudo de viabilidade: Estabelece os requisitos básicos e restrições do negócio, avalia se a aplicação é uma candidata viável ao processo DSDM. Estudo do negócio: Estabelece os requisitos funcionais que permitirão a aplicação fornecer valor de negócio; Define a arquitetura básica e identifica os requisitos de manutenibilidade para a aplicação.
DSDM Método de Desenvolvimento Dinâmico de Sistemas O ciclo de vida do DSDM define 3 ciclos iterativos diferentes: Iteração do modelo funcional: Produz conjunto de protótipos incrementais que demonstram a funcionalidade para o cliente. Todos os protótipos são destinados a evoluir para a aplicação a ser entregue. Iteração de projeto e construção: revisita os protótipos durante a iteração do modelo funcional. Implementação: Coloca o último incremento de software no ambiente operacional.
SCRUM Modelo de processo ágil: Foi desenvolvido por Jeff Sutherland na década de 1990; Os princípios do Scrum são: Pequenas equipe: Maximizar a comunicação, minimizar a supervisão e maximizar o compartilhamento de conhecimento tácito. O processo precisa ser adaptável O processo produz frequentes incrementos de software pode ser inspecionados, ajustados, testados, documentados e expandidos.
SCRUM Modelo de processo ágil: O trabalho de desenvolvimento é dividido de baixo acoplamento, ou sem pacotes; Testes e documentação constantes são realizados à medida que o produto é construído. Sprint: as tarefas ocorrem dentro de um padrão chamado sprint. A quantidade de sprint ocorre de acordo com a complexidade e tamanho do produto. O Scrum enfatiza projetos com prazos apertados, requisitos mutantes, negócio crítico
SCRUM Pendência: Lista priorizada de requisitos ou características do projeto, fornecem valor de negócio para o cliente; Itens podem ser adicionados à pendência a qualquer momento; O gerente de produto avalia a pendência e atualiza as prioridades quando necessário. Sprints: unidades de trabalho que são necessárias para satisfazer a um requisito definido na pendência que precisa ser cumprido em um intervalo de tempos predefinido (30 dias); Permitem que os membros da equipe trabalhem em um ambiente de curto prazo, mas estável.
SCRUM Reuniões de Scrum: São reuniões curtas (15 minutos) feitas diariamente pela equipe Scrum. Questões avalidadas: O que você fez desde a última reunião de equipe? Que obstáculos você está encontrando? O que você planeja realizar até a próxima reunião de equipe? Scrum Master: um líder de equipe, lidera a reunião e avalia as respostas de cada pessoa. Reuniões diárias ajudam a descobrir problemas mais cedo. Demos: entrega o incremento de software ao cliente de modo que a funcionalidade possa ser demonstrada e avaliada pelo cliente.
SCRUM
SCRUM
SCRUM
CRYSTAL Alistair Cockburn e Jim Highsmith, criaram a família Crystal de métodos ágeis. Objetivo: entregar softwares úteis funcionando; A família Crystal, é na verdade, um conjunto de processo ágeis que se mostraram efetivos para diferentes tipos de projetos.
FDD Desenvolvimento Guiado por Características Concebido por Peter Coad como um modelo prático de processo; Pode ser aplicado a projetos de software de tamanho moderado e grande. Ênfase: na definição de características que pode ser implementada em duas semanas ou menos. Benefícios: Usuários podem descrever as características em pequenos blocos passíveis de entrega; As características podem ser organizadas em um agrupamento hierárquico relacionado ao negócio.
Benefícios: FDD Desenvolvimento Guiado por Características A equipe desenvolve características operacionais a cada duas semanas; Facilidade de inspecionar as características por serem pequenas por incrementos; Planejamento de projeto, cronogramação e monitoração. O FDD coloca mais ênfase em diretrizes e técnicas de projeto do que muitos métodos ágeis. Define 5 atividades colaborativas chamadas de processos:
FDD Desenvolvimento Guiado por Características Construir uma Lista de Características Projetar por Característica Desenvolver um Modelo Global Mais forma que conteúdo Uma lista de Planejar por características Característica agrupadas em Conjuntos e áreas de assuntos Um plano de Desenvolvimento Proprietários do Conjunto de desenvolvimento Um pacote de projeto sequências Construir por Características Função cliente-valor completada