Curso de Curta Duração Desenho de Sistemas Informáticos
Importância da arquitectura de software
Eng.º Benadade Albano Lopes Chipikita
Aula n.º 5 O que é framework?
Dentro de um processo de arquitetura de
software, o framework é a parte do desenvolvimento que une os componentes dentro da infraestrutura de um sistema ou aplicação, sendo basicamente a interface. O principal diferencial de utilizar um framework é garantir que o desenvolvedor tenha a possibilidade de ajustar o projeto de acordo com a personalização solicitada. Por isso, cada vez mais, os desenvolvedores buscam por esse tipo de ferramenta. Para eles, já ter disponível parâmetros preestabelecidos possibilita maior produtividade para que o trabalho seja feito de modo mais rápido e estruturado. Sem contar que o gerenciamento de ferramentas também fica mais fácil: não é necessário reinventar a roda para colocar um software de pé. Ao utilizar a visão da arquitetura, será viável capturar as principais decisões do design estrutural do software, tal qual seus componentes, formulários, restrições e requisitos funcionais ou alternativos. Por fim, toda essa parte é direcionada para o Documento de Arquitetura de Software que armazenará as visões, abstrações ou simplificações dos modelos criados e suas características. Afinal, essa etapa é importante para aumentar a qualidade dos modelos arquiteturais antes de ir para a parte do desenvolvimento. A escolha do modelo arquitetural para um software Depois de aplicar a visão da arquitetura, podemos avançar mais na rotina do arquiteto de software. Considerando o melhor caminho para estruturar um sistema, será fundamental pensar na próxima fase do projeto que é a definição do padrão arquitetural – lembre- se que há uma infinidade deles. “Não existe um funcionamento básico de tecnologia. Há formas infinitas de aplicar e atender os diversos problemas existentes”, Arquitetura em camadas (Layered pattern) Organiza um sistema de conjunto em camadas que podem ser desconstruídas em diferentes serviços, trazendo um modelo incremental de desenvolvimento. Os casos mais comuns para o uso desse padrão são em software de e-commerce e desktop. Arquitectura cliente-servidor (Client-server pattern) Estilo organizado em serviços combinando dados do cliente e do servidor. Para isso, é primordial que o cliente disponibilize uma rede de acesso às informações. Este cenário é um dos mais conhecidos na rotina das pessoas, já que podem ser aplicativos bancários e e-mail. Arquitetura MVC (Model-view-controller pattern) Distribuído em três camadas (Modelo, Visão e Controle), este padrão é um dos mais comuns para o online, porque traz um modelo interativo de sistema. Computação em nuvem (cloud computing) Em sua explicação mais simples, a computação em nuvem é uma solução tecnológica com acesso remoto a diferentes conteúdos online. Isso significa que não é necessário mais um computador pessoal ou um servidor local para acessar informações. Em nosso dia a dia já usamos a computação em nuvem para editar documentos no Google Drive ou para escutar uma playlist no Spotify. Inteligência artificial Desenvolver software com base em inteligência artificial já é uma prática realizada no mercado de TI, mas logo essa evolução tecnológica ficará mais fácil e acessível para a produção de softwares e aplicativos. Graças a facilidade na hora de programar e uma interface mais intuitiva que atende mais rapidamente às necessidades dos negócios. Arquitetura de microsserviços (Microservices pattern) Este padrão utiliza múltiplos serviços e componentes para desenvolver uma estrutura modular favorecida. Hoje, é um dos modelos preferidos dos desenvolvedores e arquitetos de software por possibilitar a escalabilidade e independência dos módulos – que até podem utilizar diferentes linguagens e programações. Microsserviços Definimos microsserviços como um padrão de arquitetura para criar aplicações. Sob esse padrão, as aplicações são estruturadas como uma coleção de serviços ligeiramente ligados. Isso é diferente das aplicações tradicionais, ou monólitos, que são estruturados como artefatos autocontidos únicos.” Microsserviços A praticidade dos microsserviços criará um movimento de migração de sistemas para as empresas que têm uma área de TI mais fortalecida e com maior produtividade. Microsserviços – Caracteristicas • Autônomos Cada serviço do componente de uma arquitetura de microsserviços pode ser desenvolvido, implantado, operado e escalado sem afetar o funcionamento de outros serviços. Os serviços não precisam compartilhar nenhum código ou implementação com os outros serviços. Todas as comunicações entre componentes individuais ocorrem por meio de APIs bem definidas. • Especializados Cada serviço é projetado para ter um conjunto de recursos e é dedicado à solução de um problema específico. Se os desenvolvedores acrescentarem mais código a um serviço ao longo do tempo, aumentando sua complexidade, ele poderá ser dividido em serviços menores. Microsserviços – Benefícios • Agilidade • Escalabilidade flexível • Fácil implantação • Liberdade tecnológica • Código reutilizável • Resiliência A diferença entre APIs e microsserviços Microsserviços são um estilo de arquitetura para web service, em que a funcionalidade é dividida em pequenos serviços da web. Já as APIs são os frameworks, através dos quais, os desenvolvedores podem interagir com uma aplicação da web. O futuro da arquitetura de Software Definitivamente, no futuro do desenvolvimento dos sistemas estarão os modelos de microsserviços, computação em nuvem e inteligência artificial. “Com os últimos avanços ficou claro que ainda estamos longe de atingir um limite para o uso da tecnologia. Estamos apenas no início de uma revolução e com as possibilidades totalmente em aberto”. Bibliografia • Silveira, P. (2011). Introdução à Arquitectura e Design de Software. São Paulo: Campus. • Shaw, D. Garlan; Software Architecture. Perspectives on an Emerging Discipline, Prentice Hall, 1996. Garlan and Mary Shaw. An introduction to software architecture. Technical Report- CMU-CS- 94166,Carnegie Mellon University, January 1994. Obrigado