• Nenhum resultado encontrado

4pp AS Topico3 Padroes Arquitetura Projeto

N/A
N/A
Protected

Academic year: 2021

Share "4pp AS Topico3 Padroes Arquitetura Projeto"

Copied!
11
0
0

Texto

(1)

1

2011 Prof. Marco Fagundes - [email protected]

Arquitetura de Software

Padrões no Desenvolvimento de Software

-Tópicos

w Objetivos

w Padrões no Desenvolvimento de Software w Padrões de Arquitetura e Projeto

w Frameworks

w Combinando Padrões no Projeto da Arquitetura w Leitura Recomendada

w Exercícios

3

2011 Prof. Marco Fagundes - [email protected]

n Apresentar os níveis de abstração de

um projeto

n Definir padrões de projeto e arquitetura

n Integrar padrões de projeto e

arquitetura no desenvolvimento de software

Unidade II - Objetivos

Requisitos Arquiteturade Software Implementação RMI Java CORBA Delphi

A.S. no Processo de Desenvolvimento

w Reduz o gap semântico entre os requisitos e o código w Fornece uma base para as outras fases de

desenvolvimento do software Requisitos Implementação RMI Java Métodos OO Requisitos Arquiteturade Software Implementação RMI Java Requisitos Arquitetura Código

(2)

5

2011 Prof. Marco Fagundes - [email protected]

Padrões no Desenvolvimento de Software

w Padrões são soluções documentadas para problemas recorrentes dentro de um determinado contexto

w Problemas podem ocorrer em diversos níveis de abstração

w A classificação do padrão depende do nível de sua aplicação: Arquitetura, Projeto e Código Requisitos Arquitetura Código Projeto 6

2011 Prof. Marco Fagundes - [email protected]

Padrões no Desenvolvimento de Software

w Padrões Arquiteturais: Fornecem um esquema de estruturação para sistemas especificando: um conjunto de subsistemas, suas propriedades, e regras de relacionamentos

w Padrões de Projeto: Fornecem um esquema para refinar os subsistemas ou componentes de um sistema, ou os relacionamentos entre eles

w Idiomas: Descrevem como implementar aspectos de componentes ou os relacionamentos entre eles usando as características de uma determinada linguagem de programação

7

2011 Prof. Marco Fagundes - [email protected]

Padrões no Desenvolvimento de Software

8

2011 Prof. Marco Fagundes - [email protected]

Documentação de um Padrão

w Padrões são diferentes que estilos arquiteturais, pois são mais ricos em documentação

(3)

9

2011 Prof. Marco Fagundes - [email protected]

Documentação de um Padrão

w Um padrão é documentado pelos seguintes elementos:

uNome uIntenção uMotivação uAplicabilidade uEstrutura uParticipantes uColaborações uConsequências uImplementação uExemplo de código uUsos conhecidos uPadrões relacionados

Exemplo de um Padrão

w Contexto: Acesso do cliente às funcionalidades de um sistema

w Problema: Cliente precisa conhecer muitos detalhes dos subsistemas para utilizar o sistema

w Solução: Oferecer uma interface única para o conjunto subsistemas

Fachada

11

2011 Prof. Marco Fagundes - [email protected]

Motivação para aprender e utilizar Padrões

w Reutilização de conhecimento

w Os padrões permitem utilizar na prática os conceitos da orientação a objetos para construir código de alta coesão e baixo acoplamento

w Vocabulário comum, facilita a comunicação

Atividade 3 (Tempo: 30 min)

w 1. O que você entende por padrões no desenvolvimento de software?

w 2. Qual a diferença entre padrões de arquitetura e projeto?

w 3. Apresente uma breve descrição dos padrões que você conhece.

(4)

13

2011 Prof. Marco Fagundes - [email protected]

Padrões de Arquitetura e Projeto

-14

2011 Prof. Marco Fagundes - [email protected]

Padrões de Arquitetura

w

wSão diferentes que estilos arquiteturais, pois são maisSão diferentes que estilos arquiteturais, pois são mais ricos em documenta

ricos em documentaççãoão

Categoria do Problema Padrões Arquiteturais

Estruturação de Tarefas LayersPipes-and-Filters Blackboard Sistemas Distribuídos BrokerPipes-and-Filters

Microkernel

Sistemas Interativos Model-View-Controller (MVC)

Presentation-Abstraction-Control (PAC) Sistemas Adaptáveis Microkernel

