PROJETO DE ARQUITETURA (PARTE 2)

Documentos relacionados
PROJETO DE ARQUITETURA

DIAGRAMAS DE CLASSE UML

CONCEITOS BÁSICOS E MODELO DE PROJETO

Estilos Arquiteturais

Arquitetura de software

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

PCS3413 Engenharia de Software e Banco de Dados

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

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Classes de Projeto. Prof. Anderson Cavalcanti UFRN-CT-DCA

Aula 7 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

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

INF1013 MODELAGEM DE SOFTWARE

FORMULÁRIO DE REGISTRO DE PLANO DE CURSO 2013.I

Definindo um padrão para arquitetura Web

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

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

DMS - DOCUMENTO DE MODELAGEM DE SISTEMA VERSÃO: [NOME DO SISTEMA] [SIGLA] [AUTORES]

Padrões. Arquitetura de Software Thaís Batista

Análise e Projeto de Software

DESENVOLVIMENTO BASEADO EM COMPONENTES

Introdução a UML (Unified Modeling Language)

Especificação de Sistemas de Software e a UML

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos.

Padrões de Projeto de Software

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Padrões de Projeto de Software

Documento de Arquitetura de Software- SGE

Padrões contexto problema solução

Rede de computadores Cliente- servidor. Professor Carlos Muniz

INF1013 MODELAGEM DE SOFTWARE

Projeto de Sistemas; Projeto Orientado a Objetos; Estruturação em Camadas; Projeto Orientado a Objetos em Camadas; Um Exemplo Ilustrativo.

UML (Unified Modelling Language)

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

Análise e Projeto Orientado a Objetos

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Projeto de Arquitetura

Engenharia de Software

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

REDES DE COMPUTADORES

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

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

Análise e projeto de sistemas

Manutenção Leitura: Sommerville; Pressman

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

Introdução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

Análise e modelação de sistemas. Classe T13: Passando da análise ao Desenho

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

Desenvolvimento de Aplicações Distribuídas

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

REENGENHARIA E ENGENHARIA REVERSA

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

Leitura: Cap : Sommerville; cap20: Pressman

Projeto de software Estrutura do software e arquitetura SWEBOK

Modelagem Orientada a Objeto

Objetos e Componentes Distribuídos: EJB

Introdução ao Desenvolvimento de

Redes de Computadores

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

LISTA DE EXERCÍCIOS 02

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2013/1

O Processo Unificado: Workflow de Análise. Graduação em Informática Profa. Dra. Itana Maria de Souza Gimenes 2009

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

Daniel Wildt

Objetos e Componentes Distribuídos: EJB e CORBA

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

Análise e Projeto de Software Parte II. Marcos Dósea

Aula 1: Apresentação, Computação Corporativa

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

Sistemas Operacionais. Aula 1

Módulo I Princípios e Padrões de Projeto de SW em Java

Modelagem Orientada a Objetos

RUP RATIONAL UNIFIED PROCESS

MODELAGEM DE SISTEMAS Unidade 4 Modelo de Classes de Projeto. Luiz Leão

ANÁLISE E PROJETO ORIENTADO A OBJETO (Parte 3)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

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

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

3.1 Reflexão Computacional

Padrões de Projeto de Software

Análise e Projeto Orientados a Objetos

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

MODELOS DE PROCESSOS (PARTE 2)

TELECOMUNICAÇÕES Prof. Ricardo Rodrigues Barcelar

Protótipo tipo de um ambiente virtual distribuído

Visões Arquiteturais. Visões Arquiteturais

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Apresentação da Disciplina

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Modelagem de Sistemas. Análise de Requisitos. Modelagem

4 Arquitetura Adotada

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Engenharia de Software

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Transcrição:

PROJETO DE ARQUITETURA (PARTE 2) Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... 5ª Lista de Exercícios Já está disponível no site a 5ª Lista de Exercícios Entrega: dia 29/11, no horário da aula. Site: www.vindematrix.com.br/aulas/ Próximas datas: 2ª Prova: 11/12/2017 e 13/12/2017 (2ª chamada) Prova Coringa: Substitui a prova de menor nota É opcional 5 questões discursivas (não haverá objetivas e nem QP) Assunto: toda a matéria do semestre Data de aplicação: 13/12/2017. 1

Padrões de Projeto GoF (Gang of Four) Evolução da Arquitetura Lógica: São feitas referências ao uso de padrões de projeto como o Adapter (Adaptador), Fachada (Façade), Fábrica ou Strategy (Estratégia) 2

Acoplamento entre camadas e pacotes: Linhas de dependência Diagrama da Visão Lógica: ilustra acoplamentos importantes entre as camadas e os pacotes. Acoplamento pacote-pacote: Diagrama de Arquitetura Lógica mais comum: oculta os tipos específicos e foca apenas no acoplamento pacote a pacote (apenas os mais importantes e suas dependências). 3

Interação entre camadas e entre pacotes: Diagramas de Pacotes mostram informações estáticas. Para entender a dinâmica na arquitetura lógica, incluir um diagrama que mostre como os objetos se conectam e se comunicam entre as camadas Diagrama de Interação. Foca as colaborações conforme elas cruzam os limites das camadas e de pacotes. Fazer apenas para os cenários arquiteturalmente mais significativos: ilustram muitos aspectos das grandes idéias ou aquelas de larga escala. Colaboração com o padrão Camadas: Pacotes simples x Subsistemas: Alguns pacotes ou camadas não são apenas grupos conceituais de coisas, mas são verdadeiros subsistemas, com comportamentos e interface. 4

