Skip to main content

Bronnenoverzicht

Doel

Dit bronnenoverzicht beschrijft de duurzame bronsets die voor het Functioneel Ontwerp van OefenHub worden gebruikt.

Het overzicht is bedoeld als leeswijzer en bronkaart. Het vervangt geen broninhoud en maakt geen nieuwe functionele regels aan. De bronhoudende details blijven staan in usecases, database-informatie, ontwerpbronnen, schermdocumentatie, oefenmodule-documentatie, architectuurdocumentatie en andere duurzame documentatiebronnen.

Dit document ondersteunt drie doelen:

  • duidelijk maken welke bronsets duurzaam zijn;
  • aangeven waarvoor elke bronset leidend is;
  • voorkomen dat tijdelijke werkbestanden, zipnamen of oude extractiestatussen als blijvende FO-bron worden behandeld.

Bronpositie

Het Functioneel Ontwerp is een samenhangend functioneel ontwerpdocument. Het beschrijft de functionele betekenis, domeingrenzen, rolcontexten, autorisatieprincipes, lifecycle-afspraken en samenhang tussen de bronsets.

Het FO is niet de enige bron van waarheid voor alle details.

LaagBronpositie
FO-hoofdstukkenBeschrijven functionele samenhang, domeincontracten, grenzen en ontwerpkeuzes.
UsecasesBeschrijven concrete procesflows, alternatieve flows, actoracties en functionele voorwaarden.
Database-informatieBeschrijft domeinobjecten, brondata, readmodels, history, audit en opslaggrenzen.
OntwerpbronnenBeschrijven business rules, statusmodellen, autorisatiematrix, popupregister, command-register en event-register.
SchermdocumentatieBeschrijft schermspecifieke zichtbaarheid, acties, waardelagen, lege toestanden en UI-gedrag.
OefenmodulesBeschrijven modulespecifieke configuratie, payloads, entrypoints, generatie en antwoordinterpretatie.
ArchitectuurBeschrijft systeemgrens, externe systemen, containers en functionele architectuurcontext.
MockupdocumentatieOndersteunt visuele interpretatie, layoutbegrip en schermherkenning.
FO-registersOndersteunen traceerbaarheid, maar zijn geen zelfstandige domeinbron.

Duurzame bronsets

De volgende bronsets worden als duurzame bronsets beschouwd.

BronsetPrimaire functieDirecte ingang
UsecasesProcesflows, actoren, precondities, alternatieve flows en functionele grenzen.Usecases
Database-informatieDomeinobjecten, persistentiegrenzen, readmodels, audit, history en technische opslagduiding.Database-informatie
OntwerpbronnenDomeinbrede regels, statusmodellen, autorisatiematrix, popupregister, commands en events.Ontwerpbronnen
SchermdocumentatieSchermdoel, zichtbare gegevens, acties, lege toestanden, waardelagen en schermrequirements.Schermdocumentatie
Oefenmodule-documentatieModulespecifieke configuratie, payloadopbouw, vraaggeneratie en antwoordinterpretatie.Oefenmodules
ArchitectuurdocumentatieSysteemcontext, containercontext, componentcontext en functionele architectuurgrenzen.Architectuur
MockupdocumentatieVisuele en layoutondersteuning bij scherminterpretatie.Mockups HTML
Style-documentatieDocumentatieopmaak, redactiestijl en visuele documentatieconventies.Style
FO-registersTraceerbaarheid naar usecases, schermen en overige bronnen.FO-usecase-index

Niet-duurzame werkbronnen

Tijdelijke werkbronnen worden niet als blijvende FO-bron opgenomen.

Niet-duurzaam zijn onder meer:

  • ruwe consolidatiedocumenten die verdwijnen na oplevering van FO, TO en SRS;
  • tijdelijke Word-, zip- of extractiebestanden;
  • bestandsnamen van aangeleverde archieven;
  • overdrachtsnotities uit chats;
  • tussenversies met oude FO-versienummers;
  • lokale bestandsnamen uit een tijdelijke reviewmap;
  • eenmalige exports die later vervangen worden door duurzame markdownbronnen;
  • screenshots of PNG’s zonder bijbehorende tekstuele documentatiebron.

