UC-DOC-LIVE-006 — Terugkeren naar actuele live vraag
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-LIVE-006 |
| Naam | Terugkeren naar actuele live vraag |
| 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 vanuit browsemodus terugkeert naar de vraag waarmee de leerling op dat moment live bezig is. De actie herstelt de livevolgpositie zonder dat de oefening van de leerling wordt gewijzigd.
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:
- Activeren van de terugkeeractie vanuit browsemodus.
- Opnieuw bepalen van de actuele livepositie.
- Terugzetten van de weergave naar de actuele vraag.
- Voortzetten van realtime live volgen.
Buiten scope:
- Door vragen bladeren zelf; dat is UC-DOC-LIVE-005.
- Live voortgang verwerken; dat is UC-DOC-LIVE-004.
- Afgeronde resultaten bekijken.
- Beheer van autorisaties of relaties.
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 | Staat in browsemodus op een eerdere of toekomstige vraag. | Systeem toont dat de docent niet op de actuele live vraag staat. | Browsepositie aanwezig. |
| 2 | Docent | Live-meekijkweergave | Klikt op Terug naar actuele live vraag. | Systeem vraagt de actuele livepositie op uit het viewmodel of backend. | BR-001 |
| 3 | Systeem | Backend / realtime state | Controleert of de run nog actief en geautoriseerd is. | Bij geldige context wordt de actuele vraagcontext teruggegeven. | BR-002 |
| 4 | Systeem | Live-meekijkweergave | Zet de weergave terug naar de actuele live vraag. | Browsemodus eindigt; live-indicator staat weer op actuele vraag. | Geen persistente mutatie. |
| 5 | Systeem | Realtime-kanaal | Blijft volgende updates rechtstreeks op de actuele livepositie tonen. | Docent volgt weer live. | UC-DOC-LIVE-004 |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 2 | De docent staat al op de actuele live vraag. | Systeem laat de actie uitgeschakeld of zonder effect. | Geen popup. | Geen mutatie. |
| ALT-002 | 3 | Run is net afgerond. | Systeem toont dat live volgen is beëindigd en verwijst naar resultaten/geschiedenis wanneer beschikbaar. | Sessie-einde-indicatie. | LiveViewAudit.EndedAtUtc indien nog niet gezet. |
| ALT-003 | 3 | Docentcontext is niet meer geldig. | Systeem blokkeert terugkeer en beëindigt liveweergave. | Generieke toegangafhandeling. | Eventueel LiveViewAudit.EndedAtUtc. |
| ALT-004 | 3 | Realtime state ontbreekt tijdelijk. | Systeem toont laatste veilige bekende livepositie of verbindingsstatus. | Inline verbindingsindicatie. | Geen domeinmutatie. |
| ALT-005 | 4 | Actuele vraag is gewijzigd sinds browsemodus startte. | Systeem toont de nieuwste actuele livevraag. | Geen popup. | Geen mutatie. |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Terugkeren naar actuele live vraag is alleen beschikbaar wanneer de docent niet op de actuele livevraag staat. |
| BR-002 | De actuele livevraag wordt server-side of via geautoriseerde realtime state bepaald; clientstate is niet leidend voor autorisatie. |
| BR-003 | Terugkeren naar de actuele vraag wijzigt geen run, vraag, antwoord, score of voortgang. |
| BR-004 | Wanneer de run niet meer live is, mag het systeem niet doen alsof live volgen nog actief is. |
| BR-005 | Na terugkeer volgt de docent weer de actuele live updates volgens UC-DOC-LIVE-004. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| Browsepositie | Moet afwijken van de actuele livepositie om de actie functioneel actief te maken. |
| Actuele livepositie | Moet horen bij dezelfde run en binnen het vraagaantal liggen. |
| Docentcontext | Moet opnieuw geldig zijn bij terugkeer. |
| Realtime state | Mag niet als autorisatiebron zonder backendcontrole worden gebruikt. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 2 | Presentatie | Browsepositie | Niet-persistente browsepositie wordt opgeheven binnen de livecomponent. |
| 4 | Presentatie | Live viewmodel | Weergave springt terug naar de actuele vraag; geen domeindata wijzigt. |
| 5 | Realtime transport | SignalR live view stream | Volgende updates worden weer als actuele liveweergave getoond. |
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 terugkeeractie | Geen popup; de actie werkt inline. |
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-006-001 | SRS-TCH-001 SRS-LIVE-004 AC-TCH-001 AC-LIVE-004 | Een docent vanuit browsemodus kunnen terugbrengen naar de actuele live vraag |
REQ-UC-DOC-LIVE-006-002 | SRS-TCH-001 SRS-LIVE-001 AC-TCH-001 AC-LIVE-001 | De terugkeeractie alleen actief maken wanneer de docent niet op de actuele livevraag staat |
REQ-UC-DOC-LIVE-006-003 | SRS-AUTH-001 SRS-TCH-001 SRS-LIVE-002 AC-AUTH-001 AC-TCH-001 AC-LIVE-002 | Bij terugkeer opnieuw controleren dat de livecontext geautoriseerd is |
REQ-UC-DOC-LIVE-006-004 | SRS-AUTH-001 SRS-AUTH-002 SRS-TCH-001 SRS-LIVE-001 AC-AUTH-001 AC-AUTH-002 AC-TCH-001 AC-LIVE-001 | De actuele livevraag niet bepalen op basis van ongecontroleerde clientstate |
REQ-UC-DOC-LIVE-006-005 | SRS-TCH-001 SRS-LIVE-001 SRS-ARCH-003 AC-TCH-001 AC-LIVE-001 AC-ARCH-003 | Na terugkeer volgende realtime updates weer als actuele liveweergave tonen |
REQ-UC-DOC-LIVE-006-006 | SRS-LRN-003 SRS-TCH-001 SRS-LIVE-001 AC-LRN-003 AC-TCH-001 AC-LIVE-001 | Door terugkeren naar live geen antwoord-, score- of runmutatie uitvoeren |
REQ-UC-DOC-LIVE-006-007 | SRS-LRN-009 SRS-TCH-001 SRS-NFR-SEC-001 AC-LRN-009 AC-TCH-001 AC-NFR-SEC-001 | Veilig afhandelen dat de run inmiddels is afgerond of verlaten |
REQ-UC-DOC-LIVE-006-008 | SRS-TCH-001 SRS-NFR-SEC-001 SRS-ARCH-003 AC-TCH-001 AC-NFR-SEC-001 AC-ARCH-003 | Veilig afhandelen dat realtime state tijdelijk ontbreekt |
REQ-UC-DOC-LIVE-006-009 | SRS-TCH-001 AC-TCH-001 | Browsemodus als presentatiestate behandelen en niet als domeindata |
REQ-UC-DOC-LIVE-006-010 | SRS-AUTH-001 SRS-TCH-001 AC-AUTH-001 AC-TCH-001 | Verhinderen dat de docent een oude browserpositie gebruikt om buiten autorisatie data te zien |