Você está na página 1de 6

Diagrama de

UML Implantação
Linguagem de Modelagem Unificada

Aula 7
2004

1 2

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

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


Diagrama de Implantação
Objetos
„ Mapeamento de Modelos UML para
– Linguagens de programação
– Bancos de Dados

3 4
Projeto Orientado a Projeto Orientado a
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

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


Objetos Objetos
„ Problemas enfrentados „ Problemas a serem enfrentados
– A linguagem alvo não é OO – A linguagem alvo é baseada em
„ Solução: mapeamento de classes para tipos objetos
de dados „ Solução: eliminação da herança e
Pedido Cliente polimorfismo
Programa em
?
Data recebimento Cliente
é_préPago * 1 Nome Programa em
Endereço COBOL Cliente Nome
Número Ada83
?
Limite de crédito Endereço
Preço Nome
Entregar Limite de crédito
Endereço
Cancelar Limite de crédito
Cliente Corporativo
Nome
Cliente Corporativo Cliente Pessoa Sem herança Endereço
* Programa em Limite de c’redito
Item de Pedido
Pessoa_Contato No. cartão de crédito Pascal Cliente Corporativo Cliente Pessoa Pessoa_Contato
Nome
Quantidade Cliente Pessoa
Pessoa_Contato No. cartão de crédito Nome
Preço
Endereço
5 Limite de crédito 6
No. cartão de crédito

Projeto Orientado a Projeto Orientado a


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

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


Objetos Objetos
„ Problemas a serem enfrentados „ Problemas a serem enfrentados
(cont.) (cont.)
– Linguagem alvo permite herança simples – Linguagem alvo é orientada a objetos
Pessoa * Pessoa com herança simples (cont.)
Pessoa Função
Veículo

Pessoa Pessoa Pessoa Pessoa


* Propriedade
Funcionário Proprietário
*
Proprietário Funcionário Veículo
Terrestre
Veículo
Aquático
?
Propriedade
Proprietário
{Pessoa.PessoaFunção = Pessoa Proprietário} Veículo
Funcionário
7 Anfíbio 8
Projeto Orientado a Projeto Orientado a
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

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


Objetos Objetos
„ Persistência de objetos „ Persistência de Objetos
Objetos em – Em SGBDOOs
execução
(RAM) „ Normalmente é simples, pois o SGBD possui
os mesmos conceitos implementados na
linguagem de programação
Mecanismo mensagem „ Mapeamento entre classes transientes e
de persistência associação
persistentes
– uso de classes especiais (fornecidas como
bibliotecas)
Objetos
persistentes
em disco
9 10

Projeto Orientado a Projeto Orientado a


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

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


Objetos Objetos
„ Persistência de Objetos „ Persistência de Objetos
– Em SGBDOOs (exemplo) Storable <<interface>> – Em SGBD-
SGBD-Relacional (processo geral)
Serializable
insert()
remove() ... „ Definir as tabelas na 3FN a partir das classes
getObject()
select()
getObjectId()
– Listar cada Classe e seus atributos
...
– Levar esta lista para a 3FN, resultando em tabelas
Trabalha_para
Bilbioteca 1, N
– Definir uma tabela de bd para cada tabela listada.
Item
{persistente}
– Representar as tabelas como classes no modelo de
1, N Data_Aquisição: Date
Núm_Tombo: Int
0, N
objetos
0, N
ersistente}
Livro
Pessoa
Nome: Str
1, N „ Projetar consultas
1
– Obs: Não é detalhado aqui
Endereço: { Funcionário
1, N Título: Str autoria
Logradouro: Str,
ISBN: Int 0, N 1, N Bairro: Str,
Definir esquema de acesso
Cargo: Str
Editora: Str Cidade: Str. } „
CPF: Str
Telefones: array of Str;
{persistente} 1, N
{persistente}
Usuários
11
{persistente} 12
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org
Projeto Orientado a Projeto Orientado a

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


Objetos Objetos
Influências de SGBDs
„ Persistência de Objetos „ Persistência de Objetos
– Em SGBD-
SGBD-Relacional – Em SGBD-
SGBD-Relacional (cont.)
„ Tabelas „ Para classe do domínio do problema persistente
– Nome, Identificadores, Colunas, Linhas, Restrições – Gerar (pelo menos) uma tabela na 3FN
– Cada coluna possui um valor atômico
– Cada linha representa um conjunto de valores dentro da Pessoa Endereço_Pessoa
tabela Código Nome CódPessoaLogradouro Bairro Cidade
Pessoa Funcionário
„ Operações Funcionário Nome: Str
... ... ... ... ... ...

Endereço: {
– Seleção CPF Nome Cargo Logradouro: Str,
Bairro: Str,
Cargo: Str
CPF: Str Telefones_Pessoa

– Projeção Cidade: Str. }


