A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 1 Padrões de Software Rossana Andrade Departamento de Computação.

Apresentações semelhantes


Apresentação em tema: "CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 1 Padrões de Software Rossana Andrade Departamento de Computação."— Transcrição da apresentação:

1 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 1 Padrões de Software Rossana Andrade rossana@lia.ufc.br Departamento de Computação Universidade Federal do Ceará

2 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 2 Objetivos Gerais Oferecer uma visão geral sobre os conceitos de padrões de software Explicar a terminologia Apresentar exemplos de padrões de software Apresentar exemplos de classificação de padrões e de reuso de padrões Não pretende exaurir o assunto

3 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 3 Conteúdo O que são Padrões –Diferentes Definições –Um pouco da história Escrevendo Padrões –Componentes de um Padrão –Um Exemplo –Padrões como uma Peça ou Estória –Diferentes Formatos GoF Alexander Coplien

4 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 4 O que são Padrões O que é? –Nova categoria de conhecimento Conhecimento não é novo, mas falar sobre ele é Objetivo: conhecer o que você já conhece Como? –Partindo de problemas e soluções recorrentes em diferentes áreas do conhecimento

5 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 5 O que é um Padrão (Cont.) Aplicação –Arquitetura –Ciência da Computação Engenharia de software –Engenharia Mecânica –Telecomunicações –...

6 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 6 O que é um Padrão (Cont.) Por que padrões de software? –engenheiros de software não iniciam o seu projeto do nada –ao contrário, nós reutilizamos “idéias”que já vimos antes –as mesmas técnicas são utilizadas repetitivamente –a indústria de software necessita documentar o que nós fazemos

7 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 7 Diferentes Definições “Um padrão é uma entidade que descreve um problema que ocorre repetidamente em um ambiente e então descreve a essência da solução para este problema, de tal forma que você use esta solução milhões de vezes, sem nunca utilizá-la do mesmo modo,” Christopher Alexander

8 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 8 Diferentes Definições (Cont.) “Um padrão é um pedaço de literatura que descreve um problema de projeto e uma solução geral para o problema num contexto particular, ” James Coplien

9 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 9 Diferentes Definições (Cont.) “Um padrão é uma solução provada para um problema em um contexto, ” Comunidade de Software

10 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 10 Um Pouco da História Object-Oriented (OO) –Metade do anos 80 Padrões de software emergiram de objetos Ward Cunningham and Kent Beck –1987: linguagem de padrões para interface de usuário James Coplien –1988: idioms Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides –1990  1995: Padrões de projeto (Design Patterns)

11 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 11 Um Pouco da História Peter Coad –Desde 1991 explora padrões The Hillside Group –1993: tentativa de montar as primeiras bases para padrões de software –Idéias de Alexander integradas aos padrões de projeto da GoF 1994: The first Pattern Languages of Programming (PLoP) conference OOPSLA’94: livro da GoF é lançado –Padrões de projeto: foco em OO

12 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 12 Escrevendo Padrões Escritos na forma literária Não apenas documentação Diferentes formatos –GoF, Alexandrian, Coplien, Cockburn, Portland Componentes essenciais – nome, contexto, problema, solução e usos conhecidos Outros componentes importantes – forças, contexto resultante, padrões relacionados, autor e data

13 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 13 Componentes Essenciais de um Padrão Nome –Uma palavra ou uma frase curta –É a primeira coisa que o projetista encontra quando procura uma solução –Nomes de padrões devem se tornar parte do vocabulário do domínio –Iniciantes procuram nomes que descrevem o problema ou sua solução –Os nomes do padrões da GoF são analogias Bridge, facade, mediator, entre outros

14 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 14 Componentes Essenciais de um Padrão (Cont.) Contexto –Quando considerar o padrão –Ajuda a ter uma visão abrangente de onde o problema surge expressando o seu início, a sua essência e o seu corpo –É difícil escrever um bom contexto –Inclui um histórico dos padrões que têm sido aplicados antes aplicável às linguagens de padrões)

15 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 15 Componentes Essenciais de um Padrão (Cont.) Problema –Quando utilizar o padrão –Problema a ser resolvido descrito claramente –Expresso por uma simples pergunta ou por uma formulação resumida do problema –Geralmente a primeira coisa que um procurador- por-solução observa –Um entendimento do problema vem da análise das forças

16 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 16 Componentes Essenciais de um Padrão (Cont.) Solução –O que fazer para resolver o problema Deve descrever claramente o que é necessário para resolver o problema –Três tipos Uma solução que pode ser usada para todas as ocorrências do problema Uma solução que pode ser melhorada E uma solução que vai ser refinada nos níveis de projeto e implementação de diferentes formas

