Questão de Engenharia de Software — Análise e Projeto Orientado a Objetos — INSTITUTO AOCP 2024
Engenharia de Software›Análise e Projeto Orientado a Objetos
Código
qa631607
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
Acerca de modelagem usando orientação a objetos, assinale a alternativa INCORRETA.
ANa modelagem orientada a objetos, um diagrama de classes pode ser utilizado para representar a estrutura estática de um sistema, incluindo classes, atributos, métodos e os relacionamentos entre as classes.
BEm um diagrama de sequência, os objetos estão dispostos horizontalmente, enquanto o tempo é representado verticalmente, ilustrando a interação entre objetos ao longo do tempo.
CA generalização é uma relação que representa um vínculo "parte-todo", em que uma classe específica pode ser dividida em várias partes distintas, cada uma representando um componente.
DO diagrama de casos de uso é utilizado para capturar os requisitos funcionais de um sistema, mostrando as interações entre os atores externos e o sistema.
EA agregação é um tipo de associação que representa um relacionamento "todo-parte" em que o ciclo de vida das partes não depende do ciclo de vida do todo.
Revelar gabarito e comentário▾
GabaritoC — A generalização é uma relação que representa um vínculo "parte-todo", em que uma classe específica pode ser dividida em várias partes distintas, cada uma representando um componente.
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”.
Modelagem Orientada a Objetos: Relacionamentos e Diagramas UML
Gabarito: letra C. A alternativa incorreta é a que define generalização como uma relação "parte-todo" — na verdade, generalização é o relacionamento entre uma classe mais genérica (superclasse) e classes mais específicas (subclasses), representando herança. A relação "parte-todo" é característica de agregação e composição, não de generalização.
A modelagem orientada a objetos utiliza a UML (Unified Modeling Language) para representar sistemas por meio de diagramas. Os diagramas se dividem em duas grandes categorias: estruturais (estáticos) e comportamentais (dinâmicos). Os diagramas estruturais, como o diagrama de classes, mostram a estrutura estática do sistema — classes, atributos, métodos e relacionamentos. Os diagramas comportamentais, como o diagrama de sequência e o diagrama de casos de uso, mostram o comportamento dinâmico — interações entre objetos ao longo do tempo e funcionalidades do sistema.
Os relacionamentos entre classes são fundamentais na modelagem OO. Os principais são:
Associação: representa uma conexão semântica entre classes (ex.: um professor "leciona" em uma turma).
Agregação: é um tipo de associação que representa uma relação "todo-parte", onde as partes podem existir independentemente do todo (ex.: uma biblioteca contém livros; os livros podem existir sem a biblioteca).
Composição: é uma forma mais forte de agregação, onde as partes não existem sem o todo (ex.: uma casa é composta por cômodos; se a casa é destruída, os cômodos deixam de existir).
Generalização/Herança: representa uma relação "é-um", onde uma subclasse herda características de uma superclasse (ex.: um carro é um veículo).
Dependência: indica que uma classe usa outra de forma temporária (ex.: uma classe que recebe um objeto como parâmetro de método).
A pegadinha da questão está em confundir generalização com agregação/composição. A banca troca o conceito de "parte-todo" (que é de agregação/composição) e o atribui à generalização. É essencial memorizar a diferença: generalização = herança (é-um); agregação/composição = parte-todo (tem-um).
Critério
Generalização (Herança)
Agregação
Composição
Tipo de relação
"É-um" (subclasse é um tipo de superclasse)
"Todo-parte" (partes existem independentemente)
"Todo-parte" (partes não existem sem o todo)
Ciclo de vida das partes
Não se aplica (não há partes)
Independente do todo
Dependente do todo
Exemplo típico
Carro é um Veículo
Biblioteca contém Livros
Casa contém Cômodos
Representação UML
Seta com triângulo vazio na superclasse
Losango vazio no lado do todo
Losango preenchido no lado do todo
Alternativa A — ✅ Correta
A alternativa descreve corretamente o diagrama de classes: ele representa a estrutura estática do sistema, incluindo classes, atributos, métodos e relacionamentos. Isso está alinhado com a definição de diagrama estrutural da UML.
Alternativa B — ✅ Correta
O diagrama de sequência é um diagrama comportamental que mostra a interação entre objetos ao longo do tempo. Os objetos são dispostos horizontalmente (linhas de vida) e o tempo flui verticalmente (de cima para baixo). A descrição está correta.
Alternativa C — ❌ Incorreta ⟵ GABARITO
A alternativa define generalização como uma relação "parte-todo", o que é um erro conceitual. Generalização é o relacionamento de herança entre uma superclasse e suas subclasses (relação "é-um"). A relação "parte-todo" é característica de agregação e composição. Além disso, a descrição "uma classe específica pode ser dividida em várias partes distintas" não corresponde à generalização — na generalização, uma classe genérica é especializada em subclasses.
Alternativa D — ✅ Correta
O diagrama de casos de uso é utilizado para capturar os requisitos funcionais do sistema, mostrando as interações entre atores externos e o sistema. Isso está correto e é uma das finalidades principais desse diagrama.
Alternativa E — ✅ Correta
A agregação é um tipo de associação que representa um relacionamento "todo-parte", onde o ciclo de vida das partes não depende do ciclo de vida do todo. Essa é a definição clássica de agregação, diferenciando-a da composição, onde as partes são destruídas junto com o todo.
Gabarito: letra C — a única alternativa incorreta, pois confunde generalização com agregação/composição.