Metodologias Ageis
-
Upload
rafael-franca -
Category
Technology
-
view
10.653 -
download
0
description
Transcript of Metodologias Ageis
Universidade Federal de SergipeDepartamento de ComputaçãoMetodologias de Desenvolvimento de Software
Metodologias Ágeis
Alunos: Rafael Mendonça França Marcos José Ribeiro Barrêto Vilnei Leite Bottari Leonardo Araujo Zoehler Brum Gabriel Viana Passos
Agenda
• Introdução• Características• Ágeis x RAD• Exemplos de metodologias ágeis• Scrum• XP • Ruby on Rails• Trabalhos futuros
Introdução
• Aliança de Desenvolvimento Ágil de Softwareo Fundada em 11-13/02/2001o 17 pessoas envolvidas
• Metodologia Ágilo Há Modelagemo Há Documentaçãoo Há Planejamento
• Valoriza-seo Individualidade e interações > processos e ferramentaso Software funcional > documentaçãoo Colaboração do cliente > negociação de contratoo Responder às mudanças > seguir um plano
Características
• Maior prioridade: satifazer o cliente com entrega contínua e mais cedo possível de um software usável
• Mudanças de requerimentos são sempre bem vindas, mesmo quando for tarde
• Entregar freqüentemente um software que funcioneo Algumas semanas/meses
• Cliente e desenvolvedor trabalham juntos diariamente no projeto
• Construir projetos com individualismo e motivaçãoo Proporcionar ambiente e suporte que os
desenvolvedores precisam e confiar que eles farão o trabalho
Características
• Conversa cara-a-carao Método mais efetivo e eficiente de se obter informação
em uma equipe• Um software funcionando é a nossa medida de progress• Processos ágeis promovem desenvolvimento sustentável• Atenção contínua na excelência técnica e num bom design
aumentam a agilidade• Simplicidade
o Fácil de mudar• A melhor arquitetura, requerimento e design surgem das
equipes com auto-organização
Características
• Em intervalos regulares, a equipe discute sobre um meio de aumentar a eficiência e então ajusta-se de acordo
Ágeis x RAD
• Não admite protótipos• Projetos são quebrados em funcionalidades
o No RAD o foco está em entregar todas as funcionalidades de uma vez Baixa qualidade antes para depois haver um
melhoramento• Equipes democráticas• Membros da equipes são auto-gestores• As práticas ágeis focam no problemas e os resolvem o mais
rápido possível• Equipes se comunicam• Equipes demonstram apenas trabalhos completos• Equipes incluem também testadores e especialistas com
experiência de usuário
Exemplos de Metodologias Ágeis
• Scrum• XP (eXtreme Programming)• FDD (Feature Driven Development)• Crystal• DSDM (Dynamic Systems Development Method)• OpenUP (Open Unified Process)• AUP (Agile Unified Process)
Scrum
• Scrum é uma metodologia ágil para gestão e planejamento de software.
• Parte da premissa de que o processo de desenvolvimento é complexo e imprevisível
• Adota uma abordagem empírica em relação ao processo• Pincipais papéis
o Project Owner: prioriza os requisitos do sistema, enumerados no chamado backlog;
o Scrum Master: age como facilitador para a equipe de desenvolvimento
o Equipe Scrum: grupo responsável pelo cumprimento das tarefas definidas
Scrum
• A partir do backlog, são definidas iterações curtas, denominadas sprints.
• Os sprints baseiam-se no ciclo PDCA e fornecem ao final incrementos prontos do sistema.
• Cabe à equipe Scrum, com o auxílio do Scrum Master, cumprir os objetivos do sprint.
XP
• XP (Extreme programming) é uma metodologia de desenvolvimento ágil adequada para sistemas com requisitos vagos e em mudança constante.
• Vale-se de metáforas para facilitar a comunicação com o cliente.
• Os requisitos são descritos em linguagem simples nas chamadas histórias de usuário.
• As iterações são semanais, gerando, ao final, uma "pequena versão" do sistema.
• Os testes de aceitação, definidos pelo cliente, validam as funcionalidades implementadas.
• A XP preza pela simplicidade do projeto
XP
• É utilizada a prática de programação em pares. • A equipe é incentivada a conhecer todas as partes do
sistema desenvolvido.• São estabelecidos padrões de codificação que devem
seguidos por todos na equipe.
Ruby on Rails
• É um framework que torna fácil o desenvolvimento, a distribuição e a manutenção de aplicações Web.
• Ele é uma das principais escolhas no desenvolvimento das aplicações Web 2.0.
• Todas as aplicações Rails são feitas usando o padrão arquitetural MVC (Model-View-Controler).
• Todas as aplicações Rails vem com suporte a testes integrados.O framework facilita o teste de aplicações,e como resultado, as aplicações Rails tendem a serem testadas.
• As aplicações Rails são feitas na linguagem Ruby, uma linguagem moderna, de script orientada a objetos.
• É fácil ler uma aplicação em Ruby, por ser uma linguagem concisa e que facilita a expressão de idéias no código.
Ruby on Rails
class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager has_many :milestones validates_presence_of :name, :description validates_acceptance_of :non_disclosure_agreement validates_uniqueness_of :short_nameend
Ruby on Rails
• Os projetos em Rails seguem uma dupla de conceitos chaves:o DRY (Don't Repeat Yourself)o Convenção sobre configuração
• Rails traz o que há de mais novo em padrões para desenvolvimento Web (Ajax, REST).
• O Rails facilita a distribuição e configuração das aplicações. As mudanças são geridas facilmente e podem ser feitas e desfeitas sem prejuízo algum para o desenvolvimento.
Ruby on Rails
• Algumas ferramentas do Rails:o Migrationso Fixtureso Generatoro Templateso Plugins
Trabalhos Futuros
• SCRUM e certificações existentes (MPS.BR, CMMI, PMBOK, etc).
• Testar, validar e aperfeiçoar a metodologia proposta na Empresa Júnior de Informática da UFS (Softeam Jr.) utilizando o Ruby on Rails como uma das ferramentas de desenvolvimento de software.
BONS CAMINHOS!!!