Uml Aula5

  • Uploaded by: Alan Lira
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Uml Aula5 as PDF for free.

More details

  • Words: 4,210
  • Pages: 21
Modelagem Temporal com UML

UML

Linguagem de Modelagem Unificada Aula 5 2004

2

Modelagem Temporal com UML „

Vários diagramas da UML podem ser usados para expressar os aspectos temporais – Diagrama de Atividades – Diagrama de Transição de Estados – Diagramas de Interação „ Diagrama

de Seqüência „ Diagrama de Colaboração 3

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

1

Modelagem Temporal com UML „

Objetivos da Modelagem Temporal – Descrever detalhadamente as funções a serem desempenhadas em um sistema OO „ „ „ „

Fluxo de mensagens entre objetos Métodos necessários para cada classe Métodos de classe Métodos de objetos

– “O que o sistema deve realizar?” – “Quando cada função será realizada?”

4

Modelagem Funcional e Temporal – Definição de Métodos Pedido Data recebimento é_préPago Número Preço Serviços fornecidos pela classe para outros objetos

?

5

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Notação proposta por David Harel-1987 – Máquina com número finito de estados – A máquina pode receber eventos, e cada evento pode gerar uma transição de estado

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]

Modelagem Temporal com UML

Modelagem Temporal com UML „

Modelagem Funcional e Temporal – Tipos de métodos „

Serviços algoritmicamente simples (90%) – – – –

„

Criar Conectar Acessar Liberar

Serviços algoritmicamente complexos

– Calcular „ Calcula um resultado a partir dos valores de atributos do objeto – Monitorar „ Monitora um sistema ou dispositivo externo „ Lida com E/S externas ao sistema 6

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Estado „ Situação

na vida de um objeto „ Estado é determinado pelo conjunto de valores armazenados em um objeto „ Estados Especiais – Inicial: somente um em um DTE – Final Conta criada

disponível 8

Diagrama de Transição de Estados – Transições „ Um

estado é associado a outro (ou a si mesmo) pelas transições „ Formato: – evento(lista evento(lista--parâmetros) parâmetros) [guarda] / ação Realizar depósito(quantia) / depositar(quantia)

disponível 9

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados Eleitor – Exemplo

Apresentando documentos

Urna

Habilita voto

Esperando

Fecha urna

Habilita voto

Votando em prefeito

Votando em prefeito Voto prefeito

Votando em vereador

Voto prefeito Voto vereador

Votando em vereador Voto vereador

Aguardando comprovante Comprovante recebido 11

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]

Modelagem Temporal com UML - DTE

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Eventos „ Uma

transição é associada a um evento „ Evento: “algo que acontece em algum ponto no tempo e que pode modificar o estado de um objeto” [Bezerra, 2002] Eventos em Software

Eventos do Domínio do Problema

Mouse pressionado

Pedido realizado

Impressora sem papel

Fatura paga Cheque devolvido

10

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Eventos: tipos „ „ „

Evento de chamada: recebimento de uma mensagem de outro objeto (síncrono) Evento de sinal: recebimento de um sinal (assíncrono) Evento temporal: passagem de intervalo de tempo préprédefinido (cláusula after) – Exemplo: after(30 after(30 segundos)

„

Evento de mudança: condição que se torna verdadeira (cláusula when) – Exemplos: „ when(saldo when(saldo > 0) „ when (horário = 00:00 h) 12

Diagrama de Transição de Estados – Guardas „ Condição

lógica que precisa ser satisfeita para habilitar a transição „ Diferença entre guardas e evento de mudança Se ocorre evento e quantia = saldo a transição é disparada

a

Quando quantia = saldo a transição é disparada

a

Evento [quantia=saldo]

when(quantia=saldo)

b

b 13

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Ponto de Junção E2 evento2 [guarda2]/ação2

E0 evento0 [guarda0]/ação0

E3

E4 evento1 [guarda1]/ação1

[else]/ação5

E1 E5 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] UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Modelagem Temporal com UML - DTE

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Ações „ “Ao

transitar de um estado para outro, um objeto pode realizar uma ou mais ações” „ Representação: – /ação

14

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Conta Bancária Conta criada

Realizar depósito(quantia) / depositar(quantia)

disponível

Conta fechada

Realizar saque (quantia) Realizar saque(quantia) when (saldo > 0) [quantia > saldo] / sacar(quantia) / sacar(quantia) Realizar saque (quantia)

bloqueada after(30 dias)/aplicarJuros()

Realizar depósito (quantia) / depositar(quantia)

[Bezerra, 2002]

16

Diagrama de Transição de Estados – Despertador

Desarmado

Esperando

Tocando 17

Modelagem Temporal com UML - DTE funcionabilidade H

tampa fechada

pausa

tampa levantada

parada

enchimento

lavagem

Nodo (H) registra o histórico do último estado

Estado Aninhado

... Page-Jones, M. Fundamentos do Desenho Orientado a Objeto com UML. Makron Books, 2001. 19

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]

