• Nenhum resultado encontrado

Aula02-040810-EstruturacaoSistemasCamadas

N/A
N/A
Protected

Academic year: 2021

Share "Aula02-040810-EstruturacaoSistemasCamadas"

Copied!
39
0
0

Texto

(1)

Construção de Ambientes Virtuais

de Aprendizagem

(2)

Aula 02 – Estruturação de

Sistemas em Camadas

Separação de Preocupações

Sistemas com Misturas de Aspectos

Arquitetura em Camadas

Estruturação de Sistemas em Camadas

(3)

Separação de Preocupações

A base para a

estruturação de um

sistema em

(4)

Separação de Preocupações

A SEPARAÇÃO DE PREOCUPAÇÕES é

extremamente importante para o

desenvolvimento de sistemas, de forma geral

Precisamos, então, saber:

O seu conceito

O impacto que ela tem no desenvolvimento de

sistemas

A utilização do seu conceito no desenvolvimento

de sistemas

Código de NEGÓCIO

Código de GUI

(5)

Separação de Preocupações

04/08/2010 Construção de Ambientes Virtuais de

5

Consiste no processo de

quebrar a solução de um

problema em partes bem

definidas, as mais

independentes possíveis, de

modo a facilitar o

desenvolvimento da solução

Pode-se focar em cada

parte do problema

(6)

Separação de Preocupações

Para superar a

complexidade de um

sistema, deve-se

resolver uma questão –

PREOCUPAÇÃO –

importante por vez

(7)

Separação de Preocupações

Uma PREOCUPAÇÃO (concern) é uma parte do

problema que queremos tratar como uma

unidade conceitual única na solução do

software

Uma preocupação não deve ser nem mais nem

menos do que deveria ser

Cada preocupação deve ser logicamente bem

delimitada

Deve conter apenas atributos e comportamentos

(8)

Separação de Preocupações

Impactos – Fatores de Qualidade

MODULARIDADE

Preocupações podem ser tratadas nos módulos

(classes, pacotes, etc.)

Preocupações independentes permitem

desenvolvimento paralelo

(9)

Separação de Preocupações

Impactos – Fatores de Qualidade

REUSABILIDADE e EXTENSIBILIDADE

Módulos bem delimitados e com nenhuma ou

poucas dependências com outros módulos podem

ser facilmente reutilizados e estendidos

FACILIDADE DE ENTENDIMENTO

(LEGIBILIDADE)

Módulo com um propósito bem definido ajuda no

seu entendimento

FACILIDADE DE MANUTENÇÃO

Melhora a reusabilidade e extensibilidade

Facilita a detecção de módulos com bugs

(10)

Separação de Preocupações

Identificação e separação de preocupações pode ser

uma tarefa difícil dependendo da complexidade do

sistema

O conceito de preocupação é relativo a um

determinado problema

O que é uma preocupação em um sistema pode não ser

para outro

Nem sempre conseguimos separar a solução em

preocupações independentes (cross-cutting

concerns)

Novas técnicas tentam lidar com cross-cutting concerns

(11)

Separação de Preocupações

Deve-se separar as diferentes preocupações

Criar classes separadas para cada preocupação

Classes da GUI cuida do comportamento da

interface gráfica que, por sua vez, fazem

chamadas a objetos das classes de negócio

Classes de negócio cuida das regras do sistema,

das suas funcionalidades que, por sua vez, fazem

chamadas a objetos das classes de dados

Classes de dados cuidam do gerenciamento e

(12)
(13)
(14)
(15)
(16)
(17)
(18)

Sistemas com Mistura de Aspectos

Se quisermos

desenvolver aplicações

com qualidade,

precisamos aprender a

melhor estruturá-las

(19)
(20)

Arquitetura em Camadas

Os vários tipos de

código devem ser

escritos separadamente,

em classes e camadas

(21)

Arquitetura em Camadas

Interface com o usuário

