PROJETO DE ARQUITETURA

Documentos relacionados
PROJETO DE ARQUITETURA (PARTE 2)

DIAGRAMAS DE CLASSE UML

Análise e Projeto Orientado a Objetos

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

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

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

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

CONCEITOS BÁSICOS E MODELO DE PROJETO

Modelagem Orientada a Objetos

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

Definindo um padrão para arquitetura Web

INF1013 MODELAGEM DE SOFTWARE

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

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

INF1013 MODELAGEM DE SOFTWARE

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

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

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

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

Padrões de Projeto de Software

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

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

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

RUP Unified Process. Profª Jocelma Rios

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

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

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

Padrões contexto problema solução

Padrões. Arquitetura de Software Thaís Batista

Descrição de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

Análise e Projeto Orientados a Objetos Aula I Introdução. Prof.: Bruno E. G. Gomes IFRN

RUP RATIONAL UNIFIED PROCESS

A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. História da UML. O que é modelagem?

UML (Unified Modelling Language)

Arquitetura de software

Prof. Fábio Lúcio Meira

Metodologia Simplified. António Rocha

Introdução a UML (Unified Modeling Language)

Especificação de Sistemas de Software e a UML

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

Análise e Projeto Orientados a Objetos

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

ARQUITETURA E DESENHO

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

Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:

Visões Arquiteturais. Visões Arquiteturais

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

Projeto de software Estrutura do software e arquitetura SWEBOK

Análise e projeto de sistemas

Exemplo: Documento de Arquitetura de Software

Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo

Análise e Projeto Orientados a Objetos

Engenharia de Software

UML. Rodrigo Leite Durães.

Aula 3.1 Introdução e Visão Geral do Processo Unificado

UML. Modelando um sistema

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS. Aula 7. Agenda

Visão Geral do RUP.

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

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Padrões de Projeto de Software

Fatec Ipiranga - Engenharia de Software I 18/02/2013. Agenda. 0. Relembrando os Relacionamentos do Diagrama de Classes

Mas o que é mesmo Padrão de Projeto?

Engenharia de Software. Herbert Rausch Fernandes

Processo Unificado Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução

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

PCS3413 Engenharia de Software e Banco de Dados

Realizando a Análise e Projeto

Modelagem Orientada a Objeto

EA975 - Laboratório de Engenharia de Software

Aula 1.7 Introdução a APOO e UML

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

Análise de Sistemas. Aula 5

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

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

Análise e Projeto de Software

Modelagem Dinâmica. Toda a ação é designada em termos do fim que procura atingir. Niccolo Maquiavel. O pensamento é o ensaio da ação.

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

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Reuso de Software Aula Maio 2012

INF1013 MODELAGEM DE SOFTWARE

Rational Unified Process (RUP)

Análise e Projeto Orientados a Objetos: Visibilidade Diagrama de Classe de Projeto

Hélio Engholm Jr. Novatec

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

Requisitos de sistemas

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

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

Processo de Desenvolvimento de Software

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.

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Processos de Software

Diagrama de Fluxo de Dados - DFD. Prof.ª: Érika A. Barrado

Transcrição:

PROJETO DE ARQUITETURA Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Próximas aulas: Seminários de Padrões de Projeto GoF 1º Dia: 10/11/2017, 08h 10h, Sala 04 2º Dia: 13/11/2017, no local e horário habituais 3º Dia: 17/11/2017, 08h 10h, Sala 04 Mais informações: www.vindematrix.com.br/aulas/ 1

Na aula passada... Padrões de Projeto GoF (Gang of Four) Se o Modelo de Domínio cresce muito: É desejável decompô-lo em pacotes de conceitos fortemente relacionados. Pacotes 2

Posse e referência entre pacotes: Um elemento é possuído pelo pacote dentro do qual é definido, mas pode ser referenciado em outros pacotes. O nome do elemento é qualificado pelo nome do pacote, usando o formato NomeDoPacote::NomeDoElemento. Elemento possuído pelo pacote Elemento referenciado em outros pacotes Dependências entre pacotes: Os elementos do pacote dependente tem, de alguma forma, conhecimento (ou estão acoplados) aos elementos do pacote de destino. Exemplo: um pacote faz referência a um elemento pertencente a outro pacote. Relacionamento de dependência 3

Como particionar um Modelo de Domínio: Como particionar um Modelo de Domínio: Todos os elementos do modelo estão enraizados em um pacote Domínio. Todos os conceitos amplamente compartilhados, comuns e centrais são definidos um pacote Elementos Centrais ou Conceitos Comuns. em 4

