Você está na página 1de 12

Modelagem de Dados

UML com UML


Linguagem de Modelagem Unificada

Aula 4
2004

1 2

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classe
– Representação dos dados manipulados e – Notação
armazenados pelos programas de acordo
Nome da classe
com os conceitos de Orientação a Objetos
– Notação fortemente baseada no Atributo
atributo: tipo de dado
Diagramas Entidade-Relacionamento de atributo: tipo de dado = valor inicial
Peter Chen
Operação
Opcionais Operação(lista de argumentos):
(fornecidos somente após tipo do resultado
um melhor entendimento
do sistema)
3 4
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classe
– Associações – Atributos
Multiplicidade da associação
Pessoa
Nome: Str
Livro escrito por Endereço: {
Pessoa
0..* 1..* Logradouro: Str,
Bairro: Str,
Cidade: Str. }
Telefones: Array of Int Obs: Atributos compostos e
Multivalorados são
permitidos pelo modelo de
Rótulo da associação dados OO
5 6

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classes
– Associações – Atributos e Métodos
Obs: recomenda-se sempre incluir
Multiplicidade da associação o nome da associação ou um papel
Conta Bancária
Pessoa Pessoa
Livro número
Nome: Str Nome: Str
escrito por saldo
Endereço: { * 1 Endereço: {
Título: 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()
Rótulo da associação Papel da classe na associação
7 8
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classes
– Associações entre objetos (Exemplos) – Associações entre objetos
„ Navegabilidade

Associação Unária
*
Funcionário
Funcionário 1 Departamento
João 0..* trabalha Associação Binária
0..1
Supervisiona
Funcionário trabalha em Departamento
supervisiona
João Financeiro

É supervisionado por
9 10
Funcionário Funcionário Departamento

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classes
– Associações entre objetos – Multiplicidade
„ Navegabilidade
Multiplicidade Significado
Funcionário Departamento
0..* trabalha 0..1 Zero ou um
1 Somente 1 (opcional)
0..* Maior ou igual a zero
João Financeiro
* Maior ou igual a zero
1..* Maior ou igual a 1
Funcionário Departamento
1..15 (m..n) De 1 a 15 (m a n), inclusive
11 12
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classes „ Diagrama de Classes
– Exemplos – Exemplos
Funcionário Departamento
1 trabalha 0..1 trabalha
* *
Funcionário Departamento
Funcionário Departamento
0..* trabalha
gerente 0..1

Funcionário Departamento
0..* trabalha 1..*

(adaptado de BEZ02) 13 14

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Exemplos „ Diagrama de Classe
– Classes associativas
„ Informação que surge a partir da associação
financia realizada por
Financeira 0..1 * Venda * Vendedor de duas outras classes
código data número
casamento
nome hora nenha Data
nívelAutorização Regime
esposa 0..1
Pessoa
Nome
Endereço: {
Logradouro; 0..1
Bairro; marido
Cidade. }
15 Sexo 16
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classe „ Diagrama de Classe
– Classes associativas – Classes associativas

financia realizada por


* matriculado * Financeira Venda Vendedor
Aluno Disciplina 0..1 * *

código data número


nome hora nenha
nívelAutorização
Financiamento
conceito registroAprovação
semestre dataAprovação

17 18

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classe „ Diagrama de Classe
– Classes associativas – Classes associativas
„ Observação importante: o conceito de “Classe „ Classe associativa substituída por normal
Associativa” não é permitido em todas as Funcionário Departamento
* trabalha 0..1
linguagens de programação e sistemas de
banco de dados OO
salário
„ Assim, em muitos casos as classes dataContratação
associativas encontradas em Análise são Exercício: definir a multiplicacidade para manter o mesmo significado
substituídas por classes regulares em Projeto do modelo acima

Funcionário Emprego Departamento


? ? ? ?
salário
19
dataContratação 20
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Diagrama de Classe „ Diagrama de Classe
– Agregação – Agregação
„ Associa de todo/parte „ Exemplo

„ Ação realizada sobre todo atinge as partes

„ Tipo especial de associação


Associação 0..* 0..*
◀ afiliada Equipe Jogador
0..* 0..* Esportiva
Documento composto-por Parágrafo composto-por Sentença

0..* 0..*
Documento Parágrafo Sentença
21 22

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Agregação vs Composição
„ Composição
– Composição é um tipo especial de agregação (por
valor) – A remoção do todo implica na remoção
– Semanticamente equivalente a um atributo das partes
composição – O acesso às partes é restrito ao todo Objeto
Pessoa Pessoa Endereço externo
Pessoa Endereço
logradouro
nome nome
bairro nome logradouro pessoa
endereço: { sexo bairro
cidade sexo
logradouro; cidade
bairro;
cidade. } endereço cpf
CPF
cpf CPF
sexo número
número
validaCPF: bool
23 validaCPF: bool 24
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Composição „ Composição
– Exemplo (adaptado de [HEU00])
– Exemplo

Produto * ItemVenda * Venda


código data
Produto * ItemVenda * Venda descrição
quantidade
hora
código data
quantidade
descrição hora
Uso adequado de composição

Uso inadequado de composição:


Partes de uma composição não podem ser referenciadas
por objetos externos
25 26

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Generalização/Especialização „ Generalização/Especialização
– Herança de propriedades
– Associação do tipo “é um”
Super-classe Cliente
nome

PessoaFísica PessoaJurídica
Sub-classes
CPF CGC
RG
(herdeiras)
RazãoSocial
Sexo
27 DataNascimento 28
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Generalização/Especialização „ Generalização/Especialização
Classes Abstratas
– Polimorfismo: não há necessidade de se (não é usada para
Empregado {abstrata}
criar uma associação entre Venda e gerar objetos)
recebido durante o ano
subclasses de Cliente calcular pagamento
Cliente
* realiza *
nome Compra

Empregado Horista Empregado Assalariado Empregado Autônomo


taxa horária
taxa semanal taxa mensal
taxa por hora extra
PessoaFísica PessoaJurídica calcular pagamento calcular pagamento calcular pagamento
CPF CGC
RG RazãoSocial
Sexo 29 30
DataNascimento

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Generalização/Especialização „ Generalização/Especialização
– Herança Múltipla Veículo
ContaBancária
Conceito pouco usado na prática:
número
•Poucas linguagens de programação * * * HistóricoTransações
Cliente dataAbertura
permitem o uso saldo
•Adiciona maior complexidade ao Veículo Veículo debitar(quantia)
modelo terrestre aquático creditar(quantia)

ContaCorrente ContaPoupança
Veículo
anfíbio dataAniversário
limiteSaque
rendimento
31 32
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Exercício
– Usar classes e associações para definir o glossário do sistema
„ Restrições
“Jogo de Futebol” descrito de seguida: “O jogo de futebol é
realizado por duas equipes de jogadores. Cada equipe é {func.cargo = “Diretor”}
composta por 11 jogadores, com diferentes funções: o goleiro, Diretoria func
0..1 0..*
zagueiros, médios, atacantes, e pontas de lança. O ponta de
lança é um atacante especial por ter especiais características 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 Indivíduo
0..1
equipe que marcar mais gols (i.e., colocar a bola) na baliza do 0..*
Conta
adversário. No jogo apenas existe uma única bola, que apresenta
corrente {ou}
características (peso, diâmetro, …) regulamentares... O jogo de
0..*
futebol é mediado por uma equipe de 3 árbitros, em que um é o
árbitro principal, e os outros dois são árbitros auxiliares…”. Organização
0..1
33 34

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Restrições „ Restrições
0..1 chefe
1 * *
Empresa Pessoa
Indivíduo empregador empregado
1..*
0..*
Companhia 1 0..* Contrato de { Pessoa.empregador = Pessoa.chefe.empregador }
de Seguros Seguro {ou}
0..*

Empresa
1..* 0..* Membro-de 0..*
Pessoa {subconjunto}
0..* Comitê
Presidente-de

35 36
Modelagem de Dados com Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Restrições „ Restrições
Janela
comprimento
largura Data
1..* casamento Regime
{0,8<=comprimento/largura<=1,5} Cargo 0..1
Empregado 1 {pessoa.sexo=Feminino} esposa
salário chefe prioridade
Pessoa

{Empregado.salário < Empregado.chefe.salário} {prioridade nunca cresce} Nome


Endereço: {
Logradouro; 0..1
Bairro; marido
Cidade. } {pessoa.sexo=Masculino}
* Visível em Sexo
Janela Tela
{ordenado}

37 38

Modelagem de Dados com Modelagem de Dados com


UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML UML
„ Restrições „ Restrições
– Exemplos
mora Conta Bancária
* titular Pessoa
* número
Nome: Str
Pessoa {subconjunto} Condomínio saldo {subconjunto}
Endereço: {
dataAbertura * 1..*
Logradouro: Str,
correntista Bairro: Str,
síndico criar()
Cidade: Str. }
bloquear()
Telefones: Array of Int
desbloquear()
creditar()
debitar()

39 40
Modelagem de Dados com
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


UML
„ Atributo derivado

Pessoa
data-de-nascimento
Atributo derivado
/idade
{idade = data-atual - data-de-nascimento}

Produto
Valor de venda
Atributo derivado Custo
/Lucro
{lucro = valor de venda - custo}
41 42
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


Discussão Discussão

„ Complementar o modelo de controle „ Monitor, Professor, Aluno: herança


acadêmico.
Pessoa
– Acrescentar o monitor (aluno): o aluno
pode exercer o papel de monitor durante
um período Professor Aluno
– Permitir que uma pessoa exerça
simultaneamente o papel de Professor e
Aluno da Universidade Monitor

43 44
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org


Discussão Discussão

„ Monitor, Professor, Aluno: herança „ Monitor, Professor, Aluno: herança


– Problemas – Solução
„ Acomodação inábil de objetos que mudam de „ Combinar herança e associação
classes
Pessoa exerce
„ Transmutação Pessoa * PapelPessoa {abstrata}

nome
cpf
dataNascimento
Professor Aluno
0. criação Professor Aluno Monitor
matrícula matrícula

Monitor 2. Início: 01/11


4. Início: 01/01/próximo ano 1. Início: 01/02 Fim: 31/12
45 46
3. Fim: 31/12
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

Transmutação

„ Exercício
– Em uma IFES, o plano de carreira para
professores é dividido em quatro etapas:
„ Auxiliar, Assistente, Adjunto e Titular
– Construa um modelo de classes que
preserve o histórico de um professor
durante a sua vida profissional
„ Em particular, é importante manter o registro
do início e término do desempenho em uma
das etapas

47