Skip to main content

UC-LLN-OEF-001 — Oefening-startpagina openen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-OEF-001
NaamOefening-startpagina openen
DomeinLeerling / Oefenen en voortgang
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, routeguard, autorisatielaag, database, oefenaanbod-readmodel
RolcontextIngelogde gebruiker met actieve leerlingrol en geldige niveaucontext.
Betrokken schermenOefening-startpagina, leerlingnavigatie, oefeningdetailroute, routeguard, geschiedenislink.
Gerelateerde usecasesUC-LLN-TOEG-003 — Oefeningstoegang controleren bij openen; UC-LLN-OEF-002 — Verder gaan met niet-afgeronde oefening; UC-LLN-OEF-003 — Nieuwe oefening starten; UC-LLN-HIS-001 — Oefeninggeschiedenis bekijken; UC-GEN-ACC-002 — Inloggen en sessie verwerken
Primaire entiteitenUsers, UserSettings, TeacherLevels, TeacherLevelCategories, Exercises, ExerciseModules, ExerciseRuns
Secundaire entiteiten / eventsGeen persistente events; afgeleide startpagina-, hervatbaarheid- en geschiedenisreadmodels.
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling de startpagina van één concrete oefening opent. De pagina vormt de functionele tussenstap tussen het kiezen van een beschikbare oefening en het daadwerkelijk hervatten, starten of bekijken van geschiedenis. De pagina toont de introductie van de oefening en de beschikbare grote vervolgknoppen.

De oefening-startpagina is geen zelfstandige bron voor autorisatie. Het systeem controleert server-side of de leerling de gekozen oefening binnen de actuele niveaucontext mag openen. Alleen wanneer die controle slaagt, worden de acties Verder gaan, Start nieuwe en Geschiedenis bepaald en weergegeven.

De knop Verder gaan is alleen zichtbaar wanneer voor dezelfde leerling, oefening en actieve niveaucontext minimaal één niet-afgeronde exercise run bestaat. De knop Start nieuwe is voor leerlingen beschikbaar wanneer de oefening actief en toegankelijk is. De knop Geschiedenis is beschikbaar als route naar afgeronde runs voor deze oefening, maar geschiedenis zelf wordt niet in deze usecase uitgewerkt.

Deze usecase stopt vóór het genereren of hervatten van een oefening. Het aanklikken van een vervolgactie leidt naar de bijbehorende usecase. Daardoor blijft de startpagina een overzichts- en routecomponent, geen uitvoeringscomponent.

3. Scope

Deze usecase omvat wel:

  • openen van een oefening-startpagina door een leerling
  • server-side controle van leerlingrol, niveaucontext en oefeningstoegang
  • ophalen van oefeningintroductie en zichtbare oefeningmetadata
  • bepalen of Verder gaan zichtbaar is
  • bepalen of Start nieuwe beschikbaar is
  • tonen van de route naar oefeninggeschiedenis
  • tonen van het standaard aantal vragen voor de nieuwe-oefeningactie
  • blokkeren of veilig beperken bij ontbrekende, inactieve of niet-toegankelijke oefening
  • doorverwijzen naar vervolgusecases zonder daar inhoudelijk bronhouder van te worden

Deze usecase omvat niet:

  • genereren van een nieuwe exercise run; dat hoort bij UC-LLN-OEF-003
  • hervatten van een bestaande niet-afgeronde run; dat hoort bij UC-LLN-OEF-002
  • beantwoorden van vragen
  • afronden van een oefening
  • berekenen van resultaten of statistieken
  • tonen van volledige geschiedenis
  • beheren van oefeningen door docenten
  • toekennen of intrekken van niveauautorisaties
  • instellen van een verplicht niveau

DRY-afbakening voor deze usecase: oefeningtoegang, niveauautorisatie, docentbeheer, profielkeuzes en geschiedenisweergave blijven bij hun eigen usecases of centrale ontwerpbronnen. Deze usecase gebruikt de uitkomst daarvan alleen om de oefening-startpagina correct samen te stellen.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd.
PRE-002De gebruiker heeft een actieve leerlingrol.
PRE-003Er is een geldige actieve niveaucontext of een bestaande account-/profielroute voor herstel daarvan.
PRE-004De oefeningroute bevat een functionele verwijzing naar een concrete oefening binnen een categorie- en niveaucontext.
PRE-005Routeguard en autorisatielaag kunnen server-side controleren of de leerling de oefening mag openen.
PRE-006De oefening is in het onderliggende oefenaanbodmodel herleidbaar.
PRE-007De benodigde readmodels voor openstaande runs en geschiedenisindicatie kunnen worden opgebouwd.

