Rammeverk

I dataprogrammering betyr et rammeverk (også kjent som programvareinfrastruktur , utvikling av infrastruktur , utviklingsmiljø , applikasjonsbase , for applikasjoner eller programvarerammeverk ) et sammenhengende sett med programvarekomponenter strukturelt, brukt til å lage grunnlag og omriss for alle eller del av en programvare ( arkitektur ). Et rammeverk skiller seg fra et enkelt programvarebibliotek, hovedsakelig ved:

De rammer er derfor utformet og brukes til å forme den arkitekturen til programvaren , i web-applikasjoner , er mellomvare og programvarekomponenter . De rammene er kjøpt av en datamaskin og innlemmet i programmer på markedet, de er derfor sjelden kjøpt og installert separat av en sluttbruker.

Beskrivelse

Et rammeverk er et sett med verktøy og programvarekomponenter organisert i samsvar med en arkitektonisk plan og mønstre , som hele danner eller fremmer et "skjelett" av programmet, et lerret. Det leveres ofte i form av et programvarebibliotek og ledsages av planen for rammens målarkitektur .

Et rammeverk er designet for å hjelpe programmerere i arbeidet. Organiseringen av rammeverket tar sikte på maksimal produktivitet for programmereren som vil bruke den - garanti for lavere kostnader for konstruksjon og vedlikehold av programmet. Det nøyaktige innholdet i rammeverket dikteres av typen program og målarkitekturen det er designet for.

Det finnes forskjellige typer rammer  :

  1. -nett og dettes infrastruktur rammeverk : å utvikle driftssystemer , grafiske grensesnitt , kommunikasjonsverktøy (Eksempel: NET rammeverket , struts );
  2. rammeverk for integrering mellomvare ( mellomvare ) for å samle heterogene applikasjoner. Å tilby forskjellige teknologier i form av et enkelt grensesnitt;
  3. forretnings rammer : å utvikle applikasjoner spesielt for næringslivet av virksomheten;
  4. rammer for innholdsadministrasjon  : er grunnlaget for et innholdsstyringssystem - for opprettelse, samling, klassifisering, lagring og publisering av "skannet eiendom."

De viktigste fordelene med disse rammene er gjenbruk av koden, standardiseringen av programvarens livssyklus (spesifikasjon, utvikling, vedlikehold, evolusjon), de gjør det mulig å formalisere en arkitektur tilpasset selskapets behov. De bygger på erfaringen fra tidligere utvikling.

Objekter

I objektorientert programmering , et rammeverk består typisk av moder klasser som vil bli avledet og utvidet ved arv henhold til de spesifikke behovene til hver programvare som bruker rammeverket . Med et objektorientert rammeverk vil programmereren som bruker rammeverket være i stand til å tilpasse hovedelementene i programmet ved å utvide det, ved hjelp av arvemekanismen  : lage nye klasser som inneholder alle funksjonene som rammeverket implementerer , og i tillegg dets egne funksjonaliteter, laget av programmereren i henhold til de spesifikke behovene til programmet hans. Arvemekanismen gjør det også mulig å transformere funksjoner som finnes i klassene i rammeverket .

Inversjon av kontroll

Mens klassebiblioteker vanligvis er passive: klasseoperasjoner utføres på forespørsel fra programmet som bruker dem, er rammene vanligvis aktive: strømmen av operasjoner i et program styres av rammeverket det bruker, ved mekanismer som tilbakeringing og hendelser , basert på den "ikke kall meg, jeg ringer deg." "

Inversjon av kontroll er en del av den typiske arkitekturen til et rammeverk .

fransk oversettelse

I dataprogrammering blir et rammeverk oversatt som en programvarestruktur, selv om begrepet rammeverk fortsatt brukes mest. Andre forsøk på å frankisere begrepet er gjort; dermed noen ganger funnet under utviklingsmiljø , anbefalt av Kommisjonen for fransk språkanriking , og  for applikasjoner , applikasjonsbase eller programvarerammensetning anbefalt av Kontoret for det franske språket i Quebec .

Vær oppmerksom på at et rammeverk ikke bør betraktes som en plattform , i den grad det ikke integrere systemet eller programmet execution environment .

Eksempler