17 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 17 Componentes Essenciais de um Padrão (Cont.) Usos Conhecidos –Exemplos de aplicações do padrão em sistemas reais –Pelo menos 3 usos conhecidos Regra de 3

18 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 18 Outros Componentes Importantes de um Padrão Forças –O padrão é um balanço de forças/conseqüências –Considerações positivas ou negativas a serem avaliadas a fim de mostrar que a solução apresentada é a melhor mostrar por que a solução mais óbvia é errada mostrar porque o problema é difícil de se resolver

19 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 19 Outros Componentes Importantes de um Padrão (Cont.) Contexto Resultante –É a conclusão do padrão –O estado ou a configuração do sistema depois da aplicação do padrão, incluindo as consequências (boas e ruins) –O contexto resultante de um padrão é a entrada para os padrões seguintes Aplicável para linguagens de padrões

20 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 20 Outros Componentes Importantes de um Padrão (Cont.) Padrões Relacionados –Como o padrão está relacionado com outros padrões que se referem ao mesmo problema –Com que outros padrões este pode ser usado

21 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 21 Um exemplo Hands in View Contexto –Para explorar uma montanha inteira, um esquiador deve estar confortável e adaptável a qualquer terreno e a uma rápida mudança de terreno –Para aproveitar melhor este padrão, o esquiador deve estar esquiando em um nível onde curvas em paralelo possam ser ligadas consistentemente

22 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 22 Hands in View (Cont.) Problema –O esquiador falha ao tentar a descida na montanha em declínios profundos e irregulares, resultando em escorregões, quedas de costas e “yard sales” Forças –Medo de cair é a resposta mais básica de todas –Confiança no equipamento é essencial –Movimento contínuo é essencial –Fatiga pode ser um fator em descidas longas –Descida de compromisso com os esquis é essencial para que os esquis funcionem como projetados

23 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 23 Hands in View (Cont.) Solução –Concentre-se em manter as mãos no campo de visão –Traga-as para dentro do seu campo de visão imediatamente depois de cada bastão tocar o chão e de cada curva Contexto resultante –Ao colocar as mãos à vista, o alinhamento do corpo muda do estado de ficar timidamente para trás e permite que as extremidades do esqui deslizem debaixo do esquiador –Portanto, o ato de colocar as mãos à vista puxa o corpo para a frente e, conseqüentemente, para baixo da montanha, trazendo o peso do esquiador sobre o esqui montanha abaixo e forçando a extremidade a morder e girar

24 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 24 Hands in View (Cont.) Motivação –A tendência natural de todo ser humano normal é manter a coluna reta ou em caso de queda eminente, inclinar-se para trás –Isto provoca quedas e curvas indesejadas quando esquiando –As conseqüências podem ser claramente entendidas, mas o medo previne que você se incline para frente. –Entretanto, deixando as suas mãos no campo de visão, os esquis devem deslizar mais facilmente sem que você tenha que confrontar o medo diretamente Autor –Don Olson 95/07/07 Origem –Instrutor de esqui anônimo em algum lugar de Utah.

25 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 25 Padrões como uma peça ou estória Analogia de Robert Hanmer –Contexto: o cenário –Problema: o tema –Forças: desenvolvendo o conflito –Solução: catarse, a moral da peça –Contexto Resultante: “eles viveram felizes para sempre” ou deixando espaço para a seqüência –Motivação: a discussão no bar ou no café depois da peça

26 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 26 Formato da Gang of Four - GoF Nome do Padrão e Classificação –Analogias –Padrões de criação, de estrutura e de comportamento Intenção –Breve descrição do problema e da solução Também Conhecido Como Motivação – Exemplo de protótipo Aplicabilidade –Problema, forças e contexto

27 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 27 Formato da Gang of Four – GoF (Cont.) Estrutura Participantes Colaborações Conseqüências –forças Implementação Código Exemplo Usos Conhecidos Padrões relacionados Solução

28 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 28 Formato Alexandrian As seções não são fortemente delimitadas –Podemos identificar determinados componentes em todos os padrões Uma figura no início Um parágrafo introdutório –contexto

29 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 29 Formato Alexandrian (Cont.) 3 diamantes no início e no fim da explicação do problema e da solução –a palavra “therefore:”, imediatamente depois a solução –Uma sentença clara do problema, uma discussão de forças, a solução e a motivação –Um diagrama mostrando a solução No final, um parágrafo relacionando o padrão dentro da linguagem

