Frameworks

Hoje, a utilização de Frameworks para agilizar o processo de desenvolvimento é cada vez mais comum. Conhecer e saber utilizar determinados Frameworks, em muitos casos, chega a se tornar um pré-requisito.

Neste post, tentarei explicar o que é são Frameworks,  e exemplificar alguns dos mais comuns para JEE.

Existem muitas definições do que é um Framework. As mais clássicas:

  • A framework is a set of classes that embodies an abstract design for solutions to a family of related problems” [Johnson and Foot, 1988]
  • A framework is a set of objetcts that collaborate to carry out a set of responsabilities for an application subsystem domain” [Damian, 1991]
  • A framework is an architecture developed with the objective to obtain the maximum reuse, represented as a group of abstract and concrete classes, with a great potetnial specialization” [Mattsson, 1996]

Podemos dizer então que um Framework consiste em um conjunto de classes e/ou objetos (ou uma arquitetura) já desenvolvidos que tem como objetivo obter o máximo da reutilização, e que tem como responsabilidade prover uma solução para um conjunto de problemas.

O conjunto de classes de um Framework deve ser flexível e extensível para permitir a construção de várias aplicações com pouco esforço, especificando apenas as particularidades de cada aplicação.

Pode-se dizer ainda que Frameworks são projetos reutilizáveis de todo ou parte de um sistema de software, descrito por um conjunto de classes abstratas e a forma como as instâncias destas classes se relacionam.

Um bom Framework pode reduzir o custo do desenvolvimento de uma aplicação, por uma ordem de grandeza, pois permite a reutilização de design e código.

Diferença entre Frameworks e Bibliotecas de Classes

Uma biblioteca de classe (lib) consiste em uma coleção de sub-rotinas ou classes prontas, que tem como objetivo a reutilização de código.

Uma biblioteca se preocupa apenas em oferecer implementação de funcionalidades, enquanto o Framework define a reutilização de uma arquitetura (pattern) completo.

Ao utilizar uma biblioteca, o desenvolvedor define com as classes irão interagir. Em um Framework, as relações entre as classes já estão definidas: é o desenvolvedor que se adapta ao padrão (design) que já foi proposto pelo Framework.

Diferença entre Frameworks e Design Patterns

Um Design Pattern (ou Padrão de Projeto) descreve como uma solução deve ser implementada para resolver determinado problema. Desta forma, um Design Pattern não possui código, possui apenas um modelo de arquitetura a ser seguido.

Um design pattern é mais abstrato que um Framework, justamente pela ausência de código.

Uma Framework, em sua implementação, pode seguir um ou mais Padrões de Projeto 🙂

Frameworks Conceituais

O conceito de Framework aqui descrito se refere a Framewroks Computacionais. Existem também os Frameworks Conceituais, que é um conjunto de conceitos usado para resolver um problema de um domínio específico.

Como exemplos de Frameworks Conceituais para governança de TI, temos o  COBIT e o ITIL.

Exemplos de Frameworks

Hibernate: Amplamente utilizado para persistência de dados e mapeamento objeto-relacional;

Java Server Faces: Utilizado para desenvolvimento de interfaces gráficas em aplicações Java EE;

Struts: Utilizado para auxiliar a implementar o modelo MVC em aplicações Java EE;

JUnit: Utilizado para realização de testes unitários;

Flex: utilizado para desenvolver interfaces gráficas sobre a plataforma Adobe Flash.

Estes são apenas alguns exemplos de vários Frameworks existentes.

Fico por aqui.

Abraço!

Referências:

http://st-www.cs.illinois.edu/users/johnson/frameworks.html

http://st-www.cs.illinois.edu/users/droberts/evolve.html

http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/frame/oque.htm

Deixe um Comentário

0 Comentários.

Deixe um Comentário


NOTA - Você pode usar estesHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>