SISMO - Sistemas e Mobilidade Departamento de Informática / UFMA. Junho de 2008

Tamanho: px
Começar a partir da página:

Download "SISMO - Sistemas e Mobilidade Departamento de Informática / UFMA. Junho de 2008"

Transcrição

1 Introdução SISMO - Sistemas e Mobilidade Departamento de Informática / UFMA Junho de 2008

2 Compõem uma disciplina da Engenharia de Software voltada para a resolução de problemas baseada na documentação de melhores práticas e de lições adquiridas com a experiência

3 Objetivos do uso Criar uma base documental para ajudar na solução de problemas recorrentes em atividades de desenvolvimento Disseminar o uso de uma linguagem comum para compartilhar idéias e experiências sobre esses problemas e suas soluções

4 Qual a melhor maneira de fazer um pedido na lanchonete? Um cheesburguer, por favor! Uma fatia de carne bovina moída grelhada na chapa coberta com folhas de alface, uma fatia de derivado de leite sólido, salgado e quente, tudo isso envolvido em duas fatias de pão redondo coberto com sementes de gergelim (ufa!), por favor! Figura: nhammm!!!!

5 Um pouco de história... Livros do arquiteto Christopher Alexander relacionados a planejamento urbano e arquitetura de edifícios (1964, 1975, 1977, 1979) Ward Cunningham and Kent Beck artigo apresentado no OOPSLA 87, Orlando, Florida, USA - Using Pattern Languages for Object-Oriented Programs (OOPSLA - Object-Oriented Programming, Systems, Languages, and Applications)

6 Um pouco de história... Jim Coplien publica em 1991 um catálogo de idioms de C++ (um tipo de padrão específico de uma linguagem), Advanced C++ Programming Styles and Idioms Workshops da OOPSLA relevantes para o amadurecimento dos padrões de software: Livro Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson, e John Vlissides (referidos como the Gang of Four ou GoF) Pattern-Oriented Software Architecture: A System of Pattern (the POSA book). Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, e Michael Stal

7 Tipos de Padrões Padrões de análise (Martin Fowler) Padrões organizacionais Padrões arquiteturais Padrões de projeto Idioms

8 Padrões Arquiteturais expressam uma organização estrutural fundamental ou esquema de sistemas de software provêem um conjunto de subsistemas predefinidos, suas responsabilidades e regras para organização do relacionamento entre eles Exemplo: MVC (Model, View, Controller)

9 Padrões de Projeto provêem um esquema para refinar subsistemas ou componentes de um sistema de software, ou o relacionamento entre eles descrevem estruturas recorrentes de componentes conectados que resolvem um problema geral de projeto dentro de um contexto particular

10 Idioms um idiom é um padrão de baixo nível específico de uma linguagem de programação idioms descrevem como implementar aspectos específicos de componentes ou de seus relacionamentos usando características de uma determinada linguagem exemplos interfaces, classes parametrizadas e reflexão em java templates em C++

11 Padrões não são algoritmos algoritmos e estruturas de dados resolvem geralmente problemas computacionais de granularidade mais fina (e.g., ordenação e busca) Padrões são relacionados tipicamente com problemas arquiteturais mais abrangentes com efeitos em mais larga escala. Por exemplo, os padrões de projeto no livro da GoF tratam problemas como manutenibilidade, reusabilidade e variações de encapsulamento

12 Padrões não são Frameworks um arcabouço de software é um conjunto de classes cooperantes que constituem um projeto reutilizável para um tipo específico de software exemplo: Swing do java

13 Padrões não são Frameworks II um arcabouço pode ser visto como a implementação de um sistema de padrões de projeto contudo, um arcabouço é software executável, enquanto padrões de projeto representam conhecimento e experiência sobre software

14 Tipos de Padrões de Projeto Padrões de Criação - Se preocupam com o proceso de criação de projetos Padrões Estruturais - Lidam com a composição de classes ou de objetos Padrões Comportamentais - Caracterizam a maneira pelas quais classes ou objetos interagem e distribuem responsabilidades

15 Uma pausa para respirar... Figura: antes dos problemas...

