Noções Básicas de Modelagem

21
Noções Básicas de Modelagem Alexandre Parra http://www.joinville.udesc.br/portal/pro fessores/parra/

description

Noções Básicas de Modelagem. Alexandre Parra http://www.joinville.udesc.br/portal/professores/parra/. O que são Modelos?. Modelos são representações simplificadas de domínios do mundo real. Por exemplo: objetos, pessoas, itens, tarefas, processos, conceitos, idéias, etc. - PowerPoint PPT Presentation

Transcript of Noções Básicas de Modelagem

Page 1: Noções Básicas de Modelagem

Noções Básicas de Modelagem

Alexandre Parra http://www.joinville.udesc.br/portal/professores/parra/

Page 2: Noções Básicas de Modelagem

O que são Modelos?

Modelos são representações simplificadas de domínios do mundo real. Por exemplo: objetos, pessoas, itens, tarefas, processos, conceitos, idéias, etc.

Usados comumente por pessoas no seu dia-a-dia, independente do uso de computadores.

Page 3: Noções Básicas de Modelagem

Exemplo de Modelagem Consideremos o Restaurante Caseiro

Hipotético (RCH). Características: Serve pratos, cujo gerente,

fica na balança e no caixa anotando os pratos solicitados pelos clientes de cada mesa e demais pedidos que os garçons trazem em um “quadro-branco” de comandas para o gerente.

Pergunta: Como modelar este restaurante ?

Resp: Depende do objetivo.

Page 4: Noções Básicas de Modelagem

Exemplo do Modelo do RCH

Modelo expressando o Restaurante Caseiro Hipotético

Restaurante Caseiro Hipotético

Mesa 4

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Mesa 5

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Mesa 6

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Mesa 2

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Mesa 3

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Mesa 1

Prato 1Prato 2...Prato nrefrigerante 2 Lcervejawisky ...

Page 5: Noções Básicas de Modelagem

Atributos em Modelos O modelo do RCH representa certos dados (atributos).

Estes atributos são relevantes para o domínio a ser representado (abstração do domínio).

Este modelo preocupa-se com a marcação dos pedidos e cálculo da conta das mesas do restaurante.

Atributos: endereço, data de inauguração, tamanho do restaurante entre outros são irrelevantes.

Page 6: Noções Básicas de Modelagem

Operações sobre Modelos

Um modelo comumente contém operações (procedimentos) associados a ele.

Estas operações são grupos de comandos que processarão os valores referentes aos atributos contidos no próprio modelo (e em alguns casos, valores adicionais).

Pergunta: Quais operações são necessárias no modelo do RCH ?

Resp: 1) Inclusão de pedidos para uma mesa; 2) a modificação do status da mesa (servida ou não); 3) encerramento dos pedidos de uma mesa etc...

Page 7: Noções Básicas de Modelagem

Características gerais dos modelos

Alguns modelos podem possuir somente dados ou operações.

Modelos que tem somente dados são pouco usados (normalmente os valores devem ser modificados) pag.

Modelos que tem somente operações podem ser consideradas bibliotecas. (exemplo: grupos de funções matemáticas, processamento de imagens, etc).

Page 8: Noções Básicas de Modelagem

Modelos dentro de modelos

Modelos podem conter sub-modelos (especialização) e além disso serem parte de (agregação) outros modelos.

Exemplo de modelos dentro de modelos: Agregação:

Um modelo de Automóvel é composto por diversos elementos que podem também ser modelos. Por exemplo: modelo motor, rodas, etc.

Especialização: O modelo do RCH poderia então conter vários

exemplares do modelo MesaDoRestaurante que representariam diferentes mesas do restaurante.

Page 9: Noções Básicas de Modelagem

Simplificação de modelos baseado no Contexto

A simplificação dos modelos é em muitos casos necessária.

Dependendo do contexto algumas informações devem ser ocultadas ou ignoradas.

Exemplo: Modelagem de informações sobre uma pessoa em três cenários distintos:

Page 10: Noções Básicas de Modelagem

Diferentes Contextos para Pessoa (1/2)

Pessoa como Empregado de Empresa: para fins de processamento de FP seria necessário:

Atributos: nome, cargo, salario, horasExtrasTrabalhadas.

Operações: calculaSalario e aumentaSalario.

Pessoa como Paciente de uma Clínica Médica:

Atributos: nome, sexo, idade, altura, peso, historico, etc.

Operações: verificaObesidade (dados: altura, sexo e peso) e AdicionaInformacaoAoHistorico.

