Introdução a Padrões

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

Download "Introdução a Padrões"

Transcrição

1 Introdução a Padrões

2 Contexto GUI / Comunicação TelaLogin Arquitetura do Sistema TelaPagamentoQualitiCard NEGÓCIO Fachada ContaInternet ControladorLogin CadastroContas Internet ControladorPagamentoQualitiCard CadastroPagamentosCartao... PagamentoCartao Interfaces negócio-dados IRepositorioContasInternet IRepositorioPagamentosCartao DADOS RepositorioContasI nternetbdr RepositorioContasI nternetarquivo RepositorioPagamentos CartaoBDR RepositorioPagamentos CartaoBDOO Análise e Projeto OO com UML e Padrões 2

3 Evolução de Software Grandes sistemas de software nunca são concluídos; eles simplesmente continuam evoluindo [Lehman] Motivos e conseqüências (algumas Leis de Lehman) - Mudança Contínua e Crescimento Contínuo Mudanças são inevitáveis para que o software continue útil Adição de funcionalidades para manter a satisfação do usuário - Complexidade Crescente e Qualidade Decrescente Mudanças aumentam a complexidade do software Qualidade diminui a não ser que haja adaptações Análise e Projeto OO com UML e Padrões 3

4 Como devemos proceder? Pensar antes de agir! Algumas ações: - Analisar impactos - Modelar, antes de codificar - Utilizar soluções e técnicas validadas Não reinventar a roda! Análise e Projeto OO com UML e Padrões 4

5 Padrões em outras Engenharias Cada padrão descreve um problema que ocorre repetidas vezes em nosso ambiente, e então descreve o núcleo da solução para aquele problema, de tal maneira que pode-se usar essa solução milhões de vezes sem nunca fazê-la da mesma forma duas vezes Christopher Alexander, sobre padrões em Arquitetura Análise e Projeto OO com UML e Padrões 5

6 Padrões de Projeto/ Design Patterns Soluções (validadas) para alcançar objetivos na engenharia de software usando linguagens O-O - Registram conhecimento existente de forma que possa ser reaplicado em vários contextos Os padrões de projeto são descrições de objetos que se comunicam e classes que são customizadas para resolver um problema genérico de design em um contexto específico Gamma, Helm, Vlissides & Johnson, sobre padrões em software Análise e Projeto OO com UML e Padrões 6

7 Por que aprender padrões? Aprender com a experiência dos outros - identificar problemas comuns em engenharia de software - utilizar soluções testadas e bem documentadas Aprender boas práticas de programação - Padrões utilizam eficientemente herança, composição, modularidade, polimorfirmo e abstração para construir código reutilizável, eficiente, de alta coesão e baixo acoplamento Ter um caminho e um alvo para refatorações Facilita a comunicação, compreensão e documentação - Vocabulário comum - Ajuda a entender o papel de classes do sistemas Análise e Projeto OO com UML e Padrões 7

8 Elementos de um padrão Nome Problema - Quando aplicar o padrão, em que condições? Solução - Descrição abstrata de um problema e como usar os elementos disponíveis (classes e objetos) para solucioná-lo Conseqüências - Custos e benefícios de se aplicar o padrão - Impacto na flexibilidade, extensibilidade, portabilidade e eficiência do sistema Análise e Projeto OO com UML e Padrões 8

9 Metáforas no mundo real State Pessoas reagem de formas diferente de acordo com o humor. Observer Jornais são entregues aos seus assinantes. Chain of Responsability Chefe delega responsabilidade a um subordinado, que delega a outro, que... Padrões são formados por vários objetos. Cada objeto tem um papel (responsabilidade) na solução. Análise e Projeto OO com UML e Padrões 9

10 Padrões de Projeto GoF Padrões de Projeto/Design Introduzidos no livro em 1994 Descreve 23 padrões soluções genéricas para os problemas mais comuns do desenvolvimento de software orientado a objetos obtidas através de experiências de sucesso na indústria de software Sobre o livro - Seus quatro autores são conhecidos como "The Gang of Four (GoF) - O livro tornou-se um clássico na literatura orientada a objetos e continua atual Análise e Projeto OO com UML e Padrões 10

11 Mais padrões? Há vários catálogos de padrões para software - Muitos são específicos a uma determinada área padrões J2EE padrões de implementação Java ou C# padrões para concorrência padrões para distribuição... - Os padrões apresentados aqui são aplicáveis em Java e outras linguagens O-O Análise e Projeto OO com UML e Padrões 11

12 Padrões de Projeto

13 Formas de classificação Há várias formas de classificar os padrões Os padrões GoF são tradicionalmente classificados pelo propósito: 1. criação de classes e objetos 2. alteração da estrutura de um programa 3. controle do seu comportamento Metsker os classifica em 5 grupos, por intenção 1. oferecer uma interface 2. atribuir uma responsabilidade 3. realizar a construção de classes ou objetos 4. controlar formas de operação 5. implementar uma extensão para a aplicação Análise e Projeto OO com UML e Padrões 13

14 23 Padrões GoF Classificação por Propósito Escopo Classe Objeto Propósito Criação Estrutura Comportamento Factory Method Class Adapter Interpreter Template Method Builder Abstract Factory Prototype Singlenton Object Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor ** Classificação segundo GoF. Análise e Projeto OO com UML e Padrões 14

15 23 Padrões GoF Classificação por Intenção Intenção Padrões 1. Interfaces Adapter, Facade, Composite, Bridge 3. Construção Factory Method, Abstract Factory, Builder, Prototype, Memento 2. Responsabilidade Singleton, Observer, Chain of Responsibility, Mediator, Proxy, Flyweight 4. Operações Template Method, State, Command, Strategy, Interpreter 5. Extensões Iterator,Decorator, Visitor Vistos em Sala Vistos Anteriormente Praticados nos próximos exercícios ** Classificação segundo Steven Metsker, Design Patterns Java Workbook, Análise e Projeto OO com UML e Padrões 15

