Escolar Documentos
Profissional Documentos
Cultura Documentos
Agenda
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:
Motivao
Engenharia 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
Processos de Desenvolvimento e AS
Desenvolvimento Incremental
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
A arquitetura de um software envolve o conjunto de decises que definem a organizao do sistema objetivando:
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
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.
10
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:
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
Componentes so alocados a camadas que controlam a interao Cada componente se comunica com os das camadas vizinhas
13
14
Vantagens
Desvantagens
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
16
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
17
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
18
19
20
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:
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].
22
Exemplo de ADL
23
Conectores
Configuraes
24
25
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
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
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
ClientePK
-idCliente:String +hashCode():int +equals(other:Object):boolean Cliente << EJBRemoteInterface >> +getNome():String +setNome(nome:String):void +getEndereco():String +setEndereco(endereco:String):void
28
29
30
Bacharelado em SI
31
32
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
34
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
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