Arquitetura de Software

Document Sample
Arquitetura de Software Powered By Docstoc
					Arquitetura de Software

 Profa.: Andréia Rodrigues Casare
 Disciplina: Engenharia de Software
 E-mail: casareandreia@gmail.com
 www.casareandreia.gratix.com.br
Roteiro
   Introdução
   Vantagens da arquitetura de Software
   Atividades de projeto de arquitetura
   Estilos de arquitetura




                    Criado: 04/2009
                  Atualizado: 04/2011      2
Introdução
   O projeto de arquitetura é o primeiro
    estágio no processo de projeto e representa
    uma ligação crítica entre os processos de
    engenharia de projeto e de requisitos.
   O processo de projeto de arquitetura
    envolve     o  estabelecimento     de   um
    framework básico que identifica os
    principais componentes de um sistema e as
    comunicações entre eles.
                      Criado: 04/2009
                    Atualizado: 04/2011           3
Introdução
   Sistemas grandes são sempre decompostos
    em subsistemas que fornecem algum
    conjunto de serviços relacionados.
   A arquitetura de software de um sistema é a
    estrutura ou estruturas do sistema que
    abrange os componentes de software, as
    propriedades externamente visíveis desses
    componentes e as relações entre eles.

                      Criado: 04/2009
                    Atualizado: 04/2011       4
    Decisões de projeto de arquitetura
   O projeto de arquitetura é um processo criativo em
    que se tenta estabelecer uma organização do sistema
    que satisfaça os Requisitos Funcionais e os Não
    Funcionais.
   Os arquitetos do sistema precisam responder a
    questões fundamentais:
        Existe uma arquitetura genérica que pode ser utilizada?
        Como será a distribuição do sistema entre os várias CPUs?
        Como as unidades estruturais do sistema será decomposto em
         módulos?
        Como o projeto de arquitetura será avaliado?
        Como documentar a arquitetura do sistema?
                               Criado: 04/2009
                             Atualizado: 04/2011                  5
Estilo de Arquitetura
   Escolha da estrutura mais apropriada
       (Cliente-Servidor, Camadas...)
   Estratégia de decomposição do sistema
       (Módulos, componentes...)
   Modelagem e controle
       (como controlar o sistema)


                        Criado: 04/2009
                      Atualizado: 04/2011   6
Vantagens da arquitetura
   (Bass e Clements, 2003) explicam três
    vantagens de projetar e documentar
    explicitamente uma arquitetura de software:
      Comunicação de stakeholders

      Análise de sistema

      Reuso em larga escala




                      Criado: 04/2009
                    Atualizado: 04/2011           7
Vantagens da arquitetura
   Comunicação de stakeholders. A arquitetura é
    uma apresentação em alto nível do sistema que pode
    ser usada para enfocar a discussão entre os
    diferentes stakeholders.
   Análise de sistema. Tornar a arquitetura do
    sistema explícita em um estágio inicial de
    desenvolvimento do sistema requer alguma análise.
    Decisões de projeto de arquitetura têm profundo
    efeito sobre se o sistema pode atender aos requisitos
    críticos, como desempenho, confiabilidade e
    facilidade de manutenção.
                         Criado: 04/2009
                       Atualizado: 04/2011              8
Vantagens da arquitetura
   Reuso em larga escala. Um modelo de arquitetura
    de sistema é uma descrição compacta e
    administrável de como um sistema está organizado e
    de como os componentes operam entre si. A
    arquitetura de sistemas é muitas a mesma para
    sistemas com requisitos similares e, assim, pode
    apoiar o reuso de software em larga escala.




                        Criado: 04/2009
                      Atualizado: 04/2011                9
    Alguns requisitos de qualidade afetados
          pela arquitetura do sistema
   Desempenho:
      minimizar a comunicação entre os subsistemas

   Segurança contra intrusos
       evitar acesso desautorizado a elementos críticos
    Segurança contra acidentes
      isolar componentes críticos

   Disponibilidade
      inserir redundância na arquitetura

   Manutenibilidade
      utilizar componentes com alta coesão e minimizar
                            Criado: 04/2009
       acoplamento        Atualizado: 04/2011              10
Atividades de um projeto de
         arquitetura




            Criado: 04/2009
          Atualizado: 04/2011   11
Estruturação do Sistema
   Decomposição do sistema em subsistemas e módulos
   Um subsistema:
       Implementa uma funcionalidade do sistema
       Colabora com outros subsistemas através de interfaces
       Funciona de forma independente dos outros subsistemas
       É composto por módulos
   Um módulo
       É um componente do sistema que fornece serviços para
        outros módulos
       Não é considerado como elemento independente do sistema
       Pode ser composto de outros módulos ou elementos mais
        simples
                             Criado: 04/2009
                           Atualizado: 04/2011                  12
Descrição da arquitetura
   A descrição da arquitetura deve especificar:
      Como o sistema é decomposto em partes

       menores (subsistemas e módulos)
      As responsabilidades de cada uma destas

       partes
      Como a interação entre as partes satisfaz

       aos requisitos de qualidade


                        Criado: 04/2009
                      Atualizado: 04/2011          13
Estilos de Arquitetura
   O modelo arquitetural do sistema pode seguir algum
    modelo (ou estilo) genérico
   Alguns estilos de arquitetura existentes:
      modelo em camadas

      modelo baseado em repositório

      modelo cliente-servidor

      modelo de objetos distribuídos

   mas
      sistemas grandes são geralmente heterogêneos e

       podem combinar diversos modelos (genéricos ou
       não)              Criado: 04/2009
                       Atualizado: 04/2011           14