Zulke bronnen mogen tijdens extractie of review gebruikt zijn om informatie te begrijpen, maar worden niet als blijvende bronverwijzing in FO-hoofdstukken, registers of bronoverzichten opgenomen.

Wanneer informatie uit een tijdelijke werkbron duurzaam relevant is, moet die informatie worden verwerkt in een duurzame bronset, zoals een usecase, database-informatie, ontwerpbron, schermdocumentatie of FO-hoofdstuk.

Bronvolgorde bij interpretatie

De bronvolgorde hangt af van het type vraag.

Er is dus geen absolute volgorde waarbij één bronset altijd alles overschrijft.

VraagtypeLeidende bronOndersteunende bronnen
Procesflow, actoractie of alternatieve flowUsecasesFO-hoofdstukken, schermdocumentatie, ontwerpbronnen
Autorisatie, rolcontext en objecttoegangOntwerpbronnen en usecasesFO-hoofdstukken, database-informatie, schermdocumentatie
Domeinobject, relatie, readmodel of historyDatabase-informatieFO-hoofdstukken, ontwerpbronnen, usecases
Statusmodel of toegestane statusovergangOntwerpbronnenUsecases, database-informatie, FO-hoofdstukken
Popupkey, popupvariant of themagedragOntwerpbronnenUsecases, schermdocumentatie, FO-hoofdstukken
Schermspecifieke zichtbaarheid of actieSchermdocumentatieUsecases, FO-hoofdstukken, mockupdocumentatie
Functionele domeinsamenhangFO-hoofdstukkenAlle duurzame bronsets
Moduleconfiguratie en modulepayloadOefenmodule-documentatieDatabase-informatie, FO-22, docentusecases
Historische resultaten en runsDatabase-informatieFO-08, FO-18, usecases resultaten/geschiedenis
Visuele interpretatieSchermdocumentatie en mockupdocumentatieFO-hoofdstukken, style-documentatie
Systeemgrens en externe systemenArchitectuurdocumentatieFO-23, FO-01, database-informatie
RequirementsafleidingSRSFO-hoofdstukken, usecases, schermdocumentatie

Conflictregels

Wanneer bronnen elkaar lijken tegen te spreken, geldt de volgende werkwijze.

  1. Bepaal eerst het vraagtype.
  2. Bepaal daarna welke bronset voor dat vraagtype leidend is.
  3. Controleer of het verschil echt inhoudelijk is of alleen een verschil in detailniveau, terminologie of voorbeelddata.
  4. Gebruik FO-hoofdstukken om samenhang en afbakening te formuleren, niet om bronhoudende details onnodig te dupliceren.
  5. Leg echte resterende conflicten vast in Open punten en buiten scope.
  6. Vermijd impliciete keuzes wanneer een productkeuze of scopekeuze nodig is.

Voorbeelden:

SituatieAfhandeling
Mockup toont een voorbeeldnaam die niet in usecases staat.Behandel als voorbeelddata, niet als normatieve waarde.
Schermdocumentatie toont een knop, maar usecase blokkeert de actie onder voorwaarden.Usecase en autorisatieregel bepalen of de actie beschikbaar is; schermdocumentatie beschrijft zichtbaarheid en feedback.
Database-informatie noemt een readmodel, maar FO beschrijft het als teller.Database-informatie bepaalt brondata; FO beschrijft de functionele betekenis.
Ontwerpbron heeft een statusmodel, maar schermdocumentatie gebruikt een Nederlands label.Ontwerpbron bepaalt statuswaarden; schermdocumentatie mag gebruikerslabels tonen.
Oefenmodule-documentatie beschrijft modulepayloadvelden, maar FO beschrijft generieke payloadprincipes.Modulebron bepaalt modulespecifieke payload; FO beschrijft platformgrenzen.

DRY-principe

Het FO volgt het DRY-principe.

