Diagrama de Implantação
UML
Linguagem de Modelagem Unificada Aula 7 2004
2
Diagrama de Implantação
3
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
1
Projeto Orientado a Objetos
Mapeamento de Modelos UML para – Linguagens de programação – Bancos de Dados
4
Problemas enfrentados – A linguagem alvo não é OO Solução:
de dados
Pedido Data recebimento é_préPago * Número Preço Entregar Cancelar
mapeamento de classes para tipos Cliente 1
* Item de Pedido
Nome Endereço Limite de crédito
Programa em COBOL
?
Cliente Corporativo
Cliente Pessoa
Pessoa_Contato
No. cartão de crédito
Programa em Pascal
Nome Quantidade Preço
5
Projeto Orientado a Objetos
Problemas a serem enfrentados (cont.) – Linguagem alvo permite herança simples Pessoa
Pessoa
Pessoa Funcionário
Pessoa Proprietário
*
Pessoa Função
Pessoa Proprietário
* Propriedade
Pessoa Funcionário
* Propriedade Proprietário Funcionário
{Pessoa.PessoaFunção = Pessoa Proprietário} 7
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) -
[email protected]
Projeto Orientado a Objetos
Projeto Orientado a Objetos
Problemas a serem enfrentados – A linguagem alvo é baseada em objetos Solução:
eliminação da herança e polimorfismo Cliente
Nome Endereço Limite de crédito
?
Sem herança Cliente Corporativo
Cliente Pessoa
Pessoa_Contato
No. cartão de crédito
Cliente
Programa em Ada83
Nome Endereço Limite de crédito Cliente Corporativo Nome Endereço Limite de c’redito Pessoa_Contato Cliente Pessoa Nome Endereço Limite de crédito No. cartão de crédito
6
Projeto Orientado a Objetos
Problemas a serem enfrentados (cont.) – Linguagem alvo é orientada a objetos com herança simples (cont.) Veículo
Veículo Terrestre
Veículo Aquático
Veículo Anfíbio
? 8
Persistência de objetos Objetos em execução (RAM)
Objetos persistentes em disco 9
Projeto Orientado a Objetos
Persistência de Objetos – Em SGBDOOs (exemplo)
Storable insert() remove() getObject() select() getObjectId() ...
<
> Serializable ...
Trabalha_para
Bilbioteca
ersistente}
mensagem associação
Mecanismo de persistência
1, N
Item 1, N
Data_Aquisição: Date Núm_Tombo: Int
{persistente} 0, N
0, N Livro 1, N
Título: Str ISBN: Int Editora: Str
{persistente}
1 0, N
autoria 1, N
{persistente}
Pessoa Nome: Str Endereço: {
1, N Funcionário
Logradouro: Str, Bairro: Str, Cidade: Str. }
Cargo: Str CPF: Str
Telefones: array of Str; 1, N
Usuários 11 {persistente}
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Projeto Orientado a Objetos
Projeto Orientado a Objetos
Persistência de Objetos – Em SGBDOOs Normalmente
é simples, pois o SGBD possui os mesmos conceitos implementados na linguagem de programação Mapeamento entre classes transientes e persistentes – uso de classes especiais (fornecidas como bibliotecas)
10
Projeto Orientado a Objetos
Persistência de Objetos – Em SGBDSGBD-Relacional (processo geral)
Definir as tabelas na 3FN a partir das classes – – – –
Listar cada Classe e seus atributos Levar esta lista para a 3FN, resultando em tabelas Definir uma tabela de bd para cada tabela listada. Representar as tabelas como classes no modelo de objetos
Projetar consultas – Obs: Não é detalhado aqui
Definir esquema de acesso 12
13
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
15
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Projeto Orientado a Objetos Persistência de Objetos – Em SGBDSGBD-Relacional
Tabelas – – –
Nome, Identificadores, Colunas, Linhas, Restrições Cada coluna possui um valor atômico Cada linha representa um conjunto de valores dentro da tabela
Operações
Funcionário
– Seleção – Projeção – Junção
CPF
Nome
Cargo
Projeto Orientado a Objetos Influências de SGBDs
Persistência de Objetos – Em SGBD-Relacional (cont.) Cliente nome: String telefone: String logradouro: String dataNascimento: Data /idade: int cep: String
Cliente(id , CPF, nome, Cliente(id, nome, dataNascimento, dataNascimento, idCEP) idCEP) , número, CEP(id número, sufixo) sufixo) CEP(id,
CPF número: String dígitoVerificador: String
telefone, telefone,
Cliente(id , nome, telefone, Cliente(id, nome, telefone, dataNascimento, dataNascimento, CPF, CEP)
logradouro, logradouro,
logradouro, logradouro, [Bezerra, 2002]
Projeto Orientado a Objetos
Influências de SGBDs
Persistência de Objetos – Em SGBDSGBD-Relacional (cont.)
Para classe do domínio do problema persistente – Gerar (pelo menos) uma tabela na 3FN Pessoa
Endereço_Pessoa
Código Nome Pessoa
Funcionário
Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. }
Cargo: Str CPF: Str
...
CódPessoaLogradouro
...
...
Cidade
...
...
Telefones_Pessoa
Funcionário
CódPessoa Número
Telefones: array of Str;
Bairro
...
...
CódPes
...
CPF
Cargo
14
Projeto Orientado a Objetos Influências de SGBDs
Persistência de Objetos – Em SGBD-Relacional (cont.) mora * Pessoa
{subconjunto}
Condomínio
síndico
Pessoa(id , dadosPessoa) Pessoa(id, dadosPessoa) , dadosCondomínio) Condomínio(id dadosCondomínio) Condomínio(id, , idPessoa) Síndico(idCondomínio idPessoa) Síndico(idCondomínio, 16
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
19
Influências de SGBDs
Persistência de Objetos – Em SGBD-Relacional (cont.) Para
cada classe persistente
Classe para acesso a bases de dados Relacionais
– Conectar classes que acessam as tabelas TTable
TabPessoa
...
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
17
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Projeto Orientado a Objetos
Pessoa
Funcionário
Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. }
{abstrata}
TabFunc
Cargo: Str CPF: Str
...
Telefones: array of Str;
Classes do Domínio do Problema
Projeto Orientado a Objetos Influências de SGBDs
Exemplo Departamento ADMDEPTO: CHARACTER(3) NOMEDEPTO: VARCHAR(29) PK NUMDEPTO: CHARACTER(3) LOCALIZA: CHARACTER(16) FK NUMGERENTE: CHARACTER(6) NUMPROJETO: CHARACTER(10) P K NUMEMPREG: CHARACTER(6) F
Projeto Orientado a Objetos Influências de SGBDs
Símbolos Table
View Chave Primária
PK
Chave Estrangeira
FK
Chave Primária/Estrangeira
PK F
0..1
Relacionamento
0..1
1 1 18
Projeto Orientado a Objetos Influências de SGBDs
Exemplo
Cliente é efetuado por
Pedido
1..*
PK NUMPEDIDO: SMALLINT DESCRICAO: VARCHAR(255) DATA: TIMESTAMP P K NUMCLIENTE: SMALLINT F
PK NUMCLIENTE: SMALLINT PRIMNOME: VARCHAR(12) ULTNOME: VARCHAR(15) ENDERECO: VARCHAR(25) TELEFONE: CHARACTER(10) EMAIL: VARCHAR(25) FK NUMFUNCIONARIO: CHARACTER(6) 0..*
Funcionario DATANASC: DATE PK NUMFUNCIONARIO: CHARACTER(6) PRIMNOME: VARCHAR(12) vende para DATAADMISSAO: DATE 0..* CARGO: CHARACTER(8) ULTNOME: VARCHAR(15) TELEFONE: CHARACTER(10) SEXO: CHARACTER(1)
20
Influências de SGBDs
Exemplos Pedido
é efetuado por
Cliente
1..* PK NUMCLIENTE: SMALLINT PRIMNOME: VARCHAR(12) ULTNOME: VARCHAR(15) ENDERECO: VARCHAR(25) TELEFONE: CHARACTER(10) EMAIL: VARCHAR(25) FK NUMFUNCIONARIO: CHARACTER(6)
PK NUMPEDIDO: SMALLINT DESCRICAO: VARCHAR(255) DATA: TIMESTAMP P K NUMCLIENTE: SMALLINT F
PEDIDO
CLIENTE
<>
<>
Pedido_Cliente PK NUMPEDIDO: SMALLINT DESCRICAO: VARCHAR(255) DATA: TIMESTAMP P K NUMCLIENTE: SMALLINT F PRIMNOME: VARCHAR(12) ULTNOME: VARCHAR(15)
21
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]
Projeto Orientado a Objetos
22