Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplo de Diagrama de Classe PDF
Exemplo de Diagrama de Classe PDF
LES/PUC-Rio
Introduo - Diagrama de Classes
Turma
cdigo: Texto
est-matriculado-em -ministrada-por
sala: Texto
horario: Horario
Aluno Professor
estaAberta()
definirProfessor(professor)
nome: Texto nome: Texto
incluirAluno(aluno)
matrcula: Inteiro titulao: Texto
definirNome(nome) definirNome(nome)
obterNome() obterNome()
definirMatricula(matricula) definirTitulacao(titulo)
obterMatricula obterTitulacao
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Graficamente, as classes so representadas por retngulos
incluindo nome, atributos e mtodos.
Nome_da_classe
atributo1
atributo2
...
metodo1
metodo2
metodo3
...
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Atributos
Representam o conjunto de caractersticas (estado)
dos objetos daquela classe
Visibilidade:
+ pblico: visvel em qualquer classe de qualquer pacote
# protegido: visvel para classes do mesmo pacote
- privado: visvel somente para classe
Exemplo:
+ nome : String
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Mtodos
Representam o conjunto de operaes (comportamento)
que a classe fornece
Visibilidade:
+ pblico: visvel em qualquer classe de qualquer pacote
# protegido: visvel para classes do mesmo pacote
- privado: visvel somente para classe
Exemplo:
- getNome() : String
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamentos
Os relacionamentos possuem:
Sentido de leitura
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamentos
nome
Tipo: associao
papis
E a navegabilidade?
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamentos
navegabilidade
reside
Cliente 1 *
Endereo
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamentos: Associao
Pessoa Empresa
associao
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamentos: Associao
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)
multiplicidade
associao
LES/PUC-Rio
Relacionamentos: Associao
Relacionamentos: Associao
Exemplo:
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamento: Agregao
um tipo especial de associao
Utilizada para indicar todo-parte
todo parte
1 1..*
Pedido Item
agregao
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamento: Composio
uma variante semanticamente mais forte da agregao
Os objetos parte s podem pertencer a um nico objeto todo e tm
o seu tempo de vida coincidente com o dele
1 1
Notebook Teclado
1 0..*
Window Frame
1..* 0..*
errado
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamento: Composio
Ex:
Empresa
1
1..* 1..*
0..1
Departamento Escritrio
*
Janela
1
2 0..1 1
Scroll Ttulo Corpo
LES/PUC-Rio
Elementos Diagrama de Classes
Agregao X Composio
Sala Mesa
1
1..n
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamento: Generalizao
um relacionamento entre itens gerais (superclasses)
e itens mais especficos (subclasses)
superclasse Veculo
um
um tipo de
LES/PUC-Rio
Elementos Diagrama de Classes
Classes
Relacionamentos
Associao
Agregao
Composio
Generalizao
Dependncia
LES/PUC-Rio
Elementos Diagrama de Classes
Relacionamento: Dependncia
Representa que a alterao de um objeto (o objeto
indepedendente) pode afetar outro objeto (o objeto dependente)
Ex:
cliente fornecedor
Obs:
A classe cliente depende de algum servio da classe fornecedor
A mudana de estado do fornecedor afeta o objeto cliente
A classe cliente no declara nos seus atributos um objeto do tipo
fornecedor
Fornecedor recebido por parmetro de mtodo
LES/PUC-Rio
Elementos Diagrama de Classes
Import java.awt.Graphics;
class HelloWorld extends java.applet.Applet
{
public void paint (Graphics g)
g.drawString(Hello, world!, 10, 10);
}
Applet
HelloWorld Graphics
paint(Graphics g)
LES/PUC-Rio
Elementos Diagrama de Classes
Classe de associao
Usada quando uma associao entre duas classes
contiver atributos da associao
Atributos faro parte da classe de associao
C existe para todo relacionamento de A com B A B
A D B
d(a,b,x) e d(a,b,x) existem
LES/PUC-Rio
Elementos Diagrama de Classes
Classe de associao
0..* trabalha 1..*
Empresa Pessoa
No existe uma
pessoa com
dois empregos Emprego
na mesma descrio atributos do
empresa relacionamento
salrio
1 0..* 0..* 1
Empresa Pedido Pessoa
pertence faz
itemPedido
LES/PUC-Rio
Exemplo: O Blog
LES/PUC-Rio
Blog: o sistema deve...
LES/PUC-Rio
Blog: Casos de uso
blogSystem
Criar Blog
<<include>>
Criar Comentario
Usuario
Ler Comentario
<<include>> <<include>>
Remover Comentario
LES/PUC-Rio
Blog: Diagrama de Classes
Blog
0..*
-dtCriacao:Date
-titulo:String
-dono:UsuarioBlog
-conteudos:Vector
+criarNota:void
1 dono
+exibirConteudo:void
UsuarioBlog 0..* usa 1 +comentar:void
usuario +lerComentarios:Vector
-email:String +removerConteudo:void
+lerNotas:Vector
+notificarExclusao:void +Blog
1 autor
0..*
Conteudo
0..*
-dtCriacao:Date
-texto:String
-autor:UsuarioBlog
+Conteudo
+exibirConteudo:void
Nota
Comentario
-comentarios:Vector 0..*
-attribute1:int
+finalize:void
+comentar:void
+lerComentarios:Vector
+finalize:void
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Descrio
O Coordenador de um curso define as disciplinas que sero oferecidas pelo seu curso
num dado semestre.
Vrias turmas podem ser abertas para uma mesma disciplina, porm o nmero de
estudantes inscritos deve ser entre 3 e 10.
Aps a matrcula, os estudantes podem, por um certo prazo, utilizar o sistema para
adicionar ou remover disciplinas.
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Diagrama de Casos de Uso
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Esse caso de uso se inicia quando o Estudante de Curso inicia uma sesso no
sistema e apresenta suas credenciais.
LES/PUC-Rio
Exemplo: Sistema de Matrcula
FormularioMatricula AnalisadorMatricula
SistemaRegistroAcademico ListaAlunos
LES/PUC-Rio
Exemplo: Sistema de Matrcula
LES/PUC-Rio
Exemplo: Sistema de Matrcula
-processado-por
FormularioMatricula AnalisadorMatricula
0..* 1
1
0..*
Disciplina
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Diagrama de Classes
-processado-por
FormularioMatricula AnalisadorMatricula
0..* 1
1 1
gerencia
0..*
-preenchido-por -definida-por
Disciplina Coordenador
1..* 1
1
aluno 1 1..*
est-matriculado-em -ministrada-por
Estudante Turma Professor
3..10 4 0..3 1
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Turma
Cada turma oferecida possui
cdigo
um cdigo, uma sala e um sala
horrio. horrio
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Diagrama de Classes
-processado-por
FormularioMatricula AnalisadorMatricula
0..* 1
1 1
gerencia
0..*
Disciplina
-definida-por
-preenchido-por nome Coordenador
1..* 1
numCrditos
1
1..*
aluno 1
Turma
Estudante cdigo -ministrada-por
Professor
est-matriculado-em
nome sala nome
3..10 4 0..3 1
matricula horrio titulao
LES/PUC-Rio
Exemplo: Sistema de Matrcula
: SIM : AnalisadorMatricula
AnalisadorMatricula
2: adicionar(a,d )
SIM
submeterFormulario(formulario)
LES/PUC-Rio
Exemplo: Sistema de Matrcula
Diagrama de Classes:
E a navegabilidade?
Diagrama de Classes:
Acrescentando generalizaes:
Atributos, operaes e/ou relacionamentos comuns podem ser
movidos para uma classe mais geral.
Us uario
nome : Texto
definirNome(nome)
obterNome()
Estudante Professor
matricula : Inteiro titulacao : Texto
LES/PUC-Rio
Exemplo: Sistema de Matrcula
FormularioMatricula
-pr ocessado-por AnalisadorMatricula
usa SIM
obterEstudante() : Estudante 0.. * 1 adic ion ar(alun o, di s cipli na) 1 1
obterNomeDIsciplina(i : Inteiro) : Texto
1
1
-preenchido-por gerencia
-aluno 1
0..*
Estudante
matricula : Inteiro Disciplina
nome : Texto
definirMatricula(matricula) numCreditos : Inteiro
obterMatricula()
3.. 10
estaCompleta()
adicionar(aluno : Estudante)
1
est-m atriculado-em
Usuario
nome : Texto
definirNome(nom e)
obterNom e() 1..*
Turma
codigo : Texto
sala : Texto
4 horario : Horario
Professor num Alunos : Inteiro
responsvel-por
titulacao : Texto com pleta : Booleano
0..3 1
definirTitulacao(titulacao) estaCompleta() : Booleano
obterTitulacao()
LES/PUC-Rio