Modelo em camadas
   Esse modelo organiza um sistema em camadas, cada
    uma fornecendo um conjunto de serviços.
   Cada camada pode ser imaginada como uma
    máquina abstrata cuja linguagem de máquina é
    definida pelos serviços oferecidos pela camada.
   Apoia o desenvolvimento incremental de sistemas. À
    medida que uma camada é desenvolvida, alguns
    serviços fornecidos por essa camada pode ser
    disponibilizados para os usuários.


                        Criado: 04/2009
                      Atualizado: 04/2011           15
Exemplos de modelos em camadas




               Criado: 04/2009
             Atualizado: 04/2011   16
Mais exemplos de camadas




            Criado: 04/2009
          Atualizado: 04/2011   17
Modelo em camada de um sistema de
     gerenciamento de versões




              Criado: 04/2009
            Atualizado: 04/2011     18
Vantagens do modelo em camadas

   Apoia o desenvolvimento incremental.
   Modificável e portável, desde que
    mantida a sua interface.




                    Criado: 04/2009
                  Atualizado: 04/2011      19
Desvantagens do modelo camadas
   Difícil estruturação entre as camadas do
    sistema.
   Desempenho por causa da necessidade de
    comunicação direta com a camada seguinte.




                     Criado: 04/2009
                   Atualizado: 04/2011          20
Modelo de Repositório
   Os subsistemas que constituem um sistema
    devem trocar informações de modo que
    possam trabalhar juntos eficientemente.
   Existem duas maneiras:
    1.   Todos os dados compartilhados são mantidos
         em um banco de dados
    2.   Cada subsistema mantém seu próprio banco de
         dados


                        Criado: 04/2009
                      Atualizado: 04/2011              21
Modelo de Repositório
   A maioria dos sistemas que usam grandes
    quantidade de dados usam o primeiro
    modelo, ou seja, modelo repositório
    compartilhado.




                     Criado: 04/2009
                   Atualizado: 04/2011        22
Modelo baseado em repositório




                Criado: 04/2009
              Atualizado: 04/2011   23
Modelo baseado em repositório




                Criado: 04/2009
              Atualizado: 04/2011   24
Modelo baseado em repositório




                Criado: 04/2009
              Atualizado: 04/2011   25
Vantagens do modelo repositório
   Maneira eficiente de compartilhas grandes
    quantidades de dados.
   Os subsistemas que produzem dados não
    precisam saber como esses dados serão
    usados por outros subsistemas.
   As atividades de backup, proteção, controle
    de acesso são centralizadas.


                      Criado: 04/2009
                    Atualizado: 04/2011      26
Modelo Cliente-servidor
   É um modelo em que o sistema é organizado
    como um conjunto de serviços e servidores e
    clientes associados que acessam e usam os
    serviços.
   Os principais componentes são:
       Servidores
       Clientes
       Uma rede

                       Criado: 04/2009
                     Atualizado: 04/2011      27
Modelo Cliente-Servidor




              Criado: 04/2009
            Atualizado: 04/2011   28
Outro exemplo: cliente-servidor




               Criado: 04/2009
             Atualizado: 04/2011   29
Outro exemplo: cliente-servidor




                Criado: 04/2009
              Atualizado: 04/2011   30
Outro exemplo: cliente-servidor




               Criado: 04/2009
             Atualizado: 04/2011   31
Arquitetura de uma aplicação Web




                Criado: 04/2009
              Atualizado: 04/2011   32
Vantagens do modelo: cliente-servidor

   Grande capacidade de fornecimento de
    serviços, arquitetura distribuída.
   Facilidade para adicionar novos serviços.




                       Criado: 04/2009
                     Atualizado: 04/2011        33
Desvantagens cliente-servidor
   Problemas com desempenho da rede




                   Criado: 04/2009
                 Atualizado: 04/2011   34
Modelo de Objetos distribuídos
   Os componentes fundamentais do sistema
    são objetos que fornecem uma interface para
    um conjunto de serviços fornecidos.
   Os objetos podem ser distribuídos entre uma
    série de computadores na rede e se
    comunicam através de um middleware.
   Middleware é um requisitor de objetos, que
    tem a função de fornecer uma interface para
    os objetos.
                      Criado: 04/2009
                    Atualizado: 04/2011      35
Modelo de objetos distribuídos




              Criado: 04/2009
            Atualizado: 04/2011   36
       Vantagens do Modelo Objeto
              distribuídos
   É uma arquitetura que permite adicionar
    novos recursos a qualquer momento.
   É flexível e escalonável.
   Os novos objetos podem ser adicionados
    sem interromper outros objetos do sistema.
   Permite objetos escritos em linguagens
    diferentes de programação se comunicarem e
    trocarem serviços, isso devido aos padrões de
    comunicação.
                      Criado: 04/2009
                    Atualizado: 04/2011        37
     Desvantagem do modelo objeto
              distribuído
   São mais complexas de se projetar do que os
    modelos cliente-servidor.
   É mais difícil pensar sobre fornecimento geral
    de serviços.
   E ainda os livros não relatam projeto com
    grande experiência e desenvolvimento com
    alta granularidade.


                       Criado: 04/2009
                     Atualizado: 04/2011         38

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:69
posted:11/16/2011
language:Portuguese
pages:38