ARCHITECTURAL DESIGN. Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

Documentos relacionados
Projeto de Arquitetura

Análise e Projeto de Software

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

Estilos Arquiteturais

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

Princípios de Engenharia de Software. Aula 6 Projeto de Software

Capítulo 6. Projeto de arquitetura Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Engenharia de Software. Projeto de Arquitetura

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

Documento de Especificação de Projeto

Reutilização de Software

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Engenharia de Software

Capítulo 6 Design da Arquitectura

Reúso de Software. Adaptado de. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide by Pearson Education

Introdução à Análise e Projeto de Sistemas

Modelagem Orientada a Objetos

Manutenção Leitura: Sommerville; Pressman

Arquitetura de Software

Padrões. Arquitetura de Software Thaís Batista

Agenda da Aula. Reuso de Software. Tipos de Reuso. Potenciais Problemas. Vantagens de Reuso. Introdução a Reuso de Software

Projeto de Arquitetura

Engenharia de Software

Documento de Especificação de Requisitos

As Visões. Visões arquiteturais (revisão)

Processos de software

Estilos Arquiteturais. Prof. Fellipe Aleixo

Visões Arquiteturais. Visões Arquiteturais

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Arquitetura de software

Universidade Federal de Goiás Estilos Arquiteturais

Leitura: Cap : Sommerville; cap20: Pressman

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

ENGENHARIA DE SOFTWARE. Introdução

Engenharia de Requisitos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

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

Projeto de Arquitetura

Engenharia de Software

RUP RATIONAL UNIFIED PROCESS

Especificação de Sistemas de Software e a UML

Agenda do Curso. Reuso de Software. Agenda da Aula. Tipos de Reuso. Vantagens de Reuso. Reuso de Software. Eduardo Figueiredo

Engenharia de Software

AN INTRODUCTION TO SOFTWARE ENGINEERING

Especificação de Sistemas e SysML

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

Protótipo tipo de um Sistema Administração de Eventos

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

Técnicas de Reutilização. Reutilização em Programação Orientada a Objetos. Considere três classes... Reuso de Classes.

SOFTWARE REQUIREMENTS

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

PCS3413 Engenharia de Software e Banco de Dados

Reuso de Software Aula Maio 2012

Guilherme Fernando Gielow

Aula 01 Conceito de Banco de Dados e SGBD

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

05/09/2013. Ciclo de vida de um Sistema de Informação

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

O que é um sistema distribuído?

Sistemas Operacionais. Tipos de SO

Computação Distribuída

DESENVOLVIMENTO BASEADO EM COMPONENTES

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

UML (Unified Modelling Language)

Tópicos da Aula. O que é anunciado. Falha de Comunicação no Desenvolvimento de Software. Engenharia de Software: Conceitos Fundamentais

Técnicas para Reutilização de Software

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Requisitos de sistemas

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Requisitos de Software

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

6 Trabalhos Relacionados

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPI JOÃO CÂMARA RATIONAL UNIFIED PROCESS - RUP

Sistemas Multi-agentes

Engenharia de Requisitos

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Arquitetura de Software visão emergente

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

Processos de Software

PDS. Aula 1.6 Modelos de Processo. Prof. Dr. Bruno Moreno

3 Uma Arquitetura Distribuída via WEB

06/02/2014. Engenharia de requisitos. Requisitos de Software. Capítulo 6. O que é um requisito? Objetivos. Abstração de requisitos (Davis)

5 Processo de Reificação e de Desenvolvimento com ACCA

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

Requisitos de Software

Especificação de Requisitos. CITES Sistema de Emissão de Licenças

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

3.1 Reflexão Computacional

Aula 6 - Análise de Requisitos: Especificação de Requisitos. Análise de Sistemas Prof. Filipe Arantes Fernandes

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Evolução de Software

Análise de Sistemas. Aula 5

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Frameworks. SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013

Eng. de Requisitos: Atividades. Engenharia de Requisitos. Eng. de Requisitos: Processo. O Documento de Requisitos. Stakeholders

Teste de Software. Competência: Entender as técnicas e estratégias de testes de Software

POLÍTICA DA CENTRAL DE SERVIÇO DE TI. Versão 1.0 GERÊNCIA CORPORATIVA DE TECNOLOGIA DA INFORMAÇÃO

Transcrição:

ARCHITECTURAL DESIGN Ian Sommerville, 8º edição Capítulo 11 Aula de Luiz Eduardo Guarino de Vasconcelos

Objetivos

Tópicos abordados

Arquitetura de Software

Projeto de arquitetura

Vantagens de arquitetura explícita

Atributos da arquitetura

Conflitos de arquitetura Alta garnularidade melhora a performance mas reduz facilidade de manutenção Baixa granularidade facilita a manutenção mas piora desempenho Introduzir redundância de dados prove disponibilidade mas segurança fica dificultada

Estruturando o sistema

Sistema de embalagem controlado por robô

Diagramas de caixa e linhas Diagramas com caixas e linhas não são representações úteis de arquitetura, pois não mostram a natureza dos relacionamentos entre os componentes do sistema nem as propriedades externamente visíveis dos componentes. Porém, esse tipo de modelo é eficiente para comunicação com stakeholders e para o planejamento do projeto, pois não está cheio de detalhes. Estes modelos de caixas e linhas não devem ser os únicos a serem utilizados, mas são úteis. Como decompor um sistema em subsistemas é complicado, principalmente pelo fato dos relacionamentos, mudanças de requisitos, etc

