Please enable JavaScript.
Coggle requires JavaScript to display documents.
Projeto de arquitetura (Sommerville Cap. 6), :control_knobs: Controlador …
Projeto de arquitetura
(Sommerville Cap. 6)
Compreender
como o sistema deve ser organizado e com a estrutura geral deste sistema.
Identificar os subsistemas de um sistema e o
framework
de controle e comunicação
(principais componentes de um sistema)
(decomposição usada para discussão com
stakeholders
)
Fase inicial de concepção do sistema, isto é, seu
design
.
Elo/Ligação entre especificação e projeto (design)
A decomposição de uma
arquitetura
normalmente é necessária para estruturar e organizar a especificação.
Arquitetura
em
larga escala
--> arquitetura de sistemas corporativos complexos
Vantagens
em projetar/documentar a arquitetura:
Comunicação com interessados (
stakeholders
)
Análise de sistemas
Reuso em larga escala
Modelos de
Arquitetura
Arquiteturas similares refletem soluções para algum domínio
(Estilos Arquiteturais) (Reúso de Arquitetura)
Características
(estilo e estrutura da
arquitetura depende de RNF)
desempenho
:arrow_right: poucos componentes de maior granularidade),
proteção
(
security
) :arrow_right: componentes criíicos em camadas internas,
segurança
(
safety
) :arrow_right: operações críticas localizadas (poucos componentes),
disponibilidade
:arrow_right: componentes redundantes,
manutenibilidade
:arrow_right: componentes autocontidos de baixa granularidade
Visões da arquitetura
:
Modelo de Visão 4 + 1
:check: visão lógica (classes/objetos)
:check: visão física (HW e componentes distribuídos entre os processadores)
:check: visão de desenvolvimento (componentes de SW alocados às equipes/desenvolvedores
:check: visão de processo (processos em tempo de execução)
+
As visões são relacionadas por meio dos
(⬬) casos de uso
(ou cenários)
em
pequena escala
--> arquitetura dos programas individuais
Relação (e importância) com Requisitos Não-Funcionais
:check:
Componentes individuais
--> implementam requisitos funcionais
:check:
Arquitetura
(organização dos componentes e forma de comunicação) --> requisitos NÃO-Funcionais (RNF)
Pode servir para:
1) Plano de projeto para
negociação
de requisitos
2) Estruturar as
discussões
com
stakeholders
No geral, modelada por
diagrama de blocos
, visando:
:small_blue_diamond: facilitar a discussão sobre o projeto
:small_blue_diamond: documentar a arquitetura projetada
Decisões
de projeto:grey_question:
Distribuição do sistema?
Padrões/estilos?
(cliente-servidor, camadas)
Abordagem para estruturar?
Decomposição em subcomponentes?
Estratégia de controle?
Estratégia arquitetural para RNF?
Avaliação do projeto?
Documentação da arquitetura?
Arquitetura genérica?
Padrões de Arquitetura
MVC - Modelo-Visão-Controlador
separa
apresentação
(V) e
interação
(C) dos
dados
(M)
base de interação de sistemas
Web
:link:
https://drive.google.com/file/d/1UibHJ2SXfoyOWSYOPbFf4shuZamhTlMz/view?usp=sharing
Em Camadas
:check: outra forma de separação e independência
:check: funcionalidades organizadas em
camadas
:check: apoia o desenvolvimento
incremental
(camadas independentes, serviços entre camadas subjacentes)
:link:
https://drive.google.com/file/d/1PQ6txNZkQGTjecNpt_mRgJ-EHJtR7GqQ/view?usp=sharing
Interface usuário
Gerência IU, autenticação, autorização
Lógica de nengócio, recursos sistema
Apoio de sistema (SO, BD, ...)
De Repositório
:check: componentes interagem
compartilhando dados
:check: controle é dos componentes que usam o repositório
:link:
https://drive.google.com/file/d/1VfrmpAyts7DlGzROsYN2kxR164t2YCUi/view?usp=sharing
obs.
: no modelo
quadro negro
(
blackboard
) é o repositório que aciona os componentes (repositório ativo).
⛁
Repositório projeto
⌸ Editor
UML
Editor Java
Gerador
código
Editor Python
Gerador
relatório
Analisador
projeto
Tradutor
de projeto
Cliente-Servidor
:check: Usada em sistemas distribuídos
:check: Serviços/servidores e clientes (+serviço de nomes)
:check: Chamadas de Procedimento Remoto em um protocolo de
solicitação-resposta
:link:
https://drive.google.com/file/d/1gm_kpBv55OdT_4P1xEuSr2Ab3BVTp_-S/view?usp=sharing
:cloud: internet
Cliente
Cliente
Cliente
Servidor
Servidor
Servidor
Duto e Filtro
:check: componentes de processamento (
filtros
) transformam suas entradas e produzem saídas que fluem (como um
duto
) para o próximo componente.
:link:
https://drive.google.com/file/d/1F1g0MmhuTVjEO2ktAzD9aRJs-uFowFmy/view?usp=sharing
Faturas
Ler faturas
emitidas
:pen:
Descrição abstrata, estilizada, de boas práticas experimentadas e testadas em diferentes sistemas e ambientes
Arquitetura de Aplicações
:check: Encapsulam as principais características de uma classe de sistemas.
Aplicações de processamento de transações.
Processamento
de transações
https://drive.google.com/file/d/1BBGlUrkBkv8b0sPeHd4xtts6gN4jAIof/view?usp=sharing
Processamento
E/S
Lógica da
aplicação
Gerente de
transação
Banco
de dados
Sistemas de
Informação
https://drive.google.com/file/d/1CMnl84vcygrRSHEqfJQ11mLb86ckCrt1/view?usp=sharing
Interface de usuário
Comun. Usuário / Autent. e autorização
Recup. e modif. de informação
BD de gerenc. transações
Sistemas de processamento de linguagens.
https://drive.google.com/file/d/1YUY1GXSmQjCoJVGHfc9IuvCmrk35f1rb/view?usp=sharing
https://drive.google.com/file/d/1uvnNgs24ZZ6PhPUfrKWJ1_pZZNFSI0Ou/view?usp=sharing
https://drive.google.com/file/d/1znJCqEm-WLHOCPZ2K9lxUj4Ypgy6ZyTA/view?usp=sharing
Instruções linguagem
Tradutor
Verif. sintaxe
Verif. semântica
Gerar
Instruções abstratas
Análise léxica
(
tokens
)
Análise
sintática
(gramática)
Análise
semântica
(correção sem.)
Geração
de código
(cód. maq. abs)
Tabela de símbolos
Árvore de sintaxe
Tabela
de
símbolos
Árvore
sintaxe
abstrata
Definição
de
gramática
Definição
de
saídas
Gerador de
código
Otimizador
Impressora
Editor
Repositório
Resultado
: modelo de arquitetura que descreve como o sistema está organizado em um conjunto de componentes de comunicação.
Processos ágeis
- é aceitável produzir uma arquitetura global, mas o desenvolvimento incremental de uma arquitetura normalmente não é bem-sucedido.
:control_knobs: Controlador
Ações<->Modelo (atualização)
Seleção de Visões
→ selecão de visão
eventos de usuário ←
:eye: Visão
Modelos
Renders
Atualização Modelo
Eventos<->Controlador
→ mudança estado
:information_source: Modelo
Encapsula o
estado
da App
Notifica Visão sobre mudanças
→ notificação de mudança
consulta de estado ←
Pagamentos
Identificar
pagamentos
Encontrar
pagamentos
devidos
Emitir lembretes
de pagamento
Lembretes
Emitir recibos
Recibos
Dados
Interpretador
Buscar
Executar
Resultados
Analisador
léxico
Analisador
de sintaxe
Analisador
de
semântica