Skip to main content

UC-LLN-DEL-003 — Gedeelde oefening starten

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-DEL-003
NaamGedeelde oefening starten
DomeinLeerling
SubdomeinGedeelde oefeningen
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, autorisatielaag, database, modulelaag
RolcontextIngelogde gebruiker met actieve leerlingrolcontext die ontvanger is van de gedeelde oefening.
Betrokken schermenOntvangen gedeelde oefeningen; oefenscherm; niet-beschikbaarafhandeling.
Gerelateerde usecasesUC-LLN-DEL-001; UC-LLN-DEL-002; UC-LLN-DEL-004; UC-LLN-OEF-004; UC-LLN-OEF-008
Primaire entiteitenSharedExercises, ExerciseRuns, ExerciseRunProgress, Users
Secundaire entiteiten / eventsBronrunpayload, ExerciseModules, SharedExerciseStarted
Gerelateerde popupsPOP-LLN-DEL-SHARED-START-NOT-AVAILABLE, POP-LLN-DEL-SHARED-START-ERROR
PopupregisterCentrale bron; deze usecase verwijst uitsluitend naar PopupKey.
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling een ontvangen gedeelde oefening voor het eerst start. Een gedeelde oefening wordt bij delen alleen administratief ontvangen. Pas bij starten maakt OefenHub een zelfstandige ExerciseRun voor de ontvanger aan.

De eerste start gebruikt dezelfde vraaginhoud en dezelfde vraagvolgorde als de bronrun van de afzender. De nieuwe run krijgt eigen voortgang, antwoorden, totalen en statistieken. De bronrun van de afzender blijft ongewijzigd.

3. Scope

3.1 Binnen scope

  • Controleren dat de ingelogde leerling de bedoelde ontvanger is.
  • Controleren dat het ontvangen item niet door de ontvanger uit het overzicht is verwijderd.
  • Controleren dat het item nog niet eerder gestart is als eerste uitvoering.
  • Lezen van bronvraaginhoud en bronvolgorde.
  • Aanmaken van een zelfstandige ontvangerrun.
  • Initialiseren van voortgangsdata.
  • Openen van het oefenscherm met de eerste vraag.

3.2 Buiten scope

  • Delen van de oefening door de afzender.
  • Tonen van het volledige ontvangen overzicht.
  • Opnieuw maken na eerdere uitvoering.
  • Regulier starten vanuit het oefenaanbod.
  • Vraag beantwoorden, voortgang per antwoord opslaan en afronden.
  • Resultaatweergave, statistieken, geschiedenis en PDF-export.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd met een actieve leerlingrolcontext.
PRE-002Het ontvangen gedeelde-oefeningrecord bestaat.
PRE-003Het record is gericht aan de ingelogde leerling.
PRE-004Het record is niet door de ontvanger uit het overzicht verwijderd.
PRE-005Er bestaat nog geen eerste ontvangerrun voor dit gedeelde record.
PRE-006De broninhoud is beschikbaar en veilig renderbaar via de modulelaag of historische renderrepresentatie.

5. Post-condities

IDResultaat
POST-001Bij succes is een zelfstandige ontvangerrun aangemaakt.
POST-002De ontvangerrun is gekoppeld aan de ontvanger en aan het gedeelde record.
POST-003De vraaginhoud en vraagvolgorde van de bronrun zijn voor de eerste uitvoering vastgelegd.
POST-004Het oefenscherm opent met de eerste vraag.
POST-005De bronrun van de afzender blijft ongewijzigd.
POST-006Bij foutafhandeling ontstaat geen half bruikbare run.

6. Trigger

