UC-OVG-KIND-002 — Kinderen sorteren en naamweergave toepassen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-OVG-KIND-002 |
| Naam | Kinderen sorteren en naamweergave toepassen |
| Domein | Ouder/voogd / Kinderen en koppelingen |
| Primaire actor | Ouder/voogd |
| Secundaire actor(en) | Frontend, backend, database, gebruikersinstellingendomein |
| Rolcontext | Actieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Kinderen |
| Gerelateerde usecases | UC-OVG-KIND-001, UC-GEN-PROF-007 |
| Primaire entiteiten | UserSettings, Users, UserRelationships |
| Secundaire entiteiten / events | Kinderenoverzicht-readmodel |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Should |
2. Omschrijving
De usecase beschrijft hoe de pagina Kinderen persoonlijke voorkeuren voor sortering en naamweergave toepast. De voorkeur beïnvloedt alleen de presentatievolgorde en naamrepresentatie, niet de zichtbare gegevensset.
Wanneer de ouder/voogd de sortering of naamweergave wijzigt, wordt deze keuze als gebruikersinstelling opgeslagen binnen het UserSettings-domein. De server blijft verantwoordelijk voor het bepalen welke kinderen zichtbaar zijn.
Uitgangspunten
- Voorkeuren wijzigen alleen presentatiegedrag.
- Voorkeuren mogen geen autorisaties of zichtbare gegevenssets wijzigen.
- Rolgebonden voorkeuren worden alleen toegepast binnen een rolcontext die de gebruiker bezit.
- Sortering moet deterministisch zijn bij gelijke waarden.
- Naamweergave mag geen persoonsgegevens tonen buiten de ouder-/voogdscope.
3. Scope
Deze usecase beschrijft:
- Toepassen van bestaande voorkeuren op het kinderenoverzicht.
- Wijzigen van sortering, bijvoorbeeld alfabetisch of gekoppeld sinds.
- Wijzigen van naamweergave, bijvoorbeeld voornaam of volledige naam waar toegestaan.
- Opslaan van voorkeur in UserSettings.
Deze usecase beschrijft niet:
- Nieuwe kinderen zichtbaar maken of verbergen op basis van voorkeur.
- Relaties wijzigen.
- Autorisatie wijzigen.
- Profielgegevens van kinderen wijzigen.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Generiek / Relaties | Relatie-uitnodigingen, acceptatie en algemene relatievorming blijven bronhoudend in het generieke relatiedomein. |
| Generiek / Berichten | Systeemberichten en leesstatussen blijven bronhoudend in het centrale berichtendomein. |
| Leerling | De leerling blijft eigenaar van eigen oefenuitvoering; ouder/voogd kan niet namens het kind oefenen. |
| Docent | Docentautorisaties en docentresultaatinzage blijven begrensd door docentcontext; ouder-/voogdcontext gebruikt eigen relatiegrens. |
4. Pre-condities
| ID | Waarde |
|---|---|
| 001 | De ouder/voogd heeft toegang tot Kinderen. |
| 002 | UserSettings is beschikbaar of kan veilig met defaults worden geïnitialiseerd. |
| 003 | Er zijn nul of meer zichtbare kinderen. |
5. Post-condities
| ID | Waarde |
|---|---|
| 001 | Het overzicht is weergegeven volgens de gekozen voorkeur. |
| 002 | Bij wijziging is UserSettings bijgewerkt. |
| 003 | De zichtbare gegevensset is niet verruimd of beperkt door de voorkeur. |
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
| Stap | Actor / component | Actie | Resultaat | Data / controle |
|---|---|---|---|---|
| 1 | Backend | Laadt UserSettings | Voorkeuren zijn bekend of defaults actief | UserSettings |
| 2 | Backend | Laadt geautoriseerde kinderen | Dataset is server-side gefilterd | UserRelationships |
| 3 | Frontend | Past sortering en naamweergave toe | Overzicht verschijnt volgens voorkeur | Viewmodel |
| 4 | Ouder/voogd | Wijzigt voorkeur | Nieuwe presentatiekeuze wordt verzonden | UI |
| 5 | Backend | Valideert voorkeur | Alleen toegestane waarden worden opgeslagen | Validatie |
| 6 | Database | Slaat UserSettings op | Voorkeur is persistent voor volgende bezoeken | UserSettings |
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
| ID | Waarde |
|---|---|
| 001 | UserSettings ontbreekt: systeem initialiseert veilige defaults. |
| 002 | Ongeldige sorteerwaarde: wijziging wordt geweigerd en bestaande voorkeur blijft gelden. |
| 003 | Voorkeur verwijst naar niet meer ondersteunde optie: systeem gebruikt default en kan instelling herstellen. |
| 004 | Geen kinderen: voorkeur blijft wel opgeslagen maar heeft geen zichtbaar effect. |
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
| ID | Waarde |
|---|---|
| 001 | Voorkeuren wijzigen alleen presentatiegedrag. |
| 002 | Voorkeuren mogen geen autorisaties of zichtbare gegevenssets wijzigen. |
| 003 | Rolgebonden voorkeuren worden alleen toegepast binnen een rolcontext die de gebruiker bezit. |
| 004 | Sortering moet deterministisch zijn bij gelijke waarden. |
| 005 | Naamweergave mag geen persoonsgegevens tonen buiten de ouder-/voogdscope. |
9.1 Readmodel- en tellerdefinities
| Waarde | Definitie | Uitsluitingen / grenzen |
|---|---|---|
| Sorteervolgorde | UserSettings of veilige default. | Wijzigt alleen presentatievolgorde. |
| Naamweergave | UserSettings of veilige default. | Mag geen extra persoonsgegevens zichtbaar maken. |
| Dataset | Actieve ouder-/voogdrelaties. | Voorkeuren bepalen niet welke kinderen zichtbaar zijn. |
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
| ID | Waarde |
|---|---|
| 001 | Sorteerwaarde moet uit een toegestane lijst komen. |
| 002 | Naamweergavewaarde moet uit een toegestane lijst komen. |
| 003 | UserSettings-mutatie moet bij de ingelogde gebruiker horen. |
| 004 | De dataset moet voor toepassing van voorkeur al server-side geautoriseerd zijn. |
11. Datamutaties en events
| ID | Waarde |
|---|---|
| 001 | UserSettings wordt bijgewerkt wanneer de ouder/voogd een voorkeur wijzigt. |
| 002 | Er wordt geen afzonderlijk domeinevent vereist voor deze presentatievoorkeur. |
12. Geen datamutaties
| ID | Waarde |
|---|---|
| 001 | UserRelationships worden niet gewijzigd. |
| 002 | Users van kinderen worden niet gewijzigd. |
| 003 | Resultaten en geschiedenis worden niet gewijzigd. |
| 004 | Voorkeuren maken geen verborgen kind alsnog zichtbaar. |
13. State diagram
Niet van toepassing.
Sortering en naamweergave hebben geen eigen statusmodel. Bij een wijziging wordt uitsluitend de toegestane presentatievoorkeur in UserSettings bijgewerkt.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik | Opmerking |
|---|---|---|
| Niet van toepassing | Deze usecase gebruikt geen popupregister-popup. | Eventuele lege staten of inline meldingen zijn scherminhoud en geen popupdefinitie. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Aspect | Afleiding |
|---|---|
| FO/TO/SRS-001 | Naamweergave en sortering zijn persoonlijke voorkeuren voor de ouder-/voogdpagina Kinderen. |
| FO/TO/SRS-002 | Voorkeuren wijzigen uitsluitend presentatiegedrag. |
| FO/TO/SRS-003 | UserSettings is de functionele opslag voor voorkeuren. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-OVG-KIND-002-001 | SRS-RDM-001 SRS-RDM-008 SRS-ACC-003 SRS-GUA-001 AC-RDM-001 AC-RDM-008 AC-ACC-003 AC-GUA-001 | Sortering en naamweergave als presentatievoorkeur behandelen |
REQ-UC-OVG-KIND-002-002 | SRS-ACC-003 SRS-RDM-008 SRS-GUA-001 AC-ACC-003 AC-RDM-008 AC-GUA-001 | Voorkeuren opslaan in UserSettings wanneer de gebruiker ze wijzigt |
REQ-UC-OVG-KIND-002-003 | SRS-AUTH-001 SRS-ACC-003 SRS-RDM-008 SRS-GUA-001 SRS-NFR-SEC-001 AC-AUTH-001 AC-ACC-003 AC-RDM-008 AC-GUA-001 AC-NFR-SEC-001 | Ongeldige voorkeurwaarden weigeren of veilig vervangen door defaults |
REQ-UC-OVG-KIND-002-004 | SRS-AUTH-001 SRS-ACC-003 SRS-RDM-008 SRS-GUA-001 AC-AUTH-001 AC-ACC-003 AC-RDM-008 AC-GUA-001 | Voorkeuren niet gebruiken als autorisatiebron |
REQ-UC-OVG-KIND-002-005 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-008 SRS-GUA-001 AC-AUTH-001 AC-RDM-001 AC-RDM-008 AC-GUA-001 | Sortering toepassen op de reeds geautoriseerde dataset |