- Framework
-
Pour l’article homonyme, voir Framework (logiciel).
En programmation informatique, un framework est un kit de composants logiciels structurels, qui servent à créer les fondations ainsi que les grandes lignes de tout ou d’une partie d'un logiciel (architecture). En programmation orientée objet un framework est typiquement composé de classes mères qui seront dérivées et étendues par héritage en fonction des besoins spécifiques à chaque logiciel qui utilise le framework[1].
Les framework sont utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middleware et des composants logiciels. Les framework sont achetés par les ingénieurs, puis incorporés dans des logiciels applicatifs mis sur le marché, ils sont par conséquent rarement achetés et installés séparément par un utilisateur final.
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[2] ou cadriciel - terme en usage depuis au moins 1997[réf. nécessaire].
Sommaire
Description
Un framework est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et des design patterns. L'ensemble forme un squelette de programme. Il est souvent fourni sous la forme d'une bibliothèque logicielle, et accompagné du plan de l'architecture cible du framework[3].
Avec un framework orienté objets, le programmeur qui utilise le framework pourra personnaliser les éléments principaux du programme par extension, en utilisant le mécanisme d'héritage: créer des nouvelles classes qui contiennent toutes les fonctionnalités que met en place le framework, et en plus ses fonctionnalités propres, créées par le programmeur en fonction des besoins spécifiques à son programme. Le mécanisme d'héritage permet également de transformer des fonctionnalités existant dans les classes du framework[4].
Un framework est conçu en vue d'aider les programmeurs dans leur travail. L'organisation du framework vise la productivité maximale du programmeur qui va l'utiliser - gage de baisse des coûts de construction du programme. Le contenu exact du framework est dicté par le type de programme et l'architecture cible pour lequel il est concu[3].
On trouve différents types de frameworks :
- Framework d'infrastructure système : pour développer des systèmes d'exploitation, des interfaces graphiques, des outils de communication. (exemple : Framework .Net, NetBeans, Struts)
- Framework d'intégration intergicielle (middleware) : pour fédérer des applications hétérogènes. Pour mettre à disposition différentes technologies sous la forme d'une interface unique.
- Frameworks d'entreprise : pour développer des applications spécifiques au secteur d'activité de l'entreprise.
- Frameworks de gestion de contenu: Sont les fondations d'un système de gestion de contenu[5] - pour la création, la collecte, le classement, le stockage et la publication de biens numérisés.
Les principaux avantages de ces frameworks sont la réutilisation de leur code, la standardisation du cycle de vie du logiciel (Spécification, développement, maintenance, évolution), ils permettent de formaliser une architecture adaptée au besoin de l'entreprise. Ils tirent parti de l'expérience des développements antérieurs.
Inversion de contrôle
Article détaillé : inversion de contrôle.Alors que les bibliothèques de classes sont typiquement passives : les opérations des classes sont exécutées sur demande du programme qui les utilise, les framework sont typiquement actifs : le déroulement des opérations dans un programme est dirigé par le framework qu'il utilise, par des mécanismes tels que les fonctions de rappel et les événements, selon le principe "ne m'appelez pas, je vous appellerai".
L'inversion de contrôle fait partie de l'architecture typique d'un framework[6].
Exemples
Notes et référence
- (en)Nicolas Guelfi, Egidio Astesiano et Gianna Reggio, Scientific engineering for distributed Java applications, Springer - 2003, (ISBN 9783540006794)
- Fiche terminologique de l'Office québécois de la langue française
- (en)Ken Chazotte,Build Your Own Framework with Visual FoxPro,Hentzenwerke - 2004,(ISBN 9781930919532)
- (en)Douglas C. Schmidt et Stephen D. Huston,C++ Network Programming: Systematic reuse with ACE and frameworks,Addison-Wesley - 2003, (ISBN 9780201795257)
- (en)R. J. Townsend,Foundation Drupal 7: Learn how to Use the Drupal Framework to Quickly Build Feature-rich Web Sites,Apress - 2010,(ISBN 9781430228080)
- ISBN 9780201699715) Stephen D. Huston, James C. E. Johnson, Umar Syyid,The ACE programmer's guide: practical design patterns for network and systems programming, Addison-Wesley - 2004, (
Voir aussi
Articles connexes
- Catégorie:Framework de programmation
- Liste de frameworks PHP
- Liste de frameworks Java
- Cadre d'application AJAX
- Liste de systèmes de gestion de contenu#Frameworks orientés gestion de contenu (CMS: Système de gestion de contenu)
- Liste des frameworks de test unitaire
Liens externes
- MIReG metadata framework
- Détermination de la version installée du .NET Framework > [1]
- The PHP Framewoks Showcase
Catégories :- Framework de programmation
- Terminologie de l'informatique
Wikimedia Foundation. 2010.