Skip to main content

UC-LLN-DEL-004 — Gedeelde oefening opnieuw maken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-DEL-004
NaamGedeelde oefening opnieuw maken
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; resultaatdetail van gedeelde run; oefenscherm.
Gerelateerde usecasesUC-LLN-DEL-002; UC-LLN-DEL-003; UC-LLN-OEF-003; UC-LLN-OEF-008; UC-LLN-HIS-003
Primaire entiteitenSharedExercises, ExerciseRuns, ExerciseRunProgress, Users
Secundaire entiteiten / eventsBronrunpayload, eerdere ontvangerruns, SharedExerciseRepeated
Gerelateerde popupsPOP-LLN-DEL-SHARED-REPEAT-NOT-AVAILABLE, POP-LLN-DEL-SHARED-REPEAT-ERROR
PopupregisterCentrale bron; deze usecase verwijst uitsluitend naar PopupKey.
MoSCoWShould

2. Omschrijving

Deze usecase beschrijft hoe een leerling een eerder ontvangen gedeelde oefening opnieuw maakt. Opnieuw maken gebruikt dezelfde gedeelde oefeninhoud als het ontvangen record. Er ontstaat altijd een nieuwe zelfstandige ExerciseRun voor de ontvanger; eerdere ontvangerruns en resultaten blijven ongewijzigd.

Na de eerste uitvoering hoeft de vraagvolgorde niet verplicht gelijk te blijven aan de oorspronkelijke bronvolgorde. Wanneer de module of oefenconfiguratie herordening toestaat, mag OefenHub voor een herhaling een nieuwe volgorde vastleggen. De inhoud blijft afkomstig uit de gedeelde broncontext.

3. Scope

3.1 Binnen scope

  • Controleren dat de ingelogde leerling de ontvanger is van het gedeelde record.
  • Controleren dat het ontvangen item opnieuw gemaakt mag worden.
  • Lezen van gedeelde broninhoud en eerdere ontvangerruns.
  • Aanmaken van een nieuwe zelfstandige ontvangerrun.
  • Vastleggen van vraaginhoud, volgorde en voortgang voor deze nieuwe run.
  • Openen van het oefenscherm voor de nieuwe run.

3.2 Buiten scope

  • Eerste start van een gedeelde oefening.
  • Regulier opnieuw maken van een eigen niet-gedeelde oefening.
  • Vraagbeantwoording en afronding.
  • Resultaatdetail, geschiedenis en PDF-export.
  • Wijzigen van de gedeelde bronrun of het gedeelde record door de afzender.
  • Herstellen van een uit het overzicht verwijderd item.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd met een actieve leerlingrolcontext.
PRE-002Het gedeelde record bestaat en is gericht aan de ingelogde leerling.
PRE-003Het gedeelde record is niet door de ontvanger uit het overzicht verwijderd voor deze reguliere route.
PRE-004Er bestaat minimaal één eerdere ontvangerrun of het item is volgens de UI herhaalbaar.
PRE-005De gedeelde broninhoud is beschikbaar en veilig renderbaar.
PRE-006Het systeem kan een nieuwe zelfstandige run voor de ontvanger aanmaken.

5. Post-condities

IDResultaat
POST-001Bij succes is een nieuwe zelfstandige ontvangerrun aangemaakt.
POST-002De nieuwe run is herleidbaar gekoppeld aan het gedeelde record.
POST-003Eerdere ontvangerruns en resultaten blijven ongewijzigd.
POST-004De bronrun van de afzender blijft ongewijzigd.
POST-005De leerling wordt naar het oefenscherm voor de nieuwe run geleid.
POST-006Bij foutafhandeling ontstaat geen half bruikbare run.

6. Trigger

