Professional Documents
Culture Documents
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
+ 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
+ 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
Generalizao Dependncia
LES/PUC-Rio
LES/PUC-Rio
Pessoa
1..*
trabalha para
empregado
empregador
Empresa
Tipo: associao
papis
E a navegabilidade?
LES/PUC-Rio
navegabilidade
Cliente
reside
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
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 ..n 1
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
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
Disciplina
1
-definida-por 1..* 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
Coordenador
aluno
Turma
est-matriculado-em 4
Estudante
-ministrada-por 0..3 1
LES/PUC-Rio
: SIM
: AnalisadorMatricula
AnalisadorMatricula
adicionar(aluno, disciplina)
1 submeterFormulario(f) :
1 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
-processado-por
AnalisadorMatricula
1 adicion ar(alun o, di scipli na) 1 1
usa
1
SIM
-preenchido-por -aluno
1
gerencia
Estudante
matricula : Inteiro definirMatricula(matricula) obterMatricula()
1 ..*
Disciplina
nome : Texto numCreditos : Inteiro
11 .. 1
est-matriculado-em
Usuario
nome : Texto definirNome(nome) obterNome()
1 ..*
Turma
codigo : Texto sala : Texto 1 horario : Horario numAlunos : Inteiro completa : Booleano
1
Professor
titulacao : Texto definirTitulacao(titulacao) obterTitulacao()
11 ..
responsvel-por
estaCompleta() : Booleano
LES/PUC-Rio