Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Framework — Wikipédia
Framework — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Page d’aide sur l’homonymie

Pour les articles homonymes, voir Framework (homonymie).

En programmation informatique, un framework (appelé aussi infrastructure logicielle[1], infrastructure de développement[2], environnement de développement[3], socle d'applications[4], cadre d'applications[4] ou cadriciel[4]) est un ensemble cohérent de composants logiciels structurels qui sert à créer les fondations ainsi que les grandes lignes de tout ou partie d'un logiciel, c'est-à-dire une architecture.

Un framework se distingue d'une simple bibliothèque logicielle principalement, d'une part par son caractère générique, faiblement spécialisé, contrairement à certaines bibliothèques ; un framework peut à ce titre être constitué de plusieurs bibliothèques, chacune spécialisée dans un domaine. Un framework peut néanmoins être spécialisé dans un langage particulier, une plateforme spécifique, un domaine particulier : communication de données, data mapping, etc. D'autre part, il impose un cadre de travail, en raison de sa construction même, guidant l'architecture logicielle voire conduisant le développeur à respecter certains patrons de conception ; les bibliothèques le constituant sont alors organisées selon le même paradigme.

Les frameworks sont donc conçus et utilisés pour modeler l'architecture des logiciels applicatifs, des applications web, des middlewares et des composants logiciels. Les frameworks sont acquis par les informaticiens, 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.

Description

[modifier | modifier le code]

Un framework est un ensemble d'outils et de composants logiciels organisés conformément à un plan d'architecture et des patterns, l'ensemble formant ou promouvant un « squelette » de programme, un canevas. Il est souvent fourni sous la forme d'une bibliothèque logicielle et accompagné du plan de l'architecture cible du framework[5].

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 et maintenance du programme. Le contenu exact du framework est dicté par le type de programme et l'architecture cible pour lequel il est conçu[5].

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, 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[6] — 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.

Objets

[modifier | modifier le code]

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 l'utilise[7]. Avec un framework orienté objets, le programmeur qui l'utilise 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, ajoutées à 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[8].

Inversion de contrôle

[modifier | modifier le code]
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 frameworks 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[9].

Traduction française

[modifier | modifier le code]

En programmation informatique, le terme « framework » se traduit par « structure logicielle », bien que le terme anglais reste majoritairement utilisé. D'autres tentatives de francisation du terme ont été faites ; on trouve ainsi parfois les termes environnement de développement, recommandé par la Commission d’enrichissement de la langue française[3], et cadre d'applications, socle d’applications ou cadriciel recommandés par l'Office québécois de la langue française[4].

Un framework est distinct d'une plateforme, dans la mesure où il n'intègre pas d'environnement d'exécution système ou applicatif.

Exemples