Modelagem Temporal com UML - DTE

Modelagem Temporal com UML - DTE „

Diagrama de Transição de Estados – Despertador Armar alarme(horario)

Despertador n horarioDefinido

/ horarioDefinido := horario, n := 0 when(n > 3)

Desarmar alarme

desarmado

esperando entry / n := n + 1

when(horarioDefinido = agora())

Ação ocorre quando a ação entry de tocandoAlarme é encerrada

/ horarioDefinido := horarioDefinido + 5 minutos

tocando alarme

Desarmar alarme

entry / tocarAlarme(10)

18

Modelagem Temporal com UML - DTE „

Estado de Histórico Command

BackingUp H

Collecting

pause

End-of-backup

Copying

CleaningUp 20

21

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

„

23

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]

Modelagem Temporal com UML - DTE Estados concorrentes Idle

maintain

Maintenance Testing

Testing devices

Self Diagnosis

Waiting

Command

Commanding

Modelagem Temporal com UML - DTE „

Engenharia de Produção com DTE (2) class MessageParser { Public boolean put(char c) { switch(state) { case Waiting:

...

if (c == ‘<‘) { state = GettingToken; token = new StringBuffer(); body = new StringBuffer(); } break; case GettingToken: if (c == ‘>’) state = GettingBody else token.append(c); break; case GettingBody: if (c == ‘;’) { state = Waiting; return true; } else body.append(c); } return false;

Modelagem Temporal com UML - DTE „

Engenharia de Produção com DTE (1) put(c) [c==‘;‘] / return true

Waiting put(c) [c/=‘<‘] / return false

put(c) [c==‘<‘]

GettingToken

put(c) [c==‘>‘]

GettingBody put(c) [c/=‘>‘] / return false put(c) [c/=‘;‘] / body.append(c); return false

22

Obtido em http://www.dvo.ru/bbc/pdpta/vol5/p522.pdf

24

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Slides a seguir extraídos de

Bezerra, 2002

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

25

Modelagem Temporal com UML - DTE „

Um DTE por classe – Para resolver o problema da explosão exponencial de estados, os diagramas de estados são desenhados por classe. „ Desvantagem:

dificuldade na visualização do estado do sistema como um todo. „ Essa desvantagem é parcialmente compensada pelos diagramas de interação.

27

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Processo e Heurísticas para Construção de diagramas de transições de estados

Modelagem Temporal com UML - DTE „

Quantidade de Estados – Em sistemas bastante simples, a definição dos estados de todos os objetos não é tão trabalhosa. – No entanto, o crescimento dos estados de um sistema cresce exponencialmente com o número de objetos – Torna impraticável a construção de um único diagrama para todo o sistema 26

Modelagem Temporal com UML - DTE „

Identificação de Transições – Nem todas as classes de um sistema precisam de um DTE. „ Somente

classes que exibem um comportamento dinâmico relevante. „ Objetos cujo histórico precisa ser rastreado pelo sistema são típicos para se construir um diagrama de estados.

28

Processo de construção de DTEs (1) – –

– –

Identifique os estados relevantes para a classe. Identifique os eventos relevantes. Para cada evento, identifique qual a transição que ele ocasiona. Para cada estado: identifique as transições possíveis quando um evento ocorre. Para cada estado, identifique os eventos internos e ações correspondentes. 29

Modelagem Temporal com UML - DTE „

Informações para o modelo de classes – A construção de um DTE freqüentemente leva à descoberta de novos atributos para uma classe „ principalmente

atributos para servirem de abstrações para estados.

– Além disso, este processo de construção permite identificar novas operações na classe „ pois

os objetos precisam reagir aos eventos que eles recebem.

31

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]

Modelagem Temporal com UML - DTE

Modelagem Temporal com UML - DTE „

Processo de construção de DTEs (2) –



– –

Para cada transição, verifique se há fatores que influenciam no seu disparo. (definição de condições de guarda e ações). Para cada condição de guarda e para cada ação, identifique os atributos e ligações que estão envolvidos. Defina o estado inicial e os eventuais estados finais. Desenhe o DTE. 30

Modelagem Temporal com UML - DTE „

Uso do DTE no processo de desenvolvimento – Os diagramas de estados podem ser construídos com base nos diagramas de interação e nos diagramas de classes. – Durante a construção do diagrama de estados para uma classe, novos atributos e novas operações podem surgir. Essas novas propriedades devem ser adicionadas ao modelo de classes. 32

„

Uso do DTE no processo de desenvolvimento (continuação)

Modelagem Temporal com UML

– O comportamento de um objeto varia em função do estado no qual ele se encontra. – Pode ser necessária a atualização de uma ou mais operações de uma classe para refletir o comportamento do objetos em cada estado. – Por exemplo, o comportamento da operação sacar() da classe ContaBancária varia em função do estado no qual esta classe se encontra „

Diagrama de Atividades

saques não podem ser realizados em uma conta que esteja no estado bloqueada. bloqueada.

34 33

Modelagem Temporal com UML „

Diagrama de Atividades – “Tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto.”

35

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]

