Buscar

Slides de Aula Unidade III

Prévia do material em texto

Profa. MSc. Priscila Facciolli
UNIDADE III
Engenharia de Software I
 Em 2001, Kent Beck e 16 outros notáveis desenvolvedores, produtores e consumidores de 
software, conhecidos como Aliança Ágil, assinaram o Manifesto para o Desenvolvimento Ágil 
de Software (http://agilemanifesto.org/).
Modelos e Métodos Ágeis
 Indivíduos e interações em vez de processos e ferramentas.
 Software funcionando em vez de documentação abrangente.
 Colaboração do Cliente em vez de negociação de contratos.
 Resposta às modificações em vez de seguir um plano.
Manifesto Ágil – Valores
1. Modificações de requisitos são bem-vindas.
2. Entrega de software funcionando frequentemente.
3. Pessoal de negócio e desenvolvedores trabalhando juntos.
4. Indivíduos motivados.
5. Conversa face a face para levantar informações.
6. Software funcionando com medidas de progresso.
Manifesto Ágil – Princípios
7. Ritmo constante de desenvolvimento sustentável.
8. Excelência técnica.
9. Simplicidade.
10. Equipes auto-organizadas.
11. Equipe reflete sobre como se tornar mais efetiva, então sintoniza e ajusta adequadamente 
seu comportamento.
Manifesto Ágil – Princípios
Manifesto Ágil – Como os times ágeis agregam valor
Alho Tomate
4 12
3 x
Alho Tomate
4 12
3 x
Fonte: XXXXXX
Fonte: Livro-texto.
Trabalhando e produzindo software
Debates regulares com stakeholders
Identificação dos stakeholders e metas
Consideração da usabilidade
Definição do ponto (feito)
Melhoria do processo de negócio
Início do projeto
Mudança de pessoal
Documentação de apoio (suporte)
19%
40%
48%
58%
67%
70%
71%
74%
88%
Princípios Básicos:
 Simplicidade.
 Comunicação.
 Feedback.
 Coragem.
Extreme Programming (XP) 
As 12 Práticas:
1. Processo de Planejamento (“Planning Game”)
2. Releases Curtos
3. Metáfora
4. Projeto (Design) Simples
5. Testes
6. Refactoring
7. Gerenciar a qualidade
8. Programação em Pares
9. Propriedade Coletiva do Código
10. Integração Contínua
11. Semana de 40 horas
12. On-Site Customer (Cliente sempre presente)
Extreme Programming (XP) 
Extreme Programming (XP) – Ciclo de Desenvolvimento
Fonte: Livro-texto.
Histórias de
usuário
Arquitetura
de risco
Metáforas
do sistema
Requisitos
Cenários de
testes
Erros
Liberação
Plano de
liberação
Plano de
liberação
Testes 
de aceite
Próxima
iteração
Última
versão
Estimativas
confidenciaisRiscos
Estimativas
incertas
Aprovação
do cliente
Pequenas
liberações
Nova história do usuário
Velocidade do projeto
 Não haver nenhuma documentação do projeto.
 Trabalhar somente com recursos de nível sênior é mais caro e difícil.
 Difícil controle para projetos grandes.
 Software é construído para o “agora”.
 Mudança cultural.
Extreme Programming (XP) – Desvantagens do Processo
Métodos ágeis visam a acelerar o processo de desenvolvimento de software. Dentre as opções 
abaixo, qual representa uma prática proposta pelo Manifesto Ágil?
a) Processo cascata de desenvolvimento.
b) Equipe com perfil misto.
c) Grande quantidade de desenvolvedores.
d) Horas extras são essenciais.
e) Entregas contínuas.
Interatividade
Métodos ágeis visam a acelerar o processo de desenvolvimento de software. Dentre as opções 
abaixo, qual representa uma prática proposta pelo Manifesto Ágil?
a) Processo cascata de desenvolvimento.
b) Equipe com perfil misto.
c) Grande quantidade de desenvolvedores.
d) Horas extras são essenciais.
e) Entregas contínuas.
Resposta
 Gerenciamento ágil de projetos;
 É um processo incremental para o desenvolvimento de qualquer produto de software; 
 É um processo incremental para o gerenciamento de qualquer projeto;
 Formal e tem passos predefinidos;
 Pouca flexibilidade de mudanças.
