Skip to main content

UC-LLN-RES-001 — Resultaat na afronding bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-RES-001
NaamResultaat na afronding bekijken
DomeinLeerling / Resultaten, statistieken, geschiedenis en PDF-export
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, database, technische oefenmodule
RolcontextIngelogde leerling die een exercise run heeft afgerond of vanuit een toegestane resultaatcontext terugkeert.
Betrokken schermenOefenscherm, oefeningpagina, resultaatpopup, resultaatdetailcomponent, resultaatacties.
Gerelateerde usecasesUC-LLN-OEF-008 — Oefening afronden; UC-LLN-RES-002 — Resultaatstatistieken bekijken; UC-LLN-RES-003 — Oefening opnieuw maken; UC-LLN-RES-004 — Resultaat als PDF downloaden; UC-LLN-HIS-003 — Resultaatdetail vanuit geschiedenis openen; UC-LLN-DEL-001 — Oefening delen met vriend
Primaire entiteitenExerciseRuns, opgeslagen vraag- en antwoordpayload, uniforme runstatistieken
Secundaire entiteiten / eventsExercises, Categories, Levels, ExerciseModules, resultaatviewmodel
Gerelateerde popupsResultaatpopup
PopupregisterNiet van toepassing als normale systeem-popup; resultaatpopup is een resultaatcomponent met eigen renderstructuur
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling na afronding van een oefening het resultaat bekijkt. De resultaatweergave is een grote, scrollbare resultaatcomponent of resultaatpopup die de samenvatting van de afgeronde exercise run toont, aangevuld met de vraag- en antwoorddetails en de beschikbare vervolgacties.

De resultaatweergave gebruikt de historisch opgeslagen runcontext. De datum in de samenvatting is het afrondmoment van de exercise run. De totalen voor aantal vragen, goed, fout en Geen idee komen uit de uniforme runvelden die tijdens of bij afronding zijn opgeslagen. De vraagdetails worden gelezen uit de opgeslagen vraag- en antwoorddata van dezelfde run.

Deze usecase is primair een lees- en presentatieflow. Het opnieuw maken van de oefening, het downloaden van PDF en het delen van de oefening zijn vervolgacties met eigen usecases. Het sluiten van de resultaatweergave is onderdeel van deze usecase, omdat daarmee alleen de component wordt gesloten en geen domeinmutatie ontstaat.

DRY-afbakening: het berekenen van statistieken hoort bij afronding en het statistiekendomein. Deze usecase toont het resultaat en verwijst voor de exacte statistiekendefinities naar UC-LLN-RES-002. PDF-opmaakregels worden niet gedupliceerd, maar horen bij UC-LLN-RES-004.

3. Scope

Deze usecase omvat wel:

  • openen van de resultaatweergave direct na afronding
  • openen van dezelfde resultaatweergave vanuit een toegestane resultaatcontext
  • tonen van de resultaatkop met titel en context
  • tonen van de samenvatting van gebruiker, datum, aantal vragen, goed en fout
  • tonen van Geen idee wanneer de oefening dit ondersteunt of wanneer de run zulke markeringen bevat
  • tonen van duplicaatinformatie wanneer DuplicateOf gevuld is
  • tonen van de resultatentabel met vraag, gegeven antwoord, juiste antwoord en resultaat
  • tonen van markeringsinformatie voor Geen idee
  • aanbieden van vervolgacties die in andere usecases worden afgehandeld
  • sluiten van de resultaatweergave
  • veilige afhandeling wanneer resultaatdata niet toegankelijk of niet beschikbaar is

