Sei sulla pagina 1di 8

Modelagem de Dados com

UML
Modelagem de Dados com
! Diagrama de Classes
UML ! Representao dos dados manipulados e
armazenados pelos programas de acordo com os
conceitos de Orientao a Objetos
Diagrama de Classes ! Notao fortemente baseada no Diagramas
Entidade-Relacionamento de Peter Chen
! Deve-se observar que o Diagrama de Classes
privilegia a descrio segundo o paradigma OO

Modelagem de Dados com Modelagem de Dados com


UML UML
! Aspectos tratados pelos Diagramas de ! Diagrama de Classe
Classe: Dados e Funes ! Notao
Eventos Nome da classe

Atributo
atributo: tipo de dado
Funes atributo: tipo de dado = valor inicial
Dados

Operao
Opcionais Operao(lista de argumentos):
(fornecidos somente aps tipo do resultado
Sistema um melhor entendimento
do sistema)
Modelagem de Dados com Modelagem de Dados com
UML UML
! Diagrama de Classe ! Diagrama de Classes
! Atributos ! Associaes
Multiplicidade da associao
Pessoa
Nome: Str
Endereo: { Livro escrito por
Pessoa
Logradouro: Str, 0..* 1..*
Bairro: Str,
Cidade: Str. }
Telefones: Array of Int Obs: Atributos compostos e
Multivalorados so
permitidos pelo modelo de
dados OO Rtulo da associao

Modelagem de Dados com Modelagem de Dados com


UML UML
Obs: recomenda-se
! Diagrama de Classes ! Diagrama de Classes sempre incluir
o nome da associao ou
! Associaes ! Atributos e Mtodos um papel.
O papel til p/ o
Multiplicidade da associao cdigo-fonte gerado
por ferramentas CASE
Conta Bancria
Pessoa Pessoa
Livro nmero
Nome: Str Nome: Str
escrito por saldo
Endereo: { * 1 Endereo: {
Ttulo: Str 0..* 1..* Logradouro: Str, dataAbertura
Logradouro: Str,
ISBN: Int Bairro: Str, titular Bairro: Str,
criar()
Editora: Str Cidade: Str. } Cidade: Str. }
bloquear()
Telefones: Array of Int Telefones: Array of Int
desbloquear()
creditar()
debitar()
Rtulo da associao Papel da classe na associao
Modelagem de Dados com Modelagem de Dados com
UML UML
! Diagrama de Classes ! Diagrama de Classes
! Associaes entre objetos (Exemplos) ! Associaes entre objetos
! Navegabilidade
Associao Unria Funcionrio 1 Departamento
0..* trabalha Associao Binria
Joo *
Funcionrio
Funcionrio trabalha em Departamento
supervisiona 0..1
Supervisiona
Joo Financeiro

Funcionrio Funcionrio Departamento


supervisionado por

Modelagem de Dados com Modelagem de Dados com


UML UML
! Diagrama de Classes ! Diagrama de Classes
! Associaes entre objetos ! Associaes entre objetos
! Navegabilidade: descreve como as associaes
! Navegabilidade devem ser navegadas.
Funcionrio Departamento ! Unidirecional, s possvel navegar em uma direo.
0..* trabalha
Por exemplo, a partir de um Funcionrio pode-se
determinar o Departamento para o qual ele trabalha,
mas o inverso no possvel.
Joo Financeiro ! Bidirecional, navega-se em ambas as direes. A
partir Funcionrio determina-se o Departamento e
vice-versa.
Funcionrio Departamento
Modelagem de Dados com Modelagem de Dados com
UML UML
! Diagrama de Classes ! Diagrama de Classes
! Multiplicidade ! Decises de cardinalidade expem muitas
Multiplicidade Significado suposies, antes ocultas sobre o
0..1 Zero ou um problema que est sendo modelado.
1 Somente 1 (opcional) ! Exemplos: qual o correto?
0..* Maior ou igual a zero ministra
* Maior ou igual a zero Professor Curso
1..* Maior ou igual a 1
1..15 (m..n) De 1 a 15 (m a n), inclusive
Um professor pode estar indisponvel?
Um curso pode ter 2 professores?

Modelagem de Dados com Modelagem de Dados com


