Beruflich Dokumente
Kultur Dokumente
Generalizao/Especializao
Generalizao/Especializao
! !
Super-classe
PessoaFsica
CPF RG Sexo DataNascimento
PessoaJurdica
CGC RazoSocial
Sub-classes (herdeiras)
Generalizao/Especializao
!
Generalizao/Especializao
!
realiza
Compra
!
PessoaFsica
CPF RG Sexo DataNascimento
PessoaJurdica
CGC RazoSocial
Se atributos de uma classe que foram identificados s podem ser aplicados em tipos especficos da classe, esta uma boa indicao de que a herana deve ser utilizada [Coad, 1992]. Exemplo: classe Imvel, atributo nmero de quartos, num. de sutes, etc.
Generalizao/Especializao
Empregado {abstrata}
recebido durante o ano calcular pagamento
Generalizao/Especializao
!
Empregado Horista
taxa horria taxa por hora extra calcular pagamento
Empregado Assalariado
taxa semanal calcular pagamento
Empregado Autnomo
taxa mensal calcular pagamento
Deve-se analisar as especializaes para verificar quais delas esto no domnio do problema. As que no esto presentes no devem ser representadas. Por exemplo, a modelagem de Homen e Mulher no precisa ser feita, o pagamento do salrio de um funcionrio no influenciado pelo sexo do mesmo.
Generalizao/Especializao
!
Generalizao/Especializao
!
Desta forma, no deve-se criar as subclasses. Pode-se substituir a generalizao / especialzao por uma atributo na classe Empregado que descreve o sexo do empregado e associar uma restrio: {Sexo=M ou Sexo=F}.
Herana Mltipla
Veculo
Conceito pouco usado na prtica: No suportado por todas as linguagens de programao Adiciona maior complexidade ao modelo
Veculo terrestre
Veculo aqutico
Veculo anfbio
Generalizao/Especializao
ContaBancria Cliente * *
nmero dataAbertura saldo debitar(quantia) creditar(quantia)
* HistricoTransaes
Todo evento que precisa ser registrado e lembrado pelo sistema pode ser considerado um potencial candidato a classe. Idia: Existe algum instante ou evento histrico que precisa ser observado e armazenado pelo sistema?
!
ContaCorrente
limiteSaque
ContaPoupana
dataAniversrio rendimento
! !
Em um sistema de registros de carros tem que lembrar quando algum comprou o carro; Lembrar quando algum reservou/alugou uma fita; Matrcula de um aluno; e Pagamento de documentos, etc.
Exerccio ! Usar classes e associaes para definir o glossrio do sistema Jogo de Futebol descrito de seguida: O jogo de futebol realizado por duas equipes de jogadores. Cada equipe composta por 11 jogadores, com diferentes funes: o goleiro, zagueiros, mdios, atacantes, e pontas de lana. O ponta de lana um atacante especial por ter especiais caractersticas 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 adversrio. No jogo apenas existe uma nica bola, que apresenta caractersticas (peso, dimetro, ) regulamentares... O jogo de futebol mediado por uma equipe de 3 rbitros, em que um o rbitro principal, e os outros dois so rbitros auxiliares.
Restries
!
Restrio {ou} implica na seleo exclusiva entre duas ou mais associaes existentes em uma classe
cliente
Conta corrente 0..* {ou} 0..* 0..1 Indivduo
cliente
0..1 Organizao
Restrio
!
Restries
1..* {ou} 0..* 1..* Empresa Indivduo
Observao: possvel mapeamento para uso de restrio {ou} com multiplicidade mxima 1.
cliente
Conta corrente 0..* 0..1 Cliente
Companhia de Seguros
0..*
Indivduo
Organizao
Restries
0..1
chefe
Restries
Janela comprimento largura 1..* Empregado salrio
Empresa
empregador empregado
Pessoa
{0,8<=comprimento/largura<=1,5} 1 chefe
{ Pessoa.empregador = Pessoa.chefe.empregador }
{Empregado.salrio < Empregado.chefe.salrio}
0..*
0..* 0..*
Pessoa
Comit
Janela
Visvel em
Tela
{ordenado}
Restries
0..1 casamento Data Regime
Restries
!
Exemplos
mora * Pessoa
{subconjunto}
{pessoa.sexo=Feminino} esposa
Condomnio
Sexo
sndico
Restries
Conta Bancria nmero saldo dataAbertura criar() bloquear() desbloquear() creditar() debitar() *
{subconjunto}
Atributo derivado
titular 1..*
correntista
Acrescentar o monitor (aluno): o aluno pode exercer o papel de monitor durante um perodo Permitir que uma pessoa exera simultaneamente o papel de Professor e Aluno da Universidade
Discusso
!
Discusso
!
Problemas
Acomodao inbil de objetos que mudam de classes Pessoa ! Transmutao ou Metamorfose
!
Professor
Aluno
Professor Monitor
Aluno
Monitor
Discusso
!
Transmutao
!
Exerccio
!
Soluo
!
Construa um modelo de classes que preserve o histrico de um professor durante a sua vida profissional
!
0. criao
Professor
matrcula
Aluno
matrcula
Monitor
Em particular, importante manter o registro do incio e trmino do desempenho em uma das etapas
Erros comuns
!
Erros Comuns
!
Usar classes ou associaes para representar consultas ou operaes do sistema que no devem ser registradas
!
Exemplo 1
Usurio consulta Acervo
Usar classes ou associaes para representar consultas ou operaes do sistema que no devem ser registradas; As associaes devem refletir caractersticas permanentes entre classes, e no situaes temporrias. ! Exemplo 2
Usurio faz * Consulta
Erros Comuns
!
Erros Comuns
!
EstiloMusical
Erros Comuns
!
Erros Comuns
!
As associaes so suficientes
Chave primria? Usar OID!
Funcionrio
trabalha *
Pagode
Rock
Ax
codFunc codDepto
Perguntas?