Você está na página 1de 59

Diagrama de Classes

Mestrado em Engenharia de Produção e Sistemas Computacionais

Prof. Alessandro Copetti

e slides adaptados da Profa. Adriana Pereira de Medeiros


MESC

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

José Santos Ana Silva

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

 Descreve objetos através de atributos e operações.

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

 É uma propriedade nomeada de um classe, que descreve


um intervalo de valores que objetos da classe podem
apresentar.
 “Cada atributo possui um valor para cada objeto”.
 “Diferentes objetos podem ter valores iguais ou diferentes para
determinado 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

(Guedes et al., 2018, p. 52)


MESC

Polimorfismo

13
MESC

Visibilidade

(Guedes et al., 2018, p. 115)


MESC

Exercício em Java

Criar um objeto de uma superclasse, com e sem


construtor default
Acessar atributos de visibilidade diferente
Atribuir construtor da subclasse para um objeto
da superclasse
 chamar método com sobrecarga (overload) e com
sobreposição (override)
 Adicionar um objeto Coleira a classe Dog

https://www.jdoodle.com/online-java-compiler
MESC

Associação

 Representa possíveis relacionamentos entre os objetos


das classes envolvidas.

16
MESC

Multiplicidade

 Especifica o número de objetos aos quais outro objeto


pode se associar.

Notação UML Significado


1..1 (ou 1) apenas um
0..* (ou *) zero ou mais
1..* um ou mais
0..1 zero ou um
limi..lims intervalo específico

17
17
MESC

Exemplos - Multiplicidade

– Pode haver um cliente que esteja associado a vários pedidos.


– Pode haver um cliente que não esteja associado a pedido algum.
– Um pedido está associado a um, e somente um, cliente.

– Uma corrida está associada a, no mínimo, dois velocistas


– Uma corrida está associada a, no máximo, seis velocistas.
– Um velocista pode estar associado a várias corridas.
– Pode haver um velocista que não esteja associado a corrida
alguma. 18
18
MESC

Multiplicidade “muitos”

Diagrama de
Classes

João Petrobras

Alice Google
Instâncias
(objetos)
Pedro IBM

19
MESC

Papel nas Associações


Associação
Binária

Associação
Unária/Reflexiva

20
MESC

Associação binária com navegabilidade

• Uma instância da classe Socio possui, no mínimo, nenhuma


instância e, no máximo, muitas instâncias da classe Dependente
• E uma instância da classe Dependente é possuída por uma e
somente uma instância da classe Socio
(Guedes et al., 2018, p. 121)
MESC

Associação ternária ou n-ária

• Um professor leciona para, no mínimo, uma turma e, no máximo, para muitas


•Uma turma tem, no mínimo, um professor e, no máximo, muitos lecionando
para ela
•Um professor, ao lecionar para uma determinada turma, utiliza, no mínimo, uma
sala de aula e, no máximo muitas.

(Guedes et al., 2018, p. 122)


MESC

Agregação
 É uma forma especial de associação que indica que
dois objetos estão ligados por um relacionamento parte-
todo.

 Se tenta demonstrar que as informações de um objeto


(objeto-todo) são complementadas pelas informações
contidas em um ou mais objetos no outro fim da
associação (chamados objetos-parte).
23
MESC

Agregação

• Objetos da classe Pessoa são objetos-todo que precisam ter suas


informações complementadas pelos objetos da classe ContaComum, que
nessa associação, são objetos-parte
• Sempre que uma pessoa for consultada, além das informações pessoais,
serão apresentadas todas as contas que ela possui
24
(Guedes et al., 2018, p. 123)
MESC

Composição

 É uma forma de agregação com duas restrições


adicionais:
 Um objeto constituinte (parte) pode pertencer a no máximo um
objeto composto (todo);
 O objeto constituinte (parte) tem um tempo de vida coincidente
com o objeto composto (todo).

25
MESC

Composição

(Guedes et al., 2018, p. 124)


MESC

Composição

Circulo contém Ponto


MESC

Agregação e Composição

 Exemplo

28
MESC

Generalização/Especialização

 É o relacionamento entre uma classe (a superclasse) e


uma ou mais variações da classe (as subclasses).
 Também chamado de Herança.

Notação Gráfica na UML:

29
MESC

Propriedades da Herança – Exemplo I

