Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com...

Post on 16-Jul-2020

1 views 0 download

Transcript of Joice Mendes joice.mendes@gmail.com Samuel Martins sbm ...Joice Mendes – joice.mendes@gmail.com...

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

18

Estruturação do Sistema

◦ Modelo de repositório;

◦ Modelo cliente-servidor;

◦ Modelo em camadas.

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

◦ Eficiência em

compartilhar grandes

quantidades de dados;

◦ Dados aderem a uma

representação comum

◦ Simplifica o projeto de

aplicações fortemente

baseadas em dados

Desvantagens

◦ Subsistemas de acordo

com um modelo de dados

padronizado;

◦ Evolução de dados é

difícil e dispendiosa;

◦ Dificuldade para distribuir

de forma eficiente

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

◦ Separação de

interesses

◦ Inerentemente

distribuído

◦ Facilidade em adicionar

servidores ou atualizar

servidores

Desvantagens

◦ Gerenciamento

redundante em cada

servidor;

◦ Restrições e respostas

casadas;

◦ Sem centralização

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

◦ Facilidade de

compreensão

◦ Facilidade de

manutenção

◦ Desenvolvimento

independente

Desvantagens

◦ Duplicação de

funcionalidade;

◦ Dificuldade em

estruturar em camadas

◦ Overhead de

implementação e

desempenho

26

Sistema de gerenciamento de versões

27

28

Modelos de Controle

◦ Controle centralizado;

◦ Orientados a eventos

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

33

Decomposição em Módulos

◦ Modelos de objetos;

◦ Modelos de fluxo de dados

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

◦ Objetos fracamente

acoplados devido ao

uso de interfaces;

◦ Linguagens de

implementação

orientada a objeto são

amplamente usadas.

Desvantagens

◦ Mudanças de interface

tem alto impacto;

◦ Dependências entre

objetos não são

limitadas.

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

◦ Reuso de transformações

◦ Fácil adicionar novas

transformações

◦ Simples implementar

como sistema

concorrente ou

sequencial

Desvantagens

◦ Requer formato comum

para transferência de

dados ao longo dos

conectores

◦ Não apropriado para

aplicações interativas

38

Sistema de processamento de faturas

39