Projeto de Arquitetura



Documentos relacionados
Projeto de Arquitetura

Engenharia de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Padrões Arquiteturais e de Integração - Parte 1

Projeto de Arquitetura

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

ESTUDO DE CASO WINDOWS VISTA

Engenharia de Requisitos

Sistemas Distribuídos

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Introdução ao Modelos de Duas Camadas Cliente Servidor

ISO/IEC 12207: Gerência de Configuração

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Análise e Projeto Orientados por Objetos

Arquitetura dos Sistemas de Informação Distribuídos

EVOLUÇÃO DE SOFTWARE

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Disciplina de Banco de Dados Introdução

Prototipação de Software

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Requisitos de Software

Gerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas

Engenharia de Software

SISTEMAS DISTRIBUÍDOS

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

ARQUITETURA DE SOFTWARE

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Requisitos de Software

UFG - Instituto de Informática

3 SCS: Sistema de Componentes de Software

ENGENHARIA DE SOFTWARE I

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Engenharia de Requisitos Estudo de Caso

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Estilos Arquiteturais. Estilos Arquiteturais. Exemplos de Estilos Arquiteturais. Estilo: Pipe e Filtros

Fundamentos de Banco de Dados

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

SISTEMAS DISTRIBUIDOS

Professor: Curso: Disciplina:

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Modelos de Arquiteturas. Prof. Andrêza Leite

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Modelos de Sistemas Leitura: Sommerville; Pressman

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

UFG - Instituto de Informática

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Engenharia de Software III

Conceitos de Banco de Dados

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Regulamento do Grupo de Coordenação da Transição da Administração da IANA. V.10 (27 de agosto de 2014)

ENG1000 Introdução à Engenharia

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

Setores Trilhas. Espaço entre setores Espaço entre trilhas

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.


Universidade Paulista

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Introdução à Computação

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Sistemas Operacionais

Modelo Cascata ou Clássico

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Processos de gerenciamento de projetos em um projeto

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

GARANTIA DA QUALIDADE DE SOFTWARE

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Prof. JUBRAN. Aula 1 - Conceitos Básicos de Sistemas de Informação

Sistema Operacional Correção - Exercício de Revisão

Sistemas Cliente-Servidor

SISTEMAS OPERACIONAIS

Análise e Projeto Orientados a Objetos Aula IV Requisitos. Prof.: Bruno E. G. Gomes IFRN

Persistência e Banco de Dados em Jogos Digitais

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Eduardo Bezerra. Editora Campus/Elsevier

SISTEMAS OPERACIONAIS

Desenvolvimento de Sistemas Tolerantes a Falhas

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Qualidade de Software

SISTEMA GERENCIADOR DE BANCO DE DADOS

Documento de Análise e Projeto VideoSystem

Abordagem de Processo: conceitos e diretrizes para sua implementação

Transcrição:

Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto de arquitetura que têm de ser feitas Apresentar três estilos complementares de arquitetura que abrangem a organização, decomposição e controle Discutir como as arquiteturas de referência são usadas para comunicar e comparar arquiteturas Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 2

Tópicos abordados Decisões de projeto de arquitetura Organização de sistema Estilos de decomposição modular Modelos de controle Arquiteturas de referência Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 3 Arquitetura de software O processo de projeto para identificar os subsistemas que constituem um sistema e o framework para controle e comunicação de subsistema é denominado projeto de arquitetura. A saída desse processo de projeto é uma descrição da arquitetura de software. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 4

Projeto de arquitetura É o primeiro estágio do processo de projeto de sistema. Representa a ligação entre os processos de especificação e de projeto. É freqüentemente conduzido em paralelo com algumas atividades de especificação. Envolve a identificação dos componentes principais do sistema e suas comunicações. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 5 Vantagens da arquitetura explícita Comunicação de stakeholders A arquitetura pode ser usada como um foco de discussão pelos stakeholders do sistema. Análise de sistema Se há possibilidade de o sistema atender a seus requisitos não funcionais. Reuso em larga escala A arquitetura pode ser reusável em uma variedade de sistemas. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 6