16 PADRÕES RELACIONADOS A INTERFACES Análise e Projeto OO com UML e Padrões 16

17 Interface Interface: - coleção de métodos e constantes que uma classe permite que objetos de outras classes acessem - Exigem que a classe que implementa a interface ofereça implementação para seus métodos - Não garante que métodos terão implementação que efetue alguma computação: stubs Análise e Projeto OO com UML e Padrões 17

18 Padrões relacionados a Interfaces Adapter: - para adaptar a interface de uma classe para outra que o cliente espera Composite: - definir uma interface comum para objetos individuais e composições de objetos Bridge: - desacoplar uma abstração de sua implementação para que ambos possam variar independentemente Façade: - oferecer uma interface simples para uma coleção de classes Visto anteriormente Análise e Projeto OO com UML e Padrões 18

19 Fachada Objetivo segundo o GoF: - oferecer uma interface única para um conjunto de interfaces de um subsistema. - Façade define uma interface de nível mais elevado que torna o subsistema mais fácil de usar. Análise e Projeto OO com UML e Padrões 19

20 Relembrando o Padrão Façade Cliente precisa saber muitos detalhes do subsistema para utilizá-lo! Crie uma fachada! slide com animação Análise e Projeto OO com UML e Padrões 20

21 Objetivo segundo o GoF: - converter a interface de uma classe em outra interface esperada pelos clientes. - Adapter permite a comunicação entre classes que não poderiam trabalhar juntas devido à incompatibilidade de suas interfaces. Adapter Análise e Projeto OO com UML e Padrões 21

22 Adapter Problema e Solução Problema Cliente operacao() Deseja utilizar ClasseExistente metodoutil() void operacao() { metodoesperado(); } Adaptador Solução metodoesperado() void metodoesperado() { metodoutil(); } slide com animação Análise e Projeto OO com UML e Padrões 22

23 Object Adapter Cliente <<interface>> Alvo operacao() ClasseExistente metodoutil() ClasseExistente ce;... ce.metodoutil(); implementa Adaptador operacao() Cliente: aplicação que colabora com objetos que implementam Alvo Alvo: define a interface requerida pelo Cliente ClasseExistente: classe dos objetos que requerem adaptação Adaptador: adapta a interface do Recurso à interface Alvo Análise e Projeto OO com UML e Padrões 23

24 Discussão 1. Você consegue visualizar outra forma de criar adaptadores? - Quais as vantagens de sua abordagem? 2. Qual o escopo de um adaptador em termos das responsabilidades implementadas? 3. Adaptadores bidirecionais 4. Onde podemos usar adaptadores no QIB? Análise e Projeto OO com UML e Padrões 24

25 Composite Objetivo segundo o GoF: - Compor objetos em estruturas de árvore para representar hierarquias todo-parte. - Composite permite que clientes tratem objetos individuais e composições de objetos de maneira uniforme. Análise e Projeto OO com UML e Padrões 25

26 Composite Problema e Solução Problema Cliente precisa tratar de maneira uniforme objetos individuais e composições desses objetos Solução Tratar grupos e indivíduos diferentes através de uma única interface Cliente Todos são componentes Componente Individuo Grupo Análise e Projeto OO com UML e Padrões 26

27 Estrutura do Composite :Composicao :Composicao :Folha :Folha :Folha :Folha :Folha Cliente Componente operacao() 1..* Folha operacao() Composição operacao() add(componente) remove(componente) filhos for (int i=0; i<filhos.length; i++) { filho = filhos[i]; filho.operacao(); } Análise e Projeto OO com UML e Padrões 27

28 Resumo: quando usar? Façade - Simplificar o uso de uma coleção de objetos Adapter - Adaptar uma interface existente para um cliente Bridge - Implementar um design que permita total desacoplamento entre interface e implementação Composite - Tratar composições e unidades uniformemente Análise e Projeto OO com UML e Padrões 29

29 PADRÕES QUE OFERECEM ALTERNATIVAS À CONSTRUÇÃO DE OBJETOS Análise e Projeto OO com UML e Padrões 30

30 Construtores Alguns problemas em depender de construtores - Cliente pode não ter todos os dados necessários para instanciar um objeto - Cliente fica acoplado a uma implementação concreta (precisa saber a classe concreta para usar new com o construtor) - Objeto complexo pode necessitar da criação de objetos menores previamente, com certo controle difícil de implementar com construtores - Não há como limitar o número de instâncias criadas Análise e Projeto OO com UML e Padrões 31

31 Padrões que oferecem alternativas à construção de objetos Factory Method: adia a decisão sobre qual classe concreta instanciar Abstract Factory: constuir uma família de objetos relacionados Prototype: especificar a criação de um objeto a partir de um exemplo (modelo) fornecido Memento: reconstruir um objeto a partir de uma versão que contém apenas seu estado interno Builder: Separa a criação de um objeto de sua representação Análise e Projeto OO com UML e Padrões 32

32 Factory Method Objetivo segundo o GoF: - Definir uma interface para criar um objeto mas deixar que subclasses decidam que classe instanciar. - Factory Method permite que uma classe delegue a responsabilidade de instanciação às subclasses. Análise e Projeto OO com UML e Padrões 33

33 Funcionamento de uma Fábrica Problema: - O acesso a um objeto concreto será feito através da interface conhecida através de sua superclasse, mas o cliente também não quer (ou não pode) saber qual implementação concreta estará utilizando Poligono desenha() Fabrica cliente Forma desenha() Retangulo desenha() Circulo desenha() Análise e Projeto OO com UML e Padrões 34

34 Estrutura do Factory Method cliente Criador criarproduto() Produto CriadorConcreto criarproduto() ProdutoConcreto Análise e Projeto OO com UML e Padrões 35