De leerling kiest Opnieuw maken bij een ontvangen gedeelde oefening of bij een resultaatdetail van een eerder gemaakte gedeelde oefening.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOverzicht of resultaatdetailKiest Opnieuw maken.Frontend stuurt herhaalverzoek.PRE-001.
2BackendAutorisatielaagControleert sessie en leerlingrol.Alleen ontvanger mag opnieuw maken.BR-001.
3BackendDatabaseLaadt gedeeld record en eerdere ontvangerruns.Record moet aan ontvanger gekoppeld zijn.PRE-002.
4BackendDatabaseControleert zichtbaarheid en herhaalbaarheid.Ongeldige route wordt geblokkeerd.PRE-003, PRE-004.
5BackendModulelaagLeest gedeelde broninhoud.Inhoud is bruikbaar voor nieuwe run.PRE-005.
6BackendBackendBepaalt vraagvolgorde voor herhaling.Inhoud blijft gelijk; volgorde volgt module- of domeinregel.BR-004.
7BackendDatabaseStart transactie.Nieuwe run en voortgang worden samen verwerkt.Alles of niets.
8BackendDatabaseMaakt nieuwe ontvangerrun aan.Eerdere runs blijven bestaan.POST-001, POST-003.
9BackendDatabaseInitialiseert voortgang en vraagvolgorde.Nieuwe run is startklaar.POST-002.
10FrontendOefenschermOpent nieuwe run.Leerling kan beginnen.POST-005.

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 data te lekken.POP-LLN-DEL-SHARED-REPEAT-NOT-AVAILABLE.Geen.
ALT-0034Item is door ontvanger uit overzicht verwijderd.Reguliere herhaalroute wordt geblokkeerd.POP-LLN-DEL-SHARED-REPEAT-NOT-AVAILABLE.Geen.
ALT-0044Item is nog nooit gestart en de gekozen actie hoort bij eerste start.Systeem verwijst naar de startflow.Inline afhandeling.Geen.
ALT-0055Bronpayload of renderrepresentatie ontbreekt.Opnieuw maken wordt geweigerd.POP-LLN-DEL-SHARED-REPEAT-NOT-AVAILABLE.Geen.
ALT-0068Runaanmaak faalt.Transactie rolt terug.POP-LLN-DEL-SHARED-REPEAT-ERROR.Geen half bruikbare run.
ALT-00710Navigatie naar oefenscherm faalt na succesvolle runaanmaak.Run blijft beschikbaar om te hervatten.Generieke foutafhandeling.Run blijft consistent.

9. Business rules

IDRegel
BR-001Alleen de bedoelde ontvanger mag een ontvangen gedeelde oefening opnieuw maken.
BR-002Opnieuw maken creëert altijd een nieuwe zelfstandige ExerciseRun.
BR-003Eerdere ontvangerruns worden niet overschreven of verwijderd.
BR-004De gedeelde inhoud blijft gelijk aan de broncontext; de vraagvolgorde mag opnieuw worden bepaald wanneer toegestaan.
BR-005De bronrun van de afzender wordt niet aangepast.
BR-006Opnieuw maken geeft geen bredere toegang tot niveau, categorie of docentcontext van de deler.
BR-007Een fout tijdens runaanmaak mag geen half bruikbare run achterlaten.
BR-008Actuele oefeningconfiguratie mag historische gedeelde inhoud niet stilzwijgend vervangen.

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 de reguliere herhaalroute.
Eerdere ontvangerrunWordt gebruikt om herhaalcontext te bepalen, maar wordt niet gewijzigd.
BronrunpayloadMoet beschikbaar, veilig decodeerbaar en renderbaar zijn.
VraagvolgordeWordt server-side bepaald en vastgelegd op de nieuwe run.
ActorWordt server-side uit sessie bepaald.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
7TransactieDatabaseStart transactionele verwerking van de herhaalactie.
8InsertExerciseRunsMaakt nieuwe zelfstandige ontvangerrun aan.
9Insert/initialisatieExerciseRunProgress / runpayloadInitialiseert vraaginhoud, vraagvolgorde en voortgang.
9EventSharedExerciseRepeatedRegistreert dat de ontvanger een gedeelde oefening opnieuw maakt.

