Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Software Aula 4 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 Questão – Adaptação do ENADE 2014 (questão 18) O sistemas nos anos 70 eram executados em mainframes, escritos em linguagem estruturada e com todas as funcionalidades em um único componente. A quantidade de linhas de códigos era muito grande e regras de negócio e tratamento de telas para terminais “burros” ficavam no mesmo programa. Os terminais “burros” foram sendo substituídos por microcomputadores, permitindo que todo tratamento da interface e de algumas regras de negócio, passassem a ser feitas na estações clientes. Surgiram as aplicações cliente-servidor. A partir dos anos 90, até a atualidade, as mudanças se tornaram mais radicais. Os bancos de dados passassem a ser relacionais e distribuídos. As linguagens orientadas a objetos, cuja modelagem encapsula dados e oferece funcionalidades através de métodos, tornaram-se o padrão. A interface passou a ser web, principalmente. Vive-se a era das aplicações em três camadas. Prof. Daniel Silos – daniel.moraes@ibmr.br 2 Questão – Adaptação do ENADE 2014 (questão 18) Considerando a evolução da arquitetura de software de sistemas de informação, conforme citado no texto acima, avalie as seguintes afirmações. I. A separação dos sistemas em três camadas lógicas torna os sistemas mais complexos, requerendo pessoal mais especializado. II. A separação dos sistemas em três camadas lógicas, torna os sistemas mais flexíveis, permitindo que as partes possam ser alteradas de forma independente. III. A separação dos sistemas em três camadas lógicas, aumentou o acoplamento, dificultando a manutenção. Prof. Daniel Silos – daniel.moraes@ibmr.br 3 Questão – Adaptação do ENADE 2014 (questão 18) É corretor o que se afirma em: a) II, apenas. b) III, apenas. c) I e II, apenas. d) I e III, apenas. e) I, II e III. Prof. Daniel Silos – daniel.moraes@ibmr.br 4 Brainstorm – Quais estilos e/ou padrões estruturais identificamos nas imagens a seguir? Abrir apresentação... Prof. Daniel Silos – daniel.moraes@ibmr.br 5 4 – PROJETO DE ARQUITETURA Representação do sistema no contexto Definição de Arquétipos Objetivos de Aprendizagem 1. Representar um sistema através do diagrama de contexto arquitetural. 2. Definir arquétipos. Prof. Daniel Silos – daniel.moraes@ibmr.br 6 PROJETO DE ARQUITETURA Prof. Daniel Silos – daniel.moraes@ibmr.br 7 Representação do sistema no contexto O software deve ser colocado no contexto O design deve definir as entidades externas (outros sistemas, dispositivos, pessoas) com as quais o software interage e a natureza da interação Representação do Sistema no Contexto Diagrama de contexto de arquitetura Prof. Daniel Silos – daniel.moraes@ibmr.br 8 Sistema-alvo Sistemas superiores Usa Usado por Atores Usa Usado porUsado por Usa Pares Depende de Sistemas Subordinados Fonte: Adaptado de PRESSMAN Diagrama de contexto de arquitetura Exemplo Prof. Daniel Silos – daniel.moraes@ibmr.br 9Fonte: Adaptado de PRESSMAN Produto CasaSegura Painel de controle Proprietário Função de Vigilância Sistema-alvo Função de segurança Sistema Web Sensores Sensores Usa Usa Pares Usa Então... O primeiro passo do projeto de arquitetura de um software deve partir para o contexto. Qual o passo seguinte? De acordo com PRESSMAN, a definição de arquétipos. Prof. Daniel Silos – daniel.moraes@ibmr.br 10 Arquétipos Um conjunto de arquétipos arquitetônicos deve ser identificado Um arquétipo é uma abstração (semelhante a uma classe) que representa um elemento do comportamento do sistema O designer especifica a estrutura do sistema definindo e refinando os componentes de software que implementam cada arquétipo. Blocos básicos abstratos de um projeto de arquitetura. Em muitos casos podem ser derivados das classes de análise (modelo de requisitos). Prof. Daniel Silos – daniel.moraes@ibmr.br 11 Arquétipos Prof. Daniel Silos – daniel.moraes@ibmr.br 12 Relacionamentos em UML para os arquétipos da função de segurança do CasaSegura. Fonte: Adaptação de PRESSMAN Arquétipos Sugestões de arquétipos do CasaSegura: Nó Representa um conjunto coeso de elementos de entrada e saída da função de segurança domiciliar. Ex: Um nó poderia ser composto de vários sensores e uma variedade de indicadores de alarme (saída). Detector Abstração que engloba todos os equipamentos de sensoriamento que alimentam o sistema-alvo com informações. Prof. Daniel Silos – daniel.moraes@ibmr.br 13 Fonte: Adaptação de PRESSMAN Sugestões de arquétipos do CasaSegura: Indicador Abstração que representa todos os mecanismos (por exemplo: sirene de alarme, luzes intermitentes, campainha) para indicar uma ocorrência de condição de alarme. Controlador Abstração que representa o mecanismo que permite armar ou desarmar um nó. Se os controladores residem em uma rede, eles têm a capacidade de se comunicar entre si. Prof. Daniel Silos – daniel.moraes@ibmr.br 14 Arquétipos Fonte: Adaptação de PRESSMAN Passo 3 – Refinamento em componentes Como componentes são escolhidos? Classes conceituais de modelo de análise (modelo de requisitos) Domínio da infraestrutura Componentes de infraestrutura que permitem componentes de aplicações Componentes de gerenciamento de memória Componentes de comunicação Componentes de banco de dados Componentes de gerenciamento de tarefas Prof. Daniel Silos – daniel.moraes@ibmr.br 15 Passo 3 – Refinamento em componentes Componentes do CasaSegura: Gerenciamento da comunicação externa Processamento de painel de controle Gerenciamento de detectores Processamento de alarme Tais componentes são de alto nível e precisam ser elaborados de forma iterativa e então posicionados na arquitetura global do software. Para cada um deles serão elaboradas classes de projeto (com atributos e operações apropriados). Prof. Daniel Silos – daniel.moraes@ibmr.br 16 Componentes - CasaSegura Prof. Daniel Silos – daniel.moraes@ibmr.br 17 Fonte: Adaptação de PRESSMAN Descrição das instâncias do sistema Mais um nível de refinamento Definição de uma instância “real” da arquitetura A arquitetura é aplicada a um problema específico com o objetivo de demonstrar que a estrutura dos componentes estão corretas. Exemplo CasaSegura – Sistema de segurança Componentes em mais detalhes Prof. Daniel Silos – daniel.moraes@ibmr.br 18 Componentes - CasaSegura Prof. Daniel Silos – daniel.moraes@ibmr.br 19 Fonte: Adaptação de PRESSMAN Modelo C4 de Documentação para Arquitetura de Software A criação de diagramas de software foi reduzida como resultado da mudança para o uso das metodologias ágeis. Quando diagramas são criados, eles geralmente são confusos e pouco claros. O modelo C4 consiste em um conjunto hierárquico de diagramas de arquitetura de software para contexto, containers, componentes e código. A hierarquia dos diagramas C4 fornece diferentes níveis de abstração, cada um dos quais é relevante para um público diferente. Evite a ambiguidade em seus diagramas incluindo uma quantidade suficiente de texto, bem como uma chave/legenda para a notação utilizada. Prof. Daniel Silos – daniel.moraes@ibmr.br 20 Diagrama de contexto de arquitetura Modelo C4 Prof. Daniel Silos – daniel.moraes@ibmr.br 21Fonte: Adaptado de JUNIOR Exercício 1. Vamos pensar em um software de Internet Banking e vamos criar um diagrama de contexto arquitetural. i. Quem usa um Internet Banking? ii. Onde estão / quem lida com os dados de clientes, contas, transações? iii. Como poderíamos enviar e-mails com informações para os clientes do banco? Prof. Daniel Silos – daniel.moraes@ibmr.br 22 Exercício 1. Vamos criar um diagrama de contexto com as informações colhidas utilizando a ferramenta online Draw.io - https://app.diagrams.net/Prof. Daniel Silos – daniel.moraes@ibmr.br 23 https://app.diagrams.net/ Objetivos de Aprendizagem 1. Representar um sistema através do diagrama de contexto arquitetural. 2. Definir arquétipos. Prof. Daniel Silos – daniel.moraes@ibmr.br 24 Próxima aula Estudaremos na próxima aula: 5 - PROJETO DE ARQUITETURA PARA APLICAÇÕES WEB E APLICATIVOS MÓVEIS PRESSMAN, R. Engenharia de Software. [Recurso eletrônico, Minha Biblioteca]. 8ª ed. BOOKMAN, 2016. Capítulo 13, item 13.6.5 a 13.6.6. SOMMERVILLE, Ian. Engenharia de Software Cap. 7, item 7.1 Prof. Daniel Silos – daniel.moraes@ibmr.br 25 Referências PRESSMAN, Roger. Engenharia de Software Cap. 13, itens 13.6.1 a 13.6.4. JUNIOR, Elemar. Vídeo sobre o que é Arquitetura de Software? | Fundamentos de Arquitetura de Software | Parte 01. https://www.youtube.com/watch?v=jUH5lKfpWE0&t=6s&ab_ channel=EximiaCo. Acessado em 12/09/2020. BROWN, Simon. O modelo C4 de documentação para Arquitetura de Software. https://www.infoq.com/br/articles/C4-architecture-model. Acessado em 12/09/2020. Prof. Daniel Silos – daniel.moraes@ibmr.br 26 https://www.youtube.com/watch?v=jUH5lKfpWE0&t=6s&ab_channel=EximiaCo https://www.infoq.com/br/articles/C4-architecture-model Conteúdo recomendado Leitura: Modelo C4 - https://www.eximiaco.tech/pt/2019/08/12/o-que-e- e-para-que-serve-o-c4-model/ https://www.infoq.com/br/articles/C4-architecture-model/ Vídeos: O que é arquitetura de Software? Fundamentos de Arquitetura de Software | Parte 1 - https://www.youtube.com/watch?v=jUH5lKfpWE0&ab_channel=Ex imiaCo Visualising software architecture with the C4 model - Simon Brown, Agile on the Beach 2019 - https://www.youtube.com/watch?v=x2- rSnhpw0g&ab_channel=AgileontheBeach Prof. Daniel Silos – daniel.moraes@ibmr.br 27 https://www.eximiaco.tech/pt/2019/08/12/o-que-e-e-para-que-serve-o-c4-model/ https://www.infoq.com/br/articles/C4-architecture-model/ https://www.youtube.com/watch?v=jUH5lKfpWE0&ab_channel=EximiaCo https://www.youtube.com/watch?v=x2-rSnhpw0g&ab_channel=AgileontheBeach Arquitetura de Software�Aula 4 Questão – Adaptação do ENADE 2014 (questão 18) Questão – Adaptação do ENADE 2014 (questão 18) Questão – Adaptação do ENADE 2014 (questão 18) Brainstorm – Quais estilos e/ou padrões estruturais identificamos nas imagens a seguir? 4 – PROJETO DE ARQUITETURA PROJETO DE ARQUITETURA Representação do Sistema no Contexto�Diagrama de contexto de arquitetura Diagrama de contexto de arquitetura�Exemplo Então... Arquétipos Arquétipos Arquétipos Arquétipos Passo 3 – Refinamento em componentes Passo 3 – Refinamento em componentes Componentes - CasaSegura Descrição das instâncias do sistema Componentes - CasaSegura Modelo C4 de Documentação para Arquitetura de Software Diagrama de contexto de arquitetura�Modelo C4 Exercício Exercício Objetivos de Aprendizagem Próxima aula Referências Conteúdo recomendado
Compartilhar