A Preparação Para Prova de Engenharia de Software
Por: Yi shin Chien • 25/10/2022 • Trabalho acadêmico • 1.409 Palavras (6 Páginas) • 248 Visualizações
Chien Yi Shin 2° Período ADS 24/09/2022
Engenharia de Software I
Exercícios – Preparação para a Prova1
1. “O ciclo de vida cascata é o modelo de desenvolvimento de software mais antigo e foi amplamente usado. Entretanto, críticas têm levado ao questionamento sobre sua eficiência.”
PRESSMAN, R Engenharia de Software MCGrawHill, 6. ed. 2010
Sobre as dificuldades comumente citadas relacionadas à aplicação do ciclo de vida cascata, assinale a alternativa correta:
I. A natureza linear do ciclo de vida cascata pode ocasionar estados de bloqueio onde alguns membros da equipe não podem iniciar suas tarefas porque precisam esperar que tarefas anteriores sejam finalizadas.
II. Projetos reais muitas vezes não seguem o fluxo sequencial que o ciclo de vida cascata propõe.
III. O modelo requer que todos os requisitos sejam completamente definidos no início do projeto e, na prática, é difícil para o usuário declarar todos os requisitos de forma completa.
IV. A versão operacional do software é disponibilizada apenas no final do projeto.
Assinale a alternativa correta:
a) somente as afirmativas I e IV são verdadeiras.
b) somente as afirmativas III e IV são verdadeiras.
c) somente as afirmativas I, II e III são verdadeiras.
d) as afirmativas I, II, III e IV são verdadeiras.
e) as afirmativas I, II, III e IV não são verdadeiras.
2. Considere as afirmações apresentadas a seguir e defina quais são verdadeiras e quais são falsas, justificando sua resposta:
(F) Qualquer modelo de processo de software pode ser utilizado em qualquer tipo de projeto.
Nem todos os modelos de processo de software podem ser utilizados em qualquer tipo de projeto, pois dependem das características do projeto, equipe e cliente.
Por exemplo, os modelos tradicionais não podem ser implementados em qualquer projeto, eles são mais adequados a projetos com requisitos mais estáveis e definidos no início de seu desenvolvimento, sendo difíceis em projetos que necessitam de grande flexibilidade para acomodação de mudanças.
Já os modelos ágeis podem ser aplicados em qualquer projeto de software, pois são fáceis de serem adaptadas para o contexto do projeto, considerando o problema que precisa ser resolvido e suas características.
(F) Nos modelos ágeis não se produz documentação.
Embora os modelos ágeis dêem preferência pela codificação do que a documentação formal, ela existe nas metodologias de desenvolvimentos ágeis.
(V) Nos modelos iterativos, é preferível utilizar ciclos de desenvolvimento de curta duração.
Ciclos de desenvolvimento de curta duração permitem feedbacks rápidos durante a produção do produto de software, possibilitando aos desenvolvedores a entrega frequente do andamento do projeto ao cliente e respostas rápidas as constantes mudanças de requisitos do cliente.
3. Durante o desenvolvimento de um novo produto de software, a equipe de desenvolvimento tem elaborado protótipos para o entendimento dos requisitos. Quais os benefícios que podem ser obtidos o uso de protótipos no entendimento dos requisitos? Há algum risco? Explique
Os protótipos são elaborados para atender e entender de forma adequado os requisitos exigidos, minimizando os riscos, custos e o tempo gasto com retrabalhos, além de mostrar ao cliente uma visão do produto. Os protótipos não oferecem riscos, pois eles foram feitos para evitar imprevistos durante o desenvolvimento.
4. Programação por pares, TDD, Refatoração são práticas presentes no método ágil XP. Explique cada uma dessas práticas.
Programação por pares: o desenvolvimento do programa é feito por dois programadores.
TDD: “Desenvolvimento Orientado a Testes” é uma metodologia para desenvolvimento e escrita código, se baseia na aplicação de pequenos ciclos de repetições e em cada um deles, um teste é aplicado.
Refatoração: reestruturar o sistema, sem alterar o seu comportamento de forma que melhore e simplifique o que já existe e tornando-o mais flexível.
5. Considere as características do Ciclo de Vida Clássico e as características dos Modelos Ágeis de desenvolvimento de software. Compare essas duas formas de desenvolvimento de software, citando vantagens e desvantagens de cada um.
Ciclo de vida clássico
Características:
- Modelo sistemático e sequencial, necessitando terminar uma fase para dar início a outra.
- Determina “o que fazer” e “não como fazer”, ou seja, define todos os requisitos e seus detalhes no começo do desenvolvimento, entregando ao cliente uma documentação completa, inteligível, preciso, consistente e sem ambiguidades.
- Espera-se uma execução totalmente fiel a documentação aprovada desde o início até a entrega do projeto final.
- Entrega do projeto somente quando este fica totalmente pronto.
Desvantagens:
- Pouca flexibilidade para acomodação de mudanças.
- Fases de testes somente no final do desenvolvimento, e caso ocorra erros ou o projeto não ser de agrado do cliente, pode implicar no reinício do projeto, pois não será possível refazer apenas a fase anterior.
- Possibilidade de estado de bloqueio.
Modelos ágeis:
Características:
- Podem se adaptar a qualquer projeto de desenvolvimento de software.
- Entrega incremental do software.
- Entregas de fases constantes até o produto final.
- Equipes pequenas.
- Simplicidade e menos formalidade na documentação.
- São ágeis em dar respostas às mudanças constantes de requisitos e na resolução de problemas.
Desvantagens:
- Acúmulo de tarefas por atraso de entregas.
- Necessidade de uma equipe dedicada e interessados, para que não ocorra desalinhamento ao longo do projeto.
- Prazos incertos devido a alterações e mudanças de prioridades.
6. Cite três motivos que podem causar atrasos em um projeto de desenvolvimento de software. Proponha ações que possam ser adotadas durante o projeto para evitar que o atraso aconteça.
...