Você está na página 1de 38

Jornada Acadmica FACIN

25 a 27 de agosto de 2010

Arquitetura de Software:
conceitos e tendncias
Prof. Dra. Ana Paula Terra Bacelo
ana.bacelo@pucrs.br - FACIN/PUCRS

Agenda

Motivao
Arquitetura de Software (AS): o que ?
Estilos de Arquiteturas de Software

Linguagens de Descrio Arquitetural (ADL)


Estilos X Linguagens X Padres Arquiteturais
Abordagens de Desenvolvimento baseado em Arquitetura:

Camadas (Layered-based Architecture)


SOA (Service Oriented Architecture)
CBD (Component-based Development)

Model-Driven Architecture- MDA (Arquitetura orientada a modelos)

Arquitetura de Software e os currculos do Bacharelado em


CC, SI e EC
Consideraes Finais
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software

Motivao

Engenharia de Software

Ciclo de vida de um produto

Modelo
Processo
Unificado
ModeloCascata
Espiral

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Por que usar processos de desenvolvimento


arquitetura de software?

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

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Processos de Desenvolvimento e AS
Desenvolvimento Incremental

Processo Genrico de Desenvolvimento de Software - Projeto

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Arquitetura de Software: o que ?

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).
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Arquitetura de Software: o que ?

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).
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Arquitetura de Software: o que ?


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.
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Papel do Arquiteto de Software

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

Estilos Arquiteturais,
Padres Arquiteturais e
Linguagens de Descrio
Arquitetural

10

Jornada Acadmica - FACIN - PUCRS Arquitetura de Software 25/8/2010

Estilos Arquiteturais

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
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

11

Estilo Pipe-and-Filter

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
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

12

Estilo Arquitetural em Camadas

Componentes so alocados a camadas que controlam a


interao
Cada componente se comunica com os das camadas
vizinhas

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

13

Exemplo: sistema de gerenciamento de


verses

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

14

Camadas: vantagens e desvantagens

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

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

15

Padro Arquitetural

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

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

16

Exemplo de Padro Arquitetural: MVC

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
Entrada
USR

Control
Interao do usurio
com Disp. Entrada

mensagens de interface

Mensagens de
modificaes
de estado para
dependentes

View
Exibio e Interao
entre vises

Mensagens de
consulta e alterao
do modelo
Model

sadas de
apresentao

Mensagens de
modificaes de
estado para
dependentes

Estado e Comportamento
do Domnio da Aplicao
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

17

Arquiteturas Orientadas a Servios

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

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

18

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

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
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

21

ADLS

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].

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

22

Exemplo de ADL

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

23

Exemplo de ADL - Linguagem C2


Componentes

Conectores

Configuraes

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

24

Desenvolvimento de software
orientado a arquitetura

25

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

MDA Model Driven Architecture


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
Jornada Acadmica - FACIN - PUC - Arquitetura de Software

26

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

27

Model Driven Architecture

Exemplo de Transformao PIM PSM (EJBComponents)


<< component >>
<< EJBEntityBeanComponent >>
ClienteBean

Cliente
- nome : String
- endereco : String

<< EJBEntityBean >>


ClienteBean
-idCliente:String
-nome:String
-endereco:String
#entityContext:EntityContext
+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

ClienteLocalHome
<< EJBHomeInterface >>
+create():ClienteLocal
+findByPrimaryKey(...):...

ClienteLocal
<< EJBLocalInterface >>
+getNome():String
+setNome(nome:String):void
+getEndereco():String
+setEndereco(endereco:String):void

ClientePK
-idCliente:String
+hashCode():int
+equals(other:Object):boolean

ClienteHome
<< EJBLocalHomeInterface >>
+create():Cliente
+findByPrimaryKey(...):...

Cliente
<< EJBRemoteInterface >>
+getNome():String
+setNome(nome:String):void
+getEndereco():String
+setEndereco(endereco:String):void

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

28

Model Driven Architecture

Exemplo de Transformao PSM Cdigo fonte (Java)

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

29

Arquitetura de Software e os
Currculos dos Cursos da
FACIN

30

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

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

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

34

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

35

Referncias

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.
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

36

Referncias da WEB

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/
Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

37

Obrigado!
Profa. Ana Paula Terra Bacelo
Contato: ana.bacelo@pucrs.br

Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 25/8/2010

Você também pode gostar