30
MESC

Propriedades da Herança – Exemplo II

31
MESC

Propriedades da Herança – Exemplo III

32
MESC

Propriedades da Herança – Exemplo IV

(Guedes et al., 2018, p. 125)


MESC

Modelo de Casos de Uso e Modelo de Classes

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.

2. Considere o seguinte discurso relativo a um sistema de partidas


de tênis e desenhe o diagrama de classes correspondente.
“Num torneio de tênis, cada partida é jogada entre dois jogadores. Pretende-se
manter informação sobre o nome e a idade dos jogadores; data da partida e
atribuição de jogadores às partidas. O máximo de partidas que um jogador poderá
realizar são seis e o mínimo uma.

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

Construção do Modelo de Classes

Mestrado em Engenharia de Produção e Sistemas Computacionais


Profa. Adriana Pereira de Medeiros
adrianamedeiros@puro.uff.br
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

Análise Textual de Abbott


 Consulta-se várias fontes de informação sobre o
sistema e destaca-se:
 Nomes (substantivos e adjetivos) – classes e atributos
 Verbos de ação – operações
 Verbo “ser” – herança
 Verbo “ter” – agregação ou composição
 Demais verbos – associações
 O resultado depende do documento ser completo.

43
43
MESC

Exemplo
“O aluno José, que também é um estagiário da
universidade, deseja registrar sua matrícula”.

Tipo de termo Exemplo Componente


Nome próprio José Objeto/atributo
Substantivo aluno Classe/atributo
estagiário
matrícula
universidade
Verbo de ação registrar Operação
Verbo ser é um Herança
Verbo ter - -

44
MESC

Identificação Dirigida a Responsabilidades

 A identificação de classes é feita a partir de seus


comportamentos relevantes para o sistema.
 Comportamentos = responsabilidades!

 Segue o princípio do encapsulamento.


 Identifica-se as responsabilidades de uma classe que são úteis
externamente à mesma.
 Os detalhes internos à classe (como ela faz para cumprir com
suas responsabilidades) devem ser abstraídos.

45
45
MESC

Responsabilidade de uma Classe

 É uma obrigação que um objeto tem para com o sistema


no qual ele está inserido.
 Na prática, uma responsabilidade é alguma coisa que
um objeto conhece ou sabe fazer.
 Se um objeto não pode cumprir sua responsabilidade sozinho,
ele deve requisitar a colaboração de outros objetos.

46
46
MESC

Exemplo I
 Considere clientes e seus pedidos:
 Um objeto Cliente conhece seu nome, seu endereço, seu
telefone, etc.

 Um objeto Pedido conhece sua data de realização, conhece o


seu cliente, conhece os seus itens componentes e sabe fazer o
cálculo do seu total.

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

atributos Responsabilidades Colaborações

operações

Um objeto cumpre com suas responsabilidades através das


informações que ele possui ou que ele pode derivar a partir
de colaborações com outros objetos.
49
49
MESC

Responsabilidades e Cartões CRC

CRC = Class, Responsability, Collaboration

Nome da classe
Responsabilidades Colaboradores
1a responsabilidade 1o colaborador
2a responsabilidade 2o colaborador
... ...
n-ésima responsabilidade m-ésimo colaborador

Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 50


MESC

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

Modelo de Casos de Uso e Modelo de Classes

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

Costumam ser utilizadas principalmente em


associações que apresentem multiplicidade
muitos (*) em todas as suas extremidades
MESC

Classe de Associação

Um único objeto relacionado a duas instâncias associadas

(Guedes et al., 2018, p. 126)


MESC

Classe de Associação - problema

Caso um ator interpretasse dois papéis em um mesmo filme, o uso da


classe associativa não seria o mais adequado

(Guedes et al., 2018, p. 127)


MESC

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 

 Guedes, Gilleanes TA. UML 2-Uma abordagem prática.


Novatec Editora, 2018.
 BEZERRA, E. Princípios de Análise e Projeto de
Sistemas com UML. 2º Edição – Campus, 2007.
 BLAHA, M.; RUMBAUGH, J. Modelagem e Projetos
baseados em Objetos com UML 2 - 2ª Edição, Elsevier,
2006.
 BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML –
Guia do Usuário - 2ª Edição, Elsevier, 2003

59

Você também pode gostar