5. Post-condities

IDResultaat
POST-001De leerling ziet de oefening-startpagina alleen wanneer de oefening binnen de actuele context toegankelijk is.
POST-002De vervolgacties op de pagina zijn afgeleid uit actuele server-side brondata.
POST-003Er is geen exercise run aangemaakt, hervat of afgerond.
POST-004Er zijn geen rollen, relaties, autorisaties, instellingen of oefenresultaten gewijzigd.
POST-005Niet-toegankelijke of ontbrekende oefeningen leiden tot veilige blokkade of neutrale niet-beschikbaarafhandeling.
POST-006De zichtbaarheid van Verder gaan is consistent met de actuele niet-afgeronde run binnen dezelfde oefening en niveaucontext.
POST-007De route naar geschiedenis wijzigt geen data en blijft onderhevig aan eigen autorisatiecontrole.

6. Trigger

De usecase start wanneer een leerling vanuit de leerling-frontpage, categorienavigatie, oefenaanbod, geschiedenisroute of een directe link een concrete oefening-startpagina opent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingLeerlingnavigatie / oefenaanbodKiest een beschikbare oefening.Frontend navigeert naar de oefening-startpagina.Route bevat functionele oefeningcontext.
2OefenHub frontendOefening-startpaginaVraagt de startpagina-informatie op.Backend ontvangt request met server-side sessiecontext.Clientstate is niet leidend.
3OefenHub backendRouteguardControleert ingelogde gebruiker en leerlingrol.Alleen actieve leerlingcontext mag verder.Users, UserRoles, Roles.
4OefenHub backendNiveaucontextresolverBepaalt actieve niveaucontext.Geldige context wordt toegepast of bestaande herstelroute neemt over.UserSettings / niveaucontext.
5OefenHub backendAutorisatielaagControleert of de oefening binnen deze context toegankelijk is.Niet-toegankelijke oefening wordt geblokkeerd.UC-LLN-TOEG-003.
6OefenHub backendOefening-readmodelLaadt oefeningmetadata en introductietekst.Startpagina kan inhoudelijk worden opgebouwd.Exercises, ExerciseModules.
7OefenHub backendRun-readmodelControleert op niet-afgeronde runs voor deze leerling, oefening en niveaucontext.Bepaalt of Verder gaan zichtbaar is.Alleen dezelfde oefening en actieve niveaucontext tellen mee.
8OefenHub backendRun-readmodelBepaalt de laatst gestarte niet-afgeronde run.Deze run wordt de doelcontext voor Verder gaan.Laatste niet-afgeronde run wint.
9OefenHub backendStartpagina-readmodelBepaalt het standaard aantal vragen voor Start nieuwe.Invulveld krijgt standaardwaarde.Standaard 15 tenzij configuratie anders bepaalt.
10OefenHub backendGeschiedenis-readmodelBepaalt of geschiedenisroute informatief gevuld kan worden.Geschiedenisactie wordt als route beschikbaar gemaakt.Geschiedenis zelf wordt niet geladen.
11OefenHub frontendOefening-startpaginaRendert introductie en vervolgknoppen.Leerling ziet beschikbare acties.Geen datamutatie.
12LeerlingOefening-startpaginaKiest eventueel een vervolgactie.Systeem start de passende vervolgusecase.UC-LLN-OEF-002, UC-LLN-OEF-003 of UC-LLN-HIS-001.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Gebruiker is niet ingelogdRouteguard start login- of publieke routeafhandeling.Niet van toepassingGeen
ALT-0023Gebruiker heeft geen actieve leerlingrolLeerling-startpagina wordt niet geladen.Niet van toepassingGeen
ALT-0034Niveaucontext ontbreektSysteem verwijst naar bestaande profiel-/accountflow.Niet van toepassingGeen
ALT-0045Oefening is niet toegankelijk binnen actieve contextSysteem toont niet-beschikbaarafhandeling en start geen run.Componentmelding / toegangafhandelingGeen
ALT-0055Oefening is inactief of in onderhoudStartpagina wordt geblokkeerd of toont veilige niet-beschikbaarstaat.ComponentmeldingGeen
ALT-0066Oefening bestaat niet meerSysteem toont niet-gevonden- of niet-beschikbaarafhandeling.ComponentmeldingGeen
ALT-0077Geen niet-afgeronde run aanwezigVerder gaan wordt niet getoond.Niet van toepassingGeen
ALT-00810Geen afgeronde geschiedenis aanwezigGeschiedenisactie blijft beschikbaar of toont later een lege geschiedenisstaat.Niet van toepassingGeen
ALT-00911Client heeft oude zichtbaarheid gecachetActuele backendresponse overschrijft verouderde weergave.Niet van toepassingGeen
ALT-01012Leerling kiest vervolgactie na verlopen toegangVervolgusecase controleert opnieuw server-side en blokkeert waar nodig.Componentmelding / toegangafhandelingGeen