Page 11: Noções Básicas de Modelagem

Diferentes Contextos para Pessoa (2/2)

Pessoa como Contato Comercial: Atributos: nome, telefone, cargo e empresa da

pessoa em questão. Operações: mostraTelefone e trabalhaEmEmpresa

Page 12: Noções Básicas de Modelagem

Considerações sobre diferentes contextos (1/2)

Atributos e operações que podem ser úteis para um modelo de representação podem ser irrelevantes para outros.

Exemplos: Não faria sentido representar o salário de uma

pessoa no BD de pacientes de uma clínica. Representar a operação verificaObesidade de uma

pessoa que não seja paciente de uma clínica.

Page 13: Noções Básicas de Modelagem

Considerações sobre diferentes contextos (2/2)

Apesar dos modelos representarem pessoas de forma genérica, é difícil, senão impossível de elaborar um “super-modelo”.

Um super-modelo serve para representar todos os atributos e operações relativos a uma pessoa (independente de contexto).

Exemplo: Formas Geométricas (quadrado, retângulo e triângulo).

Page 14: Noções Básicas de Modelagem

Reutilização de modelos

Modelos podem ser reutilizados para representar diferentes modelos.

Exemplo: o mesmo modelo Paciente do modelo Hospital poderia ser utilizado para representar pacientes de uma Clínica.

Portanto, não é preciso a criação de um modelo (do nada) para cada domínio do mundo real a ser modelado.

Page 15: Noções Básicas de Modelagem

Conclusão

A criação e uso de modelos é uma tarefa natural.

A elaboração de modelos para representar entidades do mundo real pode ser considerada uma arte.

A extensão desta abordagem (modelos) à programação deu origem ao paradigma Programação Orientada à Objetos (POO).

Page 16: Noções Básicas de Modelagem

Estudo de caso 1

Modelar uma lâmpada incandescente

Pergunta: Quais os atributos possíveis presentes na modelagem de uma lâmpada?

Pergunta: Quais as operações possíveis presentes na modelagem de uma lâmpada?

Como representar o modelo !?

Page 17: Noções Básicas de Modelagem

Diagrama do modelo Lâmpada

Lampada- estado

- acende()- apaga()- mostraEstado()

Diagrama expressando o modelo da Lâmpada

nome do modelo

atributos do modelo

operações do modelo

Page 18: Noções Básicas de Modelagem

Pseudo-Código do modelo Lâmpada1 modelo Lampada // representa uma lâmpada em uso2 inicio do modelo34 dado estado; // indica se esta ligada ou não56 operacao acende() // acende a lâmpada7 inicio8 estado = aceso; // acende a lâmpada9 fim1011 operacao apaga() // apaga a lâmpada12 inicio13 estado = apagado; // apaga a lâmpada14 fim1516 operacao mostraEsdado() // mostra o estado da lâmpada17 inicio18 se (estado == aceso)19 imprime “A lâmpada está acesa.”;20 senão21 imprime “A lâmpada está apagada.”;22 fim2324 fim do modelo

Listagem mostrando como o modelo Lampada pode ser descrito em pseudo-código

Lampada- estado

- acende()- apaga()- mostraEstado()

Page 19: Noções Básicas de Modelagem

Estudo de caso 2 Modelar uma conta bancária simplificada. Características do modelo:

Atributos: nome do correntista; saldo da conta; Se a conta é especial ou não (pode ficar com saldo negativo).

Operações: Abrir conta (indicando nome, valor do deposito e conta é

especial); Abrir conta simples (indicando nome); Depositar (indicando valor do deposito); Retirar (indicando o valor da retirada); mostrarSaldo (imprimir nome e saldo da conta).

Não presentes (senhas, taxas, impostos, etc) em nome da simplicidade.

Page 20: Noções Básicas de Modelagem

Diagrama do modelo ContaBancaria

ContaBancaria

- nomeDoCorrentista- saldo- contaEspecial

- abreConta(nome,deposito,ehEspecial)- abreContaSimples(nome)- deposita(valor)- retira(valor)- mostraDados()

Diagrama expressando o modelo da ContaBancaria

Page 21: Noções Básicas de Modelagem

Exercícios

Fazer os exercícios propostos no arquivo “exercicios_modelagem.doc” que se encontra em http://www.joinville.udesc.br/portal/professores/parra/ no link “Materiais” da disciplina LPG-II.

Para realizá-los é importante ler o capítulo 1 do material disponível na URL acima. O material encontra-se no arquivo “introducao_POO_usando_Java.pdf”.