De leerling kiest Start bij een ontvangen gedeelde oefening die nog niet eerder door deze ontvanger is gestart.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOntvangen gedeelde oefeningenKiest Start.Frontend stuurt startverzoek.PRE-001.
2BackendAutorisatielaagControleert sessie en leerlingrol.Alleen ontvanger mag starten.BR-001.
3BackendDatabaseLaadt gedeeld record.Record moet aan deze leerling gekoppeld zijn.PRE-002, PRE-003.
4BackendDatabaseControleert verwijdermarkering.Verborgen item wordt geweigerd.PRE-004.
5BackendDatabaseControleert eerdere eerste start.Dubbele eerste start wordt voorkomen.PRE-005.
6BackendModulelaagLeest broninhoud en bronvolgorde.Inhoud is bruikbaar voor ontvanger.PRE-006.
7BackendDatabaseStart transactie.Runaanmaak en koppeling worden samen verwerkt.Alles of niets.
8BackendDatabaseMaakt ontvangerrun aan.Run is zelfstandig en aan gedeeld record gekoppeld.POST-001, POST-002.
9BackendDatabaseInitialiseert voortgang.Eerste vraagvolgorde is gelijk aan de bronrun.POST-003.
10FrontendOefenschermOpent eerste vraag.Leerling kan beginnen met oefenen.Vervolg in oefenusecases.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen leerling.Backend weigert toegang.Generieke toegangafhandeling.Geen.
ALT-0023Gedeeld record bestaat niet of hoort niet bij de leerling.Backend blokkeert zonder details te lekken.POP-LLN-DEL-SHARED-START-NOT-AVAILABLE.Geen.
ALT-0034Item is door ontvanger uit overzicht verwijderd.Start wordt geweigerd.POP-LLN-DEL-SHARED-START-NOT-AVAILABLE.Geen.
ALT-0045Eerste start bestaat al.Systeem verwijst naar hervatten of opnieuw maken waar toegestaan.Inline afhandeling.Geen nieuwe eerste run.
ALT-0056Bronpayload is niet beschikbaar of onveilig.Start wordt geweigerd.POP-LLN-DEL-SHARED-START-NOT-AVAILABLE.Geen.
ALT-0066Module of historische renderrepresentatie kan niet renderen.Start wordt geweigerd.POP-LLN-DEL-SHARED-START-NOT-AVAILABLE.Geen.
ALT-0078Runaanmaak faalt.Transactie rolt terug.POP-LLN-DEL-SHARED-START-ERROR.Geen half bruikbare run.
ALT-00810Navigatie naar oefenscherm faalt na succesvolle runaanmaak.Run blijft bestaan en kan via hervatten beschikbaar zijn.Generieke foutafhandeling.Run blijft consistent.

9. Business rules

IDRegel
BR-001Alleen de bedoelde ontvanger mag een ontvangen gedeelde oefening starten.
BR-002De ontvanger wordt server-side uit de sessie bepaald.
BR-003Een door de ontvanger verwijderd ontvangen item kan niet normaal gestart worden.
BR-004De eerste start gebruikt dezelfde vraaginhoud en vraagvolgorde als de bronrun.
BR-005De ontvangerrun is zelfstandig en heeft eigen voortgang, antwoorden, totalen en statistieken.
BR-006De bronrun van de afzender wordt niet aangepast.
BR-007Actuele oefeningconfiguratie wordt niet gebruikt om een nieuwe set te genereren.
BR-008Een mislukte start mag geen half bruikbare run achterlaten.
BR-009Beëindiging van de vriendschap na ontvangst blokkeert een reeds ontvangen gedeelde oefening niet automatisch.
BR-010Starten geeft geen bredere toegang tot het niveau, de categorie of de docentcontext van de afzender.

10. Datavalidatie

Veld / objectValidatie
SessiecontextBevat actief intern Users.Id en actieve leerlingrol.
SharedExerciseIdBestaat en is gekoppeld aan de ingelogde leerling als ontvanger.
VerwijdermarkeringMag niet gezet zijn voor normale start.
Eerste ontvangerrunMag nog niet bestaan voor deze eerste-startflow.
BronrunverwijzingVerwijst naar een afgeronde bronrun met beschikbare vraaginhoud.
ModulepayloadMoet veilig decodeerbaar en renderbaar zijn.
ActorWordt server-side uit sessie bepaald.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
7TransactieDatabaseStart transactionele verwerking van de startactie.
8InsertExerciseRunsMaakt zelfstandige ontvangerrun aan.
8UpdateSharedExercisesLegt koppeling naar de eerste ontvangerrun vast wanneer het datamodel dit ondersteunt.
9Insert/initialisatieExerciseRunProgress / runpayloadInitialiseert vraagvolgorde, voortgang en vraagcontext.
9EventSharedExerciseStartedRegistreert dat de ontvanger de gedeelde oefening is gestart.