Modelagem Temporal com UML - DTE

Modelagem Temporal com UML „

Diagrama de Atividades

– Um diagrama de atividade exibe os passos de uma computação. computação. „ „

Cada estado é um passo da computação, onde o sistema está realizando algo. É orientado a fluxos de controle (ao contrário dos DTEs que são orientados a eventos).

– Fluxogramas estendidos... „

Além de possuir toda a semântica existente em um fluxograma, permite representar ações concorrentes e sua sincronização.

– Elementos podem ser divididos em dois grupos: controle seqüencial e controle paralelo. paralelo.

36

37

Modelagem Temporal com UML Estado inicial Selecionar local

Contratar arquiteto

Estado de ação

Concorrência (bifurcação)

Desenvolver plano

Orçar plano

[rejeitado] [aceito]

Fazer trabalho no local

Fazer trabalho em outros setores()

Concluir construção

Fluxo: Construção de uma Casa

Estado da atividade com submáquina Fluxo de Objetos Objeto

:CertificadoDeHabitação [concluído]

Estado

39

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Diagrama de Atividades

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

„

Diagrama de Atividades

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected] UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Modelagem Temporal com UML

Modelagem Temporal com UML „

Diagrama de Atividades: Fluxo de Controle Paralelos – Fluxos de controle paralelos: dois ou mais fluxos sendo executados simultaneamente. – Uma barra de bifurcação recebe uma transição de entrada, e cria dois ou mais fluxos de controle paralelos. „

cada fluxo é executado independentemente e em paralelo com os demais.

– Uma barra de junção recebe duas ou mais transições de entrada e une os fluxos de controle em um único fluxo. „ „

Objetivo: sincronizar fluxos paralelos. A transição de saída da barra de junção somente é disparada quando todas as transições de entrada tiverem sido disparadas.

38

Modelagem Temporal com UML „

Diagrama de Atividades: Swimlanes

40

Geração de código: exemplo (1) – Classe Linha: método interseção „ Um

parâmetro de entrada (l: Linha) e um de Duas linhas com mesma inclinação são retorno paralelas e não se cruzam

Linha slope delta Slope: inclinação da linha Delta: deslocamento em relação à origem

Cálculo do ponto de interseção

41

Modelagem Temporal com UML „

Diagrama de Atividades: Uso – O diagrama de atividades é pouco utilizado na prática para modelagem de aspectos temporais de software – É fortemente utilizado na modelagem de fluxos de trabalho de processos negócio „A

própria descrição do Processo Unificado é fortemente baseada em diagramas de atividades 43

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]

