Engenharia de Software

Slides:



Advertisements
Apresentações semelhantes
Padrão de Projeto Iterator
Advertisements

Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Docente Responsável: Dra. Isabel Brito
ViewPoint (Trabalho Nº 2)
Diagrama de Classes continuação.
Engenharia de Software
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Padrão de Projeto Memento
Projeto de Sistemas de Software
Padrões de Projeto Mediator.
Projeto de Sistemas de Software
Projeto de Sistemas de Software (PSS) Prof. Carlos J. P. Lucena.
Abstract Factory – Gustavo Lopes Mourad.
Projeto de Sistemas de Software Leandra Mara da Silva
Aline Vasconcelos D.Sc. em Sistemas e Computação/COPPE UFRJ
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Design Pattern e a Reusabilidade de Software
Orientação a Objetos.
Padrões de Interação Homem- Máquina (HCI Patterns) Priscila de Castro Nicola Novembro 2004.
Design Patterns Projeto de Sistemas de Software.
Fundamentos da Engenharia de Software
Vector To Raster Factory & Strategy Eric Silva Abreu São José dos Campos - 15 de dezembro de 2006.
Projeto de Sistemas de Software
Chain of Responsibility
DIAGRAMA DE CLASSE Modelagem de Software
DC - UFC Copyright © 2003 Misael Santos e Rossana Andrade 1 Padrões de Projeto para Sistemas Web Misael Santos e Rossana Andrade Universidade.
Adriano S. Castro André Abdalla
1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José Bonnet FCUP, 2005.Nov.30 ISO LABORATÓRIOS ACREDITADOS.
1 Gestão de Desejos Engenharia de Software numa empresa certificada de Telecomunicações José Bonnet FCUP, 2003.Mai.19.
APLICANDO O PROCESSO DIRIGIDO POR RESPONSABILIDADES PARA A CRIAÇÃO DE UM SUBFRAMEWORK PARA VALIDAÇÃO SINTÁTICA DE FÓRMULAS Autores: Rafael Hornung Simone.
Design Pattern 4 Fundamentos da Engenharia de Software –Leonardo de França Rosa –Rodrigo de Carvalho Rocha.
LEONARDO SIMAS JUSSI BARROS WESLLEY VIEIRA Flyweight.
Programação Orientada à Objetos
Padrões de Projeto These slides complement the E-book, Programming in the Large With Design Patterns available on both Kindle and Nook. Additional supporting.
Design Pattern (Padrões de Projeto)
April 05 Prof. Ismael H. F. Santos - 1 Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Design Patterns (Padrões de Projeto)
Padrão de Projeto Iterator Projeto de Sistemas de Software Thiago Pinheiro de Araújo.
Trabalho Final de Padrões de Projeto
Copyright © 2006 Qualiti. Todos os direitos reservados. Uma Visão Crítica.
UTILIZAÇÃO DOS PADRÕES DA COLEÇÃO WELIE PARA ELABORAÇÃO DE INTERFACES GRÁFICAS DO FRAMEWORK PARA FORMAÇÃO DE PREÇO DE VENDA Fernando Henrique Malaquias.
Padrões de Design Toacy Cavalcante de Oliveira. 2 April 20, 2015 Problema.
Padrões de Projeto Abstract Factory.
Design Patterns Fundamentos da engenharia de softaware. 19/1/2003.
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
Padrões de Projeto de Software Orientado a Objetos
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
1 Design Patterns Israel Rios. 2 Origens A idéia de padrões de projeto não teve origem na ciência da computação Christopher Alexander A Pattern Language:
Objetos Distribuídos Frameworks Orientados a Objetos.
Modelagem Orientada a Objetos Especialização em Engenharia de Software PUCPR 1999.
Frameworks e Componentes Daniel Fernando Pavelec.
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS PARTE 1: INTRODUÇÃO Prof. Cesar Augusto Tacla UTFPR/Campus.
Introdução a Orientação a Objetos
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS Prof. Cesar Augusto Tacla UTFPR/Campus Curitiba.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
1 - Introdução a Padrões de Projeto
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Diagrama de Classes Herança Dependências.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Jadson Xavier Muller Oliveira.  É difícil encontrar alguma definição consensual de padrão.  Definição aceitável: - São idéias que foram úteis em algum.
1 Padrões de Projeto de Software Orientado a Objetos Programação Orientada a Objetos Prof. Fabio Kon - IME/USP.
1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Programação Orienta a Objetos (SI) Análise e Projetos de Sistemas (LCC) 1 - Introdução a Padrões de Projeto Eduardo de Lucena Falcão.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Padrões de Projeto.
Transcrição da apresentação:

Engenharia de Software “Design Patterns” Docente : Eng.ª Maria Fernanda Pedro Grupo: José André nº 3308 Luis Nelas nº 3498 Pedro Lamy nº 3640

Conteúdos da Apresentação História Design Patterns – O que são? Objectivos dos Design Patterns Como Documentar Design Patterns Design Patterns e as suas diferentes categorias Exemplo de um Design Pattern Conclusão

História Os Patterns têm a sua origem num conceito arquitectónico criado por Christopher Alexander (1978). Na altura, os arquitectos aperceberam-se da necessidade de partilhar informações sobre conceitos de design. Christopher Alexander afirmou que um pattern descreve um problema que se repete várias vezes num determinado meio, e em seguida descreve o núcleo da sua solução, de modo que esta solução possa ser usada milhares de vezes. Em 1987, Kent Beck e Ward Cunningham começaram a explorar a ideia de aplicar os patterns à programação. Em 1995, Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides, mais conhecidos como ‘Gang of Four’, publicaram o livro “Design Patterns: Elements of Reusable Object-Oriented Software”, que tratava pela primeira vez do tema ‘Design Patterns’ associado ao design de software.

