Questão de Engenharia de Software — UML — FGV 2024
Engenharia de Software›UML
Código
fg075145
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
Seja o diagrama de casos de uso UML a seguir:Uma semântica válida para esse diagrama é a de que
Aé possível ao ator X ativar a sequência de interações do caso de uso F por derivação primária.
Bo caso de uso D implementa uma situação específica do caso de uso F.
Co caso de uso E possui sequência de interações necessariamente utilizadas pelo caso de uso B.
Dos casos de uso A e B possuem uma sequência de interações em comum, especificada no caso de uso C.
Eos casos de uso A e B representam classes associativas entre o ator X e o caso de uso C.
Revelar gabarito e comentário▾
GabaritoD — os casos de uso A e B possuem uma sequência de interações em comum, especificada no caso de uso C.
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”.
Diagrama de Casos de Uso UML: relacionamentos include, extend e generalização
Gabarito: letra D. A alternativa correta afirma que os casos de uso A e B possuem uma sequência de interações em comum, especificada no caso de uso C — exatamente o que representa o relacionamento de inclusão (include) na UML, em que o caso de uso base (A e B) sempre incorpora o comportamento do caso de uso incluído (C). As demais alternativas confundem os relacionamentos de extend, generalização e associação com o include, ou atribuem semânticas inexistentes ao diagrama.
O diagrama de casos de uso é um dos diagramas comportamentais da UML e tem como objetivo representar, de forma estática, as funcionalidades que o sistema oferece (os casos de uso) e quem as utiliza (os atores), além dos relacionamentos entre eles. Os três relacionamentos principais entre casos de uso são:
Include (inclusão): o caso de uso base sempre executa o comportamento do caso de uso incluído. A seta é tracejada, apontando do caso de uso base para o incluído, com o estereótipo <<include>>. É uma relação de dependência obrigatória — se o caso de uso A inclui C, toda vez que A for executado, C também será.
Extend (extensão): o caso de uso de extensão é executado opcionalmente, sob uma condição específica, quando o caso de uso base é executado. A seta é tracejada, apontando do caso de uso de extensão para o base, com o estereótipo <<extend>>. É uma relação de dependência condicional — o caso de uso base pode ser executado sem o de extensão.
Generalização (herança): um caso de uso filho herda o comportamento do caso de uso pai, podendo substituí-lo ou especializá-lo. Representa-se com uma seta sólida com ponta vazada, do filho para o pai.
A confusão mais comum em provas é inverter o sentido das setas ou trocar o significado de include e extend. No include, a seta sai do caso de uso que depende e aponta para o caso de uso do qual depende; no extend, a seta sai do caso de uso opcional e aponta para o caso de uso base. Além disso, o include é obrigatório e o extend é condicional — essa é a distinção central que a banca explora.
Para fixar: no include, o caso de uso incluído é uma parte necessária do fluxo do caso de uso base; no extend, o caso de uso de extensão é um complemento opcional que só entra em cena se uma condição for satisfeita. A generalização, por sua vez, não é uma relação de dependência, mas de herança de comportamento.
Guarde essa fronteira entre include, extend e generalização: é exatamente nela que as alternativas desta questão se dividem.
Alternativa A — ❌ Incorreta
A alternativa afirma que o ator X pode ativar a sequência de interações do caso de uso F por derivação primária. O termo "derivação primária" não existe na semântica dos diagramas de casos de uso da UML. A relação de generalização entre casos de uso é chamada de herança ou especialização, não de "derivação primária". Além disso, a alternativa não descreve corretamente nenhum dos relacionamentos padrão (include, extend ou generalização).
Alternativa B — ❌ Incorreta
Afirma que o caso de uso D implementa uma situação específica do caso de uso F. Essa descrição corresponde à relação de generalização/especialização (herança), em que um caso de uso filho especializa o comportamento do caso de uso pai. No entanto, a alternativa não indica que essa é a relação representada no diagrama — e, pelo gabarito, o relacionamento correto entre os casos de uso é o de inclusão (include), não o de generalização. A alternativa troca o tipo de relacionamento.
Alternativa C — ❌ Incorreta
Afirma que o caso de uso E possui sequência de interações necessariamente utilizadas pelo caso de uso B. O termo "necessariamente" indica uma relação de inclusão (include), em que o caso de uso base sempre executa o caso de uso incluído. No entanto, a alternativa não corresponde ao relacionamento representado no diagrama — o gabarito aponta que a relação de include está entre A, B e C, não entre E e B. A alternativa atribui uma relação de dependência obrigatória a um par de casos de uso que não a possui.
Alternativa D — ✅ Correta ⟵ GABARITO
A alternativa afirma que os casos de uso A e B possuem uma sequência de interações em comum, especificada no caso de uso C. Essa é a definição exata do relacionamento de inclusão (include) na UML: quando dois ou mais casos de uso compartilham um comportamento comum, esse comportamento é extraído para um caso de uso separado (C), e os casos de uso base (A e B) o incluem. A seta tracejada com o estereótipo <<include>> aponta de A e B para C, indicando que ambos sempre executam a sequência de interações definida em C. É exatamente isso que a alternativa descreve.
Alternativa E — ❌ Incorreta
Afirma que os casos de uso A e B representam classes associativas entre o ator X e o caso de uso C. O conceito de classe associativa pertence ao diagrama de classes da UML, não ao diagrama de casos de uso. Em casos de uso, não existem classes associativas — os elementos são atores, casos de uso e relacionamentos (include, extend, generalização e associação). A alternativa mistura conceitos de diagramas diferentes, o que a torna semanticamente inválida.
Gabarito: letra D — os casos de uso A e B possuem uma sequência de interações em comum, especificada no caso de uso C, caracterizando o relacionamento de inclusão (include).