Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Modelagem orientada a objetos é um modo de pensar a
respeito dos problemas aplicando-se modelos
organizados em torno de conceitos do mundo real.
O conceito principal é o objeto, que combina
propriedades e comportamentos.
O termo orientado a objetos (OO) significa que
organizamos o software como uma coleção de objetos
distintos, que incorporam propriedades e
comportamentos.
2
MESC
Classe
É uma abstração que descreve um grupo de objetos com
as mesmas propriedades (atributos), comportamento
(operações), tipos de relacionamentos e semântica.
Objetos
Pessoa Classe
3
MESC
Mensagem
Em um software OO, objetos enviam mensagens uns
para os outros com o objetivo de realizar alguma tarefa.
Pedro: Aluno
Maria: Professora
João: Coordenador 4
MESC
Diagrama de Classes
Captura a estrutura estática de um sistema ao
caracterizar os objetos no sistema e os relacionamentos
entre eles.
Elementos básicos:
Classes
• Atributos
• Operações
Relacionamentos
• Associação
• Generalização
5
MESC
Diagrama de Classes
6
(Guedes et al., 2018, p. 43)
MESC
Classe
Notação gráfica:
nome da Classe
atributos
operações
7
MESC
Exemplo de Classe
nome da Classe
Pessoa
nome atributos
dataNascimento
cargo
operações
mudarCargo()
8
MESC
Atributo
Exemplo:
Objeto 1:
nome = João
dataNascimento = 12/01/1982
Objeto 3:
nome = Pedro
Objeto 2: dataNascimento = 12/01/1982
nome = Alice
dataNascimento = 03/05/1993
9
MESC
Operação
É uma função que pode ser realizada por um objeto.
Todos os objetos de uma classe compartilham a mesma
operação.
Um objeto “conhece” sua classe e, portanto, a implementação
correta da operação.
10
MESC
Visibilidade
Utilizada para indicar o nível de acessibilidade de um
determinado atributo ou método.
Privada (-) : significa que somente os objetos da classe detentora do
atributo ou método poderão enxergá-lo.
Protegida (#): além dos objetos da classe detentora do atributo ou
método, também os objetos de suas subclasses poderão ter acesso a
este.
Pública (+): determina que o atributo ou método pode ser utilizado por
qualquer objeto
Pacote (~): determina que o atributo ou método é visível por qualquer
objeto dentro do pacote.
11
MESC
Visibilidade e Polimorfismo
Polimorfismo
13
MESC
Visibilidade
Exercício em Java
https://www.jdoodle.com/online-java-compiler
MESC
Associação
16
MESC
Multiplicidade
17
17
MESC
Exemplos - Multiplicidade
Multiplicidade “muitos”
Diagrama de
Classes
João Petrobras
Alice Google
Instâncias
(objetos)
Pedro IBM
19
MESC
Associação
Unária/Reflexiva
20
MESC
Agregação
É uma forma especial de associação que indica que
dois objetos estão ligados por um relacionamento parte-
todo.
Agregação
Composição
25
MESC
Composição
Composição
Agregação e Composição
Exemplo
28
MESC
Generalização/Especialização
29
MESC
30
MESC
31
MESC
32
MESC
34
MESC
Exercícios
1. Desenhe diagramas de classes com relacionamentos, nomes de
papéis e multiplicidades para as seguintes situações:
a. Uma Disciplina é pré-requisito para outra Disciplina.
b. Um Edifício possui Apartamentos e estes são constituídos de Cômodos.
c. Uma Pessoa, como programador, utiliza uma Linguagem de Programação.
d. Uma Caixa contém Garrafas.
e. Um Pedido pode conter até 20 itens. Cada Item diz respeito a um e
exatamente um Produto.
35
MESC
Exercícios
3. Crie um diagrama de classes para representar o glossário do
sistema “Jogo de Futebol” descrito abaixo.
“O jogo de futebol é realizado por duas equipes de jogadores.
Cada equipe é composta por 11 jogadores, com diferentes
funções: o goleiro, zagueiros, médios, atacantes, e pontas de
lança. O ponta de lança é um atacante especial por ter especiais
características de goleador... O jogo é realizado num campo com
medidas regulamentares (em comprimento e largura), tem duas
balizas, cada qual em extremos opostos do campo. Ganha o jogo
a equipe que marcar mais gols (i.e., colocar a bola) na baliza do
adversário. No jogo apenas existe uma única bola, que apresenta
características (peso, diâmetro, …) regulamentares...O jogo de
futebol é mediado por uma equipe de 3 árbitros, em que um é o
árbitro principal, e os outros dois são árbitros auxiliares…”.
36
MESC
Modelos
Modelo Conceitual
Produzido durante a fase de análise de requisitos
Refere-se ao domínio do problema
Modelo de Domínio
Produzido durante a fase de projeto
Refere-se ao domínio da solução
Inclui os métodos
MESC
Diagrama de classes para o Sistema de Controle Bancário
– Modelo conceitual
MESC
Diagrama de classes para o Sistema de Controle Bancário
– Modelo de Domínio
MESC
Resumo
Introdução
Técnicas para Identificação de Classes
Análise Textual de Abbott
Identificação dirigida a Responsabilidades
Dicas
41
MESC
Introdução
Apenas o conhecimento da notação UML não é
suficiente para a construção de um modelo de classes
de um sistema OO.
A identificação das classes necessárias e suficientes é
uma das tarefas mais importantes e difíceis do
desenvolvimento de um sistema OO.
Existem diferentes técnicas de identificação de classes.
42
MESC
43
43
MESC
Exemplo
“O aluno José, que também é um estagiário da
universidade, deseja registrar sua matrícula”.
44
MESC
45
45
MESC
46
46
MESC
Exemplo I
Considere clientes e seus pedidos:
Um objeto Cliente conhece seu nome, seu endereço, seu
telefone, etc.
47
47
MESC
Exemplo II
Quando a impressão de uma fatura é requisitada em um
sistema de vendas, vários objetos precisam colaborar:
um objeto Pedido pode ter a responsabilidade de fornecer o seu valor
total
um objeto Cliente fornece seu nome
cada ItemPedido informa a quantidade correspondente e o valor de seu
subtotal
os objetos Produto também colaboraram fornecendo seu nome e preço
unitário.
48
48
MESC
Responsabilidades e Colaborações
associações
operações
Nome da classe
Responsabilidades Colaboradores
1a responsabilidade 1o colaborador
2a responsabilidade 2o colaborador
... ...
n-ésima responsabilidade m-ésimo colaborador
Exemplo
ContaCorrente
Responsabilidades Colaboradores
1. Conhecer o seu número
2. Conhecer o seu cliente Cliente
3. Conhecer o seu saldo
4. Fazer saque
5. Fazer depósito
51
MESC
52
MESC
Dicas Práticas
Antes de iniciar a modelagem de classes é necessário
entender o problema.
Representar apenas os aspectos relevantes desse problema.
Simplicidade.
Um modelo simples é mais fácil de entender e exige menos
esforço de desenvolvimento.
Nomes devem ser cuidadosamente escolhidos.
Devem ser descritivos, nítidos e não ambíguos.
Herança com poucos níveis de profundidade.
Documentação (explicação escrita do modelo).
53
MESC
MESC
Classe Associativa /
Classe de Associação
São necessárias nos casos em que existem
atributos que não podem ser armazenados por
nenhuma das classes envolvidas
Classe de Associação
Classe de Associação
É uma associação que também é uma classe.
Pode ter atributos, operações e participar de associações.
Possui identidade a partir de suas classes constituintes.
58
MESC
Referências
59