Deze usecase omvat niet:

  • afronden van de exercise run zelf
  • herberekenen van eindstatistieken als normale route
  • genereren van een nieuwe duplicate run
  • PDF-generatie
  • delen met vrienden
  • wijzigen van oefeningconfiguratie
  • verwijderen van geschiedenis
  • docent-testresultaten als permanente geschiedenis
  • beheerweergaven voor resultaten
  • live-meekijken tijdens de oefening

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd als leerling of heeft een geldige resultaatcontext vanuit dezelfde sessie.
PRE-002De exercise run bestaat.
PRE-003De exercise run is afgerond of formeel resultaatwaardig.
PRE-004De leerling is eigenaar van de run of heeft via de gekozen route recht op inzage.
PRE-005De uniforme runvelden voor samenvatting zijn beschikbaar.
PRE-006De opgeslagen vraag- en antwoorddetails zijn beschikbaar voor resultaatweergave.
PRE-007De gekoppelde oefening-, categorie- en niveaucontext is historisch herleidbaar.
PRE-008De resultaatcomponent kan de inhoud scrollbaar en leesbaar tonen.

5. Post-condities

IDResultaat
POST-001De leerling heeft het resultaat van de afgeronde run kunnen bekijken.
POST-002Er is geen inhoudelijke domeinmutatie uitgevoerd door alleen bekijken.
POST-003De run blijft ongewijzigd afgerond.
POST-004De resultaatweergave toont dezelfde brondata als geschiedenis en PDF-export.
POST-005Vervolgacties zijn alleen beschikbaar wanneer de bijbehorende voorwaarden gelden.
POST-006Bij sluiten keert de leerling terug naar de relevante oefeningpagina of vorige context.
POST-007Niet-toegankelijke of ontbrekende resultaatdata is veilig geblokkeerd.
POST-008Er zijn geen relaties, autorisaties, berichten, meldingen of profielinstellingen gewijzigd.

6. Trigger

