Ramverk

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 20 februari 2022; kontroller kräver 7 redigeringar .

Ramverk (ibland ramverk ; anglicism , neologism från ramverk  - skelett , ram, ram, struktur) - en mjukvaruplattform som bestämmer strukturen för ett mjukvarusystem; programvara som underlättar utveckling och integration av olika komponenter i ett stort programvaruprojekt.

Ordet "framework" används också, och vissa författare använder det som det huvudsakliga, inklusive inte baserat alls på den engelska analogen [1] [2] [3] . Du kan också tala om rammetoden [3] som ett tillvägagångssätt för att bygga program, där alla programkonfigurationer är uppbyggda av två delar:

  1. Den permanenta delen är en ram som inte ändras från konfiguration till konfiguration och bär bon där den andra, variabla delen är placerad;
  2. Pluggbara moduler (eller expansionspunkter).

Skillnader från biblioteket

"Framework" skiljer sig från konceptet med ett bibliotek genom att ett bibliotek kan användas i en mjukvaruprodukt helt enkelt som en uppsättning subrutiner med liknande funktionalitet, utan att påverka mjukvaruproduktens arkitektur och utan att införa några begränsningar för den. Medan "ramverket" dikterar reglerna för att bygga applikationsarkitekturen, ställer du in standardbeteendet i det inledande utvecklingsskedet - "ramverket", som kommer att behöva utökas och ändras enligt de specificerade kraven. Ett exempel på mjukvaruramverk är CMF ( Content Management Framework ) och ett exempelbibliotek är en e -postmodul .

Dessutom, till skillnad från ett bibliotek, som kombinerar en uppsättning liknande funktioner, kan ett "ramverk" innehålla ett stort antal bibliotek med olika ämnen.

Den viktigaste skillnaden mellan ett "ramverk" och ett bibliotek är inversion av kontroll : användarkoden anropar biblioteksfunktioner (eller klasser) och tar kontroll efter samtalet. I "ramverket" kan användarkoden implementera specifikt beteende som är inbäddat i ramverkets mer allmänna - "abstrakta" kod. I detta fall anropar "ramverket" funktionerna ( klasserna ) för användarkoden [4] .

Programvara systemramverk

Detta är ramverket för ett mjukvarusystem (eller delsystem). Kan innehålla: verktygsprogram, kodbibliotek, skriptspråk och annan programvara som underlättar utveckling och integration av olika komponenter i ett stort programvaruprojekt. Vanligtvis sker kopplingen genom användning av ett enda API .

Exempel: webbramverk som Zend Framework, Laravel eller Symfony PHP-ramverk eller Django skrivet i Python .

Application framework

En av de största fördelarna med att använda "wireframe"-applikationer är applikationens "standard" struktur. "Frames" blev populärt med tillkomsten av grafiska användargränssnitt , som tenderade att implementera ett standardramverk för applikationer. Med deras användning blev det mycket lättare att skapa verktyg för att automatiskt skapa grafiska gränssnitt, eftersom strukturen för den interna implementeringen av applikationskoden blev känd i förväg. Objektorienterade programmeringstekniker används vanligtvis för att tillhandahålla ett ramverk (till exempel kan delar av en applikation ärvas från ramverksbasklasser).

En av de första kommersiella tillämpningsramverken var MacApp , skriven av Apple för " Macintosh ". Ursprungligen skapad med en utökad (objektorienterad) version av " Object Pascal "-språket, skrevs den sedan om i " C++ ". Andra populära "Macintosh"-ramverk inkluderar:

I varierande grad är programramverk " Cocoa " för Mac OS X , såväl som fria ramverk som finns som en del av Mozilla- , OpenOffice.org- , GNOME- och KDE- projekten .

Microsoft har skapat en liknande produkt för " Windows " som heter Microsoft Foundation Classes (MFC). För närvarande är Microsofts flaggskeppsprodukt för mjukvaruutveckling " .NET ".

Plattformsövergripande applikationsramverk (för operativsystemen Linux , Macintosh och Windows) är till exempel widget toolkit , wxWidgets , Qt , .NET , MyCoRe eller FOX toolkit .

Conceptual Model Framework

Ett abstrakt strukturbegrepp som används i forskning för att identifiera möjliga sätt att lösa ett problem eller representera en idé.

Implementering av ramverket

Ett "ramverk" definieras som en uppsättning konkreta och abstrakta klasser och definitioner av hur de interagerar. Konkreta klasser implementerar vanligtvis ömsesidiga relationer mellan klasser. Abstrakta klasser är förlängningspunkter där ramverk kan användas eller anpassas.

En förlängningspunkt  är den "del" av ramverket för vilken ingen implementering ges. Följaktligen består ramverket för en konceptuell modell av konceptuella klasser och ramverket för ett mjukvarusystem består av klasser av ett allmänt programmeringsspråk.

Processen att skapa ett ramverk är att välja en delmängd av problemets uppgifter och deras implementeringar. Under implementeringarna finns allmänna problemlösningsverktyg i konkreta klasser och föränderliga verktyg flyttas till förlängningspunkter.

Se även

Anteckningar

  1. V. Faronov. Skapa applikationer med C#, Moscow, EKSMO, 2008, sid. 12
  2. Metoder och teknologier för IS omarbetning. K. V. Akhtyrchenko, T. P. Sorokvasha Arkiverad 3 augusti 2009 på Wayback Machine , Institute for System Programming RAS
  3. 1 2 Gorbunov-Posadov M. M. Utökningsbara program . - M . : Polyptych, 1999. - 336 sid. — ISBN 5-901-11801-4 . Arkiverad 20 september 2012 på Wayback Machine
  4. Martin Fowler. InversionOfControl  . _ Hämtad 5 november 2013. Arkiverad från originalet 23 januari 2011.