Skip to main content

UC-LLN-TOEG-005 — Open niveau gebruiken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-TOEG-005
NaamOpen niveau gebruiken
DomeinLeerling / Oefenaanbod en toegang
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, niveaucontextresolver, autorisatielaag, database
RolcontextIngelogde leerling die een open niveau kiest of gebruikt als actieve niveaucontext.
Betrokken schermenLeerling-frontpage, niveaukeuze in profiel/frontpagecontext, oefenaanbod, categorie- en oefeningenlijsten.
Gerelateerde usecasesUC-LLN-TOEG-001 — Beschikbare categorieën bekijken; UC-LLN-TOEG-002 — Beschikbare oefeningen bekijken; UC-LLN-TOEG-003 — Oefeningstoegang controleren bij openen; UC-GEN-PROF-003 — Verplicht niveau instellen; UC-LLN-FP-002 — Actieve niveaucontext toepassen
Primaire entiteitenUsers, UserSettings, TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises
Secundaire entiteiten / eventsCategories, ExerciseModules
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling een open niveau gebruikt. Een open niveau is functioneel beschikbaar zonder dat er eerst een individuele docent-leerlingniveauautorisatie hoeft te zijn toegekend. De leerling kan dit niveau als actieve niveaucontext gebruiken en krijgt daarmee toegang tot de actieve categorieën en oefeningen die binnen dat open niveau beschikbaar zijn.

Het gebruiken van een open niveau maakt geen docent-leerlingrelatie, geen TeacherStudentLevelAccess en geen privé- of ouder-/voogdrelatie aan. De toegang is gebaseerd op de open-status van het niveau en de actuele actieve inhoud binnen dat niveau. De gekozen niveaucontext kan wel als gebruikersinstelling worden opgeslagen wanneer de bestaande profiel-/niveaukeuzeregels dat toestaan.

Deze usecase is belangrijk als tegenhanger van privéniveaus: open niveaus zijn toegankelijk via een algemene niveaucontext, terwijl privéniveaus expliciete autorisatie vereisen. Ook bij open niveaus blijven categorieën en oefeningen alleen zichtbaar wanneer zij actief zijn en server-side gecontroleerd worden.

3. Scope

Deze usecase omvat wel:

  • kiezen of gebruiken van een open niveau door een leerling
  • controleren dat het niveau actief en open is
  • opslaan of gebruiken van de actieve niveaucontext volgens de bestaande gebruikersinstellingenregels
  • tonen van actieve categorieën en oefeningen binnen het open niveau
  • server-side controle bij het openen van oefeningen binnen het open niveau
  • geen relatie- of autorisatierecord aanmaken voor open gebruik
  • terugvallen wanneer het open niveau later niet meer actief of open is

Deze usecase omvat niet:

  • aanmaken van open niveaus door docenten
  • wijzigen van open/privé-status van niveaus
  • toekennen van privé-niveauautorisatie
  • beheer van categorieën of oefeningen
  • starten van exercise runs
  • profielflow voor verplicht niveau inhoudelijk uitwerken
  • relaties of systeemberichten aanmaken

DRY-afbakening voor deze usecase: beheer van niveaus, categorieën, oefeningen, relaties en autorisaties blijft bij de daarvoor bedoelde docent-, beheerder-, profiel- en relatieusecases. Deze usecase gebruikt de uitkomst daarvan als toegangsvoorwaarde en maakt die processen niet opnieuw bronhoudend.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd als leerling.
PRE-002Het niveau bestaat en is actief.
PRE-003Het niveau is functioneel als open beschikbaar.
PRE-004De backend kan de open-status server-side controleren.
PRE-005Er zijn of kunnen actieve categorieën/oefeningen binnen het niveau worden bepaald.

5. Post-condities

IDResultaat
POST-001Het open niveau is als actieve leerlingcontext gebruikt of geselecteerd.
POST-002De leerling ziet alleen actieve categorieën en oefeningen binnen dit open niveau.
POST-003Er is geen docent-leerlingrelatie of individuele niveauautorisatie aangemaakt.
POST-004Wanneer het open niveau niet langer beschikbaar is, wordt de context opnieuw bepaald of ongeldig verklaard.
POST-005Oefeningen binnen het open niveau blijven server-side controleplichtig.

6. Trigger

