Skip to main content

UC-OVG-KIND-003 — Kind selecteren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-KIND-003
NaamKind selecteren
DomeinOuder/voogd / Kinderen en koppelingen
Primaire actorOuder/voogd
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenKinderen
Gerelateerde usecasesUC-OVG-KIND-001, UC-OVG-KIND-004, UC-OVG-KIND-005
Primaire entiteitenUsers, UserRelationships
Secundaire entiteiten / eventsKindSelectionContext
Gerelateerde popupsOVG_CHILD_CONTEXT_NOT_AVAILABLE
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

De usecase beschrijft hoe een ouder/voogd op de pagina Kinderen precies één kind selecteert als context voor vervolgacties. Selectie is een noodzakelijke tussenstap voor Toon informatie, Bekijk geschiedenis en Ontkoppel leerling.

Een selectie in de frontend is nooit voldoende voor autorisatie. Iedere vervolgactie controleert opnieuw server-side of het geselecteerde kind nog binnen een actieve ouder-/voogdrelatie valt.

Uitgangspunten

  • Er kan steeds maar één kind geselecteerd zijn.
  • Selectie is geen autorisatiebron.
  • Vervolgacties controleren de selectie opnieuw server-side.
  • Een vervallen selectie mag geen oude kinddata tonen.
  • Selectie wordt niet als blijvend domeinrecord opgeslagen.

3. Scope

Deze usecase beschrijft:

  • Selecteren van één kind uit het overzicht.
  • Activeren van contextafhankelijke acties na selectie.
  • Server-side hercontrole bij vervolgactie.
  • Vervallen selectie afhandelen wanneer relatie intussen niet meer actief is.

Deze usecase beschrijft niet:

  • Kindgegevens tonen; dit hoort bij UC-OVG-KIND-004.
  • Relatie beëindigen; dit hoort bij UC-OVG-KIND-005.
  • Geschiedenis bekijken; dit valt buiten dit subdomein en hoort bij ouder/voogd-resultaten en geschiedenis.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Generiek / RelatiesRelatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein.
Generiek / BerichtenSysteemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein.
LeerlingDe leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen.
DocentDocentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens.

4. Pre-condities

IDWaarde
001De pagina Kinderen is geladen.
002Er is ten minste één zichtbaar kind of een lege staat.
003De ouder/voogd heeft actieve ouder-/voogdcontext.

5. Post-condities

IDWaarde
001Maximaal één kind is geselecteerd.
002Contextacties zijn beschikbaar of blijven uitgeschakeld.
003Er is geen domeindata gewijzigd.

6. Trigger

De usecase start wanneer de ouder/voogd de betreffende ouder-/voogdroute opent of de beschreven actie uitvoert binnen de actieve ouder-/voogdcontext.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Ouder/voogdKlikt op een kindregelFrontend markeert selectieUI-state
2FrontendBewaart geselecteerde sleutel tijdelijkActies worden visueel beschikbaarClientstate
3Ouder/voogdKiest vervolgactieFrontend stuurt selectie meeVervolgactie
4BackendControleert selectie server-sideKind valt nog binnen actieve ouder-/voogdscopeUserRelationships
5BackendStart vervolgusecaseToon informatie of ontkoppelen kan doorgaanContext

7.1 Scherm- en routegedrag

  • De pagina Kinderen toont een compacte lijst en gebruikt selectie als bewuste tussenstap.
  • Vervolgacties blijven uitgeschakeld totdat een kind is geselecteerd.
  • Bij wijziging van relatie- of autorisatiestatus wordt oude clientstate ongeldig gemaakt.
  • De gebruiker krijgt geen docentgerichte filters of beheeracties te zien.

8. Alternatieve en exceptionele processtromen

