Framework (nogle gange framework ; anglicisme , neologisme fra framework - skelet , frame, frame, struktur) - en softwareplatform, der bestemmer strukturen af et softwaresystem; software , der letter udvikling og integration af forskellige komponenter i et stort softwareprojekt.
Ordet "framework" bruges også, og nogle forfattere bruger det som det vigtigste, herunder slet ikke baseret på den engelske analog [1] [2] [3] . Du kan også tale om rammemetoden [3] som en tilgang til at bygge programmer, hvor enhver programkonfiguration er bygget op af to dele:
"Framework" adskiller sig fra konceptet med et bibliotek ved, at et bibliotek kan bruges i et softwareprodukt blot som et sæt af subrutiner med lignende funktionalitet, uden at det påvirker softwareproduktets arkitektur og uden at pålægge det nogen begrænsninger. Mens "rammen" dikterer reglerne for opbygning af applikationsarkitekturen, indstiller standardadfærden i det indledende udviklingstrin - "rammen", som skal udvides og ændres i henhold til de specificerede krav. Et eksempel på softwareramme er CMF ( Content Management Framework ), og et eksempelbibliotek er et e -mail- modul .
I modsætning til et bibliotek, der kombinerer et sæt af lignende funktionalitet, kan et "rammeværk" også indeholde et stort antal biblioteker med forskellige emner.
Nøgleforskellen mellem en "ramme" og et bibliotek er inversion af kontrol : brugerkoden kalder biblioteksfunktioner (eller klasser) og overtager kontrollen efter opkaldet. I "rammen" kan brugerkoden implementere specifik adfærd, der er indlejret i rammens mere generelle - "abstrakte" kode. I dette tilfælde kalder "rammen" funktionerne ( klasser ) af brugerkoden [4] .
Dette er rammen for et softwaresystem (eller undersystem). Kan omfatte: hjælpeprogrammer, kodebiblioteker, scriptsprog og anden software , der letter udviklingen og integrationen af forskellige komponenter i et stort softwareprojekt. Normalt sker tilknytningen ved brug af en enkelt API .
Eksempler: web frameworks som Zend Framework, Laravel eller Symfony PHP frameworks eller Django skrevet i Python .
En af de vigtigste fordele ved at bruge "wireframe" applikationer er applikationens "standard" struktur. "Frames" blev populær med fremkomsten af grafiske brugergrænseflader , som havde en tendens til at implementere en standardramme for applikationer. Med deres brug blev det meget lettere at skabe værktøjer til automatisk oprettelse af grafiske grænseflader, da strukturen af den interne implementering af applikationskoden blev kendt på forhånd. Objektorienterede programmeringsteknikker bruges typisk til at tilvejebringe et framework (for eksempel kan dele af en applikation arves fra framework-basisklasser).
En af de første kommercielle applikationsrammer var MacApp , skrevet af Apple til " Macintosh ". Oprindeligt oprettet med en udvidet (objektorienteret) version af " Object Pascal "-sproget, blev det efterfølgende omskrevet i " C++ ". Andre populære "Macintosh" rammer inkluderede:
I varierende grad er applikationsrammer " Cocoa " til Mac OS X , såvel som gratis rammer, der findes som en del af Mozilla , OpenOffice.org , GNOME og KDE- projekterne .
Microsoft har skabt et lignende produkt til " Windows " kaldet Microsoft Foundation Classes (MFC). I øjeblikket er Microsofts flagskibsprodukt til softwareudvikling " .NET ".
På tværs af platforme applikationsrammer (til Linux , Macintosh og Windows-operativsystemer) er for eksempel widget toolkit , wxWidgets , Qt , .NET , MyCoRe eller FOX toolkit .
Et abstrakt begreb om struktur, der bruges i forskning til at identificere mulige måder at løse et problem på eller repræsentere en idé.
En "ramme" er defineret som et sæt konkrete og abstrakte klasser og definitioner af, hvordan de interagerer. Konkrete klasser implementerer normalt gensidige relationer mellem klasser. Abstrakte klasser er udvidelsespunkter, hvor rammer kan bruges eller tilpasses.
Et udvidelsespunkt er den "del" af rammen, som der ikke er givet nogen implementering for. Følgelig består rammen af en konceptuel model af konceptuelle klasser , og rammen af et softwaresystem består af klasser af et alment programmeringssprog.
Processen med at skabe en ramme er at vælge en delmængde af opgaverne i problemet og deres implementeringer. I løbet af implementeringer er generelle problemløsningsværktøjer indeholdt i konkrete klasser, og mutable værktøjer flyttes til udvidelsespunkter.