9. Business rules

IDRegel
BR-001De oefening-startpagina mag alleen worden getoond voor een oefening die binnen de actuele leerling- en niveaucontext toegankelijk is.
BR-002De startpagina is geen autorisatiebron; zij toont alleen wat server-side is vastgesteld.
BR-003Verder gaan is alleen zichtbaar wanneer minimaal één niet-afgeronde run bestaat voor dezelfde leerling, oefening en actieve niveaucontext.
BR-004Bij meerdere niet-afgeronde runs verwijst Verder gaan naar de laatst gestarte niet-afgeronde run binnen dezelfde context.
BR-005Runs uit een andere niveaucontext worden niet gebruikt voor Verder gaan, ook niet wanneer de oefening inhoudelijk overeenkomt.
BR-006Start nieuwe genereert nog geen run zolang de leerling de actie niet kiest.
BR-007Geschiedenis opent een aparte geschiedenisflow en laadt niet automatisch alle historische details op de startpagina.
BR-008Een inactieve of niet-toegankelijke oefening mag niet gestart of hervat worden via de startpagina.
BR-009De standaardwaarde voor het aantal vragen mag beheerd of geconfigureerd zijn, maar de startpagina moet een geldige invoerwaarde tonen.
BR-010De startpagina wijzigt geen oefenresultaten, rollen, relaties, autorisaties of instellingen.
BR-011Technische identifiers zoals GUID's worden niet aan leerlingen getoond.
BR-012Alle vervolgacties voeren opnieuw server-side toegangscontrole uit.

10. Datavalidatie

Veld / objectValidatie
LeerlingcontextMoet server-side actief en geldig zijn.
NiveaucontextMoet de actuele context zijn waarbinnen de oefening wordt geopend.
OefeningverwijzingMoet verwijzen naar een bestaande, toegankelijke en actieve oefening.
CategoriecontextMoet binnen het actieve niveau beschikbaar zijn voor de leerling.
Verder-gaan-runMoet niet-afgerond zijn en bij dezelfde leerling, oefening en niveaucontext horen.
Standaard aantal vragenMoet numeriek, positief en binnen eventueel ingestelde grenzen vallen.
GeschiedenisrouteMag alleen functionele context doorgeven; detailautorisatie ligt in de geschiedenisusecase.
ClientstateMag niet bepalen welke acties beschikbaar zijn.
IntroductietekstMag alleen uit toegestane oefeningcontext worden weergegeven.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-12Geen persistente mutatieNiet van toepassingDe startpagina wordt als readmodel samengesteld op basis van bestaande gebruiker-, niveau-, oefening-, autorisatie- en rundata.

12. Geen datamutaties

EntiteitReden
ExerciseRunsEr wordt nog geen run aangemaakt, hervat of afgerond.
ExerciseRunProgressEr wordt nog geen vraag getoond of beantwoord.
UsersDe startpagina wijzigt het account niet.
UserSettingsDe startpagina wijzigt geen niveaukeuze of voorkeur.
UserRelationshipsRelaties worden niet aangepast.
StudentLevelAuthorizationsToegang wordt alleen gelezen, niet gewijzigd.
SystemMessagesDe startpagina maakt geen systeemberichten aan.
LiveViewAuditEr start nog geen oefening of meekijksessie.