SCRUM
 Processos: reunião de planejamento, reunião diária, reuniões de revisão e de 
lições aprendidas.
 Ferramentas: quadro Kanban, estórias, gráficos de controle.
 Pessoas: Scrum Master, Product Owner e Time de desenvolvimento.
 Cultura: time multidisciplinar, time autogerenciável, entrega de valor, cliente parte do time, 
entregas contínuas e colaboração.
SCRUM: Componentes
SCRUM – Ciclo de Vida
Fonte: Livro-texto.
Itens a serem
desenvolvidos 
no projeto
Itens a serem
desenvolvidos 
no sprint
Reunião diária
do time
Incremento
entregável
Sprint 
backlog
Potentially
shippable
product
increment
Product
backlog
2-4
semanas
 O Product Backlog representa uma lista com todos os requisitos priorizados e ordenados de 
acordo com o valor que representam para o cliente e negócio.
 Um Sprint é um incremento de 2 a 4 semanas que a equipe de projeto tem para 
produzir o incremento.
 Uma Review Meeting é uma reunião ao final do sprint para o cliente realizar o aceite 
do incremento.
 Uma Retrostective Meeting é uma reunião para o time avaliar 
os fatos positivos e negativos observados.
SCRUM – Conceitos
SCRUM – Controles
Quadro
Kanban
Gráfico
Burndown
Fonte: Livro-texto
Fonte: Livro-texto
Requisito
1
Atividade
5
Atividade
1
Lilica
José
Impedido
Jô
Item da
backlog
Para fazer Em andamento Para verificar Concluído
140
120
100
80
60
40
20
0
1 2 3 4
Dia
5 6
Ideal
Realizada
 É um modelo ágil dirigido por casos de uso, que utiliza prototipação desde o início e 
diagramas da UML.
 Os diagramas utilizados são: casos de uso, diagrama de classes, diagrama de objetos e 
diagrama de sequência.
 É um processo mais simples que o processo unificado, sem perder a simplicidade do XP.
ICONIX
ICONIX – Ciclo de Vida
Fonte: Livro-texto
Prototipação
Análise de
requisitos
Revisão dos
requisitos
Requisitos
de software
Requisitos
de software
Software
pronto
Revisão
detalhada e
crítica do projeto
Ajustes finos e
implantação
Projeto
Análise e
projeto
preliminar
Revisão
do projeto
preliminar
Software 
pronto
 Prototipar a interface com o usuário;
 Escrever um caso de uso que defina como a interface irá se comportar;
 Elaborar o diagrama de classes de domínio;
 Incluir a visão de solução técnica a partir dos casos de uso com o diagrama de objetos;
 Elaborar os diagramas de sequência dos cenários;
 Implementar o caso de uso;
 Retornar ao passo 1 até terminarem as interfaces.
ICONIX – Passo a passo
O SCRUM é um dos modelos ágeis mais utilizados no mercado. Qual das opções abaixo se 
refere a uma atividade do método SCRUM?
a) Gerente de projetos.
b) Reuniões de diárias e de revisão.
c) Diagrama de classes.
d) Dirigido por casos de uso.
e) Protótipo de interface desde o início.
Interatividade
O SCRUM é um dos modelos ágeis mais utilizados no mercado. Qual das opções abaixo se 
refere a uma atividade do método SCRUM?
a) Gerente de projetos.
b) Reuniões de diárias e de revisão.
c) Diagrama de classes.
d) Dirigido por casos de uso.
e) Protótipo de interface desde o início.
Resposta
 Esse método existia antes do Manifesto ágil, publicado em 2001;
 Baseia-se no desenvolvimento por funcionalidade, ou seja, por requisitos funcionais 
do sistema;
 Pode ser utilizado em conjunto com o SCRUM, em que o FDD seja o processo de 