30 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 30 Formato do Coplien Nome Contexto Problema Forças Solução Sketch –Desenhos ou Diagramas Contexto Resultante Rationale –Mostra por que o padrão é útil –Mostra a importância dos princípios atrás dos padrões

31 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 31 Características de um bom padrão Deve ser uma solução para um problema em um contexto Você deve ser capaz de dizer ao solucionador do problema o que fazer e como resolver o problema Deve ser maduro, uma solução provada (regra de três) A solução deve ser construída dentro da ótica do solucionador do problema e pode ser implementada milhões de vezes sem se repetir Deve ser capaz de se reproduzir (padrões que constroem)

32 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 32 Um Exemplo de um bom Padrão Nome: Half-Object + Protocol (HOPP) Problema: Às vezes um objeto deve aparecer em mais de um espaço de endereçamento. Como nós podemos fazer a diferença entre um espaço e múltiplos espaços de endereçamento de forma transparente? Forças: Complexidade, Distribuição, Disponibilidade de Informação, Custo e Performance

33 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 33 Um Exemplo de um bom Padrão (Cont.) Solução –Divida o objeto em dois objetos-metade, um em cada espaço de endereçamento, com um protocolo entre eles –Em cada espaço de endereçamento, implemente a funcionalidade para interagir eficientemente com os outros objetos naquele espaço de endereçamento (isto pode resultar em funcionalidade duplicada, ou seja, funções implementadas em ambos espaços de endereçamento)

34 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 34 Um Exemplo de um bom Padrão (Cont.) Solução (Cont.) –Defina o protocolo entre os dois objetos- metade de tal forma que ele coordene as atividades dos dois objetos-metade e carregue a informação essencial que necessita ser passada entre os espaços de endereçamento

35 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 35 Um Exemplo de um bom Padrão (Cont.) Diagrama UML para uma aplicação de FTP Sketch

36 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 36 Um Exemplo de um bom Padrão (Cont.) Diagrama FTP com a aplicação do HOPP Sketch

37 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 37 Um Exemplo de um bom Padrão (Cont.) Usos Conhecidos –Sistemas de Telefonia: half-call –IBM’s VisualAge Ultra Light Client http://www.software.ibm.com/ad/smalltalk/about/ulcfact.html Padrões Relacionados –padrões para o projeto de protocolos Message as Object, Message Parameter as Object Mecanismos para tratar a criação e recepção da mensagem –Information collection e Formatting –Parsing e Handling

38 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 38 O que não é um padrão: Exemplo Contexto –Um grande sistema OO em um computador com memória virtual Problema –Como você aloca objetos na memória? Solução –Execute alguns problemas típicos e descubra quais objetos comunicam-se freqüentemente em um determinado tempo local e coloque-os na mesma página

39 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 39 O que não é um Padrão: Dicas Um regra simples Uma receita Um algoritmo Uma estrutura de dados Uma solução isolada para um problema em um contexto

40 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 40 Próximos Slides Padrões trabalhando em Conjunto –O que são Linguagens de Padrões –Exemplos de Linguagens de Padrões Linguagem de Padrões by C. Alexander Guia para a escrita de padrões –Exemplo deLinguagem de Padrões Linguagem de Padrões para Escrita de Padrões por Gerard Meszaros e Jim Doble

41 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 41 Padrões Trabalhando em Conjunto Padrões freqüentemente compartilham o mesmo contexto Problemas produzidos por um padrão são algumas vezes resolvidos por outros Um projeto complexo consiste de muitos padrões –Catálogo de padrões –Linguagens de Padrões

42 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 42 O que são Linguagens de Padrões “Uma coleção de padrões que trabalham juntos para resolver problemas num domínio específico”, Linda Rising “Uma linguagem de padrões é uma coleção de padrões que ampliam-se para gerar um sistema”

43 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 43 O que são Linguagens de Padrões? (Cont.) Cada padrão é uma seqüência dentro da linguagem de padrões O formato dos padrões formam um grafo Cada padrão produz um contexto para aqueles que o seguem Cada padrão deve construir sobre o contexto daqueles que vêm antes dele Existem muitos caminhos válidos dentro de uma linguagem de padrões

44 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 44 Um Exemplo de uma Linguagem de Padrões Half-Hidden Garden Garden growing wild Courtyards which live Entrance TransitionTree Places Terraced Slope Fruit Tree Building Edge Private Terrace on the Street By C. Alexander

