Baixe o app para aproveitar ainda mais
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!
Compartilhar