Você está na página 1de 7

Agenda

• Objetivos e Contexto
• Arquitetura de Software (A.S.)
• A.S. no Processo de Desenvolvimento
Arquitetura de Software • O Modelo ArcADe
- Fundamentos e Tendências - • Passado, Presente e Futuro

Prof. Marco Fagundes


mfagunde@tre-pa.gov.br

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 1 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 2

Objetivos Contexto
• Objetivos Geral:
! Enfatizar a importância da arquitetura para o sucesso O aumento do tamanho e da
de um projeto de software complexidade dos sistemas de software
• Objetivos específicos:
! Apresentar os conceitos básicos da arquitetura de
software
Redução de tempo e custo de
! Destacar o papel da arquitetura de software no
desenvolvimento e manutenção do
processo de desenvolvimento software
! Apresentar o modelo ArcADe
! Mostrar as tendências na área da arquitetura de Adotar uma arquitetura correta pode ajudar na
software gerência complexidade e trazer diversos
benefícios

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 3 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 4
Arquitetura de Software Arquitetura de Software

O diagrama abaixo representa uma A arquitetura do software define a estrutura


arquitetura? do software, que compreende os componentes
com suas propriedades visíveis externamente e
os relacionamentos entre eles.
Gestor de
segurança de
Acesso Configuração Componentes
Componente_A
Componente_B
Componente_C

Componente_A Componente_B Componente_C Conectores


Conector_1
interface interface interface
Conector_2

Configuraçãp
Gestor de Gestor de interface interface
Componente_A
Cadastro Pedidos Conector_1
Conector_1 Conector_2 Componente_B
Conector_2
Componente_C

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 5 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 6

Arquitetura de Software Arquitetura de Software


• Existem várias definições sobre arquitetura do software • A Arquitetura de Software enfatiza a separação de
• Semelhanças no núcleo através de três abstrações interesses (concerns)
básicas: Componentes, Conectores e Configuração ! Funcionalidade Funcionalidade

Modela a computação e o Grafo de componentes e ! Interação e


Interação
armazenamento de informações conectores ligados,
Por exemplo: Cliente, Servidor, descrevendo uma
Subsistema ou Sistema estrutura arquitetural p1 p2
Componente1 Componente2

Configuração

Modela a interação Funcionaliade Interação


entres os componentes Componente_A Componente_B Componente_C
Por exemplo: RPC interface interface interface
p1 p2
Componente1 Conector1 Componente2
interface interface
Conector_1 Conector_2

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 7 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 8
Arquitetura de Software Arquitetura de Software
Exemplo de uma arquitetura
O diagrama abaixo não representa uma sConsInfo eConsInfo
arquitetura Gestor de Link Gestor de
Cadastro Pedidos
eCadInfo sCadInfo
Descrição em CL
Gestor de system Order;
segurança de
Acesso begin

use task GestorCadastro, GestorPedidos;

create cad from GestorCadastro;


create ped from GestorPedidos;
Gestor de Gestor de
Cadastro Pedidos link cad.eCadInfo to ped.sCadInfo;
link cad.sConsInfo to ped.eConsInfo;

activate cad, ped;

end;
!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 9 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 10

Vantagens da A.S. Estilos arquiteturais


• Facilita a combinação de abordagens de reuso de
software (ex. Estilos, COTS ou Padrões de Projeto)
Um estilo arquitetural consiste de um
vocabulário de elementos de projeto e um
• Possibilita análise da descrição da arquitetura nas fases conjunto de regras de configuração que
iniciais do desenvolvimento (ex. propridades não governam a combinação desses elementos
funcionais ou conformidade com um estilo)
• Facilita a evolução do software • Elementos Arquiteturais (de Projeto)
• Permite uma melhor comunicação entre os stakeholders ! Componentes
! Conectores
• Exemplo de regras de configuração
! Uma camada pode somente se comunicar com a
camada adjacente no estilo Camadas
!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 11 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 12
Estilos arquiteturais A.S. no Processo de Desenvolvimento
• Definem uma família e não apenas um sistema • Reduz o gap semântico entre os requisitos e o
• A descrição da arquitetura é uma instância de código
um estilo • Fornece uma base para as outras fases de
• Exemplos de Estilos desenvolvimento do software
Requisitos
! Cliente-servidor Requisitos

! Pipe-filter
! Camadas (Layered)

• Exemplo de uma A.S. no estilo Pipe-filter: Métodos OO Arquitetura de


Software

RMI Java RMI Java

Implementação Implementação
Delphi CORBA Delphi CORBA

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 13 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 14

A.S. no Processo de Desenvolvimento O Modelo ArcADe


• A.S. e a O.O. de forma complementar 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

Rastreabilidade O Modelo ArcADe