Reflection

15

2011 Prof. Marco Fagundes - [email protected]

Padrões de Projeto

w A obraDesign Patterns de Erich Gamma, John Vlissides,

Ralph Jonhson e Richard Helm, conhecidos como "The

Gang of Four", ou GoF, descreve 23 padrões de projeto

w "Os padrões de projeto são descrições de objetos que se comunicam e classes que são adaptadas para resolver um problema genérico de design em um contexto específico“ (GoF)

16

2011 Prof. Marco Fagundes - [email protected]

(5)

17

2011 Prof. Marco Fagundes - [email protected]

Relacionamento entre Padrões

MVC

1. Separa a interação homem máquina do núcleo de funcionalidade.

2. Implementa o mecanismo de propagação de mudança. 3. Projeta e implementa as views. 4. Projeta e implementa os controllers. 5. Projeta e implementa o

relacionamento view-controller. 6. ...

Publisher - Subscriber 1. Identificar o assunto e seus interessados.

2. ...

Command Processor

1. Define a interface do comando abstrato.

2. ...

Factory Method 1. ...

Relacionamento entre Padrões

w Padrões de Arquitetura e de Projeto são complementares

19

2011 Prof. Marco Fagundes - [email protected]

Passos Envolvidos na Selecionar de Padrões

1. Considerar como os padrões podem solucionar os problemas de projeto

2. Analisar o problema e compare com a solução fornecida pelos padrões

3. Analisar a relação entre os padrões envolvidos na solução

4. Verificar as causas que podem prejudicar a qualidade do produto

(6)

-21

2011 Prof. Marco Fagundes - [email protected]

Padrão MVC (

Model-View-Controller)

w O componente Model encapsula a

lógica de negócios

w O componente View obtém os

dados do Model ou uma saída do controller e exibe para o usuário w O Controller intermedia o fluxo da

aplicação recebendo uma entrada e a transforma em requisições para o

Model ou View

Figura adaptada de : http://ash-mvc.org/media/Image/ash-mvc-architecture.gif

22

2011 Prof. Marco Fagundes - [email protected]

Combinando Tecnologias

Tomcat 4.1.12 Tomcat 5.5.15 Model Controller View

w Em uma aplicação web bem estruturada, páginas JSP

são frequentemente usadas em conjunto com servlets e

objetos do negócio no padrão Model-View-Controller

23

2011 Prof. Marco Fagundes - [email protected]

Interface com o usuário (GUI) Negócio Acesso a Dados Código para a apresentação da aplicação Código inerente à aplicação sendo desenvolvida

Código para acesso e manipulaçção de dados

Padrão

Client-Server n-Tier (Níveis)

w Objetivo: estruturar o código em níveis (Tier), de forma a obter melhor reuso, manutenibilidade e extensibilidade

24

2011 Prof. Marco Fagundes - [email protected]

Padrão

Client-Server n-Tier (Níveis)

Interface com o usuário (GUI)

Negócio

(7)

25

2011 Prof. Marco Fagundes - [email protected]

Padrão

Layers (Camadas)

w Modularidade e seus benefícios:

n separação de interesses (separation of concerns)

n reusabilidade

n extensibilidade

w Mudanças em uma camada não afetam as outras w Uma camada comunica-se somente com camadas

adjacentes

Padrão

Layers (Camadas)

w Layer não é Tier

Cliente

27

2011 Prof. Marco Fagundes - [email protected]

Frameworks

-w Frame-work implementa soluções genéricas (estrutura e

comportamento) para um

determinado conjunto de problemas w Aumenta a produtividade através de componentes reutilizavéis e flexíveis w Oferece uma base para o início da

construção do produto (ponto de partida)

w Customização para uma aplicação particular

(8)

29

2011 Prof. Marco Fagundes - [email protected]

Framework

w Um framework captura a funcionalidade comum entre várias aplicações

30

2011 Prof. Marco Fagundes - [email protected]

Framework X Design Patterns

w Aparentemente, os dois consistem de classes, interfaces e colaborações prontos

w Frameworks não são Padrões

n Padrões são mais abstratos

n Padrões podem documentarframeworks

n Diferença de natureza – Padrões (documento) x

Framework (código)

n Fornecimento e realização de soluções

31

2011 Prof. Marco Fagundes - [email protected]

Framework

w Frameworks são implementações parciais sobre as quais podem-se construir componentes para o