Diagrama de Atividades

Diagrama de Atividades „

Geração de código: exemplo (2)

Point Line:: Line:: intersection (l: Line) Line) { if (slope (slope == l.slope) return Point(0 Point(0, int x = (l.delta - delta) / (slope (slope - l.s l.s int y = (slope (slope * x) + delta; return Point(x,y); Point(x,y); } 42

Modelagem Temporal com UML

44

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Diagramas de Interação: -Diagrama de Seqüência -Diagrama de Colaboração

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

45

Modelagem Temporal com UML „

Diagrama de Interação – Identifica os estados de um objeto em um caso de uso específico – Aspectos temporais „ Decisões „ Ordem

dos eventos

– Dois tipos „ Diagrama

de Sequência „ Diagrama de Colaboração 47

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Modelagem Temporal com UML

Modelagem Temporal com UML „

Diagramas de Interação – Interações entre objetos „ Sequência

de trocas de mensagem entre um conjunto de objetos para realizar um caso de uso.

Ator

Evento de entrada (estímulo)

Objeto

Mensagem

Objeto

Caso de Uso

Evento de Ator saída (resposta)

Tempo

46

Modelagem Temporal com UML

48

Diagrama de Sequência – Há preocupação com ordem das ações – Na Análise, erros e situações de tratamento de exceção não são considerados – Geralmente envolve a interação do sistema com os usários – Cada mensagem é rotulada com „ „ „

nome argumentos informações de controle – Condições de guarda 49

Modelagem Temporal com UML „

Diagrama de Seqüência

51

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]

Modelagem Temporal com UML

Modelagem Temporal com UML „

Diagrama de Seqüencia – Principal objetivo: identificar quais mensagens devem ser implementadas pelas classes „ „

Classe/Objeto Emissor da mensagem é um Cliente Classe/Objeto Receptor da mensagem é um Servidor Emissor

Receptor

mensagem(parâmetros)

Mensagem deve ser implementado na Classe do objeto receptor! 50

Modelagem Temporal com UML „

Diagrama de Seqüência – Tipos de Interação Simples Síncrona Assíncrona

Somente fazem sentido se a linguagem de programação permitir estas alternativas

Retorno

52

Diagrama de Seqüência

janela de entrada de pedido

um pedido

1. preparar()

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

objeto

um item de pedido

: item de estoque

Autodelegação

1.1 *[i=0 to card(item de pedido)] preparar() 1.1.1verificar(): verificação

mensagem Condição de guarda

[verificação = “verdadeiro”] remover()

Remover item()

Criação de objeto

Item excluído [verificação = “verdadeiro”] criar()

uma entrega de item 53

Modelagem Temporal com UML

Reserve(o: Order) { OrderPosition opos; Article article; int number; for (int i=1; i < o.number(); i++) { opos = o.giveOrderPosition(i); article = opos.giveArticle(); number = opos.giveNumber(); articleStock.reserve(article, number); } }

55

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

„

Objeto anônimos (formas alternativas)

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Modelagem Temporal com UML

Modelagem Temporal com UML u1: Usuário

a {b - a < 1 seg.} {c - b < 10 seg.}

{d’ - d < 5 seg.}

: Telefone

u2: Usuário

retira fone do gancho

b

tom de discagem

c

* disca dígito numérico

d

chamada sendo roteada pela rede

d’

chamando

chamando atende chamada som da campainha pára

Som da campainha pára Telefones interligados

telefones interligados Criar(u1,u2,data,hora)

Mensagem d não é instantânea

c: conversação

...

54

Modelagem Temporal com UML „

Sistema de Ponto de Vendas Comprar Itens

Caixa

<>

Cliente

Registrar Pagto.

Administradora de Cartão de Crédito

Pagar com dinheiro Pagar com cartão

Pagar com cheque

Contas a Receber 56

Comprar Itens

PDV

Caixa entrarItem(id, quantidade)

{repetir até que não haja mais itens}

terminarVenda()

57

Modelagem Temporal com UML Pagamento com cheque

Cliente

Serviço de Autorização de Cheque

PDV Caixa

registrarPagamento(rg, cpf,númCheque, númBanco) solicitarAprovação(idPDV, rg, cpf, númCheque, númBanco, valor) resposta [aprovado] solicitarImpressãoCheque [aprovado] impressãoCheque [aprovado] emitirComprovanteVenda() 59

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

Início comum

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]

Modelagem Temporal com UML

Modelagem Temporal com UML Pagamento com Cartão

PDV Cliente

Administradora de Cartão de Crédito

Contas a Receber

registrarPagamento(númeroCC, dataValidade) solicitarAprovação(idPDV, númeroCC, dataValidade, Valor) resposta [aprovado] acrescentarAprovação(resposta) [aprovado] emitirComprovanteCartão() 58

Modelagem Temporal com UML „

Diagrama de Colaboração – Apresenta a mesma informação do diagrama de sequência (não representa o tempo como uma dimensão separada) – Utilização: visão geral da interação de objetos „ „

„

Sem detalhamento da ordem Condensa em um único diagrama toda a troca de mensagens entre um grupo de classes Normalmente é gerado automaticamente pelas ferramentas CASE a partir dos diagramas de seqüência

60

Diagrama de Colaboração – Notação 3: operação(lista de parâmetros) 1: evento

Objeto 1: nome da classe

2: operação

Objeto 2

Nome do ator: classe do ator 4: operação(lista de parâmetros)

Objeto 3: nome da classe

5: operação(lista de parâmetros)

: nome :da nome classe :da nome classe da classe

fluxo de objeto 61

Diagrama de Implantação

63

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]

Modelagem Temporal com UML

Modelagem Temporal com UML „

Integração dos modelos apresentados

62

Diagrama de Implantação

64

Mapeamento de Modelos UML para – Linguagens de programação – Bancos de Dados

65

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

?

Programa em Ada83

Sem herança Cliente Corporativo

Cliente Pessoa

Pessoa_Contato

No. cartão de crédito

Cliente 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

67

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

66

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} 68

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

69

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

Projeto Orientado a Objetos

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

„

Persistência de objetos Objetos em execução (RAM)

Objetos persistentes em disco 70

Projeto Orientado a Objetos „

Persistência de Objetos – Em SGBDOOs (exemplo)

ersistente}

71

Storable insert() remove() getObject() select() getObjectId() ...

<> Serializable ...

Trabalha_para

Bilbioteca

– uso de classes especiais (fornecidas como bibliotecas)

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 72 {persistente}

73

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

„

75

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 (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

„

Definir esquema de acesso

– Obs: Não é detalhado aqui

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 Nome: Str Endereço: { Logradouro: Str, Bairro: Str, Cidade: Str. }

Telefones: array of Str;

Funcionário Cargo: Str CPF: Str

...

...

CódPessoaLogradouro ...

Bairro

Cidade

...

...

...

...

...

Funcionário CódPes

CPF

„

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

Cargo

Funcionário

– Seleção – Projeção – Junção

CPF

Nome

Cargo

74

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,

Telefones_Pessoa CódPessoa Número

Projeto Orientado a Objetos

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]

76

UFPA-2004 -UML (Linguagem de Modelagem Unificada) - [email protected]

79

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]

77

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, , dadosCondomínio) Condomínio(id Condomínio(id, , idPessoa) Síndico(idCondomínio idPessoa) Síndico(idCondomínio,

Influências de SGBDs Símbolos Table

View Chave Primária

PK

Chave Estrangeira

FK

Chave Primária/Estrangeira

PK F

Relacionamento

0..1 0..1

Influências de SGBDs „

Persistência de Objetos – Em SGBD-Relacional (cont.) „ Para

cada classe persistente

1 1

Classe para acesso a bases de dados Relacionais

– Conectar classes que acessam as tabelas TTable

TabPessoa

...

Projeto Orientado a Objetos „

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

78

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

80

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)

81

83

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 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)

82

Related Documents

Uml Aula5
October 2019 19
Aula5
November 2019 8
Aula5
June 2020 5
Aula5
June 2020 6
Aula5
June 2020 3
Aula5 Eventos
June 2020 5

More Documents from ""

Uml Aula1
October 2019 26
Uml Aula7
October 2019 15
Uml Aula5
October 2019 19
Uml Aula2
October 2019 25
Uml Aula6
October 2019 18