Prévia do material em texto
15 1 Profª Drª Mariane Gavioli Bergamini Fernandes Arquitetura de Sistemas Aula 1 15 2 Conversa Inicial 15 3 Os objetivos da aula é estudarmos sobre a importância e evolução das arquiteturas de sistemas dentro da engenharia de software. 15 4 Durante nossa aula será explorado 5 temas: • Definição, evolução na indústria e a importância das arquiteturas de sistemas; • Arquitetura no contexto profissional; • Arquitetura o contexto de projeto de ciclo de vida; • Arquitetura no contexto de negócios; • Tendências e desafios das arquiteturas de sistemas. 15 5 DEFINIÇÃO, EVOLUÇÃO E IMPORTÂNCIA DA ARQUITETURA DE SISTEMAS 15 6 Um projeto de arquitetura é a primeira etapa dentro do processo de desenvolvimento de software, pois identifica os componentes estruturais do software e a relação entre estes componentes (SOMMERVILLE, 2019). Definição de Arquitetura de Sistemas 15 7 “A arquitetura de sistemas vai além de algoritmos e estruturas de dados da computação, pois projetar e especificar a estrutura geral do sistema é desafiador. Questões estruturais incluem: organização bruta e estrutura de controle global; protocolos para comunicação sincronização e acesso a dados; atribuição de funcionalidade a elementos de design; composição de elementos de design; dimensionamento e desempenho; e seleção entre alternativas de design. (GARLAN; SHAW, 1993)” Definição de Arquitetura de Sistemas 15 8 A falta de estruturação resultou em sistemas difíceis de se manter, testar ou evoluir tais sistemas. Com o surgimento da programação estruturada, na década de 1970, houve uma mudança significativa, onde a modularização e o uso de sub-rotinas permitiram a decomposição de softwares complexos em partes menores e mais gerenciáveis. Evolução das Arquiteturas de Software na Indústria 15 9 Cliente – servidor (1980); Model-View-Controller (1980); Arquitetura orientada a serviços (1990); Arquitetura baseada em microsserviço (2010); Exemplo de Arquiteturas 15 10 Atualmente a indústria de software passou a explorando outros tipos de arquiteturas, como: Arquiteturas sem servidor (serveless); Arquitetura de eventos; Inteligência artificial e Machine Learning; Arquitetura resilientes e distribuídas. 15 11 Arquitetura no contexto profissional 15 12 Arquiteto de softwares engloba uma quantidade significativa e um escopo crescente de responsabilidades. Alguns anos atrás, os arquitetos de software focavam nos aspectos técnicos da arquitetura, como: modularidade, componentes e padrões. Papel do Arquiteto 15 13 Um arquiteto leva em conta diversos aspectos, como: avalia os componentes essenciais do sistema, suas interações e dependências. Além disso, examina os padrões de projeto utilizados, as tecnologias envolvidas e como a arquitetura atende aos requisitos de negócio, performance, segurança e manutenibilidade. Arquiteto de Sistemas 15 14 Tomar decisões de arquitetura; Analisar continuamente a arquitetura Manter-se atualizado com as últimas tendências; Garantir a conformidade com as decisões; Exposição e experiência diversificadas; Ter conhecimento do domínio do negócio; Possuir habilidades interpessoais Entender e navegar na política Habilidades do Arquiteto de Sistemas 15 15 Por exemplo, quando vamos realizar a manutenção de nosso automóvel, o que o mecânico precisa analisar no automóvel? 15 16 Arquitetura o contexto de projeto de ciclo de vida 15 17 Na engenharia de software se tem quatro atividades essenciais utilizadas dentro dos métodos prescritivos ou métodos ágeis. Ciclo de vida na engenharia de software 15 18 As quatros atividades são: Fonte: Autora, 2024. 15 19 O ciclo de vida da arquitetura de software é composto por um conjunto de estágios: requisitos e análise de arquitetura, design arquitetônico, documentação arquitetônica e avaliação arquitetônica. 15 20 É de suma importância definir a arquitetura de sistema desde as fases iniciais do projeto, para minimizar riscos, custos e esforços de refatoração. 15 21 Arquitetura no contexto de negócios 15 22 A arquitetura de software empresarial pode ser considerada como a chave principal do sistema de software. BSE prioriza a sustentabilidade e a evolução a longo prazo da funcionalidade do negócio. Business Software Architecture (BSE) 15 23 Resumidamente, o negócio é a árvore inteira e BSE é a estrutura da árvore que permite o crescimento e a adaptação dos seus ramos (funções comerciais). Business Software Architecture (BSE) 15 24 O arquiteto de software empresarial é o responsável por projetar essa estrutura, garantindo que ela suporte a evolução contínua do negócio. 15 25 Custos de desenvolvimento e manutenção Disponibilidade de recursos Competitividade 15 26 Resumidamente, para qualquer engenheiro de software conseguir dominar a BSE é essencial desenvolver sistemas: robustos, escaláveis e adaptáveis às mudanças constantes do mercado. Uma arquitetura bem projetada visa responder às mudanças do mercado com o mínimo custo e esforço. 15 27 Tendências e desafios das arquiteturas de sistemas 15 28 Com a evolução dos cenários tecnológicos e as necessidades de negócios, a arquitetura de software passa por um processo contínuo de evolução para permanecer alinhada com essas mudanças. Evolução da Arquitetura de Sistema 15 29 O que se deve levar em consideração em relação a evolução das arquiteturas: Quais características de software são necessárias para constituir um sistema de software evolutivo? Como avaliar a evolução de um sistema de software de forma sistemática ao evoluir a arquitetura do sistema? 15 30 Uma arquitetura de sistema, uma vez implementada no projeto de software pode ser tornar “cara” para alterá-la. A evolução não leva em consideração as tecnologias e linguagens de programação. Os modelos se tornam obsoletos e acabam sendo limitados a uma documentação desatualizada do projeto. Dificuldades da Arquitetura de Sistema 15 31 Uma arquitetura de sistema, uma vez implementada no projeto de software pode ser tornar “cara” para alterá-la. A evolução não leva em consideração as tecnologias e linguagens de programação. Os modelos se tornam obsoletos e acabam sendo limitados a uma documentação desatualizada do projeto. Tendências das Arquiteturas 15 32 A arquitetura de sistema evolui constantemente para atender às demandas crescentes de escalabilidade, flexibilidade e velocidade de desenvolvimento. Tais tendências refletem uma busca por maior agilidade, eficiência e resiliência nos sistemas. 15 33 Algumas tendências de arquiteturas Microsserviços Arquitetura Cloud-Native Computação Serverless Containerização com Docker e Kubernetes 15 34 A arquitetura de software com Docker revolucionou a forma como desenvolvemos, testamos e implantamos aplicações. O Docker encapsular um aplicativo e todas as suas dependências (bibliotecas, frameworks, etc) em um contêiner isolado, leve e portátil. Exemplo: Arquitetura de software com Docker 15 35 Containerização com Docker 15 36 Sommerville, I. Engenharia de Software. 10ª ed. São Paulo: Pearson, 2018. Garlan, D.; Shaw, M. An Introduction to Software Architecture, Advances in Software Engineering and Knowledge Engineering, Volume I, World Scientific, 1993. Referência 15 37 Slide 1: Arquitetura de Sistemas Slide 2: Conversa Inicial Slide 3 Slide 4 Slide 5: DEFINIÇÃO, EVOLUÇÃO E IMPORTÂNCIA DA ARQUITETURA DE SISTEMAS Slide 6: Definição de Arquitetura de Sistemas Slide 7: Definição de Arquitetura de Sistemas Slide 8: Evolução das Arquiteturas de Software na Indústria Slide 9: Exemplo de Arquiteturas Slide 10 Slide 11: Arquitetura no contexto profissional Slide 12: Papel do Arquiteto Slide 13: Arquiteto de Sistemas Slide 14 Slide 15 Slide 16: Arquitetura o contexto de projeto de ciclo de vidaSlide 17: Ciclo de vida na engenharia de software Slide 18 Slide 19 Slide 20 Slide 21: Arquitetura no contexto de negócios Slide 22: Business Software Architecture (BSE) Slide 23: Business Software Architecture (BSE) Slide 24 Slide 25 Slide 26 Slide 27: Tendências e desafios das arquiteturas de sistemas Slide 28: Evolução da Arquitetura de Sistema Slide 29 Slide 30: Dificuldades da Arquitetura de Sistema Slide 31: Tendências das Arquiteturas Slide 32 Slide 33 Slide 34 Slide 35 Slide 36: Referência Slide 37