07. Diagramas de Classe2
-
Upload
bruno-bertoncini-alves -
Category
Documents
-
view
215 -
download
1
description
Transcript of 07. Diagramas de Classe2
![Page 1: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/1.jpg)
Diagrama de Classes
Profª Luciana Bolan Frigo
Universidade Federal de Santa Catarina Curso de Tecnologias da Informação e Comunicação Campus Araranguá
![Page 2: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/2.jpg)
Objetivos
• Introdução
• Elementos do Diagrama de Classes
• Exemplo
• Exercício
![Page 3: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/3.jpg)
Introdução • O diagrama de classes mostra um conjunto de classes e seus
relacionamentos.
• É o diagrama central da modelagem orientada a objetos.
Aluno
nome: Texto matrícula: Inteiro
definirNome(nome) obterNome() definirMatricula(matricula) obterMatricula
Turma
código: Texto sala: Texto horario: Horario
estaAberta() definirProfessor(professor) incluirAluno(aluno)
está-matriculado-em
Professor
nome: Texto titulação: Texto
definirNome(nome) obterNome() definirTitulacao(titulo) obterTitulacao
é-ministrada-por
![Page 4: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/4.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos (operações de abstração)
• Classificação / Instanciação
• Associação
• Agregação
• Composição
• Generalização
• Dependência
![Page 5: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/5.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos (operações de abstração)
• Classificação / Instanciação
• Associação
• Agregação
• Composição
• Generalização
• Dependência
![Page 6: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/6.jpg)
Elementos – Diagrama de Classes Classes
• Graficamente, as classes são representadas por retângulos incluindo nome, atributos e métodos.
• Devem receber nomes de acordo com o vocabulário do domínio do problema.
• É comum adotar um padrão para nomeá-las Ex: todos os nomes de classes serão substantivos singulares
com a primeira letra maiúscula
Nome_da_classe
atributo1 atributo2 ...
metodo1 metodo2 metodo3 ...
![Page 7: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/7.jpg)
Elementos – Diagrama de Classes Classes
© LES/PUC-Rio
Atributos Representam o conjunto de características (estado) dos objetos daquela classe Exemplo:
+ nome : String
Métodos Representam o conjunto de operações (comportamento) que a classe fornece Exemplo:
- getNome() : String
Visibilidade: + público: visível em qualquer classe de qualquer pacote # protegido: visível para classes do mesmo pacote - privado: visível somente para classe
![Page 8: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/8.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos (operações de abstração)
• Classificação / Instanciação
• Associação
• Agregação
• Composição
• Generalização
• Dependência
© LES/PUC-Rio
![Page 9: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/9.jpg)
Elementos – Diagrama de Classes Relacionamentos
• Os relacionamentos possuem:
• Nome: descrição dada ao relacionamento (faz, tem, possui,...)
• Sentido de leitura
• Navegabilidade: indicada por uma seta no fim do relacionamento
• Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7
• Tipo: associação (agregação, composição), generalização e dependência
• Papéis: desempenhados por classes em um relacionamento
![Page 10: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/10.jpg)
Elementos – Diagrama de Classes • Relacionamentos
Pessoa Empresa 1..*
Tipo: associação
multiplicidade
* trabalha para
empregado
papéis
empregador
sentido de leitura
nome
• O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence
Endereço Cliente reside
1 *
navegabilidade
![Page 11: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/11.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos
• Classificação / Instanciação
• Associação
• Agregação
• Composição
• Generalização
• Dependência
© LES/PUC-Rio
![Page 12: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/12.jpg)
Elementos – Diagrama de Classes Relacionamentos: Classificação/ Instanciação
• Classificação: operação que tem por objetivo, através da análise das características de um objeto, definir a que classe ele pertence.
• Instanciação: operação que, dada uma determinada classe, define (ou constrói) um objeto pertencente a essa classe.
Automóvel
modelo placa ...
movimento parado ...
Classe - categoria
Fusca do José Vectra da Maria Objeto - entidade
Instanciação Classificação
![Page 13: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/13.jpg)
Elementos – Diagrama de Classes
Relacionamentos: Associação
• Uma associação é um relacionamento estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe.
• Uma associação é representada por uma linha sólida conectando duas classes.
© LES/PUC-Rio
Pessoa Empresa
associação
![Page 14: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/14.jpg)
Elementos – Diagrama de Classes Relacionamentos: Associação
• Indicadores de multiplicidade:
• 1 Exatamente um
• 1..* Um ou mais
• 0..* Zero ou mais (muitos)
• * Zero ou mais (muitos)
• 0..1 Zero ou um
• m..n Faixa de valores (por exemplo: 4..7)
© LES/PUC-Rio
Pessoa Empresa 1..*
associação
multiplicidade
* trabalha para
![Page 15: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/15.jpg)
Relacionamentos: Associação Relacionamentos: Associação
Exemplo:
• Um Estudante pode ser um aluno de uma Disciplina
• Cada Disciplina deve ser cursada por no mínimo 1 aluno
• Um aluno pode cursar de 0 até 8 disciplinas
![Page 16: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/16.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos
• Associação
• Agregação
• Composição
• Generalização
• Dependência
![Page 17: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/17.jpg)
Elementos – Diagrama de Classes • Relacionamento: Agregação
• É um tipo especial de associação
• Utilizada para indicar “todo-parte”
• um objeto “parte” pode fazer parte de vários objetos “todo”
© LES/PUC-Rio
Item Pedido 1
1..*
agregação
Todo/ classe agregadora Parte/ classe agregada
![Page 18: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/18.jpg)
Elementos – Diagrama de Classes
Veículo
Placa
+cidade+estado+código alfabético+código numérico
Motor
+potência+cilindrada+combustível
+ligar()+desligar()
Relacionamento: Agregação
![Page 19: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/19.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos
• Associação
• Agregação
• Composição
• Generalização
• Dependência
© LES/PUC-Rio
![Page 20: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/20.jpg)
Elementos – Diagrama de Classes • Relacionamento: Composição ou Agregação forte
• É uma variante semanticamente mais “forte” da agregação
• Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele
• Quando o “todo” morre todas as suas “partes” também morrem
© LES/PUC-Rio
Teclado Notebook
Frame Window
1 1
1 0..*
1..* 0..* errado
![Page 21: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/21.jpg)
Elementos – Diagrama de Classes • Relacionamento: Composição
Ex:
Janela
Rolagem Título Corpo
1
0..1 2 1
Empresa
Departamento Escritório
1 1..* 1..*
0..1
*
![Page 22: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/22.jpg)
Elementos – Diagrama de Classes • Agregação X Composição
Andar Edifício1..n
MesaSala
1..n11
1..n
1..n
![Page 23: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/23.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos
• Associação
• Agregação
• Composição
• Generalização
• Dependência
![Page 24: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/24.jpg)
Elementos – Diagrama de Classes • Relacionamento: Generalização
• É um relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses)
“é um”
“é um tipo de”
superclasse
subclasse
Veículo
Terrestre Aéreo
![Page 25: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/25.jpg)
Elementos – Diagrama de Classes • Elementos de um diagrama de classes
• Classes
• Relacionamentos
• Associação
• Agregação
• Composição
• Generalização
• Dependência
![Page 26: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/26.jpg)
Elementos – Diagrama de Classes • Relacionamento: Dependência
• Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente)
Ex:
Obs: • A classe cliente depende de algum serviço da classe fornecedor
• A mudança de estado do fornecedor afeta o objeto cliente • A classe cliente não declara nos seus atributos um objeto do tipo
fornecedor
• Fornecedor é recebido por parâmetro de método
cliente fornecedor
![Page 27: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/27.jpg)
Exemplo: Sistema de Matrícula A Universidade XYZ deseja informatizar seu sistema de matrículas:
• A universidade oferece vários cursos.
• O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre.
• Várias disciplinas são oferecidas em um curso.
• Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10.
• Estudantes selecionam até 4 disciplinas.
• Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado.
• Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas.
• Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas.
• Todos os usuários do sistema devem ser validados.
Descrição
![Page 28: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/28.jpg)
Exemplo: Sistema de Matrícula Diagrama de Casos de Uso
![Page 29: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/29.jpg)
Exemplo: Sistema de Matrícula Descrição do Caso de Uso “Matricular em Disciplina”
• Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais.
• O sistema verifica se a credencial é válida.
• O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas.
• O estudante preenche um formulário eletrônico de matrícula e o submete para uma análise de consistência.
• O sistema analisa as informações contidas no formulário.
• Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais.
• Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.
![Page 30: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/30.jpg)
Exemplo: Sistema de Matrícula
Professor Coordenador Estudante
Turma Universidade Disciplina Curso
FormulárioMatrícula
SistemaRegistroAcademico ListaAlunos
Diagrama de Classes: identificando as classes
![Page 31: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/31.jpg)
Exemplo: Sistema de Matrícula
• Exemplos de candidatos a relacionamentos:
• A é parte física ou lógica de B.
• A está contido fisicamente ou logicamente em B.
• A é uma descrição de B.
• A é membro de B.
• A é subunidade organizacional de B.
• A usa ou gerencia B.
• A se comunica/interage com B.
• A está relacionado com uma transação B.
• A é possuído por B.
• A é um tipo de B.
Diagrama de Classes: identificando os relacionamentos
![Page 32: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/32.jpg)
Exemplo: Sistema de Matrícula
• Os atributos podem ser encontrados examinando-se as descrições dos
casos de uso e também pelo conhecimento do domínio do problema.
• Cada turma oferecida possui
um código, uma sala e um
horário.
Turma
código sala horário
Diagrama de Classes: identificando os atributos
![Page 33: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/33.jpg)
Exemplo: Sistema de Matrícula
public class Turma {
private String codigo;
private String sala;
private Estudante alunos[];
...
}
Diagrama de Classes:
public class Estudante {
private String nome;
private String matricula;
...
}
Turma Estudante
3..10
está-matriculado-em
3..10 4
![Page 34: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/34.jpg)
Exemplo: Sistema de Matrícula • Acrescentando generalizações:
• Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.
Estudante
matricula : Inteiro
definirMatricula(matricula)
obterMatricula()
Usuario
nome : Texto
definirNome(nome)
obterNome()
Professor
titulacao : Texto
definirTitulacao(titulacao)
obterTitulacao()
Diagrama de Classes:
![Page 35: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/35.jpg)
Atividades Modele as classes com as respectivas ligações para os
seguintes estudos de caso:
Agência de turismo
Empresa organizada por projetos
© R
icar
do
Per
eira
e S
ilva
![Page 36: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/36.jpg)
Diagrama de objetos
Copyright 2002, 2003 Eduardo Bezerra 36
![Page 37: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/37.jpg)
Diagrama de objetos
• Além do diagrama de classes, A UML define um segundo tipo de diagrama estrutural, o diagrama de objetos.
• Pode ser visto com uma instância de diagramas de classes
• Representa uma “fotografia” do sistema em um certo momento. • exibe as ligações formadas entre objetos conforme estes
interagem e os valores dos seus atributos.
Co
pyr
igh
t 2
00
2, 2
00
3 E
du
ard
o
Bez
erra
37
![Page 38: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/38.jpg)
Notação para Diagrama de objetos
Formato Exemplo
nomeClasse Pedido
nomeObjeto:
NomeClasse
umPedido:
Pedido
Copyright 2002, 2003 Eduardo Bezerra 38
![Page 39: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/39.jpg)
Exemplo (Diagrama de objetos)
PedidoItemPedidoProduto
nome = "Caderno M"descrição = "Caderno em espiral tamanho médio"preçoUnitário = 4,50desconto = 15
produto20 : Produto
nome = "Caneta ESF"descrição = "Caneta esferográfica 5mm"preçoUnitário = 1,20desconto = 2
produto12 : Produto
nome = "Esquadro"descrição = "Esquadro de acrílico 20 cm"preçoUnitário = 2,35desconto = 10
produto07 : Produto
quantidade = 20
item2 : ItemPedido
quantidade = 6
item1 : ItemPedido
quantidade = 1
item3 : ItemPedido
data = 13/09/2002hora = 10:00am
Pedido1 : Pedido
Co
pyr
igh
t 2
00
2, 2
00
3 E
du
ard
o
Bez
erra
39
![Page 40: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/40.jpg)
Exemplo (Diagrama de objetos)
Empregado
João : Empregado
Maria : Empregado
José : Empregado
Antônio : EmpregadoAline : Empregado
Lucas : Empregado
Rafaela : Empregado
Co
pyr
igh
t 2
00
2, 2
00
3 E
du
ard
o
Bez
erra
40
![Page 41: 07. Diagramas de Classe2](https://reader033.fdocumentos.tips/reader033/viewer/2022052913/5695d16a1a28ab9b029671f9/html5/thumbnails/41.jpg)
Bibliografia
• LES – PUC/RIO
• BORATTI, Isaias Camilo. Programação Orientada a Objetos em Java. Florianópolis - Visual Books:2007.
• BEZERRA, Eduardo.Princípios de Análise e Projeto de sistemas com UML. Editora Campus, 2ª edição:2007.