35 Abstract Factory Objetivo segundo o GoF: - Prover uma interface para criar famílias de objetos relacionados ou dependentes sem especificar suas classes concretas. Análise e Projeto OO com UML e Padrões 36

36 Criar uma família de objetos relacionados sem conhecer suas classes concretas Problema Análise e Projeto OO com UML e Padrões 37

37 Estrutura cliente FabricaAbstrata criarprodutoum() criarprodutodois() ProdutoUm ProdutoDois FabricaConcretaA criarprodutoum() criarprodutodois() FabricaConcretaB criarprodutoum() criarprodutodois() ProdutoUmA ProdutoDoisA ProdutoUmB ProdutoDoisB Análise e Projeto OO com UML e Padrões 38

38 Discussão 1. Qual a diferença entre Factory Method e Abstract Factory? 2. É possível o cliente solicitar a criação de um objeto sem ter conhecimento algum de sua classe concreta? - Que possíveis formas você enxerga para implementar isto? Análise e Projeto OO com UML e Padrões 39

39 Quando usar? Factory Method - Para isolar a classe concreta do produto criado da interface usada pelo cliente Abstract Factory - Para criar famílias inteiras de objetos que têm algo em comum sem especificar suas interfaces. Prototype - Para criar objetos usando outro como base Memento - Para armazenar o estado de um objeto sem quebrar o encapsulamento. O uso típico deste padrão é na implementação de operações de Undo. Builder - Para construir objetos complexos em várias etapas e/ou que possuem representações diferentes Análise e Projeto OO com UML e Padrões 40

40 Exercício Qualiti Internet Banking Dado: - A arquitetura do sistema modelada no exercício anterior Refatorar o Projeto para: - Permitir flexibilidade na mudança do mecanismo de persistência (BDR ou XML) - Uniformizar as diversas interfaces de operadoras de cartão (visa, master, etc) no subsistema OperadoraCartão Dica: utilize os padrões Adapter e Abstract Factory. Análise e Projeto OO com UML e Padrões 41

41 PADRÕES ASSOCIADOS A DISTRIBUIÇÃO DE RESPONSABILIDADES Análise e Projeto OO com UML e Padrões 42

42 Padrões associados a Distribuição de responsabilidades Singleton: centraliza a responsabilidade em uma única instância de uma classe Observer: desacopla um objeto do conhecimento de que outros objetos dependem dele Mediator: centraliza a responsabilidade em uma classe que determina como outros objetos interagem Proxy: assume a responsabilidade de outro objeto (intercepta) Chain of Responsibility: permite que uma requisição passe por uma corrente de objetos até encontrar um que a processe Flyweight: centraliza a responsabilidade em objetos compartilhados de granularidade fina (blocos de montagem) Análise e Projeto OO com UML e Padrões 43

43 Singlenton Objetivo segundo o GoF: - Garantir que uma classe só tenha uma única instância, e prover um ponto de acesso global a ela. independente do número de requisições que receber para criá-lo Aplicações - Um único banco de dados - Um único acesso ao arquivo de log - Um único objeto que representa um vídeo - Uma única fachada (Façade pattern) Análise e Projeto OO com UML e Padrões 44

44 Estrutura do Singlenton Objeto com acesso privado Singlenton - dados -instancia : null - Singlenton () + getinstancia() +getdados() Construtor privado Ponto de acesso estático e global public static synchronized Singlenton getinstancia() { if (instancia == null) { instancia = new Singlenton(); } return instancia; } Lazy inicializatiom idiom Análise e Projeto OO com UML e Padrões 45

45 Observer Objetivo segundo o GoF: - Definir uma dependência um-para-muitos entre objetos para que quando um objeto mudar de estado, todos os seus dependentes sejam notificados e atualizados automaticamente. Análise e Projeto OO com UML e Padrões 46

46 Observer Problema: registra-se notifica altera tempo slide com animação Análise e Projeto OO com UML e Padrões 47

47 Estrutura do Observer for(int i =0; i < obs.lenght; i++){ obs[i].atualizar(); } Sujeito - obs: Observador[] cadastrar(observador) remover(observador) notificar() <<interface> Observador atualizar() SujeitoConcreto - dados + getdados() + setdados() ObservadorConcreto - conc: SujeitoConcreto - dadosobservados + atualizar() dadosobservados = conc.getdados(); Análise e Projeto OO com UML e Padrões 48

48 Chain of Responsibility Objetivo segundo o GoF: - "Evita acoplar o remetente de uma requisição ao seu destinatário ao dar a mais de um objeto a chance de servir a requisição. - Compõe os objetos em cascata e passa a requisição pela corrente até que um objeto a sirva. Análise e Projeto OO com UML e Padrões 49

49 Problema - Permitir que vários objetos possam servir a uma requisição ou repassá-la - Permitir divisão de responsabilidades de forma transparente Chain of Responsability Filme: O Grande Dave, Estrelado por Eddie Murphy Análise e Projeto OO com UML e Padrões 50

50 Estrutura do Chain of Responsability cliente <<interface> Processador processarrequisicao() ProcessadorConcreto1 - sucessor: Processador processarrequisicao() sucesso.processarrequisicao() ProcessadorConcreto2 - sucessor: Processador processarrequisicao()... ProcessadorConcretoN processarrequisicao() Análise e Projeto OO com UML e Padrões 51

51 Discussão 1. Qual a diferença entre: - Singleton e Façade? - Chain of Responsibility e Adapter? 2. Na sua opnião: - Todos os objetos deveriam ser Singleton? - Singleton estariam indiretamente introduzindo variáveis globais? Isto é bom ou ruim? - Que diferentes maneiras você conseguiria visualizar para indicar o próximo processo em uma cadeia de responsabilidades? Qual a diferença entre cada uma delas? Análise e Projeto OO com UML e Padrões 52

