SlideShare uma empresa Scribd logo
1 de 7
1!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
- Fundamentos e Tendências -
Prof. Marco Fagundes
mfagunde@tre-pa.gov.br
2!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Agenda
• Objetivos e Contexto
• Arquitetura de Software (A.S.)
• A.S. no Processo de Desenvolvimento
• O Modelo ArcADe
• Passado, Presente e Futuro
3!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Objetivos
• Objetivos Geral:
! Enfatizar a importância da arquitetura para o sucesso
de um projeto de software
• Objetivos específicos:
! Apresentar os conceitos básicos da arquitetura de
software
! Destacar o papel da arquitetura de software no
processo de desenvolvimento
! Apresentar o modelo ArcADe
! Mostrar as tendências na área da arquitetura de
software
4!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Contexto
Adotar uma arquitetura correta pode ajudar na
gerência complexidade e trazer diversos
benefícios
O aumento do tamanho e da
complexidade dos sistemas de software
Redução de tempo e custo de
desenvolvimento e manutenção do
software
5!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
O diagrama abaixo representa uma
arquitetura?
Gestor de
segurança de
Acesso
Gestor de
Cadastro
Gestor de
Pedidos
6!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
A arquitetura do software define a estrutura
do software, que compreende os componentes
com suas propriedades visíveis externamente e
os relacionamentos entre eles.
Conector_1
Componente_A
Configuração
interface
Conector_2
interface
Componente_B
interface
Componente_C
interface
interface
Componentes
Componente_A
Componente_B
Componente_C
Conectores
Conector_1
Conector_2
Configuraçãp
Componente_A
Conector_1
Componente_B
Conector_2
Componente_C
7!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
• Existem várias definições sobre arquitetura do software
• Semelhanças no núcleo através de três abstrações
básicas: Componentes, Conectores e Configuração
Conector_1
Componente_A
Configuração
interface
Conector_2
interface
Componente_B
interface
Componente_C
interface
interface
Modela a computação e o
armazenamento de informações
Por exemplo: Cliente, Servidor,
Subsistema ou Sistema
Modela a interação
entres os componentes
Por exemplo: RPC
Grafo de componentes e
conectores ligados,
descrevendo uma
estrutura arquitetural
8!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
• A Arquitetura de Software enfatiza a separação de
interesses (concerns)
! Funcionalidade
! Interação
Componente2
p2
Funcionalidade
e
Interação
Componente1
p1
Conector1 Componente2
p2
Componente1
p1
InteraçãoFuncionaliade
9!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
O diagrama abaixo não representa uma
arquitetura
Gestor de
segurança de
Acesso
Gestor de
Cadastro
Gestor de
Pedidos
10!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Arquitetura de Software
Exemplo de uma arquitetura
system Order;
begin
use task GestorCadastro, GestorPedidos;
create cad from GestorCadastro;
create ped from GestorPedidos;
link cad.eCadInfo to ped.sCadInfo;
link cad.sConsInfo to ped.eConsInfo;
activate cad, ped;
end;
Link Gestor de
Pedidos
Gestor de
Cadastro
sConsInfo
eCadInfo
eConsInfo
sCadInfo
Descrição em CL
11!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Vantagens da A.S.
• Facilita a combinação de abordagens de reuso de
software (ex. Estilos, COTS ou Padrões de Projeto)
• Possibilita análise da descrição da arquitetura nas fases
iniciais do desenvolvimento (ex. propridades não
funcionais ou conformidade com um estilo)
• Facilita a evolução do software
• Permite uma melhor comunicação entre os stakeholders
12!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Estilos arquiteturais
Um estilo arquitetural consiste de um
vocabulário de elementos de projeto e um
conjunto de regras de configuração que
governam a combinação desses elementos
• Elementos Arquiteturais (de Projeto)
! Componentes
! Conectores
• Exemplo de regras de configuração
! Uma camada pode somente se comunicar com a
camada adjacente no estilo Camadas
13!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Estilos arquiteturais
• Definem uma família e não apenas um sistema
• A descrição da arquitetura é uma instância de
um estilo
• Exemplos de Estilos
! Cliente-servidor
! Pipe-filter
! Camadas (Layered)
• Exemplo de uma A.S. no estilo Pipe-filter:
14!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. no Processo de Desenvolvimento
• Reduz o gap semântico entre os requisitos e o
código
• Fornece uma base para as outras fases de
desenvolvimento do software
Requisitos
Arquitetura de
Software
Implementação
RMI Java
CORBADelphi
Requisitos
Implementação
RMI Java
CORBADelphi
Métodos OO
15!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. no Processo de Desenvolvimento
• A.S. e a O.O. de forma complementar
Rastreabilidade
16!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
O Modelo ArcADe
Contexto
A Arquitetura de Software desempenha um papel
importante para o sucesso do projeto
Problema
Ausência da integração natural entre a Arquitetura de
Software e processos de software comumente utilizados
O Modelo ArcADe
Um modelo de processo que integra a arquitetura de
software com um processo de desenvolvimento
largamente utilizado (RUP)
17!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
• Foco na arquitetura do software
• Arquitetura serve como base para as atividades de
análise, projeto e implementação do software
• Representação da arquitetura (ADLs)
Desenv. Baseado em Arquitetura X Fluxos do RUP
Fluxos de Processo do RUP
Modelagem de Negócio
Requisitos
Análise & Projeto
Implementação
Teste
Implantação
Desenvolver/Selecionar a Arquitetura
Representar a Arquitetura
Analisar e Avaliar a Arquitetura
Desenvolvimento Baseado em Arquitetura
Implementar Arquitetura
Entender o Domínio
18!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Sobre o ArcADe
• O Modelo de Processo ArcADe (Architecture-based
Analisys and Design) integra a A.S. com elementos
(conceitos, métodos e técnicas) do RUP
• O ArcADe adota a AS para definir as etapas do
desenvolvimento
• O modelo utiliza os elementos do RUP para organizar o
processo em um fluxo de trabalho
19!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Níveis de Abstração do ArcADe
Composição da arquitetura
abstrata a partir da
especificação dos requisitos
Componentes e conectores da
arquitetura abstrata são refinados
para uma representação concreta mais
próxima da implementação
Projeto da
Arquitetura
Connector_1
Component_A
Component_B
CORBA Projeto
Detalhado
20!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
• Desenvolvimento iterativo e incremental no ArcADe
O Modelo ArcADe
Projeto da
Arquitetura
Connector_
1
Component_A
Component_B
CORBA Projeto
Detalhado
1º Iteração
Connector_
1
Component_A
Component_B Component_C
Connector_
2
CORBA
2nd
Iteration
21!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Projeto da
Arquitetura
Fluxo de Análise &
Projeto do RUP
ArcADe vs RUP
Modelo ArcADe
Projeto
Detalhado
22!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
O Modelo ArcADe
Selecionar uma
Arquitetura Candidata
Relacionar Requisitos com a
Arquitetura
Identificar Oportunidades de
Reuso em Nível Arquitetural
Definir a Arquitetura
Abstrata
Definir Arquitetura do Software a
partir da Candidata
Especificar Abstrações Arquiteturais
Analisar a Arquitetura
Representar a Arquitetura
Refinar a Arquitetura
Aplicar Regras de Refinamento
Revisar a Arquitetura
Analisar Casos de Uso(RUP)
Analisar
Comportamento
Modelar Comportamento
Analisar o Modelo
Subfluxos Atividades
Projetar Componentes
Fazer Projeto Detalhado
Especificar Interface do Componente
Projetar Conectores
Especifiar Partes Concretas
Estender Tipo Básico
Selecionar Conectores
Identificar Tecnologias Candidatas
Subfluxos Atividades
Descrever Tecnologias Candidatas
Avaliar Tecnologias Candidatas
Aceitar Tecnologias Candidatas
Selecionar
Componentes
Identificar Produtos Candidatos
Descrever Produtos Candidatos
Avaliar Produtos Candidatos
Aceitar Produtos Candidatos
Projetar Classes (RUP)
Projetar Casos de Uso (RUP)
Projetar Banco de Dados (RUP)
23!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. Passado, Presente e Futuro
• No passado:
! forma ad hoc - descrições informais diagramas de
caixas linhas
! Profissionais começaram a reconhecer o papel crítico
da A.S. para o sucesso do projeto
! Os projetistas de linguagens começaram a considerar
uma notação específica e formal para representar a
arquitetura
24!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. Passado, Presente e Futuro
• No presente:
! Arquitetura é tratada como uma atividade importante
e explícita no desenvolvimento de software
! Diversos congressos científicos e livros dedicados à
A.S
! A.S. como área de pesquisa
Tópicos de
pesquisa
Formalização
Novas
ADLs
Ferramentas
Desenvolvimento
baseado em arquitetura
Estilos
Arquitetura
de Software
Engenharia
de Software
Engenharia
de
Requisitos
...
25!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. Passado, Presente e Futuro
• Três avanços importantes:
• Linguagens de Descrição de Arquiteturas e Ferramentas
• Engenharia de Linha de Produtos
• Codificação e Disseminação
Requisitos do
Produto
Requisitos da Linha
de Produtos
Arquitetura do
Produto
Arquitetura da Linha
de Produtos
Restrições
induzidas
26!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
A.S. Passado, Presente e Futuro
• No futuro:
! Evolução natural:
•Difusão e Assimilação da A.S. como disciplina
•Ferramentas para o projeto arquitetural
! Tendências:
•Adoção de linguagens como a UML e XML para
modelagem arquitetural
•Computação Ubíqua (“pervasiva”)
27!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br
Pontos Principais
• A A.S. tem recebido crescente reconhecimento e
atenção
• No processo de desenvolvimento, a A.S. desempenha
um papel importante como ponte entre requisitos e
implementação
• Diversas contribuições para facilitar e difundir a A.S.
• O Modelo ArcADe integra a arquitetura de software com
elementos (conceitos, métodos e técnicas) do RUP

