Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Software Aula 2 Prof. Daniel Silos – 1ª edição – 2020 E-mail: daniel.moraes@ibmr.br Prof. Daniel Silos – daniel.moraes@ibmr.br 1 mailto:Daniel.Moraes@ibmr.br Gêneros e estilos de arquitetura Gêneros e estilos de arquitetura Padrões de arquitetura Objetivos de aprendizagem 1. Descrever os gêneros de arquitetura. 2. Analisar os principais estilos de arquitetura. 3. Analisar um padrão de arquitetura e classificar qual o seu tipo. Prof. Daniel Silos – daniel.moraes@ibmr.br 2 Visões da Arquitetura 1.Que visões ou perspectivas são úteis ao se projetar e documentar uma arquitetura de sistema? 2.Quais notações devem ser usadas para se descrever modelos de arquitetura? Prof. Daniel Silos – daniel.moraes@ibmr.br 3 Gêneros de arquitetura Embora os princípios fundamentais do projeto de arquitetura se apliquem a todos os tipos de arquitetura, o gênero arquitetural normalmente ditará a abordagem arquitetural específica para a estrutura que deve ser construída. Prof. Daniel Silos – daniel.moraes@ibmr.br 4 Gêneros de arquitetura Mas o que é gênero neste contexto? Gênero Edifícios – estilos gerais: Casas Condomínios Prédios de apartamentos Conjuntos comerciais Prédios industriais Armazéns Etc. Prof. Daniel Silos – daniel.moraes@ibmr.br 5 Gêneros de arquitetura Handbook of Software Architecture -> Grady Booch -> sugere os gêneros arquiteturais: Prof. Daniel Silos – daniel.moraes@ibmr.br 6 Inteligência artificial Comunicação Dispositivos Finanças Games Industrial Jurídico Médico Militar Sistemas operacionais Transportes Utilitários outros Estilos de arquitetura Palácio do Catete, onde funciona o Museu da República. Prof. Daniel Silos – daniel.moraes@ibmr.br 7 Foto: Fernando Frazão/ Agência Brasil Estilos de arquitetura Vista Chinesa, localizado na floresta da Tijuca, um dos cartões postais da cidade do Rio de Janeiro. Prof. Daniel Silos – daniel.moraes@ibmr.br 8 Foto: Marcello Casal Jr./ Agência Brasil Estilos de arquitetura Paço Imperial na Praça XV, região central da cidade. Prof. Daniel Silos – daniel.moraes@ibmr.br 9 Foto: Tânia Rêgo/ Agência Brasil Estilos de arquitetura “Quero uma casa no estilo colonial brasileiro!” Isso dá uma ideia ao arquiteto de um mecanismo descritivo que diferencia a casa de outros estilos. Além disso, o estilo arquitetural é também um modelo para construção. Obviamente, mais detalhes são necessários, como dimensões finais, características personalizadas a serem acrescentadas, materiais de construção... Mas o estilo orienta o arquiteto em seu trabalho. Prof. Daniel Silos – daniel.moraes@ibmr.br 10 Estilos de arquitetura O software para sistemas computacionais também apresenta um estilo de arquitetura. Cada estilo descreve uma categoria de sistemas que engloba 1. Um conjunto de componentes (Ex: um banco de dados, módulos computacionais) que realiza uma função exigida por um sistema 2. Um conjunto de conectores que habilitam a “comunicação, coordenação e cooperação” entre os componentes. Prof. Daniel Silos – daniel.moraes@ibmr.br 11 Estilos de arquitetura Cada estilo descreve uma categoria de sistemas que engloba 3. Restrições que definem como os componentes podem ser integrados para formar o sistema 4. Modelos semânticos que permitem a um projetista compreender as propriedades conhecidas de suas partes constituintes. Prof. Daniel Silos – daniel.moraes@ibmr.br 12 Estilos de arquitetura Um estilo é uma transformação imposta ao projeto de um sistema inteiro. Tem como objetivo estabelecer uma estrutura para todos os componentes do sistema. No caso em que uma arquitetura existente deve sofrer um processo de reengenharia, a imposição de um estilo de arquitetura resultará em mudanças fundamentais na estrutura do software, incluindo uma nova atribuição da funcionalidade dos componentes. Prof. Daniel Silos – daniel.moraes@ibmr.br 13 Arquitetura centralizada em dados Prof. Daniel Silos – daniel.moraes@ibmr.br 14 Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Armazenamento de dados (repositório) Arquitetura centralizada em dados Prof. Daniel Silos – daniel.moraes@ibmr.br 15 Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Software cliente Armazenamento de dados (repositório) Integrabilidade Componentes clientes Fluxo de dados - tubos e filtros – (Pressman) Prof. Daniel Silos – daniel.moraes@ibmr.br 16 Filtro Filtro Filtro Filtro Filtro Filtro Filtro Filtro Filtro Filtro Filtro Filtro Tubos Arquitetura de programa principal/subprograma Prof. Daniel Silos – daniel.moraes@ibmr.br 17 Programa principal Subprograma controlador Subprograma controlador Subprograma controlador Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Arquitetura de chamadas a procedimentos remotos Prof. Daniel Silos – daniel.moraes@ibmr.br 18 Programa principal Subprograma controlador Subprograma controlador Subprograma controlador Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Subprograma de aplicação Componentes distribuídos em uma rede Arquitetura em camadas Prof. Daniel Silos – daniel.moraes@ibmr.br 19 Cada caso é um caso Os padrões de arquitetura lidam com um problema específico de aplicação em um contexto específico e sob um conjunto de limitações e restrições. O padrão propõe uma solução de arquitetura capaz de servir como base para o projeto de arquitetura. O modelo de requisitos de uma aplicação de comércio eletrônico de uma loja de brinquedos pode ser o mesmo de uma loja de itens esportivos? Prof. Daniel Silos – daniel.moraes@ibmr.br 20 Padrão de arquitetura Um padrão de arquitetura, assim como um estilo arquitetural, impõe uma transformação no projeto de arquitetura. Mas são diferentes. 1. Escopo de um padrão é menos abrangente, focado em um aspecto da arquitetura. 2. Um padrão impõe uma regra sobre a arquitetura, descrevendo como o software vai tratar alguns aspectos de sua funcionalidade em termos de infraestrutura. 3. Os padrões de arquitetura tendem a tratar de questões comportamentais específicas no contexto da arquitetura (Ex: sincronismo e interrupções em aplicações em tempo real). Padrões podem ser usados com um estilo de arquitetura para dar forma à estrutura global de um sistema Prof. Daniel Silos – daniel.moraes@ibmr.br 21 Padrões de arquitetura - Duto e filtro (Sommerville) Prof. Daniel Silos – daniel.moraes@ibmr.br 22 Padrões de arquitetura Prof. Daniel Silos – daniel.moraes@ibmr.br 23 Exemplo da arquitetura duto e filtro: Arquitetura em camadas Prof. Daniel Silos – daniel.moraes@ibmr.br 24 Uma arquitetura genérica em camadas: Prof. Daniel Silos – daniel.moraes@ibmr.br 25 A arquitetura do sistema iLearn: Prof. Daniel Silos – daniel.moraes@ibmr.br 26 Padrão MVC Prof. Daniel Silos – daniel.moraes@ibmr.br 27 Padrão MVC - A organização do MVC (Modelo-Visão-Controlador): Prof. Daniel Silos – daniel.moraes@ibmr.br 28 Arquitetura de aplicação web usando o padrão MVC: Prof. Daniel Silos – daniel.moraes@ibmr.br 29 Padrão repositório: Prof. Daniel Silos – daniel.moraes@ibmr.br 30 Uma arquitetura de repositório para um IDE: Prof. Daniel Silos – daniel.moraes@ibmr.br 31 O padrão cliente-servidor: Prof. Daniel Silos – daniel.moraes@ibmr.br 32 Arquitetura cliente-servidor de uma biblioteca de mídias: Prof. Daniel Silos – daniel.moraes@ibmr.br 33 Arquitetura de Aplicações Prof. Daniel Silos – daniel.moraes@ibmr.br 34 Um projetista de softwarepode usar modelos de arquiteturas de aplicação de várias maneiras: 1. Como ponto de partida para o processo de projeto de arquitetura. 2. Como um checklist do projeto (design). 3. Como uma maneira de organizar o trabalho do time de desenvolvimento. 4. Como um meio de avaliar os componentes para reuso. 5. Como um vocabulário para falar sobre aplicações. Arquitetura de Aplicações - SPTs Prof. Daniel Silos – daniel.moraes@ibmr.br 35 Estrutura das aplicações de processamento de transações: Arquitetura de software de um sistema de caixa eletrônico: Arquitetura de Aplicações - SI Prof. Daniel Silos – daniel.moraes@ibmr.br 36 Arquitetura de sistema de informação em camadas: Arquitetura de Aplicações Prof. Daniel Silos – daniel.moraes@ibmr.br 37 Arquitetura do sistema Mentcare: Sistemas de processamento de linguagem Prof. Daniel Silos – daniel.moraes@ibmr.br 38 Arquitetura de um sistema de processamento de linguagem: Sistemas de processamento de linguagem Prof. Daniel Silos – daniel.moraes@ibmr.br 39 Arquitetura de repositório para um sistema de processamento de linguagem: Sistemas de processamento de linguagem Prof. Daniel Silos – daniel.moraes@ibmr.br 40 Arquitetura de compilador duto e filtro: Considerações sobre arquitetura Economia - O melhor software é organizado e depende da abstração para reduzir detalhes desnecessários. Visibilidade - as decisões arquitetônicas e as razões para elas devem ser óbvias para os engenheiros de software que examinam o modelo posteriormente. Prof. Daniel Silos – daniel.moraes@ibmr.br 41 Considerações sobre arquitetura Espaçamento - separação de interesses em um design sem a introdução de dependências ocultas. Simetria - a simetria arquitetônica implica que um sistema é consistente e equilibrado em seus atributos. Emergência - comportamento emergente e auto-organizado e controle. Prof. Daniel Silos – daniel.moraes@ibmr.br 42 Exercícios 1. O padrão arquitetural MVC é baseado em que estilo de arquitetura? 2. Um padrão para um sistema transacional (ou sistema de processamento de transação) pode ser baseado em mais de um estilo de arquitetura? Dê exemplos. Prof. Daniel Silos – daniel.moraes@ibmr.br 43 Exercícios 3. Para a próxima aula Pesquise sobre algum padrão de arquitetura não visto neste material Tente encontrar um exemplo de aplicação (um projeto de um software que utilize este padrão). Tente identificar um estilo de arquitetura a qual o padrão se baseia. Tente identificar outro padrão que o exemplo do software possa utilizar. Prof. Daniel Silos – daniel.moraes@ibmr.br 44 Objetivos de aprendizagem 1. Descrever os gêneros de arquitetura. 2. Analisar os principais estilos de arquitetura. 3. Analisar um padrão de arquitetura e classificar qual o seu tipo. Prof. Daniel Silos – daniel.moraes@ibmr.br 45 Próxima aula Estudaremos na próxima aula: 3 - DECISÕES SOBRE ARQUITETURA Como as decisões sobre a arquitetura afetam o desenvolvimento de um sistema Questões a serem consideradas para escolha da arquitetura PRESSMAN, R. Engenharia de Software. [Recurso eletrônico, Minha Biblioteca]. 8ª ed. BOOKMAN, 2016. Capítulo 13, item 13.5 e 13.11. SOMMERVILLE, I. Engenharia de Software. [Recurso eletrônico, Biblioteca Virtual Universitária 3.0]. 9ª ed. SARAIVA, 2011. Capítulo 11, item 11.1. Prof. Daniel Silos – daniel.moraes@ibmr.br 46 Referências https://fotospublicas.com/conheca-os-principais-pontos- turisticos-e-historicos-rio-de-janeiro/ PRESSMAN, Roger. Engenharia de Software Cap. 13. SOMMERVILLE, Ian. Engenharia de Software Cap. 6 Prof. Daniel Silos – daniel.moraes@ibmr.br 47 https://fotospublicas.com/conheca-os-principais-pontos-turisticos-e-historicos-rio-de-janeiro/ Leitura complementar Uma Olhada Rápida nos estilos e padrões arquiteturais https://www.infoq.com/br/news/2009/02/Architectural-Styles- Patterns/#:~:text=Dataflow%20Systems%20%2D%2D%20Batch%20sequential,Int erpretadores%2C%20sistemas%20baseados%20em%20regras. Prof. Daniel Silos – daniel.moraes@ibmr.br 48 https://www.infoq.com/br/news/2009/02/Architectural-Styles-Patterns/#:%7E:text=Dataflow%20Systems%20%2D%2D%20Batch%20sequential,Interpretadores%2C%20sistemas%20baseados%20em%20regras Arquitetura de Software�Aula 2 Gêneros e estilos de arquitetura Visões da Arquitetura Gêneros de arquitetura Gêneros de arquitetura Gêneros de arquitetura Estilos de arquitetura Estilos de arquitetura Estilos de arquitetura Estilos de arquitetura Estilos de arquitetura Estilos de arquitetura Estilos de arquitetura Arquitetura centralizada em dados Arquitetura centralizada em dados Fluxo de dados - tubos e filtros – (Pressman) Arquitetura de programa principal/subprograma Arquitetura de chamadas a procedimentos remotos Arquitetura em camadas Cada caso é um caso Padrão de arquitetura Padrões de arquitetura - �Duto e filtro (Sommerville) Padrões de arquitetura Arquitetura em camadas Uma arquitetura genérica em camadas: A arquitetura do sistema iLearn:� Padrão MVC Padrão MVC - A organização do MVC (Modelo-Visão-Controlador):� Arquitetura de aplicação web usando o padrão MVC:�� Padrão repositório:�� Uma arquitetura de repositório para um IDE:��� O padrão cliente-servidor:��� Arquitetura cliente-servidor de uma biblioteca de mídias:���� Arquitetura de Aplicações Arquitetura de Aplicações - SPTs Arquitetura de Aplicações - SI Arquitetura de Aplicações Sistemas de processamento de linguagem Sistemas de processamento de linguagem Sistemas de processamento de linguagem Considerações sobre arquitetura Considerações sobre arquitetura Exercícios Exercícios Objetivos de aprendizagem Próxima aula Referências Leitura complementar
Compartilhar