Framework
3.1.1 Definição
(BIBLIO1) Segundo Amaral (2001), um framework é um projeto reutilizável expresso através de um conjunto de classes e pela forma como suas instâncias interagem; por definição, um framework é um projeto orientado a objetos. Ele não precisa ser implementado através de uma linguagem orientada a objetos, embora geralmente o seja. Ele é o esqueleto de uma aplicação que pode ser customizada pelo desenvolvedor. Uma definição de framework, bastante aceita pela comunidade acadêmica é que, um framework é um conjunto de classes que abrangem um projeto abstrato, visando a solução de uma família de problemas correlacionados.
(BIBLIO4) Um framework é um projeto abstrato orientado a objetos, e consiste de uma classe abstrata para cada componente principal. As interfaces entre os componentes de projeto são definidas em termos de conjuntos de mensagens. Haverá geralmente uma biblioteca de subclasses que podem ser usadas como componentes no projeto. (BIBLIO2) Por definição um Framework fornece ao programador um conjunto de componentes cooperantes entre si e, portanto, com uma estrutura aplicacional já pré-montada em vez de uma simples biblioteca de componentes. Num Framework os objetos já apresentam todo o Know-How necessário à inter-cooperação podendo chegar mesmo à apresentação de sub-sistemas completamente funcionais.
(BIBLIO4) Um framework é um projeto abstrato de um tipo de aplicação em particular e geralmente consiste de um número de classes. Essas classes podem ser obtidas de uma biblioteca de classes ou podem ser específicas da aplicação.
(BIBLIO4) Frameworks são úteis na reutilização, não apenas do código principal da aplicação. Eles também podem descrever os projetos abstratos de uma biblioteca de componentes. Um dos pontos fortes dos frameworks é sua habilidade em permitir a extensão da biblioteca de componentes existente.
(BIBLIO5) Um framework pode ser definido sob dois aspectos [Johnson 97]: estrutura e função. Quanto à estrutura, um