Questão de Engenharia de Software — UML — VUNESP 2023
- Código
- vu197004
- Banca
- VUNESP
- Órgão
- CIJUN
- Ano
- 2023
- Cargo
- Ana ( )
- A#idade
- B/idade
- C@idade
- D*idade
- E%idade
GabaritoB — /idade
Gabarito: letra B. Na UML, um atributo derivado — aquele cujo valor é calculado a partir de outros dados — é representado prefixando seu nome com uma barra "/" (ex.: /idade). Essa notação é definida pela especificação da UML (OMG) e é a única entre as alternativas que corresponde à sintaxe correta.
Um atributo derivado é um atributo cujo valor não é armazenado diretamente, mas sim calculado a partir de outros atributos ou informações do sistema. No diagrama de classes, ele é representado com uma barra "/" antes do nome do atributo. Por exemplo, em uma classe Pessoa, o atributo idade pode ser derivado da data de nascimento, sendo representado como /idade. Essa notação indica que o valor é obtido por meio de um cálculo, e não armazenado de forma independente.
A UML (Unified Modeling Language) é uma linguagem de modelagem padronizada pela OMG (Object Management Group). Ela define diversos diagramas, sendo o diagrama de classes um dos mais importantes, pois descreve a estrutura estática do sistema, mostrando as classes, seus atributos, métodos e os relacionamentos entre elas. A notação para atributos derivados é uma convenção estabelecida nessa especificação, e é amplamente cobrada em concursos.
A representação de um atributo derivado é feita com a barra "/" imediatamente antes do nome do atributo. Essa barra é um marcador visual que indica que o valor daquele atributo é derivado, ou seja, calculado a partir de outros dados. Por exemplo, em uma classe ContaBancaria, o atributo saldo pode ser derivado da soma de todos os créditos e débitos, sendo representado como /saldo. Essa notação é essencial para comunicar que o valor não é armazenado, mas sim calculado quando necessário.
A distinção entre atributos derivados e atributos comuns é fundamental para a modelagem correta. Atributos comuns são armazenados diretamente no objeto, enquanto atributos derivados são calculados a partir de outros dados. Essa distinção é importante para evitar redundâncias e garantir a consistência dos dados. A barra "/" é o símbolo que a UML define para essa distinção, e é exatamente isso que a questão cobra.
A pegadinha desta questão é que a banca oferece vários símbolos que podem parecer plausíveis, mas apenas a barra "/" é a notação correta para atributos derivados. Os outros símbolos (#, @, , %) não têm esse significado na UML. O candidato que não conhece essa notação específica pode ser induzido a escolher uma alternativa errada, como o "#" que representa visibilidade protegida, ou o "" que pode ser usado para multiplicidade.
Guarde a regra: atributo derivado = barra "/" antes do nome. É esse critério que separa a alternativa correta das demais.
Símbolo | Significado na UML | Relação com atributo derivado? |
|---|---|---|
| Atributo derivado (valor calculado) | ✅ Sim — notação padrão |
| Visibilidade protegida (protected) | ❌ Não — refere-se a acesso |
| Multiplicidade (ex.: | ❌ Não — usado em relacionamentos |
| Sem significado padrão na UML | ❌ Não — não fazem parte da especificação |
O símbolo "#" na UML representa a visibilidade protegida (protected) de um atributo ou método. Um atributo com visibilidade protegida é acessível apenas pela própria classe e por suas subclasses. Não tem relação com atributos derivados.
A barra "/" antes do nome do atributo é a notação padrão da UML para indicar que o atributo é derivado, ou seja, seu valor é calculado a partir de outros dados. No exemplo da questão, /idade indica que a idade é derivada, por exemplo, da data de nascimento.
O símbolo "@" não é uma notação padrão da UML para atributos. Ele pode ser usado em outras linguagens ou contextos, mas não na UML para indicar atributos derivados.
O símbolo "" na UML é usado para indicar multiplicidade em relacionamentos, como em associações (ex.: `1..`). Não é usado para denotar atributos derivados.
O símbolo "%" não é uma notação padrão da UML para atributos. Ele pode ser usado em outras linguagens ou contextos, mas não na UML para indicar atributos derivados.
Gabarito: letra B
Link permanente: /questoes/vu197004