Skip to main content

UC-DOC-RES-004 - Resultaatdetails en statistieken bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-RES-004
NaamResultaatdetails en statistieken bekijken
DomeinDocent
SubdomeinResultaten en geschiedenis binnen docentcontext
Primaire actorDocent
Secundaire actor(en)Systeem, Leerling
RolcontextActieve docentcontext met geldige docentrol en resultaatinzage binnen eigen geautoriseerde niveaucontext
Betrokken schermenDocent - Resultaatdetail, Docent - Statistieken
Gerelateerde usecasesUC-DOC-RES-003, UC-DOC-RES-005, UC-DOC-RES-006, UC-LLN-RES-002, UC-LLN-HIS-003
Primaire entiteitenExerciseRuns, ExerciseRunProgress, Exercises, Categories, TeacherLevels
Secundaire entiteiten / eventsResultaatstatistieken-readmodel, modulepayload, autorisatiecontrole
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

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

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De gebruiker heeft een actieve docentrol.
PRE-003De OefenHub-sessiecontext is server-side opgebouwd.
PRE-004De betrokken leerling, run of resultatenlijst valt potentieel binnen de docentcontext.
PRE-005De backend kan actuele autorisatie-, relatie- en resultaatgegevens ophalen.
PRE-006De relevante resultaatdata is beschikbaar in de persistente run- en voortgangsopslag.

5. Post-condities

IDResultaat
POST-001De docent ziet uitsluitend resultaten die binnen de eigen docentcontext vallen.
POST-002Geen resultaat, oefenrun, autorisatie of profielgegeven is gewijzigd door deze read-only flow.
POST-003Een verboden of verouderd verzoek is veilig geblokkeerd zonder contextlek.
POST-004De frontend toont een actuele lijst, detailweergave, export of veilige afwijzing.
POST-005Fout- en blokkadesituaties worden veilig afgehandeld zonder nieuwe domeinentiteiten te introduceren.
POST-006Vervolgacties blijven binnen de daarvoor bedoelde usecases.

6. Trigger

De docent opent binnen een toegestaan resultaat de detail- en statistiekensectie.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentResultaatdetailOpent statistiekensectieFrontend vraagt uitgebreide detaildata opExerciseRunId
2FrontendRouteguardStuurt verzoek naar backendBackend valideert sessie en contextServer-side controle
3SysteemAutorisatieserviceControleert docenttoegang tot runBlokkeert buiten contextTeacherStudentLevelAccess
4SysteemResultatenserviceLaadt uniforme runstatistiekenBouwt statistiekblokExerciseRuns
5SysteemResultatenserviceLaadt vraagresultaatregelsBouwt details per vraagExerciseRunProgress/payload
6SysteemResultatenserviceBepaalt zichtbare veldenVerbergt niet-beschikbare of niet-toegestane dataPresentatieregels
7SysteemReadmodelFormatteert tijdwaarden en uitschietersLevert readmodel terugSeconds, minutes, labels
8FrontendResultaatdetailToont statistieken en detailsDocent kan analyseren zonder mutatieRead-only
9DocentResultaatdetailNavigeert terug of kiest PDFFrontend volgt gekozen routeUC-DOC-RES-005 indien PDF
10SysteemApplicatieLaat run ongewijzigdGeen opslagactie uitgevoerdGeen mutatie

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Docent heeft geen toegang tot runSysteem blokkeert detail- en statistiekweergave.Niet van toepassingGeen
ALT-0024Statistiekvelden ontbreken door historische migratie of oude runSysteem toont beschikbare velden en markeert ontbrekende onderdelen neutraal.Niet van toepassingGeen
ALT-0035Vraagdetails zijn niet renderbaarSysteem toont samenvatting en veilige fallback voor vraagdetail.Niet van toepassingGeen
ALT-0047Er zijn geen uitschietersSysteem toont Geen of gelijkwaardige neutrale waarde.Niet van toepassingGeen
ALT-0057Doorlooptijd is niet beschikbaarSysteem toont geen berekende tijdstatistiek of een neutrale niet-beschikbaarwaarde.Niet van toepassingGeen
ALT-0068Frontend probeert detaildata te cachen buiten contextSysteem blijft server-side toegang controleren bij nieuwe verzoeken.Niet van toepassingGeen

9. Business rules

IDRegel
BR-001Statistieken worden gelezen uit de uniforme runvelden van de afgeronde exercise run.
BR-002Normale detailweergave herberekent statistieken niet uit de payload.
BR-003Herberekening uit payload is alleen herstel- of controlegedrag en geen standaard schermflow.
BR-004Alle statistieken blijven binnen de docentcontext afgeschermd.
BR-005Vraagdetails mogen alleen veilig en gesanitized/renderbaar worden getoond.
BR-006Ontbrekende statistiekvelden mogen geen fout veroorzaken die andere zichtbare data blokkeert.
BR-007Uitschieters worden getoond volgens de centrale resultaatdefinities.
BR-008Detail- en statistiekweergave is read-only.
BR-009Een docent mag geen gegevens buiten eigen niveauautorisatie afleiden uit statistiekvelden.
BR-010Technische payloadstructuur van modules wordt niet aan de docent als bronmodel getoond.
BR-011De detailweergave gebruikt dezelfde functionele betekenis van goed, fout en Geen idee als de leerlingresultaten.
BR-012De zichtbaarheidscontrole blijft gelijk aan de controle voor het openen van de run.

10. Datavalidatie

