UC-DOC-RES-004 - Resultaatdetails en statistieken bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-RES-004 |
| Naam | Resultaatdetails en statistieken bekijken |
| Domein | Docent |
| Subdomein | Resultaten en geschiedenis binnen docentcontext |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem, Leerling |
| Rolcontext | Actieve docentcontext met geldige docentrol en resultaatinzage binnen eigen geautoriseerde niveaucontext |
| Betrokken schermen | Docent - Resultaatdetail, Docent - Statistieken |
| Gerelateerde usecases | UC-DOC-RES-003, UC-DOC-RES-005, UC-DOC-RES-006, UC-LLN-RES-002, UC-LLN-HIS-003 |
| Primaire entiteiten | ExerciseRuns, ExerciseRunProgress, Exercises, Categories, TeacherLevels |
| Secundaire entiteiten / events | Resultaatstatistieken-readmodel, modulepayload, autorisatiecontrole |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent de detailinformatie en statistieken van een afgeronde leerlingrun bekijkt.
De statistieken zijn dezelfde uniforme runstatistieken die na afronding van de run zijn vastgelegd. De docentcontext bepaalt alleen of de docent ze mag zien.
De usecase herberekent geen statistieken als normale schermactie en schrijft geen nieuwe waarden terug.
3. Scope
3.1 Binnen scope
- Tonen van samenvatting, vraagresultaten en uniforme statistiekvelden.
- Tonen van gemiddelde tijd, mediaan, totale doorlooptijd, ondergrens, bovengrens en uitschieters wanneer beschikbaar.
- Server-side controleren van toegang tot het resultaat.
- Veilig omgaan met ontbrekende of niet-beschikbare statistiekvelden.
- Read-only presenteren van detaildata aan de docent.
3.2 Buiten scope
- Herberekenen van statistieken als standaardgedrag.
- Wijzigen van leerlingantwoorden.
- Wijzigen van oefenconfiguratie.
- PDF-export; dat valt onder UC-DOC-RES-005.
- Live meekijken of actuele voortgang tijdens een open run.
3.3 DRY-afbakening
- Leerlingresultaten en statistiekdefinities blijven inhoudelijk bronhoudend in de leerlingresultaat- en centrale FO/TO/SRS-regels.
- Docentniveau-autorisaties worden hier toegepast, maar het wijzigen ervan blijft bronhoudend in het subdomein Leerlingen en niveau-autorisaties.
- Relatievorming en relatieontkoppeling blijven bronhoudend in het generieke relatiedomein.
- PDF-layoutregels worden niet per usecase als nieuwe bronwaarheid herhaald, maar verwijzen naar de centrale resultaat- en PDF-afspraken.
- Deze usecases maken geen eigen kopie van oefenruns, statistieken of histories voor docenten.
- Directe toegang via URL, filter of exportverzoek blijft altijd onder dezelfde autorisatiegrens vallen.
- Systeemberichten, privéberichten en meldingen worden niet aangemaakt door het bekijken van resultaten.
- Module-specifieke payload blijft eigendom van de technische module; de docentweergave gebruikt veilige representaties.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | De OefenHub-sessiecontext is server-side opgebouwd. |
| PRE-004 | De betrokken leerling, run of resultatenlijst valt potentieel binnen de docentcontext. |
| PRE-005 | De backend kan actuele autorisatie-, relatie- en resultaatgegevens ophalen. |
| PRE-006 | De relevante resultaatdata is beschikbaar in de persistente run- en voortgangsopslag. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent ziet uitsluitend resultaten die binnen de eigen docentcontext vallen. |
| POST-002 | Geen resultaat, oefenrun, autorisatie of profielgegeven is gewijzigd door deze read-only flow. |
| POST-003 | Een verboden of verouderd verzoek is veilig geblokkeerd zonder contextlek. |
| POST-004 | De frontend toont een actuele lijst, detailweergave, export of veilige afwijzing. |
| POST-005 | Fout- en blokkadesituaties worden veilig afgehandeld zonder nieuwe domeinentiteiten te introduceren. |
| POST-006 | Vervolgacties blijven binnen de daarvoor bedoelde usecases. |
6. Trigger
De docent opent binnen een toegestaan resultaat de detail- en statistiekensectie.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Resultaatdetail | Opent statistiekensectie | Frontend vraagt uitgebreide detaildata op | ExerciseRunId |
| 2 | Frontend | Routeguard | Stuurt verzoek naar backend | Backend valideert sessie en context | Server-side controle |
| 3 | Systeem | Autorisatieservice | Controleert docenttoegang tot run | Blokkeert buiten context | TeacherStudentLevelAccess |
| 4 | Systeem | Resultatenservice | Laadt uniforme runstatistieken | Bouwt statistiekblok | ExerciseRuns |
| 5 | Systeem | Resultatenservice | Laadt vraagresultaatregels | Bouwt details per vraag | ExerciseRunProgress/payload |
| 6 | Systeem | Resultatenservice | Bepaalt zichtbare velden | Verbergt niet-beschikbare of niet-toegestane data | Presentatieregels |
| 7 | Systeem | Readmodel | Formatteert tijdwaarden en uitschieters | Levert readmodel terug | Seconds, minutes, labels |
| 8 | Frontend | Resultaatdetail | Toont statistieken en details | Docent kan analyseren zonder mutatie | Read-only |
| 9 | Docent | Resultaatdetail | Navigeert terug of kiest PDF | Frontend volgt gekozen route | UC-DOC-RES-005 indien PDF |
| 10 | Systeem | Applicatie | Laat run ongewijzigd | Geen opslagactie uitgevoerd | Geen mutatie |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 3 | Docent heeft geen toegang tot run | Systeem blokkeert detail- en statistiekweergave. | Niet van toepassing | Geen |
| ALT-002 | 4 | Statistiekvelden ontbreken door historische migratie of oude run | Systeem toont beschikbare velden en markeert ontbrekende onderdelen neutraal. | Niet van toepassing | Geen |
| ALT-003 | 5 | Vraagdetails zijn niet renderbaar | Systeem toont samenvatting en veilige fallback voor vraagdetail. | Niet van toepassing | Geen |
| ALT-004 | 7 | Er zijn geen uitschieters | Systeem toont Geen of gelijkwaardige neutrale waarde. | Niet van toepassing | Geen |
| ALT-005 | 7 | Doorlooptijd is niet beschikbaar | Systeem toont geen berekende tijdstatistiek of een neutrale niet-beschikbaarwaarde. | Niet van toepassing | Geen |
| ALT-006 | 8 | Frontend probeert detaildata te cachen buiten context | Systeem blijft server-side toegang controleren bij nieuwe verzoeken. | Niet van toepassing | Geen |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Statistieken worden gelezen uit de uniforme runvelden van de afgeronde exercise run. |
| BR-002 | Normale detailweergave herberekent statistieken niet uit de payload. |
| BR-003 | Herberekening uit payload is alleen herstel- of controlegedrag en geen standaard schermflow. |
| BR-004 | Alle statistieken blijven binnen de docentcontext afgeschermd. |
| BR-005 | Vraagdetails mogen alleen veilig en gesanitized/renderbaar worden getoond. |
| BR-006 | Ontbrekende statistiekvelden mogen geen fout veroorzaken die andere zichtbare data blokkeert. |
| BR-007 | Uitschieters worden getoond volgens de centrale resultaatdefinities. |
| BR-008 | Detail- en statistiekweergave is read-only. |
| BR-009 | Een docent mag geen gegevens buiten eigen niveauautorisatie afleiden uit statistiekvelden. |
| BR-010 | Technische payloadstructuur van modules wordt niet aan de docent als bronmodel getoond. |
| BR-011 | De detailweergave gebruikt dezelfde functionele betekenis van goed, fout en Geen idee als de leerlingresultaten. |
| BR-012 | De zichtbaarheidscontrole blijft gelijk aan de controle voor het openen van de run. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| DocentUserId | Moet overeenkomen met de server-side ingelogde gebruiker en mag niet uit formulierinvoer worden vertrouwd. |
| StudentUserId | Moet binnen de toegestane docentcontext vallen voordat resultaten worden gelezen. |
| ExerciseRunId | Moet bestaan, afgerond zijn en binnen de toegestane context vallen. |
| TeacherLevelId | Moet onderdeel zijn van de eigen docentcontext of historische resultaatcontext waar de docent recht op heeft. |
| CategoryId | Mag alleen als filter worden toegepast binnen de reeds toegestane dataset. |
| ExerciseId | Mag alleen als filter of context worden gebruikt binnen de toegestane dataset. |
| Periodefilter | Moet geldige datums bevatten en mag niet leiden tot datasetuitbreiding buiten autorisatie. |
| Paginering | Moet worden begrensd op toegestane waarden en bij lege pagina veilig terugvallen. |
| PDF-bestandsnaam | Moet worden opgeschoond van ongeldige tekens en lengtebeperkingen respecteren. |
| Modulepayload | Mag alleen via veilige render- of exportrepresentatie worden gebruikt. |
11. Datamutaties en events
| Stap | Type | Entiteit / readmodel | Gedrag |
|---|---|---|---|
| 1 | Query | Docentcontext-readmodel | Controleert docenttoegang tot het resultaat voordat details worden samengesteld. |
| 2 | Query | ExerciseRuns | Leest uniforme totalen en opgeslagen statistiekvelden van de afgeronde run. |
| 3 | Query | ExerciseRunProgress / module-representatie | Leest veilige vraag- en antwoordrepresentaties voor weergave. |
| 4 | Geen domeinmutatie | ExerciseRuns | Statistieken worden getoond vanuit opgeslagen rungegevens en niet opnieuw als mutatie berekend. |
| 5 | Geen domeinmutatie | ExerciseRunProgress | Vraagdetails worden gelezen en niet aangepast. |
| 6 | Geen domeinmutatie | SystemMessages / PrivateMessages / Tickets | Resultaatdetails en statistieken veroorzaken geen systeemcommunicatie. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Users | Resultaat- en geschiedenisweergave wijzigt geen gebruikersaccount. |
| UserRoles / Roles | Bekijken of exporteren van resultaten wijzigt geen rollen. |
| UserRelationships | Docent-leerlingrelaties worden alleen gecontroleerd, niet gewijzigd. |
| TeacherStudentLevelAccess | Autorisaties worden gecontroleerd, niet aangepast. |
| TeacherLevels | Niveaucontext wordt gelezen en niet gewijzigd. |
| Categories | Categoriecontext wordt gelezen en niet gewijzigd. |
| Exercises | Oefeningcontext wordt gelezen en niet gewijzigd. |
| ExerciseRuns | Bekijken, filteren of exporteren wijzigt de run niet. |
| ExerciseRunProgress | Vraagdetails worden gelezen en niet aangepast. |
| SystemMessages | Resultaatinzage maakt geen systeemberichten aan. |
| PrivateMessages | Resultaatinzage maakt geen privéberichten aan. |
| Tickets | Resultaatinzage maakt geen melding aan. |
13. State diagram
Niet van toepassing als persistent statusmodel. De usecase leest bestaande oefenrunstatussen en autorisatiecontext, maar introduceert geen nieuwe status voor docentresultaatinzage.
14. Decision flow
15. Data lifecycle diagram
Deze usecase maakt geen nieuwe resultaatdata aan. Het lifecyclebeeld toont dat bestaande runs alleen worden gelezen.
16. Sequence diagrammen
16.1 Statistieken bekijken
16.2 Directe route of verouderde clientstate blokkeren
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Alle momenten | Resultaatinzage, filtering, export en blokkades gebruiken geen nieuwe domeinspecifieke popupregister-popup. |
| Niet van toepassing | PDF-downloadfout | Een exportfout wordt via generieke foutafhandeling verwerkt zonder popupteksten in de usecase te dupliceren. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Docentresultaten moeten expliciet contextgebonden worden beschreven: alleen resultaten van niveaus die de docent zelf aan de leerling heeft geautoriseerd of waarvoor de docent volgens de geldende docentcontext inzagerecht heeft. |
| Technisch Ontwerp | Technisch Ontwerp: oefenruns, resultaten en PDF-brondata, PDF-export, readmodels en resultaatlezers en autorisatie beschrijven de technische uitwerking. Backendqueries voor geschiedenis, filters, resultaatdetails en PDF-export moeten altijd eerst autorisatiecontext toepassen en daarna pas filters, sortering of exportlogica. |
| Software Requirements Specification | Requirements moeten vastleggen dat directe URL-toegang, filterparameters en exportverzoeken geen toegang buiten docentcontext mogen opleveren. |
| Database-informatie | ExerciseRuns en gerelateerde resultaatdata blijven bronhoudend; er is geen aparte docentresultatentabel nodig. |
| Ontwerpbronnen | Autorisatiematrix, business rules en usecase-matrices moeten docentresultaatinzage en blokkades buiten context opnemen. Read-only resultaatinzage vraagt geen nieuw domeinevent. |
| Privacy/AVG | Resultaatinzage door docenten moet dataminimalisatie respecteren en geen resultaten buiten onderwijscontext zichtbaar maken. |
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-DOC-RES-004-001 | SRS-TCH-004 AC-TCH-004 | Resultaatstatistieken binnen docentcontext kunnen tonen |
REQ-UC-DOC-RES-004-002 | SRS-LRN-009 SRS-TCH-001 AC-LRN-009 AC-TCH-001 | Uniforme runstatistieken als bron gebruiken |
REQ-UC-DOC-RES-004-003 | SRS-TCH-001 AC-TCH-001 | Statistieken niet herschrijven bij bekijken |
REQ-UC-DOC-RES-004-004 | SRS-TCH-001 SRS-NFR-SEC-001 AC-TCH-001 AC-NFR-SEC-001 | Ontbrekende statistieken veilig afhandelen |
REQ-UC-DOC-RES-004-005 | SRS-TCH-001 SRS-NFR-SEC-001 AC-TCH-001 AC-NFR-SEC-001 | Vraagdetails veilig renderen |
REQ-UC-DOC-RES-004-006 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Toegang tot statistieken buiten context blokkeren |
REQ-UC-DOC-RES-004-007 | SRS-AUTH-001 SRS-LRN-009 SRS-TCH-001 AC-AUTH-001 AC-LRN-009 AC-TCH-001 | Toegang tot leerlingresultaten altijd server-side valideren |
REQ-UC-DOC-RES-004-008 | SRS-LRN-009 SRS-TCH-005 AC-LRN-009 AC-TCH-005 | Testruns uitsluiten van docentresultaten |
REQ-UC-DOC-RES-004-009 | SRS-LRN-006 SRS-TCH-004 SRS-NFR-AUD-001 AC-LRN-006 AC-TCH-004 AC-NFR-AUD-001 | Niet-afgeronde runs buiten resultaatgeschiedenis houden |
REQ-UC-DOC-RES-004-010 | SRS-TCH-001 AC-TCH-001 | Technische identifiers niet als gebruikersgerichte herkenningsgegevens tonen |
REQ-UC-DOC-RES-004-011 | SRS-TCH-004 AC-TCH-004 | Resultaatinzage zonder domeinmutatie verwerken |