CódPessoa Número Funcionário
Telefones: array of Str;
CódPes CPF Cargo
– Junção ... ...

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

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


Projeto Orientado a Objetos Projeto Orientado a Objetos
Influências de SGBDs Influências de SGBDs
„ Persistência de Objetos „ Persistência de Objetos
– Em SGBD-Relacional (cont.) – Em SGBD-Relacional (cont.)
Cliente
CPF
nome: String
telefone: String
mora
número: String
logradouro: String
dataNascimento: Data dígitoVerificador: String *
/idade: int Pessoa {subconjunto} Condomínio
cep: String

Cliente(id
Cliente(id,
, CPF, nome,
nome, telefone,
telefone, logradouro,
logradouro, síndico
dataNascimento, idCEP)
dataNascimento, idCEP)
CEP(id, número,
CEP(id, número, sufixo)
sufixo) Pessoa(id
Pessoa(id,
, dadosPessoa)
dadosPessoa)
Cliente(id
Cliente(id,
, nome,
nome, telefone,
telefone, logradouro,
logradouro, Condomínio(id
Condomínio(id,, dadosCondomínio)
dadosCondomínio)
dataNascimento,
dataNascimento, CPF, CEP) Síndico(idCondomínio
Síndico(idCondomínio,, idPessoa)
idPessoa)
15 16
[Bezerra, 2002]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org Projeto Orientado a

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


Projeto Orientado a Objetos
Objetos Influências de SGBDs
Influências de SGBDs
„ Persistência de Objetos Classe para
„ Símbolos
– Em SGBD-Relacional (cont.) acesso a bases de
dados Relacionais
Table

„ Para cada classe persistente


– Conectar classes que acessam as tabelas View
TTable {abstrata}

Chave Primária PK

Chave Estrangeira FK

Pessoa PK
TabPessoa
Funcionário
TabFunc
Chave Primária/Estrangeira F
Nome: Str
Endereço: {
... Logradouro: Str, Cargo: Str ...
Bairro: Str, CPF: Str Relacionamento 0..1 1
Cidade: Str. }
Telefones: array of Str;
0..1 1
Classes do Domínio do Problema 17 18
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

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


Projeto Orientado a Objetos Projeto Orientado a Objetos
Influências de SGBDs Influências de SGBDs

„ Exemplo „ Exemplo Cliente

PK NUMCLIENTE: SMALLINT
é efetuado por PRIMNOME: VARCHAR(12)
Departamento Pedido ULTNOME: VARCHAR(15)
1..*
ENDERECO: VARCHAR(25)
PK NUMPEDIDO: SMALLINT TELEFONE: CHARACTER(10)
ADMDEPTO: CHARACTER(3)
DESCRICAO: VARCHAR(255) EMAIL: VARCHAR(25)
NOMEDEPTO: VARCHAR(29) FK NUMFUNCIONARIO: CHARACTER(6)
PK NUMDEPTO: CHARACTER(3) DATA: TIMESTAMP
P
K NUMCLIENTE: SMALLINT
LOCALIZA: CHARACTER(16) F 0..*
FK NUMGERENTE: CHARACTER(6)
NUMPROJETO: CHARACTER(10)
P
K NUMEMPREG: CHARACTER(6)
F Funcionario

DATANASC: DATE
PK NUMFUNCIONARIO: CHARACTER(6)
PRIMNOME: VARCHAR(12)
vende para
DATAADMISSAO: DATE
CARGO: CHARACTER(8) 0..*
ULTNOME: VARCHAR(15)
TELEFONE: CHARACTER(10)
19 SEXO: CHARACTER(1) 20
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - quites@computer.org

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


Projeto Orientado a Objetos
Influências de SGBDs

„ Exemplos
é efetuado por
Pedido Cliente
1..*

PK NUMPEDIDO: SMALLINT PK NUMCLIENTE: SMALLINT


DESCRICAO: VARCHAR(255) PRIMNOME: VARCHAR(12)
DATA: TIMESTAMP ULTNOME: VARCHAR(15)
P ENDERECO: VARCHAR(25)
F
K NUMCLIENTE: SMALLINT
TELEFONE: CHARACTER(10)
EMAIL: VARCHAR(25)
FK NUMFUNCIONARIO: CHARACTER(6)
PEDIDO

CLIENTE
<<Derive>> <<Derive>>
Pedido_Cliente

PK NUMPEDIDO: SMALLINT
DESCRICAO: VARCHAR(255)
DATA: TIMESTAMP
P
F
K NUMCLIENTE: SMALLINT
PRIMNOME: VARCHAR(12) 21 22
ULTNOME: VARCHAR(15)