Skip to main content

UC-BEH-MOD-005 — Test-zichtbaarheid wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-005
NaamTest-zichtbaarheid wijzigen
DomeinBeheerder / Modules beheren
Primaire actorBeheerder
Secundaire actor(en)Frontend, backend, database, autorisatiecomponent, modulebeheercomponent, historiecomponent, strategy-interface
RolcontextActieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker
Betrokken schermenContent > Modules beheren
Gerelateerde usecasesUC-BEH-MOD-001, UC-BEH-MOD-002, UC-BEH-MOD-003, UC-BEH-MOD-004, UC-BEH-MOD-006, UC-BEH-MOD-007, UC-BEH-MOD-008, UC-BEH-MOD-009, UC-BEH-MOD-010
Primaire entiteitenExerciseModules, Exercises, ExerciseHistory, ExerciseModuleMigrations, ExerciseRuns, Users
Secundaire entiteiten / eventsTeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, UserRoles, modulebeheer-readmodels, strategy-interface
Gerelateerde popupsPOP-BEH-MOD-TEST-VISIBILITY-CONFIRM
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder de test-zichtbaarheid van een technische module wijzigt.

IsVisibleForTesting bepaalt of de module zichtbaar mag zijn voor docenten met de niet-publieke rol TestDocent. Deze vlag staat los van reguliere actiefstatus en mag de productieve inzetbaarheid van een module niet impliciet wijzigen.

Het doel is gecontroleerde beschikbaarheid voor testdocenten mogelijk te maken zonder een aparte extra autorisatielaag naast de rollenstructuur en de modulevlag te introduceren.

Uitgangspunten

  • Technische modules worden administratief beheerd in ExerciseModules en niet runtime ontdekt uit assemblies of codepaden.
  • Een concrete oefening verwijst altijd naar precies één ExerciseModules-record.
  • Modulebeheer wijzigt centrale modulemetadata en onderhoudsacties, niet de inhoudelijke docentconfiguratie van oefeningen.
  • Historische runs behouden hun oorspronkelijke modulecontext.
  • Popupinhoud blijft bronhoudend in het centrale popupregister.

3. Scope

Deze usecase beschrijft:

  • In- of uitschakelen van IsVisibleForTesting.
  • Bevestiging met verplichte reden.
  • Gescheiden houden van test-zichtbaarheid en reguliere actiefstatus.
  • Auditbaar vastleggen van wijziging.
  • Toelichten dat alleen gebruikers met rol TestDocent de testzichtbare module mogen zien in relevante docent-/testflows.

Deze usecase beschrijft niet:

  • Concrete docent-oefeningen configureren of de modulespecifieke configuratiepayload bewerken; dat blijft bronhoudend in docentflows of docentondersteuning.
  • Leerlingruns, resultaten, geschiedenis of gedeelde oefeningen herschrijven; historische runs behouden hun oorspronkelijke modulecontext.
  • Nieuwe technische modulecode leveren of implementeren; modulecode blijft onderdeel van de technische codebase.
  • Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.
  • Rollen toekennen aan docenten; TestDocent-roltoekenning hoort bij accountbeheer.
  • Reguliere actiefstatus wijzigen; dit hoort bij UC-BEH-MOD-004.
  • Een aparte autorisatielaag voor testmodules introduceren.

3.1 Afbakening met aangrenzende domeinen

OnderdeelAfbakening
Docent / Oefeningen configurerenDocenten kiezen en configureren concrete oefeningen op basis van beschikbare modules; centrale technische module-identiteit wordt hier beheerd.
Beheerder / DocentondersteuningSupport kan concrete docentstructuren en oefeningen inspecteren, maar centrale modulemetadata en migraties worden hier beheerd.
Leerling / Oefenen en resultatenLeerlingruns blijven historische uitvoeringen en worden niet herschreven door modulebeheer.
Database-informatieExerciseModules, ExerciseModuleMigrations en ExerciseHistory dragen de technische module-identiteit, migratieaudit en oefeninghistorie.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd in OefenHub.
PRE-002De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft.
PRE-003De beheerder bevindt zich binnen de beheeromgeving via Content > Modules beheren.
PRE-004De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie of module-identiteit.
PRE-005De beheerder heeft de detailweergave van één module geopend.
PRE-006De sectie Module toont de huidige test-zichtbaarheid.
PRE-007De rol TestDocent bestaat als niet-publieke rol in het autorisatiemodel.

5. Post-condities

IDResultaat
POST-001IsVisibleForTesting is gewijzigd wanneer alle validaties slagen.
POST-002UpdatedByUserId en UpdatedAtUtc zijn bijgewerkt.
POST-003De wijziging is auditbaar vastgelegd met reden.
POST-004IsActive is niet impliciet gewijzigd.
POST-005Rollen of gebruikerskoppelingen zijn niet gewijzigd.

6. Trigger