[modifier | modifier le code]
Quelques exemples
Nom Usage Architecture cible Langage Auteur Licence
ActionScript Foundry application web Adobe Flex ActionScript et Java ServeBox
Apache Cocoon application web - servlet ? Java, XML Apache Software Logiciel libre
Spring application web Multiplateforme Java Spring Source Logiciel libre
Apache Struts application web Modèle-Vue-Contrôleur Java Apache Software Logiciel libre
Twitter Bootstrap application web Modèle-Vue-Contrôleur HTML/CSS/Javascript Twitter Licence MIT
Catalyst logiciel applicatif Modèle-Vue-Contrôleur Perl Logiciel libre
Cocoa logiciel applicatif Cocoa Objective C Apple
CubicWeb Plateforme de développement web sémantique Multiplateforme Python Logilab LGPL
Django application web Modèle-Vue-Contrôleur Python Django Software Foundation Logiciel libre
Dojo applet AJAX JavaScript Fondation Dojo
Eclipse Modeling Framework (*) modélisation des données Multiplateforme (ouvert) Fondation Eclipse Logiciel libre
Eclipse RCP Rich Client Platform IDE Eclipse Platform, Multiplateforme (ouvert) Fondation Eclipse Logiciel libre
eZ Publish application web système de gestion de contenu PHP eZ Systems AS Logiciel libre
JavaServer Faces application web Composant Java Logiciel libre
FxEngine Framework traitement numérique du signal, plugin Filtres et tubes C++ SMProcess
Grails application web Modèle-Vue-Contrôleur Groovy Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig et Steven Devijver
Google Guice application web Multiplateforme Java Bob Lee, Kevin B, Jesse Wilson, Christian Gruber Logiciel libre
Hibernate persistance & mapping Java Persistance API Java JBoss Logiciel libre
Java SE (**) framework générique pour Rich Client Platform Multiplateforme Java
Scala
JScheme, implémentation de Scheme
Clojure (dialecte de Lisp)
JRuby
Jython
Rhino (moteur JavaScript)
Sun Microsystems puis Oracle Corporation Logiciel libre
Java EE (**) framework professionnel avec support du distribué
Java ME (**) framework pour application mobile
JavaFX (**) framework pour Rich Internet Application
Kivy framework pour application mobile Multiplateforme Python
Cython
Kivy organization Logiciel libre
Laravel applications web Multiplateforme,
Modèle-Vue-Contrôleur
PHP Équipe de développement Laravel Licence MIT
MARF traitement du signal et des langues pipeline Java Serguei Mokhov, Stephen Sinclair
Microsoft Foundation Class logiciel applicatif Modèle-Vue-Contrôleur C++ Microsoft Propriétaire
.Net (**) logiciel applicatif, application web, composant logiciel ASP.NET C#, Visual Basic .NET Microsoft Propriétaire
Ruby on Rails application web Modèle-Vue-Contrôleur Ruby David Heinemeier Hansson et Logiciel libre
Symfony application web Modèle-Vue-Contrôleur PHP Sensio Labs Logiciel libre
SoJo FrameWork application web Modèle-Vue-Contrôleur HTML/CSS InGamesStudio Logiciel libre
TopLink persistance & mapping Java Persistance API Java Oracle Corporation
W3.CSS application web Google Material Design CSS W3Schools Logiciel libre
Zend Framework application web Modèle-Vue-Contrôleur PHP Zend Technologies Logiciel libre
Zope gestion de contenu Zope Python Zope Corporation Logiciel libre

(*) Certains frameworks comme Eclipse constituent davantage des méta-frameworks, ou frameworks de frameworks, dans la mesure où ils permettent, selon les modules qui en sont installés, de se réorienter vers différentes activités informatiques.

(**) Microsoft .NET et les Java Platforms peuvent être vus indifféremment comme des frameworks ou comme des plateformes logicielles, selon que l'on considère leurs seules bibliothèques de développement ou leur environnement d'exécution.

D’autres exemples de frameworks peuvent être trouvés dans la page relative à l'inversion de contrôle.

Notes et références

[modifier | modifier le code]
  1. ↑ « Framework ou infrastructure logicielle : définition et traduction », JDN,‎ 23 avril 2018 (lire en ligne, consulté le 24 juin 2018)
  2. ↑ Sandy Hacyan, « Le framework : un socle de développement structurant », sur journaldunet.com, Le Journal du Net, 3 avril 2008 (consulté le 2 mai 2017)
  3. ↑ a et b Commission d’enrichissement de la langue française, « environnement de développement », sur FranceTerme, ministère de la Culture (consulté le 22 janvier 2020).
  4. ↑ a b c et d « cadre d'applications », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le 22 janvier 2020).
  5. ↑ a et b (en) Ken Chazotte, Build Your Own Framework with Visual FoxPro, Hentzenwerke, 2004, (ISBN 9781930919532).
  6. ↑ (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)
  7. ↑ (en) Nicolas Guelfi, Egidio Astesiano et Gianna Reggio, Scientific engineering for distributed Java applications, Springer - 2003, (ISBN 9783540006794)
  8. ↑ (en) Douglas C. Schmidt et Stephen D. Huston, C++ Network Programming: Systematic reuse with ACE and frameworks, Addison-Wesley - 2003, (ISBN 9780201795257)
  9. ↑ (en) 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, (ISBN 9780201699715)

Voir aussi

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • framework, sur le Wiktionnaire

Articles connexes

[modifier | modifier le code]
  • 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
  • CSPro

Liens externes

[modifier | modifier le code]

  • Notices d'autoritéVoir et modifier les données sur Wikidata :
    • BnF (données)
    • LCCN
    • GND
    • Israël
    • Tchéquie
  • MIReG metadata framework
