# Functioneel ontwerp

Een functioneel ontwerp (FO) is het onderdeel in een softwareontwikkelingsproces waarin de te programmeren functionaliteit is beschreven, in gewone mensentaal. Het is een document waaraan in de regel diverse medewerkers een bijdrage leveren. Het maakt samen met het gegevensmodel deel uit van het systeemontwerp, ook wel logisch ontwerp genoemd. In het softwareontwikkelingsproces komt het systeemontwerp na de haalbaarheidsstudie (in sommige softwareontwikkelmethoden de 'definitiestudie') en vóórdat de programmeurs aan de slag gaan. Het kan onder meer gaan om het automatiseren of verbeteren van processen en applicaties, het maken van apps, websites, webpagina's of overzichten. Een FO kan zowel een heel systeem beschrijven als één onderdeel of een groep van onderdelen.
Een FO bevat de uitwerking van de gewenste functionaliteit en is daarmee als het ware de blauwdruk van wat het te bouwen of aan te passen informatiesysteem moet gaan doen. Het bestaat voor een groot deel uit tekst, maar bevat ook schema's, diagrammen en andere visuele weergaves van de beoogde processen. Een FO is een essentieel onderdeel van een softwareontwikkelingstraject en kan niet worden overgeslagen. Het is hèt communicatiemiddel tussen opdrachtgever, gebruikers (indien van toepassing), programmeurs en andere betrokkenen. De opdrachtgever en (toekomstige) gebruikers leveren input: de eisen en wensen voor het systeem. De opdrachtgever fiatteert het FO uiteindelijk, waarmee hij/zij bevestigt dat dit inderdaad is wat moet kunnen. Aan de hand van het goedgekeurde FO worden de planningen gemaakt en de begroting opgesteld of bijgesteld. Vervolgens beschouwen de programmeurs het FO als hun opdracht voor de te maken programma's; een FO voorkomt zoveel mogelijk eigen interpretaties door de programmeurs en daarmee vertraging omdat de gebruikers iets anders voor ogen hadden dan wat de programmeurs interpreteerden.

## Betrokkenen bij het maken van een Functioneel Ontwerp

Bij het tot stand komen van een FO zijn in de regel diverse medewerkers betrokken:
* Eén of meer informatie-analisten of functioneel analisten, die de spin zijn in het web in deze fase van het softwareontwikkelingsproces. Zij onderzoeken de huidige situatie, signaleren problemen daarin, peilen de informatiebehoefte en houden daarvoor interviews met gebruikers, analyseren en structureren de gewenste informatie en functies (de functionele analyse met als uitkomst de eisen, wensen en specificaties), stellen het FO op en verzorgen de terugkoppeling aan de projectleider.
* De gebruikers die input leveren door hun problemen, eisen en wensen kenbaar te maken en door de voorlaatste versie van het te FO beoordelen: zijn hun eisen en wensen goed verwoord, is dit wat zij willen.
* De projectleider die het project aanstuurt en de terugkoppeling aan de stuurgroep verzorgt.
* De stuurgroep die de opdracht verstrekt en na afloop, o.a. op basis van het FO, besluit over het vervolg van het traject.

## Opbouw van een Functioneel Ontwerp

De opbouw van een FO kan als volgt zijn, afhankelijk van de omvang en aard van het project, de opdracht en de gehanteerde ontwikkelmethode:
* Inhoudsopgave
* Inleiding, met in ieder geval:
** Samenvatting
** Opdrachtgever
** Doelgroep
** Doelstelling/bedoeling/opdracht: waarom moet dit proces gemaakt worden, wat is het probleem dat moet worden opgelost?
** Uitgangspunten, afbakening en definities van de gehanteerde termen; een tekst mag niet dubbelzinnig uitgelegd kunnen worden
* Huidige situatie en knelpunten
* Programma van eisen en wensen
* Analyse van de problemen en wensen
* De functies, de beschrijvingen ervan, hun onderlinge samenhang èn de samenhang met de gegevens uit het gegevensmodel; in de regel wordt deze samenhang ook visueel gepresenteerd, bijvoorbeeld via:
** Wireframe, een visueel hulpmiddel met een bouwtekening van een te bouwen website of applicatie, met een overzicht van de verschillende onderdelen op die website of applicatie weergeeft; dit wordt ook wel screen blueprint, website wireframe of mockup genoemd.
** Functiemodel, een gestructureerde weergave van de functies
** Data flow diagram, waarin zowel functies als de daarvoor benodigde gegevens zijn opgenomen.
* Opmerkingen voor design en techniek
* Geraadpleegde literatuur en de namen van de geïnterviewden

#### Voorbeelden van visuele overzichten

* Wireframe
* Functiemodel
* Data Flow diagram

## Geraadpleegde bronnen

* https://web.archive.org/web/20141216195343/https://www.burst-digital.com/nl/artikelen/functioneel-ontwerp-onmisbaar-tijdens-webprojecten/
* https://www.frank-a-do.nl/weblog/wat-is-een-functioneel-ontwerp-fo/
* ↑ Meer informatie: https://www.frankwatching.com/archive/2009/11/23/wireframes-de-bouwtekening-van-een-website/ (uit 2009). Gearchiveerd op 28 mei 2023.