SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Arquitetura de Software
     Ponte entre os requisitos do sistema e sua implementação


Requisitos
do Sistema
                                                       Arquitetura



                                                   Implementação
                      Arquiteto(s)                      do
                                                      Sistema

                                     Arquitetura de Software – Thaís Batista
Arquitetura de Software (AS)
• Abstração que ajuda a gerenciar complexidade
• Projeto Arquitetural do Software
  – Estrutura modular do software
     • Componentes
     • Relacionamento entre componentes
• Linguagem de Descrição Arquitetural (ADL)
  descreve a arquitetura do sistema


                               Arquitetura de Software – Thaís Batista
Motivação para AS
• Programming-in-the-large X Programming-in-
  the-small (Frank DeRemer and Hans Kron. 1976)
  – Programming-in-the-large: estrutura da aplicação
    descrevendo a interconexão entre os componentes
     • MILs (Module Interconnection Language): linguagens
       puramente declarativas para descrever estaticamente a
       interconexão entre os módulos
  – Programming-in-the-small:      código            interno           do
    componente ou do módulo



                                  Arquitetura de Software – Thaís Batista
Motivação para AS
• Representação de sistemas informalmente
  através de caixas e linhas
• Gerenciamento da complexidade de
  sistemas
• Dinamismo
• Redução do gap entre especificação e
  implementação

                        Arquitetura de Software – Thaís Batista
Terminologias em AS
• Estilo Arquitetural ou Padrão Arquitetural ou
  Estilo (simplesmente): define os tipos de
  elementos e como eles interagem
  – Ex.: Pipe-Filtros é um estilo que define:
     • Elementos (dois tipos): pipe e filtro.
     • Interação: um pipe pode ser conectado a um filtro mas pipes
       não podem ser conectados a pipes nem filtros podem ser
       conectados a filtros
     • Arquitetura: processamento é mapeado em filtros e os pipes
       agem como condutores de dados



                                       Arquitetura de Software – Thaís Batista
Terminologias em AS
• Arquitetura      de     Referência     ou
  Arquitetura de Software específica de
  Domínio: define tipos de elementos e
  interações permitidas em um domínio
  particular de aplicações. Ou seja, define
  como a funcionalidade de um domínio é
  mapeada em elementos arquiteturais


                         Arquitetura de Software – Thaís Batista
Terminologias em AS
• Arquitetura de uma linha de produtos:
  – É aplicada a um conjunto de produtos dentro de
    uma organização. Tais produtos compartilham
    um design comum e, as vezes, parte da
    implementação
  – Define tipos de elementos e como eles
    interagem



                             Arquitetura de Software – Thaís Batista
Terminologias em AS
• As arquiteturas não são mutuamente exclusivas
   – Exemplo: uma arquitetura de linha de produtos pode
     ser baseada em uma arquitetura de referência e esta,
     por sua vez, em um estilo arquitetural


                         Estilo Arquitetural


 Arquitetura de Referência               Arquitetura de Linha de Produtos




                                           Arquitetura de Software – Thaís Batista
ADLs
• Específicas para descrição de arquiteturas
• Expressam características estruturais e
  comportamentais dos sistemas
• Permitem reusabilidade
• Oferecem primitivas para composição do
  sistema
• Em geral incluem um formalismo

                          Arquitetura de Software – Thaís Batista
ADLs
• Características Desejáveis:
  – Suporte a dinamismo
     • Inserir/Remover Componentes e Conexões entre
       eles
     • Atualizar Componentes
  – Permitir heterogeneidade de padrões e/ou de
    linguagens



                                Arquitetura de Software – Thaís Batista
Elementos Básicos de ADLs
• Componentes

• Conectores

• Configurações




                  Arquitetura de Software – Thaís Batista
Componentes
• Blocos de alto nível
• Oferece
  – Modularidade
  – Separação dos conceitos
• Publicam a interface
• Escondem a implementação


                              Arquitetura de Software – Thaís Batista
Componentes
• Interfaces
   – Definem os pontos de acesso ao componente -
     propriedades visíveis externamente
   – Possibilitam plug-and-play
   – Servem como um contrato entre componentes
   – Interfaces bem definidas tornam fácil a identificação e o
     propósito do comportamento do componente
   – Podem ser representadas por: Portas, Pontos de
     Interação, Serviços, etc... (diferentes terminologias e,
     em alguns casos, diferentes tipos de informações)


                                    Arquitetura de Software – Thaís Batista