13. State diagram

Niet van toepassing. Deze usecase wijzigt geen persistent statusobject. De zichtbaarheid van knoppen is een afgeleide UI-toestand op basis van actuele toegang, oefeningstatus en bestaande runs.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Oefening-startpagina laden

16.2 Oefening niet beschikbaar

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingNiet van toepassingDe oefening-startpagina gebruikt geen domeinspecifieke popupregister-popup.

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

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft starten, hervatten, beantwoorden, Geen idee, onderbreken, afronden en resultaatnavigatie binnen de leerling-oefenflow.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en voortgang, live meekijken en frontend-oefencontext beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase.
Software Requirements SpecificationSoftware Requirements Specification bevat centrale eisen en acceptatiecriteria voor oefenruns, voortgangsopslag, modulegedrag, foutafhandeling en veilige server-side verwerking.
Database-informatieDatabase-informatie blijft bron voor ExerciseRuns, ExerciseRunProgress, payloadvelden, snapshots en soft links richting gebruiker en catalogus.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor oefenflow, modulepayloads, Geen idee en voortgangsregistratie.

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-OEF-001-001SRS-AUTH-001
SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
AC-AUTH-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
De oefening-startpagina alleen tonen aan een leerling met geldige server-side toegang tot de oefening
REQ-UC-LLN-OEF-001-002SRS-RDM-001
SRS-RDM-003
SRS-LRN-005
AC-RDM-001
AC-RDM-003
AC-LRN-005
De acties op de oefening-startpagina afleiden uit actuele backenddata
REQ-UC-LLN-OEF-001-003SRS-CAT-006
SRS-LRN-002
SRS-LRN-007
AC-CAT-006
AC-LRN-002
AC-LRN-007
Verder gaan alleen tonen wanneer een niet-afgeronde run bestaat binnen dezelfde leerling-, oefening- en niveaucontext
REQ-UC-LLN-OEF-001-004SRS-LRN-002
SRS-LRN-007
AC-LRN-002
AC-LRN-007
Bij meerdere niet-afgeronde runs de laatst gestarte run als hervatdoel gebruiken
REQ-UC-LLN-OEF-001-005SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-LRN-001
Start nieuwe beschikbaar maken zonder al bij het openen van de startpagina een run aan te maken
REQ-UC-LLN-OEF-001-006SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-LRN-010
SRS-NFR-AUD-001
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-LRN-010
AC-NFR-AUD-001
Een geschiedenisroute kunnen tonen zonder geschiedenisdetails direct op de startpagina te laden
REQ-UC-LLN-OEF-001-007SRS-AUTH-001
SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-LRN-009
SRS-GUA-001
AC-AUTH-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-LRN-009
AC-GUA-001
Verouderde of niet-toegankelijke oefeninglinks veilig blokkeren zonder domeinmutaties
REQ-UC-LLN-OEF-001-008SRS-AUTH-001
SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-RDM-006
SRS-RDM-007
AC-AUTH-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-RDM-006
AC-RDM-007
Bij het openen van de oefening-startpagina geen oefenrun, voortgangsregel, relatie, autorisatie of bericht aanmaken
REQ-UC-LLN-OEF-001-009SRS-LRN-009
AC-LRN-009
Technische identifiers verbergen voor de leerling en functionele namen tonen
REQ-UC-LLN-OEF-001-010SRS-AUTH-001
SRS-LRN-002
SRS-LRN-007
SRS-NFR-AUD-001
AC-AUTH-001
AC-LRN-002
AC-LRN-007
AC-NFR-AUD-001
Elke vervolgactie opnieuw server-side controleren voordat een run wordt hervat, gestart of geschiedenis wordt geopend
REQ-UC-LLN-OEF-001-011SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
De zichtbaarheid van de oefening-startpagina opnieuw bepalen wanneer de leerling de pagina ververst
REQ-UC-LLN-OEF-001-012SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-LRN-003
SRS-NFR-AUD-001
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-LRN-003
AC-NFR-AUD-001
Een oefening-startpagina kunnen tonen zonder afgeronde geschiedenis of openstaande voortgang
REQ-UC-LLN-OEF-001-013SRS-LRN-009
AC-LRN-009
De standaardwaarde voor het aantal vragen alleen als voorstel tonen en niet als aangemaakte run behandelen
REQ-UC-LLN-OEF-001-014SRS-LRN-010
SRS-NFR-AUD-001
AC-LRN-010
AC-NFR-AUD-001
De geschiedenisactie naar een afzonderlijke geschiedenisflow routeren
REQ-UC-LLN-OEF-001-015SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-ACC-003
SRS-ACC-005
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-ACC-003
AC-ACC-005
AC-LRN-001
Verhinderen dat een leerling via een oude startpaginaweergave een inmiddels ontoegankelijke oefening start
REQ-UC-LLN-OEF-001-016SRS-AUTH-001
SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
AC-AUTH-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
Lege toestanden op de startpagina functioneel neutraal tonen zonder verborgen autorisatiedata te lekken
REQ-UC-LLN-OEF-001-017SRS-LRN-009
AC-LRN-009
De oefeningintroductie alleen tonen wanneer de oefening binnen de actuele context zichtbaar mag zijn
REQ-UC-LLN-OEF-001-018SRS-LRN-002
SRS-LRN-007
AC-LRN-002
AC-LRN-007
De actie Verder gaan verbergen zodra de laatst bekende run niet meer hervatbaar is
REQ-UC-LLN-OEF-001-019SRS-RDM-001
SRS-RDM-003
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-LRN-001
De oefening-startpagina als readmodel behandelen en niet als persistente bron voor startpagina-informatie
REQ-UC-LLN-OEF-001-020SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-RDM-009
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-RDM-009
AC-LRN-001
Bij fouten in de startpaginaopbouw voorkomen dat een run impliciet wordt aangemaakt
REQ-UC-LLN-OEF-001-021SRS-AUTH-004
SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-ACC-003
SRS-ACC-005
AC-AUTH-004
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-ACC-003
AC-ACC-005
Voor de startpagina onderscheid maken tussen niet-beschikbaar, niet-toegankelijk en geen voortgang beschikbaar
REQ-UC-LLN-OEF-001-022SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
De startpagina-informatie kunnen opbouwen zonder gegevens van andere leerlingen zichtbaar te maken
REQ-UC-LLN-OEF-001-023SRS-AUTH-001
SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
SRS-CNT-004
AC-AUTH-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
AC-CNT-004
Bij directe URL-toegang dezelfde startpagina-validatie uitvoeren als bij navigatie vanuit de leerlinginterface
REQ-UC-LLN-OEF-001-024SRS-RDM-001
SRS-RDM-003
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-LRN-001
Bij elke vervolgactie opnieuw actuele backendcontext gebruiken in plaats van de eerder gerenderde startpaginastatus
REQ-UC-LLN-OEF-001-025SRS-RDM-001
SRS-RDM-003
SRS-RDM-005
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-RDM-005
AC-LRN-001
De startpagina kunnen tonen binnen responsive leerlinginterface zonder functionele acties te verliezen
REQ-UC-LLN-OEF-001-026SRS-LRN-008
AC-LRN-008
Het ontbreken van niet-afgeronde runs niet als fout behandelen
REQ-UC-LLN-OEF-001-027SRS-LRN-002
SRS-LRN-007
AC-LRN-002
AC-LRN-007
Bij een inactieve oefening geen Start nieuwe of Verder gaan beschikbaar maken
REQ-UC-LLN-OEF-001-028SRS-AUTH-001
SRS-RDM-001
SRS-RDM-003
SRS-RDM-006
SRS-LRN-001
AC-AUTH-001
AC-RDM-001
AC-RDM-003
AC-RDM-006
AC-LRN-001
De acties op de startpagina consistent houden met de actuele run- en toegangstoestand
REQ-UC-LLN-OEF-001-029SRS-RDM-001
SRS-RDM-003
SRS-LRN-001
AC-RDM-001
AC-RDM-003
AC-LRN-001
De startpagina zonder datamutatie kunnen verlaten
REQ-UC-LLN-OEF-001-030SRS-RDM-001
SRS-RDM-003
SRS-LRN-002
SRS-LRN-007
AC-RDM-001
AC-RDM-003
AC-LRN-002
AC-LRN-007
Het openen van de startpagina los houden van het daadwerkelijk starten of hervatten van een oefening