O desenvolvimento científico no geral tem como prerrogativa o uso de conceitos anteriormente estudados para o desenvolvimento de novas áreas de conhecimento. Um pesquisador na área da Física, por exemplo, não precisa reescrever as leis de Newton, apenas utilizar seus conceitos para atingir novas verdades, como descrito na expressão “anões sobre os ombros de gigantes”.
Esse conceito de reutilização é base para vários métodos de desenvolvimento na Engenharia de Software, sendo o paradigma de programação orientada a objetos (POO) um dos exemplos mais claros.
O Framework é uma técnica de POO baseado nos conceitos de abstração, polimorfismo e herança. Ao contrário de bibliotecas, que fornecem meios para a reutilização de componentes, um framework fornece meios para a reutilização de subsistemas através de interfaces e classes abstratas.
Pode-se dizer que um framework é formado por pontos fixos (hook points) e pontos extensíveis (host points). Hook points são serviços já implementados pelo framework, enquanto host points são serviços que devem ser implementados, geralmente por meio de SDKs.