Decisões de projeto de arquitetura Projeto de arquitetura é um processo criativo que tenta organizar o sistema baseado nos requisitos funcionais e não funcionais, porém, as atividades do processo se diferem dependendo do tipo de sistema, origem e experiência do arquiteto do sistema e os requisitos específicos do sistema. Entretanto, um número de decisões comuns faz parte do projeto dos processos

Decisões de projeto de arquitetura Existe uma arquitetura genérica de aplicação que possa funcionar como um modelo para o sistema que está sendo projetado? Como o sistema será distribuído ao longo de vários processadores? Qual ou quais estilos de arquitetura são apropriados para o sistema? Qual será a abordagem fundamental usada para estruturar o sistema? Como as unidades estruturais de um sistema serão decompostas em módulos? Qual estratégia será utilizada para controlar a operação das unidades do sistema? Como o projeto de arquitetura será avaliado? Como a arquitetura do sistema será documentada?

Estilos de arquitetura O modelo de arquitetura de um sistema pode ser conforme um modelo de arquitetura genérica ou estilo. Qual estrutura mais apropriada, client-server ou em camadas. Decompor as unidades do sistema em componentes ou módulos. Sistemas grandes são heterogêneos e não seguem um único estilo de arquitetura

Modelos de arquitetura Usados para documentar o projeto de arquitetura Modelo estrutural estático que mostra os componentes do sistema principal Modelo de processo dinâmico que mostrar como o sistema é organizado em processos run-time (em tempo de execução) Modelo de interface que define as interfaces dos sub-sistemas Modelo de Relacionamento como o fluxo de dados entre os sub-sistemas. Modelo de distribuição que mostra como os sub-sistemas está distribuído nos computadores

Organização do sistema Refelte a estratégia básica que é usada na estrutura do sistema. Três estilos são os mais usados: Estilo de dados compartilhados em repositórios; Estilo de serviços e servidores compartilhados; Estilo de máquina abstrata ou em camadas.

O modelo de repositório

Arquitetura de um conjunto de ferramentas CASE

Características do modelo de repositório

Modelo Client-server

Biblioteca de filmes e fotografias

Características Client-server

Modelo em camadas

Sistema de gerenciamento de versões

Estilos de decomposição modular Qual abordagem será usada na decomposição de subsistemas em módulos. Não há distinção rígida entre organização do sistema e decomposição em módulos Sub-sistema é um sistema em si cuja operação não depende de serviços fornecidos por outros subsistemas. São compostos de módulos e definem interfaces para comunicar com outros sub-sistemas Módulo é um componente de sistema que fornece um ou mais serviços para outros módulos. Faz o uso de serviços fornecidos por outros módulos. Não é normalmente considerado como um sistema independente.

Decomposição em módulos

Modelo de Objetos

Sistema de processamento de faturas

Vantagens do modelo de Objetos Objetos são fracamente acoplados e a implementação deles pode ser modificada ser afetas outros objetos. São representações do mundo real. Objetos podem ser reusados Linguagens de implementação OO foram desenvolvida para este fim específico. Entretando, a interface de objetos é a principal desvantagem e pode causar problemas complexos nos usuários dessas interfaces.

Modelo de fluxo de dados

Sistema de processamento de faturas

Vantagens do modelo pipeline Apóia o reuso de trasnformações É intuitiva, pois pessoas pensam no sentido de entrada e saída. A evolução do sistema pela adição de novas transformações é direta. Fácil de ser implementada tanto quanto um sistema concorrente ou sequencial. A desvantagem é que ele necessita de um formato comum para trasnferência de dados que possa ser reconhecido pelas transformações

Modelos de controle

Controle centralizado

Modelo de retorno de chamada

Sistema de controle Real-time

Sistema baseado em eventos

Modelos de transmissão

Transmissão (broadcasting) seletiva

Sistema dirigido por interrupções

Controle dirigido por interrupções

Arquiteturas de domínio específico

Arquiteturas de Referência

Modelo de Referência OSI

Modelo de referência Case Serviço de repositório de dados Armazena e gerencia os dados Serviços de integração de dados Gerenciamento de grupos. Serviços de gerenciamento de tarefas Definição e aprovação de modelos de processos. Serviços de mensagem Comunicações Tool-tool and tool-environment, apoiando a integração de controles. Serviços de interface com usuários Desenvolvimento de interfaces.

The ECMA reference model (CASE)

Diagrama hierárquico de Funções (DHF) Controle de Acervo Atendimento Usuário Cadastrar Livro Consultar Usuário Incluir Livro Alterar Livro Consultar Livro Excluir Livro Controlar Empréstimo Cadastrar Exemplar Realizar Novo Empréstimo Consultar Empréstimo Efetuar Devolução Incluir Exemplar Alterar Exemplar Consultar Exemplar Excluir Exemplar Controlar Reserva Cadastrar Assunto Realizar Nova Reserva Consultar Reserva Cancelar Reserva Incluir Assunto Alterar Assunto Consultar Assunto Excluir Assunto Gerar Relatório Gerencial para Aquisição de Livro

Pontos-chave Arquitetura de software é o framework fundamental para estruturar um sistema. Decisões de projeto de arquitetura incluem decisões sobre a arquitetura da aplicação, distribuição e estilos a serem usados. Os diferentes modelos de arquitetura, como um modelo de estrutura, de controle e de decomposição podem ser desenvolvidos. Modelos organizacionais de sistema incluem repositórios, client-server e modelo de camadas

Pontos-chave Modelo de decomposição modular inclui modelo de objeto e modelo pipelining. Modelos de controle incluem controle centralizado e modelos dirigidos a eventos. Arquiteturas de referência podem ser usadas como um meio de discutir arquiteturas de domínio específico e avaliar e comparar projetos de arquitetura