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