Rahmen

In der Computerprogrammierung bedeutet ein Framework (auch bekannt als Software-Infrastruktur , Entwicklung der Infrastruktur , Entwicklungsumgebung , Basis von Anwendungen , für Anwendungen oder Software-Framework ) einen kohärenten Satz von Softwarekomponenten Structural, mit denen die Grundlagen und die Gliederung aller oder erstellt werden Teil einer Software ( Architektur ). Ein Framework unterscheidet sich von einer einfachen Softwarebibliothek hauptsächlich durch:

Die Frameworks werden daher entworfen und verwendet, um die Architektur der Anwendungssoftware , der Webanwendungen , der Middleware und der Softwarekomponenten zu gestalten . Die Frameworks werden vom Computer erworben und in auf dem Markt befindliche Softwareanwendungen integriert. Sie werden daher selten von einem Endbenutzer separat gekauft und installiert.

Beschreibung

Ein Framework ist eine Reihe von Tools und Softwarekomponenten, die gemäß einem Architekturplan und Mustern organisiert sind , wobei das Ganze ein "Skelett" eines Programms bildet oder fördert, eine Leinwand. Es wird häufig in Form einer Softwarebibliothek bereitgestellt und vom Plan der Zielarchitektur des Frameworks begleitet .

Ein Framework soll Programmierern bei ihrer Arbeit helfen. Die Organisation des Frameworks zielt auf die maximale Produktivität des Programmierers ab, der es verwenden wird - eine Garantie für niedrigere Kosten für die Erstellung und Wartung des Programms. Der genaue Inhalt des Frameworks wird durch den Programmtyp und die Zielarchitektur bestimmt, für die es entwickelt wurde.

Es gibt verschiedene Arten von Frameworks  :

  1. Systeminfrastruktur Rahmen : Entwicklung von Betriebssystemen, grafische Schnittstellen , Kommunikationstools (Beispiel: .Net Framework , Struts );
  2. Framework der Integrations- Middleware ( Middleware ) zum Zusammenschluss heterogener Anwendungen. Bereitstellung verschiedener Technologien in Form einer einzigen Schnittstelle;
  3. Business - Frameworks : Anwendungen speziell für den BusinessSektor des Unternehmens zu entwickeln;
  4. Frameworks des Content Managements  : sind die Grundlagen eines Content Management Systems - für die Erstellung, Sammlung, Klassifizierung, Speicherung und Veröffentlichung von "gescannten Objekten".

Die Hauptvorteile dieser Frameworks sind die Wiederverwendung ihres Codes, die Standardisierung des Software-Lebenszyklus (Spezifikation, Entwicklung, Wartung, Evolution) und die Formalisierung einer Architektur, die an die Anforderungen des Unternehmens angepasst ist. Sie bauen auf den Erfahrungen früherer Entwicklungen auf.

Objekte

Bei der objektorientierten Programmierung besteht ein Framework normalerweise aus übergeordneten Klassen, die durch Vererbung entsprechend den spezifischen Anforderungen jeder Software, die das Framework verwendet , abgeleitet und erweitert werden . Mit einem objektorientierten Framework kann der Programmierer, der das Framework verwendet, die Hauptelemente des Programms mithilfe des Vererbungsmechanismus durch Erweiterung anpassen  : Erstellen Sie neue Klassen , die alle vom Framework implementierten und zusätzlich eigene Funktionen enthalten Funktionen, die vom Programmierer entsprechend den spezifischen Anforderungen seines Programms erstellt werden. Der Vererbungsmechanismus ermöglicht es auch, in den Klassen des Frameworks vorhandene Funktionen zu transformieren .

Umkehrung der Kontrolle

Während Klassenbibliotheken normalerweise passiv sind: Klassenoperationen werden bei Bedarf von dem Programm ausgeführt, das sie verwendet, sind Frameworks normalerweise aktiv: Der Ablauf von Operationen in einem Programm wird durch das verwendete Framework gesteuert, durch Mechanismen wie Rückrufe und Ereignisse , basierend auf das "Ruf mich nicht an, ich rufe dich an." ""

Die Umkehrung der Steuerung ist Teil der typischen Architektur eines Frameworks .

französische Übersetzung

In der Computerprogrammierung wird ein Framework in eine Softwarestruktur übersetzt, obwohl der Begriff Framework immer noch meistens verwendet wird. Andere Versuche, den Begriff zu franken, wurden unternommen; Dies ist manchmal in Entwicklungsumgebungen zu finden , die von der Kommission für die französische Sprachanreicherung empfohlen werden , und  für Anwendungen , Anwendungsgrundlagen oder Software-Frameworks , die vom Amt für französische Sprache in Quebec empfohlen werden .

Bitte beachten Sie, dass ein Framework nicht als Plattform betrachtet werden sollte , sofern es keine System- oder Anwendungsausführungsumgebung integriert .

Beispiele

