Você está na página 1de 38

Arquitetura de Software:

conceitos e tendncias
Prof. Dra. Ana Paula Terra Bacelo
ana.bacelo@pucrs.br - FACIN/PUCRS
Jornada Acadmica FACIN
25 a 27 de agosto de 2010
Agenda
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 2
Motivao
Arquitetura de Software (AS): o que ?
Estilos de Arquiteturas de Software
Camadas (Layered-based Architecture)
SOA (Service Oriented Architecture)
CBD (Component-based Development)
Linguagens de Descrio Arquitetural (ADL)
Estilos X Linguagens X Padres Arquiteturais
Abordagens de Desenvolvimento baseado em Arquitetura:
Model-Driven Architecture- MDA (Arquitetura orientada a modelos)
Arquitetura de Software e os currculos do Bacharelado em
CC, SI e EC
Consideraes Finais
Motivao
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 3
Engenharia de Software
Ciclo de vida de um produto
Modelo Cascata
Modelo Espiral
Processo Unificado
Por que usar processos de desenvolvimento
arquitetura de software?
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 4
Cada vez maior a complexidade do software a ser
construdo
necessria a reduo de tempo e custo de
desenvolvimento e manuteno do software
A Arquitetura do Software - AS desempenha um
papel fundamental para gerenciar a complexidade
inerente ao software a ser desenvolvido
Processos de Desenvolvimento e AS
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 5
Desenvolvimento Incremental
Processo Genrico de Desenvolvimento de Software - Projeto
Arquitetura de Software: o que ?
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 6
Diversos conceitos (PFLEEGER, 1998; FIELDING, 2000; GARLAN, 2000)
Uma arquitetura de software envolve a descrio de elementos
arquiteturais dos quais os sistemas sero construdos, interaes entre
esses elementos, padres que guiam suas composies e restries sobre
estes padres.
A arquitetura de um software define em termos computacionais quais so
seus elementos arquiteturais e como ocorre a interao entre eles.
Elementos arquiteturais: bancos de dados, servidores, clientes, filtros, um ou
mais componentes, dentre outros, e a interao entre eles pode ocorrer
atravs de chamadas de procedimentos, acesso a variveis, uso de
protocolos para acesso a clientes e servidores, bancos de dados, e outros
eventos quaisquer (GARLAN, 2000).
Arquitetura de Software: o que ?
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 7
Rational Unified Process (RUP):
A arquitetura de um software envolve o
conjunto de decises que definem a
organizao do sistema objetivando:
definir os elementos estruturais e suas
interfaces de modo a estabelecer a
composio do sistema;
estabelecer o comportamento pela
colaborao entre estes elementos;
compor estes elementos estruturais e
comportamentais em subsistemas
(agregao).
Arquitetura de Software: o que ?
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 8
RUP
A arquitetura tambm influenciada por fatores de
implementao:
arquitetura de computador;
sistema operacional;
SGBD;
protocolos de rede;
linguagem de programao;
ambiente de interface grfica;
bibliotecas de funes disponveis;
sistemas legados;
necessidades de performance, portabilidade etc.
Papel do Arquiteto de Software
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 9
Conhecimento profundo:
dos requisitos das aplicaes;
das tecnologias disponveis para apoio construo da
arquitetura e
dos processos de desenvolvimento adequados para a aplicao
a ser desenvolvida.
Jornada Acadmica - FACIN - PUCRS -
Arquitetura de Software 25/8/2010
10
Estilos Arquiteturais,
Padres Arquiteturais e
Linguagens de Descrio
Arquitetural
Estilos Arquiteturais
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 11
Definem um conjunto de regras de projeto que
identificam tipos de componentes, seus conectores e
restries existentes para a sua composio, os quais
podem ser usados para compor uma famlia de sistemas e
subsistemas
Exemplos:
Pipes and Filters,
Camadas,
Baseado em Eventos
Organizao Orientada a Objetos
Estilo Pipe-and-Filter
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 12
Processamento Sequencial
Componentes: Filters realiza um processamento de dados
Conectores: Pipers so condutores que transmitem as
sadas de um filter para outro
til para aplicaes de processamento de informaes que
interagem pouco com os usurios
No apropriado para aplicaes interativas
Estilo Arquitetural em Camadas
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 13
Componentes so alocados a camadas que controlam a
interao
Cada componente se comunica com os das camadas
vizinhas
Exemplo: sistema de gerenciamento de
verses
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 14
Camadas: vantagens e desvantagens
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 15
Vantagens
Facilidade de compreenso
Facilidade de manuteno
Desenvolvimento independente
Facilidade de Reutilizao
Desvantagens
Duplicao de funcionalidade
s vezes difcil estruturar um sistema atravs de camadas
comum que a estruturao seja violada
Padro Arquitetural
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 16
Expressa a estrutura fundamental de um esquema de
software
Estrutural : Camadas, Pipes and Filters
Sistemas Distribudos: Broker
Sistemas Interativos: MVC
Sistemas Adaptveis: Reflexo, Micro Kernel
Exemplo de Padro Arquitetural: MVC
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 17
MVC ModelView-Controller sistemas interativos
Model: define a semntica da aplicao e define seu
comportamento.
View: viabilizam uma apresentao visual da aplicao.
Controller: gerencia as interaes do usurio com os modelos
e vises da aplicao
Control
Interao do usurio
com Disp. Entrada
View
Exibio e Interao
entre vises
Model
Estado e Comportamento
do Domnio da Aplicao
Entrada
USR
mensagens de interface sadas de
apresentao
Mensagens de
consulta e alterao
do modelo
Mensagens de
modificaes
de estado para
dependentes
Mensagens de
modificaes de
estado para
dependentes
Arquiteturas Orientadas a Servios
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 18
SOA: Software Oriented Architecture
funcionalidades implementadas pelas aplicaes devem ser
disponibilizadas na forma de servios
servios so conectados atravs de um "barramento de
servios Enterprise Service Bus - ESB
ESB disponibiliza interfaces, ou contratos, acessveis atravs de
web services
BEA Aqualogic Service Bus Oracle
WebLogic
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 19
Arquiteturas baseadas em Componentes
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 20
Linguagens de Descrio Arquitetural
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 21
Architecture Description Language (ADL)
Linguagens que expressam caractersticas estruturais e
comportamentais dos sistemas
Viabilizam a reutilizao
Possibilita o registro de fatores implementacionais
Oferecem primitivas para composio do sistema
Elementos bsicos:
Componentes
Conectores
Configuraes
ADLS
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 22
Exemplos:
ADAGE (Avionics Domain Application Generative Environmet) [Cog93],
Darwin [Mag95],
Rapide [Luc96],
Aesop,
Meta-H,
C2,
SADL,
ACME (Architectural Description Language - Carnegie Mellon University)
[Gar97],
Wright [All97],
ADLARS [Bas05],
EAADL (Extended Architecture Analysis Description Language) [Oh07].
Exemplo de ADL
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 23
Exemplo de ADL - Linguagem C2
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 24
Componentes
Conectores
Configuraes
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 25
Desenvolvimento de software
orientado a arquitetura
MDA Model Driven Architecture
Jornada Acadmica - FACIN - PUC - Arquitetura de Software 26
Abordagem para construo de Arquitetura de Software proposta
pela OMG Padres MOF, JMI, XMI
Objetivos
Especificar um sistema independentemente da
plataforma de software de execuo;
Especificar plataformas de execuo;
Escolher uma plataforma especfica de execuo
para um sistema e
Transformar a especificao do sistema em uma
especificao voltada para uma plataforma de
execuo especfica
27
Model Driven Architecture
Principais conceitos (MDA)
Plataforma: Conjunto de subsistemas e tecnologias que
disponibilizam servios atravs de interfaces e padres de
utilizao
CIM Computation Independent Model (ex: documento de
requisitos, use case)
PIM Platform Independent Model (ex: modelo de classes)
PSM Platform Specific Model (ex: modelo de classes EJB)
Tipos de Transformaes de Modelo
PIM PIM PIM PSM
PSM PSM PSM Cdigo Fonte
Jornada Acadmica - FACIN - PUC - Arquitetura de Software
Model Driven Architecture
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 28
Exemplo de Transformao PIM PSM (EJBComponents)
<< component >>
<< EJBEntityBeanComponent >>
ClienteBean
-idCliente:String
-nome:String
-endereco:String
#entityContext:EntityContext
<< EJBEntityBean >>
ClienteBean
+ejbCreate():ClientePK
+ejbPostCreate():void
+ejbActivate():void
+ejbLoad():void
+ejbPassivate():void
+ejbRemove():void
+ejbStore():void
+getNome():String
+setNome(nome:String):void
+getEndereco():String
+setEndereco(endereco:String):void
-idCliente:String
ClientePK
+hashCode():int
+equals(other:Object):boolean
+getNome():String
+setNome(nome:String):void
+getEndereco():String
+setEndereco(endereco:String):void
ClienteLocal
<< EJBLocalInterface >>
+create():Cliente
+findByPrimaryKey(...):...
ClienteHome
<< EJBLocalHomeInterface >>
+create():ClienteLocal
+findByPrimaryKey(...):...
ClienteLocalHome
<< EJBHomeInterface >>
+getNome():String
+setNome(nome:String):void
+getEndereco():String
+setEndereco(endereco:String):void
Cliente
<< EJBRemoteInterface >>
- nome : String
- endereco : String
Cliente
Model Driven Architecture
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 29
Exemplo de Transformao PSMCdigo fonte (Java)
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 30
Arquitetura de Software e os
Currculos dos Cursos da
FACIN
Bacharelado em SI
Jornada Acadmica - FACIN - PUC - Arquitetura de Software 31
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 32
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 33
Consideraes Finais
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 34
Arquitetura de software:
Estilos Arquiteturais
Padres Arquiteturais
Arquiteturas orientadas a servios (SOA), componentes
Linguagens de Descrio Arquitetural (ADLs)
Apoio diferentes fases do processo de desenvolvimento de software
papis especficos
No existe uma formalizao quanto a sua representao, exceto por meio
das ADLS
Forte nfase atual nas arquiteturas orientadas a servios (SOA) e Camadas
Tendncia: servios disponibilizados atravs de Cloud Computing
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 35
Referncias
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 36
CLEMENTS, P., BACHMANN, F., BASS, L., et al., 2002a, Documenting Software
Architectures: Views and Beyond, New York, Addison-Wesley
GARLAN, D., 2000, "Software Architecture: a Roadmap". In: International Conference
on Software engineering: Future of SE Track, pp. 91-101, Limerick, Ireland.
KRUCHTEN, P., 1995, "The 4+1 View Model of Architecture", IEEE Software, v. 12, n.
6 (November), pp. 42-50
MENDES, A., 2002, Arquitetura de Software: desenvolvimento orientado a arquitetura, Rio
de Janeiro, Editora Campus.
SHAW, M., GARLAN, D., 1996, Software Architecture: Perspectives on an Emerging
Discipline, New Jersey, Prentice-Hall.
FOWLER, M. Padres de arquitetura de aplicaes corporativas .Porto Alegre:
Bookmann, 2008, 493p.
GASEVIC, D. Model driven architecture and ontology development. New York (NY):
Springer, c2006. 311 p.
BRAUDE, E. Projeto de software : da programao arquitetura : uma abordagem
baseada em java. Porto Alegre : Bookman, 2005. 619 p.
Referncias da WEB
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010 37
http://www.sei.cmu.edu/architecture/
http://www.oracle.com/bea/index.html
http://www.omg.org/mda/
Conferncias Nacionais e
Internacionais
SBCARS - IV Brazilian Symposium on Components, Software
Architecture and Software Reuse - http://wiki.dcc.ufba.br/CBSOFT/
4th European Conference on Software Architecture
http://www.ecsa2010.org/
Models Conference - http://models2010.ifi.uio.no/
Profa. Ana Paula Terra Bacelo
Contato: ana.bacelo@pucrs.br
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010
Obrigado!

Você também pode gostar