Universidade Federal de Sergipe Departamento de Computação Metodologias 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 Software
Fundada em 11-13/02/2001
17 pessoas envolvidas
Metodologia Ágil
Há Modelagem
Há Documentação
Há Planejamento
Valoriza-se
Individualidade e interações > processos e ferramentas
Software funcional > documentação
Colaboração do cliente > negociação de contrato
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 funcione
Algumas semanas/meses
Cliente e desenvolvedor trabalham juntos diariamente no projeto
Construir projetos com individualismo e motivação
Proporcionar ambiente e suporte que os desenvolvedores precisam e confiar que eles farão o trabalho
Características
Conversa cara-a-cara
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
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
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
Project Owner : prioriza os requisitos do sistema, enumerados no chamado backlog ;
Scrum Master : age como facilitador para a equipe de desenvolvimento
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_name end
Ruby on Rails
Os projetos em Rails seguem uma dupla de conceitos chaves:
DRY (Don't Repeat Yourself)
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:
Migrations
Fixtures
Generator
Templates
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.
2 comments
Comments 1 - 2 of 2 previous next Post a comment