Escolar Documentos
Profissional Documentos
Cultura Documentos
LES/PUC-Rio
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
Devem receber nomes de acordo com o vocabulrio do domnio do problema. comum adotar um padro para nome-las
Ex: todos os nomes de classes sero substantivos singulares com a primeira letra maiscula
LES/PUC-Rio
Exemplo:
+ nome : String
LES/PUC-Rio
Exemplo:
- getNome() : String
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
LES/PUC-Rio
Pessoa
1..*
trabalha para
Empresa
empregado
empregador
Tipo: associao
papis
E a navegabilidade?
LES/PUC-Rio
navegabilidade
reside
Cliente
Endereo
O cliente sabe quais so seus endereos, mas o endereo no sabe a quais clientes pertence
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
Pessoa
associao
Empresa
LES/PUC-Rio
multiplicidade
Pessoa
1..*
trabalha para
Empresa
associao
LES/PUC-Rio
Relacionamentos: Associao
Relacionamentos: Associao Exemplo:
Um Estudante pode ser um aluno de uma Disciplina e um jogador da Equipe de Futebol Cada Disciplina deve ser cursada por no mnimo 1 aluno Um aluno pode cursar de 0 at 8 disciplinas
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
todo
parte
Pedido
agregao
1..*
Item
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
Notebook Window
1..*
1 1
1 0..* 0..*
Teclado Frame
errado
LES/PUC-Rio
LES/PUC-Rio
Sala
1 1..n
Mesa
Andar
1..n
Edifcio
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
Veculo
Terrestre
Areo
LES/PUC-Rio
Generalizao Dependncia
LES/PUC-Rio
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
Import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) g.drawString(Hello, world!, 10, 10); }
Applet
HelloWorld
paint(Graphics g)
Graphics
LES/PUC-Rio
A C
LES/PUC-Rio
Pessoa
atributos do relacionamento
Uma pessoa pode fazer mais de um pedido na mesma empresa
Empresa
0..*
pertence
Pedido
itemPedido
LES/PUC-Rio
0..*
faz
Pessoa
Exemplo: O Blog
Um blog tem um ttulo e uma data de criao e alm disso um conjunto de contedos. Estes contedos (mensagens) podem ser notas ou comentrios sobre as notas. Tanto notas quanto comentrios tm caractersticas comuns como o texto e a data de sua criao. Todo usurio possui:
E-mail (deve ser nico, ou seja, no h mais de um usurio com o mesmo e-mail)
LES/PUC-Rio
LES/PUC-Rio
Ler Conteudo
Ler Nota
Usuario
Remover Conteudo
Remover Nota
Dono do blog
Criar Nota
LES/PUC-Rio
Comentario
+finalize:void
LES/PUC-Rio
LES/PUC-Rio
LES/PUC-Rio
LES/PUC-Rio
Professor
Coordenador
Estudante
Universidade
Disciplina
Turma
Curso
FormularioMatricula
AnalisadorMatricula
SistemaRegistroAcademico
ListaAlunos
LES/PUC-Rio
LES/PUC-Rio
AnalisadorMatricula
AnalisadorMatricula
1
0..*
Disciplina
LES/PUC-Rio
FormularioMatricula
1
-processado-por 0..* 1
AnalisadorMatricula
1 gerencia
0..* -preenchido-por
-definida-por 1..* 1
Disciplina
1
Coordenador
aluno
1 est-matriculado-em 3..10 4
1..*
Estudante
Turma
-ministrada-por 0..3 1
Professor
LES/PUC-Rio
LES/PUC-Rio
FormularioMatricula
1
-processado-por 0..* 1
AnalisadorMatricula
1 gerencia 0..*
Disciplina
-preenchido-por
-definida-por 1..* 1
nome numCrditos
1 1..*
Coordenador
aluno
1 est-matriculado-em 3..10 4
LES/PUC-Rio
: SIM
: AnalisadorMatricula
AnalisadorMatricula
adicionar(aluno, disciplina)
1: submeterFormulario(f)
2: adicionar(a,d )
SIM
submeterFormulario(formulario)
LES/PUC-Rio
E a navegabilidade?
Estudante
est-matriculado-em
3..10 4
Turma
public class Estudante { private String nome; private String matricula; ... }
public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... }
Acrescentando generalizaes:
Atributos, operaes e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.
Us uario
nome : Texto definirNome(nome) obterNome()
Estudante
matricula : Inteiro definirMatricula(matricula) obterMatricula()
Professor
titulacao : Texto definirTitulacao(titul acao) obterTitulacao()
LES/PUC-Rio
-pr ocessado-por
AnalisadorMatricula
1 adic ion ar(alun o, di s cipli na) 1 1
usa
1
SIM
-preenchido-por -aluno
1
gerencia
Estudante
matricula : Inteiro definirMatricula(matricula) obterMatricula()
0..*
Disciplina
nome : Texto numCreditos : Inteiro
3.. 10
est-m atriculado-em
Usuario
nome : Texto definirNome(nom e) obterNom e()
1..*
Turma
codigo : Texto sala : Texto 4 horario : Horario num Alunos : Inteiro com pleta : Booleano
1
Professor
titulacao : Texto
0..3
responsvel-por
definirTitulacao(titulacao) obterTitulacao()
estaCompleta() : Booleano
LES/PUC-Rio