Resenha cap 11 engenharia de software
Este capitulo apresenta os conceitos de arquitetura de software e de projeto de arquiteturas, tendo como como foco compreender o motivo de se utilizar uma arquitetura e como a utilizar. Projeto de arquitetura basicamente é decompor um sistema grande em subsistemas que fornecem algum conjunto de serviços relacionados, e estabelecer um framework para controlar estes subsistemas. Durante este estagio, os projetistas de softwares são induzidos a considerar aspectos principais do projeto no inicio, este pode servir com um plano de projeto usado para negociar requisitos de sistema e como meio de estruturação para discussões com os clientes. Também é uma ferramenta essencial para o gerenciamento da complexidade do sistema. A arquitetura deve ser escolhida a partir dos requisitos não funcionais do sistema.
• Se o desempenho for um requisito critico a arquitetura deve ser projetada para encontrar operações criticas dentro de alguns subsistemas.
• Se a proteção for um requisito critico, deve ser utilizada uma estrutura por camas, assim protegendo os itens mais críticos.
• Se a segurança for um requisito critico, a arquitetura deve ser projetada, fazendo com que todas as operações relacionadas a segurança, devem estar localizada em um subsistema, ou em poucos subsistemas.
• Se a disponibilidade for um requisito critico, a arquitetura deve ser projetada utilizando componentes que podem ser substituídos e atualizados sem dificuldades.
• Se a facilidade de manutenção for um requisito critico, a arquitetura deve ser projetada usando componentes de baixa granularidade e autocontidos que possam ser prontamente mudados.
Porem existe conflitos entre as arquiteturas adotadas, já que algumas exigem o uso de componentes opostos, como é o caso de componentes de alta e baixa granularidade, quando existe este conflito, deve ser proposto uma solução eficaz, pode-se conseguir isso, algumas vezes, pelo uso de estilos de arquiteturas diferentes para cada