52 Quando usar? Singleton: quando apenas uma instância for permitida Observer: quando houver necessidade de notificação automática Chain of Responsibility: quando uma requisição puder ou precisar ser tratada por um ou mais entre vários objetos Mediator: para controlar a interação entre dois objetos independentes Proxy: quando for preciso um intermediário para o objeto real Flyweight: quando for necessário reutilizar objetos visando performance (cuidado com o efeito oposto!) Análise e Projeto OO com UML e Padrões 53

53 PADRÕES QUE LIDAM COM FORMAS DE IMPLEMENTAR OPERAÇÕES E ALGORITMOS Análise e Projeto OO com UML e Padrões 54

54 Padrões que lidam com formas de implementar operações e algoritmos Template Method: - implementa um algoritmo em um método adiando a definição de alguns passos do algoritmo para que subclasses possam defini-los State: - distribui uma operação para que cada classe represente um estado diferente; encapsula um estado Strategy: - encapsula um algoritmo fazendo com que as implementações sejam intercambiáveis Command: - encapsula uma instrução em um objeto Interpreter: - distribui uma operação de tal forma que cada implementação se aplique a um tipo de composição diferente Análise e Projeto OO com UML e Padrões 55

55 Template Method Objetivo segundo o GoF: - Definir o esqueleto de um algoritmo dentro de uma operação, deixando alguns passos a serem preenchidos pelas subclasses. - Template Method permite que suas subclasses redefinam certos passos de um algoritmo sem mudar sua estrutura. Análise e Projeto OO com UML e Padrões 56

56 Problema/Solução ClasseAbstrata void concreto(){... parteum();... partedois(); } abstract void parteum(); abstract void partedois(); algoritmo lacunas: parteum partedois ClasseConcretaA parteum(); partedois(); ClasseConcretaB parteum(); partedois(); Algoritmo resultantes: Análise e Projeto OO com UML e Padrões 57

57 State Objetivo segundo o GoF: - Permitir a um objeto alterar o seu comportamento quanto o seu estado interno mudar. - O objeto irá aparentar mudar de classe. Análise e Projeto OO com UML e Padrões 58

58 Problema Desconectado Conectado Transmitindo Cenário Atual: - :Objeto Operação If(estado == desconectado){ façaisto(); } else if (estado == conectado){ falaaquilo(); } else { } faça(); Desejado: - estado.faça(); Desejamos usar objetos para representar estados e polimorfismo para tornar a execução de tarefas dependentes de estado transparentes Análise e Projeto OO com UML e Padrões 59

59 Estrutura Contexto estado: Estado requisição() <interface> Estado processar() estado.processar(); EstadoConcretoUm processar() EstadoConcretoDois processar() Contexto: define uma interface de interesse ao cliente, delegando suas requisições ao estado corrente. Estado: define uma interface para encapsular o comportamento de todos os estados. EstadoConcreto: implementa o comportamento associado ao estado do contexto. Análise e Projeto OO com UML e Padrões 60

60 Exemplo TCPConnection open() close() acknowledge() TCPState open() close() acknowledge() TCPEstablished open() close() acknowledge() TCPListen open() close() acknowledge() TCPClosed open() close() acknowledge() Sempre que a aplicação mudar de estado, o objeto TCPConnection muda o objeto TCPState que está usando Análise e Projeto OO com UML e Padrões 61

61 Command Objetivo segundo GoF: - Encapsular uma requisição como um objeto, permitindo que clientes parametrizem diferentes requisições, filas ou requisições de log, e suportar operações reversíveis. Análise e Projeto OO com UML e Padrões 62

62 Problema Análise e Projeto OO com UML e Padrões 63

63 Estrutura Executor cmd: Comando executar() Comando executar() cmd.executar () ComandoConcretoA executar() ComandoConcretoB executar() receptor.acao() ReceptorA açãoa() ReceptorB açãob() Análise e Projeto OO com UML e Padrões 64

64 Conseqüências Desacopla o invocador do receptor São objetos; podem ser manipulados e estendidos Fácil adicionar novos comandos Comandos compostos podem ser criados usando o padrão Composite Análise e Projeto OO com UML e Padrões 65

65 Discussão 1. Qual a diferença entre State e Command? 2. Sobre State, você consegue imaginar alguma implementação alternativa que: - Evite que cada estado concreto tenha que implementar métodos não suportados neste estado; - O contexto não está ciente das transições entre estados. Análise e Projeto OO com UML e Padrões 66

66 Objetivo segundo GoF: - Ver Interpreter Análise e Projeto OO com UML e Padrões 67

67 quando usar? Template Method - Para compor um algoritmo feito por métodos abstratos que podem ser completados em subclasses State - Para representar o estado de um objeto Command - Para representar um comando (ação imperativa do cliente) Strategy - Para representar um algoritmo (comportamento) Interpreter - Para realizar composição com comandos e desenvolver uma linguagem de programação usando objetos Análise e Projeto OO com UML e Padrões 68

68 Exercício Qualiti Internet Banking Dado: - A arquitetura do sistema modelada no exercício anterior Modelar o Caso de Uso de Agendamento: - Produzir diagramas de Análise - Introduzir caso de uso à arquitetura Dica: utilize o padrão Command em sua resposta Análise e Projeto OO com UML e Padrões 69

69 PADRÕES QUE PERMITEM ACRESCENTAR COMPORTAMENTOS Análise e Projeto OO com UML e Padrões 70

70 Extensões Extensão é a adição de uma classe, interface ou método a uma base de código existente [2] Formas de extensão - Herança (criação de novas classes) - Delegação (para herdar de duas classes, pode-se estender uma classe e usar delegação para "herdar" o comportamento da outra classe) Desenvolvimento em Java é sempre uma forma de extensão - Extensão começa onde o reuso termina Análise e Projeto OO com UML e Padrões 71

71 Exemplo de Extensão por Delegação Análise e Projeto OO com UML e Padrões 72