Como particionar um Modelo de Domínio: Pacote Elementos Centrais ou Conceitos Comuns : conceitos amplamente compartilhados. Como particionar um Modelo de Domínio: Pacote Pagamentos 5

Como particionar um Modelo de Domínio: Pacote Produtos Como particionar um Modelo de Domínio: Pacote Vendas : 6

Como particionar um Modelo de Domínio: Pacote Transações de Autorização Como particionar um Modelo de Domínio: 7

Arquitetura Lógica Introdução: Um Projeto OO típico é baseado em várias camadas arquiteturais como a camada de Interface com o Usuário, camada de Aplicação Lógica (ou Domínio ) etc. Diagramas UML podem ilustrar a Arquitetura Lógica como parte do modelo de projeto. Ela pode também ser resumida como uma visão no DAS (Documento de Arquitetura do Software). Principal entrada: forças arquiteturais captadas na Especificação Suplementar (artefato de requisitos do PU). Arquitetura Lógica Exemplo de Arquitetura Lógica em camadas parcial feita com a notação de Diagrama de Pacotes da UML. 8

Evolução da Arquitetura Lógica: Evoluir a Arquitetura Lógica significa gradualmente adicionar mais pacotes e mais informação às camadas e aos pacotes existentes, à medida que as iterações (do PU) se dão. Um objetivo da 3ª fase da Elaboração é ter a Arquitetura central estabelecida (projetada e implementada). Refinamento da Arquitetura Lógica Evolução da Arquitetura Lógica: Neste ponto, 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) 9

Refinamento da Arquitetura Lógica Acoplamento entre camadas e pacotes: Linhas de dependência Diagrama da Visão Lógica: ilustra acoplamentos importantes entre as camadas e os pacotes. Refinamento da Arquitetura Lógica 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). 10

Interação entre camadas e entre pacotes: Diagramas de Pacotes mostram informações estáticas. Para entender a dinâmica na arquitetura lógica é útil 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. Refinamento da Arquitetura Lógica Objeto Unitário (Singleton) Cenário Processar Vendas : Nome do caminho: <NomeDoPacote>::<NomeDoTipo> Domínio::Vendas::Registradora Subsistema (<<subsistema>>): entidade separada que tem comportamentos e interfaces. Algumas mensagens foram ignoradas para destacar apenas as interações arquiteturalmente significativas 11

Colaboração com o padrão Camadas: Duas decisões de projeto a nível arquitetural: Quais são as grandes partes? Como elas estão conectadas? Padrão arquitetural Camadas: Guia a definição das grandes partes Padrões de projeto micro arquiteturais como Fachada, Controlador e Observador são usados para o projeto das conexões entre camadas e pacotes. 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. 12

Colaboração com o padrão Camadas: Pacotes simples x Subsistemas: O pacote EstabelecimentoDePreços não é um subsistema: apenas agrupa a fábrica e as estratégias usadas no estabelecimento de preços. O pacote Persistência, MotorDeRegraPDV e Jess são subsistemas: são mecanismos separados com responsabilidades coesas que funcionam. Estereótipo que identifica um subsistema Colaboração com o padrão Camadas: Fachada: Padrão de acesso mais comum no caso de pacotes que representam subsistemas. Um objeto de fachada público define os serviços do subsistema e os clientes colaboram com a fachada e não com os componentes internos do subsistema. Geralmente mantem um pequeno número de operações de alto nível (serviços de granularidade grossa) 13

Colaboração com o padrão Camadas: Fachada: Uma fachada não realiza o seu próprio trabalho, mas sim é a consolidadora ou mediadora dos objetos do subsistema, que são os que realizam o trabalho. Outros pacotes não veem a implementação do subsistema, pois fica oculto atrás da fachada. Colaboração com o padrão Camadas: Fachada: Se a aplicação tem um pequeno número de operações é comum que a camada de Domínio tenha apenas um objeto fachada para a camada superior. Mas se tem muitas operações, com vários subsistemas, é comum pelo menos uma fachada para cada subsistema nas camadas superiores. 14

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: Fachada de sessão: mantem os estados da sessão para as operações de um caso de uso, em que cada instância de sessão represente uma sessão com um único cliente. Logo, é comum criar uma fachada de sessão para cada caso de uso. 15

Colaboração com o padrão Camadas: Fachadas de sessão e a camada de aplicação Colaboração com o padrão Camadas: O padrão GRASP Controlador descreve controladores para chamadas de operação que partem das UIs. 16

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. 17