210 likes | 326 Views
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.
E N D
Noções Básicas de Modelagem Alexandre Parrahttp://www.joinville.udesc.br/portal/professores/parra/
O que são Modelos? • Modelossã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 Modelo expressando o Restaurante Caseiro Hipotético
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.
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, valoresadicionais). 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 informações devem ser ocultadas ou ignoradas. • Exemplo: Modelagem de informações sobre uma pessoa em três cenários distintos:
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.
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 para representar diferentesmodelos. • 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 !?
nome do modelo atributos do modelo operações do modelo Diagrama do modelo Lâmpada Diagrama expressando o modelo da Lâmpada
Pseudo-Código do modelo Lâmpada 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: • 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.
Diagrama do modelo ContaBancaria 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/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”.