TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Padrão de Projeto de Software

Por:   •  2/2/2016  •  Trabalho acadêmico  •  1.835 Palavras (8 Páginas)  •  323 Visualizações

Página 1 de 8

Padrões de Projeto

Luiz Carlos da Silveira Júnior (lcsjuniorsi@gmail.com)

Pedro Henrique Polonea Paulo Silva (phpolonea@hotmail.com)

Vítor Albuquerque Brando (vitorbrando@gmail.com)

Departamento de Ciência da Computação - Universidade Federal de Juiz de Fora

Resumo

Basicamente, padrões de projeto (design patterns) são soluções simples para problemas específicos no projeto de software orientado a objetos, são soluções que foram desenvolvidas e aperfeiçoadas ao longo do tempo (GAMMA et al. 1995).

Padrões de projeto ganhou mais popularidade com a obra Design Patterns: Elements of Reusable Object-Oriented Software, onde os padrões propostos no livro são popularmente conhecidos como padrões “GOF”, gangue dos quatro, em referência aos autores Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides (OLIVEIRA. 2007).

Segundo (GUERRA. 2013) o livro publicado pelo “GOF” tem mais de 15 anos e de certa forma esta com seu conteúdo ultrapassado. Ainda sim, (GUERRA. 2012) considera este, um livro muito a frente de seu tempo.

Este artigo tem por objetivo apresentar padrões de projeto de software com propostas e modelos do cotidiano conforme os padrões “GOF”, sendo agrupado por padrões do tipo, criação, estruturais e comportamentais, totalizando vinte e três padrões catalogados. Serão considerados conceitos de orientação a objetos, refatoração e reúso, além de breve apresentação sobre o padrão GRASP (General Responsibility Assignment Software Patterns), principalmente sobre MVC (Model-view-controller).

Introdução

(CINNEIDE. 2000) destaca que, desenvolver um projeto certo em uma única vez é praticamente impossível, logo, um dos grandes avanços em software é a concepção de desenvolvimento evolutivo.

Conforme (BLAHA et al. 2006), programação de grandes sistemas refere-se à escrita de programas grandes e complexos com equipes de programadores, onde a comunicação humana torna-se fundamental e isso exige práticas de engenharia de software apropriadas. Para isso, (BLAHA et al. 2006) orienta:

Não programe prematuramente, pense longa e cuidadosamente antes de se comprometer com o código, pois código é cansativo de escrever e difícil de mudar. Crie métodos legíveis, nomes de variáveis significativos aumentam a legibilidade. Mantenha os métodos inteligíveis, desta forma, um método é inteligível se alguém que não é o criador puder entender o código.

Neste cenário, (GUERRA. 2013) afirma que padrões de projeto não são novas soluções, mas soluções que foram implementadas com sucesso de forma recorrente e em diferentes contextos.

Segundo (DANTAS et al.. 2000), um padrão resolve um problema recorrente em um determinado contexto, sendo uma solução que comprovadamente funcione, além de informar os resultados e compromissos de sua aplicação. Por outro lado, um anti-padrão é o resultado da falta de conhecimento de uma solução mais adequada, ou pode ser também, sair de uma solução ruim e chegar a uma boa solução.

Orientação a objetos

Para (BLAHA et al. 2006), o termo orientado a objetos (OO) significa organizar o software como uma coleção de objetos distintos, que incorporam estrutura de dados e comportamentos.

À medida que sistemas de software crescem, também cresce a complexidade associada a eles e torna-se cada vez mais difícil satisfazer a um número cada vez maior de requisitos (FILHO, 2010), assim, programação orientada a objetos serve de elo entre problemas existentes e as soluções computacionais apresentadas no campo da programação.

Refatoração e reúso

Para (CINNEIDE. 2000), refatoração é o processo de mudança de um software de tal maneira que não altere o comportamento do externo do código, contudo, melhora sua estrutura interna.

Refatorar é um modo disciplinado de limpar o código, modificar e simplificar o projeto interno, é capaz de minimizar chances de introduzir erros (RAPELI. 2006).

(RAPELI. 2006) reitera que, tornar sistemas orientados a objetos, mais flexíveis, manuteníveis e com melhor estruturação é utilizar técnicas de refatoração juntamente com padrões de projeto.

Portanto, antes de saber como utilizar os padrões na modelagem inicial, é saber como refatorar um código existente para uma solução que utilize um determinado padrão (GUERRA. 2013).

Já o software reutilizável reduz o custo do projeto, codificação e testes, logo, amortizando o esforço por várias aplicações, simplifica a codificação e portanto, aumenta a probabilidade do código estar correto, (BLAHA et al. 2006).

Segundo (BLAHA et al. 2006), existem dois tipos de reúso, compartilhamento de código recém-escrito em uma aplicação e reúso de código previamente escrito e novas aplicações.

Catálogo de padrões de projeto

Os padrões de projeto variam conforme sua granularidade (partes pequenas) e no seu nível de abstração, como existem diversos padrões, (GAMMA et al. 1995) sugere uma maneira de organizá-los em critérios. Por critério de finalidade ou propósito, onde indica o que o padrão faz e por critério de escopo que especifica se o padrão se aplica a classes ou objetos.

[pic 1]

Ilustração 1. Espaço dos padrões de projeto (GAMMA et al. 2000)

Padrões de criação

Os padrões de criação abstraem o processo de instanciação, ajudam a tornar o sistema independente de como seus objetos são criados, compostos e representados (GAMMA et al. 1995), ou seja, são relacionados a criação dos objetos.

Abstract Factory (kit ou toolkit)

Proposta: Permitir a criação de famílias de objetos inter-relacionados através da utilização de uma classe abstrata.

[pic 2]

Ilustração 2. Abstract Factory (GAMMA et al. 1995)

Builder

Proposta: Separar a construção de um objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações.

[pic 3]

Ilustração 3. Builder (GAMMA et al. 1995)

Factory Method (Virtual constructor)

Proposta: Definir interface para criar um objeto, mas deixar as subclasses decidirem que classe instanciar.

...

Baixar como (para membros premium)  txt (13.5 Kb)   pdf (539.5 Kb)   docx (383 Kb)  
Continuar por mais 7 páginas »
Disponível apenas no TrabalhosGratuitos.com