UML UML
! Diagrama de Classes ! Diagrama de Classes
! Exemplos: qual o correto? ! Exemplos
Funcionrio Departamento
1 trabalha 0..1 trabalha
* 1
Funcionrio Departamento
Funcionrio Departamento
0..* trabalha
gerente 0..1

Funcionrio Departamento
0..* trabalha 1..*

(adaptado de BEZ02)
Modelagem de Dados com Modelagem de Dados com
UML UML
! Exemplos ! Diagrama de Classe
! Classes associativas
financia realizada por
! Informao que surge a partir da associao
Financeira 0..1 * Venda * Vendedor de duas outras classes
cdigo data nmero
casamento
nome hora nenha Data
nvelAutorizao Regime
esposa 0..1
Pessoa
Nome
Endereo: {
Logradouro; 0..1
Bairro; marido
Cidade. }
Sexo

Modelagem de Dados com Modelagem de Dados com


UML UML
! Diagrama de Classe ! Diagrama de Classe
! Classes associativas ! Classes associativas
! Conceito no uma caracterstica de Aluno e ! Usar quando existem atributos que no pertencem
nem uma caracterstica de Disciplina, e sim s classes comuns ou quando estas classes
uma propriedade do relacionamento existente podem participar de associaes com outras
entre ambos. classes
financia realizada por
* matriculado * Financeira Venda Vendedor
Aluno Disciplina 0..1 * *
cdigo data nmero
nome hora nenha
nvelAutorizao
Financiamento
conceito registroAprovao
semestre dataAprovao
Modelagem de Dados com Modelagem de Dados com
UML UML
! Diagrama de Classe ! Diagrama de Classe
! Classes associativas ! Classes associativas
! Observao importante: o conceito de Classe ! Classe associativa substituda por normal
Associativa no permitido em todas as Funcionrio Departamento
* possui comisso 0..1
linguagens de programao e sistemas de
banco de dados OO Funo Comissionada
gratificao
! Assim, em muitos casos as classes dataIncio
associativas encontradas em Anlise so Exerccio: definir a multiplicacidade para manter o mesmo significado
substitudas por classes regulares em Projeto do modelo acima
Funo Comissionada
Funcionrio Departamento
? ? ? ?
Gratificao
dataIncio

Modelagem de Dados com Modelagem de Dados com


UML UML
! Diagrama de Classe ! Diagrama de Classe
! Classes associativas - Exerccio ! Agregao
1. Explique o modelo abaixo. ! Associa de todo/parte
2. Substitua as classes associativas por classes ! Ao realizada sobre todo atinge as partes
comuns. ! Tipo especial de associao
0..* 0..*
chefe Trabalha para Documento composto-por Pargrafo composto-por Sentena
Funcionrio Empresa
gerencia
trabalhador
salrio
ttulo do cargo
grau de desempenho 0..* 0..*
Documento Pargrafo Sentena
Modelagem de Dados com Modelagem de Dados com
UML UML
! Agregao vs Composio
! Diagrama de Classe
! Composio um tipo especial de agregao (por
! Agregao valor)
! Exemplo ! Semanticamente equivalente a um atributo
composio

Associao 0..* 0..* Pessoa Pessoa Endereo


! afiliada
Equipe Jogador
Esportiva nome nome logradouro
endereo: { sexo bairro
logradouro; cidade
bairro;
cidade. } CPF
cpf
sexo nmero
validaCPF: bool

Modelagem de Dados com Modelagem de Dados com


UML UML
! Composio ! Composio
! A remoo do todo implica na remoo ! Exemplo (adaptado de [HEU00])

das partes
! O acesso s partes restrito ao todo Objeto
externo Produto ItemVenda Venda
Pessoa Endereo * *
cdigo
nome logradouro pessoa descrio
quantidade data
sexo bairro hora
cidade
endereo cpf
CPF Uso inadequado de composio:
nmero Partes de uma composio no podem ser referenciadas
validaCPF: bool por objetos externos
Modelagem de Dados com
UML
! Composio
! Exemplo

Produto * ItemVenda * Venda


cdigo data
quantidade
descrio hora

Uso adequado de composio

Potrebbero piacerti anche