Skip to main content

UC-DOC-AANB-002 — Niveau selecteren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-AANB-002
NaamNiveau selecteren
DomeinDocent
SubdomeinOefenaanbod, niveaus en categorieën
Primaire actorDocent
Secundaire actor(en)Systeem
RolcontextIngelogde gebruiker met actieve rol Docent
Betrokken schermenOefenaanbod, niveaucontextselector, niveau-samenvatting
Gerelateerde usecasesUC-DOC-AANB-001 — Oefenaanbod openen; UC-DOC-AANB-005 — Categorieën binnen niveau bekijken; UC-DOC-OEF-001 — Oefeningen binnen categorie bekijken
Primaire entiteitenLevels, LevelCollaborators, UserSettings
Secundaire entiteiten / eventsLevelCategoryLinks, Exercises, StudentLevelAuthorizations
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een docent binnen Oefenaanbod een niveau selecteert als actuele werkcontext.

Een docent kan meerdere niveaus beheren of via samenwerking bewerken. De geselecteerde niveaucontext bepaalt welke categorieën, oefeningen, collaborators, leerlingtoegang en samenvattingsinformatie op vervolgschermen worden getoond. De selectie is geen autorisatiebron op zichzelf. Het systeem moet bij iedere selectie opnieuw server-side controleren of het niveau voor de docent toegankelijk is.

De selectie mag eventueel als gebruikersvoorkeur worden onthouden wanneer dat functioneel gewenst is. Die opslag is echter een voorkeur voor gebruiksgemak en geen bewijs van toegang.

3. Scope

Binnen scope:

  • selecteren van een toegankelijk niveau binnen Oefenaanbod;
  • server-side valideren van toegang tot het gekozen niveau;
  • laden van de bijbehorende niveaucontext;
  • tonen van niveaukerngegevens en samenvattingswaarden;
  • onthouden van laatst gekozen niveaucontext als gebruikersvoorkeur;
  • afhandelen van verouderde of niet meer toegankelijke selecties.

Buiten scope:

  • aanmaken of wijzigen van het niveau;
  • overdragen van eigenaarschap;
  • collaborators toevoegen of verwijderen;
  • categorieën koppelen;
  • oefeningen configureren;
  • leerlingautorisaties wijzigen;
  • kiezen van leerlingniveau in het leerlingprofiel;
  • beheerderondersteuning.

4. Pre-condities

IDVoorwaarde
PRE-001De docent heeft Oefenaanbod geopend.
PRE-002De docent heeft een actieve docentrol.
PRE-003Er bestaat minimaal één niveau dat voor de docent toegankelijk is.
PRE-004De niveaukeuze wordt aangeboden op basis van server-side toegankelijke niveaus.
PRE-005Een gekozen niveau-ID is niet op zichzelf voldoende voor toegang.
PRE-006De geselecteerde context wordt niet uit onbeveiligde clientstate vertrouwd.
PRE-007Een eventuele eerder opgeslagen voorkeur wordt opnieuw gevalideerd.

5. Post-condities

IDResultaat
POST-001Het gekozen niveau is als actuele werkcontext geladen.
POST-002De docent ziet alleen gegevens die binnen het gekozen niveau en docentcontext horen.
POST-003Vervolgacties gebruiken het geselecteerde niveau als context.
POST-004Een ongeldige selectie leidt niet tot datalek of ongeautoriseerde weergave.
POST-005Optionele voorkeur voor laatst gekozen niveau is veilig bijgewerkt.
POST-006Er zijn geen wijzigingen aan het niveau zelf uitgevoerd.
POST-007Samenvattingswaarden zijn opnieuw afgeleid voor het gekozen niveau.

6. Trigger

