Een framework is doorgaans een library of een ander stuk software dat een raamwerk biedt voor een applicatie. De basis bouwblokken die in een standaard programma gebruikt worden zijn reeds aanwezig wat het ontwikkelen van software versnelt. Er zijn verschillende raamwerken voor diverse toepassingen. Wat is een framework en op welke wijze draagt het bij aan software ontwikkeling?
Bij software ontwikkeling is het niet nodig om steeds het wiel opnieuw uit te vinden. Door een bestaand raamwerk te nemen als uitgangspunt en daar code aan toe te voegen kan sneller een software applicatie worden gemaakt. Een framework kan ondersteuning bieden voor programma’s, compilers, libraries, tool sets of API’s. Ze onderscheiden zich van standaard libraries omdat de ‘flow of control’ door het framework bepaald wordt, het raamwerk is uitbreidbaar door de programmeur maar het is niet de bedoeling om bestaande code aan te passen. Ajax en JavaScript zijn voorbeelden, maar er zijn nog veel meer opties. Naast de programmeur werk uit handen nemen, heeft het ook voordelen voor de eindgebruiker. Wanneer een software applicatie bijvoorbeeld gebruik maakt van een standaard Graphical User Interface (GUI) is het eenvoudiger om knoppen te vinden en de software te gebruiken. De software developer behoudt de vrijheid om functionaliteit toe te voegen, maar de standaard bouwblokken om het programma invulling te geven is reeds voorhanden.
Frozen spots definiëren de algemene architectuur van een softwaresysteem, de hot spots zijn de onderdelen waar nieuwe code wordt toegevoegd die specifiek bestemd is voor het project of product.