Escolar Documentos
Profissional Documentos
Cultura Documentos
com
Samuel Martins – sbm.martins@gmail.com
1
Design de software;
Aspectos gerais de arquitetura de software;
Modelos de arquitetura de software;
2
Aumento da complexidade dos sistemas;
Redução de tempo x custo x manutenção;
Desafio em manter os sistemas escaláveis,
performáticos e com alta qualidade;
Desenho de sistemas é uma tarefa difícil;
Sistemas que alcancem os objetivos.
3
Projetar antes de construir
4
Descreve aspectos do software:
◦ Estrutura estática;
◦ Descrição dos dados a serem utilizados;
◦ Algoritmos a serem utilizados;
◦ Módulos e agrupamentos;
◦ Interação entre módulos.
5
Processo de escolha da representação de uma
solução a partir de várias alternativas, dadas
as restrições dos objetivos.
◦ Diversificação: alternativas são geradas, ideias de
soluções.
◦ Convergência: seleção das alternativas que
satisfazem as restrições.
6
Tem início com uma necessidade;
◦ Requisitos funcionais e não funcionais.
8
Arquitetura é a definição dos elementos que
compõem uma estrutura e como eles se
relacionam.
9
A estrutura é o próprio software e os
elementos são os constituintes do software
como: classes, componentes e serviços;
A arquitetura define como são organizados
esses elementos para montar o software.
10
11
“Uma arquitetura de software envolve a
descrição de elementos arquiteturais dos quais
os sistemas serão construídos, interações entre
esses elementos, padrões que guiam suas
composições e restrições sobre estes padrões”.
Garlan, 2000
12
Arquitetura = {Elementos, Organização,
Decisões}
13
É influenciada por fatores de implementação
◦ arquitetura de computador;
◦ sistema operacional;
◦ SGBD;
◦ protocolos de rede;
◦ linguagem de programação;
◦ ambiente de interface gráfica;
◦ bibliotecas de funções disponíveis;
◦ sistemas legados;
◦ necessidades de performance, portabilidade etc.
14
15
Benefícios da arquitetura de software como
elemento norteador do processo de
desenvolvimento:
◦ Suporte ao reuso;
◦ Base para estimar custos e prazos;
◦ Base para análise da consistência e dependência;
◦ Determinar atributos de qualidade;
◦ Base para atender os requisitos do sistema
16
Caracteriza a arquitetura de um sistema:
◦ Identificação de componentes;
◦ Identificação de mecanismos de interação;
◦ Identificação de propriedades.
Oferece
◦ Suporte a atributos de qualidade;
◦ Diferenciação entre arquiteturas;
◦ Menos esforço para entender o projeto;
◦ Reuso
17
Estruturação do Sistema
◦ Modelo de repositório;
◦ Modelo cliente-servidor;
◦ Modelo em camadas.
18
Os subsistemas precisam trocar informações
para trabalhar em conjunto:
◦ Dados em um banco de dados central;
◦ Cada subsistema mantem seu próprio banco de
dados
Podem usar abstração de repositório centrado
Implementação distribuída
19
Vantagens Desvantagens
◦ Eficiência em ◦ Subsistemas de acordo
compartilhar grandes com um modelo de dados
quantidades de dados; padronizado;
◦ Dados aderem a uma ◦ Evolução de dados é
representação comum difícil e dispendiosa;
◦ Simplifica o projeto de ◦ Dificuldade para distribuir
aplicações fortemente de forma eficiente
baseadas em dados
20
Arquitetura de conjunto de ferramentas CASE
21
Dados e processamento distribuídos por uma
variedade de componentes;
Servidores independentes que fornecem
serviços;
Clientes utilizam os serviços;
Comunicação através de uma rede
22
Vantagens Desvantagens
◦ Separação de ◦ Gerenciamento
interesses redundante em cada
◦ Inerentemente servidor;
distribuído ◦ Restrições e respostas
◦ Facilidade em adicionar casadas;
servidores ou atualizar ◦ Sem centralização
servidores
23
Biblioteca de filmes e fotografias
24
Organiza o sistema em um conjunto de
camadas
◦ Cada uma fornece um conjunto de serviços
◦ Cada camada é cliente da camada subjacente
25
Vantagens Desvantagens
◦ Facilidade de ◦ Duplicação de
compreensão funcionalidade;
◦ Facilidade de ◦ Dificuldade em
manutenção estruturar em camadas
◦ Desenvolvimento ◦ Overhead de
independente implementação e
desempenho
26
Sistema de gerenciamento de versões
27
Modelos de Controle
◦ Controle centralizado;
◦ Orientados a eventos
28
Um componente é responsável pelo
gerenciamento e execução de outros
componentes;
◦ Chamada-Retorno: controle se inicia no topo de uma
hierarquia. Pode ser sequencial ou concorrente;
◦ Gerenciador: aplicável a sistemas concorrentes e de
tempo real. Um componente controla a parada, início e a
coordenação de outros processos
29
Chamada-Retorno Gerenciador
30
Dirigidos por eventos externos
◦ Timing dos eventos está fora do controle dos
componentes que os processam
Estilo Publisher/Subscriber
◦ Eventos são transmitidos a todos os componentes
◦ Qualquer componente interessado pode respondê-
los
31
Dirigidos por eventos externos
◦ Timing dos eventos está fora do controle dos
componentes que os processam
32
Decomposição em Módulos
◦ Modelos de objetos;
◦ Modelos de fluxo de dados
33
Conjunto de objetos com interfaces bem
definidas;
Cada objeto oferece um conjunto de serviços;
Uma implementação orientada a objetos não
implica em uma arquitetura orientada a
objetos
34
Vantagens Desvantagens
◦ Objetos fracamente ◦ Mudanças de interface
acoplados devido ao tem alto impacto;
uso de interfaces; ◦ Dependências entre
◦ Linguagens de objetos não são
implementação limitadas.
orientada a objeto são
amplamente usadas.
35
Sistema de processamento de faturas
36
Transformações funcionais processam
entradas para produzir saídas
◦ Componentes são chamados de filtros
◦ Conectores são dutos
37
Vantagens Desvantagens
◦ Reuso de transformações ◦ Requer formato comum
◦ Fácil adicionar novas para transferência de
transformações dados ao longo dos
38
Sistema de processamento de faturas
39