Projeto de Arquitetura



Documentos relacionados
Engenharia de Software

Projeto de Arquitetura

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

SISTEMA GERENCIADOR DE BANCO DE DADOS

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

Engenharia de Sistemas Computacionais

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

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

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

EVOLUÇÃO DE SOFTWARE

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Sistemas Distribuídos

Introdução à Engenharia de Software

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

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

ARQUITETURA DE SISTEMAS. Cleviton Monteiro

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

Engenharia de Requisitos

Universidade Paulista

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

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

Módulo 4: Gerenciamento de Dados

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

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

SISTEMAS DISTRIBUÍDOS

Análise e Projeto Orientados por Objetos

(Open System Interconnection)

ENG1000 Introdução à Engenharia

Disciplina de Banco de Dados Introdução

Engenharia de Requisitos Estudo de Caso

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

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

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

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas Operacionais

ENGENHARIA DE SOFTWARE I

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

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

Servidor, Proxy e Firewall. Professor Victor Sotero

GARANTIA DA QUALIDADE DE SOFTWARE

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

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

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

SISTEMAS OPERACIONAIS

Gerenciamento de Incidentes

Organização de Computadores 1

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

PROVA DE CONHECIMENTOS ESPECÍFICOS PROGRAMADOR DE COMPUTADOR. Analise as seguintes afirmativas sobre os modelos de processos de software:

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Conceitos de Banco de Dados

Sistemas Distribuídos

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

Engenharia de Software III

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Professor: Curso: Disciplina:

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

Documento de Arquitetura

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE CONFIGURAÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

PODER JUDICIÁRIO TRIBUNAL DE JUSTIÇA DO ESTADO DO AMAZONAS DIVISÃO DE GESTÃO DA QUALIDADE

ADMINISTRAÇÃO DE ATIVOS DE TI GERENCIAMENTO DE LIBERAÇÃO

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

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

Fundamentos de Banco de Dados

SISTEMAS DISTRIBUÍDOS

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

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

Introdução a Computação

Prototipação de Software

Gerência de Redes NOC

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

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

Documento de Análise e Projeto VideoSystem

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

Relatorio do trabalho pratico 2

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

UFG - Instituto de Informática

Modelos de Arquiteturas. Prof. Andrêza Leite

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

ESTUDO DE CASO WINDOWS VISTA

ARQUITETURA DE SOFTWARE

Modelos de Sistemas Leitura: Sommerville; Pressman

Motivos para você ter um servidor

REDE DE COMPUTADORES

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Eduardo Bezerra. Editora Campus/Elsevier

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

Conceitos de relação de confiança

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Transcrição:

Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os modelos gerais de processo de software O levantamento e análise de requisitos Os modelos que compõem o documento de requisitos de software Chegou o momento de planejar como será construído o software Como um software pode ser construído de diversas maneiras, cabe aprender a planejar a construção. Vamos agora conhecer o projeto de arquitetura O que é? É o processo inicial de projeto, que consiste em identificar e estabelecer um framework para o controle e a comunicação de subsistemas Vantagens: Comunicação entre os diversos clientes e usuários do sistema (usada em apresentações, discussões etc) Tornar a arquitetura explícita através de uma análise de sistema. Tem profundo efeito sobre como o sistema vai cumprir com os requisitos críticos. Reuso em larga escala. A arquitetura permite a identificação de projetos padrões. Requisitos Influenciados Desempenho Se o desempenho for um requisito crítico, a arquitetura deve ser projetada para localizar operações críticas dentro de alguns subsistemas, com tão pouca comunicação quanto possível entre eles. Isso pode significar o uso de componentes de alta granularidade para reduzir as comunicações entre eles. Proteção Se a proteção for um requisito crítico, uma estrutura em camadas para a arquitetura deve ser usada, com itens mais críticos protegidos por camadas mais internas e com um alto nível de validação de proteção aplicado a essas camadas. 1

Requisitos Influenciados Segurança Se a segurança for um requisito crítico, a arquitetura deve ser projetada de modo que as operações relacionadas à segurança estejam todas localizadas em um único subsistema (ou em um pequeno). Isso reduz os custos e os problemas de validação e segurança e torna possível fornecer esse serviço a sistemas de proteção relacionados. Disponibilidade Se a disponibilidade for um requisito crítico, a arquitetura deve ser projetada para incluir componentes redundantes e, assim que possível, substituir e atualizar componentes sem parar o sistema. Requisitos Influenciados Facilidade de manutenção Aqui a arquitetura de sistema deve ser projetada usando componentes de baixa granularidade e autocontidos que possam ser prontamente mudados. Os criadores de dados devem ser separados dos clientes, e estruturas de dados compartilhadas devem ser evitadas. Os conflitos entre os requisitos na arquitetura podem ser resolvidos com o uso de arquiteturas diferentes para as diferentes partes do sistema. Engenharia de requisitos x projeto de arquitetura Existem sobreposições na prática Subsistemas Um subsistema é uma decomposição abstrata de um sistema em componentes de alta granularidade Pode ser substancial e independente Diagramas de blocos são usados para descrever subsistemas Caixas dentro de caixas indicam que o subsistema foi decomposto em subsistemas As setas significam dados e sinais de controle transferidos na indicação da seta Pessoas de diferentes áreas, envolvidas no projeto, podem compreender o diagrama facilmente. Subsistemas Ex.: Diagrama de blocos de um sistema de controle robotizado de empacotamento. visão identificação de objetos de braço seleção de embalagem de garra empacotamento de esteira 2

