Questão de Engenharia de Software — UML — CESPE / CEBRASPE 2023
- Código
- ce154888
- Banca
- CESPE / CEBRASPE
- Órgão
- FUB
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação

- CCerto
- EErrado

GabaritoE — Errado
Gabarito: Errado (E). O diagrama de casos de uso da UML não representa a sequência em que as funcionalidades são executadas, nem expressa obrigatoriedade de execução entre casos de uso — ele apenas descreve as funcionalidades do sistema e os atores que as utilizam. A relação de obrigatoriedade entre "finalizar compra" e "informar endereço" seria representada por um relacionamento de inclusão (<<include>>), que não é o que a figura mostra. O diagrama de casos de uso é um dos diagramas comportamentais da UML, utilizado na fase de análise de requisitos para descrever o comportamento do sistema do ponto de vista do usuário. Ele responde à pergunta "o que o sistema faz?", e não "em que ordem faz?" ou "o que é obrigatório fazer?". A sequência de execução das funcionalidades é representada por outros diagramas, como o diagrama de sequência ou o diagrama de atividades. A simples presença desses dois casos de uso no diagrama não estabelece nenhuma relação de dependência ou obrigatoriedade entre eles. Para que houvesse a obrigatoriedade descrita no enunciado, seria necessário um relacionamento de inclusão (<<include>>) entre os casos de uso, indicando que "finalizar compra" sempre inclui "informar endereço".
A confusão entre os relacionamentos de inclusão (<<include>>) e extensão (<<extend>>) é comum. O <<include>> indica que um caso de uso base sempre inclui o comportamento de outro caso de uso (obrigatoriedade), enquanto o <<extend>> indica que um caso de uso pode, opcionalmente, estender o comportamento de outro (condicionalidade). No diagrama da questão, não há nenhum desses relacionamentos representados, apenas a associação simples entre o ator e os casos de uso. A pegadinha da banca está em explorar a confusão entre o que o diagrama de casos de uso representa (funcionalidades e atores) e o que outros diagramas representam (sequência, fluxo, obrigatoriedade). O candidato que conhece apenas a notação básica pode ser induzido a acreditar que a figura mostra uma ordem de execução, quando na verdade ela apenas lista as funcionalidades disponíveis para o ator. Guarde a distinção: o diagrama de casos de uso é estático em relação à ordem — ele mostra o que o sistema faz, não como nem em que ordem. A sequência e a obrigatoriedade são propriedades de diagramas de interação (sequência, comunicação) e de atividades. É exatamente essa fronteira que separa o certo do errado nesta questão.
A afirmação está incorreta por dois motivos principais. Primeiro, o diagrama de casos de uso não mostra a sequência de execução das funcionalidades — ele é um diagrama estático que descreve as funcionalidades do sistema e os atores que as utilizam, sem qualquer noção de ordem temporal. Segundo, a obrigatoriedade de "informar endereço" ao acionar "finalizar compra" não está representada na figura, pois não há um relacionamento de inclusão (<<include>>) entre os casos de uso. A simples presença de ambos os casos de uso no diagrama não estabelece nenhuma relação de dependência entre eles.
Para identificar se um caso de uso é obrigatório ou opcional em relação a outro, procure pelos relacionamentos <<include>> (obrigatório) e <<extend>> (opcional) no diagrama. Se não houver nenhum desses estereótipos, não há relação de dependência entre os casos de uso. E lembre-se: sequência de execução é assunto de diagrama de sequência ou de atividades, nunca de diagrama de casos de uso.
Gabarito: letra E (Errado).
Link permanente: /questoes/ce154888