Características de arquitetura e de sistema A arquitetura de sistema afeta o desempenho, facilidade de distribuição e de manutenção de um sistema. O estilo e a estrutura escolhidos para uma aplicação podem depender dos requisitos não funcionais do sistema. Desempenho: Localizar operações críticas e minimizar comunicações. Usar componentes de alta ao invés de baixa granularidade. Proteção: Usar uma arquitetura em camadas com itens críticos nas camadas mais internas (alto nível de validação de proteção). Segurança: Localizar características críticas de segurança em um pequeno número de subsistemas. Disponibilidade: Incluir componentes redundantes e mecanismos para tolerância à falhas. Facilidade de manutenção: Usar componentes substituíveis e de baixa granulariade. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 7 Conflitos de arquitetura O uso de componentes de alta granularidade aprimora o desempenho mas diminui a facilidade de manutenção. A introdução de dados redundantes aprimora a disponibilidade, mas torna a proteção mais difícil. Ao localizar características relacionadas à segurança, geralmente significa maior comunicação e, por essa razão, o desempenho é degradado. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 8

Estruturação de sistema Está relacionado à decomposição do sistema em subsistemas que interagem. O projeto de arquitetura é normalmente expresso como um diagrama de blocos que apresentam uma visão geral da estrutura do sistema. Modelos mais específicos que mostram como os subsistemas compartilham dados, como são distribuídos e como interfaceiam uns com os outros, também podem ser desenvolvidos. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 9 Sistema de controle robotizado de empacotamento Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 10

Diagramas caixa e linha Muito abstrato não mostram a natureza dos relacionamento de componentes, nem as propriedades externamente visíveis dos subsistemas. Contudo, são úteis para comunicação com os stakeholders e para planejamento de projeto. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 11 Decisões de projeto de arquitetura Projeto de arquitetura é um processo criativo cujas atividades diferem radicalmente dependendo do tipo de sistema que está sendo desenvolvido. Contudo, uma série de decisões comuns afetam todos os processos de projeto. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 12

Decisões de projeto de arquitetura Existe uma arquitetura genérica de aplicação que possa ser usada? Como o sistema será distribuído? Quais estilos de arquitetura são apropriados? Qual será a abordagem fundamental usada para estruturar o sistema? Como o sistema será decomposto em módulos? Qual estratégia deve ser usada? Como o projeto de arquitetura será avaliado? Como a arquitetura do sistema deve ser documentada? Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 13 Reuso de arquitetura Sistemas do mesmo domínio freqüentemente têm arquiteturas similares que refletem os conceitos de domínio. As linhas do produto de aplicação são construídas em torno de um núcleo de arquitetura com variantes que satisfazem requisitos específicos de clientes. As arquiteturas de aplicação são abordadas no Capítulo 13, e linhas de produto no Capítulo 18. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 14

Estilos de arquitetura O modelo de arquitetura de um sistema pode estar de acordo com um modelo ou com um estilo genérico de arquitetura. A consciência desses estilos pode simplificar o problema de definição de arquiteturas de sistema. Contudo, a maioria dos sistemas de grande porte são heterogêneos e não seguem um único estilo de arquitetura. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 15 Modelos de arquitetura São usados para documentar um projeto de arquitetura. odelos estáticos de estrutura que mostram os principais componentes do sistema. Um modelo dinâmico de processo que mostra a estrutura de processo do sistema. Um modelo de interface que define as interfaces de subsistemas. Modelos de relacionamentos, tal como um modelo de fluxo de dados, que mostra os relacionamentos dos subsistemas. Um modelo de distribuição que mostra como subsistemas são distribuídos pelos computadores. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 16

Organização de sistema Reflete a estratégia básica que é usada para estruturar um sistema. Três estilos de organizações são amplamente usados: O estilo de repositório de dados compartilhados; Estilo de serviços e servidores compartilhados; Estilo de máquina abstrata ou em camadas. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 17 Modelo de repositório Os subsistemas devem trocar dados. Isso pode ser feito de duas maneiras: Os dados compartilhados são mantidos em um banco de dados central ou repositório e podem ser acessados por todos os subsistemas; Cada subsistema mantém seu próprio banco de dados e passa dados explicitamente para outros subsistemas. Quando grandes quantidades de dados são compartilhadas, o modelo de repositório de compartilhamento é o mais usado. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 18

Arquitetura de conjunto de ferramentas CASE Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 19 Características de modelo de repositório Vantagens É uma maneira eficiente de compartilhar grandes quantidades de dados; Os subsistemas não necessitam saber como os dados são produzidos pelo gerenciamento centralizado, por exemplo, backup, proteção, etc. Um modelo de compartilhamento é publicado como o esquema de repositório. Desvantagens Os subsistemas devem estar de acordo com um modelo de dados do repositório. É, inevitavelmente, um compromisso; A evolução de dados é difícil e dispendiosa; Não há escopo para políticas específicas de gerenciamento; Dificuldade para distribuirde forma eficiente. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 20