De usecase start wanneer de docent op de Oefenaanbodpagina een niveau kiest uit de niveaucontextselector of via een interne link naar een niveaucontext navigeert.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentOefenaanbodKiest een niveau.Frontend verstuurt gekozen niveau-ID.Niveau-ID is input, geen autorisatiebewijs.
2SysteemApplicatieserviceControleert docentcontext.Valideert actieve docentrol.UserRoles + Roles.
3SysteemApplicatieserviceControleert toegang tot niveau.Controleert eigenaarschap of actieve collaboratorstatus.Levels, LevelCollaborators.
4SysteemApplicatieserviceLaadt niveaukerngegevens.Leest naam, beschrijving, zichtbaarheid en eigenaar.Levels.
5SysteemApplicatieserviceLaadt samenvattingswaarden.Berekent categorieën, oefeningen, leerlingen en collaborators binnen context.Readmodel.
6SysteemGebruikersinstellingSlaat eventueel laatst gekozen niveau op.Alleen na succesvolle validatie.UserSettings of vergelijkbare voorkeur.
7SysteemOefenaanbodToont niveaucontext.Pagina toont categorieën en beschikbare vervolgacties.Vervolgacties blijven apart geautoriseerd.
8DocentOefenaanbodWerkt verder binnen niveau.Systeem gebruikt niveaucontext voor vervolgusecases.Contextgebonden routing.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Docentrol is niet meer actief.Selectie wordt geweigerd en route teruggezet naar veilige context.Generieke toegangafhandeling.Geen.
ALT-0023Niveau bestaat niet.Systeem toont niet-beschikbaarafhandeling.Inline melding.Geen.
ALT-0033Niveau bestaat wel maar is niet toegankelijk.Systeem blokkeert niveaucontext.Generieke toegangafhandeling.Geen.
ALT-0043Collaboratorstatus is beëindigd.Niveau wordt niet geladen als werkcontext.Inline melding.Geen.
ALT-0055Samenvattingswaarden kunnen niet volledig worden berekend.Kerncontext wordt geladen; probleem wordt veilig weergegeven.Inline melding.Geen.
ALT-0066Opslaan van voorkeur mislukt.Niveaucontext blijft voor huidige sessie bruikbaar.Geen of inline melding.Geen domeinmutatie behalve mislukte voorkeur.
ALT-0071Docent kiest snel meerdere niveaus.Systeem verwerkt alleen de laatst geldige selectie.Niet van toepassing.Eventuele voorkeur alleen laatst geldige selectie.
ALT-0081Selectie komt via directe URL.Zelfde server-side validatie als bij selector.Niet van toepassing.Geen.

9. Business rules

IDRegel
BR-001Een niveau mag alleen worden geselecteerd wanneer de docent eigenaar of actieve collaborator is.
BR-002Een geselecteerd niveau bepaalt de werkcontext, maar niet de autorisatie zelf.
BR-003Autorisatie wordt altijd server-side opnieuw bepaald.
BR-004Een opgeslagen laatst gekozen niveau mag nooit ongevalideerd worden gebruikt.
BR-005Een beëindigde collaborator verliest de mogelijkheid om het niveau als context te selecteren.
BR-006Selectie van een niveau wijzigt het niveau zelf niet.
BR-007Samenvattingswaarden worden opnieuw bepaald voor het gekozen niveau.
BR-008Categorieën en oefeningen die buiten het niveau vallen worden niet getoond.
BR-009Leerlinggegevens worden alleen als compacte aantallen getoond, niet als detaildataset.
BR-010De selectie is gescheiden van leerlingniveaukeuze in profiel.
BR-011Bij gecombineerde rollen blijft deze selectie beperkt tot docentfunctionaliteit.
BR-012Open niveaus van andere docenten zijn alleen selecteerbaar wanneer de docent volgens de geldende regels toegang heeft tot die context.
BR-013Collaboratorrechten geven toegang tot inhoud binnen het niveau, niet automatisch tot leerlingresultaten.
BR-014Vervolgacties zoals eigenaarschap, leerlingautorisaties en oefenbewerking hebben eigen autorisatieregels.

10. Datavalidatie

Veld / objectValidatie
LevelIdMoet bestaan als actief of historisch bruikbaar niveau binnen toegestane context.
DocentcontextMoet actieve docentrol bevatten.
EigenaarschapOwnerUserId moet huidige docent zijn of voldoende rechten geven volgens context.
CollaboratorrecordMoet actief zijn voor het gekozen niveau.
Laatst gekozen niveauMag alleen worden opgeslagen na succesvolle server-side validatie.
RouteparameterWordt als input gevalideerd, niet vertrouwd als autorisatiebron.
SamenvattingswaardenWorden gefilterd op gekozen niveaucontext.
Gecombineerde rolMoet expliciet docentcontext gebruiken.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-5ReadLevels, LevelCollaborators, LevelCategories, ExercisesNiveaucontext en samenvattingsdata worden gelezen.
6UpdateUserSettings / docentcontextvoorkeurDe laatst gekozen docentniveaucontext kan als gebruikersvoorkeur worden bijgewerkt wanneer deze opslag beschikbaar is; deze waarde is geen autorisatiebron.
7ReadmodelOefenaanbodreadmodelSchermdata wordt opnieuw opgebouwd vanuit de nieuw gekozen niveaucontext.

De niveaukeuze veroorzaakt geen wijziging aan niveau, categorie, oefening, collaboratorrechten of leerlingautorisaties.

12. Geen datamutaties