12. Geen datamutaties

EntiteitReden
Eerdere ontvangerrunsBlijven historisch intact.
Bronrun van afzenderBlijft ongewijzigd.
SharedExercisesWordt gelezen als broncontext; het record hoeft niet te wijzigen voor iedere herhaling.
UserRelationshipsHerhalen maakt of beëindigt geen vriendschap.
SystemMessagesMailboxrecords worden niet aangepast.
Actuele oefeningconfiguratieVervangt de historische gedeelde inhoud niet.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Gedeelde oefening opnieuw maken

16.2 Herhalen geblokkeerd

17. Popupverwijzingen

PopupKeyMomentToepassing
POP-LLN-DEL-SHARED-REPEAT-NOT-AVAILABLEGedeelde oefening kan niet opnieuw gemaakt worden.Blokkeert herhaling zonder technische details te tonen.
POP-LLN-DEL-SHARED-REPEAT-ERRORFout tijdens aanmaak van de nieuwe run.Meldt herhaalfout en voorkomt half bruikbare run.

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

DoeldocumentAfleiding
Functioneel OntwerpGedeelde oefeningen beschrijft opnieuw maken vanuit een ontvangen gedeelde oefening.
Technisch OntwerpOefenruns, voortgang, resultaten, statistieken en PDF-brondata beschrijft duplicaten, nieuwe runs en relatie met het oorspronkelijke gedeelde item.
Technisch OntwerpOefenmodulecontract en dynamische module-integratie beschrijft hergebruik van modulepayloads en compatibiliteit.
Technisch OntwerpReadmodels, tellers, badges, caching en materialisatie beschrijft actualisatie van overzichten na opnieuw maken.
Software Requirements SpecificationBorgt de centrale requirements voor opnieuw maken, zelfstandige runhistorie en traceerbare acceptatiecriteria.

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-004-001SRS-LRN-009
SRS-SHR-006
AC-LRN-009
AC-SHR-006
Een ontvangen gedeelde oefening opnieuw kunnen laten maken door de bedoelde ontvanger
REQ-UC-LLN-DEL-004-002SRS-LRN-009
SRS-SHR-001
AC-LRN-009
AC-SHR-001
Voor iedere herhaling een nieuwe zelfstandige ExerciseRun aanmaken
REQ-UC-LLN-DEL-004-003SRS-LRN-009
SRS-SHR-001
AC-LRN-009
AC-SHR-001
Eerdere ontvangerruns en resultaten niet overschrijven
REQ-UC-LLN-DEL-004-004SRS-LRN-009
SRS-SHR-001
AC-LRN-009
AC-SHR-001
Dezelfde gedeelde inhoud gebruiken voor herhalingen
REQ-UC-LLN-DEL-004-005SRS-AUTH-001
SRS-LRN-009
SRS-SHR-001
SRS-NFR-AUD-001
AC-AUTH-001
AC-LRN-009
AC-SHR-001
AC-NFR-AUD-001
De vraagvolgorde voor herhalingen server-side bepalen en vastleggen
REQ-UC-LLN-DEL-004-006SRS-LRN-009
SRS-SHR-003
AC-LRN-009
AC-SHR-003
De bronrun van de afzender niet wijzigen
REQ-UC-LLN-DEL-004-007SRS-AUTH-001
SRS-LRN-009
SRS-SHR-001
SRS-NFR-SEC-001
AC-AUTH-001
AC-LRN-009
AC-SHR-001
AC-NFR-SEC-001
Niet-herhaalbare gedeelde oefeningen veilig blokkeren
REQ-UC-LLN-DEL-004-008SRS-LRN-009
SRS-SHR-001
SRS-NFR-AVL-001
AC-LRN-009
AC-SHR-001
AC-NFR-AVL-001
Mislukte herhaalacties zonder half bruikbare run afhandelen