Você está na página 1de 39

Joice Mendes – joice.mendes@gmail.

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

 Design facilita duas atividades:


1. Avaliação do sistemas contra seus objetivos 
confiabilidade;
2. Construção do sistema  guia para a construção.

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.

 É projetado para, posteriormente, ser construído;


 O produto supre as necessidades do cliente.

Aquilo que se pretende alcançar para resolver as


necessidades do cliente

Visão geral do sistema


7
 Duas atividades:
◦ Design de alto nível: descreve a arquitetura do
software, como o software é decomposto e
organizado em módulos e suas relações.
◦ Design de baixo nível: Descreve o comportamento
específico e em detalhes dos módulos que
compõem o design arquitetural

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}

 Elementos de processamento, de dados e de


conexão;
 Organização dita as relações entre os
elementos.

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

 Desenvolvimento incremental dos


subsistemas em camadas diferentes

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

 Estilo orientado a interrupções


◦ Usado em sistemas de tempo real
◦ Interrupções são detectadas por tratadores e
passadas por outros componentes para
processamento.

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

 Útil para sistemas com pouca interação com


usuários

37
 Vantagens  Desvantagens
◦ Reuso de transformações ◦ Requer formato comum
◦ Fácil adicionar novas para transferência de
transformações dados ao longo dos

◦ Simples implementar conectores

como sistema ◦ Não apropriado para


concorrente ou aplicações interativas
sequencial

38
 Sistema de processamento de faturas

39

Você também pode gostar