Engenharia de Software II



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

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

Prof. Me. Marcos Echevarria

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

ENGENHARIA DE SOFTWARE I

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

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

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

Segurança de Aplicações Aula 6

Com metodologias de desenvolvimento

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

Engenharia de Software I

Engenharia de Software II

Sistemas de Informação I

Metodologias Ágeis. Aécio Costa

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

Desenvolvimento Ágil de Software

ENG1000 Introdução à Engenharia

Metodologias Ágeis de Desenvolvimento de Software

Sistemas de Informação I

Engenharia de Software II

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

Daniel Wildt

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

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

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

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

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

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

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

Métodos Ágeis para Desenvolvimento de Software Livre

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Manifesto Ágil - Princípios

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

O Processo Unificado

Desenvolvimento Ágil de Software em Larga Escala

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

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

SCRUM: UM MÉTODO ÁGIL. Cleviton Monteiro

Engenharia de Software

Processo de Desenvolvimento Unificado

O modelo unificado de processo. O Rational Unified Process, RUP.

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

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

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

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

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

Jonas de Souza H2W SYSTEMS

Comparativo entre Processos Ágeis. Daniel Ferreira

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

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

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

Professor: Curso: Disciplina:

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

A Evolução de XP segundo Kent Beck Parte 2

Ideal para que tipo de empresa (equipe): pequena, média, grande? Em software onde os requisitos não são conhecidos é recomendado o uso do XP? Por quê?

Engenharia de Software I

Desenvolvimento ágil de software

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

Engenharia de Software II

Ágil. Rápido. Métodos Ágeis em Engenharia de Software. Introdução. Thiago do Nascimento Ferreira. Introdução. Introdução. Introdução.

Engenharia de Requisitos

Engenharia de Software

Projeto de Sistemas I

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

Expresso Livre Módulo de Projetos Ágeis

development Teresa Maciel DEINFO/UFRPE

Resumo artigo Agile Modeling- Overview

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

UML - Unified Modeling Language

RUP Rational Unified Process

Introdução ao OpenUP (Open Unified Process)

Desenvolvendo Software Livre com Programação extrema

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br

Programa do Curso de Pós-Graduação Lato Sensu MBA em Engenharia de Software Orientada a Serviços (SOA)

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Engenharia de Software II

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

Modelos de Processo (métodos)

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

PROFESSOR: CRISTIANO MARIOTTI

O que é um processo de software?

Apresentação do Curso Prof. Gilberto Braga de Oliveira

PMI-Agile. Marcos Cardoso. 17/09/2012. Centro de Informática. UFPE Mestrado / Doutorado Qualidade, Processos e Gestão de Software

Introdução ao Processo Unificado (PU)

EMISSÃO DE CERTIFICADOS ELETRÔNICOS NOS EVENTOS DO INSTITUTO FEDERAL CATARINENSE CÂMPUS VIDEIRA

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

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

APLICACAÇÃO DE METRICAS E INDICADORES NO MODELO DE REFERENCIA CMMI-Dev NIVEL 2

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

Profa. Celia Corigliano. Unidade IV GERENCIAMENTO DE PROJETOS DE TI

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

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Transcrição:

Engenharia de Software II Aula 5 http://www.ic.uff.br/~bianca/engsoft2/ Aula 5-05/05/2006 1

Dúvidas da aula passada RUP (Rational Unified Process) é uma ferramenta ou um processo? Resposta: os dois. O RUP é uma instância específica e detalhada de um processo genérico descrito por Jacobson, Booch and Rumbaugh no livro The Unified Software Developmente Process. O produto RUP é uma ferramenta desenvolvida e mantida pela Rational (agora parte da IBM) de apoio ao RUP. Na fase de concepção do RUP qual a diferença entre Documento de visão e Caso de negócio inicial? Documento de visão: dá uma visão geral dos requerimentos e das características mais importantes do produto. Caso de negócio inicial: fornece as informações necessárias para determinar se vale a pena investir no projeto, como os critérios de sucesso, projeção de lucros e previsões financeiras. Mais informações sobre o RUP: http://www.wthreex.com/rup/ ftp://ftp.software.ibm.com/software/rational/web/whitepapers/2003/rup_bestpractices.pdf Aula 5-05/05/2006 2

