Pular para o conteúdo principal

Questão de Engenharia de Software — UML — VUNESP 2023

Engenharia de SoftwareUML
Código
vu197003
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
Na representação do diagrama de sequência da UML 2.0 há um tipo de representação que assinala restrição para o estado de um objeto.   Dessa forma, a notação para indicar que o objeto Teste deve estar no estado Ativo, em um diagrama de sequência, é:
  1. A{Teste:ATIVO}
  2. B#Teste:ATIVO
  3. C§Teste::ATIVO
  4. D(TesteàATIVO)
  5. E“Teste::ATIVO
Revelar gabarito e comentário

GabaritoA — {Teste:ATIVO}

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 sequência UML: notação de estado de objeto

Gabarito: letra A. No diagrama de sequência da UML 2.0, a notação para indicar que um objeto deve estar em um determinado estado é colocar o nome do estado entre chaves, logo após o nome do objeto, no formato {NomeDoObjeto:Estado}. Assim, para indicar que o objeto Teste deve estar no estado Ativo, a representação correta é {Teste:ATIVO}. Essa é uma notação padronizada pela especificação da UML para assinalar restrições de estado em lifelines.

O diagrama de sequência é um dos diagramas comportamentais da UML, utilizado para representar a interação entre objetos ao longo do tempo, mostrando a troca de mensagens entre eles. Cada objeto participante é representado por uma lifeline (linha de vida), que é uma linha tracejada vertical que indica o tempo de vida do objeto durante a interação. A lifeline é rotulada com o nome do objeto, e é nesse rótulo que podemos adicionar informações adicionais, como o estado em que o objeto se encontra.

A especificação da UML define que o rótulo de uma lifeline pode conter o nome do objeto, o nome da classe e, opcionalmente, uma restrição de estado. A restrição de estado é representada entre chaves {} e segue o formato [NomeDoObjeto:Estado] ou [NomeDoObjeto:Estado]. No caso da questão, o formato correto é {Teste:ATIVO}, onde Teste é o nome do objeto e ATIVO é o estado. Essa notação é uma forma de indicar que, naquele ponto da interação, o objeto deve estar em um estado específico, o que é útil para modelar comportamentos que dependem do estado do objeto.

É importante distinguir essa notação de outras que aparecem na UML. Por exemplo, no diagrama de estados, os estados são representados por retângulos arredondados com o nome do estado dentro. Já no diagrama de sequência, a restrição de estado é uma anotação textual na lifeline. A banca explora exatamente essa confusão: o candidato pode lembrar da notação de estados do diagrama de estados e se confundir com a notação do diagrama de sequência. Além disso, é comum confundir a notação de estado com a notação de multiplicidade (que usa *), com a notação de visibilidade (que usa +, -, #, ~) ou com a notação de estereótipos (que usa «»).

A pegadinha desta questão está em reconhecer que a notação de estado em lifelines é uma restrição entre chaves, e não um símbolo especial como #, §, ( ) ou aspas. O candidato que não conhece essa notação específica pode ser induzido a escolher uma alternativa que usa símbolos de outros contextos da UML. Por isso, é fundamental memorizar o formato exato: {NomeDoObjeto:Estado}.

Guarde esse formato: a restrição de estado em uma lifeline do diagrama de sequência é sempre entre chaves, com o nome do objeto seguido de dois-pontos e o nome do estado. É exatamente esse critério que separa a alternativa correta das demais.

Lifeline (diagrama de sequência)
  • 1Rótulo
    • Nome do objeto
    • Nome da classe
    • Restrição de estado {Objeto:Estado}
  • 2Notações que NÃO indicam estado
    • Visibilidade (+, -, #, ~)
    • Multiplicidade (*)
    • Estereótipo («»)
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa A apresenta a notação {Teste:ATIVO}, que segue exatamente o formato definido pela UML para indicar que o objeto Teste deve estar no estado ATIVO. As chaves {} delimitam a restrição de estado, e dentro delas temos o nome do objeto, dois-pontos e o nome do estado. Essa é a representação correta e padronizada.

Alternativa B — ❌ Incorreta

A alternativa B usa o símbolo # antes do nome do objeto: #Teste:ATIVO. O símbolo # na UML é utilizado para indicar visibilidade protegida (protected) em atributos e métodos de classes, não para indicar estado de objeto em lifelines. Portanto, essa notação é incorreta para o contexto do diagrama de sequência.

Alternativa C — ❌ Incorreta

A alternativa C usa o símbolo § e dois-pontos duplos: §Teste::ATIVO. O símbolo § não faz parte da notação padrão da UML para estados, e os dois-pontos duplos :: são utilizados em outras linguagens (como C++) para indicar escopo, não para indicar estado em lifelines. Essa notação não é reconhecida pela UML.

Alternativa D — ❌ Incorreta

A alternativa D usa parênteses e uma seta: (TesteàATIVO). Os parênteses na UML são utilizados para listas de parâmetros em operações, e a seta à não é um símbolo padrão da UML para indicar estado. Essa notação não corresponde à especificação da UML para restrição de estado em lifelines.

Alternativa E — ❌ Incorreta

A alternativa E usa aspas e dois-pontos duplos: “Teste::ATIVO. As aspas na UML são utilizadas para delimitar strings ou nomes de estereótipos, e os dois-pontos duplos :: não são utilizados para indicar estado. Além disso, a ausência de chaves {} já torna a notação incorreta para a restrição de estado.

A notação de estado em lifelines é um detalhe específico do diagrama de sequência que costuma ser cobrado em provas de modelagem UML. Memorize o formato {NomeDoObjeto:Estado} e lembre-se de que ele é diferente das notações de visibilidade (+, -, #, ~), de multiplicidade (*) e de estereótipos («»).

Gabarito: letra A

Link permanente: /questoes/vu197003