Questão de Engenharia de Software — Geral — INSTITUTO AOCP 2024
Engenharia de Software›Geral
Código
qa631644
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
A respeito da UML 2.5, informe se é verdadeiro (V) ou falso (F) o que se afirma a seguir e assinale a alternativa com a sequência correta.
( ) Em um diagrama de sequência UML, um ator não pode ser representado por uma linha de vida.
( ) Um diagrama de estados permite representar os estados diferentes de um objeto ao longo do tempo e as transições entre esses estados devido a eventos internos e externos.
( ) O diagrama de componentes UML é usado primariamente para descrever requisitos funcionais de um sistema.
( ) No diagrama de classes, associações qualificadas permitem especificar que múltiplos objetos estão associados a um único objeto com base em um atributo qualificador.
AF – V – F – V.
BV – F – F – V.
CV – V – V – F.
DF – F – V – V.
EV – V – F – V.
Revelar gabarito e comentário▾
GabaritoA — F – V – F – V.
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”.
UML 2.5: Diagramas de Sequência, Estados, Componentes e Classes
Gabarito: letra A (F – V – F – V). A sequência correta é: (1) FALSO, pois um ator PODE ser representado por uma linha de vida em um diagrama de sequência; (2) VERDADEIRO, pois o diagrama de estados mostra os estados de um objeto e as transições por eventos internos e externos; (3) FALSO, pois o diagrama de componentes é estrutural e descreve a organização dos componentes de software, não requisitos funcionais; (4) VERDADEIRO, pois associações qualificadas usam um atributo qualificador para restringir a multiplicidade. A alternativa que corresponde a essa sequência é a letra A.
A UML (Unified Modeling Language) é uma linguagem de modelagem padronizada que organiza seus diagramas em duas grandes categorias: diagramas estruturais e diagramas comportamentais. Os diagramas estruturais descrevem a estrutura estática do sistema — classes, objetos, componentes, implantação — enquanto os comportamentais descrevem o comportamento dinâmico — casos de uso, atividades, estados, sequência, comunicação. Essa distinção é a chave para resolver a questão, pois cada afirmativa testa se o candidato sabe classificar corretamente o diagrama e sua finalidade.
O diagrama de sequência é um diagrama comportamental de interação que enfatiza a ordenação temporal das mensagens trocadas entre objetos (ou atores) ao longo do tempo. Cada participante da interação é representado por uma linha de vida (lifeline), que é uma linha tracejada vertical que representa o tempo de vida do objeto durante a interação. Atores podem sim ser representados como linhas de vida — eles são participantes externos que interagem com o sistema, e a UML permite que apareçam no diagrama de sequência como qualquer outro participante. A afirmativa 1 diz o contrário, por isso é FALSA.
O diagrama de estados (ou máquina de estados) é um diagrama comportamental que mostra o ciclo de vida de um objeto: os estados pelos quais ele passa e as transições entre esses estados, disparadas por eventos (internos ou externos). Por exemplo, um pedido pode estar nos estados "Novo", "Pago", "Enviado" e "Entregue", e o evento "pagamento confirmado" dispara a transição de "Novo" para "Pago". A afirmativa 2 descreve exatamente isso, então é VERDADEIRA.
O diagrama de componentes é um diagrama estrutural que mostra a organização e as dependências entre os componentes de software (módulos, bibliotecas, arquivos executáveis) e suas interfaces. Ele descreve a estrutura física do sistema, não os requisitos funcionais. Requisitos funcionais são descritos principalmente pelo diagrama de casos de uso, que mostra as funcionalidades do sistema sob a perspectiva do usuário. A afirmativa 3 atribui ao diagrama de componentes uma função que não é dele, então é FALSA.
Uma associação qualificada no diagrama de classes é uma associação que usa um qualificador (um atributo) para restringir a multiplicidade do lado oposto. Por exemplo, em uma associação entre Pessoa e Telefone, o qualificador tipo (residencial, comercial, celular) restringe a multiplicidade: para cada pessoa e cada tipo, há no máximo um telefone. Isso permite especificar que múltiplos objetos estão associados a um único objeto com base em um atributo qualificador. A afirmativa 4 descreve corretamente esse conceito, então é VERDADEIRA.
A pegadinha desta questão está na afirmativa 1: muitos candidatos acham que atores só aparecem em diagramas de casos de uso, mas eles podem aparecer em qualquer diagrama de interação, incluindo o de sequência. A banca explora essa confusão para induzir o erro. Além disso, a afirmativa 3 troca a finalidade do diagrama de componentes (estrutural) pela do diagrama de casos de uso (comportamental), outra armadilha clássica.
Critério
Diagrama de Sequência
Diagrama de Estados
Diagrama de Componentes
Diagrama de Classes (associação qualificada)
Categoria UML
Comportamental (interação)
Comportamental
Estrutural
Estrutural
Elemento principal
Linhas de vida e mensagens ordenadas no tempo
Estados e transições por eventos
Componentes de software, interfaces e dependências
Classes, associações e qualificadores
Pode representar ator?
Sim, como linha de vida
Não se aplica
Não se aplica
Não se aplica
Finalidade primária
Mostrar troca de mensagens entre participantes
Mostrar ciclo de vida de um objeto
Descrever organização física do software
Restringir multiplicidade com atributo qualificador
Descreve requisitos funcionais?
Não
Não
Não (isso é papel do diagrama de casos de uso)
Não
Afirmativa 1 — ❌ Falsa
A afirmativa diz que "um ator não pode ser representado por uma linha de vida" em um diagrama de sequência. Isso é FALSO. Atores são participantes externos que interagem com o sistema, e a UML permite que eles sejam representados como linhas de vida em diagramas de sequência, assim como objetos internos. A linha de vida representa qualquer participante da interação, seja um ator, um objeto ou um sistema externo. A banca tenta confundir o candidato ao restringir indevidamente o uso de linhas de vida.
Afirmativa 2 — ✅ Verdadeira
A afirmativa descreve corretamente o diagrama de estados: ele representa os estados diferentes de um objeto ao longo do tempo e as transições entre esses estados devido a eventos internos e externos. É exatamente essa a finalidade do diagrama de máquina de estados na UML. Por exemplo, um objeto ContaBancaria pode estar nos estados Ativa, Bloqueada e Encerrada, com transições disparadas por eventos como bloquear() ou encerrar(). A afirmativa está correta.
Afirmativa 3 — ❌ Falsa
A afirmativa diz que o diagrama de componentes é usado "primariamente para descrever requisitos funcionais de um sistema". Isso é FALSO. O diagrama de componentes é um diagrama estrutural que descreve a organização dos componentes de software, suas interfaces e dependências. Requisitos funcionais são descritos pelo diagrama de casos de uso, que mostra as funcionalidades do sistema sob a perspectiva do usuário. A banca troca a finalidade de um diagrama estrutural pela de um comportamental, uma pegadinha clássica.
Afirmativa 4 — ✅ Verdadeira
A afirmativa descreve corretamente as associações qualificadas no diagrama de classes. Um qualificador é um atributo que restringe a multiplicidade do lado oposto da associação. Por exemplo, em uma associação entre Pessoa e Telefone, o qualificador tipo (residencial, comercial, celular) restringe a multiplicidade: para cada pessoa e cada tipo, há no máximo um telefone. Isso permite especificar que múltiplos objetos estão associados a um único objeto com base em um atributo qualificador. A afirmativa está correta.
NÃO CAIA NESSA!
A banca explora duas confusões clássicas: (1) achar que atores só aparecem em diagramas de casos de uso, quando na verdade podem aparecer como linhas de vida em diagramas de sequência; (2) trocar a finalidade do diagrama de componentes (estrutural) pela do diagrama de casos de uso (comportamental). Fique atento a essas inversões — com treino, você as reconhece de longe 💪.
PEGA ESSA DICA!
Para resolver questões de classificação de diagramas UML, pergunte-se: "o diagrama descreve a ESTRUTURA (o que é) ou o COMPORTAMENTO (o que faz)?" Estrutura: classes, objetos, componentes, implantação, pacotes. Comportamento: casos de uso, atividades, estados, sequência, comunicação. Essa divisão elimina metade das alternativas antes mesmo de ler o detalhe.