capitulo_06 - projeto de arquitetura.pptx

53
slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. Capítulo 6 Projeto de arquitetura 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Upload: gregori-menegazzo

Post on 10-Oct-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

Figure Chapter 6

Captulo 6

Projeto de arquitetura1 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Os tpicos abordadosDecises de projeto de arquitetura

Vises de arquitetura

Padres de arquitetura

Arquiteturas de aplicaes

2slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquiteturas de softwareO processo de projeto para identificar os subsistemas que compem um sistema e o framework para controle e comunicao do subsistema o projeto de arquitetura.

A sada desse processo de projeto uma descrio da arquitetura do software.

3slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Projeto de ArquiteturaUma fase inicial do processo de concepo do sistema.

Representa a ligao entre a especificao e os processos de projeto.

Muitas vezes realizadas em paralelo com algumas atividades de especificao.

Trata-se de identificar os principais componentes do sistema e suas comunicaes.

4slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura de um sistema de controle robotizado de empacotamento5

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Abstrao sobre a arquiteturaArquitetura em pequena escala est preocupada com a arquitetura dos programas individuais.

Nesse nvel, estamos preocupados com a maneira como um programa individual decomposto em componentes.

Arquitetura em grande escala preocupa-se com a arquitetura de sistemas corporativos complexos que incluem outros sistemas, programas e componentes do programa.

Esses sistemas empresariais esto distribudos em diferentes computadores, que podem ser possudos e geridos por diferentes empresas.

6slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Vantagens da arquitetura explcitaComunicao de stakeholdersA arquitetura pode ser usada como um foco de discusso pelos stakeholders do sistema.

Anlise de sistemasSignifica que a anlise a respeito da possibilidade do sistema atender a sua requisitos no-funcionais possvel.

Reuso em larga escalaA arquitetura pode ser reusvel em uma variedade de sistemas.Podem ser desenvolvidas arquiteturas de linhas de produtos.

7slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Representaes de arquiteturasDiagramas de blocos informais simples mostrando as entidades e os relacionamentos so o mtodo mais usado para documentar as arquiteturas de software.

Mas esses tm sido criticados pela falta de semntica, e por no mostrarem os tipos de relacionamentos entre as entidades, nem as propriedades visveis das entidades na arquitetura.

Depende do uso dos modelos de arquitetura.

Os requisitos para a semntica do modelo dependem de como os modelos so usados.

8slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Diagramas de caixa e linhaMuito abstrato no mostram a natureza dos relacionamentos dos componente nem as propriedades externamente visveis dos subsistemas.

No entanto, til para a comunicao com os stakeholders e para o planejamento do projeto.

9slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uso de modelos de arquiteturaComo forma de facilitar a discusso sobre o projeto do sistema

Uma viso de alto nvel da arquitetura de um sistema til para a comunicao com os stakeholders do sistema e planejamento do projeto, pois essa no cheio de detalhes. Os stakeholders podem se relacionar e entender uma viso abstrata do sistema. E ento, discutir o sistema como um todo, sem a possibilidade de serem confundidos pelos detalhes.

Como uma forma de documentar uma arquitetura projetada

O objetivo aqui produzir um modelo de sistema completo que mostre os diferentes componentes em um sistema, suas interfaces e suas conexes.

10slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Decises de projeto de arquiteturaO projeto de arquitetura um processo criativo, assim, o processo difere de acordo com o tipo de sistema que est sendo desenvolvido.

No entanto, uma srie de decises comuns abrangem todos os processos de projeto e essas decises afetam as caractersticas no-funcionais do sistema.

11slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Decises de projeto de arquiteturaExiste uma arquitetura genrica de aplicao que possa ser usada?Como o sistema ser distribudo?Quais estilos de arquitetura so apropriados?Que abordagem ser usada para estruturar o sistema?Como o sistema pode ser decomposto em mdulos?Qual estratgia de controle deve ser usada?Como o projeto de arquitetura ser avaliado?Como a arquitetura deve ser documentada?

12slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Reuso de arquiteturaMuitas vezes os sistemas no mesmo domnio tm arquiteturas similares que refletem os conceitos do domnio.

Linhas de produtos de aplicaes so construdas em torno de uma arquitetura central com variantes que satisfaam os requisitos particulares do cliente.

A arquitetura de um sistema pode ser projetada em torno de um ou mais padres ou estilos de arquitetura.

Essas capturam a essncia de uma arquitetura e podem ser instanciadas de diferentes maneiras.

13slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Caractersticas de arquitetura e de sistemaDesempenhoLocalize operaes crticas e minimize as comunicaes. Use componentes de alta granularidade ao invs de baixa granularidade.ProteoNas camadas internas, use uma arquitetura em camadas com ativos crticos.SeguranaLocalize atributos de segurana crtica em um pequeno nmero de subsistemas.DisponibilidadeIncluem componentes redundantes e mecanismos de tolerncia a defeitos.ManutenibilidadeUse componentes autocontidos, de baixa granularidade.

14slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Vises de arquiteturaQue pontos de vista ou perspectivas so teis ao fazer o projeto e documentar a arquitetura de um sistema?

