Padrões de Projeto e Arquitetura em Camadas

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

MOtivação Atender clientes com eficiência e rapidez .
Terminologia Definicao Construção Exemplos
Igor Cavalcanti Ramos José Francisco Pereira {icr2,
Engenharia de Software
Redes de computadores I
ISO Processos do Ciclo de Vida do Software
UML Visões – Parte 2.
Infra-Estrutura de TI: Hardware e Software
Projeto 1.
Paradigmas de Programação
Projeto de Software Orientado a Objetos
Padrões GoF - Façade.
Tecnologia da Informação Orientação a Aspectos
Análise e Projeto de Sistemas
Sistema de Banco de Dados
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Copyright Marcos L. Chaim 2005 Princípios de Projeto de Software Orientado a Objetos Segundo Semestre 2005 Marcos L. Chaim ACH Turma 02 EACH – USP.
Projetar Serviços Vítor Braga –
RUPinho Qualidade de Software
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Diogo Peixoto Projetar Arquitetura Diogo Peixoto
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Análise e Projeto de Sistemas
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
SigA Sistema Gestor de Alunos
Introdução e Fundamentos Engenharia de Requisitos
Sistemas Especialistas
Arquitetura de Sistemas Distribuídos
Análise e Projeto de Sistemas
Projeto de Arquitetura de Software Visão Geral
O Processo de desenvolvimento de software
Arquitetura de Desenvolvimento Web MVC vs. Three Tiers
Implementação MVC Pedro Antonino.
Arquitetura: Visão Lógica
ISO Processos do Ciclo de Vida do Software
Representação Arquitetural
Padrão- MVC Model, View, Controller
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Herança e Arquitetura em camadas
Integração de Ferramentas CASE
ABC reuso Reengenharia Primeiras conclusões. ABC reuso Análise do Código Fonte Arquitetura em Camadas Fachada (SIAlocacaoPlus) Negócio (Cadastros) Persistência.
Kinamo Sistema gerenciamento de filmes Cleunio França - cbff Fernando Rodrigues - frsn João Pedro Kamei - jpmk Pedro Bello - pab2.
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Padrão de desenvolvimento
Modelo de Análise e Projeto
Infra-Estrutura para Computação Distribuída
1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Arquitetura de Software Projetos de Interface
Banco de Dados Representa o arquivo físico de dados, armazenado em dispositivos periféricos, para consulta e atualização pelo usuário. Possui uma série.
Análise e Projeto de Sistemas
2 – Revisão de Programação Orientada a Objetos
Faculdade de Tecnologia SENAI Porto Alegre Aula 1 Prof. Me. Humberto Moura
Orientação a Objetos e Java Alexandre Mota  Centro de Informática, UFPE.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Servidores.
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Lenylda Albuquerque ISO Processos de Ciclo de Vida de Software Universidade Federal de Pernambuco.
/ de Julho de UFPE - Universidade Federal de Pernambuco CIn - Centro de Informática Pós-Graduação em Ciência da Computação Tópicos Avançados.
Projeto de Arquitetura de Software
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Aplicativos para Web MVC Prof. Odair Indena Jr.
ALUNO: RONI FABIO BANASZEWSKI Model-View-Controller.
Transcrição da apresentação:

Padrões de Projeto e Arquitetura em Camadas Monitoria IP/CC (~if669)

Roteiro Padrões de Projeto Arquitetura em Camadas Considerações Finais Camada de Dados Camada de Negócio Fachada; Camada de Interface Gráfica do Usuário Considerações Finais Referências

Padrões de Projeto Padrões de projeto são estratégias adotadas para o desenvolvimento de sistemas com programação orientada à objetos. Alguns de seus benefícios são a padronização de termos e metodologias utilizados para a resolução de problemas em software. A utilização de padrões de projeto auxilia programadores “orientados à objetos” a resolver os mais diversos e complexos problemas.

Padrões de Projeto Ao utilizar O.O. na resolução de um problema, um programador utiliza ao menos um padrão de projeto – mesmo sem saber que o tenha feito. Existem vários padrões. Os principais compõem a literatura sobre o assunto e podem ser encontrados na sessão de referências. São geralmente utilizados em conjunto, unindo diferentes padrões de projeto de acordo com a necessidade do programador.

Arquitetura em Camadas A arquitetura em camadas une conceitos de alguns padrões de projetos para o desenvolvimento prático e eficiente de um sistema computacional. Através dessa arquitetura, uma aplicação é racionalmente modularizada (mais modularidade, menos acoplamento entre módulos). Alguns benefícios de sua utilização são: Reusabilidade; Extensibilidade;

Arquitetura em Camadas Na prática, consiste em dividir a aplicação em módulos que possuem interfaces bem definidas (para estabelecer comunicação entre eles). Diferentes módulos da aplicação contém código relacionado a funcionalidades específicas e se comunicam apenas com módulos adjacentes. Classes relacionadas são agrupadas em pacotes referentes a uma camada que trata de uma funcionalidade específica. No modelo mais básico, são definidas quatro camadas: de dados; de negócio; de fachada; e de interface com o usuário.

Arquitetura em Camadas Demonstraremos a utilização da arquitetura em quatro camadas: GUI – Interface Gráfica do Usuário Fachada Negócio Dados

Camada de Dados Responsável pela funcionalidade de armazenamento e acesso a dados do sistema. A camada de dados agrupa as classes que implementam estruturas de dados e pode também conter aquelas que representam as entidades. Ex.: Cliente Dados Conta RepositorioClientes RepositorioContas

Camada de Negócio Constituída por classes que definem as regras de negócio do sistema. As regras de negócio são inerentes à aplicação e independem da forma de armazenamento, comunicação, interface com usuário, etc. Ex.: BancoClientes Negócio BancoContas

Fachada A fachada provê uma interface de acesso aos módulos das camadas mais baixas, unindo as possíveis funcionalidades fornecidas por elas. Pode ser usada para diferenciar tipos de acesso ao sistema. Por exemplo, um administrador deve ter acesso ao método excluirUsuário, mas um usário comum não. Ex.: FachadaAdm Fachada FachadaUser

Camada de Interface com Usuário (GUI) A GUI agrupa as classes que definem como a aplicação é exibida ao usuário e que são a interface de interação entre ele e o sistema. O código que compõe esta camada depende da tecnologia utilizada: HTML, Swing, modo-text, etc; Ex.: FrameATM GUI – Interface Gráfica do Usuário FramePrincipal FrameCadastro

Considerações Finais A camada de dados é qualificada como uma camada burra. No código que compõe as suas classes, não é feita qualquer verificação de dados mas apenas acesso e armazenamento desses. A verificação é feita no código das classes da camada de negócio – responsável pelo gerenciamento das regras de negócio inerentes à aplicação. Obs.: eventualmente – a depender da modelagem do problema – métodos da camada de dados podem levantar exceções – geralmente, aquelas referentes a erros aos quais as estruturas de dados estão vulneráveis.

Considerações Finais Duas palavras-chave na arquitetura em camadas são modularidade e acoplamento. Modularidade diz respeito à capacidade das classes de camadas distintas independerem umas das outras. Isto é proporcionado em especial pelo uso de interfaces. Acoplamento remete ao modo como classes de diferentes camadas se comunicam (instanciam, estendem, etc.)

Considerações Finais É comum encontrar diferentes modelagens da arquitetura em camadas. Por exemplo, algumas definem classes básicas (entidades) na camada de negócios, outras na camada de dados, existem também aquelas que criam uma camada à parte apenas para gerenciamento dessas classes. Portanto, é possível modelar o mesmo problema de diferentes maneiras. Mas é necessário sempre prezar pelo mínimo acoplamento entre os módulos.

Referências Java Design Patterns Estruturação de Sistemas em Camadas http://www.javacamp.org/designPattern/ Estruturação de Sistemas em Camadas http://www.cin.ufpe.br/~if669/files/MaterialDeEnsino/Transparencias/aulaIP-27.pdf