EntiteitReden
LevelsSelecteren wijzigt geen niveaugegevens.
LevelCollaboratorsSelecteren koppelt of ontkoppelt geen collaborator.
StudentLevelAuthorizationsSelecteren wijzigt geen leerlingtoegang.
ExercisesSelecteren wijzigt geen oefeningen.
LevelCategoryLinksSelecteren koppelt geen categorieën.
SystemMessagesSelectie veroorzaakt geen bericht.
ExerciseRunsEr wordt geen oefening gestart.
UserRelationshipsRelaties worden niet gewijzigd.

13. State diagram

Niet van toepassing.

De selectie van een niveau is een contextkeuze, geen persistent statusobject. Wanneer de gekozen context als voorkeur wordt opgeslagen, blijft de autorisatie alsnog afgeleid uit actuele docentrechten.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Niveau selecteren

16.2 Ongeldige niveaucontext

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingNiveau selecterenOngeldige selectie gebruikt inline of routeguard-afhandeling.

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

DoeldocumentAfleiding
Functioneel OntwerpBeschrijven dat Oefenaanbod vanuit één geselecteerde niveaucontext werkt.
Functioneel OntwerpBeschrijven dat niveaukeuze bepaalt welke categorieën en oefeningen worden getoond.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Server-side validatie van LevelId op eigenaarschap of collaboratorcontext.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Eventuele opslag van laatst gekozen niveau als voorkeur, niet als autorisatie.
Software Requirements SpecificationBeschrijft dat een docent geen niveaucontext kan gebruiken zonder actuele toegang.
Software Requirements SpecificationBeschrijft dat oude routeparameters of clientstate geen toegang afdwingen.
Database-informatieGeen nieuwe tabel; eventueel UserSettings voor gebruikersvoorkeur.
OntwerpbronnenBusiness rules voor niveaucontextselectie en autorisatie.

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-DOC-AANB-002-001SRS-AUTH-001
SRS-CAT-001
SRS-TCH-002
AC-AUTH-001
AC-CAT-001
AC-TCH-002
Een docent alleen niveaus laten selecteren waartoe de docent actueel toegang heeft
REQ-UC-DOC-AANB-002-002SRS-AUTH-001
SRS-CAT-006
SRS-TCH-002
AC-AUTH-001
AC-CAT-006
AC-TCH-002
De gekozen niveaucontext server-side valideren
REQ-UC-DOC-AANB-002-003SRS-AUTH-001
SRS-CAT-001
SRS-TCH-006
AC-AUTH-001
AC-CAT-001
AC-TCH-006
Toegang tot het gekozen niveau baseren op eigenaarschap of actieve collaboratorstatus
REQ-UC-DOC-AANB-002-004SRS-AUTH-001
SRS-TCH-006
AC-AUTH-001
AC-TCH-006
Beëindigde collaboratorcontexten blokkeren
REQ-UC-DOC-AANB-002-005SRS-AUTH-004
SRS-RDM-001
SRS-RDM-002
SRS-RDM-005
SRS-CAT-001
SRS-TCH-002
AC-AUTH-004
AC-RDM-001
AC-RDM-002
AC-RDM-005
AC-CAT-001
AC-TCH-002
Samenvattingsinformatie opnieuw afleiden voor het geselecteerde niveau
REQ-UC-DOC-AANB-002-006SRS-CAT-001
SRS-TCH-002
AC-CAT-001
AC-TCH-002
Het selecteren van een niveau niet gebruiken om niveaugegevens te wijzigen
REQ-UC-DOC-AANB-002-007SRS-CAT-001
SRS-TCH-002
AC-CAT-001
AC-TCH-002
Een opgeslagen laatst gekozen niveau alleen gebruiken na actuele validatie
REQ-UC-DOC-AANB-002-008SRS-ACC-003
SRS-ACC-005
SRS-CAT-006
SRS-TCH-002
SRS-NFR-SEC-001
SRS-NFR-ACC-001
AC-ACC-003
AC-ACC-005
AC-CAT-006
AC-TCH-002
AC-NFR-SEC-001
AC-NFR-ACC-001
Ongeldige of ontoegankelijke niveaucontexten veilig afhandelen
REQ-UC-DOC-AANB-002-009SRS-AUTH-001
SRS-CAT-001
SRS-TCH-002
AC-AUTH-001
AC-CAT-001
AC-TCH-002
Vervolgacties binnen het niveau opnieuw autoriseren
REQ-UC-DOC-AANB-002-010SRS-AUTH-001
SRS-AUTH-002
SRS-TCH-001
AC-AUTH-001
AC-AUTH-002
AC-TCH-001
Routeparameters behandelen als input en niet als autorisatiebron