v · m
Éléments de programmation informatique
Bibliothèque logicielle
  • Bibliothèque standard
  • Espace de noms
  • Framework
  • Gabarit
  • Interface
  • Interface de programmation (API)
Vocabulaire
  • Algorithme
  • Expression
  • Indentation
  • Instruction
  • Ligne de code
  • Opérateur
  • Pseudo-code
  • Ramasse-miettes
Fonctions
  • Dispatch multiple
  • Factorisation
  • Fonction imbriquée
  • Fonction de rappel
  • Fonction d'ordre supérieur
  • Fonction récursive
  • Généricité
  • Opérande
  • Paramètre
  • Polymorphisme
  • Procédure
  • Signature de type
  • Surcharge
Objet
  • Classe
  • Constructeur
  • Destructeur
  • Encapsulation
  • Héritage
  • Héritage multiple
  • Instance
  • Méthode
Événementiel Inversion de contrôle
Code source
Structures de données
  • Arbre
  • Enregistrement
  • Ensemble
  • File
  • Liste
  • Liste chaînée
  • Pile
  • Sémaphore
  • Tableau
  • Tas
  • Type abstrait
  • Vecteur
Déclarations
  • Affectation
  • Convention de nommage
  • Pointeur
  • Portée
  • Référence
  • Tableau associatif
  • Type énuméré
  • Type récursif
  • Typage statique
  • Variable
  • Variable globale
  • Variable locale
Structures de contrôle
  • Case
  • Eval
  • For
  • Goto
  • Switch
  • While
Fonctions usuelles
  • Concaténation
  • Incrémentation
  • malloc
  • printf
Outil de développement
  • Environnement de développement
  • Générateur de documentation
  • Gestion de versions
  • Modèle
  • Patch
  • Spécification
Folklore
  • Hello world
  • Principe KISS
  • Langage de programmation exotique
Catégories :
  • Programmation informatique
  • Développement logiciel
v · m
Frameworks web
Python
  • Django
  • Flask
  • Tornado (framework) (en)
  • Scrapy
  • Twisted
  • Web2py
  • CherryPy
  • Pyramid
  • TurboGears
PHP
  • Symfony
  • API Platform
  • Zend Framework
  • CodeIgniter
  • FuelPHP
  • Yii
  • CakePHP
  • QCodo
  • Laravel
  • Jelix
  • Agavi
  • Atomik
  • Copix
  • Kumbia PHP
  • PRADO
  • WebSite-PHP
  • Phalcon
Ruby
  • Ruby on Rails
  • Sinatra
  • Merb
Perl
  • Catalyst
  • Dancer
  • Mojolicious
Smalltalk Seaside
JavaScript
Côté serveur
  • Express.js
  • Meteor
Côté client
  • Angular
  • AngularJS
  • Backbone.js
  • Cappuccino
  • Dojo
  • Ember.js
  • Ext JS
  • Meteor
  • MooTools
  • Prototype
  • qooxdoo
  • React
  • script.aculo.us
  • YUI
  • Vue.js
  • Svelte
CSS
  • Blueprint
  • Frameworks d'interface
    • Bootstrap
    • Foundation
Java
  • Jakarta EE
  • Spring
  • Struts
  • Tapestry
  • Play
  • Stripes
  • ZK
  • Cocoon
  • GWT
  • Echo
  • AppFuse
  • Grails
  • RAP
  • Wicket
  • WebObjects
  • Vert.x
  • Quarkus
.NET
  • ASP.NET
  • ASP.NET AJAX
v · m
Domaines de l'informatique
Remarque : cette liste s'inspire du système de classification informatique de l'ACM édité en 2012
Matériel
  • Circuit imprimé
  • Périphérique
  • Circuit intégré
  • Intégration à très grande échelle
  • Circuit logique programmable
  • Informatique durable
  • Conception assistée par ordinateur pour l'électronique
Appareil et organisation
d'un système
  • Architecture matérielle
  • Architecture de processeur
  • Machine à calculer
  • Mécanographie
  • Calculateur analogique
  • Calculatrice
  • Calculateur quantique
  • Ordinateur
  • Système embarqué
  • Système temps réel
  • Sûreté de fonctionnement
Réseau
  • Architecture de réseau
  • Protocole de communication
  • Équipement d'interconnexion de réseau informatique
  • Planificateur de réseau (en)
  • Rendement du réseau (en)
  • Service réseau