16 Um Problema A empresa do Zé está desenvolvendo um jogo de combate e ele recebeu a tarefa de criar uma hierarquia de classes para os combatentes. Suponha que ele criou a seguinte hierarquia inical de classes: Figura: Diagrama de Classes de Combatentes

17 Tudo ia muito bem, mas... A concorrência não dá moleza; e os executivos da empresa, depois de um estafante fim de semana num hotel de luxo, resolveram que o zé tinha que adicionar novas funcionalidades ao jogo. Ai ele teve uma idéia genial: Reutlização de Código via Herança - inserir os novos poderes na classe Combatente, que seriam herdados por todos os outros soldados Figura: Classe Combatente revisada

18 Novos Problemas ô sua anta, quem já viu soldado mergulhar no deserto?. Figura: Cuidado! Chefe doido Zé não percebeu que nem todo soldado precisa (ou pode) mergulhar! Ele poderia sobrescrever os métodos mergulhar e nadar, mas e se pedirem para adicionar um combatente astronauta? Provavelmente ele terá que sobrescrever esses métodos também...e continuar sobrescrevendo, a cada nova classe derivada de combatente. Eternamente...

19 O que aconteceu??? A grande idéia do Zé era usar herança com o propósito de reutilizar o código. Mas acabou criando problemas de manutenção. Quais as principais desvantagens no uso da herança no caso dos combatentes? duplicação de código nas subclasses é difícil mudar comportamento dos objetos em tempo de execução as mudanças podem afetar outros combatentes de modo não intencional

20 Outra grande idéia Porém o Zé foi informado que novas mudanças viriam a cada trimestre. A herança iria causar um pesadelo de manutenção. Dai, o Zé teve outra grande idéia... E se eu criasse uma interface aquática? Assim eu não teria combatentes nadando no deserto eheh. Eu sou muito esperto!!! Figura: Usando interfaces

21 Ai é que está o busílis (O X do problema) De fato, não temos mais combatentes nadando no deserto... Mas em contrapartida, a reutilização do código para os métodos nadar e mergulhar foi pelo ralo!!! O Zé trocou um problema de manutenção por outro. Figura: Chefe Mais Irado O problema é que mudanças são uma constante em software e precisamos desenvolver aplicações pensando nesse problema.

22 Princípio OO: Encapsulamento Identifique os aspectos variantes na sua aplicação e os encapsule. Posteriormente, você pode estender ou alterar as partes que variam sem afetar as que não o fazem Essa abordagem resultará em: menos surpresas inesperadas em razão de alterações no código e sistemas mais flexíveis e fáceis de manter

23 Aplicando o princípio do Encapsulamento ao problema Possíveis novas classes de combatentes precisarão nadar, mergulhar e até mesmo flutuar. (combatentes astronautas, por exemplo), enquanto outras não Esse tipo de comportamento (mais variável) deve ser separado da hierarquia da classe Combatente para promover independência e flexibilidade. Esse princípio está na base da maioria dos padrões de projeto orientados a objetos Todo padrão provê um meio de deixar uma das partes de um sistema variar independentemente das outras partes

24 Separando o que muda do que permanece Pelo que vimos até agora, os métodos mais sensíveis a mudanças são exatamente nadar, mergulhar e (o novo método) flutuar A hierarquia de classes Combatente deve continuar a mesma, isto é, com as mesmas subclasses, mas vamos tirar dela os métodos que representam comportamentos mais afetados por mudanças Vamos criar novas hierarquias de classes para representar esses comportamentos

25 Criando hierarquia separada de comportamentos Figura: Hierarquias de comportamentos

26 Implementação das Interfaces de Comportamento I Figura: Comportamento Aquático

27 Implementação das Interfaces de Comportamento II Figura: Comportamento Aéreo

28 Princípio OO: Programar para Interface Programe para uma Interface, não para uma implementação Podemos implementar novos comportamentos aquático e aéreo, criando novas classes que implementem essas interfaces A classe Combatentes não precisa conhecer detalhes de implementação desses comportamentos Outros objetos, além dos Combatentes, podem usar os comportamentos aquático e aéreo, porque eles não estão escondidos na classe combatente

