Questão de Engenharia de Software — UML — CESPE / CEBRASPE 2024
- Código
- ce403889
- Banca
- CESPE / CEBRASPE
- Órgão
- TCE AC
- Ano
- 2024
- Cargo
- ATI ( )

- CCerto
- EErrado

GabaritoE — Errado
Gabarito: Errado (E). A afirmação inverte a direção do relacionamento de inclusão (include): quando o ator sistema acionar o caso de uso "verificar dados do cartão de crédito", este NÃO acionará obrigatoriamente o caso de uso "preencher dados do cartão de crédito". Na UML, o relacionamento include indica que o caso de uso base (verificar dados) SEMPRE inclui o caso de uso incluído (preencher dados), mas a direção correta é do caso de uso base para o incluído — ou seja, "verificar dados" inclui "preencher dados", e não o contrário como afirma o enunciado.
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). Os relacionamentos entre casos de uso são fundamentais para organizar e reutilizar comportamentos comuns. Os três principais relacionamentos são:
Include (inclusão): o caso de uso base SEMPRE executa o caso de uso incluído. É uma relação obrigatória e estereotipada com <<include>>. A seta parte do caso de uso base em direção ao caso de uso incluído.
Extend (extensão): o caso de uso de extensão é executado OPCIONALMENTE, sob determinadas condições, estendendo o comportamento do caso de uso base. É estereotipado com <<extend>>. A seta parte do caso de uso de extensão em direção ao caso de uso base.
Generalização: um caso de uso filho herda o comportamento do caso de uso pai, podendo adicionar ou sobrescrever comportamentos.
A confusão entre include e extend é uma das pegadinhas mais comuns em provas de UML. No include, a execução do caso de uso incluído é obrigatória sempre que o caso de uso base for acionado. No extend, a execução é condicional e opcional. Além disso, a direção da seta é oposta: no include, a seta vai do base para o incluído; no extend, a seta vai do caso de uso de extensão para o base.
No caso da questão, o enunciado afirma que "verificar dados do cartão de crédito" acionará obrigatoriamente "preencher dados do cartão de crédito". Isso descreve um relacionamento include, mas a direção está invertida. Se "verificar dados" inclui "preencher dados", então a seta deveria partir de "verificar dados" para "preencher dados". O enunciado diz que "verificar dados" aciona "preencher dados", o que até poderia ser interpretado como include, mas a redação "este acionará, obrigatoriamente, o caso de uso preencher dados" sugere que o caso de uso "verificar dados" é o base e "preencher dados" é o incluído. No entanto, a leitura mais natural do diagrama (que não foi fornecido na íntegra) provavelmente mostra a relação inversa: "preencher dados" inclui "verificar dados", ou seja, para preencher os dados do cartão, é necessário verificar os dados. Assim, a afirmação está errada porque inverte a direção do relacionamento.
A banca explora a confusão entre a direção do relacionamento include. O candidato pode ler "acionará obrigatoriamente" e pensar que se trata de include, mas a direção da seta é o ponto crítico. No include, o caso de uso base aponta para o incluído. Se o diagrama mostra "preencher dados" apontando para "verificar dados", então "preencher dados" inclui "verificar dados", e não o contrário. Fique atento à direção da seta e ao estereótipo <<include>>.
Relacionamento | Direção da seta | Obrigatoriedade | Estereótipo |
|---|---|---|---|
Include | Do caso de uso base para o incluído | Obrigatória (sempre executa) |
|
Extend | Do caso de uso de extensão para o base | Opcional (condicional) |
|
Generalização | Do caso de uso filho para o pai | Herança de comportamento | — |
A afirmação está incorreta porque inverte a direção do relacionamento de inclusão. No relacionamento include, o caso de uso base (que é acionado pelo ator) inclui o caso de uso incluído. A seta parte do caso de uso base para o caso de uso incluído. Se o diagrama mostra que "verificar dados do cartão de crédito" é incluído por "preencher dados do cartão de crédito", então a afirmação de que "verificar dados" aciona "preencher dados" está errada — na verdade, é "preencher dados" que aciona "verificar dados".
Gabarito: Errado (E).
Link permanente: /questoes/ce403889