12. Geen datamutaties

EntiteitReden
Bronrun van afzenderBlijft ongewijzigd.
UserRelationshipsStarten maakt of beëindigt geen vriendschap.
RelationshipInvitationsUitnodigingen zijn geen onderdeel van deze flow.
SystemMessagesMailboxleesstatus valt onder het generieke berichtendomein.
UserSettingsVoorkeuren worden niet gewijzigd.
Actuele oefeningconfiguratieWordt niet gebruikt als bron voor nieuwe vraaggeneratie.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Eerste start van gedeelde oefening

16.2 Start geblokkeerd door ongeldige ontvanger

17. Popupverwijzingen

PopupKeyMomentToepassing
POP-LLN-DEL-SHARED-START-NOT-AVAILABLERecord, broninhoud of renderbaarheid is niet beschikbaar.Blokkeert start zonder technische details te tonen.
POP-LLN-DEL-SHARED-START-ERRORFout tijdens aanmaak van de ontvangerrun.Meldt startfout en voorkomt half bruikbare run.

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

DoeldocumentAfleiding
Functioneel OntwerpGedeelde oefeningen beschrijft starten van een ontvangen gedeelde oefening en de bijbehorende gebruikersfeedback.
Technisch OntwerpOefenruns, voortgang, resultaten, statistieken en PDF-brondata beschrijft het aanmaken van de ontvangerrun vanuit SharedExercises.
Technisch OntwerpOefenmodulecontract en dynamische module-integratie beschrijft moduleconfiguratie, payloadversies en vraaggeneratie.
Technisch OntwerpAutorisatie, policies en server-side contextcontrole beschrijft server-side objecttoegang en IDOR-preventie.
Software Requirements SpecificationBorgt de centrale requirements voor starten, autorisatie, bronrun-snapshots en veilige foutafhandeling.

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-LLN-DEL-003-001SRS-LRN-001
SRS-SHR-001
AC-LRN-001
AC-SHR-001
Een gedeelde oefening alleen laten starten door de bedoelde ontvanger
REQ-UC-LLN-DEL-003-002SRS-LRN-001
SRS-SHR-003
AC-LRN-001
AC-SHR-003
Bij eerste start een zelfstandige ExerciseRun voor de ontvanger aanmaken
REQ-UC-LLN-DEL-003-003SRS-LRN-001
SRS-SHR-003
AC-LRN-001
AC-SHR-003
Bij eerste start dezelfde vraaginhoud en vraagvolgorde gebruiken als de bronrun
REQ-UC-LLN-DEL-003-004SRS-LRN-009
SRS-SHR-003
AC-LRN-009
AC-SHR-003
De bronrun van de afzender niet wijzigen
REQ-UC-LLN-DEL-003-005SRS-LRN-009
SRS-SHR-001
SRS-NFR-AUD-001
AC-LRN-009
AC-SHR-001
AC-NFR-AUD-001
De ontvangerrun herleidbaar koppelen aan het gedeelde record
REQ-UC-LLN-DEL-003-006SRS-LRN-003
SRS-SHR-001
AC-LRN-003
AC-SHR-001
Voortgangsdata voor de ontvangerrun initialiseren
REQ-UC-LLN-DEL-003-007SRS-AUTH-001
SRS-LRN-001
SRS-SHR-001
SRS-NFR-SEC-001
AC-AUTH-001
AC-LRN-001
AC-SHR-001
AC-NFR-SEC-001
Niet-startbare gedeelde oefeningen veilig blokkeren
REQ-UC-LLN-DEL-003-008SRS-LRN-001
SRS-SHR-001
SRS-NFR-AVL-001
AC-LRN-001
AC-SHR-001
AC-NFR-AVL-001
Mislukte startacties zonder half bruikbare run afhandelen