Skip to main content

UC-OVG-LIVE-008 — Live verbinding verbroken afhandelen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-OVG-LIVE-008
NaamLive verbinding verbroken afhandelen
DomeinOuder/voogd / Online en live meekijken
Primaire actorOuder/voogd
Secundaire actor(en)Frontend, backend, database, realtime service
RolcontextActieve ouder-/voogdcontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenLive meekijkweergave, Verbindingsmelding
Gerelateerde usecasesUC-OVG-LIVE-003, UC-OVG-LIVE-004, UC-OVG-LIVE-007, UC-DOC-LIVE-008
Primaire entiteitenSignalRConnections, LiveViewAudit, ExerciseRuns
Secundaire entiteiten / eventsLiveConnectionLost, LiveReconnectFailed
Gerelateerde popupsPOP-OVG-LIVE-CONNECTION-LOST, POP-OVG-LIVE-RECONNECT-FAILED, POP-OVG-LIVE-SESSION-ENDED, POP-OVG-LIVE-ACCESS-DENIED
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe het systeem verbindingsverlies tijdens live meekijken door een ouder/voogd afhandelt. De realtimeverbinding probeert maximaal vijf keer te herstellen. Wanneer dat niet lukt, krijgt de meekijker een melding dat de live verbinding is verbroken.

Verbindingsverlies wijzigt de oefenrun niet. De live sessie wordt veilig voortgezet na herstel of auditbaar beëindigd wanneer herstel faalt.

Uitgangspunten

  • SignalR-herstelpogingen zijn begrensd.
  • De oefenrun blijft onaangetast.
  • Bij blijvende storing wordt de gebruiker geïnformeerd.
  • LiveViewAudit krijgt een eindmoment wanneer de sessie eindigt.
  • Na herstel wordt actuele voortgang opnieuw gesynchroniseerd.

3. Scope

Deze usecase beschrijft:

  • detecteren van verbindingsverlies;
  • uitvoeren van herverbindingspogingen;
  • resynchroniseren na herstel;
  • tonen van foutmelding na falen;
  • auditbaar beëindigen bij definitief verlies.

Deze usecase beschrijft niet:

  • oefenrun pauzeren;
  • antwoord opnieuw versturen;
  • resultaten wijzigen;
  • relatie muteren.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Docent / Online en live meekijkenDe technische liveweergave kan gelijkend zijn, maar docentautorisatie blijft beperkt tot eigen docentcontext en niveauautorisaties.
Leerling / Oefenen en voortgangDe leerlingrun en voortgang worden door de leerlingflow geschreven; ouder/voogd kijkt alleen read-only mee.
Generiek / RelatiesDe actieve ouder-/voogdrelatie bepaalt de toegang; relatievorming en uitnodigingen blijven buiten deze live-usecases.
Technische realtime-laagSignalR transporteert updates; de server-side opgeslagen voortgang blijft bron van waarheid.

4. Pre-condities

| 001 | Live sessie is actief. | | 002 | SignalR-verbinding valt weg of wordt onzeker. | | 003 | LiveViewAudit-record bestaat. | | 004 | Backend kan actuele runstatus controleren. |

5. Post-condities

| 001 | Verbinding is hersteld of liveweergave is veilig beëindigd. | | 002 | Bij definitief falen is gebruiker geïnformeerd. | | 003 | LiveViewAudit is waar nodig beëindigd. | | 004 | Geen oefenrun is gewijzigd. |

6. Trigger

De SignalR-verbinding van de ouder/voogd naar de live-meekijksessie valt weg.

7. Normale processtroom

StapActor / componentActieResultaatData / controle
1Realtime serviceDetecteert verbindingsverliesFrontend gaat naar herstelstandConnection state
2FrontendProbeert opnieuw te verbindenMaximaal vijf pogingenRetry counter
3BackendValideert sessie na herstelAutorisatie en runstatus worden opnieuw gecontroleerdLiveViewAudit, ExerciseRuns
4FrontendSynchroniseert actuele voortgangLiveweergave wordt bijgewerktProgress snapshot
5FrontendToont fout na falenMeekijker weet dat live verbroken isPopupKey
6BackendBeëindigt audit indien nodigLiveViewAudit krijgt eindmomentEndedAtUtc

7.1 Scherm- en routegedrag

  • De Online-pagina gebruikt ouder-/voogdcontext als actieve rol-ingang.
  • De liveweergave is volledig read-only en bevat geen antwoord- of interventieacties.
  • Actuele status wordt na relevante gebeurtenissen opnieuw afgeleid uit server-side voortgang.
  • Bij gecombineerde rollen bepaalt de gekozen contexttab welke dataset en filters zichtbaar zijn.

8. Alternatieve en exceptionele processtromen