IDWaarde
001Geen kind geselecteerd: acties blijven uitgeschakeld of tonen kind-selectie vereist afhandeling.
002Geselecteerd kind is niet langer gekoppeld: vervolgactie wordt geblokkeerd en selectie vervalt.
003Gebruiker selecteert ander kind: vorige selectie wordt vervangen.
004Meervoudige selectie via browsermanipulatie: backend accepteert maar één kind-ID per vervolgactie.

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt de autorisatiecontrole bij iedere vervolgactie.
  • Oude selectie-, route- of browsercontext wordt genegeerd wanneer de actuele server-side context geen toegang meer geeft.
  • De frontend mag verouderde weergave herstellen door opnieuw het actuele viewmodel op te vragen.

9. Business rules

IDWaarde
001Er kan steeds maar één kind geselecteerd zijn.
002Selectie is geen autorisatiebron.
003Vervolgacties controleren de selectie opnieuw server-side.
004Een vervallen selectie mag geen oude kinddata tonen.
005Selectie wordt niet als blijvend domeinrecord opgeslagen.

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Geselecteerd kindTijdelijke UI-context met kind-ID.Geen persistente autorisatiebron.
ActiestatusVervolgacties worden beschikbaar na selectie.Backend controleert opnieuw bij elke vervolgactie.
Vervallen selectieOntstaat wanneer relatie intussen niet meer actief is.Selectie wordt ongeldig en data wordt niet getoond.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot de actieve ouder-/voogdcontext.
  • Persoonsgegevens van kinderen worden alleen getoond zolang er een actieve ouder-/voogdrelatie bestaat.
  • Historische oefenresultaten worden gelezen binnen de toegestane context, maar niet gewijzigd door raadplegen of samenvatten.

10. Datavalidatie

IDWaarde
001Kind-ID moet bestaan.
002Kind-ID moet binnen een actieve ouder-/voogdrelatie vallen.
003Relatie moet op het moment van vervolgactie actief zijn.
004De ingelogde gebruiker moet de ouder-/voogdkant van de relatie zijn.

11. Datamutaties en events

IDWaarde
001Geen domeinmutaties.

12. Geen datamutaties

IDWaarde
001UserRelationships worden niet gewijzigd.
002UserSettings worden niet gewijzigd door selectie.
003Users worden niet gewijzigd.
004Geen kindcontext wordt persistent opgeslagen als autorisatiebron.

13. State diagram

Niet van toepassing.

Kindselectie is tijdelijke UI-context. De selectie wordt niet als domeinstatus opgeslagen en verleent geen autorisatie.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruikOpmerking
OVG_CHILD_CONTEXT_NOT_AVAILABLEGebruik binnen deze usecase.Tekst, knoppen, acties en eventuele inputdefinitie blijven bronhoudend in het popupregister.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

AspectAfleiding
FO/TO/SRS-001Er kan steeds maar één leerling tegelijk geselecteerd worden.
FO/TO/SRS-002Acties op de pagina Kinderen vereisen een geselecteerd kind.
FO/TO/SRS-003Server-side autorisatie blijft leidend.

19. SRS-trace

Deze usecase bevat geen normatieve requirementtekst. De centrale eis en acceptatiecriteria staan in de SRS; onderstaande tabel koppelt de usecase-afleiding alleen aan centrale SRS-*- en AC-*-items.

Usecase-afleidingDektUsecasecontext
REQ-UC-OVG-KIND-003-001SRS-AUTH-004
SRS-GUA-001
SRS-NFR-PER-001
AC-AUTH-004
AC-GUA-001
AC-NFR-PER-001
Maximaal één geselecteerd kind tegelijk ondersteunen
REQ-UC-OVG-KIND-003-002SRS-AUTH-001
SRS-AUTH-004
SRS-GUA-001
AC-AUTH-001
AC-AUTH-004
AC-GUA-001
Vervolgacties blokkeren zolang geen kind is geselecteerd
REQ-UC-OVG-KIND-003-004SRS-GUA-001
SRS-NFR-SEC-001
AC-GUA-001
AC-NFR-SEC-001
Vervallen selecties veilig afhandelen
REQ-UC-OVG-KIND-003-005SRS-AUTH-001
SRS-GUA-001
AC-AUTH-001
AC-GUA-001
Selectie niet als blijvende autorisatiebron opslaan