desenvolvimento e o SCRUM de gerenciamento.
Feature Driven Development (FDD)
 Análise orientada a objetos.
 Decomposição funcional para criar a lista de funcionalidades.
 Planejamento incremental por funcionalidade.
 Desenho orientado a objetos.
 Construção por funcionalidade.
 Testes contínuos por funcionalidade.
Feature Driven Development (FDD) – Processos Básicos
Feature Driven Development (FDD) – Ciclo de Vida 
Fonte: Livro-texto.
Design ou
projeto
Inspeção do 
design
Codificação
(sugere-se o TDD)
Testes
(sugere-se o TDD)
Integração
Inspeção de
código
Build completo
(entregável)
Processo FDD
cíclico e incremental
Vantagens:
 Modelagem orientada a objetos.
 Desenvolvimento incremental.
 Equipes pequenas.
 Inspeção para garantir a qualidade.
 Integração contínua.
Desvantagem:
 Desenvolvedor é incentivadocomo único responsável pelo módulo que desenvolve.
Feature Driven Development (FDD)
Principais características:
 É incremental;
 Ciclos de 4 a 8 semanas;
 Cliente sempre presente durante o processo;
 Pode ser usado para sistemas grandes;
 Utiliza técnica de reunião JAD (Joint Application Development) para o 
desenvolvimento de aplicações.
Adaptative Software Development (ASD)
 Especular: define prazos e objetivos.
 Colaborar: Constrói de forma concorrente os 
vários componentes.
 Aprender: faz-se repetidas revisões de qualidade 
com a participação do cliente.
Adaptative Software Development (ASD) – Ciclo de Vida
Fonte: Livro-texto.
Colaborar Especular
Aprender
Vantagens:
 Desenvolvimento orientado a riscos.
 Desenvolvimento baseado em componentes.
 Equipes pequenas.
 Prazos prefixados (time-boxed).
 Boa tolerância a mudanças.
Desvantagens:
 Pouco levantamento de requisitos.
Adaptative Software Development (ASD)
 É o predecessor do método XP e baseado no RAD;
 Utilização de fixação de tempo;
 Equipes pequenas;
 Bom suporte a mudanças.
Dynamic System Development Method (DSDM)
Dynamic System Development Method (DSDM) – Ciclo de Vida
Funções que devem ser obedecidas:
 Coordenador-técnico, 
 Usuário-embaixador, 
 Usuário-consultor, 
 Visionário, Executivo responsável,
 Especialista de domínio e 
 Gerente.
Fonte: Livro-texto
Viabilidade
Modelo
funcional
(iteração)
Implemen-
tação
Design e
construção
(iteração)
Vantagens:
 Desenvolvimento incremental.
 Usuário sempre envolvido.
 Equipe DSDM autorizada a tomar decisões.
 Foca na entrega frequente do produto.
 “Construa certo, antes de construir corretamente”.
 Testes são integrados ao ciclo de vida.
Desvantagens:
 Requisitos são acompanhados em alto nível.
 Depende de autonomia para tomada de decisões.
Dynamic System Development Method (DSDM)
FDD, ASD e DSDM são métodos ágeis que precedem ao Manifesto Ágil de 2001, mas já 
propõem uma série de boas práticas recomendadas pelo Manifesto. Das características abaixo, 
qual alternativa contém práticas comuns aos três métodos?
a) Cliente sempre presente e desenvolvimento incremental.
b) Desenvolvimento incremental e prototipação.
c) Baseado em componentes e reúso.
d) Testes incorporados ao ciclo de vida e prototipação.
e) Nenhuma das anteriores.
Interatividade
FDD, ASD e DSDM são métodos ágeis que precedem ao Manifesto Ágil de 2001, mas já 
propõem uma série de boas práticas recomendadas pelo Manifesto. Das características abaixo, 
qual alternativa contém práticas comuns aos três métodos?
a) Cliente sempre presente e desenvolvimento incremental.
b) Desenvolvimento incremental e prototipação.
c) Baseado em componentes e reúso.
d) Testes incorporados ao ciclo de vida e prototipação.
e) Nenhuma das anteriores.
Resposta
Considera os seguintes fatores:
 Cada projeto tem suas próprias características.
 Equipes motivadas são fundamentais.
 Comunicação precisa ser efetiva.
 Foco na gestão de pessoas.