Dat betekent:

  • usecases worden niet volledig overgeschreven in FO-hoofdstukken;
  • schermdocumentatie wordt niet volledig gekopieerd naar FO-hoofdstukken;
  • database-informatie wordt niet omgezet naar een tweede datamodel in het FO;
  • popupteksten en systeemberichtteksten worden niet gedupliceerd wanneer registers of templates leidend zijn;
  • modulepayloads worden niet per module volledig herhaald wanneer oefenmodule-documentatie leidend is;
  • mockupwaarden worden niet als definitieve datawaarden overgenomen;
  • bronverwijzingen zijn klikbaar en wijzen naar de bron die voor het detail leidend is.

Het FO mag wel samenvatten, duiden en begrenzen. Vooral bij domeinen met veel raakvlakken beschrijft het FO de samenhang tussen bronnen.

Linkbeleid

Bronverwijzingen in FO-hoofdstukken en registers moeten klikbaar zijn.

Omdat bronnenoverzicht.md in docs/functioneel_ontwerp/bronnen staat, gelden voor deze pagina de volgende relatieve linkpatronen.

DoelLinkpatroon vanuit deze map
Ander FO-hoofdstuk../<hoofdstuk>.md
FO-register../registers/<register>.md
Usecases../../usecases/...
Database-informatie../../database_informatie/...
Ontwerpbronnen../../ontwerpbronnen/...
Schermdocumentatie../../schermdocumentatie/...
Oefenmodules../../oefen_modules/...
Architectuur../../architectuur/...
Mockupdocumentatie../../mockups_html/...
Style-documentatie../../style/...

Gebruik geen tekstuele verwijzingen zoals “zie de docs” zonder link.

Markdownbeleid

Tabellen in bronoverzichten en registers moeten echte markdown-tabellen zijn.

Niet toegestaan:

  • platte tekst die bedoeld is als tabel;
  • onuitgelijnde kolomkoppen zonder pipes;
  • tijdelijke bestandsnamen als bronlabels;
  • oude extractiestatussen als inhoudelijke bronpositie;
  • versienummers buiten de centrale versieplaats.

Wel toegestaan:

  • korte tabellen voor bronsets, vraagtypes, statusduiding en linkpatronen;
  • compacte opsommingen voor regels;
  • bronlabels die naar duurzame documentatiepaden verwijzen;
  • toelichting wanneer een bron alleen ondersteunend is.

Versiebeleid

Versie-informatie hoort centraal in de FO-intro.

Bronoverzichten, registers en hoofdstukken gebruiken geen eigen FO-versienummer.

Zij mogen wel beschrijven dat een bron duurzaam, ondersteunend, visueel of tijdelijk is. Zij noemen geen oude FO-versies als actuele bronstatus.

Wanneer een documentatiepagina inhoudelijk wordt herzien, wordt dit via gitgeschiedenis en commitberichten gevolgd, niet via losse versietekst in elk FO-bestand.

Directe broningangen

Functioneel Ontwerp

BronLink
FO introFunctioneel Ontwerp OefenHub
Bronnen en afbakening00 — Bronnen en afbakening
Productvisie en scope01 — Productvisie en scope
Open punten en buiten scope20 — Open punten en buiten scope
Functionele architectuurcontext23 — Functionele architectuurcontext

Registers

RegisterLink
Usecase-indexFO-usecase-index
SchermindexFO-schermindex
Broninventaris overige markdownFO-broninventaris overige markdown

Usecases

BronLink
Usecases introUsecases
Generieke usecasesGeneriek
LeerlingusecasesLeerling
DocentusecasesDocent
Ouder-/voogdusecasesOuder/voogd
BeheerderusecasesBeheerder

Database-informatie

