Você está na página 1de 38

EPUSP/PCS Selma S. S.

Melnikoff
Projeto de Software
Projeto de Arquitetura de Software
Selma Shin Shimizu Melnikoff
EPUSP/PCS/LTS
2013
EPUSP/PCS Selma S. S. Melnikoff
Atividades Tpicas de Processo de
Software
1. Levantamento de requisitos
2. Anlise de requisitos
3. Projeto
4. Implementao
5. Testes
6. Implantao
EPUSP/PCS Selma S. S. Melnikoff
Principais Tpicos sobre Projeto
Conceitos sobre projeto de software
Projeto de arquitetura de software
Projeto de interface homem-computador
Projeto de dados
Projeto orientado a objetos

EPUSP/PCS Selma S. S. Melnikoff
Objetivos da Aula
Apresentar conceitos relacionados com
projeto de arquitetura de software.
Apresentar os principais estilos de
arquitetura de software.
Apresentar conceitos de padres de
arquitetura.
EPUSP/PCS Selma S. S. Melnikoff
Projeto de Arquitetura
Objetivo: definir um sistema atravs de
Uma organizao das partes do sistema
Componentes de programa e de dados
Dinmica entre estes componentes.
Considera estilo de arquitetura, a estrutura e
as propriedades dos componentes, e o inter-
relacionamento entre todos os componentes
do sistema.
EPUSP/PCS Selma S. S. Melnikoff
O que Arquitetura?
Arquitetura de software a estrutura de um
sistema, constituda de componentes de
software, caractersticas externas visveis
dos componentes e as relaes entre
componentes.
Componente de software: parte do sistema
de software (mdulo de programa, classe,
conjunto de classes banco de dados,
middleware, etc.)
EPUSP/PCS Selma S. S. Melnikoff
Exemplo: Dados
Projeto no nvel de arquitetura
Arquitetura do banco de dados do sistema
Projeto no nvel de componentes
Traduo de objetos de dados em estruturas de
dados
EPUSP/PCS Selma S. S. Melnikoff
Ainda sobre Arquitetura
Arquitetura no software operacional.
uma representao de software que
permite:
Analisar se o projeto atende os requisitos
estabelecidos
Considerar as alternativas de arquiteturas
enquanto as mudanas ainda no so muito
caras
Reduzir o risco associado com a construo de
software
EPUSP/PCS Selma S. S. Melnikoff
Por que Arquitetura Importante?
A representao da arquitetura de software
permite comunicao entre os interessados
no sistema a ser desenvolvido.
A arquitetura evidencia as decises de
projeto que podem causar impactos no
desenvolvimento e no sistema.
A arquitetura fornece uma viso da
estrutura e do funcionamento do sistema.
EPUSP/PCS Selma S. S. Melnikoff
Estilo de Arquitetura
Exemplo na construo civil: edifcio em
estilo colonial
Este estilo de arquitetura caracteriza este
edifcio; distingue de um outro estilo.
Estilo de arquitetura caracteriza o edifcio.
Ainda necessrio definir dimenses,
caractersticas, materiais.
EPUSP/PCS Selma S. S. Melnikoff
Estilos de Arquitetura de Software
Um estilo de arquitetura define
Um conjunto de componentes do sistema (ex.:
base de dados, mdulos computacionais) que
realizam as funes requeridas pelo sistema
Conjunto de conectores que permitem
comunicao, coordenao e cooperao entre
os componentes
Restries sobre a integrao dos componentes
Modelos semnticos que permitem a
compreenso do sistema atravs da anlise das
suas partes constituintes.

EPUSP/PCS Selma S. S. Melnikoff
Estilos de Arquitetura de Software
Estilos de arquitetura de software esto
geralmente associados com mtodos e
representaes especficos de projeto.
Podem tambm estar associados com
classes especficas de sistemas:
Sistemas de tempo real
Compiladores
Sistemas centrados em banco de dados
EPUSP/PCS Selma S. S. Melnikoff
Exemplos de Estilos de Arquitetura
(Pressman)
Arquitetura centrado em dados
Arquitetura de fluxos de dados
Arquitetura de chamada e retorno
Arquitetura em camadas
Arquitetura orientada a objetos

EPUSP/PCS Selma S. S. Melnikoff
Arquitetura Centrado em Dados
cliente
repositrio
central de dados
cliente
cliente
cliente
cliente
cliente
cliente
EPUSP/PCS Selma S. S. Melnikoff
O centro do sistema um repositrio central de
dados (arquivo ou base de dados).
O software cliente acessa o repositrio central
para inserir, excluir, alterar e consultar os dados.
Os clientes so independentes entre si.
Um cliente pode ser alterado ou novo cliente pode
ser inserido no sistema sem afetar os outros
clientes.
O repositrio pode ser passivo ou enviar
notificao quando os dados de interesse de
clientes so alterados (blackboard).
EPUSP/PCS Selma S. S. Melnikoff
Arquitetura de Fluxos de Dados
filtro
filtro
filtro
filtro
filtro
filtro
filtro
filtro
filtro
filtro
pipes
EPUSP/PCS Selma S. S. Melnikoff
Um filtro tem a capacidade de gerar um
conjunto de dados de sada atravs dos
dados recebidos como entrada.
Realiza uma transformao local com
computao incremental.
A produo da sada inicia antes do
consumo total da entrada.
Cada filtro trabalha de forma independente
dos demais filtros; no depende do estado
de outros filtros.
EPUSP/PCS Selma S. S. Melnikoff
Exemplo: compilador
otimizao
gerao
cdigo
anlise
lxica
anlise
semntica
anlise
sinttica
texto
cdigo
otimizado
cdigo
EPUSP/PCS Selma S. S. Melnikoff
Arquitetura de Chamada e Retorno
EPUSP/PCS Selma S. S. Melnikoff
Os componentes apresentam uma estrutura
hierrquica.
O mdulo de nvel superior aciona o
mdulo de nvel inferior.
Aps a execuo do mdulo, o controle
devolvido para o mdulo de nvel superior
(se existir).
EPUSP/PCS Selma S. S. Melnikoff
Aquisio
de dados
Obtm
entrada
L
sensor
Detecta
condies
de alarme
Trata
alarme
Apresenta
display
Gera
sinal de
alarme
Realiza
conexo
Envia
dados
Exemplo: Aquisio
de Dados
EPUSP/PCS Selma S. S. Melnikoff
Arquitetura em Camadas
interface de usurio
aplicao
utilitrios
ncleo
EPUSP/PCS Selma S. S. Melnikoff
As camadas mais internas so mais
prximas do conjunto de instrues da
mquina.
De uma forma geral, os componentes de
uma camada s interagem com componente
de camadas prximas.

