Você está na página 1de 24

Análise e Modelagem

de Sistemas
Aula 5 -
Manifesto Ágil
Profº Rafhael Rodrigues Cunha
rafhael.cunha@iffarroupilha.edu.br
Roteiro

• Desenvolvimento Ágil de Software


• Características Fundamentais
• Métodos Ágeis
• Manifesto para Desenvolvimento Ágil de Software
• Princípios dos Métodos Ágeis

2
Aula Anterior

• Principais Modelos
• Clássico
• Incremental
• Evolucionário
• Especializados

3
Desenvolvimento Ágil de
Software
• Nos dias de hoje, as empresas operam em um
ambiente global, com mudanças rápidas
• E precisam responder a novas oportunidades e
mercados

• Muitas vezes é praticamente impossível obter um


conjunto completo de requisitos estáveis

4
Desenvolvimento Ágil de
Software
• Processos de desenvolvimento de software que
buscam especificar completamente os requisitos,
projeto, implementação e testes não estão
adaptados ao desenvolvimento rápido de software
• Requisitos não atendem mais o cliente
• Entrega atrasada

5
Desenvolvimento Ágil de
Software
• Para softwares que precisam de uma análise
completa, uma abordagem dirigida a planos é a
melhor opção
• Ex: Sistemas críticos, controle de segurança

• Para softwares que necessitam de mudanças


rápidas, uma abordagem de entregas rápidas é a
melhor opção
• Ex: sistemas comerciais em geral.
6
Desenvolvimento Ágil de
Software
• A ideia de processos de desenvolvimento capazes
de lidar com a mudança foram introduzidas com o
desenvolvimento incremental em 1980

• Entretanto a ideia decolou no final da década de


1990 com o desenvolvimento das abordagens ágeis
• Como o DSDM, Scrum e XP

7
Desenvolvimento Ágil de
Software
• Os processos de desenvolvimento rápido de
software são concebidos para produzir software
útil rapidamente

• O software não é desenvolvido como uma única


unidade, mas como uma série de incrementos
• Cada incremento inclui uma nova funcionalidade do
sistema

8
Características Fundamentais

• Os processos de especificação, projeto e


implementação são intercalados
• Não há uma especificação detalhada do sistema
• A documentação do projeto é minimizada
• O documento de requisitos define as características
mais importantes

9
Características Fundamentais

• O sistema é desenvolvido em uma série de versões


• Usuários e stakeholders são envolvidos na especificação
e avaliação
• Podem propor alterações e novos requisitos

• Interfaces de usuário são geralmente desenvolvidas


com um sistema interativo
• Podem gerar após uma interface ou esqueleto dela

10
Métodos Ágeis

• Na década de 1980 e início da de 1990, havia um


entendimento que a melhor maneira de se
conseguir o melhor software era através:
• Planejamento cuidadoso
• Qualidade da segurança formalizada
• Uso de métodos de análise e projeto, etc.

• Sistemas como de controle de aeronave podem ser


desenvolvidos com esse tipo de abordagem
11
Métodos Ágeis

• Essas abordagens possuem um grande overhead

• Se justifica quando:
• O trabalho de várias equipes devem ser coordenados
• Quando o sistema é crítico
• Quando muitas pessoas diferentes estão envolvidas na
manutenção do software

12
Métodos Ágeis

• No entanto, quando essa abordagem é aplicada em


sistemas corporativos de médio e pequeno porte, o
overhead é muito grande
• Gasta-se mais tempo em análises de como o sistema
deve ser do que no próprio desenvolvimento

• Como os requisitos se alteram, o retrabalho é


essencial

13
Métodos Ágeis

• A insatisfação com essas abordagens pesadas levou


vários desenvolvedores a proporem novos
“métodos ágeis”, na década de 1990

• Tem como objetivo reduzir a burocracia do


processo
• Evita-se criar artefatos de longo prazo e qualquer
documentação que nunca será usada

14
Métodos Ágeis

• São métodos de desenvolvimento incremental em


que cada incremento é pequeno e são
disponibilizadas periodicamente
• A cada 2 ou 3 semanas

• Os clientes são envolvidos no processo de


desenvolvimento para obter o feedback rápido da
evolução dos requisitos
• Minimiza-se a documentação, utilizando mais a
comunicação informal do que reuniões ou15documentos
Manifesto para Desenvolvimento
Ágil de Software
“Estamos descobrindo maneiras melhores de desenvolver software,
fazendo-o nós mesmos e ajudando outros a fazerem o mesmo. Através
deste trabalho, passamos a valorizar:

Indivíduos e interações mais que processos e ferramentas


Software em funcionamento mais que documentação
abrangente
Colaboração com o cliente mais que negociação de contratos
Responder a mudanças mais que seguir um plano
Ou seja, mesmo havendo valor nos itens à direita, valorizamos mais os
itens à esquerda.” 16
Métodos Ágeis

• Existem vários métodos ágeis


• Scrum
• XP (eXtreme Programming)
• Crystal
• Desenvolvimento de software adaptativo
• TDD (Test Driven Development)
• FDD (Feature Driven Development)
• Etc.
17
Métodos Ágeis

• Apesar de todos os métodos serem incrementais


no desenvolvimento e entrega, eles são diferentes
entre si

• No entanto, compartilham de um conjunto de


princípios

18
Princípios dos Métodos Ágeis

• Envolvimento do cliente
• Clientes devem estar intimamente envolvidos no
processo de desenvolvimento
• Seu papel é fornecer e priorizar novos requisitos e
avaliar suas interações

• Entrega incremental
• O software é desenvolvido em incrementos com o
cliente, especificando os requisitos para serem incluídos
em cada um
19
Princípios dos Métodos Ágeis

• Pessoas, não processos


• As habilidades da equipe de desenvolvimento devem
ser reconhecidas e exploradas
• Membros da equipe devem desenvolver sua própria
maneira de trabalhar, sem processos prescritivos

• Aceitar as mudanças
• Deve-se ter em mente que os requisitos do sistema vão
mudar, por isso projete o sistema de maneira a
acomodar essas mudanças
20
Princípios dos Métodos Ágeis

• Manter a simplicidade
• Focalize a simplicidade, tanto do software a ser
desenvolvido quanto do processo de desenvolvimento
• Sempre que possível, trabalhe ativamente para eliminar
a complexidade do sistema

21
Resumo da Aula

• Desenvolvimento Ágil de Software


• Características Fundamentais
• Métodos Ágeis
• Manifesto para Desenvolvimento Ágil de Software

• Princípios dos Métodos Ágeis

22
Exercícios

• Na sua opinião, quais modelos de processo


fundamentam as abordagens ágeis de
desenvolvimento? Por que?

23
Referências

 SOMMERVILLE, Ian. Engenharia de software. 9ª


edição. São Paulo: Pearson Prentice Hall, 2011.
 PRESSMAN, Roger S. Engenharia de software.
McGraw Hill Brasil, 2011.
 GUEDES, G. UML 2 – Uma abordagem prática. 2ª
ed. São Paulo: Novatec, 2011.
 Notas de aula do professor João Pablo Silva da
Silva.
 Notas de aula do professor Thiago Krug,
IFFarroupilha – Campus Uruguaiana.

Você também pode gostar