Design Patterns – O que são? Documentos de soluções genéricas e reutilizáveis aplicados a problemas recorrentes. Conjunto de classes e objectos que farão parte de uma solução abstracta e que serão particularizados conforme a situação. Descrições de soluções que funcionaram e se tornaram receitas para situações similares.

Objectivos dos Design Patterns Criar designs object-oriented (OO) reutilizáveis. Acelerar o processo de desenvolvimento de software. Oferecer ao utilizador soluções generalizadas, devidamente documentadas. Dar a possibilidade dos utilizadores interagirem, usando nomes bem conhecidos e perceptíveis, com o pattern de modo a ser melhorado tornando-o mais eficiente.

Como Documentar Design Patterns Nome e classificação Identifica o pattern. Propósito Tipo de problema que o pattern trata. Motivação Um cenário que ilustra o problema e como o pattern o resolve. Aplicabilidade Situações em que este pattern pode ser aplicado. Estrutura Representação gráfica das classes do pattern. Participantes Classes que participam no pattern e respectivas responsabilidades.

Como Documentar Design Patterns(2) Colaborações Como os participantes interagem para cumprir as suas responsabilidades. Consequências Resultados e efeitos causados pelo uso do pattern. Implementação Dicas e técnicas que o designer deve saber, e possíveis armadilhas para as quais deve estar preparado. Exemplos Fragmentos de código que ilustram como o pattern deve ser implementado. Utilizações conhecidas Exemplos de utilização do pattern em sistemas já implementados. Patterns relacionados Patterns fortemente relacionados com o pattern em questão e principais diferenças.

Design Patterns e suas Diferentes Categorias Existem 23 categorias diferentes de design patterns que podem ser subdivididas quanto: Ao seu propósito: Criação - Descreve a melhor maneira de criar um objecto. Estrutural - Diz respeito à composição de objectos e classes. Comportamental - Caracteriza o modo como classes e objectos interagem e compartilham responsabilidades.

Design Patterns e suas Diferentes Categorias(2) E quanto ao seu âmbito: Classes - Tratam do relacionamento entre classes e subclasses. Estas relações são estabelecidas através de heranças, portanto são estáticas, fixas quando compiladas. Objectos - Tratam relacionamentos entre objectos que podem ser alterados em tempo de execução.

Design Patterns e suas Diferentes Categorias(3) Fig1 – As 23 categorias do Design Patterns subdivididas

Design Patterns vs. Frameworks Devido às semelhanças entre Design Patterns e Frameworks, as pessoas tendem a questionar se ambas diferem em algum ponto. Podemos identificar 3 pontos fundamentais em que os Design Patterns e as Frameworks diferem: Os Design Patterns são mais abstractos que as Frameworks As Frameworks podem ser embebidas em código, já os Design Patterns, apenas os seus exemplos podem ser embebidos em código. Os Design Patterns são elementos arquitectónicos mais pequenos que as Frameworks Uma Framework pode conter vários Design Patterns, o contrário nem sempre é verdade. Os Design Patterns são menos especializados que as Frameworks As Frameworks estão sempre relacionadas com um domínio particular da aplicação, enquanto que as Design Patterns são mais genéricas e podem ser aplicadas a vários domínios de uma aplicação.

Exemplo de Design Patterns Singleton Nome : Singleton. Classificação: Pattern de criação. Propósito: Garantir que uma classe só tenha uma única instância e criar um ponto de acesso global a essa instância. Motivação: Garantir que apenas um objecto exista, independentemente do número de requisições que receber para criá-lo. Aplicabilidade: Usa-se quando tem que haver exactamente uma instância de uma classe e tem que estar acessível a clientes de um ponto de acesso reconhecido.

Exemplo de um Design Pattern (2) Estrutura:

Exemplo de um Design Pattern (3) Participantes Singleton - Define uma operação de instância que deixa os clientes acederem à sua instância única. Instância é uma operação da classe. - Responsável por criar e manter a sua própria, e única, instância. Consequências Acesso controlado à instância única. Espaço de nomes reduzido. Permite refinamento de operações e representação. Permite um número variável de instancias. Mais flexível do que operações de classes. Implementação Garantir a existência de uma única instância. Criando subclasses da classe Singleton. Exemplos Disponível em http://www.dofactory.com/Patterns/PatternSingleton.aspx

Conclusão Podemos concluir, através do estudo dos Design Patterns, que estes: • Melhoram a qualidade do software produzido. • Melhoram a produtividade ao nível do desenho. • São soluções conhecidas para problemas conhecidos. • Possuem um vocabulário próprio para discutir o domínio do problema. No entanto pode ter alguns efeitos negativos: • Aumento desnecessário da complexidade do desenho. • Perda de eficiência (incremento dos níveis de mudança de direcção). • Podem limitar a criatividade.

Bibliografia Livros Internet Gamma, Helm, Johnson, Vlissides – Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Publishing Company, 1995 Buschmann, Meunier, Rohnert, Sommerlad, Stal – Pattern-Oriented Software Architecture: A System of Patterns, J. Wiley and Sons Ltd., 1996 Internet http://www.lia.ufc.br/~eti/menu/modulos/Pattern/aulaDesignPatternsI4pp.pdf http://www2.fundao.pro.br/articles.asp?cod=144 http://en.wikipedia.org/wiki/Design_pattern_%28computer_scieence%29 http://cornet.iicm.edu/sa/scripts/lesson12.htm http://www.dofactory.com/Patterns/Patterns.aspx