Padrões de Projeto de Software

Documentos relacionados
Padrões de Projeto de Software

Análise e Projeto Orientados por Objetos

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

Engenharia de Software

Prof.ª Esp. Talita Pagani

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico

Testes com Design Patterns

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos

Design Pattern Implementation in Java and AspectJ

Programação com Objectos

Padrões de Projeto de Software

Análise e Projeto Orientados por Objetos

Programação Orientada a Objetos. Padrões de Criação

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Padrões GoF. Leonardo Gresta Paulino Murta

Padrões de Projeto. Prof. Jefersson Alex dos Santos

Curso - Padrões de Projeto Módulo 1: Introdução

1Introdução Helder da Rocha

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha

Padrões GRASP. Leonardo Gresta Paulino Murta

Padrões de Projeto de Software Orientado a Objetos

Padrões de Design. Padrões de Design. Abstract Factory. Padrões de Design. Padrões de Design Abstract Factory. Abstract Factory.

PADRÕES DE PROJETO. Cleviton Monteiro

O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

UML & Padrões Aula 7. UML & Padrões - Profª Kelly C C Silva

Design Patterns. Viviane Torres da Silva

Arquitectura de Sistemas de Software

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR

Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Profa. Thienne Johnson

SCE 186- Engenharia de Software

Definindo um padrão para arquitetura Web

OO IMPACTO DA UTILIZAÇÃO DE DESIGN

Padrões de Desenho Engenharia de Software

PADRÕES DE PROJETO: DESIGN PATTERNS

Padrões de Software (Software Patterns)

Padrões de Projeto v3: Catálogo GoF

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

TREINAMENTO ORIENTAÇÃO A OBJETOS

Padrões. Identificando padrões

Correção- STJ. Professor Marcelo Pacote W W W. D OMINANDOTI.COM.BR

Uma Experiência no Ensino de Padrões de Projeto Utilizando Jogo no Processo de Ensino-Aprendizagem

Projeto Orientado a Objetos

Padrões de Software (Software Patterns)

Vítor E. Silva Souza

Modulo II Padrões GRASP

Interface vs. Implementação Herança vs. Composição

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

Padrões de Projeto. Bibliografia. Nomenclatura

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação

UNIVERSIDADE FUMEC FACULDADE DE CIÊNCIAS EMPRESARIAIS - FACE MATHEUS HIGINO DE OLIVEIRA CASSIMIRO

Padrões Comportamentais

Refatoração de sistemas Java utilizando padrões de projeto: um estudo de caso

Eduardo Bezerra. Editora Campus/Elsevier

Builder e Composite: padrões para a sua caixa de ferramentas

Engenharia de Software

1. Identifique-se na parte inferior desta capa. Caso se identifique em qualquer outro local deste caderno, você será eliminado do Concurso.

MÓDULO Modelagem de classes de projeto

CURSO DE SISTEMAS DE INFORMAÇÃO ALINE DE SOUSA PEREIRA PADRÕES DE PROJETO: UMA COMPILAÇÃO DOS MAIS UTILIZADOS EM PROJETOS DE SOFTWARE

Programação Orientada a Objetos Padrões de Projeto (design patterns) Fernando Vanini IC - UNICAMP

Padrões de Design. Jair C Leite

SUMÁRIO PARTE I. Princípios de Projeto, a Linguagem de Modelagem Unificada (Unified Modeling Language, ou UML) e Projeto em Nível de Código

Padrões de Projeto em Desenvolvimento Web SCC 266. Prof. Renata Pontin M. Fortes PAE: Willian Watanabe

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB

Padrões de Projeto GoF. Prof. Alberto Costa Neto DComp/UFS

Uma Proposta para a Integração de Modelos de Padrões de Software com Ferramentas de Apoio ao Desenvolvimento de Sistemas

Utilizando padrões de Projeto JEE no desenvolvimento de aplicações web: um estudo de caso

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

Padrões de Projeto de Software

UTILIZANDO PADRÕES DE PROJETO PARA O DESENVOLVIMENTO DE UM SISTEMA DE GERENCIAMENTO DE BIBLIOTECAS ESCOLARES

Engenharia de Software II

PADRÕES DE PROJETO EM OOERLANG UNIVERSIDADE DO ESTADO DO AMAZONAS - UEA. Manaus ESCOLA SUPERIOR DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO

Levantamento, Análise e Gestão Requisitos. Aula 03

Introdução a Padrões