Um modelo de processo que integra a arquitetura de
software com um processo de desenvolvimento
largamente utilizado (RUP)

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 15 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 16
Desenv. Baseado em Arquitetura X Fluxos do RUP Sobre o ArcADe
• Foco na arquitetura do software • O Modelo de Processo ArcADe (Architecture-based
• Arquitetura serve como base para as atividades de Analisys and Design) integra a A.S. com elementos
análise, projeto e implementação do software (conceitos, métodos e técnicas) do RUP
• Representação da arquitetura (ADLs) • O ArcADe adota a AS para definir as etapas do
desenvolvimento
Desenvolvimento Baseado em Arquitetura Fluxos de Processo do RUP
• O modelo utiliza os elementos do RUP para organizar o
Entender o Domínio Modelagem de Negócio
Requisitos
processo em um fluxo de trabalho
Desenvolver/Selecionar a Arquitetura
Análise & Projeto
Representar a Arquitetura
Analisar e Avaliar a Arquitetura Implementação
Teste

Implementar Arquitetura Implantação

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 17 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 18

Níveis de Abstração do ArcADe O Modelo ArcADe


• Desenvolvimento iterativo e incremental no ArcADe
Composição da arquitetura
abstrata a partir da
especificação dos requisitos

1º Iteração 2nd Iteration

Component_A Projeto da
Component_B
Arquitetura

Connector_1
Component_A Projeto da Component_A
Component_B Component_B Component_C
Arquitetura

Connector_ Connector_ Connector_


1 1 2

CORBA Projeto
Detalhado

CORBA Projeto CORBA


Detalhado

Componentes e conectores da
arquitetura abstrata são refinados
para uma representação concreta mais
próxima da implementação

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 19 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 20
ArcADe vs RUP O Modelo ArcADe
Subfluxos Atividades
Fluxo de Análise & Modelo ArcADe Relacionar Requisitos com a

Projeto do RUP Selecionar uma


Arquitetura Candidata
Arquitetura
Identificar Oportunidades de
Reuso em Nível Arquitetural
Projeto da Definir Arquitetura do Software a
Arquitetura partir da Candidata
Definir a Arquitetura Especificar Abstrações Arquiteturais
Abstrata Representar a Arquitetura
Analisar a Arquitetura
Aplicar Regras de Refinamento
Refinar a Arquitetura Revisar a Arquitetura
Analisar Casos de Uso(RUP)
Analisar Modelar Comportamento
Comportamento Analisar o Modelo

Subfluxos Atividades
Fazer Projeto Detalhado
Projetar Componentes Especificar Interface do Componente
Projetar Classes (RUP)
Projetar Casos de Uso (RUP)
Projetar Banco de Dados (RUP)

Identificar Produtos Candidatos


Selecionar Descrever Produtos Candidatos
Componentes Avaliar Produtos Candidatos
Aceitar Produtos Candidatos
Especifiar Partes Concretas
Projetar Conectores
Estender Tipo Básico
Projeto
Identificar Tecnologias Candidatas
Detalhado
Descrever Tecnologias Candidatas
Selecionar Conectores
Avaliar Tecnologias Candidatas
Aceitar Tecnologias Candidatas

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 21 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 22

A.S. Passado, Presente e Futuro A.S. Passado, Presente e Futuro


• No passado: • No presente:
! forma ad hoc - descrições informais diagramas de ! Arquitetura é tratada como uma atividade importante
caixas linhas e explícita no desenvolvimento de software
! Profissionais começaram a reconhecer o papel crítico ! Diversos congressos científicos e livros dedicados à
da A.S. para o sucesso do projeto A.S
! Os projetistas de linguagens começaram a considerar ! A.S. como área de pesquisa
uma notação específica e formal para representar a Novas
ADLs
arquitetura Engenharia
de Formalização
Requisitos
Engenharia
de Software Arquitetura Tópicos de
de Software pesquisa Ferramentas

Desenvolvimento
... baseado em arquitetura

Estilos

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 23 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 24
A.S. Passado, Presente e Futuro A.S. Passado, Presente e Futuro
• Três avanços importantes: • No futuro:
• Linguagens de Descrição de Arquiteturas e Ferramentas
! Evolução natural:
• Engenharia de Linha de Produtos
• Difusão e Assimilação da A.S. como disciplina
• Codificação e Disseminação
• Ferramentas para o projeto arquitetural
! Tendências:
Requisitos do Arquitetura do
Produto Produto
• Adoção de linguagens como a UML e XML para
Restrições
modelagem arquitetural
induzidas • Computação Ubíqua (“pervasiva”)
Requisitos da Linha Arquitetura da Linha
de Produtos de Produtos

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 25 !2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 26

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

!2006 Prof. Marco Fagundes - mfagunde@tre-pa.gov.br 27