Arquitetura de Software - Parte I - Introdução

231 views2249 WordsCopy TextShare
Prof Gilleanes Guedes Engenharia de Software e UML
Esta aula introduz os conceitos básicos sobre arquiteturas de software. Os principais conceitos apre...
Video Transcript:
Olá sejam bem-vindos ao canal engenharia de software com ênfase uml eu sou o professor gilian GES e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livros publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos sobre modelagem de software utilizando a linguagem uml na aula de hoje eu pretendo introduzir alguns conceitos básicos sobre arquitetura de software Então vamos iniciar a nossa aula então como eu falei esta vai ser uma introdução sobre arquiteturas de software eh esse tema será dividido em vários eh vídeos uma vez que
é um tema bastante extenso então eu vou começar com algumas definições básicas de arquitetura de software então de acordo com jazer arquitetura de software é o conjunto de componentes de seus relacionamentos que deve satisfazer os requisitos funcionais e não funcionais do sistema Lembrando que requisitos funcionais dizem respeito às funcionalidades às funções os serviços que o software deve oferecer aos seus usuários e os requisitos não funcionais dizem respeito aos atributos de qualidade do software ou seja características gerais do software como escalabilidade desempenho usabilidade confiabilidade segurança proteção manutenibilidade entre outros ainda de acordo com a i3e a
arquitetura de software é a organização fundamental do sistema seus componentes as relações entre esses componentes e entre os componentes e o ambiente que conduz ao seu projeto e a sua evolução e de acordo com o Bass a arquitetura de software é o conjunto de estruturas necessárias para compreender o sistema que inclui os elementos do software as as relações entre eles e as propriedades de ambos Então essas são algumas definições de arura de software Ah então basicamente uma arquitetura de software ela é uma estrutura lógica que estabelece como o software será dividido logicamente Quais elementos estarão
contidos em cada divisão do software e como essas divisões ou os elementos contidos nela se comunicarão Ah então as divisões de uma arquitetura elas podem ser representadas ou podem conter módulos camadas subsistemas entre outras possibilidades isso depende um pouco da arquitetura em questão os elementos contidos e nessas divisões podem conter por sua vez componentes componentes essencialmente são arquivos alguns autores reduzem componentes a somente arquivos executáveis mas em geral componentes inclui não somente arquivos executáveis como também bibliotecas arquivos de configuração arquivos de ajuda qualquer arquivo necessário para que o software possa funcionar a arquitetura de software
ela então se preocupa em compreender e oferecer como o software deverá ser organizado e como será a estrutura Geral do software e durante o processo de desenvolvimento a arquitetura Ela será o primeiro estágio do projeto de software e o último estágio da engenharia de requisitos a arquitetura de software ela costuma ser uma fase intermediária entre a engenharia de requisitos e o projeto de software é uma saída da engenharia de requisitos uma vez que foram identificados requisitos não funcionais eh e também requisitos funcionais obviamente então a conclusão da engenharia de requisitos já pode ser uma proposta
de arquitetura que será melhorada durante a fase de projeto então a a fase de arquitetura é um ponto intermediário entre a engenharia de requisitos e o projeto de software então bons softwares eles são projetados de acordo com estruturas bem definidas e organizadas essas estruturas vão determinar os alicerces a partir dos quais o software será desenvolvido e a organização dos componentes e como esses componentes se comunicarão vai orientar o projeto da solução Lembrando que todo software é uma solução para um problema e durante a fase de projeto se estabelece o como ou seja como problema será
solucionado vou falar sobre algumas características das arquiteturas de software as arquiteturas de software Elas costumam ter uma natureza multidisciplinar por quê Porque elas precisam lidar com diversos interesses e diversas partes interessadas ou seja os stakeholders pessoas que têm interesse no software ou que serão afetadas por ele as arquiteturas de software elas modelam e especific um conjunto de requisitos levando em consideração esses diversos pontos de vista Ah e as arquiteturas de software estão diretamente relacionadas aos atributos de qualidade software ou seja aos requisitos não funcionais que podem ser representados como ã confiabilidade manutenibilidade escalabilidade proteção eh
desempenho Como já foi falado outras características das arquiteturas elas podem ser reutilizadas eh uma arquitetura de software ela representa uma solução bem sucedida para um determinado problema então Elas costumam ser reaproveitadas uma vez que uma arquitetura se mostrou bem sucedida em uma situação no momento que existe uma situação com características razoavelmente semelhantes ela pode ser reaproveitada então as arquiteturas de software Elas costumam ser documentadas para serem reutilizadas por uma determinada organização ou até mesmo elas são documentadas e disponibilizadas paraa comunidade de maneira que qualquer pessoa que queira utilizar uma determinado padrão de arquitetura utilize em
suas aplicações as arquiteturas elas apresentam uma visão Geral do que deve ser feito no software e como isso deverá ser feito e elas costum respeitar as estruturas de comunicação das organizações que solicitar o software arquitetura de software ela identifica Então os elementos estruturais de um software em termos de módulos em termos de camadas os componentes contidos nesses elementos E como eles se relacionam ele a arquitetura ela determina um ela gera o modelo que irá descrever como o software está organizado por meio de um conjunto de elementos então a arquitetura de software ela apresenta uma estrutura
que permite analisar o comportamento do software que deverá ser desenvolvido ela também forma a base para reuso como eu falei arquiteturas de software podem ser reutilizadas então uma arquitetura de software ela permite reu ação de tomadas de decisão uma vez que eu posso reaproveitar uma arquitetura para problemas semelhantes e também a reutilização dos elementos de software que foram utilizados naquela arquitetura ela também suporta decisões iniciais de projeto e essas decisões terão um impacto bastante grande sobre todo o ciclo de vida no momento que se estabeleceu uma arquitetura essa arquitetura irá influenciar bastante o o restante
do processo de desenvolvimento e será muito Custoso alterar essa arquitetura então no momento que uma que se decide por uma arquitetura essa decisão ela tem que ser bem pensada e tem que ser uma decisão bem séria porque a mudança de arquitetura pode fazer com que o projeto temha que ser totalmente reiniciado a arquitetura de softwar elas facilitam a comunicação entre os desenvolvedores e as partes interessadas elas auxiliam a compreender e atender as necessidades das partes interessadas elas ajudam no gerenciamento de riscos levando em consideração principalmente os requisitos não funcionais se eh se cria uma arquitetura
de software para evitar que determinados riscos ocorram e ela contribui para redução de custos uma vez que eh se utiliza uma arquitetura um padrão arquitetural já definido o custo de criar uma arquitetura nova diminui entre outras ah entre outras reduções de custo obviamente Ah então como eu falei a arquitetura de um software pode e muitas vezes se baseia e um padrão o estilo arquitetural e só se cria uma arquitetura totalmente nova quando não existe um padrão que se adequ ao problema que está se tentando solucionar eh então quando se está se projetando se está definindo
qual arquitetura vai ser utilizada eh o engenheiro de software o arquiteto de software Ele precisa conhecer Quais são os padrões que existem atualmente eh incluindo para que eles foram projetados Em que situações eles são mais adequados e quais são os pontos fracos e fortes desses padrões para então decidir qual é o padrão mais mais adequado para um determinado problema Claro existem situações que nenum um padrão é realmente adequado e é necessário criar uma arquitetura nova mas criar uma arquitetura nova tem um custo muito alto então se for possível aproveitar um padrão é melhor Ahã então
o padrão arquitetural ele descreve a a como software está organizado e eles os padrões eles capturam a essência de uma arquitetura que foi adotada em soluções anteriores Aqui nós temos exemplo de uma arquitetura de um Sistema de Controle robotizado e empacotamento que foi sugerida pelo livro de engenheiria de software do Ian summerville ah que ele é dividido em vários módulos nós temos um módulo que representa o sistema divisão da do Sistema de Controle de robotizado nós temos o módulo que identifica objetos nós temos um módulo que controla um braço e uma garra iria ser dividido
em dois componentes controlador de braço e controlador de garra nós temos o módulo responsável pelo empacotamento propriamente dito que tem duas divisões o sistema de selação de embalagem o sistema de embalagem e nós temos o módulo do controlador de transportadora então nós podemos perceber que o módulo sistema de visão ele interage com o módulo de sistema de identificação de objetos e com o módulo para controle de braço e garra o sistema de identificação de objetos interage com o módulo de controle de braço e garra e com o módulo de empacotamento o módulo de braço e
garra eh ele interage com o sistema de embalagem Ah o módulo de empacotamento interage com o módulo de garra e também com o módulo de controle de transportadora Então esse aqui é um exemplo de uma arquitetura proposto pelo Samel ah falando um pouco sobre projeto de arquitetura em processos ágeis os processos ágeis costumam ser iterativos E incrementais então Eh o software vai sendo desenvolvido em partes e elas vão e vão vão vão sendo incrementadas ao longo do processo porém eh desenvolvimento incremental para eh definir arquiteturas não costuma ser bem bem sucedido porque refaturar a arquitetura
é bastante caro muito Custoso e às vezes tem eh a mudança de uma arquitetura força a quase que o abandono do projeto ao reinício do projeto então em processos Ares devido a essa questão custosa da definição da arquitetura eh se aceita que haja um estágio Inicial durante o processo de desenvolvimento em que seja definido uma arquitetura Geral do sistema com relação à engenharia de requisitos eh como eu falei existe uma sobreposição bastante forte uma intersecção bastante forte entre os processos de engenharia de quisitos e de projeto de arquitetura oficialmente o projeto de arquitetura como o
nome já diz se inicia na fase de projeto mas na verdade ele é uma saída da engenharia de requisitos ah a arquitetura a fase de arquitetura costuma ser uma fase intermediária entre a engenharia de requisit e a fase de projeto então muitas vezes decompor a arquitetura pode ser necessário para estruturar e organizar a especificação de requisitos Ah ainda também po se pode com parte do processo de engenharia de requisitos propor uma arquitetura abstrata do software Onde serão Associados grupos de funções ou recursos aos componentes módulos ou subsistemas que porão essa arquitetura e pode-se utilizar essa
arquitetura abstrata para discutir com as partes interessadas em termos de compreender requisitos e quais recursos necessários ao software Ah agora nós vamos falar sobre os tipos de projetos de arquitetura o projeto de arquitetura de software ela pode ser em pequena escala ou em larga escala ah arquiteturas em pequena escala elas são voltadas para softwares individuais individuais em termos que eles não costumar estar divididos entre diversos servidores eles são mais para ser executados individualmente em uma máquina então em arquiteturas de pequena escala se estabelece como software será divididos em módulos ou camadas por exemplo e como
esses módulos serão divididos em Componentes Quais componentes estarão contidos em cada módulo Então nesse tipo de arquitetura nós podemos utilizar diagramas de pacotes e diagramas de componentes da uml já arquiteturas em grande escala são bem mais complexas elas muitas vezes envolvem sistemas corporativos que que poderão incluir Grande entidades de módulos e componentes Possivelmente outros sistemas integrados outros softwares e possivelmente outras bibliotecas sistemas cots que são abreviação de commercial of the shelf que significa software de prateleira softwares com grande quantidade de funcionalidades que podem ser habilitadas ou desabilitadas inclusive desabilitar as funcionalidades que não não serão
utilizadas é recomendado para para evitar a o surgimento de eh comportamentos emergentes e também ah esse tipo de arquitetura poderá conter componentes de outros softwares ela uma arquitetura em grande escala em geral vai se distribuir por diversos servidores os seus componentes os seus módulos estão estarão distribuídos em diversas máquinas muitas vezes distantes geograficamente entre si muitas vezes esses módulos poderão ser replicados em várias dessas máquinas eh podem podem pertencer ser geridos ou utilizados por diversas empresas e é preciso que esse tipo de arquitetura é suporte escalabilidade horizontal e vertical escalabilidade horizontal diz respeito a acrescentar
mais máquinas mais servidores ao sistema e escalabilidade vertical é a capacidade de eu eh adicionar mais recursos a a um determinado servidor como memória Ram ou memória de armazenamento em disco por exemplo e nesse ponto aqui a escalabilidade ela também envolve a confiabilidade que é a capacidade de eu escalar o meu sistema sem que isso seja percebido pelos usuários sem afetar o desempenho do software aqui então em arquiteturas de grande escala eu posso utilizar diagramas de implantação e di programas de pacotes da uml e nós terminamos essa primeira aula sobre arquitetura de software espero que
esse conteúdo tenha sido útil se vocês gostaram desse vídeo eu peço que vocês curtam esse vídeo compartilhem com quem possa eh se interessar pelo assunto e se vocês ainda não estão inscritos eu peço que se inscrevam no canal obrigado pela atenção nós nos vemos nas próximas aulas
Related Videos
Estruturas e Visões Arquiteturais - Arquiteturas de Software - Parte II
11:56
Estruturas e Visões Arquiteturais - Arquit...
Prof Gilleanes Guedes Engenharia de Software e UML
184 views
Arquitetura de Software (Não é coisa de outro mundo) // Dicionário do Programador
11:31
Arquitetura de Software (Não é coisa de ou...
Código Fonte TV
116,455 views
THE UNTOLD STORY OF THE SOFTWARE ENGINEERING COLLAPSE
29:41
THE UNTOLD STORY OF THE SOFTWARE ENGINEERI...
Renato Augusto
111,571 views
Organismos Normativos & Normas de Qualidade ISO IEC 25000 - SQuaRE
30:08
Organismos Normativos & Normas de Qualidad...
Prof Gilleanes Guedes Engenharia de Software e UML
1,313 views
Garbage Collector Explained SIMPLY In 10 Min. - FIX MEMORY LEAKS
10:34
Garbage Collector Explained SIMPLY In 10 M...
ML Guy
572 views
Sorin Pârcălab | ACCIDENTE | STAND-UP SPECIAL - Varianta integrală pe Comedybox
18:26
Sorin Pârcălab | ACCIDENTE | STAND-UP SPEC...
Sorin Pârcălab STAND-UP COMEDY OFFICIAL
280,493 views
The Absolute Best Intro to Monads For Software Engineers
15:12
The Absolute Best Intro to Monads For Soft...
Studying With Alex
710,636 views
CHESTIONARUL IUBIRII. CE AM ÎNVĂȚAT DE LA PĂRINTELE GALERIU, BUNICUL MEU | Fain & Simplu 245
2:06:57
CHESTIONARUL IUBIRII. CE AM ÎNVĂȚAT DE LA ...
Fain & Simplu cu Mihai Morar
204,504 views
Insula din Italia unde oamenii uită să moară! Ultimul Paradis: secretele longevității
55:31
Insula din Italia unde oamenii uită să moa...
HaiHui in doi
36,902 views
Cristian Sima: "Vreau sa fac un unicorn!" | Aproximativ Discutii cu Gojira | Podcast
2:43:37
Cristian Sima: "Vreau sa fac un unicorn!" ...
HappyFishTV
78,846 views
O QUE ACONTECE QUANDO PARAMOS DE NOS INCOMODAR - MOTIVACIONAL - MARIO SERGIO CORTELLA
10:29
O QUE ACONTECE QUANDO PARAMOS DE NOS INCOM...
VidaMotivada
1,343 views
Giani Orlando – Agentul tău imobiliar | Las Fierbinți 26
20:35
Giani Orlando – Agentul tău imobiliar | La...
Las Fierbinți
682,431 views
Cum am rezolvat problema de matematică cerută de domnul Cristian Tudor Popescu
6:23
Cum am rezolvat problema de matematică cer...
Nicusor Dan
145,605 views
23 APRILIE 2025. De unde știe AUR numele bunică-mii?
16:55
23 APRILIE 2025. De unde știe AUR numele b...
Știrile zilei. Pe scurt, de la Recorder
37,642 views
Introdução à Arquitetura de Software - Gustavo Eugênio
29:45
Introdução à Arquitetura de Software - Gus...
Luby
156 views
MI-AM LUAT UN NOU TRACTOR / VIS DEVENIT REALITATE
21:42
MI-AM LUAT UN NOU TRACTOR / VIS DEVENIT RE...
Ionut Emil
23,528 views
PORTRET DE CANDIDAT: Crin Antonescu
28:57
PORTRET DE CANDIDAT: Crin Antonescu
Recorder
180,740 views
MPS–BR - Melhoria de Processo do Software Brasileiro
28:21
MPS–BR - Melhoria de Processo do Software ...
Prof Gilleanes Guedes Engenharia de Software e UML
1,768 views
Copyright © 2025. Made with ♥ in London by YTScribe.com