Noen eksempler
Etternavn Bruk Målarkitektur Språk Forfatter Tillatelse
ActionScript støperi Webapplikasjon Adobe flex ActionScript og Java ServeBox
Apache Cocoon webapplikasjon - servlet ? Java , XML Apache-programvare Gratis programvare
Vår Webapplikasjon Kryssplattform Java Vårkilde Gratis programvare
Apache Struts Webapplikasjon Model-View-Controller Java Apache-programvare Gratis programvare
Twitter Bootstrap Webapplikasjon Model-View-Controller HTML / CSS / JAVASCRIPT Twitter MIT-lisens
Katalysator applikasjonsprogramvare Model-View-Controller Perl Gratis programvare
Kakao applikasjonsprogramvare Kakao Mål C eple
CubicWeb Semantisk nettutviklingsplattform Kryssplattform Python Logilab LGPL
Django Webapplikasjon Model-View-Controller Python Django Software Foundation Gratis programvare
Dojo applet AJAX Javascript Dojo Foundation
Formørkingsrammer for formørkelse (*) datamodellering Kryssplattform (åpen) Eclipse Foundation Gratis programvare
Formørkelse RCP Rik klientplattform IDE Eclipse Platform , Multiplatform (åpen) Eclipse Foundation Gratis programvare
eZ Publish Webapplikasjon system for innholdshåndtering PHP eZ Systems AS Gratis programvare
JavaServer Faces Webapplikasjon Komponent Java Gratis programvare
FxEngine Framework digital signalbehandling , plugin Filtre og rør C ++ SMProsess
Gral Webapplikasjon Model-View-Controller Groovy Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig og Steven Devijver
Google Guice Webapplikasjon Kryssplattform Java Bob Lee, Kevin B, Jesse Wilson, Christian Gruber Gratis programvare
Dvalemodus utholdenhet og kartlegging Java Persistence API Java JBoss Gratis programvare
Java SE (**) generisk rammeverk for Rich Client Platform Kryssplattform Java
Scala
JScheme , implementering av Scheme
Clojure (dialekt av Lisp)
JRuby
Jython
Rhino (JavaScript-motor)
Sun Microsystems deretter Oracle Corporation Gratis programvare
Java EE (**) faglig ramme med distribuert støtte
Java ME (**) rammeverk for mobilapplikasjon
JavaFX (**) rammeverk for Rich Internet Application
Kivy rammeverk for mobilapplikasjon Kryssplattform Python
Cython
Kivy organisasjon Gratis programvare
Laravel webapplikasjoner Multiplatform ,
Model-View-Controller
PHP Laravel utviklingsteam MIT-lisens
MARF signal og språkprosesserings rørledning Java Sergei Mokhov, Stephen Sinclair
Microsoft Foundation Class applikasjonsprogramvare Model-View-Controller C ++ Microsoft Eieren
.Net (**) applikasjonsprogramvare , webapplikasjon , programvarekomponent ASP.NET C # , Visual Basic .NET Microsoft Eieren
Ruby on Rails Webapplikasjon Model-View-Controller Rubin David Heinemeier Hansson og Gratis programvare
Symfony Webapplikasjon Model-View-Controller PHP Sensio Labs Gratis programvare
SoJo FrameWork Webapplikasjon Model-View-Controller HTML / CSS InGamesStudio Gratis programvare
TopLink utholdenhet og kartlegging Java Persistence API Java Oracle Corporation
W3.CSS Webapplikasjon Google Material Design CSS W3Skoler Gratis programvare
Zend Framework Webapplikasjon Model-View-Controller PHP Zend Technologies Gratis programvare
Zope Filbehandling Zope Python Zope Corporation Gratis programvare

(*) Visse rammeverk som Eclipse utgjøre mer meta- rammer eller rammer av rammer , for så vidt som de tillater, i henhold til de moduler som er montert på dem, for å reorientere seg mot ulike IT aktiviteter.

(**) Microsoft .NET og Java-plattformene kan sees likegyldig som rammer , eller som programvareplattformer, avhengig av om man anser deres eneste utviklingsbiblioteker eller deres utførelsesmiljø.

Merknader og referanser

  1. "  Rammeverk eller infrastruktur for programvare: definisjon og oversettelse  ", JDN ,23. april 2018( les online , konsultert 24. juni 2018 )
  2. Sandy Hacyan, “  The framework: a structuring development base  ” , på journaldunet.com , Le Journal du Net ,3. april 2008(åpnet 2. mai 2017 )
  3. kommisjon for anriking av det franske språket , "  miljø for utvikling  " , FranceTerme , Kulturdepartementet (åpnes 22 januar 2020 ) .
  4. "  framework of applications  " , Le Grand Dictionnaire terminologique , Office québécois de la langue française (åpnet 22. januar 2020 ) .
  5. (en) Ken Chazotte, Build Your Own Framework with Visual FoxPro , Hentzenwerke, 2004, ( ISBN  9781930919532 ) .
  6. (in) RJ Townsend Foundation Drupal 7: Lær hvordan du bruker Drupal Framework til raskt å bygge funksjonsrike nettsteder , Apress - 2010 ( ISBN  9781430228080 )
  7. (i) Nicolas Guelfi, Egidio Astesiano og Gianna Reggio Vitenskapelig engineering for distribuerte Java-programmer , Springer - 2003 ( ISBN  9783540006794 )
  8. (in) Douglas C. Schmidt og Stephen D. Huston, C ++ Network Programming: Systematic reuse with ACE and Frameworks , Addison-Wesley - 2003 ( ISBN  9780201795257 )
  9. (in) Stephen D. Huston, James Johnson CE, Umar Syyid, ACE-programmeringsveiledningen: praktiske designmønstre for nettverks- og systemprogrammering , Addison-Wesley - 2004 ( ISBN  9780201699715 )

Se også

Relaterte artikler

Ekstern lenke