Mais conteúdo relacionado

Semelhante a Arquitetura de Software: Fundamentos e Tendências

Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indianahellequin
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialAlexandre Leão
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Apresentacao ADDs Cases Alfresco
Apresentacao ADDs Cases AlfrescoApresentacao ADDs Cases Alfresco
Apresentacao ADDs Cases AlfrescoADDs Solutions
 
Domain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesDomain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesJoao Paulo Oliveira dos Santos
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slideshoraciosila
 
WebAPSEE-PRO
WebAPSEE-PROWebAPSEE-PRO
WebAPSEE-PROUFPA
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Felipe Nascimento
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeLuiz Matos
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdfa29398
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excelmalviana1
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010Facuuldade Norte Sul
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)Rafael Targino
 
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCECOMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCEFernando S. de Paulo
 

Semelhante a Arquitetura de Software: Fundamentos e Tendências (20)

Projeto Indiana
Projeto IndianaProjeto Indiana
Projeto Indiana
 
DDD
DDDDDD
DDD
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Apresentacao ADDs Cases Alfresco
Apresentacao ADDs Cases AlfrescoApresentacao ADDs Cases Alfresco
Apresentacao ADDs Cases Alfresco
 
Domain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrõesDomain Driven Design - Aplicando estrategias e padrões
Domain Driven Design - Aplicando estrategias e padrões
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
 
