Framework

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 mappingetc.. 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

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

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

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

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

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.

Notes et références

  1. « Framework ou infrastructure logicielle : définition et traduction », JDN,‎ (lire en ligne, consulté le )
  2. Sandy Hacyan, « Le framework : un socle de développement structurant », sur journaldunet.com, Le Journal du Net, (consulté le )
  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 ).
  4. a b c et d « cadre d'applications », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le ).
  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

Sur les autres projets Wikimedia :

Articles connexes

Liens externes

Read other articles:

Angkatan Udara Bangladeshবাংলাদেশ বিমান বাহিনীBānlādēśa Bimāna BāhinīAktif28 September 1971Negara BangladeshTipe unitAngkatan udaraJumlah personel17.390 personel aktif166 pesawat[1]Bagian dariAngkatan Bersenjata BangladeshMarkasDhaka, BangladeshMotoবাংলার আকাশ রাখিব মুক্তKita mesti jaga kebebasan langit BangladeshSitus webbaf.mil.bdTokohPanglima Tertinggi Presiden Abdul HamidKepala Staf Angkatan ...

 

 

كاتدرائية نوتردام دي لا غارد معلومات أساسيّة تعديل مصدري - تعديل   43°17′03″N 5°22′16″E / 43.2841°N 5.371°E / 43.2841; 5.371 كاتدرائية نوتردام دي لا غارد من الداخل. كاتدرائية نوتردام دي لا غارد (بالفرنسيّة: Notre-Dame de la Garde) هي كاتدرائية رومانية كاثوليكية تقع في مدينة مرسيليا، فرن�...

 

 

J. D. ChakravarthyChakravarthyLahirNagulapati Srinivasa Chakravarthy16 April 1972 (umur 51)Hyderabad, IndiaNama lainJ.D.AlmamaterInstitut Teknologi Chaitanya BharathiPekerjaanAktorsutradarapenulis naskahprodusersutradara musikpenyanyiTahun aktif1989–sekarangSuami/istriAnukriti Nagulapati ​(m. 2016)​ Nagulapati Srinivasa Chekravarthy, juga dikenal sebagai J. D. Chakravarthy, adalah seorang pemeran, sutradara, penulis naskah, produser, komposer, da...

Bobby CannavaleBobby Cannavale tahun 2009LahirRobert Cannavale03 Mei 1970 (umur 53)Union City, New Jersey, A.S.PekerjaanAktorTahun aktif1996–sekarangSuami/istriJenny Lumet ​ ​(m. 1994; c. 2003)​PasanganRose Byrne (2012–sekarang)Anak3, termasuk Jake Cannavale Robert Cannavale (/ˌkænəˈvɑːli/; lahir 3 April 1970)[1] adalah aktor Amerika. Berasal dari New Jersey, Cannavale mendapatkan reputasi setelah bekerja di industri...

 

 

Hotel in St Andrews, Fife, Scotland Rusacks HotelRusacks Hotel in July 2022Former namesMarine Hotel,Rusack's Marine Hotel,Macdonald Rusacks HotelGeneral informationArchitectural styleNorthern European RenaissanceAddressPilmour LinksTown or citySt AndrewsCountryScotlandCoordinates56°20′33″N 2°48′15″W / 56.34263°N 2.80416°W / 56.34263; -2.80416Opened1887OwnerMarine & Lawn Hotels & Resorts (AJ Capital Partners)Design and constructionArchitect(s)David H...

 

 

Poetry collection by J.R.R. Tolkien and E. V. Gordon Songs for the Philologists Cover of the first (and only) editionAuthorsJ. R. R. Tolkien, E. V. Gordon, et al.LanguageEnglishPublisherPrivately printed in the Department of English, University College, LondonPublication date1936 Songs for the Philologists is a collection of poems by E. V. Gordon and J. R. R. Tolkien as well as traditional songs.[1] It is the rarest and most difficult to find Tolkien-related book. Originally a collect...

François JacobLahir(1920-06-17)17 Juni 1920[1]Nancy, PrancisMeninggal19 April 2013(2013-04-19) (umur 92)[1]Paris, PrancisWarga negaraPrancisAlmamaterUniversitas ParisDikenal atasOperon[2][3]Suami/istriLise Bloch (4 anak)Geneviève Barrier (m. 1999)Penghargaan Penghargaan Charles-Leopold Mayer (1962) Nobel Fisiologi atau Kedokteran (1965) ForMemRS (1973)[4] Medali Sir Hans Krebs (1982) François Jacob (17 Juni 1920 – 19 April 2013)...

 

 

RokkugoSingel oleh Super Junior-TSisi-ARokkugoSisi-BFirst ExpressDirilis23 Februari 2007FormatCD single, DVDDirekam2006–2007GenreK-Pop, trot, novelty, dance-popDurasi17:03LabelSM Entertainment, Avex AsiaProduserLee Soo-man Rokkugo (bahasa Korea: 로꾸거!!!) adalah CD single pertama oleh Super Junior-T, rilis pada 23 Februari 2007. Lebih dari 45.997 eksemplar terjual sampai akhir tahun, menandakan rekor penjualan terbaik ke enambelas di Korea dan penjualan singel terbaik #1 pada 2007.&...

 

 

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne s'appuie pas, ou pas assez, sur des sources secondaires ou tertiaires (décembre 2023). Pour améliorer la vérifiabilité de l'article ainsi que son intérêt encyclopédique, il est nécessaire, quand des sources primaires sont citées, de les associer à des analyses faites par des sources secondaires. Pour les articles homonymes, voir Alan Walker et Walker. Alan Walker Alan Walker en 2016.Infor...

 

 