72 Padrões que permitem acrescentar comportamentos Padrões que permitem acrescentar comportamentos em um objeto sem mudar sua classe - Decorator: adiciona responsabilidades a um objeto dinamicamente. - Iterator: oferece uma maneira de acessar uma coleção de instâncias de uma classe carregada. - Visitor: permite a adição de novas operações a uma classe sem mudar a classe. Análise e Projeto OO com UML e Padrões 73

73 Decorator Objetivo segundo GoF: - Anexar responsabilidades adicionais a um objeto dinamicamente. - Decorators oferecem uma alternativa flexível ao uso de herança para estender uma funcionalidade. Análise e Projeto OO com UML e Padrões 74

74 Estrutura Componente operacao() ComponenteConcreto operacao() Decorador operacao() component.operacao(); DecoradorConcretoA estadoadicional operacao() DecoradorConcretoB comportamentoadicional() operacao() super.operacao(); comportamentoadicional(); Análise e Projeto OO com UML e Padrões 75

75 Exemplo Toolkit de interface gráfica - Texto - componente concreto - Texto com bordas - decorator - Texto com bordas e barra de rolagem - decorator Análise e Projeto OO com UML e Padrões 76

76 Conseqüências Mais flexibildade que herança estática Modelo tende a ficar mais simples e uniforme Entretanto - Apesar de um decorator e o componente serem do mesmo tipo, não são o mesmo objeto - Proliferação de pequenos objetos que implementam as extensões Qual a diferença entre o Decorator Adaptador? Análise e Projeto OO com UML e Padrões 77

77 Iterator Objetivo de acordo com o GoF: - Prover uma maneira de acessar os elementos de um objeto agregado seqüencialmente sem expor sua representação interna. Análise e Projeto OO com UML e Padrões 78

78 Problema Tipo genérico Iterator Coleção arbitrária de objetos (array, hashmap, lista, conjunto, pilha, tabela,...) Análise e Projeto OO com UML e Padrões 79

79 Iterator Iterators servem para acessar o conteúdo de um agregado (coleções, arrays, etc) sem expor sua representação interna Oferece uma interface uniforme para atravessar diferentes estruturas agregadas Em Java, Iterators são implementados nas coleções do Java. É obtido através do método iterator() de Collection, que devolve uma instância de java.util.iterator. Interface java.util.iterator: - package java.util; - public interface Iterator<E> { - boolean hasnext(); - Object next(); - void remove(); - } iterator() é um exemplo de Factory Method Análise e Projeto OO com UML e Padrões 80

80 quando usar? Decorator - Para acrescentar recursos e comportamento a um objeto existente, receber sua entrada e poder manipular sua saída. Iterator - Para navegar em uma coleção elemento por elemento Visitor - Para estender uma aplicação com novas operações sem que seja necessário mexer na interface existente. Análise e Projeto OO com UML e Padrões 81

81 Exercício Qualiti Internet Banking Dado: - A arquitetura do sistema modelada no exercício anterior Modelar o Caso de Uso Configurar Conta: - Produzir diagramas de Análise - Introduzir caso de uso à arquitetura Dica: utilize os padrões Composite, Observer e Decorator. Análise e Projeto OO com UML e Padrões 82

82 Para exercitar seu conhecimento: Quis sobre padrões Análise e Projeto OO com UML e Padrões 83

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

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

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

Padrões de Projeto de Software

Padrões de Projeto de Software Padrões de Projeto de Software Lista de Exercícios AV2-01 Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Qual o objetivo dos padrões Comportamentais, segundo o catálogo GOF? Questão 1 Resposta

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

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

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 SUMÁRIO INTRODUÇÃO O processo de software.......21 0.1 INTRODUÇÃO AO PROCESSO DE SOFTWARE.21 0.1.1 As fases do processo de software.....21 0.1.2 Estilos do processo de software.......22 0.1.3 Procedimentos

Leia mais

" ##$#$!% # & #$#$ !!!!"!

 ##$#$!% # & #$#$ !!!!! " ##$#$!% # & #$#$ Abstract Factory, Builder, Singleton, Factory Method, Prototype, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of Responsability, Command, Interpreter, Iterator,

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 06 Padrões GoF (Factory Method e Abstract Factory) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method

Leia mais

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

Programação Orientada a Objetos. Padrões Comportamentais Programação Orientada a Objetos Padrões Comportamentais 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

Leia mais

Padrões de Projeto. Factory Method

Padrões de Projeto. Factory Method Padrões de Projeto Padrões de Criação Factory Method Prof. Eduardo N F Zagari Prof. Ivan Granja Factory Method Também conhecido como Construtor Virtual Em muitas aplicações OO, um objeto cliente precisa

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

Vítor E. Silva Souza vitorsouza@gmail.com

Vítor E. Silva Souza vitorsouza@gmail.com Curso - Padrões de Projeto Módulo 4: Padrões de Comportamento Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java:

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 11 Padrões GoF (Bridge e Decorator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

1.1. Definição do Problema

1.1. Definição do Problema 13 1 Introdução Uma das principais preocupações de área de engenharia de software diz respeito à reutilização [1]. Isso porque a reutilização no contexto de desenvolvimetno de software pode contribuir

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

Princípios de Engenharia de Software Resumo 8 Semana 8 Versão: 1.0 Data: 05/10/04

Princípios de Engenharia de Software Resumo 8 Semana 8 Versão: 1.0 Data: 05/10/04 Alunos: Ariane Bueno 0114784-9 Elaine A. de Carvalho 0114633-1 Gabriel Ramos 0114838» O QUE APRENDI ASSUNTO: ARQUITETURA ASSUNTO: Notas de aula referentes às aulas de 30/09/04, Arquitetura de Software(Shaw),

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 05 Padrões GoF (Singleton e Iterator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

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

Lista de Exercícios Para a P2

Lista de Exercícios Para a P2 Técnicas de Projeto e Implementação de Sistemas I Lista de Exercícios Para a P2 1. Explique o conceito de padrões de projeto e o diferencie dos Frameworks e APIs. 2. Explique o conceito de composição em

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

b) Adapter, Bridge e Composite. c) Builder, Prototype e Singleton. d) Façade, Command e Decorator. e) Factory Method, Interpreter e Template Method.

