Você está na página 1de 5

Engenharia de Software III

Princípios e Práticas para Desenvolvimento de Software com Produtividade

Lista de Exercícios para Fixação de conteúdos


Por favor, preencha as respostas no forms vinculado a tarefa registrada no Teams do
nosso grupo

1. Diferencie requisitos funcionais de requisitos não-funcionais.

2. Em 2015, descobriu-se que o software instalado em mais de 11 milhões de


carros da Volkswagen detectava quando eles estavam sendo testados em um
laboratório de certificação. Nessas situações, o carro emitia poluentes dentro
das normas legais. Fora do laboratório, emitia-se mais poluentes, para melhorar
o desempenho. Ou seja, o código provavelmente incluía uma estrutura de
decisão como a seguinte (meramente ilustrativa, para fins deste exercício):

if "Carro sendo testado em um laboratório"


"Emita poluentes dentro das normas"
else
"Emita poluentes fora das normas"

O que você faria se seu chefe pedisse para escrever um if como o acima? (para
mais informações sobre esse episódio com automóveis Volkswagen, consulte
essa página da Wikipedia).

3. [POSCOMP 2010, adaptado] Sobre Engenharia de Requisitos, marque


somente a afirmação FALSA.

( ) A Engenharia de Requisitos, como todas as outras atividades de Engenharia


de Software, precisa ser adaptada às necessidades do processo, do projeto, do
produto e do pessoal que está fazendo o trabalho.

1
Engenharia de Software III
Princípios e Práticas para Desenvolvimento de Software com Produtividade

( ) No estágio de levantamento e análise dos requisitos, os membros da equipe


técnica de desenvolvimento do software trabalham com o cliente e os usuários
finais do sistema para descobrir mais informações sobre o domínio da
aplicação, que serviços o sistema deve oferecer, o desempenho exigido do
sistema, as restrições de hardware, entre outras informações.

( ) Na medida em que a informação de vários pontos de vista é coletada, os


requisitos emergentes são consistentes.

( ) A validação de requisitos se ocupa de mostrar que estes realmente definem o


sistema que o cliente deseja. Ela é importante porque a ocorrência de erros em
um documento de requisitos pode levar a grandes custos relacionados ao
retrabalho.

4. Cite o nome de pelo menos cinco técnicas para levantamento de requisitos.

5. No livro “Engenharia de Software Moderna”, o prof. Marco Valente descreve a


técnica de Histórias de Usuários para efetuar o levantamento de requisitos (Leia
aqui Cap. 3: Requisitos – Engenharia de Software Moderna
(engsoftmoderna.info));
A partir da leitura deste trecho, escreva um caso de uso para um Sistema de
Controle de Bibliotecas (similar ao que foi usado para ilustrar a escrita de
histórias).

6. O seguinte caso de uso tem apenas o fluxo normal.


Escreva extensões para ele. (Saiba sobre extensões mais em Cap. 3: Requisitos –
Engenharia de Software Moderna (engsoftmoderna.info) )

Comprar Livro

2
Engenharia de Software III
Princípios e Práticas para Desenvolvimento de Software com Produtividade

Ator: Usuário da loja virtual


Fluxo normal:

1. Usuário pesquisa catálogo de livros


2. Usuário seleciona livros e coloca no carrinho de compra
3. Usuário decide fechar compra
4. Usuário seleciona endereço de entrega
5. Usuário seleciona tipo de entrega
6. Usuário seleciona modo de pagamento
7. Usuário confirma pedido

07. O que é Produto Mínimo Viável (MVP)?


(Saiba sobre mais em Cap. 3: Requisitos – Engenharia de Software Moderna
(engsoftmoderna.info) )

08. Quando começou, a EasyTaxi — a empresa brasileira de aplicativos para


solicitação de táxis — construiu um MVP que usava um software muito simples
e uma parte operacional realizada de forma manual. Pesquise na Internet sobre
esse MVP (basta usar as palavras EasyTaxi e MVP) e faça uma descrição do
mesmo.

09. Suponha que estamos em 2008, quando ainda não existia Spotify, e você
decidiu criar uma startup para oferecer um serviço de streaming de músicas na
Internet. Então, como primeiro passo, você decidiu começar com um MVP.
Quais seriam as principais funcionalidades desse MVP?

3
Engenharia de Software III
Princípios e Práticas para Desenvolvimento de Software com Produtividade

10. Suponha que estamos em 2008, quando ainda não existia Spotify, e você

decidiu criar uma startup para oferecer um serviço de streaming de músicas na

Internet. Então, como primeiro passo, você decidiu começar com um MVP.

Quais métricas você usaria para medir o sucesso/fracasso do MVP?

11. (ENADE 2011) Uma equipe está realizando testes com o código-fonte de um
sistema. Os testes envolvem a verificação de diversos componentes
individualmente, bem como das interfaces entre eles. Essa equipe está
realizando testes de:

( ) unidade
( ) aceitação
( ) sistema e aceitação
( ) integração e sistema
( ) unidade e integração

12. Suponha o seguinte requisito: alunos recebem conceito A em uma disciplina


se tiverem nota maior ou igual a 90. Seja então a seguinte função que
implementa esse requisito:
boolean isConceitoA(int nota) {
if (nota > 90)
return true;
else return false;
}
A implementação dessa função possui um bug? Se sim, quando esse bug
resulta em falha?

4
Engenharia de Software III
Princípios e Práticas para Desenvolvimento de Software com Produtividade

13. Sobre Refactoring, marque a alternativa FALSA:

( ) refactorings melhoram o projeto de um sistema de software.


( ) refactorings tornam o código de um sistema mais fácil de ser
entendido.
( ) refactorings facilitam a localização e a correção de bugs futuros.
( ) refactorings aceleram a implementação de novas funcionalidades.
( ) refactorings melhoram o desempenho de um sistema, em termos de
tempo de execução.

14. Defina e descreva o que é DevOps e quais os seus objetivos.

15. Pesquise sobre CMMI (Capability Maturity Model Integration) e então


descreva-o com suas próprias palavras. (500 caracteres no mínimo)

Você também pode gostar