Motorsport track in Italy Misano World Circuit Marco SimoncelliGrand Prix Circuit (2008–present)LocationMisano Adriatico, Province of Rimini, Emilia-Romagna, ItalyTime zoneCET (UTC+1)CEST (DST)Coordinates43°57′41″N 12°41′0″E / 43.96139°N 12.68333°E / 43.96139; 12.68333Capacity60,000 (MotoGP 2016 Official Race Day Attendance 100,496)FIA Grade2Broke ground1970Opened4 August 1972; 51 years ago (1972-08-04)Former namesAutodromo Santa Monica ...

 

 

Railway line in Ishikawa Prefecture, Japan This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Nanao Line – news · newspapers · books · scholar · JSTOR (January 2018) (Learn how and when to remove this message) Nanao LineA JR West 521-100 series EMU used on the Nanao LineOverviewOwnerJR WestLocaleIshikawa Prefec...

Official language of Indonesia This article is about the official language of Indonesia. For an overview on all languages used in Indonesia, see Languages of Indonesia. IndonesianBahasa IndonesiaPronunciation[baˈha.sa in.doˈne.si.ja]Native toIndonesiaRegionIndonesia (as official language) Significant language speakers: East Timor, Malaysia, Singapore, Saudi Arabia, Australia, Taiwan, Netherlands, Japan, South Korea, United Arab Emirates, United States and othersEthnicityOver 1,...

 

 

نهائي كأس أوروبا 1967الحدثكأس أوروبا 1966–67 سلتيك إنتر ميلان 2 1 التاريخ25 مايو 1967الملعبالملعب الوطني، لشبونةالحكمكورت تسكينسكير(ألمانيا)الحضور45,000 → 1966 1968 ← نهائي كأس أوروبا 1967 هي مباراة كرة قدم جمعت بين نادي سلتيك الإسكتلندي وإنتر ميلان الإيطالي لتحديد بطل كأس أوروبا 1966–67،...

 

 

South Korean annual drama Awards 2021 MBC Drama AwardsOfficial logoDateDecember 30, 2021 (2021-12-30)SiteMBC Media Center Public Hall, Sangam-dong, Mapo-gu, SeoulHosted byKim Sung-jooOfficial website2021 MBC Drama AwardsHighlightsBest Drama SerialThe Red SleeveGrand Prize (Daesang)Namkoong Min - The VeilTelevision coverageNetworkMBCViewership Ratings: 7% Viewership: 1.33 million people[1] ← 2020 MBC Drama Awards 2022 → The 2021 MBC Drama Awards (Ko...

Artikel ini memerlukan pemutakhiran informasi. Harap perbarui dengan menambahkan informasi terbaru yang tersedia. WE LeagueBadan yang mengaturLiga Sepak Bola Profesional Wanita JepangNegaraJepangKonfederasiAFCDibentuk3 Juni 2020; 4 tahun lalu (2020-06-03)Musim perdana2021–2022Divisi1Jumlah tim11Tingkat pada piramida1Degradasi keTidak ada (2021–sekarang)Piala domestikPiala PermaisuriPiala ligaPiala WE LeaguePiala internasionalKejuaraan Klub Wanita AFCJuara bertahan ligaUrawa Red Diamo...

 

 

Nokia Lumia 510PembuatNokiaSeriNokia LumiaPenerusNokia Lumia 520[1]TerkaitNokia Lumia 610Nokia Lumia 710Nokia Lumia 800Nokia Lumia 900Dimensi1.207 mm (47,5 in) H 649 mm (25,6 in) W 1.146 mm (45,1 in) DBerat129 g (4,6 oz)Sistem OperasiWindows Phone 7.5 Mango (not able to be updated to Windows Phone 8)[2]Memori256 MB RAMPenyimpanan4 GB internal flash (Only 2.88 GB available to the user)[3]Kartu ExternalNoBateraiRechargeable 1300 mA...

 

 

1899–1901 anti-imperialist uprising in China For the rock band from London, see The Boxer Rebellion (band). Boxer RebellionPart of the century of humiliationA company of Boxers in 1901Date18 October 1899 – 7 September 1901LocationNorth China, Yellow SeaResult Eight-Nation Alliance victoryBelligerents Eight-Nation Alliance  British Empire  Russia  Japan  France  Germany  United States  Italy  Austria-Hungary  Netherlands Spain&...

У этого термина существуют и другие значения, см. Татары (значения). Основная статья: Татары Татары-мишари Современное самоназвание мишәрләр, мишәр татарлары, татарлар, mişärlär, mişär tatarları, tatarlar Численность и ареал Всего: 622,5 тыс. (1897), около 200 тыс. (1926)[1]  Россия  Татар...

 

 

American alternative rock band WarpaintWarpaint performing in 2011Background informationOriginLos Angeles, California, United StatesGenres Indie rock post-rock art rock dream pop psychedelic rock neo-psychedelia Years active2004 (2004)–presentLabelsManimalRough TradeMembers Emily Kokal Theresa Wayman Jenny Lee Lindberg Stella Mozgawa Past members Shannyn Sossamon David Orlando Matthew Pacey Michael Quinn Josh Klinghoffer Websitewarpaintwarpaint.com Warpaint is an American indie rock ba...