arquitetura de sistemas
TRANSCRIPT
-
7/28/2019 Arquitetura de Sistemas
1/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 SistemaEstilo que orienta o desenvolvimento e a evoluo do software
Funcionalidade do software
Outras consideraes : reuso, desempenho, escalabilidade
-
7/28/2019 Arquitetura de Sistemas
2/45
Arquitetura de um Sistema
Definio: Representa a estrutura esttica ecomportamental de um sistema, compreendendo os
servios do sistema, realizados pelos componentes desoftware, que rodam nos processadores disponveis
Est associada a detalhes internos do software namedida que esses detalhes manifestam-se
externamenteNo pode ser representada por um simplesdiagrama: multifacetada
-
7/28/2019 Arquitetura de Sistemas
3/45
Est associada a:Uso
Funcionalidade
Desempenho
Resilincia
Reuso
Compreendibilidade
EconomiaRestries e compromissostecnolgicos
Esttica
Arquitetura de um Sistema
-
7/28/2019 Arquitetura de Sistemas
4/45
Todo sistema j criado tem sua
Arquitetura
Ela existe independente do seuconhecimento pelo projetista de sistemas
-
7/28/2019 Arquitetura de Sistemas
5/45
O Por Qu da Arquitetura
Uma abordagem adhoc leva a sistemas difceis de mudar ouadaptar
Decomposio de sistemas em partes menores torna o softwaremais 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 aadministrao do sistema
-
7/28/2019 Arquitetura de Sistemas
6/45
Conceitos Bsicos da Arquitetura
duma Aplicao Corporativa
Decomposio
Componentes
Frameworks
Patterns ( Padres )
Nvelamento
Camadas ( Tiers )
-
7/28/2019 Arquitetura de Sistemas
7/45
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 diferentespartes do sistema, de forma a facilitar a sua iterao
Facilita a distribuio do software atravs de mltiplosprocessadores
Prov uma partio natural das tarefas de desenvolvimento e facilitaa distribuio das tarefas em equipes grandes
-
7/28/2019 Arquitetura de Sistemas
8/45
Decomposio com a UMLPacotes
Subsistemas
Mdulos
-
7/28/2019 Arquitetura de Sistemas
9/45
Componentes
Unidade coesa de software que prov um conjunto relacionado deservios e funes
til somente no contexto de um modelo padro( CORBA, EJB, DCOM )
Infraestrutura bsica para composio einterao do componente
Tem uma interface ( contrato entre o componente e a aplicao )
bem definida que permite a sua interao com outros componentesDebaixo de um mesmo modelo padro e com a mesma interfacepodem ser substitudos
Podem conter outros componentes
-
7/28/2019 Arquitetura de Sistemas
10/45
Por que usar componentes
Em relao ao software tradicional so maisfceis de manter e modificar
Tem o potencial de melhorar a produtividadecom o reuso e componentes pr-fabricados
Desenvolvimento de aplicaes mais flexveis
Podem ser comprados e vendidos na medidaque existir um mercado consolidado nesta rea
Facilitam a partio mais natural do softwareem unidades coesas
-
7/28/2019 Arquitetura de Sistemas
11/45
Granulao dos Componentes
Componentes de alta granularidade / Subsistemas de altonvel
Devem ter poucas dependncias, bem definidas
Disponibilizam capacidade de negcios discretas ecomplexas
Ex.: Mdulo de Controle de Estoques
Componentes de baixa granularidade
Comparvel com objetos tradicionais
Tem maior nmero de dependncias
Ex.: Java Beans
-
7/28/2019 Arquitetura de Sistemas
12/45
Componentes em UMLCom suas interfaces
Com seu comportamentoInterno
Diagrama de Atividades
Diagrama de Estado
Componente como um:
subsistema
mdulo executvel
-
7/28/2019 Arquitetura de Sistemas
13/45
Framework
Qualquer poro pr-definida de softwaredesenvolvido e testado para ser reusado em vriosprojetos de desenvolvimento de aplicaes numdomnio especfico
Tipo de micro arquitetura, abrangendo um conjuntode padres que trabalham em conjunto pararesolver um problema bsico, num domnio comum
Permite a especificao, agrupamento e reuso deelementos para se construir efetivamente algumsistema
-
7/28/2019 Arquitetura de Sistemas
14/45
Framework na UML
Estereotipo de
Pacote
Contendo
ColaboraesDiagramas
-
7/28/2019 Arquitetura de Sistemas
15/45
FrameworkModo de Utilizao
BibliotecaConjunto 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 prpriaextenso
-
7/28/2019 Arquitetura de Sistemas
16/45
Padres ( Patterns )
Soluo em um determinado contexto, que foiobtida atravs de experincia e se mostroueficaz para resolver um problema bsiconessa rea.
Utilidade
Capta conhecimento comprovado obtido atravs de anos deexperincia
Ajuda na soluo de problemas complexos encontrados emsituaes similares
Favorece a comunicao na equipe, provendo contexto bsicopara discusses
-
7/28/2019 Arquitetura de Sistemas
17/45
Padro MVC ( Design )
Como separar os objetos de entidade
da aplicao ( Model ) da maneiracomo estes so apresentados para o
usurio ( View ) e de como o usurio
faz o controle sobre os mesmos (
Controller )
Exemplo
-
7/28/2019 Arquitetura de Sistemas
18/45
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 negcioque governam o acesso e a atualizao desses dados
-
7/28/2019 Arquitetura de Sistemas
19/45
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
-
7/28/2019 Arquitetura de Sistemas
20/45
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
-
7/28/2019 Arquitetura de Sistemas
21/45
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
-
7/28/2019 Arquitetura de Sistemas
22/45
Dinmica do sistema em UML
-
7/28/2019 Arquitetura de Sistemas
23/45
Classes Gerais de Padres
RefernciaAnlise ( Negcios )
Arquitetnicos
Projeto ( Design )De Cdigo
Nvel deAbstrao
+
-
-
7/28/2019 Arquitetura de Sistemas
24/45
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 deorganizao
Telecomunicaes
Governo
Bancos
Tcnica
SOAMDA
-
7/28/2019 Arquitetura de Sistemas
25/45
Padres de Anlise
Exemplo:
Hierarquia de umaOrganizao
Modelos do domnio de sistemas ( contas ) emcontextos especficos ( finanas )
Repositrio - Fowler
http://www.martinfowler.com/ap2/index.htmlhttp://www.martinfowler.com/ap2/index.htmlhttp://www.martinfowler.com/ap2/index.htmlhttp://www.martinfowler.com/ap2/index.htmlhttp://www.martinfowler.com/ap2/index.html -
7/28/2019 Arquitetura de Sistemas
26/45
Padres Arquitetnicos
Trata da estrutura dos sistemas , seuscomponentes, ambientes de processamento ecomo eles se relacionam entre si
Exemplo:
E-Business Patterns ( IBM )
http://www-106.ibm.com/developerworks/patterns/http://www-106.ibm.com/developerworks/patterns/http://www-106.ibm.com/developerworks/patterns/http://www-106.ibm.com/developerworks/patterns/ -
7/28/2019 Arquitetura de Sistemas
27/45
Padro de Aplicao Directly Integrated Single Chanel
para o Padro de Negcios Self-Service
-
7/28/2019 Arquitetura de Sistemas
28/45
Pattern Runtime para o Pattern de AplicaoDirect Integrated Single Chanel
-
7/28/2019 Arquitetura de Sistemas
29/45
Mapeamento de produtos Windows 2000 para o Patternde Aplicao Direct Integrated Single Chanel
-
7/28/2019 Arquitetura de Sistemas
30/45
Padres de Design
Usados a nvel de classes e objetos
Tipos:
De Criao: solues para configurao einicializao do design
Estrutural: estrutura de modo especfico asinterfaces e as relaes das respectivas classes
Comportamental: identifica caminhos nos quaisum grupo de classes interage com os demais,para alcanar um certo comportamento
Catlogo JavaPatterns - Sun
http://java.sun.com/blueprints/patterns/http://java.sun.com/blueprints/patterns/http://java.sun.com/blueprints/patterns/http://java.sun.com/blueprints/patterns/ -
7/28/2019 Arquitetura de Sistemas
31/45
Pattern de Criao
Exemplo
Pattern Singleton
Garante que uma classe tenha somente umainstncia e prov um ponto global de acesso a ela
-
7/28/2019 Arquitetura de Sistemas
32/45
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 )
-
7/28/2019 Arquitetura de Sistemas
33/45
Pattern Comportamental
Exemplo: Pattern Subject-Observer
Uma pessoa ( Observer ) tem interesse em certo produto ( Subject ). Elase registra esse interesse no sistema do fabricante, visando receberatualizaes ( update ) sobre o produto.
Quando o produto atualizado os Observer recebem notificaes damudana. Os Observer individualmente podem consultar o Subjectespecfico para saber detalhes.
EspecificaoComportamental
-
7/28/2019 Arquitetura de Sistemas
34/45
Patterns: Representao em UML
Uso de Colaborao: conjunto de objetos e seusvnculos, que interagem num certo contexto, paraimplementar certa estrutura ( Diagrama de Classes ) oucomportamento ( Diagrama de Interao ou Estados )
-
7/28/2019 Arquitetura de Sistemas
35/45
Pattern Subject-Observer
Especificao Estrutural
-
7/28/2019 Arquitetura de Sistemas
36/45
Nvelamento ( Camadas )
Pattern para decomposioTratar complexidade
Partio lgica de sistemas( subsistemas, mdulos )
Abstrai tipos especficos de funcionalidades (camadas funcionais )
Prov limites conceituais ( entre conjuntos deservio )
Agrupa, separa, restringe o uso de itens dosistema
-
7/28/2019 Arquitetura de Sistemas
37/45
Tipos de Nivelamento
Por Responsabilidades Camadas
Distribuio do sistema em diversos processoscolocados em mltiplos processadores ou num nico
Ex.: Arquitetura Cliente-Servidor
Por Reuso
Desenvolvimento do sistema de forma que os diversosnveis prestam servios aos outros nveis
Ex.:
Nvel de fornecimento de informaes ao usurio (Apresentao )
Nvel de servios gerais: log, tratamento de erros
-
7/28/2019 Arquitetura de Sistemas
38/45
Camadas ( tiers ) da Plataforma J2EE
Camadas
Componentes
Servios
-
7/28/2019 Arquitetura de Sistemas
39/45
Caractersticas Bsicas
Cada camada prov servios para as outras camadas
Existe baixo acoplamento entre as camadasO relacionamento entre as camadas hierrquico por natureza
Cada camada pode contar com a camada logo abaixo, no aocontrrio
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 sistemaoperacional ( servios bsicos )
Intermedirias: so a base para se construir diversos sistemas comcapacidade similar ( servios gerais )
Superiores: voltadas para as peculariedades do usurio
-
7/28/2019 Arquitetura de Sistemas
40/45
Nivelamento em UML
ArquiteturaNivelada
-
7/28/2019 Arquitetura de Sistemas
41/45
Arquitetura J2EE multi-camadas
Camadas
Cliente: interao do usurio
Apresentao: resultados das consultas de negcios
Negcios: principais regras de negcios
Dados: interface com o armazenamento dos dadospersistentes
-
7/28/2019 Arquitetura de Sistemas
42/45
Colocando tudo Junto
O que vem primeiro ?
Arquitetura do sistema
Anlise do sistema
Processo Interativo
Ao requisitos so entradas
importantes para se definir aarquitetura
Na medida que se trabalha naarquitetura v-se a necessidadede se ajustar ou clarear os
requisitos
Definir a Arquitetura muito mais um processoevolutivo
Ela toma forma na medida que as decises sotomadas considerando-se os requisitosespecficos e os compromissos do sistema
-
7/28/2019 Arquitetura de Sistemas
43/45
-
7/28/2019 Arquitetura de Sistemas
44/45
-
7/28/2019 Arquitetura de Sistemas
45/45