UC-LLN-RES-002 — Resultaatstatistieken bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-LLN-RES-002 |
| Naam | Resultaatstatistieken bekijken |
| Domein | Leerling / Resultaten, statistieken, geschiedenis en PDF-export |
| Primaire actor | Leerling |
| Secundaire actor(en) | OefenHub frontend, OefenHub backend, database, statistiekservice |
| Rolcontext | Ingelogde leerling die een afgeronde exercise run bekijkt via resultaatweergave of geschiedenis. |
| Betrokken schermen | Resultaatpopup, statistiekensectie, resultaatdetail vanuit geschiedenis. |
| Gerelateerde usecases | UC-LLN-RES-001 — Resultaat na afronding bekijken; UC-LLN-RES-004 — Resultaat als PDF downloaden; UC-LLN-HIS-003 — Resultaatdetail vanuit geschiedenis openen; UC-LLN-OEF-008 — Oefening afronden |
| Primaire entiteiten | ExerciseRuns, opgeslagen statistiekvelden, vraaggebonden timingdata |
| Secundaire entiteiten / events | Vraagstatistiekdetails, resultaatviewmodel, statistiekensectie |
| Gerelateerde popups | Resultaatpopup |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe de leerling de statistieken van een afgeronde oefening bekijkt. De statistieken zijn onderdeel van de resultaatweergave en geven inzicht in tijdsbesteding, spreiding en uitschieters binnen één afgeronde exercise run.
De statistieken worden niet door de frontend opnieuw berekend. De normale bron is de set uniforme runstatistieken die bij afronding is berekend en opgeslagen. Herberekening uit de onderliggende vraagpayload is alleen een technische herstel- of controlemogelijkheid en is geen normale gebruikersflow.
De statistiekensectie toont minimaal gemiddelde tijd per vraag, mediaan, ondergrens, bovengrens, totale doorlooptijd, uitschieters ondergrens en uitschieters bovengrens. Wanneer geen uitschieters bestaan, wordt functioneel zichtbaar gemaakt dat er geen uitschieters zijn.
DRY-afbakening: deze usecase is de bron voor het tonen en interpreteren van resultaatstatistieken. Het afronden en berekenen tijdens de run hoort bij UC-LLN-OEF-008. PDF-export gebruikt dezelfde statistiekgegevens, maar de PDF-opmaak hoort bij UC-LLN-RES-004.
3. Scope
Deze usecase omvat wel:
- tonen van statistieken binnen de resultaatweergave
- lezen van opgeslagen statistiekvelden op runniveau
- tonen van gemiddelde tijd per vraag
- tonen van mediaan
- tonen van ondergrens en bovengrens
- tonen van totale doorlooptijd oefening
- tonen van uitschieters ondergrens en bovengrens
- tonen van
Geenwanneer geen uitschieters aanwezig zijn - veilig omgaan met ontbrekende of niet-berekenbare statistieken
- waarborgen dat statistieken bij PDF en geschiedenis dezelfde bron gebruiken
Deze usecase omvat niet:
- beantwoorden van vragen
- berekenen van vraagresultaten
- initieel afronden van de run
- handmatig wijzigen van statistieken
- statistieken over meerdere runs of voortgang over tijd
- docent-, ouder- of beheeranalyse over leerlingen
- PDF-generatie zelf
- databaseherstel of technische herberekening als beheeractie
- live-meekijkstatistieken tijdens een lopende run
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | Er is een afgeronde exercise run. |
| PRE-002 | De leerling heeft recht om het resultaat van deze run te bekijken. |
| PRE-003 | De resultaatweergave of resultaatdetailweergave is geopend of wordt geopend. |
| PRE-004 | De opgeslagen statistiekvelden zijn beschikbaar of er is een veilige fallback. |
| PRE-005 | De vraaggebonden timingdata is historisch bewaard voor reconstructie waar nodig. |
| PRE-006 | De frontend kan tijdwaarden functioneel leesbaar weergeven. |
| PRE-007 | De statistiekensectie kan omgaan met lege of ontbrekende uitschieterlijsten. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De leerling ziet de beschikbare statistieken van de afgeronde run. |
| POST-002 | De statistieken zijn gebaseerd op opgeslagen rungegevens. |
| POST-003 | Er zijn geen statistieken door de leerling gewijzigd. |
| POST-004 | Ontbrekende statistieken veroorzaken geen onveilige weergave. |
| POST-005 | Dezelfde statistiekbron kan worden gebruikt voor PDF-export. |
| POST-006 | Er zijn geen domeinmutaties uitgevoerd door het bekijken van statistieken. |
6. Trigger
De usecase start wanneer de resultaatweergave van een afgeronde exercise run de statistiekensectie laadt of wanneer de leerling naar deze sectie scrolt binnen de resultaatpopup of resultaatdetailweergave.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Leerling | Resultaatpopup | Opent of bekijkt het resultaat. | Resultaatcomponent bereidt statistiekensectie voor. | UC-LLN-RES-001. |
| 2 | OefenHub frontend | Statistiekensectie | Vraagt statistiekgegevens op of ontvangt ze in resultaatviewmodel. | Backend levert opgeslagen statistiekvelden. | Geen frontendberekening. |
| 3 | OefenHub backend | Resultaatservice | Controleert autorisatie voor runinzage. | Alleen toegestane context gaat door. | Eigen run of geldige inzagecontext. |
| 4 | OefenHub backend | Database | Leest opgeslagen statistiekvelden op ExerciseRuns. | Statistieken worden beschikbaar. | Runvelden zijn leidend. |
| 5 | OefenHub backend | Resultaatservice | Controleert of alle verplichte statistiekwaarden aanwezig zijn. | Ontbrekende waarden worden veilig gemarkeerd. | Geen stille misrepresentatie. |
| 6 | OefenHub backend | Resultaatservice | Leest eventuele uitschieterlijsten of afgeleide uitschietervelden. | Uitschieters kunnen worden getoond. | Vraagnummer + doorlooptijd. |
| 7 | OefenHub backend | Resultaatservice | Formatteert of labelt waarden voor frontend. | Tijdwaarden zijn geschikt voor UI-weergave. | Minuten/seconden waar nodig. |
| 8 | OefenHub frontend | Statistiekensectie | Toont gemiddelde tijd per vraag. | Leerling ziet gemiddelde doorlooptijd. | Rekenkundig gemiddelde. |
| 9 | OefenHub frontend | Statistiekensectie | Toont mediaan. | Leerling ziet middelste doorlooptijdwaarde. | Mediaan volgens centrale definitie. |
| 10 | OefenHub frontend | Statistiekensectie | Toont ondergrens en bovengrens. | Leerling ziet grenswaarden voor uitschieters. | IQR-gebaseerde grenzen. |
| 11 | OefenHub frontend | Statistiekensectie | Toont totale doorlooptijd oefening. | Leerling ziet totale duur. | Minuten en seconden. |
| 12 | OefenHub frontend | Statistiekensectie | Toont uitschieters ondergrens. | Leerling ziet langzame of snelle afwijkingen onder grens. | Label bevat aantal waar relevant. |
| 13 | OefenHub frontend | Statistiekensectie | Toont uitschieters bovengrens. | Leerling ziet afwijkingen boven grens. | Label bevat aantal waar relevant. |
| 14 | OefenHub frontend | Statistiekensectie | Toont Geen wanneer lijst leeg is. | Afwezigheid van uitschieters is expliciet zichtbaar. | Geen lege tabel zonder betekenis. |
| 15 | OefenHub frontend | Resultaatpopup | Houdt statistiekensectie scrollbaar binnen resultaatweergave. | Resultaat blijft leesbaar. | UI-gedrag. |
| 16 | OefenHub backend | Logging/event | Toont de statistiekensectie zonder domeinmutatie. | Geen domeinmutatie. | Geen functioneel domeinevent. |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 3 | Geen autorisatie voor resultaat | Statistieken worden niet geladen. | Toegang geweigerd | Geen |
| ALT-002 | 4 | Statistiekvelden ontbreken volledig | Sectie toont niet-beschikbaarafhandeling of resultaatweergave wordt beperkt. | Componentmelding | Geen |
| ALT-003 | 5 | Enkele optionele statistiekwaarden ontbreken | Alleen beschikbare waarden worden getoond met duidelijke aanduiding. | Componentmelding | Geen |
| ALT-004 | 6 | Uitschieterlijst ontbreekt | Systeem toont Geen alleen wanneer dit inhoudelijk zeker is; anders niet-beschikbaar. | Componentmelding | Geen |
| ALT-005 | 7 | Formattering faalt | Ruwe technische fout wordt niet getoond; veilige weergave of foutmelding. | Componentmelding | Geen |
| ALT-006 | 8 | Gemiddelde tijd is nul of niet zinvol | Systeem toont waarde alleen wanneer functioneel geldig. | Componentmelding | Geen |
| ALT-007 | 10 | IQR-grenzen zijn niet berekenbaar door te weinig data | Systeem toont dat uitschieters niet beschikbaar of niet van toepassing zijn. | Componentmelding | Geen |
| ALT-008 | 11 | Totale doorlooptijd ontbreekt | Sectie toont overige statistieken waar verantwoord. | Componentmelding | Geen |
| ALT-009 | 12 | Er zijn geen uitschieters ondergrens | Tekst Geen wordt getoond. | Niet van toepassing | Geen |
| ALT-010 | 13 | Er zijn geen uitschieters bovengrens | Tekst Geen wordt getoond. | Niet van toepassing | Geen |
| ALT-011 | 15 | Viewport is te klein | Resultaatpopup blijft scrollbaar. | Niet van toepassing | Geen |
| ALT-012 | 4 | Technische herstelberekening is nodig | Dit valt buiten normale leerlingflow en wordt niet interactief uitgevoerd. | Niet van toepassing | Geen in deze usecase |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Resultaatstatistieken worden alleen getoond voor afgeronde exercise runs. |
| BR-002 | Complexe statistieken worden bij normale weergave gelezen uit opgeslagen runvelden. |
| BR-003 | De frontend berekent statistieken niet opnieuw als bron van waarheid. |
| BR-004 | Herberekening uit payload is alleen bedoeld als technische herstel- of controlemogelijkheid. |
| BR-005 | Gemiddelde tijd per vraag is het rekenkundig gemiddelde van vraagdoorlooptijden. |
| BR-006 | De mediaan is de middelste gesorteerde waarde of het gemiddelde van de twee middelste waarden bij een even aantal vragen. |
| BR-007 | Q1 is de mediaan van de onderste helft en Q3 van de bovenste helft. |
| BR-008 | Bij een oneven aantal waarden telt de centrale mediaan niet dubbel mee in beide helften. |
| BR-009 | IQR is Q3 - Q1. |
| BR-010 | De ondergrens is Q1 - (1,5 x IQR). |
| BR-011 | De bovengrens is Q3 + (1,5 x IQR). |
| BR-012 | Waarden onder de ondergrens gelden als uitschieters ondergrens. |
| BR-013 | Waarden boven de bovengrens gelden als uitschieters bovengrens. |
| BR-014 | Wanneer geen uitschieters aanwezig zijn, wordt Geen getoond. |
| BR-015 | Totale doorlooptijd wordt functioneel leesbaar weergegeven in minuten en seconden. |
| BR-016 | Statistiekweergave wijzigt geen run, voortgang, profiel, relaties, berichten of meldingen. |
| BR-017 | PDF-export moet dezelfde statistiekbron gebruiken als de resultaatweergave. |
| BR-018 | Statistieken over meerdere runs vallen buiten deze usecase. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
ExerciseRunId | Moet bestaan en afgerond zijn. |
| Inzagecontext | Moet server-side zijn toegestaan. |
| Vraagdoorlooptijden | Moeten niet-negatief zijn. |
| Gemiddelde tijd | Moet numeriek en functioneel toonbaar zijn. |
| Mediaan | Moet consistent zijn met gesorteerde vraagdoorlooptijden. |
| Q1 / Q3 | Moeten volgens centrale definitie zijn berekend. |
| Ondergrens / bovengrens | Moeten consistent zijn met IQR-berekening. |
| Uitschieters | Moeten verwijzen naar bestaande vraagnummers binnen de run. |
| Totale doorlooptijd | Moet overeenkomen met opgeslagen run- of vraagtiming. |
| Weergavetekst | Mag geen technische exceptioninformatie bevatten. |
| PDF-bron | Moet dezelfde statistiekvelden kunnen gebruiken. |
11. Datamutaties en events
| Stap | Type | Entiteit / gegevensbron | Mutatie |
|---|---|---|---|
| 4 | Read | ExerciseRuns | Opgeslagen statistiekvelden worden gelezen. |
| 6 | Read | Vraagstatistiekdetails | Uitschieterlijsten of vraagverwijzingen worden gelezen. |
| 8 | Presentatie | Statistiekensectie | Gemiddelde wordt getoond. |
| 9 | Presentatie | Statistiekensectie | Mediaan wordt getoond. |
| 10 | Presentatie | Statistiekensectie | Grenzen worden getoond. |
| 11 | Presentatie | Statistiekensectie | Totale doorlooptijd wordt getoond. |
| 12 | Presentatie | Statistiekensectie | Uitschieters ondergrens worden getoond. |
| 13 | Presentatie | Statistiekensectie | Uitschieters bovengrens worden getoond. |
Statistieken bekijken registreert geen functioneel domeinevent. De statistieken zijn reeds bij afronding opgeslagen of consistent afgeleid uit opgeslagen rungegevens.
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
ExerciseRuns | Statistieken zijn al opgeslagen; bekijken wijzigt niets. |
ExerciseRunProgress | Vraagvoortgang wordt niet aangepast. |
| Vraagpayload | Payload wordt niet herschreven bij bekijken. |
Users | Accountgegevens blijven ongewijzigd. |
UserSettings | Voorkeuren blijven ongewijzigd. |
Exercises | Oefeningconfiguratie blijft ongewijzigd. |
ExerciseModules | Modulemetadata blijft ongewijzigd. |
SystemMessages | Geen systeembericht. |
Tickets | Geen melding. |
| PDF-bestand | PDF wordt pas op aanvraag in UC-LLN-RES-004 gegenereerd. |
13. State diagram
Niet van toepassing als zelfstandig statusmodel. Statistiekweergave is onderdeel van de resultaatweergave en wijzigt geen persistent statusobject.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Statistieken tonen in resultaatweergave
16.2 Ontbrekende statistiekdata
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Statistiekweergave | Statistieken zijn onderdeel van de resultaatcomponent. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Functioneel Ontwerp beschrijft geschiedenis, filters, resultaatdetail, statistieken, opnieuw maken en PDF-download vanuit leerlingcontext. |
| Technisch Ontwerp | Technisch 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 Specification | Software Requirements Specification bevat centrale eisen en acceptatiecriteria voor resultaten, geschiedenis, statistieken, PDF-export en autorisatie op historische data. |
| Database-informatie | Database-informatie blijft bron voor runresultaten, voortgangsrecords, snapshots en exportbrondata; normale PDF-downloads introduceren geen permanente PDF-tabel. |
| Ontwerpbronnen | Ontwerpbronnen 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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-LLN-RES-002-001 | SRS-LRN-006 AC-LRN-006 | Resultaatstatistieken tonen voor afgeronde exercise runs |
REQ-UC-LLN-RES-002-002 | SRS-AUTH-001 SRS-LRN-006 AC-AUTH-001 AC-LRN-006 | Statistieken server-side autoriseren via dezelfde resultaatinzagecontext |
REQ-UC-LLN-RES-002-003 | SRS-LRN-009 AC-LRN-009 | Gemiddelde tijd per vraag tonen wanneer beschikbaar |
REQ-UC-LLN-RES-002-004 | SRS-LRN-009 AC-LRN-009 | Mediaan tonen wanneer beschikbaar |
REQ-UC-LLN-RES-002-005 | SRS-LRN-009 AC-LRN-009 | Ondergrens en bovengrens tonen wanneer beschikbaar |
REQ-UC-LLN-RES-002-006 | SRS-LRN-009 AC-LRN-009 | Totale doorlooptijd tonen in functioneel leesbare vorm |
REQ-UC-LLN-RES-002-007 | SRS-LRN-009 AC-LRN-009 | Uitschieters ondergrens en bovengrens tonen met vraagnummer en tijd wanneer aanwezig |
REQ-UC-LLN-RES-002-008 | SRS-LRN-009 AC-LRN-009 | Geen tonen wanneer geen uitschieters aanwezig zijn |
REQ-UC-LLN-RES-002-009 | SRS-LRN-008 AC-LRN-008 | Statistieken bij normale weergave niet opnieuw in de frontend berekenen |
REQ-UC-LLN-RES-002-010 | SRS-LRN-009 SRS-NFR-SEC-001 AC-LRN-009 AC-NFR-SEC-001 | Veilig omgaan met ontbrekende statistiekdata |
REQ-UC-LLN-RES-002-011 | SRS-LRN-006 SRS-PDF-001 AC-LRN-006 AC-PDF-001 | PDF-export en resultaatweergave dezelfde statistiekbron laten gebruiken |
REQ-UC-LLN-RES-002-012 | SRS-LRN-009 AC-LRN-009 | Bij bekijken van statistieken geen domeindata wijzigen |