BronLink
Database-informatie introDatabase-informatie
Identiteit en autorisatie01 — Identiteit en autorisatie
Relatiebeheer02 — Relatiebeheer
Docentstructuur en leerlingtoegang03 — Docentstructuur en leerlingtoegang
Communicatie en notificaties04 — Communicatie en notificaties
Configuratie en contentbeheer05 — Configuratie en contentbeheer
Ticket- en meldingsbeheer06 — Ticket- en meldingsbeheer
Oefenruns, delen en voortgang07 — Oefenruns, delen en voortgang
Audit, historie en technische uitgangspunten08 — Audit, historie en technische uitgangspunten
Nog uit te werken tabellen en domeinen09 — Nog uit te werken tabellen en domeinen

Ontwerpbronnen

BronLink
Ontwerpbronnen introOntwerpbronnen
AutorisatiematrixAutorisatiematrix
Business rulesBusiness rules
Command-registerCommand-register
DomeinobjectenDomeinobjecten
Event-registerEvent-register
Header, footer en navigatieHeader, footer en navigatie
Popup-registerPopup-register
Popup-themesPopup-themes
StatusmodellenStatusmodellen

Schermdocumentatie

BronLink
Schermdocumentatie introSchermdocumentatie
Generieke schermenGeneriek
Leerling schermenLeerling
Docent schermenDocent
Ouder-/voogd schermenOuder/voogd
Beheerder schermenBeheerder

Oefenmodule-documentatie

BronLink
Oefenmodules introOefenmodules
Moduleplatform en contractModuleplatform en contract
Optellen en aftrekken simpelOptellen en aftrekken simpel

Architectuur

BronLink
Architectuur introArchitectuur
C4 introC4-model
C4 niveau 1System Context
C4 niveau 2Container Diagram
C4 niveau 3Component Diagram
C4 niveau 4Interne bouwblokken
Structurizr smoke testStructurizr smoke test

Mockupdocumentatie

BronLink
Mockups HTML introMockups HTML
Generieke mockupsGeneriek
LeerlingmockupsLeerling
DocentmockupsDocent
Ouder-/voogdmockupsOuders
BeheerdermockupsBeheerder
ModulemockupsModules

Gebruik van mockups en PNG’s

Mockups en PNG’s zijn ondersteunende bronnen.

Zij helpen bij:

  • visuele interpretatie;
  • layoutbegrip;
  • herkenning van schermdelen;
  • bevestiging van schermrichting;
  • controle van responsieve hoofdlijnen;
  • validatie of schermdocumentatie nog bij de visuele bron past.

Zij zijn niet leidend voor:

  • autorisatie;
  • brondata;
  • statusmodellen;
  • tellerdefinities;
  • procesflows;
  • databasemodellen;
  • exacte productieaantallen;
  • definitieve naamgeving wanneer tekstuele bronnen specifieker zijn.

Wanneer mockups en tekstuele bronnen verschillen, wordt vastgesteld of de mockup verouderd is, alleen voorbeelddata toont of een echte functionele afwijking signaleert.

Bronsets per FO-hoofdstuk

De volgende tabel geeft een compacte leeswijzer voor de belangrijkste bronfamilies per FO-hoofdstuk.