Método Crystal
 Difere dos demais métodos ágeis por ser uma família de metodologias e não apenas uma.
As famílias são definidas pelo tamanho da equipe e permitem a adaptação do método de 
acordo com o projeto:
 Crystal Clear – 3 a 10 pessoas.
 Crystal Yellow – 15 a 30 pessoas.
 Crystal Orange – 30 a 50 pessoas.
Método Crystal
Vantagens:
 Ênfase no processo de comunicação da equipe.
 Especificações e modelos são informais.
 Utiliza casos de uso da UML.
 Usa incrementos regulares de um mês.
 Método é pouco definido para permitir adaptações.
Desvantagens:
 Informalidade pode gerar dúvidas em projetos maiores.
 Flexibilidade de adaptação pode gerar falhas.
Método Crystal 
 Não é método de testes, mas sim um método de desenvolvimento, criado por Kent 
Beck em 2003.
 Baseia-se em ciclos curtos e é caracterizado por:
 Primeiro o desenvolvedor cria casos de testes para uma melhoria ou nova funcionalidade.
 Depois é produzido um código para atender aos testes esperados.
Test Driven Development (TDD)
Adicionar um teste: 
 Escrever um teste baseado na especificação.
 Faz o desenvolvedor focar nos requisitos.
 Na primeira execução os testes devem falhar, pois o código não está pronto.
Escrever o código:
 Construir o código para passar nos testes escritos e automatizados.
 Todos os testes devem passar com sucesso.
Test Driven Development (TDD) – Ciclo de Desenvolvimento
Refatorar o código:
 Melhoria do código escrito.
 Refazer os testes após alterações.
Repetir tudo:
 Iniciando outro teste, o ciclo é repetido.
 Incorpora requisitos e novos testes até ficar 100% correto.
 Usar a integração contínua para reversão.
Test Driven Development (TDD) – Ciclo de Desenvolvimento
Vantagens:
 Processo incremental.
 Especificações e modelos são informais.
 Testes unitários efetivos.
 Aumento da produtividade em alterações.
Desvantagens:
 Sem especificações não se constrói.
 A criação de testes automatizados podem gerar atrasos no 
tempo de construção.
 É um modelo ágil.
Test Driven Development (TDD)
 É um caminho alternativo à falta de modelos preconizadas pelos métodos ágeis, criando 
padrões, documentos e contratações formais.
 Propõe-se a encontrar um meio-termo, que permita uma modelagem suficiente para o 
desenvolvimento e não se torne um fardo para as equipes de construção.
 Permite que cada equipe defina o que é suficiente para o cliente e para o desenvolvimento.
Modelagem Ágil
Modelagem Ágil – Ciclo de Vida
Fonte: Livro-texto
Sem 
nenhuma
modelagem
Frequentemente resulta
em retrabalho quando o
software demonstra ser
mal projetado
Extremos 
jamais
são bons
Faz com que os 
esforços
de desenvolvimento
caminhem 
lentamente
Com 
excesso de 
modelagem
Necessidades
Requisitos
Arquitetura
Banco de dados
Transações
Códigos
Testes
Design
Análise
Implementação
 Definir e colocar em prática um conjunto de práticas que atendam às necessidades.
 Lidar com a questão de incluir modelos aos métodos ágeis, tornando-os mais formais.
 Discutir e propor um conjunto de atividades mínimas para a quebra do paradigma.
Modelagem Ágil – Objetivos
O Test Driven Development (TDD) é um método que tem como característica principal:
a) Aumentar a qualidade da especificação.
b) Fazer testes integrados.
c) Escrever os testes antes da codificação.
d) Elaborar protótipo.
e) Codificar e depois testar.
Interatividade
O Test Driven Development (TDD) é um método que tem como característica principal:
a) Aumentar a qualidade da especificação.
b) Fazer testes integrados.
c) Escrever os testes antes da codificação.
d) Elaborar protótipo.
e) Codificar e depois testar.
Resposta
ATÉ A PRÓXIMA!

Continue navegando