projeto de arquitetura

52
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Projeto de Arquitetura

Upload: gabriel-martins-ribeiro

Post on 23-Sep-2015

218 views

Category:

Documents


0 download

DESCRIPTION

Apresentação do Capitulo 11 do livro engenharia de Software de Ian Sommerville

TRANSCRIPT

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 1

    Projeto de Arquitetura

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 2

    Objetivos l Apresentar projeto de arquitetura e discutir sua

    importncial Explicar as decises de projeto de arquitetura que

    tm de ser feitasl Apresentar trs estilos complementares de

    arquitetura que abrangem a organizao, decomposio e controle

    l Discutir como as arquiteturas de referncia so usadas para comunicar e comparar arquiteturas

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 3

    Tpicos abordadosl Decises de projeto de arquitetural Organizao de sistemal Estilos de decomposio modularl Modelos de controlel Arquiteturas de referncia

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 4

    Arquitetura de softwarel O processo de projeto para identificar os

    subsistemas que constituem um sistema e o framework para controle e comunicao de subsistema denominado projeto de arquitetura.

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

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 5

    Projeto de arquitetural o primeiro estgio do processo de projeto

    de sistema.l Representa a ligao entre os processos de

    especificao e de projeto.l freqentemente conduzido em paralelo

    com algumas atividades de especificao.l Envolve a identificao dos componentes

    principais do sistema e suas comunicaes.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 6

    Vantagens da arquitetura explcital Comunicao de stakeholder

    A arquitetura pode ser usada como um foco de discusso pelos stakeholders do sistema.

    l Anlise de sistema Se h possibilidade de o sistema atender a

    seus requisitos no funcionais.l Reuso em larga escala

    A arquitetura pode ser reusvel em uma variedade de sistemas.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 7

    Caractersticas de arquitetura e de sistema

    l Desempenho Localizar operaes crticas e minimizar comunicaes. Usar

    componentes de alta ao invs de baixa granularidade.l Proteo

    Usar uma arquitetura em camadas com itens crticos nas camadas mais internas.

    l Segurana Localizar caractersticas crticas de segurana em um pequeno

    nmero de subsistemas.l Disponibilidade

    Incluir componentes redundantes e mecanismos para tolerncia falhas.

    l Facilidade de manuteno Usar componentes substituveis e de baixa granulariade.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 8

    Conflitos de arquitetural O uso de componentes de alta

    granularidade aprimora o desempenho mas diminui a facilidade de manuteno.

    l A introduo de dados redundantes aprimora a disponibilidade, mas torna a proteo mais difcil.

    l Ao localizar caractersticas relacionadas segurana, geralmente significa maior comunicao e, por essa razo, o desempenho degradado.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 9

    Estruturao de sistemal Est relacionado decomposio do sistema em

    subsistemas que interagem.l O projeto de arquitetura normalmente expresso

    como um diagrama de blocos que apresentam uma viso geral da estrutura do sistema.

    l Modelos mais especficos que mostram como os subsistemas compartilham dados, como so distribudos e como interfaceiam uns com os outros, tambm podem ser desenvolvidos.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 10

    Sistema de controle robotizado de empacotamento

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 11

    Diagramas caixa e linhal Muito abstrato no mostram a natureza

    dos relacionamento de componentes, nem as propriedades externamente visveis dos subsistemas.

    l Contudo, so teis para comunicao com os stakeholders e para planejamento de projeto.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 12

    Decises de projeto de arquitetural Projeto de arquitetura um processo criativo

    cujas atividades diferem radicalmente dependendo do tipo de sistema que est sendo desenvolvido.

    l Contudo, uma srie de decises comuns afetam todos os processos de projeto.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 13

    Decises de projeto de arquitetural Existe uma arquitetura genrica de aplicao que

    possa ser usada?l Como o sistema ser distribudo?l Quais estilos de arquitetura so apropriados?l Qual ser a abordagem fundamental usada para

    estruturar o sistema?l Como o sistema ser decomposto em mdulos? l Qual estratgia deve ser usada?l Como o projeto de arquitetura ser avaliado?l Como a arquitetura do sistema deve ser

    documentada?

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 14

    Reuso de arquitetural Sistemas do mesmo domnio

    freqentemente tm arquiteturas similares que refletem os conceitos de domnio.

    l As linhas do produto de aplicao so construdas em torno de um ncleo de arquitetura com variantes que satisfazem requisitos especficos de clientes.

    l As arquiteturas de aplicao so abordadas no Captulo 13, e linhas de produto no Captulo 18.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 15

    Estilos de arquitetural O modelo de arquitetura de um sistema

    pode estar de acordo com um modelo ou com um estilo genrico de arquitetura.

    l A conscincia desses estilos pode simplificar o problema de definio de arquiteturas de sistema.

    l Contudo, a maioria dos sistemas de grande porte so heterogneos e no seguem um nico estilo de arquitetura.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 16

    Modelos de arquitetural So usados para documentar um projeto de arquitetura.l odelos estticos de estrutura que mostram os principais

    componentes do sistema.l Um modelo dinmico de processo que mostra a estrutura de

    processo do sistema.l Um modelo de interface que define as interfaces de

    subsistemas.l Modelos de relacionamentos, tal como um modelo de fluxo de

    dados, que mostra os relacionamentos dos subsistemas.l Um modelo de distribuio que mostra como subsistemas so

    distribudos pelos computadores.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 17

    Organizao de sistemal Reflete a estratgia bsica que usada para

    estruturar um sistema.l Trs estilos de organizaes so

    amplamente usados: O estilo de repositrio de dados

    compartilhados; Estilo de servios e servidores compartilhados; Estilo de mquina abstrata ou em camadas.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 18

    Modelo de repositriol Os subsistemas devem trocar dados. Isso pode ser

    feito de duas maneiras: Os dados compartilhados so mantidos 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 passa dados explicitamente para outros subsistemas.

    l Quando grandes quantidades de dados so compartilhadas, o modelo de repositrio de compartilhamento o mais usado.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 19

    Arquitetura de conjunto de ferramentas CASE

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 20

    Caractersticas de modelo de repositrio

    l Vantagens uma maneira eficiente de compartilhar grandes quantidades

    de dados; Os subsistemas no necessitam saber como os dados so

    produzidos pelo gerenciamento centralizado, por exemplo, backup, proteo, etc.

    Um modelo de compartilhamento publicado como o esquema de repositrio.

    l Desvantagens Os subsistemas devem estar de acordo com um modelo de

    dados do repositrio. , inevitavelmente, um compromisso; A evoluo de dados difcil e dispendiosa; No h escopo para polticas especficas de gerenciamento; Dificuldade para distribuirde forma eficiente.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 21

    Modelo cliente-servidorl um modelo distribudo de sistema que mostra

    como dado e processamento so distribudos por uma variedade de componentes.

    l Estabelece servidores independentes que fornecem servios especficos, tais como impresso, gerenciamento de dados, etc.

    l Estabelece clientes que acessam esses servios.l uma rede que permite aos clientes acessar os

    servidores.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 22

    Biblioteca de filmes e fotografias

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 23

    Caractersticas de cliente-servidorl Vantagens

    A distribuio de dados direta; Faz uso efetivo dos sistemas em rede. Pode solicitar

    hardware mais barato; fcil adicionar novos servidores ou atualizar servidores

    existentes.l Desvantagens

    Nenhum modelo de dados compartilhado e, dessa forma, os subsistemas usam diferentes organizaes de dados; por isso, a troca de dados pode ser ineficiente.

    Gerenciamento redundante em cada servidor; Nenhum registro central de nomes e servios pode ser

    difcil descobrir quais servidores e servios esto disponveis.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 24

    Modelo de mquina abstrata (em camadas)

    l Usado para modelar o interfaceamento dos subsistemas.

    l Organiza o sistema em um conjunto de camadas (ou mquinas abstratas), cada uma dss quais fornecenso um conjunto de servios.

    l Apia o desenvolvimento incremental dos subsistemas em camadas diferentes. Quando uma camada de interface muda, somente a camada adjacente afetada.

    l Contudo, freqentemente artificial estruturar sistemas dessa maneira.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 25

    Sistema de gerenciamento de verses

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 26

    Estilos de decomposio modularl Estilos de decomposio de subsistemas em

    mdulos.l No h distino rgida entre organizao de

    sistema e decomposio modular.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 27

    Subsistemas e mdulosl Um subsistema um sistema em si cuja

    operao no depende dos servios fornecidos por outros subsistemas.

    l Um mdulo um componente de sistema que fornece servios para outros mdulos; no normalmente considerado um sistema separado.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 28

    Decomposio modularl um outro nvel de estrutura onde os subsistemas

    so decompostos em mdulos.l Dois modelos de decomposio modular podem ser

    usados Um modelo de objeto onde o sistema decomposto em

    objetos que se comunicam; Um modelo de pipeline ou fluxo de dados onde o sistema

    decomposto em mdulos funcionais que transformam entradas em sadas.

    l Se possvel, decises sobre concorrncia devem ser postergadas at que os mdulos estejam implementados.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 29

    Modelos de objetosl Estruturar o sistema em um conjunto de objetos

    fracamente acoplados com interfaces bem definidas.l A decomposio orientada a objetos est

    relacionada identificao de classes de objetos, aos seus atributos e s suas operaes.

    l Quando implementados, os objetos so criados a partir dessas classes e um tipo de controle usado para coordenar as operaes de objetos.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 30

    Sistema de processamento de faturas

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 31

    Vantagens do modelo de objetosl Objetos no so firmemente acoplados e, desse

    modo, sua implementao pode ser modificada sem afetar outros objetos.

    l Os objetos podem refletir entidades do mundo real.l Linguagens de implementao orientada a objeto

    so amplamente usadas.l Contudo, mudanas de interface de objeto podem

    causar problemas e entidades complexas podem ser difceis de representar como objetos.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 32

    Pipelining orientado a funesl Transformaes funcionais processam suas

    entradas para produzir sadas.l Pode ser chamado de estilo de duto (pipe) e filtro

    (como no shell UNIX)l Variaes dessa abordagem so muito comuns.

    Quando as transformaes so seqenciais, isso um modelo seqencil em lotes, que extensivamente usado em sistemas de processamento de dados.

    l No realmente adequado para sistemas interativos.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 33

    Sistema de processamento de faturas

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 34

    Vantagens do modelo de pipelinel Apia reuso de transformaes.l Organizao intuitiva para comunicao com

    stakeholders.l fcil adicionar novas transformaes.l relativamente simples implementar como sistema

    concorrente ou seqencial.l Contudo, requer um formato comum para a

    transferncia de dados ao longo do pipeline e o apoio a interaes baseadas em eventos difcil.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 35

    Modelos de controlel Diferente do modelo de decomposio de sistema,

    os modelos de controle esto relacionados ao fluxo de controle entre subsistemas

    l Controle centralizado Um subsistema tem responsabilidade global pelo

    controle, e inicia e pra outros sistemas.l Controle baseado em eventos

    Cada subsistema pode responder a eventos gerados externamente a partir de outros subsistemas ou do ambiente do sistema.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 36

    Controle centralizadol Um subsistema de controle responsvel pelo

    gerenciamento da execuo de outros subsistemas.l Modelo chamada-retorno

    o modelo de subrotina top-down onde o controle inicia no topo de uma hierarquia de subrotina, e se move para baixo da hierarquia. aplicvel a sistemas seqenciais.

    l Modelo de gerenciador aplicvel a sistemas concorrentes. Um componente de

    sistema controla a parada, o incio e a coordenao de outros processos de sistema. Pode ser implementado em sistemas seqenciais como uma declarao Case.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 37

    Modelo chamada-retorno

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 38

    Controle de sistema tempo real

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 39

    Sistemas orientados a eventosl Dirigidos por eventos gerados externamente onde o

    timing dos eventos est fora do controle dos subsistemas que processam o evento.

    l Dois modelos dirigidos a eventos principais Modelos de broadcast. Um evento transmitido a todos

    os subsistemas. Qualquer subsistema programado para manipular esse evento pode responder a ele.

    Modelos orientados a interrupes. Usado em sistemas de tempo real onde as interrupes so detectadas por um tratador de interrupes e passadas por algum outro componente para processamento.

    l Outros modelos dirigidos a eventos incluem sistemas de planilhas e de produo.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 40

    Modelo de broadcastl efetivo na integrao de subsistemas em

    computadores diferentes em uma rede.l Subsistemas registram um interesse em eventos

    especficos. Quando estes ocorrem, o controle transferido para o subsistema que pode tratar o evento.

    l A poltica de controle no embutida no tratador de eventos e mensagens. Os subsistemas decidem sobre os eventos de seu interesse.

    l Contudo, os subsistemas no sabem se um evento ser tratado e nem quando ser.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 41

    Broadcasting seletivo

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 42

    Sistemas dirigidos a interrupesl usado em sistemas de tempo real onde a

    resposta rpida para um evento essencial.l Existem tipos de interrupes conhecidos

    com um tratador definido para cada tipo.l Cada tipo associado uma localizao da

    memria, e uma chave de hardware causa a transferncia de controle para seu tratador.

    l Permite respostas rpidas, mas complexo para programar e difcil de validar.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 43

    Controle dirigido a interrupes

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 44

    Arquiteturas de referncial Os modelos de arquitetura podem ser especficos

    para algum domnio de aplicao.l Existe dois tipos de modelos de domnio especfico

    Modelos genricos que so abstraes de uma srie de sistemas reais que englobam as caractersiticas principais desses sistemas. Abordados no Captulo 13.

    Modelos de referncia so mais abstratos, um modelo idealizado. Fornece um meio de informao sobre essa classe de sistema e sobre comparao de arquiteturas diferentes.

    l Os modelos genricos so geralmente modelos bottom-up. Os modelos de referncia so modelos top-down.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 45

    Arquiteturas de referncial Os modelos de referncia so derivados de

    um estudo de domnio de aplicao ao invs de sistemas existentes.

    l Pode ser usado como base para a implementao de sistemas, ou comparar sistemas diferentes. Atua como um padro contra o qual os sistemas podem ser avaliados.

    l O modelo OSI um modelo de camadas para sistemas de comunicao.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 46

    Modelo de referncia OSI

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 47

    Modelo CASE de referncia l Servios de repositrio de dados

    Armazenamento e gerenciamento de itens de dados.l Servios de integrao de dados

    Gerenciamento de grupos de entidades.l Servios de gerenciamento de tarefas

    Definio e aprovao de modelos de processo.l Servios de mensagens

    Comunicao ferramenta-ferramenta e ferramenta-ambiente.

    l Servios de interface de usurio Desenvolvimento de interface de usurio.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 48

    O modelo de referncia ECMA

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 49

    Pontos-chavel A arquitetura de software o framework

    fundamental para a estruturao de sistema.l Decises de projeto de arquitetura incluem decises

    sobre o tipo de aplicao, a distribuio e os estilos de arquitetura a serem usados.

    l Modelos diferentes de arquitetura, tais como um modelo de estrutura, um modelo de controle e um modelo de decomposio podem ser desenvolvidos.

    l Modelos organizacionais de um sistema incluem modelos de repositrio, modelos cliente-servidor e modelos de mquina abstrata.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 50

    Pontos-chavel Modelos de decomposio modular incluem

    modelos de objetos e modelos de pipelining.l Modelos de controle incluem modelos de

    controle centralizado e dirigidos a eventos.l Arquiteturas de referncia podem ser usadas

    para comunicar arquiteturas de domnio especfico, avaliar e comparar projetos de arquitetura.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 51

    Modelos de arquitetural Modelos diferentes de arquitetura podem ser

    produzidos durante o processo de projeto.l Cada modelo apresenta perspectivas

    diferentes sobre a arquitetura.

  • 2007 by Pearson Education

    Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 52

    Atributos de arquitetural Desempenho

    Localizar operaes crticas e minimizar comunicaes.l Proteo

    Usar uma arquitetura em camadas com itens crticos nas camadas mais internas.

    l Segurana Isolar componentes crticos de segurana

    l Disponibilidade Incluir componentes redundantes na arquitetura.

    l Facilidade de manuteno Usar componentes substituveis e de baixa granulariade.