Estilos de Arquitetura- uma outra visão Sommerville classifica os estilos de arquitetura em relação às atividades do processo de projeto arquitetural: Estruturação do sistema; Modelagem de Controle; Decomposição modular. Mary Shaw trata a arquitetura de software como uma coleção de componentes computacionais, junto com a descrição das interações entre estes componentes (os conectores) e suas restrições de composição.
Canais e Filtros (Pipes and Filters) Cada componente (filtro) tem um conjunto de entradas e saídas Os filtros devem ser entidades independentes Filtros não conhecem a identidade dos outros filtros Os conectores entre os filtros são os pipes (canais) Especializações: Pipelines: restringem a topologia a seqüências lineares de filtros; Bounded pipes: restringem a quantidade de dados num pipe; Typed Pipes: restringem os tipos de dados que fluem no pipe
Abstração de dados e Orientação a objetos Representação de dados e suas operações primitivas são encapsuladas em um tipo abstrato de dado ou objeto Os componentes deste estilo são objetos Objetos interagem através de invocação de função ou procedimento Objetos são responsáveis por preservar sua integridade
Invocação implícita, baseada em eventos Anúncio de eventos para invocar procedimentos em outros módulos Os componentes são módulos com interfaces definidas, com procedimentos relacionados a eventos Componentes que anunciam eventos não sabem que componentes irão responder a estes eventos
Sistemas definidos em camadas ou níveis Sistema é organizado hierarquicamente, onde cada nível provê serviço para o nível acima e funciona como cliente do nível abaixo
Outros estilos Repositórios Interpretador composto por dois tipos de componentes distintos: estrutura de dados central e componentes independentes Interpretador comumente utilizado para construção de máquinas virtuais entre um programa e um engenho de computação disponível em hardware.
Outros Estilos Controle de processos Dois tipos: Loop aberto processos convertem materiais de entrada em produtos com propriedades específicas de acordo com variáveis de processo (variáveis de controle) Dois tipos: Loop aberto Loop fechado
Outros Estilos - controle de processos Loop aberto input processo output Variável de controle
Outros Estilos - controle de processos Loop fechado (feedback control) input processo Output (variável controlada) controlador Set point controle
Outros Estilos - controle de processos Loop fechado (feedforward control) input processo Output (variável controlada) controlador Set point controle
Outros estilos Sistemas distribuídos Organizações do tipo programa principal/sub-rotina Arquiteturas de software para domínio específico Diagramas de transição de estados
Arquiteturas Heterogêneas Vários sistemas envolvem combinação de vários estilos Isto é o que acontece na prática