29 Refatorando a Classe Combatente

30 Refatorando subclasses O Comportamento da classe Caveira é definido pelas classes que implementam as interfaces AcaoAerea e AcaoAquatica Figura: Especializando um tipo de Combatente (Caveira)

31 Integrando as Hierarquias Figura: Visão do Conjunto

32 Adicionando Comportamento Dinamicamente Figura: Aplicação Exemplo

33 Princípio OO: Composição Prefira Composição em vez de Herança a Composição permitiu encapsular comportamento (algoritmos) em seu próprio conjunto de clases e permitiu mudar o comportamento dos objetos dinamicamente (em tempo de execução)

34 Padrão Strategy Parabéns! Você acabou de ser apresentado na prática ao padrão Strategy Segundo o Livro da GoF, a intenção do Padrão Strategy é: Definir uma família de algoritmos, encapsular cada um deles e torná0los intercambiávies. Strategy permite que o algoritmo varie independentemente dos clientes que o utilizam

35 Padrão Strategy: Classificação e Motivação Propósito: Comportamental Escopo: Objetos Motivação: clientes que necessitam de diferentes algoritmos se tornam mais complexos se os incluirem em seu código diferentes algoritmos são adequados em diferentes situações na resolução de um mesmo problema

36 Padrão Strategy: Classificação e Motivação Figura: Exemplo de Motivação

37 Padrão Strategy: Aplicabilidade Use Strategy quando: muitas classes relacionadas diferem somente no seu comportamento você necessita de variantes de um algoritmo um algoritmo usa dados sobre os quais o cliente não precisa ter conhecimento comandos condicionais relacionados para escolher entre muitos comportamentos de uma classe podem ser movidos para sua própria classe Strategy

38 Padrão Strategy: Estrutura Figura: Estrutra do Padrão

39 Padrão Strategy: Colaborações Strategy e Context interagem para implementar o algoritmo escolhido os clientes usualmente criam e passam um objeto ConcreteStrategy para o contexto e passam a interagir diretamente com o contexto

40 Padrão Strategy: Consequências famílias de algoritmos relacionados uma alternativa ao uso de subclasses possibilidade de escolha de implementações os clientes devem conhecer diferentes estratégias custo de comunicação entre Strategy e Context aumento do número de objetos

Tópicos Avançados em Linguagem de Programação. Padrões de Software. Prof. Alexandre Vidal DEINF-UFMA. Ciência da Computação

Tópicos Avançados em Linguagem de Programação. Padrões de Software. Prof. Alexandre Vidal DEINF-UFMA. Ciência da Computação Tópicos Avançados em Linguagem de Programação Prof. Alexandre Vidal DEINF-UFMA Ciência da Computação Patterns (padrões) Compõem uma disciplina da Engenharia de Software voltada para a resolução de problemas

