Un framework est un espace de travail modulaire. C'est un ensemble de bibliothèques et de conventions permettant le développement rapide d'applications. Il fournit suffisamment de briques logicielles et impose suffisamment de rigueur pour pouvoir produire une application aboutie et facile à maintenir. Ces composants sont organisés pour être utilisés en interaction (Une interaction est un échange d'information, d'affects ou d'énergie entre deux agents au sein...) les uns avec les autres (voir urbanisation).
Des tentatives de francisation du terme ont été faites. On trouve ainsi parfois les termes cadre d'applications, proposé par l'Office québécois de la langue française[1] ou cadriciel[2].
Un framework (En programmation informatique, un framework est un kit de composants logiciels structurels, qui...) fournit un ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection...) de fonctions facilitant la création de tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou...) ou d'une partie d'un système logiciel (En informatique, un logiciel est un ensemble d'informations relatives à des traitements...), ainsi qu'un guide architectural en partitionnant le domaine visé en modules. Un framework est habituellement implémenté à l'aide d'un langage à objets, bien que cela ne soit pas strictement nécessaire : un framework objet (De manière générale, le mot objet (du latin objectum, 1361) désigne une entité définie dans...) fournit ainsi un guide architectural en partitionnant le domaine visé en classes et en définissant les responsabilités de chacune ainsi que les collaborations entre classes. Un sous-ensemble (En mathématiques, un ensemble A est un sous-ensemble ou une partie d’un ensemble B, ou...) de ces classes peuvent être des classes abstraites.
Le déploiement à grande échelle (La grande échelle, aussi appelée échelle aérienne ou auto échelle, est un...) de bibliothèques d'objets exige un framework ; celui-ci fournit un contexte (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le...) où les composants sont ré-utilisés.
Si l'utilisation du terme bibliothèque logicielle (En informatique, une bibliothèque ou librairie logicielle (ou encore, bibliothèque de...) est limité à la librairie proprement dite, le terme de Framework peut être employé par extension pour inclure également l'architecture logicielle (L’architecture logicielle décrit d’une manière symbolique et...) préconisée pour cette bibliothèque (organisation en couches, utilisation du MVC...), voire l'environnement de développement (En informatique, un environnement de développement consiste en un ensemble de logiciels...) bâti autour (Autour est le nom que la nomenclature aviaire en langue française (mise à jour) donne...) (Microsoft .NET + Visual Studio (Microsoft Visual Studio est une suite de logiciels de développement pour Windows conçu...)...) même si celui-ci est capable de gérer différents Frameworks.
On trouve différents types de frameworks :
Les principaux avantages de ces frameworks sont la réutilisation de leur code, la standardisation du cycle de vie (La vie est le nom donné :) du logiciel (Spécification, développement, maintenance, évolution), ils permettent de formaliser une architecture (L’architecture peut se définir comme l’art de bâtir des édifices.) adaptée au besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est...) de l'entreprise. Ils tirent partie de l'expérience des développements antérieurs.
Ces frameworks sont en quelque sorte des progiciels extrêmement souples et évolutifs.