DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga



Documentos relacionados
Engenharia de Software II

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

Metodologias Ágeis de Desenvolvimento de Software

Desenvolvimento Ágil de Software

ENGENHARIA DE SOFTWARE I

Análise de Sistemas Unidade III A Engenharia de Software Desenvolvimento Ágil

Desenvolvimento Ágil. O Manifesto para o Desenvolvimento de Software Ágil

Manifesto Ágil - Princípios

Com metodologias de desenvolvimento

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

Scrum How it works. Há quatro grupos com papéis bem definidos:

Prof. Me. Marcos Echevarria

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Sistemas de Informação I

Engenharia de Software II

Engenharia de Software I

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Feature-Driven Development

Metodologias Ágeis. Aécio Costa

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 06 PROFª BRUNO CALEGARO

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

Scrum. Introdução UFRPE-DEINFO BSI-FÁBRICA DE SOFTWARE

ENG1000 Introdução à Engenharia

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Sistemas de Informação I

development Teresa Maciel DEINFO/UFRPE

Comparativo entre Processos Ágeis. Daniel Ferreira

O Processo Unificado

Engenharia de Software

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Capítulo 1. Extreme Programming: visão geral

LISTA DE EXERCÍCIOS METODOLOGIAS ÁGEIS ENGENHARIA DE SOFTWARE 10/08/2013

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

Daniel Wildt

MASTER IN PROJECT MANAGEMENT

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Engenharia de Software II

Desenvolvimento Ágil de Software em Larga Escala

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Gerenciamento de Projetos de Software esenvolvidos à Luz das Metodologias Ágeis. Ana Liddy C C Magalhães

ELABORAÇÃO DE UM PRODUCT BACKLOG EFETIVO

Especialização em Engenharia de Software e Banco de Dados

Engenharia de Software II

Sistemas de Informação e Programação II Odorico Machado Mendizabal

Engenharia de Software

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Engenharia de Software

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Programação Extrema. Luis Fernando Machado. Engenharia de Software

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

05/05/2010. Década de 60: a chamada Crise do Software

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Wesley Torres Galindo

Planejamento Ágil de Projetos

SCRUM. É um processo iterativo e incremental para o desenvolvimento de qualquer produto e gerenciamento de qualquer projeto.

Wesley Torres Galindo.

UNIVERSIDADE ESTADUAL DE CAMPINAS - UNICAMP FACULDADE DE TECNOLOGIA - FT GUSTAVO ARCERITO MARIVALDO FELIPE DE MELO

Planejamento de Projetos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

SCRUM Gerência de Projetos Ágil. Prof. Elias Ferreira

Engenharia da WEB 16/08/2011. Vida moderna. Sistemas WEB

Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação

INTRODUÇÃO A PROJETOS

MDMS-ANAC. Metodologia de Desenvolvimento e Manutenção de Sistemas da ANAC. Superintendência de Tecnologia da Informação - STI

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Programa do Módulo 2. Processo Unificado: Visão Geral

ATO Nº 91/2015/GP/TRT 19ª, DE 1º DE JUNHO DE 2015

Processo de Desenvolvimento de Software Scrum. Prof. Antonio Almeida de Barros Jr.

Resumo artigo Agile Modeling- Overview

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 05 PROFª BRUNO CALEGARO

Fundamentos de Teste de Software

Processo de Desenvolvimento de Software. Unidade V Modelagem de PDS. Luiz Leão luizleao@gmail.com

Projeto de Sistemas I

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

METODOLOGIA ÁGIL. Lílian Simão Oliveira

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Planejamento Ágil de Projetos

Modelos de Maturidade. Porque estudar um Modelo de Maturidade? Descrevem as características de processos efetivos;

Processos de Desenvolvimento de Software

Jonas de Souza H2W SYSTEMS

Francielle Santos

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Estimativa. Uma opinião ou julgamento de valor, tamanho ou quantidade, formada sem dados precisos. Suposição; conjectura.

Transcrição:

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