Você está na página 1de 45

Arquitetura de Sistemas

Envolve os seguintes aspectos


Composio / Decomposio do Sistema ( Subsistemas / Mdulos )

Componentes e a Interao entre eles


Nveis / Camadas e a Interao entre eles ( Ordem / Estrutura ) Organizao das partes fsicas do software a serem implementadas

Restries do software ( naturais ou auto-impostas )


Descrio geral do software Estrutura Esttica / Dinmica de um Sistema Estilo que orienta o desenvolvimento e a evoluo do software Funcionalidade do software Outras consideraes : reuso, desempenho, escalabilidade

Arquitetura de um Sistema

Definio: Representa a estrutura esttica e comportamental de um sistema, compreendendo os servios do sistema, realizados pelos componentes de software, que rodam nos processadores disponveis Est associada a detalhes internos do software na medida que esses detalhes manifestam-se externamente No pode ser representada por um simples diagrama: multifacetada

Arquitetura de um Sistema
Est associada a:
Uso
Funcionalidade Desempenho

Resilincia
Reuso Compreendibilidade Economia Restries e compromissos tecnolgicos Esttica

Todo sistema j criado tem sua Arquitetura

Ela existe independente do seu conhecimento pelo projetista de sistemas

O Por Qu da Arquitetura
Uma abordagem adhoc leva a sistemas difceis de mudar ou adaptar Decomposio de sistemas em partes menores torna o software mais fcil de entender, administrar, desenvolver, manter Auxilia no desenvolvimento baseado em componentes Auxilia desde o incio na administrao do desempenho Leva a um reuso melhor Influencia a segurana, a testabilidade, a manutenbilidade e a administrao do sistema

Conceitos Bsicos da Arquitetura duma Aplicao Corporativa

Decomposio

Componentes
Frameworks Patterns ( Padres )

Nvelamento
Camadas ( Tiers )

Decomposio

Particionamento do sistema em partes menores, lgicas Que tornam fcil a administrao de sua complexidade Auxilia a definio e descrio das interfaces entre as diferentes partes do sistema, de forma a facilitar a sua iterao Facilita a distribuio do software atravs de mltiplos processadores Prov uma partio natural das tarefas de desenvolvimento e facilita a distribuio das tarefas em equipes grandes

Decomposio com a UML Pacotes Subsistemas Mdulos

Componentes
Unidade coesa de software que prov um conjunto relacionado de servios e funes til somente no contexto de um modelo padro ( CORBA, EJB, DCOM ) Infraestrutura bsica para composio e interao do componente

Tem uma interface ( contrato entre o componente e a aplicao ) bem definida que permite a sua interao com outros componentes

Debaixo de um mesmo modelo padro e com a mesma interface podem ser substitudos
Podem conter outros componentes

Por que usar componentes

Em relao ao software tradicional so mais fceis de manter e modificar Tem o potencial de melhorar a produtividade com o reuso e componentes pr-fabricados Desenvolvimento de aplicaes mais flexveis Podem ser comprados e vendidos na medida que existir um mercado consolidado nesta rea Facilitam a partio mais natural do software em unidades coesas

Granulao dos Componentes


Componentes de alta granularidade / Subsistemas de alto nvel Devem ter poucas dependncias, bem definidas Disponibilizam capacidade de negcios discretas e complexas

Ex.: Mdulo de Controle de Estoques


Componentes de baixa granularidade Comparvel com objetos tradicionais Tem maior nmero de dependncias Ex.: Java Beans

Componentes em UML

Com suas interfaces Com seu comportamento Interno

Diagrama de Atividades
Diagrama de Estado

Componente como um:


subsistema mdulo executvel

Framework
Qualquer poro pr-definida de software desenvolvido e testado para ser reusado em vrios projetos de desenvolvimento de aplicaes num domnio especfico

Tipo de micro arquitetura, abrangendo um conjunto de padres que trabalham em conjunto para resolver um problema bsico, num domnio comum
Permite a especificao, agrupamento e reuso de elementos para se construir efetivamente algum sistema

Framework na UML
Estereotipo de Pacote

Contendo Colaboraes

Diagramas

Framework Modo de Utilizao


Biblioteca Conjunto de componentes reusveis Gabarito Base para novas aplicaes Desenvolvimento de um Framework ser simples de se entender prover documentao adequada Identificar mecanismos concretos de sua prpria extenso

Padres ( Patterns )

Soluo em um determinado contexto, que foi obtida atravs de experincia e se mostrou eficaz para resolver um problema bsico nessa rea. Utilidade
Capta conhecimento comprovado obtido atravs de anos de experincia Ajuda na soluo de problemas complexos encontrados em situaes similares Favorece a comunicao na equipe, provendo contexto bsico para discusses

Exemplo

Padro MVC ( Design )


Como separar os objetos de entidade da aplicao ( Model ) da maneira como estes so apresentados para o usurio ( View ) e de como o usurio faz o controle sobre os mesmos ( Controller )

Model
Sabe tudo sobre: Os dados persistentes que devero ser mostrados

As operaes que sero aplicadas para transformar os objetos


Sabe nada sobre: As interfaces do usurio Como os dados sero mostrados As aes das interfaces usadas para manipular os dados
Representa os dados da aplicao e as regras de negcio que governam o acesso e a atualizao desses dados

View
Refere-se ao objeto Model Dispara as operaes de consulta do Model para obter os dados e visualiz-los Define como os dados sero visualizados pelo usurio Mantm consistncia na apresentao dos dados quando o Model muda