De usecase start wanneer een leerling een open niveau kiest, wanneer een eerder gekozen open niveau wordt geladen, of wanneer de frontpage/oefenaanbodcontext een open niveau als actieve niveaucontext moet toepassen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingNiveaukeuze / frontpageKiest of gebruikt een open niveau.Frontend vraagt niveaucontext te activeren.Geen autorisatieaanname.
2FrontendNiveaucomponentStuurt gekozen niveau naar backend.Backend valideert vanuit sessiecontext.Routewaarde is niet leidend.
3BackendSessielaagControleert dat actor leerling is.Alleen leerlingcontext gaat verder.Server-side rol.
4BackendNiveaudataControleert dat niveau bestaat en actief is.Inactief niveau wordt geweigerd.TeacherLevels.IsActive.
5BackendNiveauregelsControleert dat niveau open is.Open niveau mag als leerlingcontext worden gebruikt.Open/privé-eigenschap.
6BackendGebruikersinstellingenPast geselecteerde niveaucontext toe volgens profielregels.Context kan worden opgeslagen of als actieve runtimecontext gelden.UserSettings.SelectedTeacherLevelId indien van toepassing.
7BackendOefenaanbodBepaalt actieve categorieën en oefeningen binnen open niveau.Alleen actief aanbod wordt getoond.UC-LLN-TOEG-001/002.
8FrontendLeerlingomgevingToont frontpage en oefenaanbod voor open niveau.Leerling kan verder navigeren.Oefening openen blijft controleplichtig.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0014Niveau bestaat niet of is inactief.Systeem weigert niveaucontext en leidt naar keuze of lege context.Geen popupregister-popup.Geen.
ALT-0025Niveau is niet open.Systeem behandelt het als privéniveau en vereist autorisatie via UC-LLN-TOEG-006.Geen.Geen.
ALT-0036Opslaan van selected level is niet toegestaan omdat context niet geldig is.Systeem gebruikt het niveau niet als actief geselecteerd niveau.Componentmelding.Geen blijvende mutatie.
ALT-0047Open niveau bevat geen actieve categorieën.Systeem toont lege oefenaanbodstaat.Leegstaatcomponent.Geen.
ALT-0057Open niveau had eerder aanbod maar content is gedeactiveerd.Actuele readmodels tonen geen gedeactiveerde categorieën/oefeningen.Geen.Geen.
ALT-0068Leerling opent oefening uit oud open niveau via browsergeschiedenis.UC-LLN-TOEG-003 controleert opnieuw en blokkeert indien nodig.Geen.Geen.

9. Business rules

IDRegel
BR-001Een open niveau mag door een leerling als niveaucontext worden gebruikt wanneer het actief is.
BR-002Gebruik van een open niveau maakt geen TeacherStudentLevelAccess aan.
BR-003Gebruik van een open niveau maakt geen docent-leerlingrelatie aan.
BR-004Categorieën en oefeningen binnen een open niveau moeten actief zijn om zichtbaar te zijn.
BR-005Open niveaucontext mag alleen worden opgeslagen wanneer de actuele context geldig is.
BR-006Open niveaugebruik geeft geen docentinzage, ouder-/voogdinzage of relatiecontext.
BR-007Een niveau dat later niet meer open of actief is, mag niet als actieve context blijven gelden.
BR-008Een open niveau omzeilt niet de oefeningstoegangscontrole bij openen.
BR-009Geschiedenis van eerder gemaakte oefeningen blijft volgens geschiedenisregels bestaan.
BR-010De leerling kiest bewust een niveau; het systeem verzint geen willekeurig open niveau als verplicht profielniveau.

10. Datavalidatie

Veld / objectValidatie
NiveauMoet bestaan en actief zijn.
Open-statusMoet functioneel open zijn voor leerlinggebruik.
LeerlingrolMoet server-side aanwezig zijn.
Selected levelMag alleen worden opgeslagen wanneer het niveau toegankelijk is.
Categorieën/oefeningenWorden na niveaukeuze opnieuw actief gefilterd.
PrivéstatusAls het niveau privé is, moet UC-LLN-TOEG-006 gelden.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
4ReadTeacherLevelsNiveau en open-status worden gelezen.
6UpdateUserSettingsGeselecteerd niveau kan worden opgeslagen wanneer profielregels dit toestaan.
7ReadTeacherLevelCategories, TeacherLevelCategoryExercises, ExercisesBeschikbaar aanbod wordt bepaald.

Deze usecase introduceert geen nieuw persistent domeinevent. Alleen de eventuele geselecteerde niveaucontext kan worden bijgewerkt via het bestaande gebruikersinstellingendomein.

12. Geen datamutaties

EntiteitReden
TeacherStudentLevelAccessOpen niveaugebruik maakt geen individuele autorisatie aan.
UserRelationshipsOpen niveaugebruik maakt geen docent-leerlingrelatie.
TeacherLevelsLeerling wijzigt het niveau niet.
ExercisesLeerling wijzigt oefeningen niet.
ExerciseRunsGebruik van niveau start nog geen run.
SystemMessagesEr wordt geen bericht aangemaakt.

13. State diagram