Quais notaes devem ser usadas para descrever os modelos de arquitetura?

Cada modelo de arquitetura mostra apenas um ponto de vista ou perspectiva do sistema.

Pode mostrar como um sistema decomposto em mdulos, como os processos interagem em tempo de execuo ou as diferentes formas em que os componentes do sistema so distribudos atravs de uma rede. Para ambos, projeto e documentao, voc geralmente precisa apresentar mltiplas vises da arquitetura do software.

15slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Modelo de viso 4 + 1 de arquitetura de softwareUma viso lgica, que mostra as principais abstraes no sistema como objetos ou classes de objetos.

Uma viso de processo, que mostra como, em tempo de execuo, o sistema composto por processos de interao.

Uma viso de desenvolvimento, que mostra como o software decomposto para o desenvolvimento.

Uma viso fsica, que mostra o hardware do sistema e como os componentes do software so distribudos entre os processadores do sistema.

Usando casos de uso relacionados ou cenrios (+1).

16slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Padres de arquiteturaPadres so um meio de representar, partilhar e reusar conhecimento.

Um padro de arquitetura uma descrio estilizada das boas prticas de projeto, que tem sido experimentadas e testadas em diferentes ambientes.

Os padres devem incluir informaes sobre quando elas so teis ou no.

Os padres podem ser representados usando descries de tabelas e grficos.

17slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.O padro do Modelo-Viso-Controlador (MVC)18

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A organizao do MVC19

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura de aplicaes web usando o padro MVC20

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura em camadasUsada para modelar a interface dos subsistemas.

Organiza o sistema em um conjunto de camadas (ou mquinas abstratas) cada uma das quais fornecem um conjunto de servios.

Apoia o desenvolvimento incremental de subsistemas em diferentes camadas. Quando uma camada na interface muda, apenas a camada adjacente afetada.

No entanto, frequentemente, artificial estruturar sistemas dessa forma.

21slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.O padro de arquitetura em camadas22

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uma arquitetura genrica em camadas23

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura do sistema LIBSYS24

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Pontos ImportantesUma arquitetura de software uma descrio de como um sistema de software organizado.

Decises de projeto de arquitetura incluem decises sobre o tipo de aplicao, a distribuio do sistema, e o estilo de arquitetura a ser usada.

As arquiteturas podem ser documentadas de vrias perspectivas ou vises diferentes tais como uma viso conceitual, uma viso lgica, uma viso de processo, uma viso de desenvolvimento e uma viso fsica.

Os padres de arquitetura so um meio de reusar o conhecimento sobre as arquiteturas genricas de sistemas. Eles descrevem a arquitetura, explicam quando podem ser usados e descrevem suas vantagens e desvantagens.

25slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura de repositrioSubsistemas devem trocar dados. O que pode ser feito de duas maneiras:

Dados compartilhados so guardados em um banco de dados central ou repositrio e podem ser acessados por todos os subsistemas;

Cada subsistema mantm seu prprio banco de dados e transmite dados explicitamente para outros subsistemas.

Quando grandes quantidades de dados devem ser compartilhadas, mais comum o uso do modelo de repositrio compartilhado pois esse um eficiente mecanismo de compartilhamento de dados.

26slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.O padro Repositrio27

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uma arquitetura de repositrio para um IDE28

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura cliente-servidorO modelo de sistema distribudo mostra como os dados e processamento so distribudos atravs de uma srie de componentes.

Pode ser implementado em um nico computador.

Um conjunto de servidores autnomos que prestam servios especficos, tais como impresso, gerenciamento de dados, etc.

Um conjunto de clientes que solicitam estes servios.

Rede que permite aos clientes acessar os servidores.

29slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.O padro cliente-servidor30

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura cliente-servidor para uma biblioteca de filmes31

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura de duto e filtroTransformaes funcionais processam suas entradas para produzir sadas.

Pode ser referido como um modelo de dutos e filtros (como no shell do UNIX).

As variantes dessa abordagem so muito comuns.

Quando as transformaes so sequenciais, esse um modelo de lote sequencial amplamente usado em sistemas de processamento de dados.

No realmente adequado para sistemas interativos.

32slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.O padro duto e filtro33

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Um exemplo da arquitetura duto e filtro34

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquiteturas de aplicaesOs sistemas de aplicaes so projetados para atender a uma necessidade organizacional.

Como as empresas tm muito em comum, seus sistemas de aplicaes tambm tendem a ter uma arquitetura comum que reflete os requisitos da aplicao.

Uma arquitetura genrica de aplicao uma arquitetura para um tipo de sistema de software que pode ser configurada e adaptada para criar um sistema que atenda aos requisitos especficos.

35slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uso de arquiteturas de aplicaesComo ponto de partida para o projeto de arquitetura.

Como um checklist de projeto.

Como uma forma de organizar o trabalho da equipe de desenvolvimento.

Como uma forma de avaliar componentes para reuso.