Veld / objectValidatie
DocentUserIdMoet overeenkomen met de server-side ingelogde gebruiker en mag niet uit formulierinvoer worden vertrouwd.
StudentUserIdMoet binnen de toegestane docentcontext vallen voordat resultaten worden gelezen.
ExerciseRunIdMoet bestaan, afgerond zijn en binnen de toegestane context vallen.
TeacherLevelIdMoet onderdeel zijn van de eigen docentcontext of historische resultaatcontext waar de docent recht op heeft.
CategoryIdMag alleen als filter worden toegepast binnen de reeds toegestane dataset.
ExerciseIdMag alleen als filter of context worden gebruikt binnen de toegestane dataset.
PeriodefilterMoet geldige datums bevatten en mag niet leiden tot datasetuitbreiding buiten autorisatie.
PagineringMoet worden begrensd op toegestane waarden en bij lege pagina veilig terugvallen.
PDF-bestandsnaamMoet worden opgeschoond van ongeldige tekens en lengtebeperkingen respecteren.
ModulepayloadMag alleen via veilige render- of exportrepresentatie worden gebruikt.

11. Datamutaties en events

StapTypeEntiteit / readmodelGedrag
1QueryDocentcontext-readmodelControleert docenttoegang tot het resultaat voordat details worden samengesteld.
2QueryExerciseRunsLeest uniforme totalen en opgeslagen statistiekvelden van de afgeronde run.
3QueryExerciseRunProgress / module-representatieLeest veilige vraag- en antwoordrepresentaties voor weergave.
4Geen domeinmutatieExerciseRunsStatistieken worden getoond vanuit opgeslagen rungegevens en niet opnieuw als mutatie berekend.
5Geen domeinmutatieExerciseRunProgressVraagdetails worden gelezen en niet aangepast.
6Geen domeinmutatieSystemMessages / PrivateMessages / TicketsResultaatdetails en statistieken veroorzaken geen systeemcommunicatie.

12. Geen datamutaties

EntiteitReden
UsersResultaat- en geschiedenisweergave wijzigt geen gebruikersaccount.
UserRoles / RolesBekijken of exporteren van resultaten wijzigt geen rollen.
UserRelationshipsDocent-leerlingrelaties worden alleen gecontroleerd, niet gewijzigd.
TeacherStudentLevelAccessAutorisaties worden gecontroleerd, niet aangepast.
TeacherLevelsNiveaucontext wordt gelezen en niet gewijzigd.
CategoriesCategoriecontext wordt gelezen en niet gewijzigd.
ExercisesOefeningcontext wordt gelezen en niet gewijzigd.
ExerciseRunsBekijken, filteren of exporteren wijzigt de run niet.
ExerciseRunProgressVraagdetails worden gelezen en niet aangepast.
SystemMessagesResultaatinzage maakt geen systeemberichten aan.
PrivateMessagesResultaatinzage maakt geen privéberichten aan.
TicketsResultaatinzage 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

PopupKeyMomentDoel
Niet van toepassingAlle momentenResultaatinzage, filtering, export en blokkades gebruiken geen nieuwe domeinspecifieke popupregister-popup.
Niet van toepassingPDF-downloadfoutEen exportfout wordt via generieke foutafhandeling verwerkt zonder popupteksten in de usecase te dupliceren.

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

DoeldocumentAfleiding
Functioneel OntwerpDocentresultaten 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 OntwerpTechnisch 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 SpecificationRequirements moeten vastleggen dat directe URL-toegang, filterparameters en exportverzoeken geen toegang buiten docentcontext mogen opleveren.
Database-informatieExerciseRuns en gerelateerde resultaatdata blijven bronhoudend; er is geen aparte docentresultatentabel nodig.
OntwerpbronnenAutorisatiematrix, business rules en usecase-matrices moeten docentresultaatinzage en blokkades buiten context opnemen. Read-only resultaatinzage vraagt geen nieuw domeinevent.
Privacy/AVGResultaatinzage 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-afleidingDektUsecasecontext
REQ-UC-DOC-RES-004-001SRS-TCH-004
AC-TCH-004
Resultaatstatistieken binnen docentcontext kunnen tonen
REQ-UC-DOC-RES-004-002SRS-LRN-009
SRS-TCH-001
AC-LRN-009
AC-TCH-001
Uniforme runstatistieken als bron gebruiken
REQ-UC-DOC-RES-004-003SRS-TCH-001
AC-TCH-001
Statistieken niet herschrijven bij bekijken
REQ-UC-DOC-RES-004-004SRS-TCH-001
SRS-NFR-SEC-001
AC-TCH-001
AC-NFR-SEC-001
Ontbrekende statistieken veilig afhandelen
REQ-UC-DOC-RES-004-005SRS-TCH-001
SRS-NFR-SEC-001
AC-TCH-001
AC-NFR-SEC-001
Vraagdetails veilig renderen
REQ-UC-DOC-RES-004-006SRS-AUTH-001
SRS-TCH-001
AC-AUTH-001
AC-TCH-001
Toegang tot statistieken buiten context blokkeren
REQ-UC-DOC-RES-004-007SRS-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-008SRS-LRN-009
SRS-TCH-005
AC-LRN-009
AC-TCH-005
Testruns uitsluiten van docentresultaten
REQ-UC-DOC-RES-004-009SRS-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-010SRS-TCH-001
AC-TCH-001
Technische identifiers niet als gebruikersgerichte herkenningsgegevens tonen
REQ-UC-DOC-RES-004-011SRS-TCH-004
AC-TCH-004
Resultaatinzage zonder domeinmutatie verwerken