Colaboração com o padrão Camadas: Fachada: Número de interfaces expostas para as camadas superiores. Colaboração com o padrão Camadas: Fachadas de sessão e a camada de aplicação 5

Colaboração no padrão Camadas: Acoplamento em camadas relaxadas: Camadas relaxadas: Elementos de uma camada colaboram ou estão acoplados a várias outras camadas. O contrário seria a arquitetura em camadas de um protocolo de redes, em que um camada só pode ter acesso aos serviços da camada imediatamente inferior. Colaboração com o padrão Camadas: Acoplamento típico: Todas as camadas superiores tem dependências com as camadas de Serviços Técnicos. Ex: todas as camadas dependem do pacote java.util. É principalmente a camada de Domínio que tem dependência em relação à camada de Infraestrutura de Negócio. Camada de Infraestrutura de Negócio 6

Colaboração com o padrão Camadas: Acoplamento típico: A camada de IU faz solicitações à camada de Aplicação e esta faz solicitações de serviços à camada de Domínio. A camada de IU não solicita à camada de Domínio, a não ser que não exista camada de Aplicação. Camada de Aplicação Colaboração com o padrão Camadas: Acoplamento típico: 7

Outros tópicos do padrão Camadas: Visão Lógica x Implantação da Arquitetura As camadas arquiteturais são uma visão lógica da arquitetura e não uma visão da implantação dos elementos. Dependendo da plataforma, todas as camadas podem ser implantadas no mesmo nó (sistema Desktop) ou podem ser distribuídas em diversos nós (vários computadores e dispositivos, aplicações Web). Outros tópicos do padrão Camadas: A Camada de Aplicação é opcional? Estando presente, é responsável por saber o estado da sessão dos clientes, mediando as camadas de IU e de Domínio e controlando o fluxo de trabalho (a ordem das janelas ou páginas Web, por exemplo). Possui os objetos do Padrão Controlador (GRASP). 8

Outros tópicos do padrão Camadas: A Camada de Aplicação é útil: Quando várias interfaces com o usuário serão usadas. Os objetos da camada de Aplicação poderiam ser Adaptadores, que coletam e consolidam dados para diferentes IUs. Também podem ser fachadas que empacotam e ocultam o acesso à Camada de Domínio. Outros tópicos do padrão Camadas: A Camada de Aplicação é útil: Quando trata-se de um sistema distribuído e a camada de Domínio está em um nó diferente do da camada de IU. A camada de Domínio não pode ou não deve manter o estado da sessão. Existe um fluxo de trabalho definido em termos da ordem das janelas ou das páginas que são apresentadas. 9

Outros tópicos do padrão Camadas: Contraindicações e responsabilidades das camadas Em alguns contextos, a adição de camadas traz problemas de desempenho. Exemplo: Jogos de alto desempenho, onde camadas de abstração e indireção logo acima da camada de acesso a componentes da placa gráfica pode levar a problemas de performance. Outros tópicos do padrão Camadas: Contraindicações e responsabilidades das camadas O Padrão Camadas é um de vários padrões arquiteturais fundamentais, não sendo aplicável a todos os problemas. O Padrão Dutos e Filtros é útil quando a aplicação envolve o processamento de algo por meio de uma série de transformações e a ordem destas pode ser alterada (processamento de imagens, por exemplo). 10

Usos conhecidos do padrão Camadas: Máquinas Virtuais e Sistemas Operacionais Camadas mais baixas: encapsulam o acesso a recursos físicos e forneciam serviços de processos e E/S Camadas mais altas: Chamam estes serviços. A Máquina Virtual, com uma linguagem universal em bytecodes, está em uma camada situada sobre os recursos do sistema operacional e da máquina. Aplicações podem ser escritas em camadas mais altas na arquitetura e executadas em diferentes plataformas sem recompilação. Usos conhecidos do padrão Camadas: Sistemas de Informação: Arquitetura clássica em 3 camadas Interface: janelas, relatórios, etc. Lógica da Aplicação: tarefas e regras que governam o processo. Armazenamento: Mecanismo de armazenamento persistente. 11

Usos conhecidos do padrão Camadas: Sistemas de Informação: Arquitetura clássica em três camadas Usos conhecidos do padrão Camadas: Sistemas de Informação: Arquitetura clássica em três camadas Padrões relacionados: Indireção: as camadas podem acrescentar um nível de indireção para os serviços de nível inferior Variações protegidas: as camadas podem proteger contra o impacto de implementações variadas Acoplamento Baixo e Alta Coesão: as camadas apoiam fortemente estes dois princípios. 12

Separação Modelo-Visão e comunicação para cima : Como as janelas obtém as informações que exibem? Em geral: enviar mensagens a objetos de domínio, pedindo informações, que são exibidas em janelas Modelo de exibição de atualizações chamado de Consulta (Polling) ou puxar-de-cima. Mas como informar às janelas se um objeto do domínio mudar? Uma consulta a cada segundo, por exemplo, pode não ser suficiente. Separação Modelo-Visão e comunicação para cima : Mais eficiente: fazer com que alguns objetos do domínio que estão mudando informem às janelas, para que elas possam atualizar-se. Exemplo: Aplicações de monitoramento (gerenciamento de redes de telecomunicações) É necessário um modelo de exibição do tipo empurrar-debaixo. Solução? 13

Modelo-Visão e comunicação para cima : Solução? Padrão Observador: fazer o objeto da IU implementar uma interface Ouvinte de Propriedade. Padrão Façade: Adicionar uma fachada dentro da camada de IU que recebe os pedidos de baixo. Bibliografia Esta aula foi retirada dos seguintes livros/artigos: LARMAN, Craig. Utilizando UML e Padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007. 14