Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Denunciar
Compartilhar
Cris FidelixDocente Curso de Programador na Instituto Federal de Educação, Ciência e Tecnologia de São Paulo (IFSP) em FALC - FACULDADE ALDEIA DE CARAPICUIBA
Seguir
•0 gostou•501 visualizações
1 de 64
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Cris FidelixDocente Curso de Programador na Instituto Federal de Educação, Ciência e Tecnologia de São Paulo (IFSP) em FALC - FACULDADE ALDEIA DE CARAPICUIBA
4. Métodologias Ágeis
O QUE É:
A metodologia ágil é um modelo e uma filosofia que propõe alternativas à gestão de projetos
tradicional e tem a função de aprimorar o processo de desenvolvimento de um produto ou serviço.
O objetivo final é fazer entregas com rapidez e com maior frequência, conforme surgem as
necessidades do cliente. ... O Manifesto Ágil.
5. Manifesto Ágil - Princípios
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.
6. Manifesto Ágil - Princípios
9.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.
9. Extreme Programming - XP
A Extreme Programming (XP) é uma Metodologia Ágil para equipes pequenas e médias que
desenvolvem software baseado em requisitos vagos e que se modificam rapidamente.
O principal objetivo da XP é dar agilidade ao desenvolvimento do projeto e busca garantir a
satisfação do cliente.
10. Breve histórico da XP
Extreme Programming, ou simplesmente XP é uma das mais conhecidas metodologia de desenvolvimento de
software que segue os princípios do Manifesto Ágil.
Embora seu marco de criação seja o ano de 1996, a junção de princípios e boas práticas de programação são frutos
de um processo de evolução de pelo menos uma década em que Kent Beck e Ward Cunningham trabalharam na
Tektronixs, Inc. como consultores de problemas em SmallTalk (CASTRO, 2007).
Em 1996, Kent Beck foi chamado na empresa Chrysler para analisar o desempenho de projeto do C3 (Chrysler
Comprehensive Compensation System – Sistema de Compensação Abrangente da Chrysler). O sistema era nada
menos que o controle da folha de pagamento de aproximadamente 86 mil funcionários e o objetivo do projeto era
unificar os quatro sistemas de software legado diferentes que estavam sendo usados há vinte anos.
FONTE: https://hiperbytes.com.br/xp/metodologia-xp-extreme-programming-breve-historico-da-xp/
11. Breve histórico da XP
Em meados de 1990 uma tarefa um tanto difícil, mas de total importância para a Chrysler que aos poucos
viu o projeto se tornar um verdadeiro caos.
Havia problema em todos os processos, desde contratos irregulares a profissionais estressados e
desconfiados.
Foram três dias até Beck analisar todo o projeto para apresentar as seguintes opções para o CIO (Chief
Information Officer) da Chrysler: deixar da forma que estava; demitir todos os funcionários e cancelar o
projeto e; conceder uma semana de folga e começar o projeto do zero.
A Chrysler optou pela alternativa 3 e contratou Beck para ser responsável pelo projeto (TELES, 2006).
FONTE: https://hiperbytes.com.br/xp/metodologia-xp-extreme-programming-breve-historico-da-xp/
16. Jogo de Planejamento (Planning Game):
O desenvolvimento é feito em interações semanais. No início da semana, desenvolvedores e
cliente reúnem-se para priorizar as funcionalidades. Essa reunião recebe o nome de Jogo do
Planejamento e nelas já devem estar criadas antecipadamente pelos usuários as User
Stories (história dos usuários). Nessa reunião, o cliente identifica prioridades e os
desenvolvedores as estimam.
17. Jogo de Planejamento (Planning Game):
O desenvolvimento é feito em interações semanais. No início da semana, desenvolvedores e
cliente reúnem-se para priorizar as funcionalidades. Essa reunião recebe o nome de Jogo do
Planejamento e nelas já devem estar criadas antecipadamente pelos usuários as User
Stories (história dos usuários). Nessa reunião, o cliente identifica prioridades e os
desenvolvedores as estimam.
18. User Story
É apenas uma promessa de uma conversa, um lembrete de que mais detalhes serão necessários,
e não deve ser considerada suficiente para a realização do trabalho. Ela é o começo, mas
somente será útil para o desenvolvimento do produto se for seguida por uma série de conversas
entre as pessoas de negócios (em geral, o Product Owner) e os membros do Time de
Desenvolvimento. Essas conversas visam definir e capturar os detalhes de negócios necessários
para o desenvolvimento da funcionalidade que atenderá a essa necessidade do usuário.
20. DESVANTAGEM
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
21. Questão:
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 sequencial de desenvolvimento.
b) Analise e implementação de Riscos.
c)Grande quantidade de desenvolvedores.
d) Programação em pares.
e)Tempo no máximo de desenvolvimento de 60 dias.
22. SCRUM
É um 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
Têm pouca flexibilidade de mudanças
24. SCRUM : Componentes
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.
TUDO AQUILO QUE PRECISA IMPLEMENTAR, LISTA DE
FUNCIONALIDADES (REQUISITOS)!!!!
25. SCRUM
O projetoé divididoem ciclos ...SPRINT!!!!
SPRINT É UMA INTERAÇÃO
SPRINT É O PERÍODO PARA FINALIZAÇÃO DE CADA REQUISITO
Sprint = o incremento de 2 a 4 semanas que a equipe
de projeto tem para produzir o incremento.
26. SCRUM
Sprint Backlog = é a análise dos requisitos para informar a
equipe como será implementado
28. SCRUM: Conceitos
Time box = concentrar o que é mais importante.
Impedimentos = impede o andamento dos trabalhos.
Pronto = lista de funcionalidades que devem ser implementadas.
Review Meeting = é uma reunião ao final do Sprint para o cliente realizar o
aceite do incremento.
Retrospective Meeting = é uma reunião para o time avaliar os fatos positivos e
negativos observados.
Planning Poker = cartas com estimativas de esforço para cada atividade
escolhida do PRODUCT BACKLOG.
29. SCRUM: Equipe
Scrum Master = coordenador responsável por não estourar o sprint.
Product Owner= seleciona as atividades o SPRINT BACKLOG.
Equipe = seleciona o SPRINT BACKLOG a lista de funcionalidades que
devem ser implementadas.
33. SCRUM: Equipe
PORCOS = Product Owner, Scrum Master e Team
GALINHAS = pessoas que têm interesse, mas não faz parte da equipe
Stakeholders e usuários
34. Equipe: RESPONSABILIDADES
PO
• Descrição da função do software
•Retorno do investimento
•Alterar as prioridades
Scrum Master
•Liderança
•Melhorar as produtividade
•Promover as práticas de engenharia
•Entregar o código em funcionamento
37. QUESTÃO:
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) Sequencial e Linear
b)Planejamento do Sprint com reuniões diárias e revisão
c)Documentação com diagramas de classes
d) Dirigido por casos de uso
e)Protótipo de interface desde o início
38. Links: Metodologias de Desenvolvimento de
Jogos Scrum | Fábrica de Jogos
https://www.profissionaisti.com.br/artefatos-e-ferramentas-scrum/
https://www.youtube.com/watch?v=k6mrbk3fQXA
39. TDD
Test Driven Development / Desenvolvimento orientado a teste
É parte da metodologia XP e também utilizado em diversas outras metodologias, além de
poder ser utilizada livremente.
Não é método de testes, mas sim um método de desenvolvimento, criado por Kent Beck em
2003.
O TDD transforma o desenvolvimento, pois deve-se primeiro escrever os testes, antes de
implementar o sistema.
Os testes são utilizados para facilitar no entendimento do projeto, segundo Freeman os
testes são usados para clarear a ideia em relação ao que se deseja em relação ao código.
40. TDD
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.
41. 1º criamos um teste ->
2º Fazemos a codificação para passar no teste ->
3ª Refatoramos nosso código
42. TDD
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.
43. Além disso, os testes devem seguir o modelo F.I.R.S.T.
•F (Fast) - Rápidos: devem ser rápidos, pois testam apenas uma unidade;
•I (Isolated) - Testes unitários são isolados, testando individualmente as unidades e não
sua integração;
•R (Repeateble) - Repetição nos testes, com resultados de comportamento constante;
•S (Self-verifying) - A auto verificação deve verificar se passou ou se deu como falha o
teste;
•T (Timely) - O teste deve ser oportuno, sendo um teste por unidade.
44. TDD
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.
45. Para facilitar ainda mais, existem diversas ferramentas que nos fazem ganhar ainda
mais tempo. Alguns exemplos para diferentes linguagens são:
46. QUESTÃO:
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.
48. Questões:
1) São algumas das metodologias de desenvolvimento de software consideradas ágeis (Agile
Software Process Models):
a) Incremental, XP e Espiral.
b) Waterfall, Scrum e TDD.
c) XP, TDD e Prototipação.
d) Scrum, XP e TDD .
49. Questões:
2) A abordagem iterativa de desenvolvimento de software tem se popularizado como técnica
padrão de desenvolvimento de sistemas pequenos e médios, especialmente no mundo dos
negócios.
Scrum e eXtreme Programming são métodos ágeis e iterativos de desenvolvimento de software
que compartilham a característica de:
a) ênfase em processos em vez de pessoas.
b) envolvimento restrito do cliente no processo de desenvolvimento.
c) Equipes auto organizadas.
d) dificuldade de atender a contínuas mudanças nos requisitos.
50. Questões:
3) Em um projeto de desenvolvimento de software, os membros da equipe do projeto conversam, diariamente,
numa rápida reunião, para verificar o andamento das tarefas e expor eventuais dificuldades.
Essa equipe é multidisciplinar, composta predominantemente de profissionais experientes que trabalham em
conjunto, auto organizáveis com um representante do cliente.
As iterações de trabalho são curtas (2 a 4 semanas) e, há uma análise dos requisitos para informar a equipe
como será implementado ao final de cada uma delas assim o produto ganha novas funcionalidades.
Nesse momento, a versão atual é apresentada funcionando ao cliente, visto que ter o software funcionando é
mais importante do que ter uma documentação detalhada.
51. Questões:
O modelo de desenvolvimento de sistemas que se encaixa nesse cenário é o :
a) Espiral.
b) TDD.
c) Prototipagem rápida.
d) Scrum.
e) Cascata.
52. Questões:
4) Acerca das metodologias XP e Scrum, assinale a afirmativa INCORRETA.
a) Scrum é uma metodologia ágil para gestão e planejamento de projetos de software. No Scrum, os projetos são
divididos em ciclos chamados Sprints.
b) No Scrum os requisitos do projeto são organizados em uma lista de tarefas, chamada de product backlog, em
ordem de prioridade.
c) XP é uma metodologia ágil para equipes de tamanho pequeno ou médio desenvolverem software com requisitos
vagos ou que mudem rapidamente.
d) XP no Planning Game os desenvolvedores e cliente reúnem-se para priorizar as funcionalidades usuários as User
Stories (história dos usuários).
e) O Scrum e o XP por serem metodologias sequenciais e linear não adotam valores como: comunicação,
simplicidade, feedback e coragem.
53. Questões:
5) Acerca dos processos XP e Scrum avalie as afirmativas a seguir:
I. XP é uma metodologia ágil para equipes de tamanho pequeno ou médio desenvolverem software com
requisitos vagos ou que mudem rapidamente.
Seus valores são comunicação, simplicidade, feedback e coragem.
II. O Scrum foi criado para gerenciamento de projetos de fabricação de automóveis e produtos de consumo. Sua
popularização no desenvolvimento de software ocorreu após a formalização de sua definição, feita por Kent
Back em 1997 em um projeto para a Chrysler .
III. No XP os requisitos do projeto são organizados em uma lista de tarefas, chamada de product backlog, em
ordem decrescente de prioridade.
54. Questões:
Assinale:
a) se somente a afirmativa I estiver correta.
b) se somente as afirmativas I e II estiverem corretas.
c) se somente as afirmativas I e III estiverem corretas.
d) se somente as afirmativas II e III estiverem corretas.
55. Questões:
6) Um dos principais conceitos do Scrum para atacar a complexidade do desenvolvimento e gerenciamento de
software é a implantação de um controle descentralizado, capaz de lidar mais eficientemente com contextos
pouco previsíveis. Para tanto, o gerenciamento é distribuído por meio de três agentes independentes que são:
a) Product Owner, Product Backlog e Planning Meeting.
b) Product Owner, Sprint e Planning Meeting.
c) Product Owner, Scrum Team e Scrum Master.
d) Sprint, Scrum Master e Planning Meeting.
e) Sprint, Scrum Team e Product Backlog.
56. Questões:
7) Um analista de TI está participando do desenvolvimento de um software orientado a objetos utilizando a
plataforma Java. Na abordagem de desenvolvimento adotada, o código é desenvolvido de forma incremental,
em conjunto com o teste para esse incremento, de forma que só se passa para o próximo incremento quando o
atual passar no teste. Como o código é desenvolvido em incrementos muito pequenos e são executados testes a
cada vez que uma funcionalidade é adicionada ou que o programa é refatorado, foi necessário definir um
ambiente de testes automatizados utilizando um framework popular que suporta o teste de programas Java.
A abordagem de desenvolvimento adotada e o framework de suporte à criação de testes automatizados são,
respectivamente:
A) Scrum e JUnit
B) Espiral e Jasmine
C) TDD e JUnit
D) Prototipação e PHPUnit
57. Questões:
8) Programação em pares utilizando história de usuários e Stand-up Meeting são características das práticas do:
a) Cascata.
b) Espiral.
c) Extreme Programming.
d) PMBOK.
e) SCRUM.
58. Questões:
9) No SCRUM, que papel é responsável pela visão do produto e pelo retorno do investimento:
a) Scrum Master.
b) Product Owner.
c) Sprint Planner.
d) Gerente do Projeto.
e) Analista de Sistemas Sênior.
59. Questões:
10) Com relação ao desenvolvimento dirigido a testes (do Inglês Test Driven Development - TDD), analise as
afirmativas a seguir.
I. O processo é incremental, as especificações e modelos são informais, os testes são unitários efetivos isto
aumenta da produtividade em alterações.
II. TDD implica escrever o código de teste antes do código de produção, um teste de cada vez, tendo certeza de
que o teste falha antes de escrever o código que irá fazê-lo passar.
III. TDD utiliza o modelo FIRST.
60. Questões:
Assinale:
a) se somente a afirmativa II estiver correta.
b) se somente as afirmativas I e II estiverem corretas.
c) se somente as afirmativas I e III estiverem corretas.
d) se somente as afirmativas I, II e III estiverem corretas.
62. Empresa
Uma empresa como líder mundial na fabricação de componentes automotivos, a base de
clientes desta empresa inclui praticamente todos os principais fabricantes nos mercados globais
automotivo de veículos comerciais e fora-de-estrada.
63. Desafio:
A empresa declarou proteção à falência, seus executivos de Recursos Humanos (RH) querem
reduzir os custos dos serviços, que são em média US$ 20 milhões por ano. As principais funções
do RH são terceirizadas para vários contratados.
No total são 15 projetos distintos incluídos no programa de transformação de RH, abrangendo
todos os aspectos da prestação de serviços de RH, como Folha de Pagamento, Benefícios, Saúde
e Bem-Estar e Pensões.
Os principais produtos finais não estão sendo atendidos em nenhum dos projetos e os excessos
de custos críticos estão aumentando. Com apenas quatro meses restantes para concluir todo o
programa de transformação de RH, o CIO deseja reestabelecer a empresa utilizando alguma
metodologia, pois o mesmo não têm o conhecimento em gerenciamento de programas para
alcançar os resultados esperados.
64. Solução:
Lembrando das metodologias que vimos até o momento nas aulas
sobre processo e desenvolvimento de software escolha uma
metodologia ser adotada para resolução do DESAFIO e depois
explique porquê escolheu a metodologia, quais são as
características/vantagens de se utilizar esta metodologia.