Buscar

02_Arquitetura_Referencia_Estilos_Padryes

Prévia do material em texto

26/04/2019
1
Modelos e Arquiteturas de 
Referência de Software, Estilos e 
Padrões Arquiteturais
Prof. Ivan Granja
Fac. de Análise de Sistemas – PUC-Campinas
Lá no começo do curso......
• “Todo sistema de software possui uma arquitetura única e particular 
pois, mesmo que inspire-se em modelos ou estilos arquiteturais, é 
composta por elementos e relações que fazem sentido no contexto 
particular ao qual está submetido” 
Ivan Granja, Slide nº 12 – Introdução a Arquitetura de Software
• Isso é definido como arquitetura concreta do sistema de software
• A arquitetura concreta é única para qualquer sistema (ou subsistema, 
componente ou parte) de um software, mas em geral inspira-se em 
referências e estilos.
26/04/2019
2
Modelo de Referência (MR)
• Modelo de Referência (MR) engloba o conhecimento sobre como 
projetar arquiteturas de software concretas dos sistemas pertencentes a 
um determinado domínio de aplicação.
• Modelo a partir do qual a equipe de projeto chegará até a solução, ou seja, na 
arquitetura concreta de um sistema.
• Um modelo de referência consiste na decomposição padronizada do problema 
em partes conhecidas que cooperam entre si em prol de uma solução. 
Geralmente, estes problemas são de domínio bastante amadurecido.
• O modelo de referência de um determinado domínio surge durante o processo 
de amadurecimento da solução em função da necessidade de representações 
mais abstratas que caracterizam o domínio.
Estilo Arquitetural
• Os estilos de arquitetura expressam esquemas de organização estrutural de 
sistemas, fornecendo um conjunto de componentes (elementos ou blocos de 
construção) do sistema, suas responsabilidades e a forma de interação entre 
eles, estabelecendo um padrão de utilização. 
Buschmann, F. et at. A System of Patterns, Wiley, 1996
• É uma característica de uma Arquitetura, que reduz o conjunto de formas que 
podem ser escolhidas e impõe certo grau de uniformidade a um arquitetura 
(que sempre é única e particular)
• Pode ser definido como um conjunto de padrões ou pela escolha de limitados 
elementos específicos (componentes, camadas, relacionamentos) que são 
blocos básicos de construção (building blocks)
26/04/2019
3
Estilo Arquitetural
• Cada estilo de arquitetura define e lida com diferentes tipos de 
atributos de qualidade. Para obter a definição de uma arquitetura a 
partir dos estilos existentes, basta saber quais os atributos mais 
relevantes para a solução e confrontá-los com os atributos que o estilo 
atende. 
Shaw, M., Garlan, D. Software Architecture: Perspectives on an Emerging Discipline, Prentice Hall, 1996
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad e M. Stahl. Pattern-Oriented Software Architecture - A 
System of Patterns, NY: John Wiley and Sons, Inc. 1996
Estilo Arquitetural
• Que atributos e elementos 
qualificam e determinam o 
estilo arquitetural típico de 
Paris e, portanto, impõe 
padrões de utilização ao 
arquitetos?
26/04/2019
4
Estilo Arquitetural
• Que atributos e elementos 
qualificam e determinam o 
estilo arquitetural típico de 
Paris e, portanto, impõe 
padrões de utilização ao 
arquitetos?
• Resposta:
• 5 Andares (inclui térreo 
destinado a serviços)
• Um 6º andar de mansardas 
(abaixo do teto de zinco) –
para alojar empregados. 
• Fachada com janelas
• Portal de Acesso ao Prédio
• Pátio interno
Arquitetura de Referência (AR)
• Uma arquitetura de referência consiste em componentes de software 
(elementos ou blocos de construção) e os relacionamentos entre eles que 
implementam funcionalidades relativas às partes definidas no modelo de 
referência. 
• Uma arquitetura de referência deve considerar as regras de negócio, o 
estilo arquitetural e o modelo de referência, para atingir os atributos de 
qualidade (definidos no estilo). 
• Arquiteturas de referência são definidas em um nível de abstração mais 
alto (mais geral) se comparadas com arquiteturas concretas de software.
26/04/2019
5
Os Trabalhos dos Arquitetos de Sistemas
• O particionamento do sistema em componentes de software que é feito 
pela maioria dos desenvolvedores está baseado na intuição, sem registro 
das decisões de projeto que são tomadas para solucionar o problema.
• Conhecer (e bem) o domínio do sistema que será construído simplifica o 
trabalho dos arquitetos de software, pois:
• não precisam investir na definição e desenvolvimento de uma arquitetura 
• Ao contrário, deve investir na projeção das propriedades arquiteturais dos padrões, 
estilos e arquiteturas de referência, escolhendo os que se assemelham a sua 
necessidade. 
• Na maioria das vezes, basta que os arquitetos de software adotem soluções 
encontradas em livros e manuais que documentam tais arquiteturas de 
referência, padrões e estilos.
Concluindo e juntando.....
Pode-se dizer que modelos de 
referência, estilos e arquiteturas de 
referência não são propriamente 
arquiteturas de software. 
São passos ou referências úteis 
voltados para a simplificar a escolha 
e definição da arquitetura concreta 
de um sistema de software. 
Cada qual constitui-se de um 
conjunto de coisas (conceitos, boas 
práticas, esquemas, componentes, 
relacionamentos) que direciona 
decisões antecipadas de projeto e 
os fundamentos da arquitetura 
concreta (única) do software
Arquitetura 
Concreta
(única para cada 
sistema)
26/04/2019
6
Os Trabalhos dos Arquitetos de Sistemas
• A escolha de um estilo ou modelo deve ser guiada pelas propriedades 
gerais que a aplicação requer, pelos serviços exigidos (requisitos 
funcionais) e mais ainda, pelos requisitos não funcionais (RNF)
• Estilos podem ser combinados entre si para suportar os requisitos 
necessários e apoiar a definição de uma arquitetura mais adequada 
para o problema. 
Uma Classificação dos Requisitos Não 
Funcionais (RNF)
• Usabilidade – Relaciona-se com interface com o usuário. Possui 
subcategorias, entre elasː prevenção de erros, estética e design, helps, 
documentação, consistência e padrões.
• Confiabilidade - Refere-se à integridade, conformidade e 
interoperabilidade do software, considerando requisitos como: frequência
e gravidade de falhas, possibilidade de recuperação, extensão e duração 
da falha e previsibilidade (estabilidade).
• Desempenho - Avalia os requisitos de performance do software, 
nomeadamenteː tempo de resposta, consumo de recursos, capacidade e 
escalabilidade.
• Suportabilidade - Agrupam várias caraterísticas, tais comoː testabilidade, 
adaptabilidade, manutenibilidade, compatibilidade, configurabilidade, 
instalabilidade, escalabilidade entre outros.
26/04/2019
7
Padrões Arquiteturais
• Vamos recordar de novo... Lá no começo do curso......
• Um padrão arquitetural indica um conjunto abstrato de blocos de 
construção (elementos, mecanismos e relacionamentos) que realizam 
um predeterminado conjunto de requisitos associados a um estilo 
arquitetural (não confundir com requisitos funcionais do sistema).
• Um padrão (ou pattern), é uma discernível regularidade no mundo ou 
em um design feito pelo homem.
• Os elementos, mecanismos e os relacionamento designados em um padrão 
repetem-se de maneira previsível.
• Padrões são.... Recorrências
Padrões Arquiteturais
• Padrões Arquiteturais são formas prontas para uso que, sabidamente, 
resolvem problemas arquiteturais recorrentes.
• Expressam a estrutura fundamental (de base) de um software.
• Exemplo de padrões arquiteturais:
• Pipes e Filtros
• Camadas
• MVC
• Padrões Arquiteturais podem ser agrupados em categorias, por meio 
de critérios e similaridades 
26/04/2019
8
Categorias de Padrões Arquiteturais
• Abaixo, as categorias da taxonomia de Buschmann e seus Colegas:
Buschmann, F. et at. A System of Patterns, Wiley, 1996
• “From mud to structure”- oferecem decomposição controlada das tarefas em 
subtarefas. Consideram requisitos estáveis e bem definidos. 
• Sistemas distribuídos – completa estrutura para aplicações distribuídas, 
fornecem infraestrutura para sistemas que possuem componentes localizadosem 
processadores diferentes ou em diversos subsistemas e componentes;
• Sistemas interativos – sistema intensivamente focados em interação Humano-
Computador
• Sistemas adaptáveis – oferecem infraestrutura para a extensão e adaptação de 
aplicações devido a tecnologias e mudança/evolução de requisitos funcionais.
Exemplo de Padrões Arquiteturais
• Da categoria “From mud to structure”
• Arquitetura em Camadas: 3 camadas, n-camadas.
• Arquitetura de Repositório: Blackboard
• Dutos e Filtros (Pipes & Filters)
• Da categoria “Sistemas Distribuídos”
• Brokers
• Cliente-Servidor
• P2P
• Da categoria “Sistemas Interativos”
• MVC – Model-View-Controller
• PAC – Presentation-Abstraction-Control
• Da categoria “Sistemas Adaptáveis”
• Micro Serviços
• Reflexão

Continue navegando