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


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


Jornada Acadmica - FACIN - PUCRS - Arquitetura de Software 2

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 6

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 7

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 8

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

View
Exibio e Interao entre vises

sadas de apresentao

Mensagens de modificaes de estado para dependentes

Mensagens de consulta e alterao do modelo Model


Estado e Comportamento do Domnio da Aplicao

Mensagens de modificaes de estado para dependentes

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 Cliente << EJBRemoteInterface >> +getNome():String +setNome(nome:String):void +getEndereco():String +setEndereco(endereco:String):void

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

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