Como um vocabulrio para falar sobre os tipos de aplicaes.36slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Exemplos de tipos de aplicaesAplicaes de processamento de dadosAplicaes centradas em dados que processam dados em lotes sem a interveno explcita do usurio durante o processamento.Aplicaes de processamento de transaesAplicaes centradas em banco de dados que processam solicitaes dos usurios e atualizam as informaes em um banco de dados do sistema.Sistemas de processamento de eventosAplicaes em que as aes do sistema dependem da interpretao dos acontecimentos do ambiente do sistema.Sistemas de processamento da linguagem Aplicaes em que as intenes dos usurios so especificadas em uma linguagem formal, a qual processada e interpretada pelo sistema.37slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Exemplos de tipos de aplicaesO foco aqui no processamento de transaes e sistemas de processamento de linguagem.

Sistemas de processamento de transaesSistemas de comrcio eletrnico;Sistemas de reservas.

Linguagem de processamento de sistemasCompiladores;Interpretadores de comando.38slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Sistemas de processamento de transaesProcessar pedidos do usurio para informaes de um banco de dados ou pedidos para atualizar o banco de dados.

Da perspectiva do usurio uma transao :

Qualquer sequncia coerente de operaes que satisfaa uma meta;

Por exemplo - encontrar os horrios de vos de Londres a Paris.

Usurios fazem solicitaes assncronas de servio que so ento processadas por um gerenciador de transaes.39slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A estrutura de aplicaes de processamento de transaes40

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura de software de um sistema de ATM41

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura de sistemas de informaoOs sistemas de informao tm uma arquitetura genrica que pode ser organizada como uma arquitetura em camadas.

Esses so sistemas baseados em transaes pois geralmente a interao com esses sistemas envolve transaes de banco de dados.

As camadas incluem:

Interface de usurioComunicaes de usurioRecuperao e modificao de informaesBanco de dados do sistema42slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Arquitetura do sistema de informao em camadas43

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura do MHC-PMS44

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Sistemas de informao baseados na WebNormalmente os sistemas de informao e gerenciamento de recursos so sistemas baseados na web, onde as interfaces de usurio so implementadas usando um browser.

Por exemplo, os sistemas de comrcio eletrnico so sistemas de gerenciamento de recursos baseados na web, que aceitam pedidos eletrnicos de bens ou servios e, em seguida providenciam a entrega desses bens ou servios aos clientes.

Em um sistema de comrcio eletrnico, a camada especfica da aplicao inclui funes adicionais de apoio ao 'carrinho de compras, no qual os usurios podem colocar um nmero de itens em transaes separadas, e em seguida, pagar por todos juntos em uma nica transao.45slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Implementao do servidorFrequentemente esses sistemas so implementados como arquiteturas cliente-servidor multicamadas

O servidor web responsvel por todas as comunicaes do usurio, com a interface do usurio implementada usando um browser;

O servidor da aplicao responsvel pela implementao da lgica especfica de aplicao assim como o armazenamento de informaes e solicitaes de recuperao;

O servidor do banco de dados move as informaes de e para o banco de dados e lida com o gerenciamento de transaes.46slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Sistemas de processamento de linguagem Aceitar uma linguagem natural ou artificial como entrada e gerar alguma outra representao dessa linguagem.

Pode incluir um interpretador para dar seguimento nas instrues, na linguagem que est sendo processada.

Utilizado em situaes em que a maneira mais fcil para se resolver um problema descrever um algoritmo ou descrever os dados do sistema.

Ferramentas meta-case processam descries de ferramentas, regras de mtodos, etc. e geram ferramentas.47slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.A arquitetura de um sistema de processamento de linguagem48

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Componentes do compiladorUm analisador lxico, que toma os tokens de entrada de linguagem e os converte para uma forma interna.

A tabela de smbolos, que contm informao sobre os nomes de entidades (variveis, nomes de classes, nomes de objetos, etc.) usadas no texto que est sendo traduzido.

Um analisador sinttico, que verifica a sintaxe da linguagem sendo traduzida.

Uma rvore de sintaxe, uma estrutura interna que representa o programa a ser compilado.49slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Componentes do compiladorUm analisador semntico que usa informaes da rvore de sintaxe e a tabela de smbolos para verificar a correo semntica do texto da linguagem de entrada.

Um gerador de cdigo que 'anda' na rvore de sintaxe e gera cdigos de mquina abstrata.50slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uma arquitetura de compilador em duto e filtro 51

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Uma arquitetura de repositrio para um sistema de processamento de linguagem52

slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.Pontos ImportantesModelos genricos de arquiteturas de sistemas de aplicao nos ajudam a entender e comparar as aplicaes, validar projetos de sistemas de aplicao e avaliar componentes para reuso em larga escala.

Os sistemas de processamento de transaes so sistemas interativos que permitem que a informao em um banco de dados seja acessada remotamente e modificada por vrios usurios.

Os sistemas de processamento de linguagem so usados para traduzir textos de uma linguagens para outra e para realizar as instrues especificadas na linguagem de entrada.

Eles incluem um tradutor e uma mquina abstrata que executa a linguagem gerada.53slide n

2011 Pearson Prentice Hall. Todos os direitos reservados.