Controller

Sincroniza as aes do View com as aes realizadas pelo Model


Trabalha somente com sinais e no com os dados da aplicao

Sabe os meios fsicos pelos quais os usurios manipulam os dados no Model

Vantagens da utilizao do padro MVC

Mltiplos Views utilizando um mesmo Model Suporte fcil para novos tipos de usurio do sistema Projeto mais bem definido e modular Facilidade de ampliao do sistema Utilizao em sistemas distribudos

Dinmica do sistema em UML

Classes Gerais de Padres

Referncia

Anlise ( Negcios )
Arquitetnicos Projeto ( Design )

+
Nvel de Abstrao

De Cdigo

Pattern Arquiteturas de Referncia


Uma arquitetura geral e abstrata que pode ser instanciada para situaes especficas: Completada, detalhada Parametrizada, adaptada Extendida, selecionada

Relacionada um certo tipo de organizao Telecomunicaes Governo Bancos

Tcnica SOA

MDA

Padres de Anlise

Repositrio - Fowler

Exemplo: Hierarquia de uma Organizao

Modelos do domnio de sistemas ( contas ) em contextos especficos ( finanas )

Padres Arquitetnicos Trata da estrutura dos sistemas , seus componentes, ambientes de processamento e como eles se relacionam entre si

Exemplo: E-Business Patterns ( IBM )

Padro de Aplicao Directly Integrated Single Chanel para o Padro de Negcios Self-Service

Pattern Runtime para o Pattern de Aplicao Direct Integrated Single Chanel

Mapeamento de produtos Windows 2000 para o Pattern de Aplicao Direct Integrated Single Chanel

Padres de Design
Usados a nvel de classes e objetos

Catlogo Java Patterns - Sun

Tipos: De Criao: solues para configurao e inicializao do design Estrutural: estrutura de modo especfico as interfaces e as relaes das respectivas classes Comportamental: identifica caminhos nos quais um grupo de classes interage com os demais, para alcanar um certo comportamento

Pattern de Criao
Exemplo

Pattern Singleton Garante que uma classe tenha somente uma instncia e prov um ponto global de acesso a ela

Pattern Estrutural
Exemplo

Pattern Proxy O objeto Proxy prov um mecanismo indireto de acesso a outro objeto ( RealSubject ). Os dois objetos trabalham integrados atravs de uma mesma interface ( Subject ).

Vantagem: acesso mais fcil ao sistema ( atravs de Proxy ) quando existem restries ( por exemplo de segurana )

Pattern Comportamental
Exemplo: Pattern Subject-Observer

Uma pessoa ( Observer ) tem interesse em certo produto ( Subject ). Ela se registra esse interesse no sistema do fabricante, visando receber atualizaes ( update ) sobre o produto. Quando o produto atualizado os Observer recebem notificaes da mudana. Os Observer individualmente podem consultar o Subject especfico para saber detalhes.

Especificao Comportamental

Patterns: Representao em UML

Uso de Colaborao: conjunto de objetos e seus vnculos, que interagem num certo contexto, para implementar certa estrutura ( Diagrama de Classes ) ou comportamento ( Diagrama de Interao ou Estados )

Pattern Subject-Observer

Especificao Estrutural

Nvelamento ( Camadas )
Pattern para decomposio Tratar complexidade Partio lgica de sistemas ( subsistemas, mdulos )

Abstrai tipos especficos de funcionalidades ( camadas funcionais ) Prov limites conceituais ( entre conjuntos de servio ) Agrupa, separa, restringe o uso de itens do sistema

Tipos de Nivelamento

Por Responsabilidades

Camadas

Distribuio do sistema em diversos processos colocados em mltiplos processadores ou num nico Ex.: Arquitetura Cliente-Servidor

Por Reuso
Desenvolvimento do sistema de forma que os diversos nveis prestam servios aos outros nveis Ex.: Nvel de fornecimento de informaes ao usurio ( Apresentao ) Nvel de servios gerais: log, tratamento de erros

Camadas ( tiers ) da Plataforma J2EE

Camadas Componentes Servios

Caractersticas Bsicas
Cada camada prov servios para as outras camadas Existe baixo acoplamento entre as camadas O relacionamento entre as camadas hierrquico por natureza Cada camada pode contar com a camada logo abaixo, no ao contrrio No deve existir dependncia entre camadas que no sejam vizinhas

Camadas podem ter suas sub-camadas


Normalmente as camadas Mais baixas: so mais fortemente ligadas ao hardware e ao sistema operacional ( servios bsicos ) Intermedirias: so a base para se construir diversos sistemas com capacidade similar ( servios gerais ) Superiores: voltadas para as peculariedades do usurio

Nivelamento em UML

Arquitetura Nivelada

Camadas Cliente: interao do usurio

Apresentao: resultados das consultas de negcios


Negcios: principais regras de negcios Dados: interface com o armazenamento dos dados persistentes

Arquitetura J2EE multi-camadas

Colocando tudo Junto


O que vem primeiro ? Arquitetura do sistema

Processo Interativo Ao requisitos so entradas importantes para se definir a arquitetura

Anlise do sistema

Na medida que se trabalha na arquitetura v-se a necessidade de se ajustar ou clarear os requisitos

Definir a Arquitetura muito mais um processo evolutivo Ela toma forma na medida que as decises so tomadas considerando-se os requisitos especficos e os compromissos do sistema