Vous êtes sur la page 1sur 21

24/10/2013

1
Projeto de arquitetura
Engenharia de Software
Reviso: Conceitos de Projeto
Quais so as etapas envolvidas no projeto de software?
Quais so os atributos de qualidade de software?
Explique os seguintes conceitos:
Abstrao
Arquitetura
Padres
Separao por interesses
Modularidade
Encapsulamento de informaes
Independncia funcional
Refinamento
Aspectos
Refatorao
24/10/2013
2
Tpicos
Decises de projeto de arquitetura
Vises de arquitetura
Padres de arquitetura
Arquitetura de aplicaes
Projeto de Arquitetura
o primeiro estgio do processo de projeto de software
Representa a ligao entre a especificao e processos de
design.
Muitas vezes realizadas em paralelo com algumas atividades de
especificao.
como parte do processo de engenharia de requisitos, voc poder
propor uma arquitetura abstrata do sistema
Envolve a identificao dos principais componentes estruturais
de um sistema e os relacionamentos entre eles.
O resultado do processo de projeto de arquitetura um
modelo que descreve como o sistema est organizado em um
conjunto de componentes de comunicao
24/10/2013
3
Projeto de Arquitetura em modelo geis
Geralmente se aceita que um estgio inicial do processo
de desenvolvimento se preocupe com o estabelecimento
de uma arquitetura global do sistema.
O desenvolvimento incremental de arquiteturas
geralmente no bem-sucedido.
Arquitetura de um sistema de controle
robotizado de empacotamento
24/10/2013
4
Representaes da arquitetura
Simples diagramas de blocos informais, mostrando
entidades e relacionamentos, o mtodo mais utilizado
para documentar arquiteturas de software.
representao muito abstrata
Caixas dentro de caixas indicam que o componente foi
decomposto em subcomponentes.
As setas significam que os dados e/ou sinais de controle
so passados de um componente a outro na direo das
setas.
Abstrao da arquitetura
Arquitetura em pequena escala
est preocupada com a arquitetura dos programas individuais.
neste nvel, estamos preocupados com a maneira que um
programa individual decomposto em componentes.
Arquitetura em grande escala
preocupa-se com a arquitetura de sistemas corporativos
complexos que incluem outros sistemas, programas e
componentes do programa.
Estes sistemas esto distribudos por diversos computadores,
que podem ser possudos e geridos por empresas diferentes.
24/10/2013
5
Vantagens de projetar e documentar a
arquitetura de software
Comunicao de stakeholders
Arquitetura pode ser usada como um foco de discusso pelas
partes interessadas do sistema.
Anlise de sistema
O anlise de se o sistema pode atender ou no os requisitos
no-funcionais, como desempenho, confiabilidade e
manutenibilidade.
A arquitetura do sistema a influencia dominante para
determinar se os requisitos no funcionais podem ser
atendidos.
Reuso em larga escala
A arquitetura pode ser reutilizvel atravs de uma variedade
de sistemas.
Uso de modelos de arquitetura
Como forma de facilitar a discusso sobre o projeto do
sistema
A viso de arquitetura de alto nvel de um sistema til para a
comunicao com os stakeholders do sistema e planejamento
de projetos, pois no rica em detalhes.
Os interessados podem se relacionar com ele e entender uma
viso abstrata do sistema. Eles podem, em seguida, discutir o
sistema como um todo, sem serem confundidos pelos detalhes.
Como forma de documentar uma arquitetura que foi
projetada
O objetivo produzir um modelo de sistema completo que
mostra os diferentes componentes de um sistema, suas
interfaces e suas conexes.
24/10/2013
6
O processo de projeto de arquitetura
O projeto de arquitetura um processo criativo.
O projeto de arquitetura depende:
do tipo de sistema a ser desenvolvido
da formao e experincia do arquiteto de sistema
dos requisitos especficos para o sistema.
Decises de projeto de arquitetura
til pensar em projeto de arquitetura como uma srie de
decises, em vez de uma sequencia de atividades
Existe uma arquitetura genrica que possa ser utilizada?
Como o sistema ser distribudo?
Quais estilos de arquitetura podem ser adequados?
Que abordagem ser usada para estruturar o sistema?
Como o sistema ser decomposto em mdulos?
Que estratgia de controle deve ser usada?
Como o projeto de arquitetura ser avaliado?
Como a arquitetura deve ser documentada?
24/10/2013
7
Arquitetura e requisitos no funcionais
Desempenho
Localize as operaes crticas e minimize as comunicaes.
Pode significar o uso de alguns componentes relativamente grandes para
reduzir a comunicao
Proteo
Usar uma arquitetura em camadas com os itens crticos nas camadas
internas.
Segurana
Localize recursos de segurana crtica em um pequeno nmero de
componentes.
Disponibilidade
Incluir componentes redundantes e mecanismos para tolerar defeitos.
Manuteno
Use componentes autocontidos de baixa granularidade que podem ser
rapidamente alterados
Vises da arquitetura
Que vises ou perspectivas so teis ao se projetar e
documentar uma arquitetura de sistema?
Quais notaes devem ser usadas para se descrever
modelos de arquitetura?
Cada modelo mostra apenas uma viso ou perspectiva do
sistema.
Pode mostrar como um sistema decomposto em mdulos,
como os processo de um run-timeinteragem, ou as diferentes
formas como so distribudos os componentes do sistema
atravs de uma rede.
24/10/2013
8
Modelo de viso 4 + 1 de arquitetura de
software (Kruchtem,1995)
Viso logica
Mostra as abstraes fundamentais do sistema como objetos ou
classes de objetos
Viso de processo
Mostra como, no tempo de execuo, o sistema composto de
processo interativos
Viso de desenvolvimento
Mostra como o software decomposto para o desenvolvimento
Viso fsica
Mostra o hardware do sistema e como os componentes de software
so distribudos entre os processadores.
Relacionados com casos de uso ou cenrios (+1)
Reuso de arquiteturas
Sistemas no mesmo domnio, muitas vezes tm
arquiteturas similares que refletem os conceitos do
domnio.
Por exemplo, linhas de produto de aplicaes so
construdas em torno de uma arquitetura de ncleo com
variantes que satisfaam as exigncias especficas dos
clientes.
A arquitetura de um sistema pode ser projetado em
torno de um ou mais padres de arquitetura ou 'estilos'.
24/10/2013
9
Padres de arquitetura
Os padres so uma forma de apresentar,compartilhar e
reusar o conhecimento sobre sistemas de software.
Um padro de arquitetura uma descrio abstrata,
estilizada de boas prticas de projeto, que tem sido
experimentadas e testadas em diferentes ambientes.
Padres devem incluir informaes sobre quando o uso
desse padro e adequado, e seus pontos fortes e fracos.
Padres podem ser representados usando descries de
tabelas e grficos.
O padro Modelo-Viso-Controlador
24/10/2013
10
O padro Modelo-Viso-Controlador
Nome MVC (Modelo-Viso-Controlador)
Descrio Separa a apresentao e a interao dos dados do sistema. O sistema
estruturado em trs componentes lgicos que interagem entre si. O
componente Modelo gerencia o sistema de dados e as operaes
associadas a esses dados. O componente Viso define e gerencia como os
dados so apresentados ao usurio. O componente Controlador gerencia a
interao do usurioe passaessas interaes para a Viso e o Modelo.
Exemplo A figura no prximo slide mostra a arquitetura de um sistema aplicativo
baseado na Internet, organizado pelo uso do padro MVC
Quando usado usado quando existem vrias maneiras de se visualizar e interagir com
dados. Tambm quando so desconhecidos os futuros requisitos de
interao e apresentao de dados.
Vantagem Permite que os dados sejam alterados de forma independente de sua
representao, e vice-versa. Apoia a apresentao dos mesmos dados de
maneira diferentes, com as alteraes feitas em uma representao
aparecendo emtodas elas.
Desvantagens Quando o modelo de dados e as interaes so simples, pode envolver
cdigo adicional e complexidade de cdigo..
Arquitetura de aplicaes Web usando o
padro MVC
24/10/2013
11
Arquitetura em camada
Organiza o sistema em um conjunto de camadas cada uma das
quais fornecem um conjunto de servios.
Cada camada s depende dos recursos e servios oferecidos
pela camada imediatamente abaixo dela.
Apoia o desenvolvimento incremental de componentes em
camadas diferentes.
Enquanto sua interface for inalterada, uma camada pode ser
substituda por outra equivalente.
Uma arquitetura genrica em camadas
24/10/2013
12
O padro de arquitetura em camada.
Nome Arquitetura em camadas
Descrio Organiza o sistema em camadas com a funcionalidade relacionada
associada a cada camada. Uma camada fornece servios acima
dela; assim, os nveis mais baixos de camadas representam os
principais servios suscetveis de seremusados emtodo o sistema.
Exemplo Um modelo em camadas de um sistema para compartilhar
documentos com direitos autorais, em bibliotecas diferentes
mostradono prximo slide.
Quando usado usado na construo de novos recursos em cima de sistemas
existentes; quando o desenvolvimento est espalhado por vrias
equipes, coma responsabilidade de cada equipe emuma camada de
funcionalidade; quando h umrequisitode proteo multinvel.
Vantagens Desde que a interface seja mantida, permite a substituio de
camadas inteiras. Recursos redundantes podem ser fornecidos em
cada camada para aumentar a confianado sistema.
Desvantagens Na prtica, costuma ser difcil proporcionar uma clara separao
entre as camadas, e uma camada de alto nvel pode ter de interagir
diretamente com camadas de baixo nvel, em vez de atravs da
camada imediatamente abaixo dela. O desempenho pode ser um
problema por causo dos mltiplos nveis de interpretao de uma
solicitao de servio, uma vez que so processados em cada
camada.
A arquitetura do sistema LIBSYS
24/10/2013
13
Arquitetura de repositrio
Descreve como um conjunto de componentes que
interagem podem compartilhar dados.
A maioria dos sistemas que usam grandes quantidades de
dados organizada em torno de um banco de dados ou
repositrio compartilhado.
O padro repositrio
Nome Repositrio
Descrio Todos os dados em um sistema so gerenciados em um repositrio
central, acessvel a todos os componentes do sistema. Os
componentes no interagem diretamente, apenas por meio do
repositrio.
Exemplo O prximo slide um exemplo de um IDE em que os componentes
usamumrepositrio de informaes sobre projetos de sistema. Cada
ferramenta de software gera informaes que ficamdisponveis para
uso por outra ferramentas.
Quando usado Voc deve usar esse padro quando tem um sistema no qual
grandes volumes de informaes so gerados e precisam ser
armazenados por um longo tempo. Voc tambm pode us-lo em
sistemas, dirigidos a dados, nos quais a incluso dos dados no
repositriodisparauma ao ou ferramenta.
Vantagens Os componentes podem ser independentes eles no precisam
saber da existncia de outros componentes. As alteraes feitas a
umcomponentes podempropagar-se para todos os outros. Todos os
dados podem ser gerenciados de forma consistente, ps tudo est
emums lugar.
Desvantagens O repositrio um ponto nico de falha, assim, problemas no
repositrio podemafetar todo o sistema. Pode haver ineficincias na
organizao de toda a comunicao atravs do repositrio. Distribuir
o repositrioatravs de vrios computadores pode ser difcil.
24/10/2013
14
Uma arquitetura de repositrio para um IDE
Arquitetura cliente-servidor
Modelo de sistema distribudo que mostra como os
dados e processamento distribudo atravs de uma
srie de componentes.
organizado como um conjunto de servios e servidores
associados e clientes que acessam e usam os servios.
O principais componentes so:
Um conjunto de servidores autnomos que prestam servios
especficos, tais como impresso, gerenciamento de dados, etc.
Um conjunto de clientes que podem chamar os servios
oferecidos pelos servidores.
Uma rede que permite que os clientes acessem servidores.
24/10/2013
15
O padro cliente-servidor
Nome Cliente-servidor
Descrio Em uma arquitetura cliente-servidor, a funcionalidade do sistema
est organizada em servios cada servio prestado por um
servidor. Os clientes so os usurios desses servios e acessam
os servidores para fazer uso deles.
Exemplo O prximo slide um exemplo de uma biblioteca de filmes e
vdeos/DVDs, organizados comoumsistemacliente-servidor.
Quando usado usado quando os dados em um banco de dados compartilhado
precisamser acessados a partir de uma srie de locais. Como os
servidores podemser replicados, tambmpode ser usado quando
a carga emumsistema varivel.
Vantagens A principal vantagemdesse modelo que os servidores podemser
distribudos atravs de uma rede. Afuncionalidade geral pode estar
disponvel para todos os clientes e no precisa ser implementada
paro todos os servios.
Desvantagens Cada servio um ponto nico de falha suscetvel a ataque de
negao de servio ou de falha do servidor. O desempenho, bem
como o sistema, pode ser imprevisvel, pois depende da rede.
Pode haver problemas de gerenciamento se os servidores forem
propriedade de diferentes organizaes.
Uma arquitetura cliente-servidor para uma
biblioteca de filmes.
24/10/2013
16
Arquitetura de duto e filtro
Transformaes funcionais que processam suas entradas
para produzir sadas.
Cada etapa do processamento implementado como
uma transformao.
Quando as transformaes so sequenciais, este um
modelo sequencial em lote que usado extensivamente
em sistemas de processamento de dados.
O padro duto e filtro
Nome Duto e filtro
Descrio O processamento dos dados emumsistema est organizado de modo
que cada componente de processamento (filtro) seja discreto e realize
um tipo de transformao de dados. Os dados fluem (como em um
duto) de umcomponente para outro para processamento.
Exemplo O prximo slide um exemplo de um sistema de duto e filtro usado
para o processamentodas faturas.
Quando
usado
Comumente usado emaplicaes de dados emque as entradas so
processadas emetapas separadas para geraremsadas relacionadas.
Vantagens O reuso da transformao de fcil compreenso e suporte. Estilo de
workflow corresponde estrutura de muitos processo de negcios.
Evoluo por adio de transformaes simples. Pode ser
implementadotanto comoumsistemasequencial quanto concorrente.
Desvantagens O formato para transferncias de dados temde ser acordado entre as
transformaes de comunicao. Cada transformao deve analisar
suas entradas e gerar as sadas para um formato acordado. Isso
aumenta o overhead do sistema e pode significar a impossibilidade de
reuso de transformaes funcionais que usamestrutura incompatveis
de dados.
24/10/2013
17
Um exemplo da arquitetura duto e filtro
Arquitetura de aplicaes
Sistemas de aplicao so destinados a atender a uma
necessidade organizacional ou de negcios.
Como as empresas tm muito em comum, os seus
sistemas de aplicao tambm tendem a ter uma
arquitetura comum.
Arquiteturas de aplicao encapsulam as principais
caractersticas de uma classe de sistemas.
24/10/2013
18
Arquitetura de aplicaes:
Sistemas de processamento de transaes
So aplicaes centradas em banco de dados que processam
os pedidos do usurio para obterem e atualizarem
informaes.
Consistem no tipo mais comum de sistemas interativos de
negcios.
Elas so organizadas de tal forma que as aes do usurio no
podem interferir umas com as outras e a integridade do banco
de dados mantida.
Uma transao uma sequencia de operaes tratadas como
uma nica unidade.
Todas as operaes de banco de dados de uma transao
devem ser concludas antes da mudana se tornar permanente.
Exemplos: sistemas bancrios interativos, sistemas de comrcio
eletrnico, sistemas de informao e sistemas de reservas.
A estrutura de aplicaes de processamento
de transaes
24/10/2013
19
A arquitetura de software de um sistema de
ATM (duto e filtro)
Exemplo de arquitetura de aplicaes:
Sistemas de informao
Um sistema de informao permite acesso controlado a uma
grande base de informaes, como um catlogo de biblioteca,
um horrio de voos ou os registros de pacientes em um
hospital.
O sistema de informao um exemplo de sistemas de
processamento baseado transaes.
Os sistemas de informao tm uma arquitetura genrica que
pode ser organizada como uma arquitetura em camadas.
Camadas incluem:
a interface de usurio
comunicao de usurio
recuperao e modificao da informao
banco de dados do sistema
24/10/2013
20
Arquitetura de sistema de informao em
camadas
A arquitetura do MHC-PMS
24/10/2013
21
Pontos Importantes (I)
Uma arquitetura de software uma descrio de como um sistema
de software organizado. As propriedades de um sistema, como
desempenho, proteo e disponibilidade, so influenciadas pela
arquitetura adotada.
As decises de projeto de arquitetura incluem decises sobre o
tipo de aplicao, a distribuio do sistema, os estilos da arquitetura
serem utilizados e as formas como a arquitetura deve ser
documentada e avaliada.
As arquiteturas podem ser documentadas a partir de diferentes
perspectivas ou vises. As possveis vises incluem uma viso lgica,
uma viso de processo, uma viso de desenvolvimento e uma viso
fsica.
Os padres da arquitetura so um meio de reusar o conhecimento
sobre as arquiteturas genricas de sistemas. Eles descrevem
arquitetura, explicam quando elas podem ser usadas e discutem suas
vantagens e desvantagens.
Pontos importantes (II)
Entre os padres de arquitetura comumente usados esto:
Modelo-Viso-Controlados, Arquitetura em camadas,
Repositrio, Cliente-Servidor e Duto e filtro.
Modelos genricos de arquiteturas de sistemas de aplicao
ajudam-nos a compreender o funcionamento das aplicaes,
comparar aplicaes do mesmo tipo, validar projetos de
sistemas de aplicao e avaliar os componentes para reuso em
larga escala.
Sistemas de processamento de transaes so sistemas
interativos que permitem que as informaes em um banco de
dados sejam acessados remotamente e modificadas por vrios
usurios.
O sistema de informao um exemplo de sistemas de
processamento de transaes.

Vous aimerez peut-être aussi