Leia mais

Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná

Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Roni Fabio Banaszewski UTFPR Universidade Tecnológica Federal do Paraná Reuso Motivações para reutilização de software Aspecto econômico Produtividade Time to market Qualidade Utilização de artefatos (código,

Leia mais

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

Módulo I Princípios e Padrões de Projeto de SW em Java Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Leia mais

Desenho e documentação de arquitectura de software e de aplicações empresariais

Desenho e documentação de arquitectura de software e de aplicações empresariais Desenho e documentação de arquitectura de software e de aplicações empresariais João Pascoal Faria Laboratório de Engenharia de Software 10 de Novembro de 2003 1 Definição de arquitectura de software Arquitectura

Leia mais

Mas o que é mesmo Padrão de Projeto?

Mas o que é mesmo Padrão de Projeto? Mas o que é mesmo Padrão de Projeto? Um Padrão de Projeto descreve uma solução comprovada para um problema recorrente e conhecido no desenvolvimento de software orientado a objetos. Mas afinal, porque

Leia mais

Padrões contexto problema solução

Padrões contexto problema solução Padrões Padrões são soluções para problemas específicos que ocorrem de forma recorrente em um determinado contexto que foram identificados a partir da experiência coletiva de desenvolvedores de software.

Leia mais

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Revisões Arquitectura de Sistemas de Software,

Leia mais

Projeto de software Estrutura do software e arquitetura SWEBOK

Projeto de software Estrutura do software e arquitetura SWEBOK Projeto de software Estrutura do software e arquitetura SWEBOK SWEBOK Design Patterns Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas da engenharia Design

Leia mais

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Introdução Paulo Gomide Departamento de Ciência da Computação Universidade de Itaúna Motivação Introdução Por que Padrões? Por que Padrões de Projeto? O que é um Padrão de

Leia mais

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 17 Padrões de Design Singleton Facade Factory Method Observer Strategy

Leia mais

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Arquitectar... Arquitectar uma pequena cabana

Leia mais

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

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 DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para

Leia mais

Padrões. Arquitetura de Software Thaís Batista

Padrões. Arquitetura de Software Thaís Batista Padrões Endereçam uma classe de problemas recorrentes e apresenta uma solução para eles (podem ser considerados um par problema-solução) Permitem a construção de software com propriedades definidas Ajudam

Leia mais

PADRÕES DE PROJETO: DESIGN PATTERNS

PADRÕES DE PROJETO: DESIGN PATTERNS PADRÕES DE PROJETO: DESIGN PATTERNS Jaime William Dias 1, Danilo Venturini 1, William Macxuel Muniz 1, Rodrigo Niehues Chagas 1 1 Universidade Paranaense (UNIPAR) Paranavaí PR Brasil danilo_tr98@hotmail.com,

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Projeto e Implementação Padrões de Projeto Msc. Carlos Mar 04/2014 REVISÃO: ORIENTAÇÃO A OBJETOS Msc. Carlos Mar - Abr/2014 Conceitos Fundamentais Classe Objeto Atributos Métodos

Leia mais

Design Patterns. Viviane Torres da Silva

Design Patterns. Viviane Torres da Silva Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2010.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

ESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO

ESTUDO DO PADRÃO DE PROJETO OBSERVER NO DESENVOLVIMENTO DE SOFTWARES UTILIZANDO A ARQUITETURA MVC RESUMO Mostra Nacional de Iniciação Científica e Tecnológica Interdisciplinar III MICTI Fórum Nacional de Iniciação Científica no Ensino Médio e Técnico - I FONAIC-EMT Camboriú, SC, 22, 23 e 24 de abril de 2009

Leia mais

15/09/2014. Aula 01: Apresentação. Review to 1 st Exam. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

15/09/2014. Aula 01: Apresentação. Review to 1 st Exam. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02 Software Reuse Lecture 13 Aula 01: Apresentação Review to 1 st Exam Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 15 September 2014 Bibliografia Método de avaliação Provas

Leia mais

Factory Pattern. SISMO - Sistemas e Mobilidade Junho de Departamento de Informática / UFMA

Factory Pattern. SISMO - Sistemas e Mobilidade  Junho de Departamento de Informática / UFMA Factory Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Do que vamos tratar? Criação de objetos não é simplesmente usar o operador

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa

BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade

Leia mais

Padrões de Projeto. Parte 1. Prof. Fellipe Aleixo

Padrões de Projeto. Parte 1. Prof. Fellipe Aleixo Padrões de Projeto Parte 1 Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Padrões de Projeto de Software OO Também conhecidos como Padrões de Projeto de Software OO ou simplesmente como Padrões A Inspiração

Leia mais

Introdução aos Padrões de Projeto. Sylvio Barbon Jr

Introdução aos Padrões de Projeto. Sylvio Barbon Jr Introdução aos Padrões de Projeto Sylvio Barbon Jr 25 février 2016 Introdução Disciplina Engenharia de Software : São Tratados principalmente os tesmas : Metodologia : No desenvolvimento

Leia mais

Análise e Projeto. Padrões de Análise, Arquitetura e Projeto

Análise e Projeto. Padrões de Análise, Arquitetura e Projeto Análise e Projeto Padrões de Análise, Arquitetura e Projeto 33 Padrões de Arquitetura Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e seu contexto. Solução: elementos que

Leia mais

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02

Aula 01: Apresentação. Revisão para Prova 1. Aula 02: Técnicas de Reuso. Panorama de Reuso. Aula 03: POO e Padrões. Bibliografia da Aula 02 Reutilização de Software Aula 13 Aula 01: Apresentação Revisão para Prova 1 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 23 Setembro 2013 Bibliografia Método de avaliação

Leia mais

As classes Formatador e ElementosAFormatar

As classes Formatador e ElementosAFormatar Introdução Vamos considerar o problema de formatação no editor de documentos WYSIWYG Já sabemos como é a representação da informação Mas ainda não sabemos como gerar uma estrutura particular de linhas,

Leia mais

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

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais

Leia mais

Padrões de Desenho (Design Patterns)

Padrões de Desenho (Design Patterns) Padrões de Desenho (Design Patterns) O que são padrões de desenho Porque são úteis Conhecer alguns padrões 1 Padrões (Patterns) Design Patterns Explained: A New Perspective on Object-Oriented Design, Alan

Leia mais

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

Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos. Padrões de Projeto O que são? Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos. Livros Design Patterns: Elements of Reusable Object-

Leia mais

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

Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Arquitectura de Sistemas de Software Mestrado em Engenharia Informática Licenciatura em Engenharia Informática e Computação Ademar Aguiar Universidade do Porto & INESC Porto ademar.aguiar at fe.up.pt FEUP

Leia mais

Modulo I Princípios e Padrões de Projeto de SW em Java

Modulo I Princípios e Padrões de Projeto de SW em Java Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br

Leia mais

Exemplos em Go e Python ALÉM DOS PARADIGMAS. Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto

Exemplos em Go e Python ALÉM DOS PARADIGMAS. Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto Exemplos em Go e Python ALÉM DOS PARADIGMAS Entenda as características da linguagem e saiba escolher e adaptar padrões de projeto Luciano Ramalho @ramalhoorg Sometimes you need a blank template. 2 FLUENT

Leia mais

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

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001 PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções

Leia mais

Problema: Problema: FRAMEWORK. Problema: Motivação. O que é um framework

Problema: Problema: FRAMEWORK. Problema: Motivação. O que é um framework Problema: Construir a simulação do comportamento de caixas de supermercado. FRAMEWORK Problema: Construir a simulação do comportamento de caixas de supermercado. for( ; time < fim ; ) { e = lista.getprimeiro();

Leia mais

Strategy e Template Method. Professor: Hyggo Almeida

Strategy e Template Method. Professor: Hyggo Almeida Professor: Hyggo Almeida Sistema de venda de ingressos Existe uma classe Ingresso que possui um método getpreco(); O preço muda de acordo com a idade da pessoa... e outras coisas mais... quando o ingresso

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos 2 Prof. Fabiano Dorça. Padrões de Projeto.

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos 2 Prof. Fabiano Dorça. Padrões de Projeto. Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos 2 Prof. Fabiano Dorça Padrões de Projeto Permite definir famílias de comportamentos, que podem ser (re)utilizados

Leia mais

Padrões de Projeto. Conteúdo. Objetivos

Padrões de Projeto. Conteúdo. Objetivos Padrões de Projeto Conteúdo O que são Padrões de Projeto? Para que servem? Vantagens/Desvantagens, Pontos Fortes/Fracos Exemplos e Alternativas Objetivos Conhecer diferentes padrões; Entender sua utilidade;

Leia mais

PATI-MVC: Padrões MVC para Sistemas de Informação. Gabriela T. De Souza Instituto Atlântico

PATI-MVC: Padrões MVC para Sistemas de Informação. Gabriela T. De Souza Instituto Atlântico PATI-MVC: Padrões MVC para Sistemas de Informação Gabriela T. De Souza gabi@atlantico.com.br Instituto Atlântico Carlo Giovano S. Pires cgiovano@atlantico.com.br Instituto Atlântico Márcio de Oliveira

Leia mais

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

Tópicos da Aula. POO e Padrões de Projetos. Considere três classes... Reuso de Classes. Locadora de DVD. Sistema Acadêmico Reuso de Software Aula 03 Tópicos da Aula POO e Padrões de Projetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 12 Março 2012 Programação orientada a objetos Reuso de

Leia mais

Abordagem Teórico-Prática

Abordagem Teórico-Prática Abordagem Teórico-Prática Prof. Giuliano Prado M. Giglio, M.Sc Desenvolvimento de Aplicações Distribuídas - WEB Agenda Padrão MVC Objetivo Características Problemas e se aplicar o MVC Sistema Exemplo Aplicação

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

Frameworks. Viviane Torres da Silva

Frameworks. Viviane Torres da Silva Frameworks Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/es1 Frameworks Motivação Definição Classificação Características Propriedades Técnicas de Customização Frameworks

Leia mais

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

Introdução à Análise e Projeto de Sistemas Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

Rossana Andrade Departamento de Computação Universidade Federal do Ceará. O que é? Como?

Rossana Andrade Departamento de Computação Universidade Federal do Ceará. O que é? Como? Rossana Andrade rossana@lia.ufc.br Departamento de Computação Universidade Federal do Ceará Oferecer uma visão geral sobre os conceitos de padrões de software Explicar a terminologia Apresentar exemplos

Leia mais

Padrões Arquiteturais. Silvia Regina Vergilio

Padrões Arquiteturais. Silvia Regina Vergilio Padrões Arquiteturais Silvia Regina Vergilio Exemplo de Padrão Arquitetural: MVC + call Observer update() Model coredata setofobservers attach() detach() notify() getdata() service() +attach get View mymodel

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que

Leia mais

Tópico 8: Arquitetura, Padrões, Frameworks e MDA

Tópico 8: Arquitetura, Padrões, Frameworks e MDA PU-Rio Tópico 8: Arquitetura, Padrões, Frameworks e MDA Luiz Antônio M. Pereira lpereira@uninet.com.br PU-Rio Agenda Arquitetura de Software Padrões e Frameworks Introdução Padrões de projeto Frameworks

Leia mais

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

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2006 Profa. Dra. Itana Gimenes RUP: Projeto Artefatos Modelo de Projeto: Lista de classes de

Leia mais

Programação Orientada a Objetos. Padrões Estruturais

Programação Orientada a Objetos. Padrões Estruturais Programação Orientada a Objetos Padrões Estruturais Cristiano Lehrer, M.Sc. Classificação dos Padrões de Projeto Propósito o que o padrão faz: Padrões de criação: abstraem o processo de criação de objetos

Leia mais

Padrões de Análise. Martin Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, Osvaldo Kotaro Takai João Eduardo Ferreira

Padrões de Análise. Martin Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, Osvaldo Kotaro Takai João Eduardo Ferreira Padrões de Análise Martin Fowler, Analysis Patterns: Reusable Object Models, Addison-Wesley, 2000 última atualização: agosto 2005 Osvaldo Kotaro Takai João Eduardo Ferreira Capítulo 1 - Introdução Modelos

Leia mais

Padrões de Design Orientado a Objetos Design Patterns. Jorge H. C. Fernandes DI-UFPE, Junho de 1999

Padrões de Design Orientado a Objetos Design Patterns. Jorge H. C. Fernandes DI-UFPE, Junho de 1999 Padrões de Design Orientado a Objetos Design Patterns Jorge H. C. Fernandes DI-UFPE, Junho de 1999 Padrões de Design Bibliografia Design Patterns: Elements of Reusable Object- Oriented Software. Gamma,

Leia mais

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários

Leia mais

Visões Arquiteturais. Visões Arquiteturais

Visões Arquiteturais. Visões Arquiteturais Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade

Leia mais

Definindo um padrão para arquitetura Web

Definindo um padrão para arquitetura Web Definindo um padrão para arquitetura Web Padrões de Projeto Soluções reutilizáveis para situações ou problemas encontrados comumente em desenvolvimento de software orientado a objetos. Livros Design Patterns:

Leia mais

Tecnologias Atuais de. Desenvolvimento de Software

Tecnologias Atuais de. Desenvolvimento de Software Tecnologias Atuais de Desenvolvimento de Software Arquitetura, Padrões, Frameworks e MDA Prof. Luiz Antônio lpereira@uninet.com.br Agenda Arquitetura de Software Patterns e Frameworks Introdução Padrões

Leia mais

2 Metodologias para Projetos de Aplicações Hipermidia

2 Metodologias para Projetos de Aplicações Hipermidia 2 Metodologias para Projetos de Aplicações Hipermidia O processo de desenvolvimento de aplicações é o objeto de diversas pesquisas, principalmente no caso das aplicações voltadas para a Internet, que diferem

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ - UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 11 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de Refatoração e Padrões. DESENVOLVIMENTO PADRÕES

Leia mais

Orientação a Objetos (OO)

Orientação a Objetos (OO) CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 04 APRESENTAÇÃO: Hoje vamos discutir os conceitos de Orientação a Objetos.

Leia mais

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001 PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes

Leia mais

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

Notas de Aula 03: Introdução a Orientação a Objetos e a UML Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas

Leia mais

UML (Unified Modelling Language)

UML (Unified Modelling Language) UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide

Leia mais

Tópicos Especiais em Informática Fatec Indaiatuba

Tópicos Especiais em Informática Fatec Indaiatuba Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba O que tem a ver isso com Programação? Imagine que uma pessoa tenha aprendido diversas técnicas de pintura. A partir desse conhecimento, ela saberá como pegar

Leia mais

Prof.ª Esp. Talita Pagani

Prof.ª Esp. Talita Pagani Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Ou um prédio de 6 andares... Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Arquitectura de

Leia mais

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

Introdução a Padrões, GRASP. Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) Introdução a Padrões, GRASP Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Processo de Desenvolvimento de Software Visão geral de processo Processos

Leia mais

BCC Engenharia de Software Professor Rodrigo Andrade

BCC Engenharia de Software Professor Rodrigo Andrade BCC Engenharia de Software 2017.1 Professor Rodrigo Andrade Aula Passada Implementação, Manutenção e Execução dos testes Implementação e Manutenção de Funcionalidades Qualidade de código visão caixa preta

Leia mais

Arquitectura de Sistemas de Software

Arquitectura de Sistemas de Software Arquitectura de Sistemas de Software Ademar Aguiar www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt Arquitectura de Sistemas de Software, LEIC/MEI, 2003/2004 1 Arquitectar... Arquitectar uma pequena cabana

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

3.1 Reflexão Computacional

3.1 Reflexão Computacional 3 Adaptação Dinâmica Adaptação dinâmica é a capacidade de um sistema ser modificado durante sua execução para se adequar a novas necessidades. Recentemente, esse tem se tornado um tópico de pesquisa proeminente

Leia mais

Arquitetura de Sistemas

Arquitetura de Sistemas Arquitetura de Sistemas Fabio Perez Marzullo IEEE Body of Knowledge on Services Computing Sponsored by Technical Committee on Services Computing, IEEE Computer Society Projeto Arquitetural Modelos mentais

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação Ementa Definição de arquitetura de software. Importância e impacto

Leia mais

English version at the end of this document

English version at the end of this document English version at the end of this document Ano Letivo 2016-17 Unidade Curricular PROGRAMAÇÃO ORIENTADA POR OBJETOS Cursos ENGENHARIA ELETRÓNICA E TELECOMUNICAÇÕES (Mestrado Integrado) ENGENHARIA INFORMÁTICA

Leia mais

INF011 Padrões de Projeto Introdução

INF011 Padrões de Projeto Introdução INF011 Padrões de Projeto 01 - Introdução Sandro Santos Andrade sandroandrade@ifba.edu.br Instituto Federal de Educação, Ciência e Tecnologia da Bahia Departamento de Tecnologia Eletro-Eletrônica Graduação

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça. Introdução. Padrões de projeto

Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça. Introdução. Padrões de projeto Universidade Federal de Uberlândia Faculdade de Computação Prof. Fabiano Dorça Introdução Padrões de projeto Algumas definições... Um padrão de projeto (design pattern) é uma solução geral reutilizável

Leia mais

Aula 24 Programação Modular, POO e Padrões de Projeto

Aula 24 Programação Modular, POO e Padrões de Projeto Aula 24 Programação Modular, POO e Padrões de Projeto Alessandro Garcia LES/DI/PUC-Rio Junho 2010 Diferenças entre... Módulos (em C) e Classes (Linguagens OO) Classes possuem um operador de instanciação

Leia mais

Modelos de design arquitetural

Modelos de design arquitetural Modelos de design arquitetural Jair C Leite Modelos de design arquitetural Objetivo Guiar o arquiteto nas etapas para desenhar a arquitetura Deve considerar diferentes visões arquiteturais Atualmente existem

Leia mais

Desenvolvimento de Aplicações Desktop

Desenvolvimento de Aplicações Desktop Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite Motivação Na Programação OO, um OBJETO é considerado a entidade central de um programa Assim, o desenvolvimento de

Leia mais

English version at the end of this document

English version at the end of this document English version at the end of this document Ano Letivo 2017-18 Unidade Curricular PROGRAMAÇÃO ORIENTADA POR OBJETOS Cursos ENGENHARIA INFORMÁTICA (1.º ciclo) ENGENHARIA ELETRÓNICA E TELECOMUNICAÇÕES (Mestrado

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos

Leia mais

Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba

Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba Prof. Dr. Dilermando Piva Jr. Fatec Indaiatuba Imagine que uma pessoa tenha aprendido diversas técnicas de pintura. A partir desse conhecimento, ela saberá como pegar um pincel, como misturar as cores

Leia mais

Módulo III Padrões GOF

Módulo III Padrões GOF Módulo III Padrões GOF Professores Eduardo Bezerra edubezerra@gmail.com Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Introdução aos

Leia mais

Como Modelar com UML 2

Como Modelar com UML 2 Ricardo Pereira e Silva Como Modelar com UML 2 Visual Books Sumário Prefácio... 13 1 Introdução à Modelagem Orientada a Objetos... 17 1.1 Análise e Projeto Orientados a Objetos... 18 1.2 Requisitos para

Leia mais

Padrões Comportamentais

Padrões Comportamentais Padrões Comportamentais Parte 2 Soluções Reutilizáveis de Software Orientado a Objetos Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Padrões de Projeto Comportamentais 1. Chain of Responsibility 2.

Leia mais

DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA

DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DIVISÃO DE ASSUNTOS ACADÊMICOS Secretaria Geral de Cursos PROGRAMA DE DISCIPLINA DEPARTAMENTO DE CIÊNCIAS EXATAS CÓDIGO: EXA836 DISCIPLINA: PADRÕES E FRAMEWORKS CARGA HORÁRIA: 60h EMENTA: Padrões e anti-padrões

Leia mais

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001 PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes

Leia mais

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas (Introdução e Desenvolvimento de Software em Camadas) Jadson José dos Santos jadsonjs@gmail.com Natal/RN 2008 Sumário 1 INTRODUÇÃO...

Leia mais

Padrões de Software (Software Patterns)

Padrões de Software (Software Patterns) Padrões de Software (Software Patterns) Cleidson de Souza - cdesouza@ufpa.br Departamento de Informática Universidade Federal do Pará Agenda! Definição! Histórico! Motivação! Exemplo Estratégia MVC! Forma

Leia mais

MAC Tópicos de P.O.O.

MAC Tópicos de P.O.O. MAC 5715 - Tópicos de P.O.O. Anti-Padrão de Desenvolvimento: Será um padrão? Diego Tarábola tarabola@gmail.com Denise Goya dhgoya@ime.usp.br Historinha-evidência Esta implementação de Singleton [2] faz

Leia mais

Facetas da Reusabilidade de Software

Facetas da Reusabilidade de Software Facetas da Reusabilidade de Software Daremos um breve panorama da disciplina inteira: reusabilidade de software Qual é o problema? Fazer software é difícil Fazer software é lento e caro Não temos tecnologia

Leia mais