Buscar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 33 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquitetura de Software 
Parte 1/3 – Introdução*
Jorge H. C. Fernandes
Junho de 1999
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura de Software
?Este curso é baseado no livro Software 
Architecture in Practice, de Len Bass, Paul
Clements and Rick Kazman. Addison-Wesley, 
1998.
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Bibliografia
?Software Architecture in Practice. Len Bass, Paul 
Clements and Rick Kazman. Addison-Wesley, 
1998.
?Software Architecture: Perspectives on an 
Emerging Discipline. Mary Shaw and David 
Garlan. Prentice-Hall, 1996.
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Conteúdo
?O que é Arquitetura de Software?
?Arquitetura versus Design
?Visões Arquiteturais
?Estilos, Modelos e Arquiteturas de 
Software
? Estilos Arquiteturais
? Indicações de Uso de Estilos Arquiteturais
O que é Arquitetura de 
Software?
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura de Software 
(de um Programa ou Sistema Computacional)
É a estrutura, ou as estruturas, do sistema 
composta por:
?Seus componentes de software;
?As propriedades externamente visíveis 
destes componentes;
?Os relacionamentos entre estes
?Dependem da natureza dos componentes
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Componentes são Abstrações
?Objetos? Processos? Processadores? 
Bibliotecas? Bases de Dados? Produtos 
Comerciais?
?São OMITIDAS as informações sobre 
componentes que NÃO são pertinentes às 
interações entre eles
?Detalhes privados dos componentes NÃO
pertencem à arquitetura
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Propriedades Externamente 
Visíveis
Dependem da abstração que se está 
observando, como:
?Métodos que provê (objetos, classes);
?Características de desempenho (processador, 
rede);
?Tratamento de erros (módulos);
?Uso de recursos compartilhados (funções);
?etc.
Arquitetura versus Design
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura versus Design
?Design
?Objetiva a realização do sistema como uma 
entidade funcional
?Faz parte do software life-cycle 
?Resulta dos requisitos técnicos que o sistema 
deve satisfazer.
?Arquitetura
?Considera um maior escopo de requisitos 
?confiabilidade, baixo custo, modificabilidade, segurança, 
turnover de pessoal, time-to-market
?horizonte de tempo que extrapola a vida de um sistema 
em particular
?Representa a organização que a co-produz
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Todo Sistema de Software 
Possui uma Arquitetura
?Que pode não ser conhecida pelos 
usuários do sistema, pelos responsáveis 
pela sua operação
?O comportamento externo de cada 
componente é parte integrante da 
arquitetura
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura de Software:
Primeiras Decisões de Projeto
?Restringe a implementação
?Direciona estrutura organizacional
?Inibe e estimula atributos de qualidade do 
sistema
?Permitem predições sobre qualidade dos 
sistemas
?Facilita análise e gerência de mudanças
?Auxilia prototipagem evolucionária
Visões Arquiteturais
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Sistemas possuem mais de 
uma Estrutura
?Diversos pontos de vista
?Times e sub-times de programação
? Processos e sincronizações
?Módulos e processos
? Subdivisão e sincronização
?Desenvolvimento versus runtime
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Visões (ou estruturas) 
Arquiteturais mais Comuns
?Estrutura de Módulos
?Estrutura Lógica ou Conceitual
?Estrutura de Processo ou de Coordenação
?Estrutura Física
?Estrutura de Usos
?Estrutura de Chamadas
?Fluxo de Dados
?Fluxo de Controle
?Estrutura de Classes
Unidade
Unidade
Unidade
Relação
Relação
Relação
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Módulos
? Unidades são atribuições de tarefas, associadas a 
especificações de interfaces, código, planos de teste
? Se ligam pela relação “é-sub-módulo”, “compartilha-
segredos-com”
? São usadas para alocação de recursos, planejamento e 
estruturação do desenvolvimento, encapsulamento, 
controle de configuração
Módulo A
Módulo C
Sub-Módulo
Importa Módulo B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura Lógica ou Conceitual
? Abstração dos requisitos funcionais de um sistema
? Unidades são funções
? Se interligam através da relação “compartilham-dados-
com”
? Facilitam compreensão do espaço de problemas
?Modelos de referência em geral são estruturas lógicas
Função A
função C
Compartilha dados
Compartilha dados Função B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Processo ou de 
Coordenação
? Trata de aspectos dinâmicos de um sistema em 
execução
? As unidades são processos ou threads
? Se ligam através de relações “sincronizam-com”, “não-
podem-executar-sem”, “não-podem-executar-com”, e 
outras relações tratando de sincronização e concorrência
? Permitem análise de escalonamento e de desempenho
Sincroniza
Compete com
Depende
Processo A
Processo C
Processo B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura Física
?Mapeamento do software no hardware
? Unidades são processadores
? Se ligam através da relação “comunica-se com”
? Permitem avaliação de performance, disponibilidade e 
segurança
Processador
Bridge
ProcessadorProcessador
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Usos
? Unidades são procedimentos ou módulos
? Se ligam através da relação “necessitam-da-presença-
de”
? Facilitam a construção de sub-conjuntos de 
desenvolvimento
Módulo A
Módulo C
Usa
Usa
Usa Módulo B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Chamadas
? Unidades são programas ou sub-procedimentos
? Interagem pela relação “chama” ou “invoca-com-
parâmetros”
? Permite rastrear o fluxo de execução de um programa e 
eliminação de gargalos
Programa A
Programa C
Invoca (parâmetros)
Invoca (parâmetros)
Invoca (parâmetros) Programa B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Fluxo de Dados
? Unidades são programas ou módulos 
? Ligam-se através da relação “pode-enviar-dados-para”
? Útil para rastrear requisitos funcionais
Módulo A
Módulo C
Dados
Dados
Dados Módulo B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Fluxo de Controle
? Unidades são programas, módulos ou estados do 
sistema
? Ligam-se pela relação “se-tornam-ativos-após”
? Útil para verificar o comportamento funcional do sistema 
e temporização
? Pode ser idêntico à estrutura de chamada quando o 
controle se dá exclusivamente pela invocação
Programa A
Programa C
Ativa
Precede
Ativa Módulo B
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estrutura de Classes
? Unidades são objetos e classes.
? As relações são “herda-de”, “é-uma-instância-de”
? Facilitam o projeto de sistemas orientados a objetos
Implementor
operationImp()
ConcreteImplementorA
operationImp()
ConcreteImplementorB
operationImp()
Abstraction
operation()
imp
imp.operationImpl();
RefinedAbstraction
Client
Estilos, Modelos e Arquiteturas
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Conceitos usados em 
Arquitetura e Design
?Estilos Arquiteturais
?Modelos de Referência
?Arquiteturas de Referência
?Arquitetura de Software
?Arquitetura de Sistema
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Relacionamentos
Modelo de 
Referência
Estilo
Arquitetural
Arquitetura
de Referência
Arquitetura
de Software
Arquitetura
de Sistema
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estilos Arquiteturais
?Descrição dos tipos de componentes
?Padrões de 
?Controle de execução
?Transferência de dados
?Restrições sobre uma arquitetura? cliente-servidor, pipes-e-filtros, camadas, etc
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Modelo de Referência
?Divisão de funcionalidade em partes, 
juntamente com o fluxo de dados entre 
estas
?Características de domínios amadurecidos
?Compiladores, DBMS, WWW, j2ee, etc
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura de Referência
Modelo de referência mapeado em:
?Componentes de software (os quais irão 
cooperativamente implementar a 
funcionalidade definida no modelo de 
referência)
? Fluxos de dados entre os componentes
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Arquitetura de sistema
É o que está sendo executado
? Processos
? Processadores
?CPU
?Memória
?Configuração atual da rede (backbone, 
routers, bridges, etc)
?Mapeamento de processos para servidores
Copyright © 1999, por Jorge H. C. Fernandes (jorge@dimap.ufrn.br)
Estilos Arquiteturais mais 
Comuns (Mary Shaw, 96)
? Data flow
? Batch
? Pipes e filtros
? Chamada e retorno
? Programa principal e 
subrotinas
? Remote Procedure Call
?Orientado a objetos/TAD
? Camadas
? Componentes 
Independentes
? Processos comunicantes
?Cliente/Servidor
? Sistemas de eventos 
? Invocação Implícita
? Centrado em Dados
? Repositório
? Blackboard 
?Máquina virtual
? Interpretador
Arquitetura de Software 
Parte 1/3 - Introdução
Jorge H. C. Fernandes
Junho de 1999

Mais conteúdos dessa disciplina