Você está na página 1de 5

4/8/11

1
1
Arquitetura de Software
Texto complementar para este assunto:
Len Bass, Paul Clements, Rick Kazman
Software Architecture in Practice, 2
nd
Edition
Captulos 1, 2 e 3
2
Programao Modular
3
Implementao
Programao Modular
4
Implementao
Interface
Programao Modular
5
Implementao
Interface
Provida
Interface
Requerida
Programao Modular
6
Implementao
Interface
Provida
Interface
Requerida
Visvel
apenas
dentro do
Mdulo
Programao Modular
4/8/11
2
7
Benefcios Esperados da
Programao Modular [Parnas, 1972]
(1) Tempo de desenvolvimento encurtado, j que
grupos de desenvolvimento separados podem
trabalhar em mdulos distintos, com pouca
necessidade de comunicao
(2) Possibilidade de aplicar mudanas drsticas a
um mdulo sem a necessidade de mudar outros
(3) Possibilidade de estudar o sistema olhando para
um mdulo de cada vez
! Interaes entre mdulos
8
! A estrutura de um sistema de software, que
engloba
componentes de software;
suas propriedades visveis externamente;
e os relacionamentos e interaes entre eles
! As primeiras decises tomadas no projeto de
um sistema
As mais importantes!
! Uma arquitetura de software composta por
componentes e conectores
Arquitetura de Software
9
Clientes web
(Mozilla, IE, etc.)
Servidor WEB
Rede
Local
Banco de Dados
Relacional
Internet
Uma Arquitetura em Camadas
10
Componente Componente Componente
Clientes web
(Mozilla, IE, etc.)
Servidor WEB
Internet
Rede
Local
Banco de Dados
Relacional
Uma Arquitetura em Camadas
11
Banco de Dados
Relacional
Conector
(Ponte
SQL)
Conector
(HTTP,
RMI)
Clientes web
(Mozilla, IE, etc.)
Servidor WEB
Rede
Local
Internet
Uma Arquitetura em Camadas
12
Projeto Arquitetural
! O processo de projeto que estabelece
Os subsistemas que constituem um sistema
A maneira como esses componentes interagem
! Incluindo algumas decises tecnolgicas
Ex. Plataforma de componentes, SGBD
! A sada desse processo de projeto uma
descrio da arquitetura de software.
! A arquitetura de software lida com os
requisitos no-funcionais do sistema
4/8/11
3
13
Projeto Arquitetural
! o primeiro estgio do projeto do sistema
! Representa a ligao entre os processos de
especificao e de projeto
! freqentemente conduzido em paralelo com
algumas atividades de especificao
s vezes junto com a elicitao de requisitos
! Envolve a identificao dos componentes
principais do sistema e sua interao
Componentes => unidades de modularidade
14
Vantagens de uma Arquitetura Explcita
! Comunicao com os stakeholders
A arquitetura pode ser usada como um foco de
discusso pelos stakeholders do sistema.
! Anlise de sistema
Se h possibilidade de o sistema atender a seus
requisitos de qualidade (no-funcionais)
! Reuso em larga escala
A arquitetura pode ser reusvel em uma variedade
de sistemas
Suas partes tambm!
15
Conflitos de arquitetura
! O uso de componentes de alta granularidade
aprimora o desempenho mas diminui a facilidade
de manuteno
! A introduo de dados redundantes aprimora a
disponibilidade, mas torna a proteo mais difcil
E cria dificuldades para tornar o sistema confivel
em outras partes
! Localizar as funcionalidades crticas de
segurana em poucos locais pode criar gargalos
de desempenho
! Decises de projeto
16
Decises de projeto
! Projeto de arquitetura um processo criativo
Cada sistema envolve diferentes decises/
requisitos/conflitos/restries
Envolve solucionar os problemas representados
pelos requisitos
! Decises de projeto:
Escolhas feitas durante o projeto de um sistema
Afetam sua capacidade de fornecer seu servio
Normalmente resultam em compromissos
importante avaliar as opes existentes
No esto restritas ao projeto arquitetural!
17
Exemplos de Decises de Projeto
! Como representar o mapa em um sistema que traa
rotas percorridas por nibus de modo a minimizar o
trabalho da equipe?
! Como garantir a confiabilidade de um servidor a um
baixo custo?
! Qual a maneira mais eficiente de se construir uma
grade de horrios levando-se em conta as vrias
restries impostas por professores, diretores e regras
departamentais?
! Qual a melhor tecnologia para se construir uma
ferramenta de anlise de programas?
! Como a arquitetura do sistema deve ser documentada?
! E nos projetos de vocs?
18
Caractersticas de um Sistema que
decorrem de sua Arquitetura
! Desempenho
Localizar operaes crticas e minimizar comunicaes. Usar
componentes de alta ao invs de baixa granularidade.
! Proteo (security)!
Usar uma arquitetura em camadas com itens crticos nas
camadas mais internas.
! Segurana (safety)
Localizar caractersticas crticas de segurana em um pequeno
nmero de subsistemas.
! Disponibilidade
Incluir componentes redundantes e mecanismos para
tolerncia falhas.
! Facilidade de manuteno
Usar componentes facilmente trocveis
4/8/11
4
19
Representao de Arquiteturas
! Arquiteturas so um ativo importante no
desenvolvimento
Podem ser a diferena entre o sucesso e o
fracasso
! Represent-las importante
Torna possvel falar sobre ela
O projeto de arquitetura normalmente expresso
como um diagrama de blocos
! Modelos mais especficos tambm podem ser
desenvolvidos.
20
Sistema de controle robotizado de
empacotamento
21
Diagramas caixa e linha
! Muito abstrato no mostram a natureza dos
relacionamento de componentes, nem suas
propriedades externamente visveis
! Contudo, so teis para comunicao com os
stakeholders e para planejamento de projeto.
! Alternativas:
Notaes formais
Notaes informais mais organizadas
22
Vises Arquiteturais
! A arquitetura de um sistema software
normalmente representada atravs de vrias
vises
! Vises so maneiras diversas de se enxergar
uma mesma arquitetura
Enfocando diferentes aspectos de interesse
Ex.: as vrias plantas de uma casa
! Arquiteturas de software so especificadas
atravs de uma ou mais de suas vises
23
Trs principais elementos:
" agentes de usurio (UA).
" servidores de correio.
" simple mail transfer protocol:
SMTP.
caixa de
correio do usurio
fila de
mensagens
de sada
agente
de
usurio
servidor
de correio
SMTP
SMTP
SMTP
agente
de
usurio
agente
de
usurio
agente
de
usurio
agente
de
usurio
servidor
de correio
servidor
de correio
Correio Eletrnico Viso 1
POP3/IMAP
24
1) Alice usa o UA para compor
uma mensagem para
bob@someschool.edu
2) O UA de Alice envia a
mensagem para o seu
servidor de correio; a
mensagem colocada na
fila de mensagens.
3) O lado cliente do SMTP abre
uma conexo TCP com o
servidor de correio de Bob.
4) O cliente SMTP envia a
mensagem de Alice atravs da
conexo TCP.
5) O servidor de correio de Bob
coloca a mensagem na caixa de
entrada de Bob.
6) Bob chama o seu UA para ler a
mensagem.
user
agent
mail
server
mail
server
user
agent
1
2
3
4
5
6
Correio Eletrnico Viso 2
4/8/11
5
25
Fonte: Axigen Mail Server Documentation - Mail Server Architecture.
Consultado em 24 de maro de 2008
http://www.axigen.com/docs/en/Mail-Server-Architecture_85.html
Correio Eletrnico Viso 3
26
Um Exemplo de Sistema de
Controle de Trfego Areo
M&C Console
G.A.M
Local/Group A.M.
ATC Console
A.S.O.U
O/S E. A. S.
Network Operating System
Processor I/O Devices
Attachments
Excees
Excees
Excees
Excees
Excees
Fonte: Bass, Clements, and Kazman, Software
Architecture in Practice, 2
nd
Edition, 2003.
Excees
27
Sobre Vises
! Algumas so genricas
Lgica
De interao
Fsica ou de Alocao
! As trs acima devero ser entregues no
projeto da disciplina
! Outras servem a fins especficos
Fluxo de excees
28
Reuso de arquitetura
! Sistemas do mesmo domnio freqentemente
tm arquiteturas similares que refletem os
conceitos de domnio
Resultam em decises de projeto similares
! Linhas do produto de software so construdas
em torno de um ncleo de arquitetura
Variantes satisfazem requisitos de cada cliente.
! Reuso de arquiteturas capturado atravs da
noo de padres ou estilos arquiteturais