E aí [Música] Eu sou professor Marcelo Fantinato Essa é a disciplina de engenharia de software e nessa aula nós vamos falar sobre estilos arquiteturais se você por acaso acabou de ver a aula anterior você deve se lembrar que eu falei sobre padrões de software padrões arquiteturais ou estilos arquiteturais mencionei que nós falaríamos disso numa aula posterior EA justamente nessa aula que nós vamos falar sobre isso sobre os estilos arquiteturais e o que são então estilos arquiteturais estilos arquiteturais são também chamados de padrões arquiteturais né Eu já havia mencionado estilos arquiteturais ou padrões arquiteturais padrões arquitetura
estilo e padrão é mais mais ou menos usado como sinônimo alguns autores diferenciam mas em geral é usado como se fosse sinônimo Mas o mais importante é para que serve eles são usados para apresentar compartilhar o rio usar conhecimento sobre arquiteturas de sistemas de software enfim a com passar do tempo muitos profissionais muitos Engenheiros de software foram desenvolvendo projetar arquitetura de um software projetar arquitetura de outro software e com o passar do tempo eles perceberam que muitas arquiteturas de software eram parecidas entre si Claro que não todas e do mundo inteiro mais para um tipo
de softer as artes as arquiteturas de software eram parecidas entre si para outro tipo de software as arquiteturas deles eram parecidas entre si então um estilo arquitetural é uma forma de você documentar essa arquitetura de uma forma que você possa apresentá-la compartilhá-la e recusá-la sempre que for é apropriado Então essa é a ideia de um estilo arquitetural bom e a existem vários estilos arquiteturais já documentados na literatura por profissionais né é como se fosse um tipo de uma boa prática que pode ser seguido em vez de você pensar Ter que pensar do zero você segue
um exemplo de alguém que já seguiu e o certa forma já disse olha funcionou já usei isso várias vezes siga também que é é o Caminho das Pedras e a bom E aí a alguns é um dos mais famosos é estilos arquiteturais documentados na literatura estão listados aqui nesse slide é um mais mais famoso né é possível que vocês já tenham ouvido falar é o mvc model-view-controller ou do português modelo é visão controlador a essa sigla mvc ela é bastante conhecido na engenharia de software muita coisa feita em função desse padrão arquitetural é possível mesmo
é possível até que vocês já tenham usado alguma coisa relacionada ao mvc e eventualmente nem saibam que é é um estilo arquitetural mas é um estilo arquitetura outros talvez já saibam né que é um estilo arquitetural legal ah mas também existem outros estilos arquiteturais propostas documentados na literatura a arquitetura de repositório a arquitetura em camadas o padrão cliente-servidor que também é bastante famoso né Eu acho que todo mundo já ouviu falar em cliente-servidor em arquitetura cliente-servidor é e também arquitetura duto e filtro eu vou vou mostrar para vocês aqui é alguns exemplos basicamente é Mais
especificamente o mvc Arquitetura em camadas e arquitetura duto e filtro certo e no material de você e vocês têm acesso a todas essas e outras referências em outros livros em artigos vocês vão em sites da internet vocês vão eventualmente encontrar outros estilos arquiteturais A ideia é sempre pensar bom para esse tipo de software que eu tô estou desenvolvendo Qual é o melhor estilo arquitetural na verdade existe alguma estilo arquitetura e esse aplique e Se sim qual é o melhor casos está mais do que o bom vamos dar uma olhada é primeiramente no que é chamado
do padrão mvc bom primeiro que um estilo arquitetural ele é sempre apresentado como um resumo é similar a esse que está aqui na tela agora tá Então na verdade isso vai mais do que um padrão arquitetural mais um padrão de software de uma forma geral é nós vamos ter uma aula também de uma para tratar de padrões de software de uma forma geral e vocês vão ver que Normalmente eles são apresentados assim uma forma de uma tabela nesse caso aqui então está sendo apresentado o padrão mvc e E aí sempre tem o nome obviamente e
depois uma descrição as letrinhas tão pequenas aqui porque no cabelo ia tudo a no slide mas lendo rapidamente aqui o significado de baixo interessantes deu o a descrição dele Bru mvc particularmente para vocês entenderem né aqui formato aparece os objetivos a descrição a finalidade de um padrão arquitetural vejam bem olha separa a apresentação e a interação dos dados do sistema então separa o que é apresentação dos dados do sistema apresentação em cima dados em baixo o sistema é estruturado em três componentes lógicos que interagem entre si o componente modelo né modelo visão controlador mvc ou
componente modelo gerencie os dados do sistema e as operações a eles associadas o componente visão definir e gerenciar como os dados são apresentados ao usuário e o componente controlador gerencia a interação do usuário por exemplo pressionamento de teclas cliques de Mouse é fácil essas interações para o visão e modelo aí tem aqui ver figura 6.5 porque isso aqui é retirado do do livro que eu uso com vocês então aqui tem uma descrição normalmente essa descrição se você não conhece você tá lendo pela primeira vez ela não vai te ajudar muito né vai te dar uma
ideia com que tá dizendo aqui é vamos dividir o sistema em três grandes partes em três grandes componentes eu ia falar camadas mas não são camadas porque porque não fica uma em cima da outra e vice o modelo em camadas que eu vou falar depois que aquele sim é uma em cima da outra mas aqui eu já vou adiantar Olha o modelo tá vendo os três componentes interagem um com os outros dois então não são camadas não é correto falar que são três camadas são três componentes vejam que o controlador se comunica com o modelo
modelos comunica com visão e o visão se comunica com o controlador certo é voltando para cá então A ideia é que o padrão ele vá Allen né e os exemplos que a Justamente esse exemplo que eu mostrei aqui para vocês nos lá de seguinte quando ele é usado quando há várias maneiras de visualizar e interagir com os dados Então você tem um conjunto de dados mas você pode visualizar de uma forma você pode visualizar de outra você pode interagir com esses dados uma forma de outra então a forma de gerenciar os dados no banco de
dados é padrão Mas você pode visualizar esses dados de diferentes formas Então você quer separar essas formas você quer separar no seu software quem vai controlar os dados e quem vai apresentar e manipular os dados Então você vai fazer essa separação Ah E aí vai ter algumas vantagens algumas desvantagens vou pular essa parte tá nós deixo para vocês olharem com mais detalhes Mas então aqui olha só top e o modelo tá o componente modelo é que vai tratar dos dados propriamente dito ele vai encapsula o estado da aplicação ele é que vai gerenciar os dados
e ele vai notificar O componente visão que é quem apresenta os dados na interface de usuário sempre que houver mudança de estado sempre que houver mudança de dados certo a e a visão também faz a consulta do Estado então o visão por sua vez consulta para saber se houve uma mudança de estado e o modelo por sua vez sempre que houver a mudança ele também notifica o a visão E também temos o controlador que mapeia as ações do usuário com atualizações do modelo então o controlador é o componente que vai mapear sempre que houver uma
ação do usuário com atualizações do modelo seleç Essa é a visão de novo pode parecer um pouco abstrato no primeiro momento mas o padrão arquitetural ele é apresentado com mais de com um exemplo aqui nós temos aqui é a arquitetura propriamente dita e aqui Ops em algum nós podemos ter exemplos é detalhando essa esse padrão um exemplo de o padrão ele vem acompanhado de um exemplo é para um determinado o softer Arquitetura em camadas assim é aquela arquitetura que é uma camada em cima da outra de forma que a a interface com o usuário é
lá em cima e embaixo é o apoio ao sistema é se o banco de dados e existem camadas intermediárias né a uma camada intermediária que a lógica principal do negócio e uma outra camada intermediária mais próxima da interface o pagamento de interface com o usuário e Aqui nós temos um exemplo de Arquitetura do sistema Ailane em que nós mostramos todos os componentes que existem no Sistema desde a interface com o usuário aqui em cima passando por várias camadas Até chegar na camada mais embaixo percebam que por exemplo na camada na segunda camada aqui que é
a camada é a de lógica principal do negócio nós temos vários componentes e Meios mensagens vídeo conferência arquivo de imprensa processamento de texto simulação armazenamento de vídeo Enfim uma série de componentes para dar suporte ao sistema ao software e são componentes de negócio certo enfim é uma forma de organizar o sistema e nesse tipo a camada de cima se comunica code baixo que se comunica com a de baixo e que se comunica pode baixo fazendo requisições e recebendo as respostas não há outra forma de comunicação e a e por fim arquitetura adulto e filtro arquitetura
do outro filtro ela é usada quando você tem um processo um sistema que é inerentemente É voltado para a execução de um processo quando você percebe que o seu software do seu sistema de software é bastante voltado para execução de etapas passo a passo então você pode projetar arquitetura do seu software no formato de arquitetura duto e filtro O que significa que você vai organizar os componentes do seu software não no formato como por exemplo anterior em que você tem componentes pedindo para camadas de baixo que vão respondendo para de cima que novamente novamente pede
para debaixo que de novo responde para de cima mas sim e no formato de componentes que entra algo aqui processo entrega para o próximo entrega pro próximo entrega a próxima entrega pelo próximo e terminou e não volta por exemplo esse caso aqui é um um exemplo de arquitetura para um filtro para um sistema de processamento em lotes no caso é leitura de faturas e identicamente identificação de pagamentos por exemplo para para uma empresa de telefonia por exemplo que ou de companhia de energia elétrica aqui emitir fatura você vai fazer vai receber a fatura você para
um cliente vai pagar e aí a a companhia vai dar baixa dizendo que que foi realizado o pagamento ou não então o primeiro etapa é ler as faturas feitas com base nas faturas então chegam as faturas é então é essa figura o tango representa dados nós temos faturas temos pagamentos temos recibos e temos lembretes como dados como arquivos de entrada ou de saída faturas e pagamentos são de entrada e recibos e lembretes de saída e a esses outros desenhos aí formato meio de elipse né são os processos propriamente dito então o primeiro é então as
faturas e existe o processo ler faturas feitas o resultado de ler faturas feitas vai para identificar pagamentos tendo como entrada também os pagamentos então para deter prato determinadas faturas e os pagamentos que foram feitos O resultado é emitir faturas aliás emitir recibos E aí eu tenho a saída o recibos para aquelas faturas que foram identificados pagamentos ou então encontrar pagamentos vencidos que é para aqueles que não para quem eu não emito um recibo eu vou encontrar pagamentos vencidos e emitir lembretes de pagamento e emito um lembrete de pagamento de necessidade de pagamento na verdade né
de conta vencida então eu executei o processo da esquerda para a direita e o processo acabou num num segundo momento eu começo de novo a aquela conta vencida ela vai entrar novamente como fatura para saber quais foram os pagamentos que entraram no dia seguinte e eu executo novamente aquele processo então vejo um dependendo da natureza do processo e esse tipo de arquitetura ela não vai se aplicar para um num softer como no caso anterior o que era um sistema Elaine tem um sistema de aprendizado é virtual que é o sistema justamente o sistema que vocês
usam aqui na universidade na Univesp que é um sistema em que vocês não é o Blackboard vocês se logo vocês tenham interface dentro dessa interface existe uma série de aplicativos mandar mensagem acessar vídeo E aí vocês na interface vão fazendo requisições que vão mandando para os níveis mais baixos níveis mais baixos até chegar no software né no no hardware desculpa e aí voltam a saídas e fique vocês ficou nessas interações faz uma requisição vem uma saída faz uma requisição vem uma saída é um outro tipo de abordagem uma outra forma de pensar a arquitetura de
um Soccer e a bom então são três exemplos de arquitetura ele tem outros estilos arquiteturais E vocês como um bom engenheiro de software precisam até um bom conhecimento desses estilos arquiteturais para que quando vocês estiverem desenvolvendo um novo sistema de software vocês percebam a esse software aqui é daquele tipo de arquitetura então eu vou aplicar aquele padrão arquitetural Ok é isso então como referências o nosso já conhecido o livro engenharia de software do Summer viu décima edição de 2018 é isso obrigado a [Música] E aí [Música] [Música]