Curso - Padrões de Projeto Módulo 3: Padrões de Estrutura

Programação Orientada a Objetos

Técnicas para Reutilização de Software

Abordagem Metodológica para Compreensão e Aplicação de Padrões de Projeto

Especialização em web com interfaces ricas

Padrões de Projeto. Marco Túlio de Oliveira Valente

IV Congresso de Pesquisa e Extensão da FSG II Salão de Extensão

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

CURSO DE PÓS-GRADUAÇÃO LATO SENSU EM ENGENHARIA DE SOFTWARE A DISTÂNCIA 3ª TURMA

Pasteur Ottoni de Miranda Junior. Alguns Padrões de Projeto Gamma

Academia Programação JAVA

Design Patterns. Histórico e Fundamentos: Padrões do GoF Criacionais Estruturais Comportamentais. Fernando Anselmo

Padrões. Design. com aplicações em Java. Helder da Rocha

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

Arquitetura de Software: Introdução

Padrões de Desenho. Padrões de Desenho

Transcrição:

Padrões de Projeto de Software Luiz Leão luizleao@gmail.com http://www.luizleao.com

Introdução O que é? Como descrever? Principais Padrões de Projetos

Unidade 2 Padrões GoF PADRÕES CRIAÇÃO Abstract Factory Builder Factory Method Prototype Singleton. PADRÕES ESTRUTURAIS Adapter Bridge Composite Decorator Façade Flyweight Proxy

Unidade 2 Padrões GoF (Cont.) PADRÕES COMPORTAMENTAIS Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor

Unidade 3 Padrões GRASP (General Responsibility Assignment Software Patterns) PADRÕES BÁSICOS Information Expert ou Expert (Especialista na Informação) Creator (Criador) Low Coupling (Acoplamento Fraco ou Baixo) High Cohesion (Coesão Alta) Controller (Controlador) PADRÕES AVANÇADOS Polymorphism (Polimorfismo) Indirection (Indireção) Pure Fabrication (Invenção Pura) Protected Variations (Variações Protegidas)

Unidade 4 Arquitetura em Camadas Definição Composição

Conteúdo Programático Introdução O que é? Como descrever? Principais Padrões de Projetos

Introdução Projetar software orientado a objetos é difícil Projetar software orientado a objetos e reutilizável é muito difícil O projeto deve ser específico ao problema, porém genérico o suficiente para acomodar futuras mudanças É difícil obter um projeto flexível e reutilizável na primeira tentativa Projetistas novatos levam um tempo para entender o que é um bom projeto orientado a objetos

Introdução O que os projetistas experientes fazem: Reutilizam soluções que funcionaram no passado Muitos sistemas orientados a objetos compartilham padrões de funcionamento das classes e da comunicação entre objetos Estes padrões tornam o projeto mais flexível, elegante e reutilizável O projetista aplica o padrão de projeto sem ter que o re-descobrir Novelistas e dramaturgos aplicam padrões constantemente O mesmo vale para software

Introdução Exemplos: "Represente o estado como um objeto" "Decore os objetos de modo que funcionalidades possam ser facilmente adicionadas ou removidas" Se você conhece o padrão, uma série de decisões de projeto surgem automaticamente Um padrão de projeto registra uma determinada experiência bem sucedida em projeto de software Cada padrão sistematicamente nomeia, explica e avalia um projeto importante e recorrente

Introdução Os padrões de projeto facilitam a definição de um projeto "correto" em um tempo reduzido A idéia de padrões foi apresentada por Christopher Alexander em 1977 no contexto de Arquitetura (de prédios e cidades): Cada padrão descreve um problema que ocorre frequentemente em nosso ambiente e descreve o núcleo da solução para o problema, de uma forma que ela possa ser utilizada inúmeras vezes (Christopher Alexander, 1977)

Introdução Um padrão possui quatro elementos: Nome: Identificador utilizado para descrever, com uma ou duas palavras, o problema, sua solução e consequências Problema: Descreve quando aplicar o padrão e o contexto do problema Solução: Descreve os elementos que compõem o projeto, seus relacionamentos, responsabilidades e colaborações. Não descreve uma implementação ou projeto concreto em particular Consequências: Resultados e trade-offs da aplicação do padrão

Introdução Os padrões apresentados são descrições de classes e objetos inter-relacionados que solucionam um problema de projeto em um contexto particular Outros padrões estão disponíveis para solucionar problemas de concorrência, computação distribuída, tempo-real e aspectos específicos de domínio