Componentes
• Exemplo Interface

 Interface pessoa
 {
   string nome;
   short identidade;
   long data_de_nascimento;

     void add_pessoa(in string nome, in short id, in long data)
          raises (JaCadastrado)
 }

                                      Arquitetura de Software – Thaís Batista
Componentes
• Exemplo Interface em MetaH

   with type package Nav_Types;
   process interface A is
       sensor: in port Nav_Types.Rate_Vector;
       position: out port Nav_Types.ECEF_Type;
   end A;




                        A



                                   Arquitetura de Software – Thaís Batista
Conectores
• Descrevem as interações e estabelecem
  restrições de como as mensagens fluem
  entre os componentes
  – Exemplo: um conector em um sistema cliente-
    servidor descreve o comportamento do cliente
    como uma sequência de solicitações alternadas
    com a recepção dos resultados
• Concentram       a     informação       sobre
  interconexão e a torna visível e reusável

                            Arquitetura de Software – Thaís Batista
Conectores
• ADLs modelam conectores de várias
  formas:
  – Explicitamente: têm nome e podem ser
    reusados
     • Exemplos: UniCon, ACME, C2, Wright
  – In-Line: não têm nome e não podem ser
    reusados
     • Exemplo: Rapide e MetaH


                                 Arquitetura de Software – Thaís Batista
Conectores
• Exemplo

 Conector em ACME            Conector em Rapide