Organisation du logiciel
  • Interprète
  • Middleware
  • Machine virtuelle
  • Système d'exploitation
  • Qualité logicielle
Théorie et outil (en)
de programmation
  • Paradigme de programmation
  • Langage de programmation
  • Compilateur
  • Langage dédié
  • Langage de modélisation
  • Cadriciel
  • Environnement de développement
  • Gestion de configuration logicielle
  • Bibliothèque logicielle
  • Dépôt
Développement de logiciel
  • Software development process
  • Analyse des exigences
  • Conception de logiciel
  • Assemblage de logiciel (en)
  • Déploiement de logiciel (en)
  • Maintenance du logiciel
  • Équipe de programmation (en)
  • Open source
Théorie du calcul
  • Modèle de calcul
  • Langage formel
  • Théorie des automates
  • Théorie de la complexité
  • Logique (en)
  • Sémantique
Algorithmique
  • Algorithme
  • Conception d'algorithme
  • Analyse de la complexité des algorithmes
  • Algorithme évolutionniste
  • Algorithme probabiliste
  • Géométrie algorithmique
  • Génération procédurale
Mathématiques
de l'informatique
  • Mathématiques discrètes
  • Probabilité
  • Statistique
  • Logiciel mathématique (en)
  • Théorie de l'information
  • Analyse
  • Analyse numérique
Système d'information
  • Base de données
  • Mémoire (informatique)
  • Progiciel
  • Logiciel social
  • Système d'information géographique
  • Système d'aide à la décision
  • Supervision
  • Base de données multimédia
  • Exploration de données
  • Bibliothèque numérique
  • Plateforme
  • Marketing électronique
  • World Wide Web
  • Recherche d'information
Sécurité
  • Cryptographie
  • Méthode formelle
  • Service de sécurité (en)
  • Système de détection d'intrusion
  • Sécurité matérielle (en)
  • Sécurité du réseau
  • Sécurité de l'information
  • Sécurité de l'application (en)
Interactions humain-machine
  • Design numérique
  • Informatique sociale (en)
  • Informatique ubiquitaire
  • Visualisation (en)
  • Accessibilité numérique
Concurrence (en)
  • Programmation concurrente
  • Parallélisme
  • Calcul distribué
  • Multithreading
  • Multiprocesseur
Intelligence artificielle
  • Traitement automatique des langues
  • Représentation des connaissances
  • Vision par ordinateur
  • Planification
  • Optimisation
  • Philosophie de l'intelligence artificielle
  • Intelligence artificielle distribuée
Apprentissage automatique
  • Apprentissage supervisé
  • Apprentissage non supervisé
  • Apprentissage par renforcement
  • Apprentissage multi-tâches (en)
  • Validation croisée
Infographie
  • Animation par ordinateur
  • Animation 2D numérique
  • Animation 3D
  • Rendu photoréaliste
  • Retouche d'image
  • Processeur graphique
  • Réalité mixte
  • Réalité virtuelle
  • Compression d'image
  • Conception paramétrique
Audio informatique
  • Générateur de son programmable
  • Processeur de signal numérique
  • Synthétiseur analogique
  • échantillonnage
  • Séquenceur musical
  • Tracker (musique)
  • Musique assistée par ordinateur
Informatique appliquée
  • Commerce en ligne
  • Logiciel d'entreprise
  • Mathématiques computationnelles
  • Physique numérique
  • Chimie numérique
  • Biologie numérique
  • Sciences sociales numérique (en)
  • Ingénierie numérique
  • Informatique médicale
  • Art numérique
  • Édition électronique
  • Cyberguerre
  • Vote électronique
  • Jeu vidéo
  • Traitement de texte
  • Recherche opérationnelle
  • Technologies éducatives
  • Gestion électronique des documents
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail d’Internet
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Framework&oldid=223845162 ».
Catégories :
  • Framework de programmation
  • Terminologie de l'informatique
Catégories cachées :
  • Page utilisant un modèle Bases inactif
  • Article utilisant le modèle Dictionnaires inactif
  • Article de Wikipédia avec notice d'autorité
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Internet/Articles liés
  • Portail:Médias/Articles liés
  • Portail:Société/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id