De usecase start wanneer de leerling na afronding van een oefening automatisch naar het resultaat wordt geleid, of wanneer de leerling vanuit een resultaatwaardige context het resultaat van een afgeronde run opent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOefenschermRondt de laatste vraag af en kiest Bekijk resultaat.Oefenflow vraagt resultaatcontext op.UC-LLN-OEF-008.
2OefenHub frontendResultaatrouteStuurt runcontext naar backend of opent resultaatcomponent met bekende run-id.Backendvalidatie wordt gestart.ExerciseRunId.
3OefenHub backendRouteguardControleert sessie en leerlingcontext.Alleen geldige gebruikerscontext gaat door.Server-side autorisatie.
4OefenHub backendResultaatserviceControleert dat de run bestaat.Onbekende run wordt geblokkeerd.ExerciseRuns.Id.
5OefenHub backendResultaatserviceControleert eigenaar of toegestane inzagecontext.Onbevoegde inzage wordt geweigerd.Eigen run of expliciete toegangscontext.
6OefenHub backendResultaatserviceControleert dat de run afgerond is.Alleen afgeronde runs krijgen volledige resultaatweergave.CompletedAtUtc of equivalente afrondstatus.
7OefenHub backendResultaatserviceLaadt uniforme samenvattingsvelden.Aantal vragen, goed, fout en aantal Geen idee zijn beschikbaar wanneer relevant.Runvelden zijn leidend.
8OefenHub backendResultaatserviceLaadt historische context van niveau, categorie, oefening en module.Subtitel en context kunnen worden getoond.Historische runcontext.
9OefenHub backendResultaatserviceLaadt vraag- en antwoorddetails.Resultatentabel kan worden opgebouwd.Payload / voortgangsdata.
10OefenHub backendResultaatserviceBepaalt of duplicaatmelding nodig is.Duplicaatinformatie wordt voorbereid wanneer DuplicateOf gevuld is.Duplicate chain.
11OefenHub backendResultaatserviceBepaalt beschikbare vervolgacties.Knoppen worden aan of uit gezet.Hermaakbaar, downloadbaar, deelbaar.
12OefenHub frontendResultaatpopupToont titel Resultaat oefening.Leerling ziet resultaatcomponent.Vaste titel.
13OefenHub frontendResultaatpopupToont subtitel met categorie en oefening.Context is direct herkenbaar.Historisch geldige naamgeving.
14OefenHub frontendSamenvattingToont naam gebruiker, afronddatum, aantal vragen, goed en fout.Leerling ziet kernresultaat.Datum is afrondmoment.
15OefenHub frontendSamenvattingToont aantal Geen idee wanneer relevant.Markeringen zijn zichtbaar als onderdeel van resultaat.Telt functioneel als fout.
16OefenHub frontendResultatentabelToont per vraag opgave, gegeven antwoord, juiste antwoord en resultaat.Leerling kan de eigen antwoorden controleren.Volledige zichtbare details.
17OefenHub frontendResultatentabelToont markering bij Geen idee.Gemarkeerde vragen zijn herkenbaar.Donkergeel vraagteken of gelijkwaardige markering.
18OefenHub frontendStatistiekensectieToont statistiekensamenvatting via UC-LLN-RES-002.Leerling ziet tijd- en spreidingsinformatie.Geen herberekening in frontend.
19OefenHub frontendResultaatactiesToont beschikbare acties.Leerling kan opnieuw maken, PDF downloaden, delen of sluiten waar toegestaan.Vervolgusecases.
20LeerlingResultaatpopupKiest Sluit resultaat.Resultaatcomponent sluit.Geen domeinmutatie.
21OefenHub frontendOefeningpaginaToont de relevante oefeningpagina of vorige context.Leerling kan verder navigeren.Routecontext.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Sessie is verlopenRouteguard verwijst naar login of publieke context.RouteguardafhandelingGeen
ALT-0024Run bestaat nietResultaatweergave wordt niet geopend.Niet-beschikbaarmeldingGeen
ALT-0035Leerling is geen eigenaarBackend weigert inzage.Toegang geweigerdGeen
ALT-0046Run is niet afgerondVolledige resultaatweergave wordt geblokkeerd; leerling gaat terug naar oefening of hervatten.ComponentmeldingGeen
ALT-0057Uniforme samenvatting ontbreektResultaatweergave wordt veilig geblokkeerd of toont herstelmelding volgens technische keuze.ComponentmeldingGeen normale mutatie
ALT-0069Vraagdetails zijn beschadigd of ontbrekenResultaatdetail kan niet volledig worden getoond; systeem toont veilige foutafhandeling.ComponentmeldingGeen
ALT-00710DuplicateOf verwijst naar niet meer toegankelijke bronDuplicaatmelding wordt beperkt tot beschikbare historische informatie.Niet van toepassingGeen
ALT-00811Module is verwijderdMaak deze oefening opnieuw wordt niet beschikbaar gemaakt.Knop verborgen of uitgeschakeldGeen
ALT-00911Delen is niet toegestaanDeelactie wordt niet getoond of wordt geblokkeerd door deelflow.DeelflowmeldingGeen in deze usecase
ALT-01018Statistiekvelden ontbrekenStatistiekensectie toont alleen beschikbare gegevens of foutafhandeling.ComponentmeldingGeen
ALT-01120Leerling sluit via kruisDezelfde sluitlogica wordt uitgevoerd.Niet van toepassingGeen
ALT-01220Browser wordt geslotenResultaatweergave sluit zonder domeinmutatie.Niet van toepassingGeen
ALT-01319Leerling kiest PDFUC-LLN-RES-004 start.Niet van toepassingBuiten deze usecase
ALT-01419Leerling kiest opnieuw makenUC-LLN-RES-003 start.Niet van toepassingBuiten deze usecase
ALT-01519Leerling kiest delenDeelflow start wanneer beschikbaar.Niet van toepassingBuiten deze usecase

9. Business rules

