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.
Usados comumente por pessoas no seu dia-a-dia,
independente do uso de computadores.
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.
Exemplo do Modelo do RCH
Restaurante Caseiro Hipotético
Mesa 1
Mesa 2
Mesa 3
Prato 1
Prato 2
.
.
.
Prato n
Prato 1
Prato 2
.
.
.
Prato n
Prato 1
Prato 2
.
.
.
Prato n
refrigerante 2 L
cerveja
wisky ...
refrigerante 2 L
cerveja
wisky ...
refrigerante 2 L
cerveja
wisky ...
Mesa 4
Mesa 5
Mesa 6
Prato 1
Prato 2
.
.
.
Prato n
Prato 1
Prato 2
.
.
.
Prato n
Prato 1
Prato 2
.
.
.
Prato n
refrigerante 2 L
cerveja
wisky ...
refrigerante 2 L
cerveja
wisky ...
refrigerante 2 L
cerveja
wisky ...
Modelo expressando o Restaurante Caseiro Hipotético
Atributos em Modelos




O modelo
(atributos).
do
RCH
representa
certos
dados
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.
Operações sobre Modelos


Um
modelo
comumente
contém
(procedimentos) associados a ele.
operações
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...
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).
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.
Simplificação de modelos baseado no Contexto



A simplificação dos modelos é em muitos casos
necessária.
Dependendo do contexto algumas
devem ser ocultadas ou ignoradas.
informações
Exemplo: Modelagem de informações sobre uma
pessoa em três cenários distintos:
Diferentes Contextos para Pessoa

Pessoa como Empregado de Empresa: para fins
de processamento de FP seria necessário:



(1/2)
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.
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
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.
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).
Reutilização de modelos



Modelos podem ser reutilizados
representar diferentes modelos.
para
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.
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).
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 !?
Diagrama do modelo Lâmpada
nome do modelo
atributos do modelo
Lampada
- estado
operações do
modelo
- acende()
- apaga()
- mostraEstado()
Diagrama expressando o modelo da Lâmpada
Pseudo-Código do modelo Lâmpada
Lampada
- estado
- acende()
- apaga()
- mostraEstado()
1 modelo Lampada // representa uma lâmpada em uso
2 inicio do modelo
3
4
dado estado; // indica se esta ligada ou não
5
6
operacao acende() // acende a lâmpada
7
inicio
8
estado = aceso; // acende a lâmpada
9
fim
10
11
operacao apaga() // apaga a lâmpada
12
inicio
13
estado = apagado; // apaga a lâmpada
14
fim
15
16
operacao mostraEsdado() // mostra o estado da lâmpada
17
inicio
18
se (estado == aceso)
19
imprime “A lâmpada está acesa.”;
20
senão
21
imprime “A lâmpada está apagada.”;
22
fim
23
24 fim do modelo
Listagem mostrando como o modelo Lampada pode ser descrito em pseudo-código
Estudo de caso 2


Modelar uma conta bancária simplificada.
Características do modelo:

Atributos:




Operações:






nome do correntista;
saldo da conta;
Se a conta é especial ou não (pode ficar com saldo negativo).
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.
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
Exercícios


Fazer
os
exercícios
propostos
no
arquivo
“exercicios_modelagem.doc” que se encontra em
http://www.joinville.udesc.br/portal/professores/parr
a/ 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”.
Download

Modelos