Pular para o conteúdo principal

Questão de Engenharia de Software — UML — CESPE / CEBRASPE 2024

Engenharia de SoftwareUML
Código
ce188493
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Área: Sistemas de Informação

Imagem da questão


Tendo como referência o diagrama de caso de uso apresentado anteriormente, julgue o próximo item, relativos a UML (unified modeling language).

O caso de uso informar endereço será acionado opcionalmente ao se acionar o caso de uso finalizar compra.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Relacionamentos entre casos de uso: include, extend e generalização

Gabarito: Errado (E). A afirmativa está incorreta porque, em UML, o relacionamento que indica que um caso de uso é acionado opcionalmente por outro é o extend (ou <<extend>>), e não o include (ou <<include>>). O include representa uma relação obrigatória e sempre executada quando o caso de uso base é acionado. Como o enunciado afirma que "informar endereço" será acionado opcionalmente ao acionar "finalizar compra", a relação correta seria extend, não include — portanto, a afirmação está errada.

O diagrama de casos de uso é um dos diagramas comportamentais da UML e tem como objetivo representar as funcionalidades do sistema do ponto de vista do usuário (atores). Ele mostra quem (ator) faz o quê (caso de uso) e como esses casos de uso se relacionam entre si. Os relacionamentos entre casos de uso são um dos pontos mais cobrados em provas, e a banca explora exatamente a confusão entre include e extend.

Vamos entender cada um:

  • include (inclusão): representa uma relação obrigatória e sempre executada. Quando o caso de uso base é acionado, o caso de uso incluído também é acionado, sem exceção. É usado para extrair comportamentos comuns a vários casos de uso, evitando duplicação. Por exemplo, em um sistema de compras, o caso de uso "finalizar compra" pode sempre incluir o caso de uso "validar pagamento". A seta do include aponta do caso de uso base para o caso de uso incluído, com a estereotipagem <<include>>.

  • extend (extensão): representa uma relação opcional e condicional. O caso de uso estendido é acionado somente sob determinadas condições, ou seja, quando um ponto de extensão é atingido. É usado para adicionar comportamentos opcionais a um caso de uso existente. Por exemplo, em um sistema de compras, o caso de uso "informar endereço" pode ser opcionalmente acionado ao se acionar "finalizar compra", caso o usuário queira alterar o endereço de entrega. A seta do extend aponta do caso de uso de extensão para o caso de uso base, com a estereotipagem <<extend>>.

  • Generalização: representa uma relação de herança entre casos de uso, onde um caso de uso filho herda o comportamento do caso de uso pai. É usada para especializar comportamentos. Por exemplo, "pagar com cartão" e "pagar com boleto" podem ser generalizações de "pagar".

A pegadinha da questão está na palavra "opcionalmente". O enunciado diz que "informar endereço" será acionado opcionalmente ao se acionar "finalizar compra". Isso é a definição exata do relacionamento extend. Se a banca tivesse dito "obrigatoriamente" ou "sempre", aí sim seria include. A banca troca os conceitos para confundir o candidato.

Para fixar, veja a comparação:

Critério

include

extend

Obrigatoriedade

Obrigatório

Opcional

Condição

Sempre executado

Executado sob condição

Direção da seta

Do caso base para o incluído

Do caso de extensão para o base

Estereótipo

<<include>>

<<extend>>

Exemplo

"finalizar compra" inclui "validar pagamento"

"finalizar compra" estende "informar endereço"

NÃO CAIA NESSA!

A banca adora inverter os relacionamentos include e extend. A palavra-chave é "opcionalmente": se o caso de uso é acionado opcionalmente, é extend; se é acionado sempre/obrigatoriamente, é include. Nesta questão, o enunciado diz "opcionalmente", mas a relação correta seria extend, não include — por isso a afirmativa está errada. Com treino, você enxerga essas trocas de longe 💪.

1include
obrigatório
sempre executado
seta do base para o incluído
2extend
opcional
condicional
seta do extensão para o base
3Generalização
herança entre casos de uso
Relacionamentos entre casos de uso
LEVELsoulevel.com.br
Relacionamentos entre casos de uso: include (obrigatório, sempre executado, seta do base para o incluído); extend (opcional, condicional, seta do extensão para o base); Generalização (herança entre casos de uso)

Item — ❌ Errado

A afirmativa está errada porque descreve o relacionamento extend como se fosse include. O caso de uso "informar endereço" ser acionado opcionalmente ao se acionar "finalizar compra" é a definição de extend (extensão), que representa um comportamento opcional e condicional. O include (inclusão) representa um comportamento obrigatório e sempre executado. Portanto, a relação correta entre os casos de uso seria <<extend>>, e não <<include>>, tornando a afirmação incorreta.

Gabarito: Errado (E).

Link permanente: /questoes/ce188493