Niet van toepassing. Deze usecase raakt geen persistent statusobject met een eigen lifecycle. Toegang en zichtbaarheid worden afgeleid uit actuele niveaucontext, autorisaties, actieve relaties en contentstatussen.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingNiet van toepassingDeze usecase gebruikt routeguard-, leegstaat- of componentgedrag en geen popupregister-popup.

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

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft zichtbaar oefenaanbod, niveaucontext, categorie-/oefeningtoegang en veilige blokkades.
Technisch OntwerpTechnisch Ontwerp: autorisatie en contextcontrole, oefencatalogus, readmodels en frontend-routing 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 aanbodfiltering, server-side autorisatie, blokkades en geen ongewenste datamutaties.
Database-informatieDatabase-informatie blijft bron voor catalogus-, autorisatie- en soft-linkrelaties waarmee zichtbaar aanbod server-side wordt bepaald.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor oefenaanbod, niveaus, categorieën en autorisatiegrenzen.

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-TOEG-005-001SRS-CAT-005
SRS-LRN-009
AC-CAT-005
AC-LRN-009
Een actief open niveau als leerlingniveaucontext kunnen gebruiken
REQ-UC-LLN-TOEG-005-002SRS-REL-001
SRS-CAT-006
SRS-LRN-009
SRS-TCH-003
AC-REL-001
AC-CAT-006
AC-LRN-009
AC-TCH-003
Voor open niveaugebruik geen docent-leerlingrelatie aanmaken
REQ-UC-LLN-TOEG-005-003SRS-CAT-006
SRS-LRN-009
AC-CAT-006
AC-LRN-009
Voor open niveaugebruik geen TeacherStudentLevelAccess aanmaken
REQ-UC-LLN-TOEG-005-004SRS-AUTH-001
SRS-RDM-001
SRS-RDM-005
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-RDM-001
AC-RDM-005
AC-CAT-006
AC-LRN-009
Categorieën en oefeningen binnen open niveaus opnieuw server-side filteren
REQ-UC-LLN-TOEG-005-005SRS-CAT-005
SRS-LRN-009
AC-CAT-005
AC-LRN-009
Een open niveau niet meer gebruiken wanneer het inactief of privé is geworden
REQ-UC-LLN-TOEG-005-006SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-CAT-006
SRS-LRN-009
SRS-NFR-ACC-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-CAT-006
AC-LRN-009
AC-NFR-ACC-001
Een open niveau alleen als selected level opslaan wanneer het actueel toegankelijk is
REQ-UC-LLN-TOEG-005-007SRS-CAT-006
SRS-LRN-009
AC-CAT-006
AC-LRN-009
Oefening openen binnen een open niveau opnieuw controleren
REQ-UC-LLN-TOEG-005-008SRS-RDM-001
SRS-RDM-005
SRS-CAT-005
SRS-LRN-009
AC-RDM-001
AC-RDM-005
AC-CAT-005
AC-LRN-009
Een lege staat tonen wanneer een open niveau geen actief aanbod bevat
REQ-UC-LLN-TOEG-005-009SRS-AUTH-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-CAT-006
AC-LRN-009
Open niveaugebruik onderscheiden van privéniveauautorisatie
REQ-UC-LLN-TOEG-005-010SRS-CAT-006
SRS-LRN-009
AC-CAT-006
AC-LRN-009
Open niveaucontext opnieuw valideren wanneer de open-status wijzigt
REQ-UC-LLN-TOEG-005-011SRS-AUTH-001
SRS-CAT-006
SRS-LRN-009
AC-AUTH-001
AC-CAT-006
AC-LRN-009
Open niveaugebruik kunnen toepassen zonder relationele toegangstoekenning
REQ-UC-LLN-TOEG-005-012SRS-RDM-001
SRS-RDM-005
SRS-CAT-006
SRS-LRN-005
AC-RDM-001
AC-RDM-005
AC-CAT-006
AC-LRN-005
Open niveauaanbod afleiden uit actieve categorieën en oefeningen
REQ-UC-LLN-TOEG-005-013SRS-RDM-001
SRS-RDM-005
SRS-RDM-007
SRS-REL-001
SRS-CAT-006
SRS-LRN-005
AC-RDM-001
AC-RDM-005
AC-RDM-007
AC-REL-001
AC-CAT-006
AC-LRN-005
Geen docentinzage of relatiecontext afleiden uit open niveaugebruik
REQ-UC-LLN-TOEG-005-014SRS-ACC-003
SRS-CAT-006
SRS-LRN-003
AC-ACC-003
AC-CAT-006
AC-LRN-003
Open niveaukeuze niet stilzwijgend gebruiken als verplicht profielantwoord wanneer bewuste keuze nodig is