FO-hoofdstukBelangrijkste bronsets
00 — Bronnen en afbakeningBronoverzicht, extractie-notities, registers
01 — Productvisie en scopeArchitectuur, usecase-intro’s, FO-domeinhoofdstukken
02 — Rollen, context en autorisatieAutorisatiematrix, database-identiteit, relatiebeheer, usecases
03 — Applicatieschil, header, footer en navigatieHeader/footer-ontwerpbron, schermdocumentatie, berichten, contentbeheer
04 — Frontpages en overzichtsschermenFrontpageusecases, schermdocumentatie, contentbeheer, systeemnotificaties
05 — Account, profiel en voorkeurenGenerieke account-/profielusecases, database-identiteit, schermdocumentatie
06 — RelatiebeheerRelatieusecases, database-relatiebeheer, systeemberichten
07 — OefencatalogusDocentstructuur, categoriebeheer, modulebeheer, docentusecases, leerlingtoegang
08 — Leerling oefenenLeerling-oefenusecases, oefenruns-database, oefenmodules, resultaatbronnen
09 — Gedeelde oefeningenLeerling gedeelde-oefeningenusecases, oefenruns/delen-database, berichten
10 — DocentfunctionaliteitDocentusecases, docentstructuur-database, schermdocumentatie docent
11 — Ouder-/voogdfunctionaliteitOuder-/voogdusecases, relatiebeheer, oefenruns, live-view
12 — BeheerderfunctionaliteitBeheerderusecases, beheerder-schermen, database- en ontwerpbronnen
13 — Berichten, communicatie en notificatiesBerichtusecases, communicatie-database, systeemnotificaties, popupregister
14 — Meldingen en ticketafhandelingTicketusecases, ticketdatabase, statusmodellen, berichten
15 — Live meekijkenLiveusecases docent/ouder, oefenruns, SignalR-architectuur, audit
16 — ContentbeheerContentbeheerusecases, configuratie/content-database, vaste pagina’s
17 — Popups, templates, features en systeemnotificatiesPopupbeheer, systeemberichtenbeheer, features, ontwerpbronnen
18 — PDF-export en resultaatpresentatieResultaatusecases, oefenruns, QuestPDF-context, module-export
19 — Functionele beslisregelsOntwerpbronnen, business rules, autorisatiematrix, statusmodellen
20 — Open punten en buiten scopeAlle domeinhoofdstukken en bekende documentatiepunten
21 — Schermlaag en UX-specificatiesSchermdocumentatie, mockups, popupregister, UX-regels
22 — Oefenmodules en modulepayloadsOefenmodule-documentatie, modulebeheer, database-oefenruns
23 — Functionele architectuurcontextC4-architectuur, database, usecase-orkestratie, events/jobs

Onderhoud van dit bronnenoverzicht

Dit bronnenoverzicht wordt bijgewerkt wanneer:

  • een nieuwe duurzame bronset ontstaat;
  • een bronset wordt hernoemd of verplaatst;
  • een bronset niet langer duurzaam is;
  • een register wordt opgesplitst of samengevoegd;
  • bronhiërarchie of interpretatieregels wijzigen;
  • nieuwe documentatiecategorieën ontstaan;
  • tijdelijke bronverwijzingen uit oudere extracties worden verwijderd;
  • linkpaden veranderen.

Bij onderhoud gelden de volgende regels:

  • verwijs naar duurzame documentatiepaden;
  • gebruik relatieve Docusaurus-links;
  • verwijder tijdelijke zip-, Word-, chat- of extractienamen uit blijvende bronlijsten;
  • houd tabellen compact en onderhoudbaar;
  • plaats versie-informatie niet in dit document;
  • verplaats echte open beslissingen naar FO-20;
  • houd usecase- en schermtraceerbaarheid in de registers.

Kwaliteitscontrole

Voor dit bronnenoverzicht gelden de volgende controles.

ControleVerwachting
Tijdelijke bronnamenNiet opnemen als duurzame bron.
Oude FO-versiestatussenNiet opnemen buiten centrale versieplaats.
Relatieve linksKlikbaar en passend bij de maplocatie.
BronsetsAlleen duurzame bronsets in hoofdtabellen.
MockupsOndersteunend aangeduid, niet bronhoudend voor regels.
UsecasesVia usecase-index traceerbaar.
SchermenVia schermindex traceerbaar.
Overige bronnenVia broninventaris traceerbaar.
Open puntenAlleen in FO-20 of in een expliciet bronhygiënedocument.
TabellenEchte markdown-tabellen.

Relatie tot andere FO-brondocumenten

DocumentRelatie
00 — Bronnen en afbakeningBeschrijft de formele afbakening van het FO en de interpretatieregels.
20 — Open punten en buiten scopeCentraliseert resterende keuzes en buiten-scopepunten.
Extractie-notitiesBeschrijft de werkwijze voor extractie en review.
FO-usecase-indexTraceert usecases naar FO-hoofdstukken.
FO-schermindexTraceert schermdocumentatie naar FO-hoofdstukken.
FO-broninventaris overige markdownInventariseert overige duurzame markdown-/MDX-bronnen.