ESPECIALIZAÇÃO EM GESTÃO DE TECNOLOGIAS DA INFORMAÇÃO Projeto Orientado a Objetos AULA 04 Projeto de Sistemas; Projeto Orientado a Objetos; Estruturação em Camadas; Projeto Orientado a Objetos em Camadas; Um Exemplo Ilustrativo. Goiânia, outubro de 2005
Projeto de Sistemas Projeto: Processo de aplicação de várias técnicas e princípios com propósito de definir um dispositivo, um procedimento ou um sistema com detalhes suficientes para permitir a sua realização física.
Projeto de Sistemas Projeto: Esforço finito, isto é, com início e fim, para produzir um produto. Este esforço consiste na aplicação e técnicas diretamente ligadas aos paradigmas tecnológicos adotado na execução do projeto.
Projeto de Sistemas Projeto de Sistemas: Etapa do ciclo de vida que propicia a aproximação de um modelo conceitual (isento do tecnologia) a um modelo passível de ser implantado em computador Modelo Conceitual Modelo Físico Projeto de Sistemas
Projeto de Sistemas Elementos Principais Projeto de Sistemas: a) Ajuste do Nível de Abstração; a) Refinamento; a) Modularidade; C(M1+M2) > C(M1) + C(M2)
Projeto Orientado a Objetos CIH Ingrediente Estoque Ingrediente Estoque Projeto Orientado a Objetos Sair() Consistir() CIH Avalia Quitanda Nota Avaliar() Sair() CIH Receita ModoFazer Ingredientes Sair() Receita ModoFazer Nota Consistir() Avaliar() Composição Quantidade CIH Ingrediente Estoque Sair() CIH Avalia Quitanda Nota Ingrediente Estoque Consistir() Composição Quantidade Avaliar() Sair() CIH Receita ModoFazer Ingredientes Sair() Receita ModoFazer Nota Consistir() Avaliar()
Sistema em Camadas 1) Camadas de Software; 2) Projeto Orientado a Objetos em Camadas; 3) Exemplo de Aplicação; 4) Projeto OO e UML.
Projeto Orientado a Objetos em Camadas CIH Ingrediente Estoque Ingrediente Estoque Projeto Orientado a Objetos em Camadas Sair() Consistir() Visual Negócio Persistência CIH Avalia Quitanda Nota Composição Quantidade CIH Ingrediente Estoque Ingrediente Estoque Ingrediente Estoque Avaliar() Sair() CIH Receita Receita ModoFazer Nota Sair() Consistir() Consistir() ModoFazer Ingredientes Sair() Consistir() Avaliar() CIH Avalia Quitanda Nota Avaliar() Sair() CIH Receita Receita ModoFazer Nota Receita ModoFazer Nota Composição Quantidade ModoFazer Ingredientes Sair() Consistir() Avaliar() Consistir() Avaliar()
Camada Visual (Camada Interação Humana) Responsável pela interação com os usuários do sistema. É normalmente uma tela, um dispositivo de impressão, sensor, etc. Ela não deve conhecer a lógica da aplicação, e sim os objetos da camada de negócio e os serviços desses objetos que resolvem o seus problemas.
Camada Visual (Camada Interação Humana) A principal responsabilidade desta camada é tratar convenientemente as particularidades do dispositivo de interação humana no qual ela se apresenta.
Camada de Negócio Contém a lógica do sistema, ou seja, consistências, regras do negócio e outros conhecimento ligados ao sistema que não sejam relativos a apresentação (CIH) e armazenamento de informações. Um determinado cenário de um Caso de Uso deve ter um serviço na camada de negócio que o trate.
Camada de Persistência Nesta camada é tratada toda lógica relativa ao armazenamento e recuperação de informação do objeto com o banco de dados. O quantitativo de implementação a ser feita nesta camada depende da tecnologia do SGBD utilizado.
Camada de Persistência Atualmente a tecnologia mais utilizada é a relacional, portanto, os objetos persistentes devem ter serviços que façam o interfaceamento entre o paradigma de objetos e a tecnologia relacional de SGBD.
Exemplo de Aplicação - O Problema Uma empresa de cartão de crédito oferece atualmente aos seus clientes a possibilidade de emissão de extrato de seus gastos. Isto se dá através de um balcão de atendimento aos clientes localizado na sede da empresa.
O Problema A arquitetura desse sistema é a seguinte: Serv. BD Estação Atendimento Estrutura de rede local 10/100 Mb
O Problema O projeto do sistema é o seguinte: DFD Cliente Extrato Fatura Listar Extrato Movimento Cliente MER Cliente 1 Pagamento N Fatura Composição 1 N Movimento
Evoluções na Aplicação 1) Postos avançados de Atendimento. 2) Terminais de auto-atendimento aos clientes. 3) Permitir emissão de extrato nas lojas. 4) Permitir emissão de extrato na Internet. E agora?
Buscando a Solução Pode-se verificar que as várias interfaces de sistemas (estação-cliente, auto-atendimento, PDV, Internet) tem o conhecimento da seqüência de passos para atingir a solução do problema (emitir o extrato).
Buscando a Solução Cada nova interface ou CIH (Componente de Interação Humana) criada deverá possuir também todo este conhecimento para a emissão do extrato.
Buscando a Solução - Camadas A divisão do sistema em camadas perfeitamente isoladas uma das outras, poderia: 1) Evitar a perda de coesão verificada (replicação de funcionalidades);
Buscando a Solução - Camadas 2) Facilitar o uso da estrutura de hardware (evitando perdas de investimento); 3) Tornar o sistema mais adequado para ser utilizado em meios de comunicação não muito velozes.
Camadas: Visual, Negócio e Persistência PC PDV Atendimento Auto-Atend EmitirExtrato() PC Internet Visual Negócio Persistência
Projeto Orientados a Objetos e UML Diagramas da UML para apoio a Projeto OO: 1) Diagrama de Componente; 2) Diagrama de Execução.
Diagrama de Execução Mostra a arquitetura física do hardware e do software no sistema e também os tipos de conexões entre os elementos da arquitetura. Mostra quais os componentes de software que são executados nos diversos servidores da estrutura.
Diagrama de Execução - Exemplo Cliente1 : <<TCP/IP>> Servidor de Aplicação : SQL <<TCP/IP>> SGBD : SQL/SERVER Cliente 2 : <<TCP/IP>>
Diagrama de Componente Descreve os componentes de software e suas dependências entre si. Um componente é o produto da implementação de um conjunto de classes. O propósito de um componente é servir como um container de classes que estarão disponíveis em um determinado nó da arquitetura física.
Diagrama de Componente - Exemplo SGBD Lógica de Negócios Serv. WEB DB.dll Regras.dll Asp.dll Aplicação Sistema.exe
Debate