Buscar

Slide 10_Engenharia de Software II

Prévia do material em texto

10
Engenharia de Software II
Projeto de Arquitetura
Prof. Me. Rodrigo Nascimento
Projeto de Arquitetura
Projeto de Arquitetura
• Sistemas grandes são sempre decompostos em subsistemas que fornecem algum 
conjunto de serviços relacionados. O processo inicial de projeto, consiste na 
identificação de subsistemas e estabelecer um framework para o controle e a 
comunicação de subsistemas, é denominado projeto de arquitetura.
• A arquitetura de sistema afeta o desempenho, facilidade de distribuição e de 
manutenção de um sistema. O estilo e a estrutura específicos escolhidos para 
uma aplicação, dependem dos requisitos não funcionais do sistema.
Projeto de Arquitetura
• Desempenho: Se o desempenho for um requisito crítico, a arquitetura deve ser 
projetada para localizar operações críticas dentro de alguns subsistemas;
• Proteção: Se a proteção for um requisito crítico, uma estrutura em camadas para 
a arquitetura deve ser usada, com os itens mais críticos protegidos por camadas 
mais internas e com um alto nível de validação de proteção aplicado a essas 
camadas.
• Segurança: Se a segurança for um requisito crítico, a arquitetura deve ser 
projetada de modo que as operações relacionadas à segurança estejam todas 
localizadas em um único subsistema ou em um pequeno número de subsistemas.
Projeto de Arquitetura
• Disponibilidade: Se a disponibilidade for um requisito crítico, a arquitetura deve 
ser projetada para incluir componentes redundantes e, assim que possível, 
substituir e atualizar componentes sem parar o sistema.
• Facilidade de manutenção: Se a facilidade de manutenção for um requisito crítico, 
a arquitetura de sistema deve ser projetada usando componentes de baixa 
granularidade e autocontidos que possam ser prontamente mudados.
Projeto de Arquitetura
• O projeto de arquitetura é um processo criativo em que se tenta estabelecer uma 
organização de sistema que satisfaça os requisitos funcionais e não funcionais do 
sistema. Por ser um processo criativo, as atividades de processo diferem 
radicalmente dependendo do tipo de sistema que será desenvolvido, a origem e a 
experiência do arquiteto do sistema e os requisitos específicos do sistema. 
Baseado em seus conhecimento e experiência, eles precisam responder às 
seguintes questões fundamentais:
Projeto de Arquitetura
• Existe uma arquitetura genérica de aplicação que possa funcionar como um 
modelo para o sistema que está sendo projetado?
• Como o sistema será distribuído ao longo de vários processadores?
• Qual ou quais estilos de arquitetura são apropriados para o sistema?
• Qual será a abordagem fundamental usada para estruturar o sistema?
• Como as unidades estruturais de um sistema serão decompostas em módulos?
Projeto de Arquitetura
• Qual estratégia será usada para controlar a operação das unidades no sistema?
• Como o projeto de arquitetura será avaliado?
• Como a arquitetura do sistema deve ser documentada?
• Embora cada sistema de software seja único, frequentemente sistemas de um 
mesmo domínio de aplicação têm arquiteturas similares que refletem os 
conceitos fundamentais de domínio. Para sistemas embutidos e sistemas 
projetados para computadores pessoais, geralmente há somente um único 
processador, e você precisará projetar uma arquitetura distribuída para o sistema.
Projeto de Arquitetura
• Os modelos de arquitetura que podem ser desenvolvidos podem incluir:
• Um modelo estático de estrutura que mostra os subsistemas ou componentes 
desenvolvidos como unidades separadas.
• Um modelo dinâmico de processo que mostra como o sistema está organizado em 
processos em tempo de execução.
• Um modelo de interface que define os serviços oferecidos por cada subsistema 
por meio de suas interfaces públicas.
Projeto de Arquitetura
• Modelos de relacionamentos que mostram os relacionamentos, tal como fluxo de 
dados, entre os subsistemas.
• Um modelo de distribuição que mostra como os subsistemas podem ser 
distribuídos pelos computadores.
• A organização de sistema reflete a estratégia básica para estruturá-lo. Você 
precisa tomar decisões sobre o modelo geral organizacional de um sistema com 
antecedência no processo de projeto de arquitetura, refletindo diretamente na 
estrutura do subsistema.
Projeto de Arquitetura
• Os subsistemas que constituem um sistema devem trocar informações de modo 
que possam trabalhar juntos eficientemente. Existem duas maneiras 
fundamentais pelas quais isso pode ser feito:
1. Todos os dados compartilhados são mantidos em um banco de dados que pode 
ser acessado por todos os subsistemas;
2. Cada subsistema mantém seu próprio banco de dados. Os dados são trocados 
com outros subsistemas por meio da passagem de mensagens entre eles.
Projeto de Arquitetura
• A maioria dos sistemas que usam grandes quantidades de dados é organizada 
com base em um banco de dados ou repositório compartilhado. Esse modelo é, 
portanto, adequado para aplicações em que os dados são gerados por um sistema 
e usados por outro. A figura 1 é um exemplo de uma arquitetura de conjunto de 
ferramentas CASE baseado em repositório compartilhado, tal ferramenta CASE foi 
provavelmente desenvolvido no início da década de 1970 pela inglesa ICL para 
apoiar o desenvolvimento de sistemas operacionais.
Projeto de Arquitetura
Bons Estudos!

Continue navegando