WhatsApp Facebook Twitter LinkedIn Mail

Software framework

Inhoudsopgave

  1. Definitie
  2. Structuur
  3. Ontwikkeling en gebruik
  4. Bibliotheek versus framework
  5. Voor- en nadelen

Wat is een software framework?

Een software framework, ook wel bekend als softwareraamwerk, is een geheel van softwarecomponenten dat gebruikt kan worden bij de ontwikkeling van software. Het raamwerk bestaat uit gecodeerde stukjes software die structuur en functionaliteiten bieden. Het is een basis waarop een groter softwarepakket ontwikkeld kan worden. Zo hoeven ontwikkelaars niet van nul te beginnen en kunnen ze zich concentreren op de inrichting van het systeem en de ontwikkeling van specifieke functionaliteiten.

Ter vergelijking een voorbeeld van een framework in de fysieke wereld: een bedrijf begint met de productie van post-its. Men besluit dat elke post-it 40 bij 30 millimeter moet meten. Voor de eerste post-it wordt dit afgemeten en geknipt. In de plaats van voor elke volgende post-it opnieuw te bedenken hoe deze eruit moet gaan zien, zal deze eerste post-it dienen als sjabloon. De kleur van de geproduceerde post-its kan afwijken, maar het model staat vast. Op dezelfde manier werkt een framework in de softwarewereld. In de plaats van dezelfde ontwikkeltaken voor elke applicatie opnieuw uit te voeren, voorziet het framework in een werkmethode en basiscode om op voort te borduren.

Volgens welke structuur werken frameworks?

De meeste frameworks werken volgens het MVC-ontwerppatroon. Deze afkorting staat voor Model-View-Controller. Hierbij wordt de architectuur van een applicatie in drie verschillende elementen opgedeeld:

  1. Het datamodel (model) geeft vorm aan de gegevens waarmee de applicatie werkt. Met het datamodel worden de data soms ook getransformeerd, zodat de applicatie ermee kan werken. De daadwerkelijke opslag van gegevens gebeurt dan weer in een database.
  2. De datapresentatie (view) zorgt voor de user interface van de applicatie: de visuele elementen.
  3. Via de applicatielogica (controller) zorgen ontwikkelaars ervoor dat de gebruiker de twee andere elementen kan gebruiken. Als een gebruiker een commando geeft via de interface, zorgt de controller voor de berekening en vertaling naar het datamodel. Daarna wordt ook het resultaat weer berekend en vertaald naar begrijpbare taal of afbeeldingen op het scherm van de gebruiker.

datamodel datapresentatie applicatielogica mvc

Wie ontwikkelt en gebruikt frameworks?

Frameworks worden ontwikkeld en getest door software-ontwikkelaars, zodat zeker is dat ze veilig zijn om te gebruiken. Deze stevige basis zorgt ervoor dat andere ontwikkelaars tijd besparen. Zij hoeven alleen nog maar toe te voegen of in te vullen wat ontbreekt. Je zou het kunnen vergelijken van het bouwen van een huis waarvan de fundamenten al door professionals gelegd en gekeurd zijn.

Een bekend voorbeeld van een bedrijf dat gebruik maakt van frameworks is Youtube. Dit bedrijf combineert het Django-framework met de programmeertaal Python. Deze werkwijze vereenvoudigt de opslag van video en de toevoeging van tags, categorieën, opmerkingen, etc.

Wat is het verband tussen frameworks en bibliotheken?

Frameworks worden nog wel eens verward met bibliotheken (libraries). In softwareland betekent een ‘bibliotheek’ namelijk ook een geheel van code waarmee de ontwikkeling van applicaties vereenvoudigd wordt. Via bibliotheken kunnen er ook functionaliteiten worden toegevoegd aan een applicatie, maar ze bieden niet de onderliggende softwarestructuur. Een voorbeeld van zo’n bibliotheek is fstream. Met behulp van deze bibliotheek kunnen binnenkomende en uitgaande documenten geordend, beheerd en bewerkt worden.

Terugkomend op de analogie met het maken van post-its: als dit volgens het systeem van bibliotheken zou gebeuren, zou één bibliotheek ervoor kunnen zorgen dat de post-its worden opgemeten, en zou er een andere nodig zijn voor het snijden. Door het ontbreken van structuur zou er niet vastgelegd zijn in welke volgorde deze twee taken moeten worden uitgevoerd.

Soms worden beide systemen gecombineerd. Hierbij zorgt het framework voor de basisstructuur, terwijl de bibliotheken voor specifieke functionaliteiten of taken zorgen. Microsoft gebruikt bijvoorbeeld de bibliotheek jQuery voor Visual Studio. Op deze manier kan er gewerkt worden met de frameworks ASP.NET AJAX en ASP.NET MVC.

Ook bij de ontwikkeling van applicaties met hoogwaardige visuele effecten en animatievideo’s wordt vaak een combinatie van frameworks en bibliotheken gebruikt. De filmproducenten Lucas Films en Next Limit Technologies gebruiken bijvoorbeeld het Qt framework, gecombineerd met de Qt bibliotheek. Zo ontwikkelen ze een geheel van basiselementen een -functionaliteiten waarmee ze geavanceerde interfaces kunnen maken.

Voor- en nadelen van het gebruik van frameworks

Voordelen

  • Voorziet in geïntegreerde functionaliteiten, structuur en een uniforme werkwijze. Dit maakt het eenvoudiger om softwaresystemen te ontwikkelen.
  • Voorkomt dubbele code. Dit is vooral een risico bij stukken code die steeds terugkomen, zoals die voor een koppeling met een database of de verificatie van formulieren.
  • Zorgt ervoor dat de ontwikkeling van software sneller, goedkoper en minder arbeidsintensief is. Dit omdat het framework al in de structuur en basisfunctionaliteiten voorziet.
  • Vermindert de hoeveelheid fouten en vereenvoudigt de oplossing ervan. Een framework wordt meestal ontwikkeld en getest door verschillende ontwikkelaars. Bovendien bestaan er veel online community’s en fora waar professionals elkaar kunnen helpen met vragen en antwoorden, en in discussie gaan over de beste manier van werken.

Nadelen

  • De leercurve is relatief lang. Dit omdat er goed begrepen moet worden hoe frameworks gestructureerd zijn en hoe de elementen ervan met elkaar communiceren.
  • De softwareapplicatie is over het algemeen zwaarder. Dit komt omdat er door het framework sowieso een basisstructuur en verschillende basisfunctionaliteiten aanwezig zijn, ook al zullen deze misschien niet gebruikt worden.
  • De werkwijze wordt opgelegd. Bij het gebruik van een framework is de werkwijze al op voorhand vastgelegd. Het is dus geen erg flexibele manier van software-ontwikkeling.
  • Bij de ontwikkeling van een klein softwarepakket is het niet de moeite om een framework te gebruiken. De kans is groot dat het inrichten van het framework meer tijd kost dan het van nul af ontwikkelen van de software.

Dit artikel als bron gebruiken? Klik en kopieer:

European Knowledge Center for Information Technology. (2021, 19 oktober). Software framework. ICT Portal. https://www.ictportal.nl/ict-lexicon/software-framework