💪🏻 Exercícios para Fixação do Aprendizado: Diagramas de Classe 🧠
Após a leitura e compreensão dos conceitos sobre Diagramas de Classes, responda às seguintes questões para solidificar seu aprendizado:
- Conceitos Fundamentais:
- Qual é o principal propósito de um Diagrama de Classes na UML? O que ele nos permite visualizar sobre um sistema?
- Explique a diferença entre uma Classe e um Objeto. Dê um exemplo original de uma classe e dois objetos dessa classe.
- O que são atributos e operações (métodos) de uma classe? Quais são as informações essenciais que definem um atributo ou uma operação (excluindo exemplos)?
- Visibilidade:
- Explique o significado dos modificadores de visibilidade
+, e - em atributos e operações. Quando você usaria cada um deles?
- Relacionamentos Básicos:
- O que uma Associação representa entre duas classes? Como a multiplicidade é usada para descrever essa associação?
- Diferencie os tipos de multiplicidade
1, 0..1, 1..* e . Forneça um exemplo de um relacionamento real que se encaixe em cada uma dessas multiplicidades.
- Relacionamentos Especiais:
- Qual a diferença fundamental entre Agregação e Composição? Dê um exemplo prático para cada uma, explicando por que um relacionamento é mais forte que o outro.
- Explique o conceito de Generalização/Especialização (Herança). Por que ela é útil na modelagem de sistemas?
- Situações Práticas:
- Imagine um sistema de controle de estoque. A classe
Produto precisa se relacionar com a classe Fornecedor. Qual tipo de relacionamento (Associação, Agregação, Composição, Generalização) seria mais adequado aqui? Justifique sua resposta.
- Em qual situação você precisaria utilizar uma Classe de Associação em seu diagrama de classes? Dê um exemplo diferente dos apresentados no material.
🎩 Exercícios de Domínio do Diagrama de Classe 🎩
Para cada cenário abaixo, leia atentamente a descrição do sistema e, com base nela, identifique os elementos necessários para construir um Diagrama de Classes. Não se preocupe em desenhar perfeitamente agora (utilize o Mermaid JS), mas sim em listar:
- Classes: Quais são as entidades principais no sistema?
- Atributos: Quais características cada uma dessas classes deve ter? (Ex: nome, preço, data).
- Métodos/Operações: Quais ações essas classes podem realizar ou quais ações são realizadas sobre elas? (Ex: cadastrar, consultar, calcular).
- Relacionamentos: Como as classes se conectam? Qual o tipo de relacionamento (associação, agregação, composição, herança) e quais as multiplicidades (cardinalidades) em cada lado?
Exercício 1: Gerenciamento de Livros Simples
Imagine que você precisa modelar um sistema muito simples para registrar livros em uma biblioteca pessoal.
- Cada livro terá um título, um autor e um número de páginas. Você quer ser capaz de registrar um novo livro e consultar suas informações.
Exercício 2: Alunos e Cursos
Um sistema para uma pequena escola precisa gerenciar alunos e os cursos que eles podem frequentar.
- Cada aluno possui um nome, um número de matrícula e uma data de nascimento.
- Cada curso possui um título, um código (único) e uma carga horária.
- Um aluno pode se matricular em vários cursos, e um curso pode ter muitos alunos matriculados.