b) Adapter, Bridge e Composite. c) Builder, Prototype e Singleton. d) Façade, Command e Decorator. e) Factory Method, Interpreter e Template Method. 1) Considere os diagramas de classes de análise fornecidos nos itens (a) e (b) abaixo, ambos de acordo com a notação da UML. Esses diagramas desejam representar o fato de que uma conta bancária pode estar

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Manipulando Atributos Podemos alterar ou acessar os valores guardados nos atributos de um objeto se tivermos a referência a esse objeto. Os atributos são acessados pelo nome. No

Leia mais

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 Design. Padrões de Design. Abstract Factory. Padrões de Design. Padrões de Design Abstract Factory. Abstract Factory. Escopo Classe Objeto Finalidade Criação Estrutural Comportamental Factory Method Interperter Abstract Factory Builder Prototype Bridge Composite Facade Flyweight Proxy Chain of Responsibility Command Iterator

Leia mais

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc. Padrões Um padrão de é uma maneira de documentar uma solução conhecida para um problema usualmente encontrado O objetivo do padrão é permitir que boas soluções sejam reutilizadas em diferentes projetos

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

Profa. Thienne Johnson

Profa. Thienne Johnson Profa. Thienne Johnson 1 E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison- Wesley, 1995. Conhecido como GoF (Gang of Four)

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

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

Leia mais

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto; Módulo 7 UML Na disciplina de Estrutura de Sistemas de Informação, fizemos uma rápida passagem sobre a UML onde falamos da sua importância na modelagem dos sistemas de informação. Neste capítulo, nos aprofundaremos

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 10 Padrões GoF (Protoype e Façade) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

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

Padrões de Projeto de Software

Padrões de Projeto de Software 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

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

Sumário. Prefácio 12. Capítulo 1 - Técnicas Simples Para um Código Limpo 23

Sumário. Prefácio 12. Capítulo 1 - Técnicas Simples Para um Código Limpo 23 Prefácio 12 Para quem é esse livro? 13 Objetivos do livro 13 Por que Engenharia de Software? 14 Como esse livro está escrito 16 Perguntas 16 Código em texto corrido 16 Caixas de código 16 Caixas com conteúdo

Leia mais

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

Curso - Padrões de Projeto Módulo 1: Introdução Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

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

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 09 Padrões GoF (Adapter e Composite) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

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

7. Defina encapsulamento. R.: Encapsular é ocultar. Criar uma cápsula ao redor da classe, para proteger o que está dentro dela.

7. Defina encapsulamento. R.: Encapsular é ocultar. Criar uma cápsula ao redor da classe, para proteger o que está dentro dela. 1. O que são classes? Dê exemplos. R.: Classe é um tipo abstrato de dados. Encapsula estrutura e comportamento. Ou seja: uma descrição de um conjunto de objetos que compartilham a mesma estrutura, os mesmos

Leia mais

Arquitecturas Paralelas I Computação Paralela em Larga Escala. Conceitos de Programação Orientada ao Objecto

Arquitecturas Paralelas I Computação Paralela em Larga Escala. Conceitos de Programação Orientada ao Objecto Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Conceitos de Programação Orientada ao Objecto (gec.di.uminho.pt/lesi/ap10203/aula02poo.pdf) João Luís Ferreira Sobral Departamento

Leia mais

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

Programação Orientada a Objetos. Padrões de Projeto Programação Orientada a Objetos Padrões de Projeto 1 Contexto Desenvolver sistemas reutilizáveis é difícil porque deve-se procurar por: Uma boa decomposição do problema e a abstração correta. Flexibilidade,

Leia mais

Requisitos de Software

Requisitos de Software Requisitos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 6 Slide 1 Objetivos Descrever requisitos funcionais e não funcionais Explicar como os requisitos de software podem

Leia mais

Processo de Desenvolvimento de Software

Processo de Desenvolvimento de Software Processo de Desenvolvimento de Software Programação Orientada a Objetos Prof. Francisco de Assis S. Santos, Dr. São José, 2015. Processo de Desenvolvimento de Software O desenvolvimento de software é uma

Leia mais

Computação Paralela. Conceitos de Programação Orientada ao Objecto. João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Computação Paralela. Conceitos de Programação Orientada ao Objecto. João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Computação Paralela Conceitos de Programação Orientada ao Objecto João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Setembro 2006 Revisão Conceitos de Programação Orientada ao

Leia mais

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA 2º Teste 2012/2013 1º Semestre 201301171830 1/7 2º Teste 2012/2013 1º Semestre 17 de Janeiro de 2013, 11:30 (120 minutos) Nome: Número: Primeira Parte (7 valores) PERGUNTA NOTA 1.1.1 1.1.2 1.1.3 1.2 1.3

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI CCO002 Engenharia de Software Enzo Seraphim 1 Padrões de Construção A maneira

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

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

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

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

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 Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

Leia mais

Padrões Comportamentais

Padrões Comportamentais Padrões Comportamentais Parte 1 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

Padrões GoF Strategy, Observer, Singleton, Abstract Factory e outros...

Padrões GoF Strategy, Observer, Singleton, Abstract Factory e outros... Padrões GoF Strategy, Observer, Singleton, Abstract Factory e outros... SSC-526 Análise e Projeto Orientados a Objeto Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2013 1 Mais Padrões GoF Strategy Observer

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?

Leia mais

Linguagens e Técnicas de Programação II

