UC-DOC-LIVE-005 — Door vragen bladeren tijdens live meekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LIVE-005 |
| Naam | Door vragen bladeren tijdens live meekijken |
| Domein | Docent |
| Subdomein | Online leerlingen en live meekijken |
| Primaire actor | Docent |
| Secundaire actor(en) | Leerling, OefenHub-systeem, realtime-kanaal |
| Rolcontext | Docentcontext met actieve docent-leerlingrelatie en geldige niveauautorisatie |
| Betrokken schermen | SCH-DOC-07-01 — Meekijken — Live meekijkweergave, live-meekijkweergave |
| Gerelateerde usecases | UC-DOC-LIVE-001, UC-DOC-LIVE-002, UC-DOC-LIVE-003, UC-DOC-LIVE-007, UC-LLN-OEF-004, UC-LLN-OEF-007, UC-LLN-OEF-008 |
| Primaire entiteiten | LiveViewAudit, ExerciseRuns, ExerciseRunProgress, UserRelationships, StudentLevelAuthorizations |
| Secundaire entiteiten / events | SignalR-verbinding, realtime voortgangsevent, sessie-einde-event, verbindingsfout |
| Gerelateerde popups | Niet van toepassing voor normale route; technische verbindingsmelding bij foutafhandeling |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent tijdens live meekijken tijdelijk een eerdere of toekomstige vraag binnen dezelfde exercise run bekijkt. De docent kan daarmee context krijgen zonder de live voortgang van de leerling te beïnvloeden.
De usecase beschrijft uitsluitend het docentgedrag binnen een reeds toegestane live-meekijkcontext. Het starten van de oefening door de leerling, het beantwoorden van vragen en het opslaan van voortgang blijven bronhoudend in de leerling-oefenusecases. De docentweergave is alleen-lezen en mag nooit leiden tot antwoordmutaties of correcties in de lopende run.
3. Scope
Binnen scope:
- Selecteren van een vraagnummer in de live-meekijkweergave.
- Tonen van eerdere, actuele of toekomstige vraagcontext.
- Behouden van realtime live-indicatoren terwijl de docent browset.
- Beschikbaar maken van terugkeer naar de actuele live vraag.
Buiten scope:
- Het beantwoorden van vragen door de leerling.
- Het wijzigen van vraagvolgorde of inhoud.
- Het terugkeren naar de actuele vraag zelf; dat is UC-DOC-LIVE-006.
- Geschiedenisweergave na afronding.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent is succesvol ingelogd en handelt binnen een actieve docentcontext. |
| PRE-002 | Er bestaat een actieve docent-leerlingrelatie tussen de docent en de leerling. |
| PRE-003 | De leerling heeft een actieve of recent live beschikbare exercise run die binnen de docentcontext valt. |
| PRE-004 | De docent heeft via niveauautorisatie recht op inzage in de oefencontext van de leerling. |
| PRE-005 | De live-meekijkfeature is sitebreed beschikbaar. |
| PRE-006 | De leerlingrun levert server-side voortgangsinformatie die via het realtime-kanaal kan worden getoond. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent heeft de live-meekijkweergave volgens de toegestane context gebruikt. |
| POST-002 | De leerlingrun is inhoudelijk niet gewijzigd door de docent. |
| POST-003 | Eventuele live-meekijk-audit blijft herleidbaar via LiveViewAudit waar de flow dat vereist. |
| POST-004 | Niet-geautoriseerde voortgang of resultaten zijn niet zichtbaar gemaakt. |
| POST-005 | De applicatiecontext blijft consistent bij realtime updates, sessie-einde of verbindingsproblemen. |
6. Trigger
De usecase start wanneer de docent binnen een bestaande live-meekijkweergave een live handeling uitvoert of wanneer het systeem een relevante realtime wijziging ontvangt.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Docent | Live-meekijkweergave | Klikt op een vraagnummers in de vragenlijst. | Systeem bepaalt of de gevraagde vraag binnen de run bestaat. | QuestionNumber binnen bereik. |
| 2 | Systeem | Backend / viewmodel | Controleert opnieuw de docentcontext. | Alleen geautoriseerde vraagcontext wordt vrijgegeven. | BR-001 |
| 3 | Systeem | Live-meekijkweergave | Toont de gekozen vraag in browsemodus. | De livecursor blijft op de achtergrond beschikbaar. | Geen runmutatie. |
| 4 | Systeem | Live-meekijkweergave | Bepaalt zichtbare inhoud op basis van vraagstatus. | Bij eerdere beantwoorde vragen wordt het gegeven antwoord getoond; bij toekomstige vragen niet. | BR-003 |
| 5 | Docent | Live-meekijkweergave | Bekijkt eerdere of toekomstige vraaginformatie. | Docent kan niets wijzigen. | Alleen-lezen. |
| 6 | Systeem | Realtime-kanaal | Ontvangt eventueel nieuwe live updates terwijl docent browset. | Navigatielijst en live-indicator worden bijgewerkt zonder browsepositie te overschrijven. | BR-004 |
| 7 | Systeem | Live-meekijkweergave | Maakt knop Terug naar actuele live vraag beschikbaar. | Docent kan terugkeren naar actuele vraag. | UC-DOC-LIVE-006 |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1 | Vraagnummer bestaat niet. | Systeem negeert selectie of toont veilige validatiemelding. | Inline foutmelding. | Geen mutatie. |
| ALT-002 | 2 | Docentcontext is ongeldig geworden. | Systeem blokkeert browseweergave en beëindigt livecontext waar nodig. | Generieke toegangafhandeling. | Eventueel LiveViewAudit.EndedAtUtc. |
| ALT-003 | 4 | Gekozen vraag is toekomstig en nog niet getoond aan leerling. | Systeem toont alleen toegestane vraagcontext zonder gegeven antwoord. | Geen popup. | Geen mutatie. |
| ALT-004 | 4 | Gekozen vraag is beantwoord als Geen idee. | Systeem toont de opgeslagen status zoals die door leerlingflow is vastgelegd. | Geen popup. | Geen mutatie. |
| ALT-005 | 6 | De leerling rondt de oefening af tijdens browsemodus. | Systeem toont dat de livecontext is beëindigd en houdt browseweergave veilig alleen-lezen. | Sessie-einde-indicatie. | LiveViewAudit.EndedAtUtc indien van toepassing. |
| ALT-006 | 6 | Nieuwe update wijzigt de actuele vraag. | Systeem actualiseert de live-indicator, maar springt niet automatisch weg van de browsed vraag. | Geen popup. | Geen mutatie. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Door vragen bladeren vereist dezelfde autorisatie als live voortgang volgen. |
| BR-002 | Bladeren door vragen mag de leerlingrun niet pauzeren, beïnvloeden of wijzigen. |
| BR-003 | Toekomstige vragen mogen geen gegeven antwoord of voortgang tonen die nog niet bestaat. |
| BR-004 | Realtime updates mogen de browsepositie niet onverwacht overschrijven. |
| BR-005 | De actie om terug te keren naar de actuele live vraag hoort bij UC-DOC-LIVE-006. |
| BR-006 | Browsemodus is presentatiestate en geen persistente domeinstatus. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| QuestionNumber | Moet bestaan binnen de geselecteerde exercise run. |
| ExerciseRunId | Moet overeenkomen met de actieve live-meekijksessie. |
| Docentcontext | Moet geldig blijven bij selectie en bij ophalen van vraagdata. |
| Vraagstatus | Bepaalt welke velden zichtbaar zijn: beantwoord, huidig, toekomstig of niet beschikbaar. |
| Browsepositie | Wordt client-side of viewmodelmatig bijgehouden en niet als domeindata opgeslagen. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1 | Presentatie | Browsepositie | Niet-persistente weergavekeuze wordt bijgewerkt binnen de livecomponent. |
| 4 | Read | ExerciseRunProgress | Voortgang wordt gelezen op basis van vraagnummer en run. |
| 6 | Realtime transport | SignalR live view stream | Nieuwe updates kunnen navigatie-indicatoren bijwerken; geen domeinmutatie. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| ExerciseRuns | De docent wijzigt geen runinhoud, afronding of resultaat. |
| ExerciseRunProgress | De docentweergave leest voortgang, maar corrigeert geen antwoorden en markeert geen vragen. |
| UserRelationships | Relaties worden niet aangemaakt, gewijzigd of beëindigd binnen live meekijken. |
| StudentLevelAuthorizations | Autorisaties worden uitsluitend gelezen; beheer hoort in docent-autorisatieusecases. |
| SystemMessages | Live meekijken maakt geen systeemberichten aan. |
| PrivateMessageThreads | Live meekijken start geen privébericht en voegt geen thread-event toe. |
| Tickets | Verbindings- of livefouten worden niet automatisch als melding geregistreerd. |
13. State diagram
De usecase raakt geen persistent statusobject met eigen statusmodel. De live-meekijktoestand is een afgeleide sessie- en realtimecontext. Waar LiveViewAudit.EndedAtUtc wordt gevuld, betreft dit auditafronding en geen zelfstandige functionele statusmachine.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Moment | Doel |
|---|---|---|
| Niet van toepassing | Normale browseactie | Geen popup; vraagselectie wordt inline afgehandeld. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Beschrijft de live-meekijkinteractie binnen een geautoriseerde docentcontext en bevestigt het alleen-lezen karakter van de docentweergave. |
| Technisch Ontwerp | Technisch Ontwerp: live meekijken met SignalR, oefenruns en voortgang en readmodels en livebeschikbaarheid beschrijven de technische uitwerking. Werkt realtime-verwerking, SignalR-abonnementen, routeguardcontrole, LiveViewAudit-grenzen en foutafhandeling technisch uit. |
| Software Requirements Specification | Borgt autorisatie, alleen-lezen gedrag, realtime updates, veilige foutafhandeling en het ontbreken van onbedoelde runmutaties. |
| Database-informatie | Gebruikt LiveViewAudit, ExerciseRuns en voortgangsopslag als bestaande bronnen; er ontstaat geen aparte live-weergavetabel. |
| Ontwerpbronnen | Autorisatiematrix en business rules beschrijven de live-meekijkgrenzen binnen docentcontext. |
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-LIVE-005-001 | SRS-LRN-009 SRS-TCH-001 SRS-LIVE-004 AC-LRN-009 AC-TCH-001 AC-LIVE-004 | Een docent toestaan binnen een live-meekijksessie door vragen van de run te bladeren |
REQ-UC-DOC-LIVE-005-002 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Bij iedere vraagselectie opnieuw controleren dat de docent geautoriseerd is |
REQ-UC-DOC-LIVE-005-003 | SRS-TCH-001 AC-TCH-001 | Door vragen bladeren niet als persistente domeinstatus opslaan |
REQ-UC-DOC-LIVE-005-004 | SRS-LRN-003 SRS-TCH-001 AC-LRN-003 AC-TCH-001 | Toekomstige vragen zonder gegeven antwoord tonen |
REQ-UC-DOC-LIVE-005-005 | SRS-LRN-003 SRS-TCH-001 AC-LRN-003 AC-TCH-001 | Beantwoorde vragen tonen met de opgeslagen voortgang zoals door de leerlingflow vastgelegd |
REQ-UC-DOC-LIVE-005-006 | SRS-TCH-001 SRS-ARCH-003 AC-TCH-001 AC-ARCH-003 | Realtime updates blijven ontvangen terwijl de docent in browsemodus staat |
REQ-UC-DOC-LIVE-005-007 | SRS-TCH-001 SRS-LIVE-004 AC-TCH-001 AC-LIVE-004 | De browsepositie niet onverwacht overschrijven door een live update |
REQ-UC-DOC-LIVE-005-008 | SRS-TCH-001 SRS-LIVE-001 AC-TCH-001 AC-LIVE-001 | Een terugkeeractie naar de actuele live vraag beschikbaar maken wanneer de docent niet op de live vraag staat |
REQ-UC-DOC-LIVE-005-009 | SRS-TCH-001 SRS-NFR-SEC-001 AC-TCH-001 AC-NFR-SEC-001 | Ongeldige vraagnummers veilig afhandelen |
REQ-UC-DOC-LIVE-005-010 | SRS-LRN-003 SRS-TCH-001 AC-LRN-003 AC-TCH-001 | Door browseacties geen oefenrun, antwoord of score wijzigen |