Laboratório de Engenharia de Software

Exercícios

Última ocorrência: 2023-09-19 em Universidade LaSalle Canoas

Posts Relacionados

Nota: Todas as questões foram extraídas de provas do ENADE, e podem ter sofrido alterações.

Questão 1

Duas técnicas comumente utilizadas para ampliar as informações básicas sobre requisitos são personas e cenários. Frequentemente usadas juntas, essas técnicas se complementam de forma a trazer detalhes realísticos que possibilitam ao desenvolvedor explorar as atividades atuais do usuário, uso futuro de novos produtos e visões futuristas de novas tecnologias. Elas também podem guiar o desenvolvimento ao longo do ciclo de vida do produto. ROGERS, Y.; PREECE, J.; SHARP, H. Interaction Design: beyond human-computer interaction.
5. ed. Indianapolis, IN, USA: John Wiley & Sons, Inc., 2019 (adaptado).

Com base no texto apresentado e sobre os objetivos do uso de personas e cenários em um processo de elicitação de requisitos, avalie as afirmações a seguir.

  1. O uso de personas e cenários, em um processo de elicitação, explicita algumas situações que aparecem implícitas nos requisitos.
  2. O uso de personas e cenários, em um processo de elicitação, ajuda o projetista a entender melhor o impacto das decisões de projeto.
  3. O uso de personas e cenários, em um processo de elicitação, facilita a especificação formal e não-ambígua dos requisitos de interação.
  4. O uso de personas e cenários, em um processo de elicitação, lembra à equipe de desenvolvimento que pessoas reais usarão o produto.

É correto o que se afirma em:

Justifique as afirmações consideradas falsas.

Questão 2

O surgimento das metodologias ágeis eliminou o gerenciamento baseado em planos, substituindo-o pelo planejamento incremental. A documentação de projeto foi reduzida ao mínimo e deixou de ser previsto um gerente de projeto. Infelizmente, esse tipo de abordagem não atende as necessidades das organizações, em que gerentes de negócio necessitam acompanhar o andamento dos projetos, controlar orçamento, estabelecer prioridades e atualizar seus planos de negócio. Nesse contexto, foi desenvolvido o SCRUM, um framework para a organização de projetos ágeis. O SCRUM prevê dois indivíduos: o Scrum Master e o Product Owner, que são responsáveis por atuar como interface entre a equipe de desenvolvimento e a organização. SOMMERVILLE, I. Engineering Software Products: An Introduction to Modern Software Engineering.
Boston: Pearson, 2019 (adaptado).

Em relação à metodologia Scrum, avalie as afirmações a seguir.

  1. O papel do Scrum Master é guiar a equipe no uso efetivo da metodologia Scrum.
  2. O papel do Product Owner é garantir o foco no produto, evitando que o mesmo se perca em questões técnicas menos relevantes.
  3. Tanto o Scrum Master como o Product Owner têm autoridade direta sobre a equipe.

É correto o que se afirma em

Justifique as afirmações consideradas incorretas.

Questão 3

Uma empresa pretende desenvolver um sistema de folha de pagamento cujo processo de modelagem utilizará UML (Unified Modeling Language). Essa empresa tem três tipos de colaborador: o comissionado, o horista e o assalariado. Todos os colaboradores registram, para efeito de controle, o número de horas trabalhadas no mês. Adicionalmente, os comissionados registram o valor do percentual de comissão e o valor total de vendas acumulado no mês; os horistas registram o valor recebido por hora; e os assalariados registram o valor do salário.

Cada colaborador pertence a um departamento e cada departament possui pelo menos um colaborador. No final de cada mês, cada departament deve calcular o salário dos seus colaboradores da seguinte forma: os comissionados devem receber o valor total das vendas multiplicado pela porcentagem independentemente do número de horas trabalhadas; os horistas devem receber o valor da hora trabalhada multipilcado pelo número de horas trabalhadas; e os assalariados devem receber o valor nominal do salário.

Considerando essa situação e que o modelo que será elaborado para representá-la utilizará herança e polimorfismo, desenhe um diagrama ULM que contenha:

Questão 4

Considere os seguintes requisitos para desenvolvimento de uma solução para uma rede de restaurantes fast-food:

Quando o status de um pedido é atualizado, todos os dispositivos dos envolvidos devem receber a informação. Os sistemas a ser atualizados incluem os acessados pelo entregador, pela linha de produção e pela central de atendimento. Espera-se ainda que outros sistemas possam ser incluídos futuramente (por exemplo, sistema de pedido on-line do cliente), devendo se comportar da mesma forma.

Considerando esse contexto, avalie as asserção a seguir e a relação proposta entre elas:

  1. O requisito apresentada pode ser implementado com a utilização do padrão de projeto Observer, PORQUE
  2. O padrão de projeto Observer realiza o estilo arquitetural cliente-servidor, no qual a servidor é responsável por enviar notificações aos clientes sempre que houver atualização em alguma informação de interesse.

A respeito dessas asserções, assinale a opção correta:

Justifique as afirmações consideradas falsas, ou por que a afirmação 2 não é justificativa correta da 1.

Questão 5

O encapsulamento é um mecanismo da programação orientada a objetos no qual os membros de uma classe (atributos e métodos) constituem uma caixa preta. O nível de visibilidade dos membros pode ser definido pelos modificadores de visibilidade privado, público e protegido.

Com relação ao comportamento gerado pelos modificadores de visibilidade, assinale a opção correta.

Justifique porque as outras alternativas não estão corretas.

Questão 6

Os métodos ágeis são fundamentados no desenvolvimento e entrega incremental tendo em vista atender aos requisitos dos clientes. Eles agrepam um conjunto de princípios provenientes do manifesta ágil, tais como:

O Scrum é um exemplo de método ágil de gerenciamento de projetos. Avalie as afirmações a seguir sobre a relação edo Scrum com os princípios do manifesto ágil.

  1. O Scrum adota a entrega incremental por meio de Sprints.
  2. O Scrum adota a simplicidade por meio do uso da programação em pares.
  3. O Scrum adota o envolvimento do cliente com a priorização e a negociação dos requisitos na concepção de Sprints.

É correto o que se afirma em

Justifique as afirmações consideradas incorretas.

Questão 7

Uma loja pretende desenvolver um sistema cujo processo de modelagem utilizará UML (Unified Modeling Language).

Essa empresa tem dois tipos de colaboradores, o atendente e o gerente, e a principal atividade a ser automatizada pelo sistema é o processamento de vendas, cuja execução é altamente complexa. Dessa forma, a modelagem deve ser realizada de maneira estruturada e organizada, tendo como foco a sua reutilização em diferentes contextos.

Da conversa com a empresa, descobriu-se que:

Considerando a situação apresentada no texto, elabore um Diagrama de Caso de Uso completo para esse sistema, identificando os atores, os casos de uso e os relacionamentos.

Questão 8

O gestor de uma instituição seguradora solicitou ao desenvolvedor de software o projeto de uma solução computacional para a instituição. Após executar a análise de requisitos, esse desenvolvedor esboçou o diagrama UML (Unified Modeling Language), contendo os elementos apresentados na figura a seguir.

Diagrama de Classe

Em relação ao que é proposto no diagrama, avalie as afirmações a seguir.

  1. A classe Seguro é a superclasse de uma hierarquia de herança múltipla.
  2. O mecanismo de ligação entre as classes Segurado e Seguro é a associação.
  3. As subclasses Residencial, Automotivo e Vida devem ser implementadas como classes abstratas.
  4. É permitido que um Segurado possa adquirir várias apólices de Seguro.

É correto apenas o que se afirma em

Justifique as alternativas incorretas.

Questão 9

No desenvolvimento do módulo de integração do sistema do SAMU com os sistemas de hospitais, um analista gerou o seguinte diagrama de sequência.

Diagrama de Sequência

Com relação ao diagrama apresentado, avalie as asserções a seguir e a relação proposta entre elas.

  1. As chamadas 4:procurarVaga() e 5:procurarVaga() são feitas simultaneamente (em paralelo) pela API para minimizar o tempo de espera da chamada 2: procurarLeitos(). PORQUE
  2. As chamadas 10:definirVaga() e 12:definirVaga() são feitas simultaneamente (em paralelo), mas a espera do retorno é feita em sequência, o que aumentará o tempo de resposta.

A respeito dessas asserções, assinale a opção correta.

Justifique as asserções falsas, ou por que a asserção 2 não é justificativa da asserção 1.