Modelo cliente-servidor É um modelo distribuído de sistema que mostra como dado e processamento são distribuídos por uma variedade de componentes. Estabelece servidores independentes que fornecem serviços específicos, tais como impressão, gerenciamento de dados, etc. Estabelece clientes que acessam esses serviços. É uma rede que permite aos clientes acessar os servidores. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 21 Biblioteca de filmes e fotografias Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 22

Características de cliente-servidor Vantagens A distribuição de dados é direta; Faz uso efetivo dos sistemas em rede. Pode solicitar hardware mais barato; É fácil adicionar novos servidores ou atualizar servidores existentes. Desvantagens Nenhum modelo de dados compartilhado e, dessa forma, os subsistemas usam diferentes organizações de dados; por isso, a troca de dados pode ser ineficiente. Gerenciamento redundante em cada servidor; Nenhum registro central de nomes e serviços pode ser difícil descobrir quais servidores e serviços estão disponíveis. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 23 Modelo de máquina abstrata (em camadas) Usado para modelar o interfaceamento dos subsistemas. Organiza o sistema em um conjunto de camadas (ou máquinas abstratas), cada uma das quais fornecendo um conjunto de serviços. Apóia o desenvolvimento incremental dos subsistemas em camadas diferentes. Quando uma camada de interface muda, somente a camada adjacente é afetada. Contudo, é freqüentemente artificial estruturar sistemas dessa maneira. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 24

Sistema de gerenciamento de versões Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 25 Estilos de decomposição modular Estilos de decomposição de subsistemas em módulos. Não há distinção rígida entre organização de sistema e decomposição modular. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 26

Subsistemas e módulos Um subsistema é um sistema em si cuja operação não depende dos serviços fornecidos por outros subsistemas. Um módulo é um componente de sistema que fornece serviços para outros módulos; não é normalmente considerado um sistema separado. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 27 Decomposição modular É um outro nível de estrutura onde os subsistemas são decompostos em módulos. Dois modelos de decomposição modular podem ser usados Um modelo de objeto onde o sistema é decomposto em objetos que se comunicam; Um modelo de pipeline ou fluxo de dados onde o sistema é decomposto em módulos funcionais que transformam entradas em saídas. Se possível, decisões sobre concorrência devem ser postergadas até que os módulos estejam implementados. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 28

Modelos de objetos Estruturar o sistema em um conjunto de objetos fracamente acoplados com interfaces bem definidas. A decomposição orientada a objetos está relacionada à identificação de classes de objetos, aos seus atributos e às suas operações. Quando implementados, os objetos são criados a partir dessas classes e um tipo de controle é usado para coordenar as operações de objetos. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 29 Sistema de processamento de faturas Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 30

Vantagens do modelo de objetos Objetos não são firmemente acoplados e, desse modo, sua implementação pode ser modificada sem afetar outros objetos. Os objetos podem refletir entidades do mundo real. Linguagens de implementação orientada a objeto são amplamente usadas. Contudo, mudanças de interface de objeto podem causar problemas e entidades complexas podem ser difíceis de representar como objetos. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 31 Pipelining orientado a funções Transformações funcionais processam suas entradas para produzir saídas. Pode ser chamado de estilo de duto (pipe) e filtro (como no shell UNIX) Variações dessa abordagem são muito comuns. Quando as transformações são seqüenciais, isso é um modelo seqüencil em lotes, que é extensivamente usado em sistemas de processamento de dados. Não é realmente adequado para sistemas interativos. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 32

Sistema de processamento de faturas Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 33 Vantagens do modelo de pipeline Apóia reuso de transformações. Organização intuitiva para comunicação com stakeholders. É fácil adicionar novas transformações. É relativamente simples implementar como sistema concorrente ou seqüencial. Contudo, requer um formato comum para a transferência de dados ao longo do pipeline e o apoio a interações baseadas em eventos é difícil. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 34

Modelos de controle Diferente do modelo de decomposição de sistema, os modelos de controle estão relacionados ao fluxo de controle entre subsistemas Controle centralizado Um subsistema tem responsabilidade global pelo controle, e inicia e pára outros sistemas. Controle baseado em eventos Cada subsistema pode responder a eventos gerados externamente a partir de outros subsistemas ou do ambiente do sistema. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 35 Controle centralizado Um subsistema de controle é responsável pelo gerenciamento da execução de outros subsistemas. Modelo chamada-retorno É o modelo de subrotina top-down onde o controle inicia no topo de uma hierarquia de subrotina, e se move para baixo da hierarquia. É aplicável a sistemas seqüenciais. Modelo de gerenciador É aplicável a sistemas concorrentes. Um componente de sistema controla a parada, o início e a coordenação de outros processos de sistema. Pode ser implementado em sistemas seqüenciais como uma declaração Case. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 36

