Fase 1: Utilização de diagramas
compostos de caixas e setas e notas
informais, surgem as primeiras ideias de
tipos abstratos de dados, orientação a
objetos e herança, surgem os primeiros
componentes considerados caixas
pretas. Trabalhos com estruturas de
software, pipe-filter, repositórios,
invocação implícita e etc. que ajudam a
melhorar a formalização da solução.
Fase 2: Surgem os modelos basícos, surgem visão arquitetural do software
Fase 3 : Surge as primeiras ideias de refinamento em modelos, Boas Práticas.
Fase 4: Conceito de estilo de arquiteturais, ferramentas case
para automatizar o processo de construção de software
Fase 5: Maturidade do conceito, uso da UML como padrão
difundido na contrução de modelo arquiteturais de software
Fase 6 : Tecnologias n-camadas, cliente/servidor, agente
base arquitetura, Serviço orientado a
serviço(SOA)
Ciclo de Vida
Definição: defini a arquitetura do projeto
Usando:
Padrões arquiteturais
Design Patterns
Experiencias Passadas
Também
1. Avalia
2. Atualiza
3. Refatora
4. Arquitetura dentro do
ciclo de vida do produto e
sendo aplicada na
implementação.
Visões
Logica
abordada os requisitos funcionais do
sistema, indicando os pacotes,
subsistemas e classes;
Implementação
descreve a organização dos elementos estatísticos da
arquitetura, compostos pelos códigos fontes, executáveis,
componentes, arquivos, banco de dados e outros artefatos
Processo
mostra os aspectos da arquitetura associados à
execução concorrente de códigos (threads,
processos, interfaces, etc.) e aborda assuntos como
paralelismo e outros.
Implantação
mostra os módulos executáveis e
aqueles utilizados em tempo de-
execução da arquitetura.
Caso de Uso
apresenta um ponto de vista externo ao sistema,
descrevendo seu comportamento sob a perspectiva
dos usuários e projetistas, capturando os requisitos
funcionais que definirão a estrutura base do sistema.
Estilo Arquiteturais
Tipos de dados
Abstratos
Estrutura de
Software
Inclui representação de
um empacotamento
com seus operadores
Especificações
Primeiramente as
especificações
matemáticas
Questoes de linguagem
Módulos, escopo,
tipos definido pelo
usuário
Integridade do Resultado
Invariantes de estruturas
de dados e proteção
contra outra manipulação;
Filtros: obtém, executa função sobre o dado de
entrada e fornece saídas. Pipes – transfere, buffer
dados e sincroniza componentes vizinhos com
ativos. Fonte de dados – fornece entrada para
processamento no Pipes. Receptores de dados -
consome saída
Estrutura : Contexto Problema Solução
A análise léxica é a primeira fase do compilador. A
função do analisador léxico, também denominado
scanner, é ler o código fonte, caracter a caracter,
buscando a separação e identificação dos
elementos componentes do programa fonte,
denominados símbolos léxicos ou tokens. É
também de responsabilidade desta fase a
eliminação de elementos "decorativos" do
programa, tais como espaços em branco, marcas
de formatação de texto e comentários.
A análise sintática, ou análise gramatical é o processo de se
determinar se uma cadeia de símbolos léxicos pode ser gerada
por uma gramática. O analisador sintático é o cerne do
compilador, responsável por verificar se os símbolos contidos
no programa fonte formam um programa válido, ou não. No
caso de analisadores sintáticos top-down, temos a opção de
escrevê-los à mão ou gerá-los de forma automática, mas os
analisadores bottom-up só podem ser gerados
automaticamente.
As análises léxica e sintática não estão preocupadas com o significado ou
semântica dos programas que elas processam. O papel do analisador
semântico é prover métodos pelos quais as estruturas construídas pelo
analisador sintático possam ser avaliadas ou executadas. As gramáticas
livres de contexto não são suficientemente poderosas para descrever uma
série de construções das linguagens de programação, como por exemplo
regras de escopo, regras de visibilidade e consistência de tipos. É papel do
analisador semântico assegurar que todas as regras sensíveis ao contexto
da linguagem estejam analisadas e verificadas quanto à sua validade. Um
exemplo de tarefa própria do analisador semântico é a checagem de tipos
de variáveis em expressões.
Geração de código intermediário Na fase de geração de código intermediário, ocorre a
transformação da árvore sintática em uma representação intermediária do código fonte. Esta
linguagem intermediária é mais próxima da linguagem objeto do que o código fonte, mas ainda
permite uma manipulação mais fácil do que se código assembly ou código de máquina fosse
utilizado.
Cliente Servidor
SOA
Camadas
Uso Conhecidos
Máquina virtual, banco de dados, firewall,
DAL, Mapa, cliente/servidor, API
Estrutura
P2P
Categorias e Padroes Estrutrais
Estrutural
Padrao: padrões nesta categoria ajudam você a
evitar um “mar” de componentes ou objetos. Em
particular, eles suportam uma decomposição
controlada de uma tarefa global do sistema em
sub-tarefas cooperativas.
Exemplos: Camadas | Pipes e Filtros | Quadro Negro
Distribuída
esta categoria compreende macro-soluções para
sistemas baseados em distribuição.
Exemplo: Broker
Interativa
esta categoria compreende dois padrões que
suportam a estruturação de sistemas de software
que trabalham a interação homem-máquina.
os padrões nessa categoria suportam a extensão de
aplicações e suas adaptações às tecnologias em
evolução, bem como às mudanças dos requisitos
funcionais.
Exemplos: MicroKernel | Reflection
Padrão Arquitetural
Descrição deve possuir : Nome
Exemplo Contexto Problema
Solução Estrutura Usos
conhecidos