45 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 45 Meios de Publicação Padrões necessitam de um meio não- linear Publicação Web é o meio preferido Pode virar uma publicação linear se for bem indexada e com referência cruzada Cultura WikiWiki (http://c2.com/cgi/wiki)

46 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana Andrade Conferências PLoP www.hillside.net EuroPLoP ™ 2002

47 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 47 Próximos slides: Exemplos de Padrões Exemplos de Padrões Mais exemplos de linguagens de Padrões Classificação dos Padrões de Software Workshop de Escritores

48 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 48 Exemplos de Padrões Web Handlers Padrões de Interface Gráfica

49 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 49 Mais Exemplos de Linguagens de Padrões Generative Pattern Language for Distributed Processing –Estratégias para decompor sistemas de software complexos através de nós de processamento By DeBruler

50 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 50 Mais exemplos de Linguagens de Padrões (Cont.) Padrões –Define The Data Structure –Identify The Nouns –Factor Out Common Attributes –Normalize the Roles –Identify Problem Domain Relationships –Introduce Virtual Attributes –Animate the Data –Time Thread Analysis –Determine The Actors

51 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 51 Mais exemplos de Linguagens de Padrões (Cont.) By R. Andrade

52 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 52 Classificação dos Padrões de Software Padrões de Requisitos Padrões de Análise Padrões de Projeto –Meta-Patterns –Padrões Arquiteturais Idiomas

53 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 53 Classificação dos Padrões de Software (Cont.) Requisitos AnáliseProjeto Implementação Padrões de Requisitos Padrões de Análise Padrões de Projeto Meta-Padrões Padrões Arquiteturais Idiomas

54 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 54 Padrões de Requisitos Documentam as necessidades do usuário e o comportamento genérico do sistema em um alto nível de abstração Ações que os desenvolvedores de software podem tomar para melhorar os requisitos não-funcionais Mostram os relacionamentos entre o usuário ou o operador e o sistema

55 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 55 Padrões de Requisitos (Cont.) Fault-tolerant telecommunication patterns –Visa a manutenção dos sistemas de comutação –Medidas apropriadas para serem tomadas no estágio de desenvolvimento de requisitos Padrões relacionados a confiabilidade (mensagens do sistema e falhas do sistema) –Five minutes of no escalation messages Padrões relacionados aos fatores humanos

56 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 56 Padrões de Análise Inicialmente apresentados como complementos aos padrões de projeto Um passo antes do projeto –Modelo de análise que focaliza nas estruturas conceituais Padrões de análise do Martin Fowler –Domínio de conhecimento de software de negócios –Party, quantity, subtype state machines, entre outros

57 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 57 Padrões de Análise (Cont.) Party Problema: pessoas e organizações têm responsabilidades semelhantes Solução: Crie um tipo party como um supertype de uma pessoa ou organização

58 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 58 Padrões de Projeto Estrutura repetida de elementos de projeto “Um esquema para o refinamento de subsistemas ou de componentes de sistemas ou as relações entre eles.” “...resolvem um problema geral de projeto num contexto particular.”, GoF Padrões de projeto que incluem detalhes de código de baixo nível Aplicados a diferentes tipos de problemas Padrões Arquiteturais e Meta-Padrões podem ser considerados Padrões de Projeto.

59 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 59 Idiomas Relacionados com a implementação de características de projeto específicas Padrão de baixo nível específico para uma linguagem de programação –Idiomas em C++ C++ Programming Styles and Idioms, James Coplien, 1991

60 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 60 Idiomas (Cont.) Nome: Counted Body Contexto: A interface de uma classe é separada de sua implementação (respectivamente, classes handle e body) Problema: atribuição em C++ é definida recursivamente como membro-por-membro com cópia quando a recursão termina Solução: Um contador de referência é adicionado à classe body para facilitar o gerenciamento de memória Autor e data: James Coplien, 1994

61 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 61 Parte IV: Reuso de Padrões A Comunidade de Padrões Ética de Padrões Reuso Meios de Publicação Workshop de Escritores Referências Em resumo... (Conclusões)

62 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 62 Reuso Conheça os padrões estão disponíveis –Catálogo de padrões de 2000 –Escolha aquele que satisfaz as suas necessidades Um padrão é difícil de entender se você não necessita dele Apenas tenha uma visão geral Utilize o vocabulário dos padrões em revisões e sessões de projeto

63 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 63 Reuso (Cont.) GoF –Bastante utilizado entre a comunidade de software Core J2EE Pattern Catalog –http://java.sun.com/blueprints/corej2eepatterns/http://java.sun.com/blueprints/corej2eepatterns/ Padrões Arquiteturais –Frank Bushmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal (Gang of Five)

64 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 64 GoF Design Patterns Creational patterns Abstract factory Builder Factory method Prototype Singleton Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor Structural patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy

65 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 65 Core J2EE Pattern Catalog Presentation Tier Intercepting Filter Front Controller View Helper Composite View Service to Worker Dispatcher View Integration Tier Data Access Object Service Activator Business Tier Business Delegate Service Locator Session facade Transfer Object Transfer Object Assembler Value List Handler Composite Entity

66 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 66 Architectural Patterns From Mud to Structure Layers Pipes and Filters Blackboard Adaptable Systems Reflection Microkernel Interactive Systems Model-View- Controller Presentation- Abstraction- Control Distributed Systems Broker Pipes and Filters Microkernel

67 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 67 Aplicando Padrões Empresas –IBM, John Vlissides e Erich Gamma Design Patterns –Lucent, Jim Coplien e Linda Rising Organizational Patterns –Nortel, Greg Utas Sistemas de Telefonia –Carleton University Teaching Patterns

68 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 68 Mais sobre Reuso de Padrões SugarloafPLoP’2002 –Airline Computer Reservation Systems –Engenharia Reversa de Demeyer –Uma ferramenta para Reuso: AGAP –Análise do Reuso de Padrões Captura de Padrões

69 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 69 Referências [1] Andrade, R.M.C, “Capture, Reuse, and Validation of Requirements and Analysis Patterns for Mobile Systems”, Ph.D. Thesis, University of Ottawa, Ottawa, 2001. [2] Alexander, C., Ishikawa, S., Silverstein, M., Jacobson, M., Fiksdahl- King, I., and Angel, S., A Pattern Language: Towns, Buildings, Construction, Oxford University Press, New York, NY, 1977. [3] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M., Pattern-Oriented Software Architecture, John Wiley and Sons, New York, NY, 1996. [4] Coplien, J. O., Software Patterns, SIGS books and Multimedia, June 1996. [5] Fowler, M., Analysis Patterns: Reusable Object Models, Addison- Wesley, Reading, MA, 1997.

70 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 70 Referências (Cont.) [6] Gamma E., Helm R., Johnson R., Vlissides J., “Design Patterns: Element of Reusable Object-Oriented Software”, 1995. [7] Pattern Languages of Program Design I, II, III & IV; Patterns from the PLoP Conference at Allerton Park in Illinois, US and EuroPLoP in Europe; Addison-Wesley, 1994-95-96-98. [8] Rising, Linda, “Patterns: A Way to Reuse Expertise,” IEEE Communications Magazine, Vol. 37, No. 4, April 1999. [9] Rising, Linda, The Pattern Almanac 2000, Software Pattern Series, Addison-Wesley, 2000. ISBN 0-201-61567-3. [10] Schmidt, D., “Tutorial about Design Patterns,” Available at http://www.cs.wustl.edu/~schmidt/patterns.html http://www.cs.wustl.edu/~schmidt/patterns.html [11] Yoder, Joseph, Tutorial “Software Patterns”, SugarloafPLoP’2002, Itaipava, Rio de Janeiro, RJ.

71 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 71 Maiores Informações Página de Padrões do Grupo Hillside –http://hillside.nethttp://hillside.net –Apontadores para listas, livros, arquivos ftp, padrões on- line, conferências, entre outros Listas –Gang-of-4-patterns-request@cs.uiuc.eduGang-of-4-patterns-request@cs.uiuc.edu –Patterns-request@cs.uiuc.eduPatterns-request@cs.uiuc.edu –Patterns-discussion-request@cs.uiuc.eduPatterns-discussion-request@cs.uiuc.edu Repositório de Padrões Portland –http://c2.com/ppr/index.htmlhttp://c2.com/ppr/index.html

72 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 72 Em resumo... Arquitetos experientes não têm consciência que utilizam padrões –Bons para compartilhar informação e capturar conhecimento Padrões funcionam como uma porta para troca de experiências –Pode ajudar novos desenvolvedores a aprenderem com os mais experientes Vocabulário Comum Padrões dão uma competência arquitetural de organização

73 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 73 Em resumo... (Cont.) Você deve escrever padrões para –Aprender mais sobre padrões –Compartilhar conhecimento Provavelmente você usa alguma coisa que não foi documentada ainda –Tarefa difícil e nem todos tem tempo ou vontade Você deve reutilizar padrões –Em busca de uma melhoria no desenvolvimento de software

74 CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 74 Por enquanto é só, Pessoal!


Carregar ppt "CK119 – Engenharia de Software Copyright © 2002-2007 Rossana AndradeSlide 1 Padrões de Software Rossana Andrade Departamento de Computação."

Apresentações semelhantes


Anúncios Google