Linguagens e Técnicas de Programação II Linguagens e Técnicas de Programação II Modelagem Orientada a Objetos Renato Dourado Maia Universidade Estadual de Montes Claros Sistemas de Informação Lembrando Na Unidade I Gerenciando a Complexidade,

Leia mais

Modelos de Ciclo de Vida de Software

Modelos de Ciclo de Vida de Software Análise 1 Modelos de Ciclo de Vida de Software Um ciclo de vida do software é um período aproximado do desenvolvimento de software, com capacidade de entrega específica e marcos dentro de cada fase. Um

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Refatoração Melhorando o sistema e preparando pra a Web

Refatoração Melhorando o sistema e preparando pra a Web POO Programação Orientada a Objetos Refatoração Melhorando o sistema e preparando pra a Web Jefferson S. Silva IFET - PI Copyright Jefferson S. Silva Slide 1 Refatoração Uma prática bastante comum e difundida

Leia mais

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente

Motivação Este trabalho apresenta o desenvolvimento do controle da interatividade num sistema para a área de computação gráfica, mais especificamente Viabilização da Análise de Interação em um Software Colaborativo para Modelagem de Objetos 3D Eduardo Barrére, Ana Luiza Dias e Claudio Esperança Motivação Este trabalho apresenta o desenvolvimento do

Leia mais

Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy

Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Abstract Factory Builder Factory Method Prototype Singleton Adapter Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State

Leia mais

Padrões de Projeto. T ó p i c o s A v a n ç a d o s e m L i n g u a g e m d e P r o g r a m a ç ã o. Prof. Alexandre Vidal

Padrões de Projeto. T ó p i c o s A v a n ç a d o s e m L i n g u a g e m d e P r o g r a m a ç ã o. Prof. Alexandre Vidal Padrões de Projeto Prof. Alexandre Vidal DEINF-UFMA Fevereiro de 2007 Singleton (padrão de criação) intenção: garantir que uma classe tenha somente uma instância e fornecer um ponto global de acesso para

Leia mais

Guia para Modelagem de Casos de Uso Metodologia CELEPAR

Guia para Modelagem de Casos de Uso Metodologia CELEPAR Guia para Modelagem de Casos de Uso Metodologia CELEPAR Agosto 2009 Sumário de Informações do Documento Documento: guiamodelagemcasosuso.odt Número de páginas: 14 Versão Data Mudanças Autor 1.0 25/04/07

Leia mais

Padrões Comportamentais. Padrões de Projeto Comportamentais. Motivação. Chain of Responsibility (CoR) Padrão Chain of Responsibility

Padrões Comportamentais. Padrões de Projeto Comportamentais. Motivação. Chain of Responsibility (CoR) Padrão Chain of Responsibility DCC / ICEx / UFMG Padrões Comportamentais Padrões de Projeto Comportamentais Command Observer Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Interpreter Iterator Memento Strategy Template Method

Leia mais

Programação com Objectos 2º Teste Tipo 1º Semestre (120 minutos)

Programação com Objectos 2º Teste Tipo 1º Semestre (120 minutos) 1/8 Programação com Objectos 2º Teste Tipo 1º Semestre (120 minutos) Nome: Primeira Parte (7 valores) PERGUNTA NOTA 1.1.1 1.1.2 1.1.3 1.2 1.3 1.4 Segunda Parte (3 valores) PERGUNTA RESPOSTA 2.1 2.2 2.3

Leia mais

Metodologias de Programação

Metodologias de Programação Metodologias de Programação Bloco 1 José Paulo 1 Formador José António Paulo E-mail: questoes@netcabo.pt Telemóvel: 96 347 80 25 Objectivos Iniciar o desenvolvimento de raciocínios algorítmicos Linguagem

Leia mais

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB

UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB UTILIZAÇÃO DE ARQUITETURA EM CAMADAS BASEADA NO MODEL VIEW CONTROLLER, EM APLICAÇÕES WEB Viviani Priscila Piloni VILHEGAS 1 RESUMO: Este trabalho procura mostrar a importância da utilização de um modelo

Leia mais

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

CURSO DE SISTEMAS DE INFORMAÇÃO ALINE DE SOUSA PEREIRA PADRÕES DE PROJETO: UMA COMPILAÇÃO DOS MAIS UTILIZADOS EM PROJETOS DE SOFTWARE FACULDADE DE MINAS FAMINAS-BH CURSO DE SISTEMAS DE INFORMAÇÃO ALINE DE SOUSA PEREIRA PADRÕES DE PROJETO: UMA COMPILAÇÃO DOS MAIS UTILIZADOS EM PROJETOS DE SOFTWARE BELO HORIZONTE 2008 ALINE DE SOUSA PEREIRA

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

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 de Software

Padrões de Projeto de Software Padrões de Projeto de Software Lista de Exercícios AV1 01 Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Dentre as alternativas abaixo identifique a que NÃO define uma situação em que deve

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. Ementa Proporcionar uma experiência com a programação orientada a objetos através da modelagem conceitual e sua implementação.

Leia mais

2. Tipos Abstratos de Dados

2. Tipos Abstratos de Dados 2. Tipos Abstratos de Dados Um Tipo Abstrato de Dados especifica uma classe de dados definida pelo usuário em termos de suas propriedades abstratas Esta especificação do TAD descreve o comportamento de

Leia mais

Algoritmos e Programação II

Algoritmos e Programação II Algoritmos e Programação II Agenda Desenvolver Software Objetos Classes Estudo de algumas Classes da API Estudo de algumas Classes da API Pacotes Criando nossa primeira classe Desenvolver SOFTWARE GAP

Leia mais

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com

BANCO DE DADOS I AULA 2. Willamys Araújo willamysaraujo7@gmail.com BANCO DE DADOS I AULA 2 Willamys Araújo willamysaraujo7@gmail.com Modelagem de Dados Modelagem de dados é o estudo das informações existentes em um contexto sob observação para a construção de um modelo

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