Código para a APRESENTAÇÃO da aplicação

(entrada e saída de dados)

Comunicação

Código para permitir ACESSO REMOTO aos

serviços da aplicação

Negócio

Código INERENTE À APLICAÇÃO (funcionalidades,

regras do negócio

Dados

(22)

Arquitetura em Camadas

Benefícios

Modularidade (e seus benefícios)

Dividir para conquistar

Separação de preocupações (conceitos)

Reusabilidade e Extensibilidade

Mudanças em uma camada não afetam as outras,

desde que as interfaces sejam preservadas

Funcionalidade plug-and-play

Uma mesma versão de uma camada trabalhando com

diferentes versões de outra camada

Várias GUIs para a mesma aplicação

Vários mecanismos de persistência suportados pela mesma

aplicação

Várias plataformas de distribuição para acesso à mesma

(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)

Estruturação de Sistemas em Camadas

04/08/2010 Construção de Ambientes Virtuais de

35

Operações de acesso a dados são

implementadas na camada de DADOS, mas

são utilizadas também na camada de

NEGÓCIO

Operações auxiliares de acesso a dados, como

procurarIndice, só pertencem à camada de

DADOS

Operações de negócio, como creditar, não

Código de Negócio x

Código de Dados

(36)

Estruturação de Sistemas em Camadas

Fachada

Uma fachada é um padrão de projeto que

permite estruturar melhor um sistema

Consistem em uma ou mais classes que

fornecem uma interface mais amigável para o

PROGRAMADOR, que precise usar serviços

(métodos) de classes das camadas mais

baixas

Interface de mais alto nível

Encapsula interações complexas de objetos

(37)

Estruturação de Sistemas em Camadas

Fachada

Muitas vezes, se usa uma fachada entre as

classes de GUI e as classes de negócio

Funciona como uma espécie de facilitador

para se usar as classes de negócio

Uma fachada pode:

Tornar o uso de um conjunto de classes que se

relacionam mais fácil

Reduzir o acoplamento entre a camada de GUI e

de Negócio

Aumentar a flexibilidade do sistema

Mas, cuidado para que a fachada não

fique grande demais!

(38)

Estruturação de Sistemas em Camadas

(39)

Estruturação de Sistemas em Camadas

Camada de Negócio

Classes básicas (Conta, Endereco, etc.)

Coleções de negócio (CadastroContas, etc.)

Fachadas

Camada de Dados

Coleções de dados (RepositorioContasArray,

Referências

Documentos relacionados

O estudo múltiplo de casos foi aplicado para identificar as semelhanças e dissemelhanças na forma como as empresas relacionam seus modelos de negócios e suas

Correspondem aos volumes medidos (uso administrativo da companhia, fornecimento a caminhões pipa) e volumes não medidos (combate a incêndios, lavagem de vias

Apresentar às relações das ações de combate as perdas reais aplicadas a sistema de distribuição de água através de métodos de priorização de áreas para a pesquisa

A utilização de válvulas redutoras de pressão (VRPs) como ferramenta para o controle de perdas em redes de distribuição de água, vem sendo recomendada por

b) Verifique se o manuscrito cumpre as normas aos au- tores da Acta Médica Portuguesa e que contém as informa- ções necessárias em todos os manuscritos da Acta Médica Portuguesa. Se

Mais do que pensar no como, prefiro chamar a atenção para a responsabilidade que professores e professoras têm na condução de um processo que valorize a diversidade dos corpos, e

No ´ ultimo cap´ıtulo, o Cap´ıtulo 4, apresentamos duas aplica¸c˜ oes dos produtos tensoriais entre espa¸cos de Banach: a primeira aplica¸c˜ ao relaciona o produto tensorial ao

Neste sentido, esse estudo mostra que as famílias das camadas mé- dias cariocas são ao mesmo tempo “relacionais” e “individualistas”, pois na mesma medida em que as trocas