Desenvolvimento Ágil 2001: Manifesto para o Desenvolvimento Ágil de Software (http://www.agilemanifesto.org). 17 figuras proeminentes na engenharia de software (a Aliança Ágil) se reuniram e declararam importante a valorização de: Indivíduos e interações em vez de processos e ferramentas. Softwares funcionando em vez de documentação abrangente. Colaboração do cliente em vez de negociação de contratos. Resposta a modificações em vez de seguir um plano. Aula 5-05/05/2006 3

O que é o desenvolvimento ágil? É uma filosofia e um conjunto de diretrizes que encorajam: A entrega incremental do software logo de início. Equipes de projeto pequenas e motivadas. Métodos informais de comunicação ao invés de documentos escritos. Enfatizar a entrega em contraposição à análise e ao projeto. Adotar o cliente como parte da equipe. Aula 5-05/05/2006 4

Quando deve ser usado o desenvolvimento ágil? O desenvolvimento ágil é particularmente indicado em situações onde os requisitos são imprevísiveis ou mudam rapidamente. Ele funciona melhor para equipes pequenas (até 10 desenvolvedores) trabalhando no mesmo local. Aula 5-05/05/2006 5

Doze princípios da agilidade 1. Ter como maior prioridade satisfazer o cliente por meio da entrega de software. 2. Modificações contínuas são bem-vindas e levam à competitividade para o cliente. 3. Entrega de software funcionando em períodos de duas semanas a dois meses. 4. O pessoal de negócio e os desenvolvedores devem trabalhar juntos diariamente. 5. Construção de projetos em torno de indivíduos motivados e talentosos. 6. Usar métodos informais de comunicação como conversar pessoalmente. 7. Software funcionando é a principal medida de progresso. 8. Promover o desenvolvimento sustentável, mantendo um ritmo cde produção. 9. Atenção contínua à excelência técnica e ao bom projeto. 10. Simplicidade é essencial. 11. As melhores arquiteturas, requisitos e projetos surgem de equipes auto-organizadas. 12. A equipe deve, em intervalos regulares, refletir sobre como se tornar mais efetiva. Aula 5-05/05/2006 6

O que é um Processo Ágil? É um processo que atende a três suposiçõeschave sobre a maioria dos projetos de software: 1. É difícil prever antecipadamente quais requisitos de software e prioridades do cliente vão persistir e quais serão modificadas. 2. É difícil prever o quanto de projeto é necessário antes que a construção seja usada para comprovar o projeto. 3. Análise, projeto, construção e testes não podem ser tão bem planejados como gostaríamos. Para atender a essas suposições, o processo ágil deve ser adaptável incrementalmente. Aula 5-05/05/2006 7

Fatores humanos Características-chave de uma equipe ágil: 1. Competência 2. Foco comum 3. Colaboração 4. Capacidade de tomada de decisão 5. Habilidade de resolver problemas vagos 6. Respeito e confiança mútua 7. Auto-organização Aula 5-05/05/2006 8

Modelos ágeis de processo Extreme Programming (XP) Desenvolvimento Adaptativo de Software (DAS) Método de Desenvolvimento Dinâmico de Sistemas (DSDM) Scrum Crystal Desenvolvimento Guiado por Características (FDD) Modelagem Ágil (AM) Aula 5-05/05/2006 9

Extreme Programming (XP) Trabalho pioneiro sobre o assunto escrito em 1999 por Kent Beck. Usa uma abordagem orientada a objetos como seu paradigma de desenvolvimento. Inclui um conjunto de regras e práticas que ocorrem no contexto de quatro atividades de arcabouço: Planejamento Projeto Codificação Teste Aula 5-05/05/2006 10

XP - Planejamento Criação de um conjunto de histórias de usuário. Parecidas com casos de uso, mas com bem menos detalhes. Cada história é escrita em poucas linhas pelos clientes, que lhe atribuem um valor, e deve poder ser implementadas em menos de três semanas. Exemplo: Quando a aplicação começa, o último documento em que o cliente estava trabalhando deve ser aberto automaticamente. A equipe XP e os clientes trabalham juntos para definir um plano que determina as histórias que serão desenvolvidas primeiro levando em consideração valores e riscos. Depois que o primeiro incremento é entregue, a equipe XP calcula a velocidade do projeto = número de histórias implementadas. Ao longo do tempo, o cliente pode adicionar histórias, mudar o valor de uma história, subdividir histórias ou eliminá-las, Aula 5-05/05/2006 11

XP - Projeto Segue o princípio KIS (keep it simple). Se restringe a implementar as histórias de usuário. Usa cartões CRC (Class-Responsability-Colaborator) para identificar e organizar as classes que são relevantes para o incremento atual. Se um problema de projeto difícil é encontrado, o XP recomenda a criação de uma solução de ponta para diminuir o risco. Solução de ponta = um protótipo operacional daquela parte do projeto, que depois será descartado. O XP encoraja a refabricação = modificar o sistema de tal modo que o comportamento externo não seja alterado, mas aperfeiçoe a estrutura interna. A refabricação ocorre durante a codificação, mas altera o projeto. Aula 5-05/05/2006 12

XP - Codificação Antes de partir para o código, a equipe deve desenvolver testes unitários para verificar a funcionalidade que será desenvolvida. A programação é feita em pares. Isso fornece um mecanismo de solução de problemas e de garantia de qualidade em tempo real. Uma pessoa pensa nos detalhes do código enquanto a outra garante as normas de codificação e que o código gerado vai se encaixar no resto do sistema. O código gerado vai sendo integrado imediatamente ao trabalho de outros, o que ajuda a evitar problemas de compatibiilidade e interface. Aula 5-05/05/2006 13

XP - Teste Os testes unitários são criados de tal forma que eles possam ser automatizados, e aplicados diariamente. O XP usa uma estratégia de teste de regressão: testes são aplicados de novo mesmo que anteriormente eles não tenham apresentado problema. Isso permite a refabricação. Testes de aceitação são especificados pelo cliente (derivados das histórias do usuário) e focalizam nas características e funcionalidades do sistema global. Devem ser automatizados e aplicados frequentemente. O sistema só é considerado aceitável quando todos passar em todos os testes de aceitação. Aula 5-05/05/2006 14