desenvolvimento da solução

w Existem diversos frameworks que implementam o

padrão MVC

32

2011 Prof. Marco Fagundes - [email protected]

- Combinando Padrões no Projeto da

Arquitetura

(9)

-33

2011 Prof. Marco Fagundes - [email protected]

w A arquitetura de um software é a estrutura ou

organização de elementos estruturais de um

sistema e suas colaborações através de

interfaces

Revisando o Modelo de Visão 4+1 (Abordagem2 – RUP)

Visão Lógica (RUP)

35

2011 Prof. Marco Fagundes - [email protected]

Projeto da Arquitetura - Visão Lógica - Identificação de Classes

w No Processo Unificado da Rational pode-se

ter os seguintes tipos de classes (seguindo o princípio MVC – [Model-View-Controller]):

n Entidade (<<entity>>) – modela

informação e comportamentos associados com persistência

n Fronteira (<<boundary>>) – tratam da

comunicação entre o sistema e o ambiente externo

n Controle (<<control>>) – modelam o

comportamento sequencial específico a um ou mais casos de uso

Ex: Disciplina

Ex: FormCadDisciplina

Ex: HandlerDisciplina

O Padrão MVC e

Client-Server n-Tier

Controller View

Model

Interface com o usuário (GUI)

Negócio Acesso a Dados

(10)

37

2011 Prof. Marco Fagundes - [email protected]

Arquitetura – Proposta1

GUI Negócio Acesso a Dados Fachada DAOBDR GUI (from Visão Lógic a)

Service1 Service2

38

2011 Prof. Marco Fagundes - [email protected]

Padrão

Strategy

w O padrão Strategy permite implementar operações

usando polimorfismo

w Strategy permite que os algoritmos mudem de forma transparente para seus clientes

39

2011 Prof. Marco Fagundes - [email protected]

Arquitetura – Proposta 2

GUI Negócio Acesso a Dados Interface Negócio Dados Fachada DAOBDR DAOBDOO GUI (from Visão Lógic a)

Service1

iDAO

Service2

40

2011 Prof. Marco Fagundes - [email protected]

Visão Lógica- Organização em Níveis (Tier)

Negócio GUI Acesso a Dados TelaCadDisciplinas inserirDisciplina(disciplina) FachadaSCA inserirDisciplina(disciplina) ControladorCadastro inserirDisciplina(disciplina) DisciplinaDAOBDR inserirDisciplina(disciplina) iDisciplinaDAO inserirDisciplina(disciplina) realiza DisciplinaDAOXML inserirDisciplina(disciplina) realiza DisciplinaService inserirDisciplina(disciplina) Disciplina descricao ementa

(11)

41

2011 Prof. Marco Fagundes - [email protected]

Leitura Recomendada

w Livro da GoF - Padrões de Projeto - Soluções

reutilizáveis de software orientado a objetos, Gama, E. et al. (Biblioteca)

w Artigos sobre Arquitetura e Estilos (site da disciplina) w Livro sobre Padrões de Projeto (site da disciplina) w Padrões - http://hillside.net/patterns/

Referências

Documentos relacionados

-técnicos da administração ambiental -soluções mistas SELECÇÃO DE ACÇÕES DEFINIÇÃO DO ÂMBITO PREPARAÇÃO DO EIA APRECIAÇÃO TÉCNICA DECISÃO PÓS-AVALIAÇÃO I

Monitoramento de transbordo: É onde o operador escolhe o tipo de transbordo que está sendo carregado e insere as cargas efetuadas, quando a máquina iniciar a operação surgirá

A  Carta  de  Crédito  é  uma  ordem  de  pagamento,  emitida  por  um 

Como resultado, os crimes violentos tendem a cair quando o IDS aumenta para os municípios da mesorregião Oeste do Paraná, embora esta correlação seja considerada

As primeiras uniões entre pessoas, oriundas de uma necessidade natural, são aquelas entre seres incapazes de existir um sem o outro, ou seja a união da mulher e do homem para

Projeto Delfos: estágio de treino para as Olimpíadas Ibero-Americanas de Matemática. 15 e 16 de Setembro

A combustão em um motor a ignição por centelha Injeção Direta - 7. z Tais motores são alvos de pesquisa

(Uerj 2013) Três blocos de mesmo volume, mas de materiais e de massas diferentes, são lançados obliquamente para o alto, de um mesmo ponto do solo, na mesma direção e sentido e com