EPUSP/PCS Selma S. S. Melnikoff
Arquitetura de Trs Camadas
interface negcio
acesso
aos
dados
IHC
diagrama
de
classes
Data Acess
Objectss
EPUSP/PCS Selma S. S. Melnikoff
Outro Exemplo: Osciloscpio
Interface usurio: interao do
usurio com o osciloscpio
Visualizao: formatao dos
dados de sada
Manipulao: das formas de
onda
Aquisio: digitalizao e
armazenamento de sinal
Entrada sinal: por hardware
interface
usurio
manipulao
entrada sinal
aquisio
visualizao
EPUSP/PCS Selma S. S. Melnikoff
Model-View-Controller (MVC)
O padro Model-View-Controller
constitudo por trs tipos de componentes:
Model, View e Controller
Componente model: encapsula o ncleo de
dados e funcionalidade.
EPUSP/PCS Selma S. S. Melnikoff
Model-View-Controller (MVC)
Componente view:
Apresenta informao ao usurio.
Obtm os dados para apresentao atravs do
componente model.
Podem existir vrios componentes view do
componente model.
EPUSP/PCS Selma S. S. Melnikoff
Model-View-Controller (MVC)
Componente controller:
Est associado a cada componente view.
Recebe entrada em forma de eventos
(movimento ou acionamento do mouse, entrada
do teclado).
Traduz os eventos em solicitao de servios.
Envia as solicitaes aos componentes model
ou view.
O usurio interage com o sistema atravs dos
componentes controller.
EPUSP/PCS Selma S. S. Melnikoff
Exemplo
Sistema de votao: tem uma tabela com os
votos de candidatos e apresenta os dados
atravs de grficos diferentes.
Deve ser possvel incluir outros tipos de
apresentao.
Deve poder ser transportado para
plataformas computacionais diferentes.
EPUSP/PCS Selma S. S. Melnikoff
1: 50%
2: 30%
3: 20%
1
2
3
0
10
20
30
40
50
60
1 2 3
Seqncia1
0
10
20
30
40
50
60
1 2 3
Seqncia1
dados
EPUSP/PCS Selma S. S. Melnikoff
Relao de MVC e Camadas
Model
Camada de negcio
Camada de acesso de dados
View
Camada de interface
Control
Classes de controle da camada de negcio
EPUSP/PCS Selma S. S. Melnikoff
Padro de Arquitetura
Um padro de arquitetura define uma abordagem
especfica para uma caracterstica de
comportamento do sistema (Pressman).
Exemplos
Persistncia
Concorrncia
Distribuio
EPUSP/PCS Selma S. S. Melnikoff
Persistncia
Dados persistentes so armazenados em
bases de dados ou arquivos e podem ser
lidos e alterados posteriormente por outros
processos.
Exemplos de padres:
Sistema de gerenciamento de base de dados
Persistncia no nvel de aplicao (ex.:
processador de texto que gerencia seus
arquivos)
EPUSP/PCS Selma S. S. Melnikoff
Concorrncia
Manipulao de mltiplas tarefas com nico
processador
Exemplos de padro
Gerenciador de processos do sistema
operacional (atravs de primitivas de SO)
Escalonador de tarefas no nvel do aplicativo
(objetos ativos so acionados periodicamente
por escalador de tarefas)
EPUSP/PCS Selma S. S. Melnikoff
Distribuio
Forma como os componentes ou sistemas se
comunicam em ambiente distribudo
Forma como estas entidades se conectam
Natureza da comunicao
Exemplo de padro
Broker: contm informao necessria para
comunicao
Um componente cliente envia mensagem para o
servidor atravs do broker
Sistema de Gerncia de
Lavanderia
EPUSP/PCS Selma S. S. Melnikoff
EPUSP/PCS Selma S. S. Melnikoff
Arquitetura de Trs Camadas
interface negcio
acesso
aos
dados
Componentes
da IHC
diagrama de
classes
desenvolvido
Data Acess
Objectss
EPUSP/PCS Selma S. S. Melnikoff
Resumo
O que arquitetura de software?
Por que organizar um sistema de software
com arquitetura?
O que estilo de arquitetura?
O que padro de arquitetura?

Você também pode gostar