De usecase start wanneer de beheerder de test-zichtbaarheid van een module wijzigt en de wijziging bevestigt.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderSectie ModuleWijzigt test-zichtbaarheid.De frontend markeert de wijziging als nog niet opgeslagen.IsVisibleForTesting doelwaarde.
2FrontendSectie ModuleToont toelichting op TestDocent.Alleen TestDocent mag testzichtbare modules gebruiken.Rolcontext.
3BeheerderSectie ModuleKiest Opslaan.De frontend vraagt bevestiging met reden.PopupKey POP-BEH-MOD-TEST-VISIBILITY-CONFIRM.
4BeheerderBevestigingspopupBevestigt met reden.De backend verwerkt de wijziging.Reason verplicht.
5BackendAutorisatiecomponentControleert beheerdercontext opnieuw.Alleen beheerder mag deze vlag wijzigen.Server-side autorisatie.
6BackendModuleServiceWijzigt IsVisibleForTesting.Alleen de testzichtbaarheidsvlag en auditvelden worden aangepast.ExerciseModules.IsVisibleForTesting.
7BackendHistoriecomponentRegistreert wijziging.Oude waarde, nieuwe waarde, actor, tijdstip en reden worden vastgelegd.Beheeraudit / modulehistory.
8FrontendSectie ModuleToont nieuwe test-zichtbaarheid.Beschikbaarheid voor testdocenten wordt afgeleid in de relevante docentflow.Detailreadmodel.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0013Beheerder annuleert.De test-zichtbaarheid blijft ongewijzigd.POP-BEH-MOD-TEST-VISIBILITY-CONFIRM.Geen.
ALT-0024Reden ontbreekt.De bevestiging wordt geweigerd.POP-BEH-MOD-TEST-VISIBILITY-CONFIRM.Geen.
ALT-0035Gebruiker is geen beheerder.De backend weigert de wijziging.Niet van toepassing.Geen.
ALT-0046Doelwaarde is gelijk aan actuele waarde.Er wordt geen mutatie uitgevoerd.Niet van toepassing.Geen.
ALT-0056Module is technisch niet resolvebaar.De vlagwijziging kan worden toegestaan of geblokkeerd volgens technische beschikbaarheidsregel; er wordt nooit aangenomen dat modulecode werkt zonder controle.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001IsVisibleForTesting bepaalt testzichtbaarheid en niet reguliere productie-inzetbaarheid.
BR-002Alleen docenten met de niet-publieke rol TestDocent mogen testzichtbare modules gebruiken wanneer de reguliere actiefstatus onvoldoende is.
BR-003Het wijzigen van test-zichtbaarheid wijzigt geen gebruikersrollen.
BR-004Het wijzigen van test-zichtbaarheid wijzigt IsActive niet.
BR-005Er wordt geen aparte extra autorisatielaag voor testmodules geïntroduceerd.
BR-006Een wijziging vereist verplichte reden en auditregistratie.
BR-007Docenttestruns blijven tijdelijke testruns en mogen niet als blijvende leerlinghistorie verschijnen.

10. Datavalidatie

IDValidatie
VAL-001ExerciseModuleId is verplicht en moet bestaan.
VAL-002De doelwaarde moet verschillen van de actuele IsVisibleForTesting-waarde.
VAL-003Reason is verplicht en maximaal 500 tekens.
VAL-004De beheerderrol wordt vlak vóór opslaan opnieuw gevalideerd.
VAL-005Clientpayload mag IsActive niet meewijzigen via deze flow.
VAL-006Beschikbaarheid voor TestDocent wordt in de gebruikende docentflow opnieuw server-side bepaald.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Update ExerciseModulesIsVisibleForTesting, UpdatedByUserId en UpdatedAtUtc worden bijgewerkt.
MUT-002Beheeraudit / modulehistoryWijziging wordt vastgelegd met oude en nieuwe waarde en reden.

12. Geen datamutaties

IDGeen mutatieReden
NO-001IsActiveReguliere actiefstatus blijft ongewijzigd.
NO-002UserRolesEr worden geen TestDocent-rollen toegekend of ingetrokken.
NO-003ExercisesConcrete oefeningen blijven ongewijzigd.
NO-004ExerciseRunsTestruns en historische runs blijven ongewijzigd.
NO-005ExerciseModuleMigrationsGeen migratie wordt aangemaakt.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-BEH-MOD-TEST-VISIBILITY-CONFIRMBevestiging van wijziging test-zichtbaarheid met verplichte reden.

De popupinhoud, knopteksten, inputlabels en themakeuze blijven bronhoudend in het popupregister en popup-themes.

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

DocumentAfleiding
Functioneel OntwerpTest-zichtbaarheid is een aparte modulevlag voor TestDocent en staat los van reguliere actiefstatus.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. Beschikbaarheid volgt uit combinatie van UserRoles en ExerciseModules.IsVisibleForTesting.
Software Requirements SpecificationSRS moet eisen dat deze flow geen rollen toekent en IsActive niet wijzigt.
DatabaseGebruikt ExerciseModules.IsVisibleForTesting; geen mutatie op UserRoles.

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-BEH-MOD-005-001SRS-ADM-001
AC-ADM-001
IsVisibleForTesting door beheerders kunnen laten wijzigen
REQ-BEH-MOD-005-002SRS-ADM-001
AC-ADM-001
IsVisibleForTesting gescheiden houden van IsActive
REQ-BEH-MOD-005-003SRS-TCH-005
SRS-ADM-002
SRS-ADM-001
AC-TCH-005
AC-ADM-002
AC-ADM-001
Geen TestDocent-rollen wijzigen via deze flow
REQ-BEH-MOD-005-004SRS-ADM-001
AC-ADM-001
Een verplichte reden vragen vóór wijziging
REQ-BEH-MOD-005-005SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
De wijziging auditbaar vastleggen
REQ-BEH-MOD-005-006SRS-AUTH-001
SRS-TCH-005
SRS-ADM-002
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-001
AC-TCH-005
AC-ADM-002
AC-ADM-004
AC-ADM-001
AC-MOD-003
Testbeschikbaarheid in docentflows server-side bepalen op basis van rol en modulevlag