Diagramas de Componentes e Diagramas de Deployment

Diagramas de Componentes e Diagramas de Deployment Introdução Diagramas de Componentes e Diagramas de Deployment Ricardo R. Gudwin 05/10/2010 Neste texto, apresentamos um resumo da norma UML que descreve diagramas de componentes e diagramas de distribuição

Leia mais

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS.

LINHAS MESTRAS; FASES; DISCIPLINAS; PRINCÍPIOS E MELHORES PRÁTICAS. INTRODUÇÃO O processo de engenharia de software define quem faz o quê, quando e como para atingir um determinado objetivo. Neste trabalho, iremos dissertar sobre o Rational Unified Process, ou RUP, que

Leia mais

Análise e Projeto de Sistemas OO

Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO 25 26 27 28 29 30 31 32 35 36 34 Objetos no mundo real Podem ser definidos como objetos, entidades individuais que tenham características e comportamento; Exemplo: Automóvel

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade pdjkleber@gmail.com Objetos e Classes Programação Orientada ao Objeto O paradigma da Orientação ao Objeto é um mecanismo que ajuda a definir

Leia mais

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

O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS O USO DOS PADRÕES DE PROJETO GOF NA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS Revista UNILUS Ensino e Pesquisa v. 13, n. 30, jan./mar. 2016 ISSN 2318-2083 (eletrônico) Claudio Costa Matos Graduando no curso

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

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

Leia mais

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com)

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com) PADRÕES DE PROJETO Cleviton Monteiro (cleviton@gmail.com) Roteiro Atributos de qualidade Boas práticas de projeto Code Smell Padrões de Projeto Atributos de qualidade Coesão Acoplamento Atributos de qualidade

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel Programação Orientada a objetos Orientação a Objetos É uma técnica de desenvolvimento de softwares que consiste em representar os elementos do

Leia mais

Avaliação e Desempenho Aula 1 - Simulação

Avaliação e Desempenho Aula 1 - Simulação Avaliação e Desempenho Aula 1 - Simulação Introdução à simulação Geração de números aleatórios Lei dos grandes números Geração de variáveis aleatórias O Ciclo de Modelagem Sistema real Criação do Modelo

Leia mais

Capítulo 4 - Polimorfismo

Capítulo 4 - Polimorfismo Capítulo 4 - Polimorfismo 1. POLIMORFISMO: VAMOS NOS ADAPTAR... 1 1.1 APRENDENDO A PREVER O FUTURO... 1 1.2 O QUE É POLIMORFISMO... 1 1.3 TIPOS DE POLIMORFISMO... 4 1.4 PERGUNTAS - EXERCÍCIO... 5 1. Polimorfismo:

Leia mais

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

UTILIZANDO PADRÕES DE PROJETO PARA O DESENVOLVIMENTO DE UM SISTEMA DE GERENCIAMENTO DE BIBLIOTECAS ESCOLARES UNIVERSIDADE DO PLANALTO CATARINENSE DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE SISTEMAS DE INFORMAÇÃO (BACHARELADO) PAULO SERGIO PADILHA UTILIZANDO PADRÕES DE PROJETO PARA O DESENVOLVIMENTO

Leia mais

LEIC-T LERC MEIC-T 2011/2012 1º Semestre Programação com Objetos 2012/01/07 11h00m 3/10

LEIC-T LERC MEIC-T 2011/2012 1º Semestre Programação com Objetos 2012/01/07 11h00m 3/10 2/10 1.1. (1.5 val.) Os mecanismos de herança entre classes e de composição de objetos são, por vezes, apresentados como alternativos, face à disponibilização de funcionalidade a uma classe. Compare-os,

Leia mais

Gerenciamento de Integração. Prof. Anderson Valadares

Gerenciamento de Integração. Prof. Anderson Valadares Gerenciamento de Integração Prof. Anderson Valadares 1. Conceito A área de conhecimento em gerenciamento de integração do projeto inclui processos e as atividades necessárias para identificar, definir,

Leia mais

3. Numerar a coluna da direita conforme a da esquerda 1) Classe (2) :Aluno 2) Um dado objeto (3) oaluno:aluno 3) Objeto (1) Aluno

3. Numerar a coluna da direita conforme a da esquerda 1) Classe (2) :Aluno 2) Um dado objeto (3) oaluno:aluno 3) Objeto (1) Aluno INFORMAÇÕES GERAIS CURSO: ENGENHARIA DE SOFTWARE DISCIPLINA: ANÁLISE E PROJETO DE SISTEMAS PROFESSOR: OSVALDO MESQUITA ANO.SEMESTRE: 2016.1 1. O que você entende por: a) Polimorfismo. Significa aquilo

Leia mais

6 - Padrões de Extensão

6 - Padrões de Extensão J930 Padrões Projeto de 6Padrões de Extensão Helder da Rocha (helder@acm.org) argonavis.com.br Introdução: Extensão Extensão é a adição de uma classe, interface ou método a uma base de código existente

Leia mais

4 Um processo para a elaboração de perguntas de questionários para a elicitação de requisitos de software

4 Um processo para a elaboração de perguntas de questionários para a elicitação de requisitos de software 4 Um processo para a elaboração de perguntas de questionários para a elicitação de requisitos de software Esse capítulo tem por objetivo apresentar um método que foi criado com objetivo de prover ao Engenheiro

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 07 Padrões GoF (Command e Template Method) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

Leia mais

Modulo II Padrões GRASP

Modulo II Padrões GRASP Modulo II Padrões GRASP 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 Padrões de Projeto

Leia mais

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback Programação Orientada a Objetos Professor Leonardo Cabral - Larback Programação Orientada a Objetos O termo Programação Orientada a Objetos (POO) foi criado por Alan Kay (http://pt.wikipedia.org/wiki/alan_kay),

Leia mais