Modelo de repositório Os subsistemas devem trocar informações de modo que possam trabalhar juntos eficientemente. Existem duas maneiras fundamentais de como isso pode ser feito. 1 - Todos os dados compartilhados são mantidos em um banco de dados que pode ser acessado por todos os subsistemas. Um modelo de sistema baseado em um banco de dados compartilhado é algumas vezes denominado modelo de repositório. 2 Cada subsistema mantém seu próprio banco de dados. Os dados são trocados com outros subsistemas por meio da passagem de mensagens entre eles. Modelo de repositório: Vantagens de desvantagens do repositório compartilhado. Maneira eficiente de compartilhar dados Os subsistemas devem estar de acordo com o modelo de dados do repositório Subsistemas que produzem dados não precisam conhecer os que vão usar os dados Uma evolução do sistema pode ser uma tarefa difícil, devido o grande número de dados, relações etc Atividades de back-up up,, proteção, controle de acesso e recuperação de erros são centralizadas Modelo cliente-servidor Onde um sistema é organizado como um conjunto de serviços, servidores e clientes associados que acessam e usam os serviços. Os principais componentes são: Um conjunto de servidores que oferecem serviços para outros subsistemas 1. Um conjunto de servidores que oferecem serviços para Um conjunto de clientes que solicitam serviços. São normalmente subsistemas independentes. 2. Um conjunto de clientes que solicitam serviços. São Uma rede que permite aos clientes acessarem esses serviços. 3. Uma rede que permite aos clientes acessarem esses Modelo cliente-servidor. Exemplo Arquitetura de um sistema de acervo de filmes e fotografias. catálogos Catálogo do acervo Cliente 2 Cliente 2 Cliente N vídeos Arquivos de videoclipe Internet fotografias Fotografias digitalizadas Servidor Web Informações de filmes e fotos 3

Modelo em camadas Onde um sistema é organizado em camadas de serviços. Cada camada é responsável por um conjunto de serviços específicos para o sistema. Características: Facilidade na manutenção e troca de código na implementação das camadas, desde que se respeite as interfaces originais. 1. Facilidade na manutenção e troca de código na 2. Apóia o desenvolvimento incremental Desvantagem de ser de difícil estruturação, dependendo da complexidade do problema. 3. Desvantagem de ser de difícil estruturação, dependendo da Modelo em camadas: exemplo de um sistema de gerenciamento de versões. gerenciamento de configuração gerenciamento de objetos banco de dados Camada de sistema operacional Diferença: módulos x subsistemas Não existe uma definição para que haja distinção, mas é interessante pensar que: Subsistemas São sistemas cujas operações não dependem de serviços fornecidos por outros subsistemas. Os subsistemas são compostos por módulos e definem interfaces (usadas para comunicação com outros subsistemas). Módulos São componentes de um subsistema que fornecem um ou mais serviços para outros módulos. Eles também fazem uso de serviços de outros módulos. Dessa forma, não é um sistema independente. Existem duas estratégias principais que se pode usar ao decompor um subsistema em módulos: Decomposição Orientada a Objetos na qual você compõe um sistema em um conjunto de objetos que se comunicam. Objetos chamam serviços oferecidos por outros objetos Na UML, setas tracejadas indicam que um objeto usa os atributos e serviços fornecidos por um outro objeto. Pipelining Orientado a Funções (ou modelo de fluxo de dados) - no qual você decompõe um sistema em módulos funcionais que aceitam dados de entrada e transforma-os os em dados de saída. Vantagem de ser intuitiva e de fácil implementação. Desvantagem de se ter um formato padrão para comunicação 4

Modelo de objeto de um sistema de processamento de faturas. Modelo de pipeline de um sistema de processamento de faturas. Cliente nome endereco credito Fatura cliente Recibo Ler faturas emitidas Identificar pagamentos Emitir recibos Recibos Pagamento emissao() enviaraviso() aceitarpagamento() enviarrecibo() Faturas Pagamentos Encontrar pagamentos devidos Emitir lembrete de pagamento Lembrete Modelos de Controle Para que os subsistemas funcionem como sistema, é necessário que exista o controle de seus serviços Controle Centralizado Um subsistema tem a responsabilidade geral de coordenar. Controle baseado em eventos Cada subsistema responde a eventos gerados externamente. Modelos de broadcast evento transmitido a todos os subsistemas. Modelos orientados a interrupções interrupções externas são detectadas (para sistemas de tempo real). 5