Einige Beispiele
Nachname Benutzen Zielarchitektur Sprache Autor Lizenz
ActionScript-Gießerei Internetanwendung Adobe Flex ActionScript und Java ServeBox
Apache Cocoon Webanwendung - Servlet ? Java , XML Apache Software Gratis Software
Frühling Internetanwendung Plattformübergreifend Java Frühlingsquelle Gratis Software
Apache Struts Internetanwendung Model View Controller Java Apache Software Gratis Software
Twitter Bootstrap Internetanwendung Model View Controller HTML / CSS / JAVASCRIPT Twitter MIT-Lizenz
Katalysator Anwendungssoftware Model View Controller Perl Gratis Software
Kakao Anwendungssoftware Kakao Ziel c Apfel
CubicWeb Semantic Web Entwicklungsplattform Plattformübergreifend Python Logilab LGPL
Django Internetanwendung Model View Controller Python Django Software Foundation Gratis Software
Dojo Applet AJAX Javascript Dojo-Stiftung
Eclipse Modeling Framework (*) Datenmodellierung Plattformübergreifend (öffnen) Eclipse Foundation Gratis Software
Eclipse RCP Rich Client-Plattform IDE Eclipse Platform , Multiplattform (öffnen) Eclipse Foundation Gratis Software
eZ Publish Internetanwendung Content-Management-System PHP eZ Systems AS Gratis Software
JavaServer-Gesichter Internetanwendung Komponente Java Gratis Software
FxEngine Framework digitale Signalverarbeitung , Plugin Filter und Röhrchen C ++ SMProzess
Grale Internetanwendung Model View Controller Groovy Graeme Rocher, Guillaume Laforge, Marc Palmer, Dierk Koenig und Steven Devijver
Google Guice Internetanwendung Plattformübergreifend Java Bob Lee, Kevin B., Jesse Wilson, Christian Gruber Gratis Software
Überwintern Persistenz & Mapping Java-Persistenz-API Java JBoss Gratis Software
Java SE (**) generisches Framework für Rich Client Platform Plattformübergreifend Java
Scala
JScheme , Implementierung von Scheme
Clojure (Dialekt von Lisp)
JRuby
Jython
Rhino (JavaScript-Engine)
Sun Microsystems dann Oracle Corporation Gratis Software
Java EE (**) professioneller Rahmen mit verteilter Unterstützung
Java ME (**) Framework für mobile Anwendungen
JavaFX (**) Framework für Rich Internet Application
Kivy Framework für mobile Anwendungen Plattformübergreifend Python
Cython
Kivy Organisation Gratis Software
Laravel Web Applikationen Multiplattform ,
Model-View-Controller
PHP Laravel Entwicklungsteam MIT-Lizenz
MARF Signal- und Sprachverarbeitung Pipeline Java Sergei Mokhov, Stephen Sinclair
Microsoft Foundation Class Anwendungssoftware Model View Controller C ++ Microsoft Inhaber
.Net (**) Anwendungssoftware , Webanwendung , Softwarekomponente ASP.NET C # , Visual Basic .NET Microsoft Inhaber
Ruby on Rails Internetanwendung Model View Controller Rubin David Heinemeier Hansson und Gratis Software
Symfony Internetanwendung Model View Controller PHP Sensio Labs Gratis Software
SoJo FrameWork Internetanwendung Model View Controller HTML / CSS InGamesStudio Gratis Software
TopLink Persistenz & Mapping Java-Persistenz-API Java Oracle Corporation
W3.CSS Internetanwendung Google Material Design CSS W3Schools Gratis Software
Zend Framework Internetanwendung Model View Controller PHP Zend Technologies Gratis Software
Zope Content Management Zope Python Zope Corporation Gratis Software

(*) Bestimmte Frameworks wie Eclipse stellen mehr Meta- Frameworks oder Frameworks von Frameworks dar , sofern sie es gemäß den auf ihnen installierten Modulen ermöglichen, sich an verschiedenen IT-Aktivitäten neu auszurichten.

(**) Microsoft .NET und die Java-Plattformen können gleichgültig als Frameworks oder als Softwareplattformen angesehen werden, je nachdem, ob man ihre einzigen Entwicklungsbibliotheken oder ihre Ausführungsumgebung betrachtet.

Anmerkungen und Referenzen

  1. "  Software-Framework oder -Infrastruktur: Definition und Übersetzung  ", JDN ,23. April 2018( online lesen , konsultiert am 24. Juni 2018 )
  2. Sandy Hacyan, „  Das Framework: eine strukturierende Entwicklungsbasis  “ , auf journaldunet.com , Le Journal du Net ,3. April 2008(abgerufen am 2. Mai 2017 )
  3. Kommission zur Bereicherung der französischen Sprache , "  Umwelt der Entwicklung  " , FranceTerme , Kulturministerium (abgerufen am 22. Januar 2020 ) .
  4. "  Rahmen der Anträge  " , Terminologie des Grand Dictionnaire , Office québécois de la langue française (abgerufen am 22. Januar 2020 ) .
  5. (en) Ken Chazotte, Erstellen Sie Ihr eigenes Framework mit Visual FoxPro , Hentzenwerke, 2004 ( ISBN  9781930919532 ) .
  6. (in) RJ Townsend Foundation Drupal 7: Erfahren Sie, wie Sie mit dem Drupal Framework schnell funktionsreiche Websites erstellen, Apress - 2010 ( ISBN  9781430228080 )
  7. (in) Nicolas Guelfi, Egidio Astesiano und Gianna Reggio Wissenschaftliches Engineering für verteilte Java-Anwendungen , Springer - 2003 ( ISBN  9783540006794 )
  8. (in) Douglas C. Schmidt und Stephen D. Huston, C ++ - Netzwerkprogrammierung: Systematische Wiederverwendung mit ACE und Frameworks , Addison-Wesley - 2003 ( ISBN  9780201795257 )
  9. (in) Stephen D. Huston, James Johnson CE, Umar Syyid, Leitfaden für ACE-Programmierer: Praktische Entwurfsmuster für die Netzwerk- und Systemprogrammierung , Addison-Wesley - 2004 ( ISBN  9780201699715 )

Siehe auch

Zum Thema passende Artikel

Externer Link