Pular para o conteúdo principal

Questão de Engenharia de Software — Análise e Projeto Orientado a Objetos — INSTITUTO AOCP 2024

Engenharia de SoftwareAná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.
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Link permanente: /questoes/qa631607