Modelo chamada-retorno Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 37 Controle de sistema tempo real Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 38

Sistemas orientados a eventos Dirigidos por eventos gerados externamente onde o timing dos eventos está fora do controle dos subsistemas que processam o evento. Dois modelos dirigidos a eventos principais Modelos de broadcast. Um evento é transmitido a todos os subsistemas. Qualquer subsistema programado para manipular esse evento pode responder a ele. Modelos orientados a interrupções. Usado em sistemas de tempo real onde as interrupções são detectadas por um tratador de interrupções e passadas por algum outro componente para processamento. Outros modelos dirigidos a eventos incluem sistemas de planilhas e de produção. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 39 Modelo de broadcast É efetivo na integração de subsistemas em computadores diferentes em uma rede. Subsistemas registram um interesse em eventos específicos. Quando estes ocorrem, o controle é transferido para o subsistema que pode tratar o evento. A política de controle não é embutida no tratador de eventos e mensagens. Os subsistemas decidem sobre os eventos de seu interesse. Contudo, os subsistemas não sabem se um evento será tratado e nem quando será. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 40

Broadcasting seletivo Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 41 Sistemas dirigidos a interrupções É usado em sistemas de tempo real onde a resposta rápida para um evento é essencial. Existem tipos de interrupções conhecidos com um tratador definido para cada tipo. Cada tipo é associado à uma localização da memória, e uma chave de hardware causa a transferência de controle para seu tratador. Permite respostas rápidas, mas é complexo para programar e difícil de validar. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 42

Controle dirigido a interrupções Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 43 Arquiteturas de referência Os modelos de arquitetura podem ser específicos para algum domínio de aplicação. Existe dois tipos de modelos de domínio específico Modelos genéricos que são abstrações de uma série de sistemas reais que englobam as caracterísiticas principais desses sistemas. Abordados no Capítulo 13. Modelos de referência são mais abstratos, é um modelo idealizado. Fornece um meio de informação sobre essa classe de sistema e sobre comparação de arquiteturas diferentes. Os modelos genéricos são geralmente modelos bottomup. Os modelos de referência são modelos top-down. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 44

Arquiteturas de referência Os modelos de referência são derivados de um estudo de domínio de aplicação ao invés de sistemas existentes. Pode ser usado como base para a implementação de sistemas, ou comparar sistemas diferentes. Atua como um padrão contra o qual os sistemas podem ser avaliados. O modelo OSI é um modelo de camadas para sistemas de comunicação. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 45 Modelo de referência OSI Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 46

Modelo CASE de referência Serviços de repositório de dados Armazenamento e gerenciamento de itens de dados. Serviços de integração de dados Gerenciamento de grupos de entidades. Serviços de gerenciamento de tarefas Definição e aprovação de modelos de processo. Serviços de mensagens Comunicação ferramenta-ferramenta e ferramentaambiente. Serviços de interface de usuário Desenvolvimento de interface de usuário. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 47 O modelo de referência ECMA Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 48

Pontos-chave A arquitetura de software é o framework fundamental para a estruturação de sistema. Decisões de projeto de arquitetura incluem decisões sobre o tipo de aplicação, a distribuição e os estilos de arquitetura a serem usados. Modelos diferentes de arquitetura, tais como um modelo de estrutura, um modelo de controle e um modelo de decomposição podem ser desenvolvidos. Modelos organizacionais de um sistema incluem modelos de repositório, modelos cliente-servidor e modelos de máquina abstrata. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 49 Pontos-chave Modelos de decomposição modular incluem modelos de objetos e modelos de pipelining. Modelos de controle incluem modelos de controle centralizado e dirigidos a eventos. Arquiteturas de referência podem ser usadas para comunicar arquiteturas de domínio específico, avaliar e comparar projetos de arquitetura. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 50

Modelos de arquitetura Modelos diferentes de arquitetura podem ser produzidos durante o processo de projeto. Cada modelo apresenta perspectivas diferentes sobre a arquitetura. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 51 Atributos de arquitetura Desempenho Localizar operações críticas e minimizar comunicações. Proteção Usar uma arquitetura em camadas com itens críticos nas camadas mais internas. Segurança Isolar componentes críticos de segurança Disponibilidade Incluir componentes redundantes na arquitetura. Facilidade de manutenção Usar componentes substituíveis e de baixa granulariade. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 52