Joice Mendes [email protected] Samuel Martins sbm ...Joice Mendes – [email protected]...
Transcript of Joice Mendes [email protected] Samuel Martins sbm ...Joice Mendes – [email protected]...
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