| 001 | Herstel lukt: actuele voortgang wordt opnieuw geladen. | | 002 | Herstel lukt maar run is beëindigd: sessie-afgelopenafhandeling wordt getoond. | | 003 | Herstel lukt maar relatie is vervallen: toegang wordt geweigerd en live wordt beëindigd. | | 004 | Vijf pogingen mislukken: liveverbinding-verbrokenmelding wordt getoond. | | 005 | Backend kan audit niet direct bijwerken: technische fout wordt gelogd en herstel volgt infrastructuurbeleid. |

8.1 Afhandeling van verouderde of ongeldige clientstate

  • De backend herhaalt autorisatie bij iedere raadpleeg-, filter-, export- of liveactie.
  • Oude routeparameters, browserselecties en clientcache worden genegeerd wanneer de actuele server-side context geen toegang geeft.
  • De frontend mag het scherm herstellen door het actuele readmodel opnieuw op te vragen.

9. Business rules

| 001 | Na verbindingsherstel moet actuele voortgang opnieuw betrouwbaar worden opgehaald. | | 002 | Na maximaal vijf mislukte pogingen wordt liveweergave beëindigd. | | 003 | Verbindingsverlies mag geen runmutatie veroorzaken. | | 004 | Audit blijft herleidbaar. | | 005 | Een verbroken verbinding geeft geen recht op historische data buiten de gewone autorisatie. |

9.1 Readmodel- en tellerdefinities

WaardeDefinitieUitsluitingen / grenzen
Retry tellerAantal herverbindingspogingen.Maximaal vijf.
Herstelde verbindingNieuwe SignalR-verbinding met resync.Autorisatie opnieuw gecontroleerd.
Definitief verbrokenGeen herstel na retries.Popup en auditafsluiting.
Runstatus bij herstelActief of beëindigd.Bepaalt vervolgweergave.

9.2 Autorisatie- en privacygrenzen

  • De zichtbare dataset wordt altijd server-side beperkt tot actieve ouder-/voogdrelaties.
  • Een gebruiker met gecombineerde rollen krijgt binnen deze route geen impliciete docent- of beheerderinzage.
  • Resultaat- en livegegevens van niet-gekoppelde kinderen worden nooit gedeeltelijk getoond.

10. Datavalidatie

| 001 | Retryteller mag niet onbeperkt doorlopen. | | 002 | Na herstel moet ouderrelatie nog actief zijn. | | 003 | Na herstel moet runstatus opnieuw worden bepaald. | | 004 | LiveViewAudit moet bij definitief verlies idempotent worden beëindigd. | | 005 | Foutmelding mag geen technische details lekken. |

11. Datamutaties en events

| 001 | LiveViewAudit.EndedAtUtc wordt gevuld bij definitieve verbreking wanneer het record nog open is. | | 002 | Technische verbindingsstatus wijzigt. | | 003 | Functionele events: LiveConnectionLost en, bij definitief falen, LiveReconnectFailed. |

12. Geen datamutaties

| 001 | ExerciseRuns worden niet gewijzigd. | | 002 | ExerciseRunProgress wordt niet aangepast. | | 003 | Antwoorden worden niet opnieuw verzonden. | | 004 | Relaties worden niet gewijzigd. |

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-OVG-LIVE-CONNECTION-LOSTWordt gebruikt wanneer de verbinding tijdelijk wegvalt en herstel loopt.
POP-OVG-LIVE-RECONNECT-FAILEDWordt gebruikt wanneer herstel na maximaal vijf pogingen faalt.
POP-OVG-LIVE-SESSION-ENDEDWordt gebruikt wanneer de run tijdens herstel is beëindigd.
POP-OVG-LIVE-ACCESS-DENIEDWordt gebruikt wanneer actuele ouder-/voogdautorisatie na herstel ontbreekt.

Popupteksten, knopteksten, inputlabels en themakeuzes worden niet in deze usecase gedupliceerd. Het popupregister en de popupthemes blijven bronhoudend.

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

| 001 | Live verbinding gebruikt SignalR met maximaal vijf herverbindingspogingen. | | 002 | Na definitief falen moet de gebruiker een melding krijgen. | | 003 | Verbindingsverlies beïnvloedt de oefenrun niet. |

18.1 Impact voor database-informatie en ontwerpbronnen

| 001 | Autorisatiematrix moet ouder-/voogdraadpleging onderscheiden van docentraadpleging. | | 002 | Usecase-scherm-matrix moet de betrokken ouder-/voogdschermen koppelen aan deze usecase. | | 003 | Usecase-requirement-matrix moet de requirements uit hoofdstuk 19 opnemen. | | 004 | LiveViewAudit en realtime-afhandeling moeten ouder-/voogdrolcontext expliciet ondersteunen. |

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.

Er zijn voor deze usecase geen aparte requirement-afleidingen vastgelegd. De procesbeschrijving blijft broncontext voor de SRS-traceability.