IDRegel
BR-001Resultaatweergave is alleen beschikbaar voor afgeronde of formeel resultaatwaardige exercise runs.
BR-002De leerling mag uitsluitend eigen resultaten bekijken, tenzij een andere usecase expliciet inzagerecht geeft.
BR-003De datum in de resultaatweergave is standaard het afrondmoment van de run.
BR-004Uniforme totalen worden gelezen uit opgeslagen runvelden en niet opnieuw door de frontend berekend.
BR-005Vraagdetails worden gelezen uit de historische rungegevens.
BR-006Geen idee wordt zichtbaar gemaakt wanneer de run zulke markeringen bevat.
BR-007Vragen met Geen idee tellen als fout.
BR-008Duplicaatinformatie wordt getoond wanneer DuplicateOf of vergelijkbare duplicaatrelatie aanwezig is.
BR-009Alleen het bekijken van resultaat wijzigt geen domeindata.
BR-010Het sluiten van de resultaatweergave wijzigt de run niet.
BR-011Resultaatweergave moet dezelfde inhoudelijke bron gebruiken als geschiedenis en PDF-export.
BR-012Technische identifiers worden niet als herkenningsmiddel aan de leerling getoond.
BR-013Vervolgacties worden alleen beschikbaar gemaakt wanneer hun eigen voorwaarden gelden.
BR-014Een verwijderde technische module blokkeert opnieuw maken wanneer de historische run niet meer uitvoerbaar is.
BR-015Resultaatweergave moet scrollbaar blijven wanneer de inhoud groter is dan de viewport.
BR-016De tabelkop van de resultaatweergave blijft functioneel herkenbaar bij scrollbare inhoud.
BR-017De resultaatweergave toont geen beheer- of auditinformatie.
BR-018De resultaatweergave wijzigt geen relaties, autorisaties, berichten, meldingen of profielinstellingen.

10. Datavalidatie

Veld / objectValidatie
ExerciseRunIdMoet bestaan en resultaatwaardig zijn.
ExerciseRuns.UserIdMoet overeenkomen met de leerling of een toegestane inzagecontext.
CompletedAtUtcMoet gevuld zijn voor normale resultaatweergave.
TotalQuestionsMoet groter zijn dan nul.
CorrectCountMag niet groter zijn dan totaal aantal vragen.
IncorrectCountMag niet groter zijn dan totaal aantal vragen.
DunnoCountMag niet groter zijn dan totaal aantal vragen en telt binnen fout.
VraagdetailsMoeten renderbaar zijn zonder actieve code of onveilige inhoud.
Juiste antwoordenMoeten beschikbaar zijn volgens opgeslagen runcontext.
Historische naamgevingMoet uit runcontext of gekoppelde historische gegevens worden bepaald.
VervolgactiesMoeten server-side beschikbaarheidscontrole hebben.
ResultaatcomponentMoet veilig omgaan met lange tekst, meerregelige antwoorden en ontbrekende optionele data.

11. Datamutaties en events

StapTypeEntiteit / gegevensbronMutatie
2ReadExerciseRunsRuncontext wordt opgehaald.
7ReadExerciseRunsUniforme resultaatvelden worden gelezen.
8ReadExercises, Categories, LevelsHistorische context wordt gelezen waar die voor weergave nodig is.
9ReadVraag- en antwoordpayloadVraagdetails worden gelezen.
11ReadmodelActiebeschikbaarheidBeschikbare vervolgacties worden server-side bepaald.
12PresentatieResultaatviewmodelDe resultaatweergave wordt opgebouwd uit bestaande rundata.

Alleen bekijken en sluiten van het resultaat registreert geen functioneel domeinevent en wijzigt geen domeindata.

12. Geen datamutaties

EntiteitReden
ExerciseRunsBekijken van resultaat wijzigt de run niet.
ExerciseRunProgressVraagvoortgang is al vastgelegd.
UsersResultaatweergave wijzigt geen accountgegevens.
UserSettingsResultaatweergave wijzigt geen voorkeuren.
UserRolesRollen blijven ongewijzigd.
StudentLevelAuthorizationsAutorisaties worden alleen gecontroleerd, niet gewijzigd.
UserRelationshipsRelaties zijn niet betrokken.
SystemMessagesEr wordt geen systeembericht aangemaakt.
PrivateMessageThreadsEr wordt geen privébericht aangemaakt.
TicketsEr wordt geen melding aangemaakt.
PDF-bestandPDF wordt pas gegenereerd in UC-LLN-RES-004.
Duplicate runOpnieuw maken gebeurt pas in UC-LLN-RES-003.