Connector rpc = {           connect
Roles {caller, callee}      C.Send ||> B1.Receive
Properties { synchronous}




                               Arquitetura de Software – Thaís Batista
Configurações
• Descrevem a topologia do sistema: os
  elementos constituintes (componentes e
  conectores)    e    como      eles     estão
  interconectados para formar a arquitetura
               A


       B           C



      D    E       F
                           Arquitetura de Software – Thaís Batista
Configurações
               architecture StackVisualizationArchitecture is
               components
                   top_most StackADT;
                    internal StackVisualization1; StackVisualization2;
                    bottom_most GraphicsServer;
               connectors
                   connector TopConnector is
                             message_filter no_filtering
                   end TopConnector;
                   connector BottomConnector is
                             message_filter no_filtering
                   end BottomConnector;
               architectural_topology
                  connector TopConnector connections
Configuração             top_ports StackADT;
em C2                    bottom_ports StackVisualization1; StackVisualization2;
                   connector BottomConnector connections
                        top_ports StackVisualization1; StackVisualization2;
                        bottom_ports GraphicsServer;
               end StackVisualizationArchitecture;

                                                Arquitetura de Software – Thaís Batista
Exemplo em Wright
• Descrição simplificada de um sistema cliente-
  servidor em Wright
                             A configuração é uma instância do estilo arquitetural
   Style Cliente-Servidor
   Component Cliente           Configuration Cliente-Servidor
   Port p                      Style Cliente-Servidor
   Computation [descrição]     Instances C:Cliente, CS:Cli-Serv, S:Servidor
                               Attachments
   Component Servidor
   Port p
                                 C.p as CS.c
   Computation [descrição]       S.p as CS.s
                               End Configuration
   Connector Cli-Serv
   Role c
   Role s
   Glue [descrição]
   EndStyle
                                          Arquitetura de Software – Thaís Batista
Exemplos de ADLs

 ADL     Organização        Referência Objetivos de Design
         Carnegie Mellon   Carnegie Mellon    Oferece uma linguagem de intercâmbio
ACME       University      University, 1997
                                                para facilitar compartilhamento de
                                                    componentes arquiteturais

           Honeywell                            Especifica aspectos de tempo real e
MetaH      Technology
                             Vestal, 1998                  concorrência

            Stanford        Luckham et al.     Oferece uma ADL executável baseada
Rapide     University            1995
                                              em um modelo de execução orientado a
                                                            eventos

         Carnegie Mellon   Shaw and Garlan,   Suporta contrução arquitetural baseada
UniCon     University            1996         em estilo interconectando componentes

         Carnegie Mellon   Allen and Garlan    Oferece um formalismo que foca nos
Wright     University            1997             tipos explícitos de conectores




                                       Arquitetura de Software – Thaís Batista
Classificação de ADLs
• De acordo com o relacionamento entre a descrição
  arquitetural e a implementação do sistema

   – Linguagens independentes de implementação
      • Wright, Rapide
      • Problema: Erosão Arquitetural => não correspondência entre
        descrição arquitetural e implementação do sistema

   – Linguagens limitadas a implementação:
      • UniCon



                                       Arquitetura de Software – Thaís Batista

Mais conteúdo relacionado

Mais procurados

Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageCloves da Rocha
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoLeinylson Fontinele
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareDaniel Cukier
 

Mais procurados (20)

Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
UML
UMLUML
UML
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
UML - Diagrama de Pacotes
UML - Diagrama de PacotesUML - Diagrama de Pacotes
UML - Diagrama de Pacotes
 

Destaque

Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMAricelio Souza
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCAlmir Neto
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersSergio Crespo
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIgor Takenami
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasGeorge Gomes
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETMário Meyrelles
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosEduardo Nicola F. Zagari
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisJorge Tressino Rua
 
Semanal fechada 6 ano
Semanal fechada 6 anoSemanal fechada 6 ano
Semanal fechada 6 anoRebeca Kaus
 
Boa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseBoa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseOziel Moreira Neto
 
O uso dos porquês
O uso dos porquêsO uso dos porquês
O uso dos porquêsRebeca Kaus
 
Agile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoAgile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoBruno Nardini
 
Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Rebeca Kaus
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPsLuiz Ricardo Silva
 
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O IgnacioFAETEC - ETESC
 

Destaque (20)

Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a Serviços
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e FiltrosPadrões-03 - Padrões Arquiteturais - Pipes e Filtros
Padrões-03 - Padrões Arquiteturais - Pipes e Filtros
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
 
Semanal fechada 6 ano
Semanal fechada 6 anoSemanal fechada 6 ano
Semanal fechada 6 ano
 
Boa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java EnterpriseBoa Práticas no Desenvolvimento Java Enterprise
Boa Práticas no Desenvolvimento Java Enterprise
 
O uso dos porquês
O uso dos porquêsO uso dos porquês
O uso dos porquês
 
Agile Brazil 2013 - Resumo
Agile Brazil 2013 - ResumoAgile Brazil 2013 - Resumo
Agile Brazil 2013 - Resumo
 
Viva jovem, venha conhecer!
Viva jovem, venha conhecer!Viva jovem, venha conhecer!
Viva jovem, venha conhecer!
 
Introdução aos Servlets e JSPs
Introdução aos Servlets e JSPsIntrodução aos Servlets e JSPs
Introdução aos Servlets e JSPs
 
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
4 Tarefa Plano Aula Bullying Claudia Cunha O Ignacio
 

Semelhante a Arquitetura de Software: Ponte entre requisitos e implementação

Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Softwareelliando dias
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 ModelDouglas Alonso
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAna Claudia Annunciação
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componenteselliando dias
 
InfoQ Brasil - Arquitetando o Futuro da TI - Por Wagner Santos
InfoQ Brasil -  Arquitetando o Futuro da TI - Por Wagner SantosInfoQ Brasil -  Arquitetando o Futuro da TI - Por Wagner Santos
InfoQ Brasil - Arquitetando o Futuro da TI - Por Wagner SantosManoel Pimentel Medeiros
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoMaria Alice Jovinski
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docxJulioCesar371362
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Vanilson Buregio
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Opencadd Advanced Technology
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwarePeter Jandl Junior
 
Aula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorAula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorMarlon CP
 
Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Edison Santos
 
Projetode redes
Projetode redesProjetode redes
Projetode redeswab030
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Projetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaProjetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaBruno Neves Menezes
 

Semelhante a Arquitetura de Software: Ponte entre requisitos e implementação (20)

Acme Total
Acme TotalAcme Total
Acme Total
 
Visão Geral Arquiteturade Software
Visão Geral Arquiteturade SoftwareVisão Geral Arquiteturade Software
Visão Geral Arquiteturade Software
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertido
 
diagrama de componentes
diagrama de componentesdiagrama de componentes
diagrama de componentes
 
InfoQ Brasil - Arquitetando o Futuro da TI - Por Wagner Santos
InfoQ Brasil -  Arquitetando o Futuro da TI - Por Wagner SantosInfoQ Brasil -  Arquitetando o Futuro da TI - Por Wagner Santos
InfoQ Brasil - Arquitetando o Futuro da TI - Por Wagner Santos
 
Aula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniaoAula diagramas de implementacao 3º periodo uniao
Aula diagramas de implementacao 3º periodo uniao
 
UMLIntro.pdf
UMLIntro.pdfUMLIntro.pdf
UMLIntro.pdf
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
 
Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?Arquitetura, uma questão de "estilo"?
Arquitetura, uma questão de "estilo"?
 
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
Openday PUC-RIO - Ferramenta gráfica para modelagem e análise em Engenharia E...
 
O (papel do) Arquiteto de Software
O (papel do) Arquiteto de SoftwareO (papel do) Arquiteto de Software
O (papel do) Arquiteto de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Aula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidorAula01 arquitetura clienteservidor
Aula01 arquitetura clienteservidor
 
Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2Sistemas Distribuídos - Aula 2
Sistemas Distribuídos - Aula 2
 
Projetode redes
Projetode redesProjetode redes
Projetode redes
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Projetando uma Arquitetura Expressiva
Projetando uma Arquitetura ExpressivaProjetando uma Arquitetura Expressiva
Projetando uma Arquitetura Expressiva
 
Cs 1
Cs 1Cs 1
Cs 1
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Arquitetura de Software: Ponte entre requisitos e implementação

  • 1. Arquitetura de Software Ponte entre os requisitos do sistema e sua implementação Requisitos do Sistema Arquitetura Implementação Arquiteto(s) do Sistema Arquitetura de Software – Thaís Batista
  • 2. Arquitetura de Software (AS) • Abstração que ajuda a gerenciar complexidade • Projeto Arquitetural do Software – Estrutura modular do software • Componentes • Relacionamento entre componentes • Linguagem de Descrição Arquitetural (ADL) descreve a arquitetura do sistema Arquitetura de Software – Thaís Batista
  • 3. Motivação para AS • Programming-in-the-large X Programming-in- the-small (Frank DeRemer and Hans Kron. 1976) – Programming-in-the-large: estrutura da aplicação descrevendo a interconexão entre os componentes • MILs (Module Interconnection Language): linguagens puramente declarativas para descrever estaticamente a interconexão entre os módulos – Programming-in-the-small: código interno do componente ou do módulo Arquitetura de Software – Thaís Batista
  • 4. Motivação para AS • Representação de sistemas informalmente através de caixas e linhas • Gerenciamento da complexidade de sistemas • Dinamismo • Redução do gap entre especificação e implementação Arquitetura de Software – Thaís Batista
  • 5. Terminologias em AS • Estilo Arquitetural ou Padrão Arquitetural ou Estilo (simplesmente): define os tipos de elementos e como eles interagem – Ex.: Pipe-Filtros é um estilo que define: • Elementos (dois tipos): pipe e filtro. • Interação: um pipe pode ser conectado a um filtro mas pipes não podem ser conectados a pipes nem filtros podem ser conectados a filtros • Arquitetura: processamento é mapeado em filtros e os pipes agem como condutores de dados Arquitetura de Software – Thaís Batista
  • 6. Terminologias em AS • Arquitetura de Referência ou Arquitetura de Software específica de Domínio: define tipos de elementos e interações permitidas em um domínio particular de aplicações. Ou seja, define como a funcionalidade de um domínio é mapeada em elementos arquiteturais Arquitetura de Software – Thaís Batista
  • 7. Terminologias em AS • Arquitetura de uma linha de produtos: – É aplicada a um conjunto de produtos dentro de uma organização. Tais produtos compartilham um design comum e, as vezes, parte da implementação – Define tipos de elementos e como eles interagem Arquitetura de Software – Thaís Batista
  • 8. Terminologias em AS • As arquiteturas não são mutuamente exclusivas – Exemplo: uma arquitetura de linha de produtos pode ser baseada em uma arquitetura de referência e esta, por sua vez, em um estilo arquitetural Estilo Arquitetural Arquitetura de Referência Arquitetura de Linha de Produtos Arquitetura de Software – Thaís Batista
  • 9. ADLs • Específicas para descrição de arquiteturas • Expressam características estruturais e comportamentais dos sistemas • Permitem reusabilidade • Oferecem primitivas para composição do sistema • Em geral incluem um formalismo Arquitetura de Software – Thaís Batista
  • 10. ADLs • Características Desejáveis: – Suporte a dinamismo • Inserir/Remover Componentes e Conexões entre eles • Atualizar Componentes – Permitir heterogeneidade de padrões e/ou de linguagens Arquitetura de Software – Thaís Batista
  • 11. Elementos Básicos de ADLs • Componentes • Conectores • Configurações Arquitetura de Software – Thaís Batista
  • 12. Componentes • Blocos de alto nível • Oferece – Modularidade – Separação dos conceitos • Publicam a interface • Escondem a implementação Arquitetura de Software – Thaís Batista
  • 13. Componentes • Interfaces – Definem os pontos de acesso ao componente - propriedades visíveis externamente – Possibilitam plug-and-play – Servem como um contrato entre componentes – Interfaces bem definidas tornam fácil a identificação e o propósito do comportamento do componente – Podem ser representadas por: Portas, Pontos de Interação, Serviços, etc... (diferentes terminologias e, em alguns casos, diferentes tipos de informações) Arquitetura de Software – Thaís Batista
  • 14. Componentes • Exemplo Interface Interface pessoa { string nome; short identidade; long data_de_nascimento; void add_pessoa(in string nome, in short id, in long data) raises (JaCadastrado) } Arquitetura de Software – Thaís Batista
  • 15. Componentes • Exemplo Interface em MetaH with type package Nav_Types; process interface A is sensor: in port Nav_Types.Rate_Vector; position: out port Nav_Types.ECEF_Type; end A; A Arquitetura de Software – Thaís Batista
  • 16. Conectores • Descrevem as interações e estabelecem restrições de como as mensagens fluem entre os componentes – Exemplo: um conector em um sistema cliente- servidor descreve o comportamento do cliente como uma sequência de solicitações alternadas com a recepção dos resultados • Concentram a informação sobre interconexão e a torna visível e reusável Arquitetura de Software – Thaís Batista
  • 17. Conectores • ADLs modelam conectores de várias formas: – Explicitamente: têm nome e podem ser reusados • Exemplos: UniCon, ACME, C2, Wright – In-Line: não têm nome e não podem ser reusados • Exemplo: Rapide e MetaH Arquitetura de Software – Thaís Batista
  • 18. Conectores • Exemplo Conector em ACME Conector em Rapide Connector rpc = { connect Roles {caller, callee} C.Send ||> B1.Receive Properties { synchronous} Arquitetura de Software – Thaís Batista
  • 19. Configurações • Descrevem a topologia do sistema: os elementos constituintes (componentes e conectores) e como eles estão interconectados para formar a arquitetura A B C D E F Arquitetura de Software – Thaís Batista
  • 20. Configurações architecture StackVisualizationArchitecture is components top_most StackADT; internal StackVisualization1; StackVisualization2; bottom_most GraphicsServer; connectors connector TopConnector is message_filter no_filtering end TopConnector; connector BottomConnector is message_filter no_filtering end BottomConnector; architectural_topology connector TopConnector connections Configuração top_ports StackADT; em C2 bottom_ports StackVisualization1; StackVisualization2; connector BottomConnector connections top_ports StackVisualization1; StackVisualization2; bottom_ports GraphicsServer; end StackVisualizationArchitecture; Arquitetura de Software – Thaís Batista
  • 21. Exemplo em Wright • Descrição simplificada de um sistema cliente- servidor em Wright A configuração é uma instância do estilo arquitetural Style Cliente-Servidor Component Cliente Configuration Cliente-Servidor Port p Style Cliente-Servidor Computation [descrição] Instances C:Cliente, CS:Cli-Serv, S:Servidor Attachments Component Servidor Port p C.p as CS.c Computation [descrição] S.p as CS.s End Configuration Connector Cli-Serv Role c Role s Glue [descrição] EndStyle Arquitetura de Software – Thaís Batista
  • 22. Exemplos de ADLs ADL Organização Referência Objetivos de Design Carnegie Mellon Carnegie Mellon Oferece uma linguagem de intercâmbio ACME University University, 1997 para facilitar compartilhamento de componentes arquiteturais Honeywell Especifica aspectos de tempo real e MetaH Technology Vestal, 1998 concorrência Stanford Luckham et al. Oferece uma ADL executável baseada Rapide University 1995 em um modelo de execução orientado a eventos Carnegie Mellon Shaw and Garlan, Suporta contrução arquitetural baseada UniCon University 1996 em estilo interconectando componentes Carnegie Mellon Allen and Garlan Oferece um formalismo que foca nos Wright University 1997 tipos explícitos de conectores Arquitetura de Software – Thaís Batista
  • 23. Classificação de ADLs • De acordo com o relacionamento entre a descrição arquitetural e a implementação do sistema – Linguagens independentes de implementação • Wright, Rapide • Problema: Erosão Arquitetural => não correspondência entre descrição arquitetural e implementação do sistema – Linguagens limitadas a implementação: • UniCon Arquitetura de Software – Thaís Batista