Sie sind auf Seite 1von 9

Modelagem de Dados com UML

Modelagem de Dados com UML


!

Generalizao/Especializao

Generalizao/Especializao
! !

Herana de propriedades Associao do tipo um


Cliente
nome

Super-classe

PessoaFsica
CPF RG Sexo DataNascimento

PessoaJurdica
CGC RazoSocial

Sub-classes (herdeiras)

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Generalizao/Especializao
!

Generalizao/Especializao
!

Polimorfismo: no h necessidade de se criar uma associao entre Venda e subclasses de Cliente


Cliente
nome

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.

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Generalizao/Especializao
Empregado {abstrata}
recebido durante o ano calcular pagamento

Generalizao/Especializao
!

Classes Abstratas (no usada para gerar objetos)

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.

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

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

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Generalizao/Especializao
ContaBancria Cliente * *
nmero dataAbertura saldo debitar(quantia) creditar(quantia)

Evento Lembrado [Coad 1992]:


!

* 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.

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

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

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

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..* Contrato de Seguro

0..*

Indivduo

Organizao

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Restries
0..1
chefe

Restries
Janela comprimento largura 1..* Empregado salrio

Empresa

empregador empregado

Pessoa

{0,8<=comprimento/largura<=1,5} 1 chefe

Cargo prioridade {prioridade nunca cresce}

{ Pessoa.empregador = Pessoa.chefe.empregador }
{Empregado.salrio < Empregado.chefe.salrio}

0..*

Membro-de {subconjunto} Presidente-de

0..* 0..*

Pessoa

Comit

Janela

Visvel em

Tela

{ordenado}

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Restries
0..1 casamento Data Regime

Restries
!

Exemplos
mora * Pessoa
{subconjunto}

{pessoa.sexo=Feminino} esposa

Pessoa Nome Endereo: {


Logradouro; Bairro; Cidade. }

Condomnio

Sexo

0..1 marido {pessoa.sexo=Masculino}

sndico

Modelagem de Dados com UML


!

Modelagem de Dados com UML


!

Restries
Conta Bancria nmero saldo dataAbertura criar() bloquear() desbloquear() creditar() debitar() *
{subconjunto}

Atributo derivado

titular 1..*

Pessoa Nome: Str Endereo: {


Logradouro: Str, Bairro: Str, Cidade: Str. }

Atributo derivado {idade = data_atual data_nascimento}

correntista

Telefones: Array of Int Atributo derivado {lucro = valor_venda valor_compra}

Modelagem de Dados com UML


!

Complementar o modelo de controle acadmico.


!

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
!

Monitor, Professor, Aluno: herana


Pessoa

Monitor, Professor, Aluno: herana


!

Problemas
Acomodao inbil de objetos que mudam de classes Pessoa ! Transmutao ou Metamorfose
!

Professor

Aluno

Professor Monitor

Aluno

Monitor

Discusso
!

Transmutao
!

Monitor, Professor, Aluno: herana


!

Exerccio
!

Soluo
!

Combinar herana e associao


Pessoa exerce * PapelPessoa {abstrata}
!

Em uma IFES, o plano de carreira para professores dividido em quatro etapas:


!

Auxiliar, Assistente, Adjunto e Titular

nome cpf dataNascimento

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

4. Incio: 01/01/prximo ano

1. Incio: 01/02 3. Fim: 31/12

2. Incio: 01/11 Fim: 31/12

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
!

Identificar mtodos nas classes sem ter feito a modelagem temporal

Inserir atributos quando o ideal criar uma classe


Canal
* Refere-se a

EstiloMusical

O que sintonizar? -Quem usa? -Quais os parmetros?

Erros Comuns
!

Erros Comuns
!

Usar herana quando a quantidade de tipos grande ou dinmica


EstiloMusical EstiloMusical
Nome: string

Inserir chaves-estrangeiras no diagrama de classes


!

As associaes so suficientes
Chave primria? Usar OID!

Funcionrio

trabalha *

Depto codDepto ...

Pagode

Rock

Ax

codFunc codDepto

Chave estrangeira? Redundante!

Perguntas?

Das könnte Ihnen auch gefallen