13. State diagram

Niet van toepassing als persistent statusmodel. De exercise run is vóór deze usecase al afgerond. De resultaatweergave kent alleen tijdelijke UI-toestand en wijzigt geen runstatus.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Resultaat openen na afronding

16.2 Resultaat sluiten

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingResultaatweergaveResultaatpopup is een resultaatcomponent, geen popupregister-popup.

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

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft geschiedenis, filters, resultaatdetail, statistieken, opnieuw maken en PDF-download vanuit leerlingcontext.
Technisch OntwerpTechnisch Ontwerp: oefenruns en resultaten, PDF-export, readmodels en tellers, frontend-resultaatweergave en privacy/retentie beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase.
Software Requirements SpecificationSoftware Requirements Specification bevat centrale eisen en acceptatiecriteria voor resultaten, geschiedenis, statistieken, PDF-export en autorisatie op historische data.
Database-informatieDatabase-informatie blijft bron voor runresultaten, voortgangsrecords, snapshots en exportbrondata; normale PDF-downloads introduceren geen permanente PDF-tabel.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor resultaatweergave, geschiedenis, statistieken en exportrepresentatie.

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-LLN-RES-001-001SRS-LRN-006
AC-LRN-006
Na afronding van een exercise run een resultaatweergave kunnen tonen aan de eigenaar van de run
REQ-UC-LLN-RES-001-002SRS-AUTH-001
SRS-LRN-006
AC-AUTH-001
AC-LRN-006
Resultaatinzage server-side autoriseren
REQ-UC-LLN-RES-001-003SRS-LRN-006
AC-LRN-006
De resultaatdatum baseren op het afrondmoment van de exercise run
REQ-UC-LLN-RES-001-004SRS-LRN-009
AC-LRN-009
Uniforme totalen tonen voor aantal vragen, goed en fout
REQ-UC-LLN-RES-001-005SRS-LRN-004
AC-LRN-004
Geen idee-markeringen tonen wanneer die in de run voorkomen
REQ-UC-LLN-RES-001-006SRS-LRN-003
AC-LRN-003
Per vraag de opgave, het gegeven antwoord, het juiste antwoord en het resultaat tonen
REQ-UC-LLN-RES-001-007SRS-LRN-009
AC-LRN-009
Duplicaatinformatie tonen wanneer de run onderdeel is van een duplicaatreeks
REQ-UC-LLN-RES-001-008SRS-LRN-009
AC-LRN-009
Alleen vervolgacties tonen of toestaan wanneer de bijbehorende voorwaarden gelden
REQ-UC-LLN-RES-001-009SRS-LRN-006
AC-LRN-006
Bij alleen bekijken van resultaat geen domeindata wijzigen
REQ-UC-LLN-RES-001-010SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-LRN-006
SRS-NFR-SEC-001
SRS-NFR-ACC-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-LRN-006
AC-NFR-SEC-001
AC-NFR-ACC-001
Veilig omgaan met ontbrekende of niet-toegankelijke resultaatdata
REQ-UC-LLN-RES-001-011SRS-LRN-006
AC-LRN-006
De resultaatweergave kunnen sluiten zonder domeinmutatie
REQ-UC-LLN-RES-001-012SRS-LRN-006
SRS-PDF-001
SRS-NFR-AUD-001
AC-LRN-006
AC-PDF-001
AC-NFR-AUD-001
Resultaatweergave, geschiedenis en PDF-export baseren op dezelfde opgeslagen runbron