UC-LLN-OEF-005 — Antwoord tonen na bevestiging
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-LLN-OEF-005 |
| Naam | Antwoord tonen na bevestiging |
| Domein | Leerling / Oefenen en voortgang |
| Primaire actor | Leerling |
| Secundaire actor(en) | OefenHub frontend, OefenHub backend, technische oefenmodule, database, routeguard |
| Rolcontext | Ingelogde leerling met een zojuist verwerkte vraag binnen een lopende exercise run waarbij de antwoordweergave functioneel beschikbaar is. |
| Betrokken schermen | Oefenscherm, antwoordfeedbackcomponent, voortgangsindicator, knop Volgende, knop Bekijk resultaat. |
| Gerelateerde usecases | UC-LLN-OEF-004 — Vraag beantwoorden; UC-LLN-OEF-006 — Geen idee gebruiken; UC-LLN-OEF-008 — Oefening afronden; UC-LLN-RES-001 — Resultaat na afronding bekijken |
| Primaire entiteiten | ExerciseRuns, ExerciseRunProgress, Exercises, ExerciseModules |
| Secundaire entiteiten / events | Geen persistente events; feedbackreadmodel en modulepresentatie. |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft de vervolgweergave nadat een antwoord op een vraag is bevestigd en opgeslagen. Wanneer de oefenconfiguratie bepaalt dat het antwoord na bevestiging zichtbaar moet worden, toont het systeem aan de leerling of het antwoord goed of fout was en wat het juiste antwoord is. De leerling kan daarna doorgaan naar de volgende vraag of, bij de laatste vraag, naar het resultaat.
De usecase is bewust grotendeels read-only. Het antwoord zelf is al verwerkt in UC-LLN-OEF-004 of, bij de Geen idee-route, in UC-LLN-OEF-006. Deze usecase leest de opgeslagen vraagtoestand en toont feedback die daaruit veilig kan worden opgebouwd. De getoonde juiste uitkomst komt uit de modulespecifieke vraag- en antwoordrepresentatie, maar de generieke flow bepaalt wanneer feedback zichtbaar mag zijn en welke vervolgstap mogelijk is.
De knop onder de vraag verandert functioneel afhankelijk van de toestand. Tijdens vraagbeantwoording kan de actie Toon antwoord zijn, na het tonen van de feedback wordt dat Volgende of bij de laatste vraag Bekijk resultaat. De exacte UI-presentatie hoort bij schermdocumentatie; deze usecase beschrijft de proces- en datagedragsregels.
3. Scope
Deze usecase omvat wel:
- tonen van feedback na een opgeslagen antwoord
- tonen van goed/fout-status
- tonen van het juiste antwoord of modulespecifieke juiste representatie
- tonen van de eventueel gegeven antwoordwaarde
- tonen van markering wanneer de vraag via
Geen ideeis verwerkt - bepalen of de volgende actie
VolgendeofBekijk resultaatis - reconstrueren van feedback na refresh op basis van opgeslagen voortgang
- veilig blokkeren wanneer antwoordfeedback nog niet beschikbaar of niet toegestaan is
- route naar volgende vraag of afrondflow
Deze usecase omvat niet:
- opslaan van het reguliere antwoord
- verwerken van de
Geen idee-keuze - genereren van een nieuwe exercise run
- berekenen van eindstatistieken
- tonen van de volledige resultaatpopup
- PDF-export
- wijzigen van moduleconfiguratie
- aanmaken van live-meekijksessies
- beheer van waarschuwingen of gebruikersvoorkeuren
DRY-afbakening: antwoordcontrole, Geen idee-verwerking, afronding en resultaatweergave blijven bij hun eigen usecases. Deze usecase is uitsluitend de feedback- en navigatiestap na een reeds opgeslagen vraagantwoord.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd als leerling. |
| PRE-002 | Er bestaat een lopende of zojuist bijna-afgeronde exercise run van deze leerling. |
| PRE-003 | De actuele vraag is server-side verwerkt en heeft een opgeslagen resultaatstatus. |
| PRE-004 | De oefenconfiguratie of de gekozen route staat antwoordfeedback toe. |
| PRE-005 | De juiste antwoordrepresentatie is via de modulecontext herleidbaar. |
| PRE-006 | De frontend mag de feedbackweergave tonen binnen de huidige vraagcontext. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De leerling ziet feedback op basis van opgeslagen vraagvoortgang. |
| POST-002 | Het systeem heeft geen antwoord opnieuw verwerkt. |
| POST-003 | De leerling kan naar de volgende vraag of naar de afrondflow. |
| POST-004 | Bij refresh kan dezelfde feedback opnieuw uit opgeslagen voortgang worden opgebouwd. |
| POST-005 | Er zijn geen relaties, autorisaties, berichten, meldingen of profielgegevens gewijzigd. |
| POST-006 | Niet-beschikbare feedback leidt tot veilige blokkade of terugkeer naar de geldige oefentoestand. |
6. Trigger
De usecase start wanneer na vraagverwerking blijkt dat antwoordfeedback getoond moet worden, bijvoorbeeld na een regulier antwoord met ShowAnswerAfterSubmit = true of na een bevestigde Geen idee-actie.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | OefenHub frontend | Oefenscherm | Ontvangt na antwoordverwerking de instructie om feedback te tonen. | Frontend vraagt of gebruikt feedbackcontext. | Gebaseerd op opgeslagen vraagtoestand. |
| 2 | OefenHub backend | Routeguard | Controleert leerling en eigenaar van de run. | Alleen de eigenaar ziet feedback. | ExerciseRuns.UserId. |
| 3 | OefenHub backend | Voortgangsservice | Laadt de opgeslagen vraagvoortgang. | Resultaatstatus en gegeven antwoord zijn beschikbaar. | Vraag moet verwerkt zijn. |
| 4 | OefenHub backend | Module-adapter | Haalt juiste antwoordrepresentatie op. | Module levert veilige weergavevorm terug. | Module-specifieke inhoud. |
| 5 | OefenHub backend | Feedbackservice | Bepaalt of feedback getoond mag worden. | Feedback is toegestaan of wordt geblokkeerd. | ShowAnswerAfterSubmit of Geen idee. |
| 6 | OefenHub backend | Navigatiebesluit | Bepaalt of dit de laatste vraag is. | Vervolgactie wordt Volgende of Bekijk resultaat. | Vraagnummer en totaal. |
| 7 | OefenHub frontend | Feedbackcomponent | Toont gegeven antwoord, juiste antwoord en resultaatstatus. | Leerling ziet feedback. | Geen datamutatie. |
| 8 | Leerling | Feedbackcomponent | Kiest Volgende bij niet-laatste vraag. | Frontend opent de volgende vraag. | Volgende vraag blijft eigen flow. |
| 9 | Leerling | Feedbackcomponent | Kiest Bekijk resultaat bij laatste vraag. | Systeem start afrond-/resultaatflow. | UC-LLN-OEF-008 / UC-LLN-RES-001. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | Leerling is niet de eigenaar van de run | Feedback wordt niet getoond. | Toegangafhandeling | Geen |
| ALT-002 | 3 | Vraag is nog niet verwerkt | Systeem toont geen juiste antwoordfeedback en herleidt naar geldige vraagtoestand. | Componentmelding | Geen |
| ALT-003 | 4 | Module kan juiste antwoordrepresentatie niet leveren | Systeem toont veilige foutafhandeling en logt technisch. | Componentmelding | Geen |
| ALT-004 | 5 | Feedback is niet toegestaan voor deze vraag | Systeem routeert naar volgende vraag of afrondflow zonder feedback. | Niet van toepassing | Geen |
| ALT-005 | 6 | Vraagnummer of totaal is inconsistent | Systeem blokkeert vervolg en logt technische inconsistentie. | Componentmelding | Geen |
| ALT-006 | 7 | Browser wordt ververst op feedbackweergave | Backend reconstrueert feedback uit opgeslagen voortgang. | Niet van toepassing | Geen |
| ALT-007 | 8 | Toegang vervalt voor het openen van de volgende vraag | Volgende vraag wordt door eigen routeguard geblokkeerd. | Toegangafhandeling | Geen |
| ALT-008 | 9 | Resultaatflow kan niet starten | Systeem behoudt opgeslagen voortgang en toont veilige foutafhandeling. | Componentmelding | Geen |
| ALT-009 | 7 | Gegeven antwoord is niet veilig renderbaar | Systeem toont een veilige generieke aanduiding of blokkeert details volgens modulepresentatie. | Componentmelding | Geen |
| ALT-010 | 7 | Juiste antwoord bevat modulespecifieke notatie | Systeem gebruikt de veilige renderhulp van de module. | Niet van toepassing | Geen |
| ALT-011 | 8 | Leerling gebruikt browser-terug naar vorige feedback | Systeem reconstrueert actuele toestand en voorkomt antwoordwijziging. | Niet van toepassing | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Antwoordfeedback mag alleen worden getoond nadat de vraag server-side is verwerkt. |
| BR-002 | Deze usecase mag een antwoord niet opnieuw valideren, beoordelen of opslaan. |
| BR-003 | De juiste antwoordrepresentatie komt uit de modulecontext die bij de run hoort. |
| BR-004 | De feedbackweergave is afgeleid uit opgeslagen voortgang en niet uit ongecontroleerde clientstate. |
| BR-005 | Bij een reguliere vraag wordt feedback alleen getoond wanneer ShowAnswerAfterSubmit = true. |
| BR-006 | Bij een bevestigde Geen idee-actie wordt het juiste antwoord getoond, ongeacht ShowAnswerAfterSubmit. |
| BR-007 | De vervolgactie is Volgende wanneer er nog een volgende vraag is. |
| BR-008 | De vervolgactie is Bekijk resultaat wanneer de laatste vraag is verwerkt. |
| BR-009 | Feedback tonen wijzigt geen domeindata. |
| BR-010 | De leerling mag geen module-interne payloadstructuur of technische identifier zien. |
| BR-011 | Bij refresh moet de feedbackweergave reproduceerbaar zijn uit opgeslagen voortgang. |
| BR-012 | Feedback mag geen gegevens tonen van andere leerlingen of andere runs. |
| BR-013 | Feedback mag niet worden gebruikt om een eerder antwoord inhoudelijk te wijzigen. |
| BR-014 | De feedbackweergave moet ook bij modulespecifieke notatie, zoals breuken of samengestelde antwoorden, veilig renderbaar blijven. |
| BR-015 | De feedbackweergave mag alleen de actuele vraagcontext tonen en geen vooruitblik geven op toekomstige antwoorden. |
| BR-016 | De overgang vanuit feedback naar een volgende vraag moet opnieuw de actuele runstatus controleren. |
| BR-017 | De overgang vanuit feedback naar resultaat mag pas nadat de laatste vraag als verwerkt bekend is. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
ExerciseRunId | Moet bestaan en bij de leerling horen. |
| Vraagnummer | Moet verwijzen naar een vraag binnen de run. |
| Vraagstatus | Moet verwerkt zijn voordat feedback zichtbaar is. |
| Resultaatstatus | Moet eenduidig goed, fout of Geen idee/fout-afgeleid zijn. |
| Juiste antwoordrepresentatie | Moet veilig renderbaar zijn en uit de modulecontext komen. |
| Vervolgactie | Moet passen bij vraagnummer en totaal aantal vragen. |
| Clientstate | Mag niet bepalen dat feedback zichtbaar is wanneer serverdata dat niet bevestigt. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1-9 | Geen persistente mutatie | Niet van toepassing | Feedback tonen leest opgeslagen vraagvoortgang en modulepresentatie; opnieuw tonen, verversen of verlaten van feedback wijzigt geen run of vraagvoortgang. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
ExerciseRuns | Feedback tonen wijzigt de run niet. |
ExerciseRunProgress | De vraagvoortgang is al opgeslagen in UC-LLN-OEF-004 of UC-LLN-OEF-006. |
UserSettings | Er wordt geen voorkeur gewijzigd. |
Users | Het account wijzigt niet. |
StudentLevelAuthorizations | Toegang wordt alleen gecontroleerd. |
SystemMessages | Er ontstaat geen systeembericht. |
PrivateMessageThreads | Er ontstaat geen privébericht. |
Tickets | Er ontstaat geen melding. |
LiveViewAudit | Feedback tonen start of stopt geen meekijksessie. |
13. State diagram
Niet van toepassing als zelfstandig persistent statusobject. De feedbackweergave is een afgeleide UI-toestand na een opgeslagen vraagantwoord.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Feedback tonen na opgeslagen antwoord
16.2 Feedback na refresh reconstrueren
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Niet van toepassing | Feedback wordt binnen het oefenscherm getoond en gebruikt geen popupregister-popup. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Functioneel Ontwerp beschrijft starten, hervatten, beantwoorden, Geen idee, onderbreken, afronden en resultaatnavigatie binnen de leerling-oefenflow. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en voortgang, live meekijken en frontend-oefencontext beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase. |
| Software Requirements Specification | Software Requirements Specification bevat centrale eisen en acceptatiecriteria voor oefenruns, voortgangsopslag, modulegedrag, foutafhandeling en veilige server-side verwerking. |
| Database-informatie | Database-informatie blijft bron voor ExerciseRuns, ExerciseRunProgress, payloadvelden, snapshots en soft links richting gebruiker en catalogus. |
| Ontwerpbronnen | Ontwerpbronnen bevatten aanvullende businessregels voor oefenflow, modulepayloads, Geen idee en voortgangsregistratie. |
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-LLN-OEF-005-001 | SRS-AUTH-001 SRS-LRN-003 AC-AUTH-001 AC-LRN-003 | Antwoordfeedback alleen tonen nadat de vraag server-side is verwerkt |
REQ-UC-LLN-OEF-005-002 | SRS-LRN-003 AC-LRN-003 | Feedback opbouwen uit opgeslagen vraagvoortgang |
REQ-UC-LLN-OEF-005-003 | SRS-LRN-003 SRS-MOD-003 AC-LRN-003 AC-MOD-003 | De juiste antwoordrepresentatie via de gekoppelde module kunnen verkrijgen |
REQ-UC-LLN-OEF-005-004 | SRS-LRN-006 AC-LRN-006 | Goed/fout-status tonen op basis van opgeslagen resultaatstatus |
REQ-UC-LLN-OEF-005-005 | SRS-LRN-004 AC-LRN-004 | Bij Geen idee kunnen tonen dat de vraag als fout meetelt |
REQ-UC-LLN-OEF-005-006 | SRS-LRN-009 AC-LRN-009 | Feedback kunnen reconstrueren na browserrefresh |
REQ-UC-LLN-OEF-005-007 | SRS-LRN-009 AC-LRN-009 | Volgende tonen wanneer er een volgende vraag beschikbaar is |
REQ-UC-LLN-OEF-005-008 | SRS-LRN-006 AC-LRN-006 | Bekijk resultaat tonen wanneer de laatste vraag is verwerkt |
REQ-UC-LLN-OEF-005-009 | SRS-LRN-003 AC-LRN-003 | Tijdens feedback tonen geen antwoord opnieuw opslaan of beoordelen |
REQ-UC-LLN-OEF-005-010 | SRS-LRN-009 AC-LRN-009 | Feedback alleen tonen aan de eigenaar van de run |
REQ-UC-LLN-OEF-005-011 | SRS-LRN-009 SRS-MOD-005 AC-LRN-009 AC-MOD-005 | Module-interne details en technische identifiers verborgen houden |
REQ-UC-LLN-OEF-005-012 | SRS-AUTH-001 SRS-LRN-009 SRS-NFR-SEC-001 AC-AUTH-001 AC-LRN-009 AC-NFR-SEC-001 | Feedback veilig blokkeren wanneer de vraag nog niet verwerkt is |
REQ-UC-LLN-OEF-005-013 | SRS-AUTH-001 SRS-LRN-003 SRS-NFR-SEC-001 AC-AUTH-001 AC-LRN-003 AC-NFR-SEC-001 | Feedback veilig blokkeren wanneer de juiste antwoordrepresentatie niet beschikbaar is |
REQ-UC-LLN-OEF-005-014 | SRS-AUTH-001 SRS-LRN-009 AC-AUTH-001 AC-LRN-009 | De vervolgstap bepalen op basis van server-side vraagpositie |
REQ-UC-LLN-OEF-005-015 | SRS-AUTH-001 SRS-REL-001 SRS-MSG-001 SRS-TIC-002 SRS-LRN-009 AC-AUTH-001 AC-REL-001 AC-MSG-001 AC-TIC-002 AC-LRN-009 | Feedback tonen zonder relaties, autorisaties, berichten of meldingen te wijzigen |
REQ-UC-LLN-OEF-005-016 | SRS-LRN-009 AC-LRN-009 | Bij verlopen sessie geen feedbackdata tonen |
REQ-UC-LLN-OEF-005-017 | SRS-AUTH-001 SRS-AUTH-002 SRS-LRN-009 AC-AUTH-001 AC-AUTH-002 AC-LRN-009 | Voorkomen dat clientstate zelfstandig het tonen van feedback afdwingt |
REQ-UC-LLN-OEF-005-018 | SRS-LRN-003 SRS-MOD-003 AC-LRN-003 AC-MOD-003 | Feedback kunnen tonen voor modules met verschillende antwoordrepresentaties |
REQ-UC-LLN-OEF-005-019 | SRS-LRN-003 SRS-NFR-AVL-001 AC-LRN-003 AC-NFR-AVL-001 | Bij foutafhandeling de opgeslagen voortgang behouden |
REQ-UC-LLN-OEF-005-020 | SRS-LRN-006 AC-LRN-006 | Feedbackweergave los houden van eindresultaatberekening |
REQ-UC-LLN-OEF-005-021 | SRS-LRN-009 SRS-POP-001 AC-LRN-009 AC-POP-001 | Feedbackweergave binnen het oefenscherm kunnen tonen zonder popupregister-popup |
REQ-UC-LLN-OEF-005-022 | SRS-AUTH-001 SRS-LRN-009 SRS-CNT-004 AC-AUTH-001 AC-LRN-009 AC-CNT-004 | Bij directe URL of refresh opnieuw server-side autoriseren |
REQ-UC-LLN-OEF-005-023 | SRS-LRN-003 SRS-NFR-SEC-001 AC-LRN-003 AC-NFR-SEC-001 | De gegeven antwoordwaarde kunnen tonen wanneer deze veilig renderbaar is |
REQ-UC-LLN-OEF-005-024 | SRS-LRN-003 SRS-MOD-003 SRS-NFR-SEC-001 AC-LRN-003 AC-MOD-003 AC-NFR-SEC-001 | De juiste antwoordwaarde veilig renderen volgens modulespecifieke presentatiehulp |
REQ-UC-LLN-OEF-005-025 | SRS-LRN-009 AC-LRN-009 | De feedbackweergave verlaten kunnen zonder extra datamutatie |
REQ-UC-LLN-OEF-005-026 | SRS-LRN-003 AC-LRN-003 | De voortgangsindicator consistent houden met de reeds opgeslagen vraagstatus |
REQ-UC-LLN-OEF-005-027 | SRS-LRN-009 AC-LRN-009 | Bij ontbrekende runcontext geen feedback tonen |
REQ-UC-LLN-OEF-005-028 | SRS-LRN-003 SRS-NFR-SEC-001 AC-LRN-003 AC-NFR-SEC-001 | Feedback na een reguliere antwoordroute en na een Geen idee-route op dezelfde veilige feedbackcomponent kunnen tonen |
REQ-UC-LLN-OEF-005-029 | SRS-LRN-006 AC-LRN-006 | Bij laatste vraag routeren naar de afrondflow en niet rechtstreeks naar een niet-berekend resultaat |
REQ-UC-LLN-OEF-005-030 | SRS-RDM-001 SRS-LRN-009 AC-RDM-001 AC-LRN-009 | Feedback tonen als afgeleid readmodel en niet als aparte persistente bron |
REQ-UC-LLN-OEF-005-031 | SRS-LRN-003 AC-LRN-003 | Voorkomen dat feedbackweergave een eerder opgeslagen antwoord inhoudelijk wijzigt |
REQ-UC-LLN-OEF-005-032 | SRS-LRN-003 SRS-MOD-003 SRS-NFR-SEC-001 AC-LRN-003 AC-MOD-003 AC-NFR-SEC-001 | Modulespecifieke antwoordnotatie veilig kunnen renderen in de feedbackweergave |
REQ-UC-LLN-OEF-005-033 | SRS-LRN-003 AC-LRN-003 | Verhinderen dat toekomstige juiste antwoorden zichtbaar worden via de feedbackcomponent |
REQ-UC-LLN-OEF-005-034 | SRS-LRN-009 AC-LRN-009 | Bij overgang naar volgende vraag opnieuw actuele runstatus controleren |
REQ-UC-LLN-OEF-005-035 | SRS-LRN-006 AC-LRN-006 | Bij overgang naar resultaat controleren dat de laatste vraag verwerkt is |
REQ-UC-LLN-OEF-005-036 | SRS-LRN-009 AC-LRN-009 | Bij browser-terug of refresh dezelfde opgeslagen feedbacktoestand tonen zonder nieuwe mutatie |
REQ-UC-LLN-OEF-005-037 | SRS-LRN-009 SRS-MOD-003 SRS-NFR-SEC-001 SRS-NFR-AVL-001 AC-LRN-009 AC-MOD-003 AC-NFR-SEC-001 AC-NFR-AVL-001 | Veilige foutafhandeling tonen wanneer feedback door ontbrekende modulepresentatie niet betrouwbaar kan worden opgebouwd |
REQ-UC-LLN-OEF-005-038 | SRS-LRN-009 AC-LRN-009 | Feedbackgegevens beperken tot de actuele leerling, run en vraag |