WebAPSEE-PRO
WebAPSEE-PROWebAPSEE-PRO
WebAPSEE-PRO
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
Apresentação: Utilização de Metodologias Ágeis para Adaptação de um Processo ...
 
Processo de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidadeProcesso de Desenvolvimento MDA: metodologias e agilidade
Processo de Desenvolvimento MDA: metodologias e agilidade
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf1 - APS – Iniciação Desenvolvimento Requisitos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excel
 
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
C:\Documents And Settings\Juliana\Desktop\Palestra 19 03 2010
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
 
20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli20141128-Carlos-Eduardo-Capparelli
20141128-Carlos-Eduardo-Capparelli
 
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCECOMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
COMPARANDO FRAMEWORKS DE ARQUITETURA CORPORATIVA PARA APLICAÇÃO EM E-COMMERCE
 

Arquitetura de Software: Fundamentos e Tendências

  • 1. 1!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software - Fundamentos e Tendências - Prof. Marco Fagundes mfagunde@tre-pa.gov.br 2!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Agenda • Objetivos e Contexto • Arquitetura de Software (A.S.) • A.S. no Processo de Desenvolvimento • O Modelo ArcADe • Passado, Presente e Futuro 3!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Objetivos • Objetivos Geral: ! Enfatizar a importância da arquitetura para o sucesso de um projeto de software • Objetivos específicos: ! Apresentar os conceitos básicos da arquitetura de software ! Destacar o papel da arquitetura de software no processo de desenvolvimento ! Apresentar o modelo ArcADe ! Mostrar as tendências na área da arquitetura de software 4!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Contexto Adotar uma arquitetura correta pode ajudar na gerência complexidade e trazer diversos benefícios O aumento do tamanho e da complexidade dos sistemas de software Redução de tempo e custo de desenvolvimento e manutenção do software
  • 2. 5!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software O diagrama abaixo representa uma arquitetura? Gestor de segurança de Acesso Gestor de Cadastro Gestor de Pedidos 6!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software A arquitetura do software define a estrutura do software, que compreende os componentes com suas propriedades visíveis externamente e os relacionamentos entre eles. Conector_1 Componente_A Configuração interface Conector_2 interface Componente_B interface Componente_C interface interface Componentes Componente_A Componente_B Componente_C Conectores Conector_1 Conector_2 Configuraçãp Componente_A Conector_1 Componente_B Conector_2 Componente_C 7!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software • Existem várias definições sobre arquitetura do software • Semelhanças no núcleo através de três abstrações básicas: Componentes, Conectores e Configuração Conector_1 Componente_A Configuração interface Conector_2 interface Componente_B interface Componente_C interface interface Modela a computação e o armazenamento de informações Por exemplo: Cliente, Servidor, Subsistema ou Sistema Modela a interação entres os componentes Por exemplo: RPC Grafo de componentes e conectores ligados, descrevendo uma estrutura arquitetural 8!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software • A Arquitetura de Software enfatiza a separação de interesses (concerns) ! Funcionalidade ! Interação Componente2 p2 Funcionalidade e Interação Componente1 p1 Conector1 Componente2 p2 Componente1 p1 InteraçãoFuncionaliade
  • 3. 9!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software O diagrama abaixo não representa uma arquitetura Gestor de segurança de Acesso Gestor de Cadastro Gestor de Pedidos 10!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Arquitetura de Software Exemplo de uma arquitetura system Order; begin use task GestorCadastro, GestorPedidos; create cad from GestorCadastro; create ped from GestorPedidos; link cad.eCadInfo to ped.sCadInfo; link cad.sConsInfo to ped.eConsInfo; activate cad, ped; end; Link Gestor de Pedidos Gestor de Cadastro sConsInfo eCadInfo eConsInfo sCadInfo Descrição em CL 11!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Vantagens da A.S. • Facilita a combinação de abordagens de reuso de software (ex. Estilos, COTS ou Padrões de Projeto) • Possibilita análise da descrição da arquitetura nas fases iniciais do desenvolvimento (ex. propridades não funcionais ou conformidade com um estilo) • Facilita a evolução do software • Permite uma melhor comunicação entre os stakeholders 12!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Estilos arquiteturais Um estilo arquitetural consiste de um vocabulário de elementos de projeto e um conjunto de regras de configuração que governam a combinação desses elementos • Elementos Arquiteturais (de Projeto) ! Componentes ! Conectores • Exemplo de regras de configuração ! Uma camada pode somente se comunicar com a camada adjacente no estilo Camadas
  • 4. 13!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Estilos arquiteturais • Definem uma família e não apenas um sistema • A descrição da arquitetura é uma instância de um estilo • Exemplos de Estilos ! Cliente-servidor ! Pipe-filter ! Camadas (Layered) • Exemplo de uma A.S. no estilo Pipe-filter: 14!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. no Processo de Desenvolvimento • Reduz o gap semântico entre os requisitos e o código • Fornece uma base para as outras fases de desenvolvimento do software Requisitos Arquitetura de Software Implementação RMI Java CORBADelphi Requisitos Implementação RMI Java CORBADelphi Métodos OO 15!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. no Processo de Desenvolvimento • A.S. e a O.O. de forma complementar Rastreabilidade 16!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br O Modelo ArcADe Contexto A Arquitetura de Software desempenha um papel importante para o sucesso do projeto Problema Ausência da integração natural entre a Arquitetura de Software e processos de software comumente utilizados O Modelo ArcADe Um modelo de processo que integra a arquitetura de software com um processo de desenvolvimento largamente utilizado (RUP)
  • 5. 17!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br • Foco na arquitetura do software • Arquitetura serve como base para as atividades de análise, projeto e implementação do software • Representação da arquitetura (ADLs) Desenv. Baseado em Arquitetura X Fluxos do RUP Fluxos de Processo do RUP Modelagem de Negócio Requisitos Análise & Projeto Implementação Teste Implantação Desenvolver/Selecionar a Arquitetura Representar a Arquitetura Analisar e Avaliar a Arquitetura Desenvolvimento Baseado em Arquitetura Implementar Arquitetura Entender o Domínio 18!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Sobre o ArcADe • O Modelo de Processo ArcADe (Architecture-based Analisys and Design) integra a A.S. com elementos (conceitos, métodos e técnicas) do RUP • O ArcADe adota a AS para definir as etapas do desenvolvimento • O modelo utiliza os elementos do RUP para organizar o processo em um fluxo de trabalho 19!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Níveis de Abstração do ArcADe Composição da arquitetura abstrata a partir da especificação dos requisitos Componentes e conectores da arquitetura abstrata são refinados para uma representação concreta mais próxima da implementação Projeto da Arquitetura Connector_1 Component_A Component_B CORBA Projeto Detalhado 20!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br • Desenvolvimento iterativo e incremental no ArcADe O Modelo ArcADe Projeto da Arquitetura Connector_ 1 Component_A Component_B CORBA Projeto Detalhado 1º Iteração Connector_ 1 Component_A Component_B Component_C Connector_ 2 CORBA 2nd Iteration
  • 6. 21!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Projeto da Arquitetura Fluxo de Análise & Projeto do RUP ArcADe vs RUP Modelo ArcADe Projeto Detalhado 22!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br O Modelo ArcADe Selecionar uma Arquitetura Candidata Relacionar Requisitos com a Arquitetura Identificar Oportunidades de Reuso em Nível Arquitetural Definir a Arquitetura Abstrata Definir Arquitetura do Software a partir da Candidata Especificar Abstrações Arquiteturais Analisar a Arquitetura Representar a Arquitetura Refinar a Arquitetura Aplicar Regras de Refinamento Revisar a Arquitetura Analisar Casos de Uso(RUP) Analisar Comportamento Modelar Comportamento Analisar o Modelo Subfluxos Atividades Projetar Componentes Fazer Projeto Detalhado Especificar Interface do Componente Projetar Conectores Especifiar Partes Concretas Estender Tipo Básico Selecionar Conectores Identificar Tecnologias Candidatas Subfluxos Atividades Descrever Tecnologias Candidatas Avaliar Tecnologias Candidatas Aceitar Tecnologias Candidatas Selecionar Componentes Identificar Produtos Candidatos Descrever Produtos Candidatos Avaliar Produtos Candidatos Aceitar Produtos Candidatos Projetar Classes (RUP) Projetar Casos de Uso (RUP) Projetar Banco de Dados (RUP) 23!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. Passado, Presente e Futuro • No passado: ! forma ad hoc - descrições informais diagramas de caixas linhas ! Profissionais começaram a reconhecer o papel crítico da A.S. para o sucesso do projeto ! Os projetistas de linguagens começaram a considerar uma notação específica e formal para representar a arquitetura 24!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. Passado, Presente e Futuro • No presente: ! Arquitetura é tratada como uma atividade importante e explícita no desenvolvimento de software ! Diversos congressos científicos e livros dedicados à A.S ! A.S. como área de pesquisa Tópicos de pesquisa Formalização Novas ADLs Ferramentas Desenvolvimento baseado em arquitetura Estilos Arquitetura de Software Engenharia de Software Engenharia de Requisitos ...
  • 7. 25!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. Passado, Presente e Futuro • Três avanços importantes: • Linguagens de Descrição de Arquiteturas e Ferramentas • Engenharia de Linha de Produtos • Codificação e Disseminação Requisitos do Produto Requisitos da Linha de Produtos Arquitetura do Produto Arquitetura da Linha de Produtos Restrições induzidas 26!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br A.S. Passado, Presente e Futuro • No futuro: ! Evolução natural: •Difusão e Assimilação da A.S. como disciplina •Ferramentas para o projeto arquitetural ! Tendências: •Adoção de linguagens como a UML e XML para modelagem arquitetural •Computação Ubíqua (“pervasiva”) 27!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br Pontos Principais • A A.S. tem recebido crescente reconhecimento e atenção • No processo de desenvolvimento, a A.S. desempenha um papel importante como ponte entre requisitos e implementação • Diversas contribuições para facilitar e difundir a A.S. • O Modelo ArcADe integra a arquitetura de software com elementos (conceitos, métodos e técnicas) do RUP