Skip to main content

UC-BEH-MOD-002 — Modulebeheer openen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-002
NaamModulebeheer openen
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-003, UC-BEH-MOD-004, UC-BEH-MOD-005, 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 popupsNiet van toepassing
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder vanuit het moduleoverzicht de detail- en beheerweergave van één technische module opent.

De detailweergave is bewust tweestaps: eerst selecteert de beheerder één module in het overzicht, daarna opent hij of zij de beheerpagina van die module. De titel toont de actuele weergavenaam en versie, bijvoorbeeld Modulebeheer - Basisrekenen V2.3.1.

De detailweergave bevat minimaal de onderdelen Intro / uitleg, Module, Migreren - docent, Migreren - alles en Geschiedenis. Elk onderdeel heeft een eigen doel en mag geen beheer van concrete docent-oefeningen overnemen.

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:

  • Valideren van de geselecteerde ExerciseModuleId.
  • Laden van modulemetadata en gebruiksimpact.
  • Tonen van de beheerweergave voor precies één module.
  • Beschikbaar maken van tabbladen of secties Intro / uitleg, Module, Migreren - docent, Migreren - alles en Geschiedenis.
  • Afhandelen van ontbrekende of niet-toegankelijke modulecontext.

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.
  • Modulegegevens opslaan; dit hoort bij UC-BEH-MOD-003.
  • Status- of testzichtbaarheid wijzigen; dit hoort bij UC-BEH-MOD-004 en UC-BEH-MOD-005.
  • Migraties definitief uitvoeren; dit hoort bij migratieusecases.

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 in het moduleoverzicht precies één module geselecteerd.
PRE-006De geselecteerde module bestaat als ExerciseModules-record.

5. Post-condities

IDResultaat
POST-001De detail- en beheerweergave van de geselecteerde module is geladen.
POST-002De titel is gebaseerd op actuele modulemetadata.
POST-003De beheerder ziet de relevante onderdelen voor modulebeheer.
POST-004Geen modulemetadata, oefening of run is gewijzigd.
POST-005Bij ontbrekende modulecontext wordt teruggevallen op het overzicht.

6. Trigger

De usecase start wanneer de beheerder vanuit het moduleoverzicht de actie Open beheer kiest.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderModuleoverzichtKiest Open beheer.De frontend vraagt de detailcontext voor de geselecteerde module op.ExerciseModuleId.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerder mag detailbeheer openen.Server-side autorisatie.
3BackendModuleServiceValideert dat de module bestaat.Een niet-bestaande module wordt niet geopend.ExerciseModules.Id.
4BackendModuleServiceLaadt modulemetadata.DisplayName, CodeReference, Version, IsActive en IsVisibleForTesting worden geladen.ExerciseModules.
5BackendImpactreadmodelLaadt detailimpact.Koppelingen, docenten, unieke leerlingen en totaal gebruik worden afgeleid.Exercises, ExerciseRuns, docentstructuur.
6FrontendModulebeheerToont titel en onderdelen.Intro, Module, Migreren - docent, Migreren - alles en Geschiedenis zijn beschikbaar.Detailreadmodel.
7FrontendModulebeheerBepaalt beschikbare acties.Acties worden getoond of uitgeschakeld op basis van status, impact en autorisatie.Afgeleide UI-status.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Geen module geselecteerd.De actie Open beheer is niet beschikbaar of wordt geweigerd.Niet van toepassing.Geen.
ALT-0022Gebruiker is geen beheerder.De backend weigert toegang.Niet van toepassing.Geen.
ALT-0033Module bestaat niet meer.De beheerder keert terug naar het overzicht met veilige melding.Niet van toepassing.Geen.
ALT-0045Impactreadmodel kan niet volledig worden opgebouwd.De detailweergave toont modulemetadata en markeert impactwaarden als niet beschikbaar.Niet van toepassing.Geen.
ALT-0057Een actie is door actuele status niet toegestaan.De actie wordt uitgeschakeld met functionele toelichting.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Modulebeheer wordt altijd geopend voor precies één ExerciseModules-record.
BR-002De detailtitel is gebaseerd op actuele modulemetadata en niet op vrij bewerkbare paginatiteltekst.
BR-003De beheerweergave bestaat minimaal uit Intro / uitleg, Module, Migreren - docent, Migreren - alles en Geschiedenis.
BR-004De sectie Module beheert modulemetadata en statusvelden; concrete oefeningen worden daar niet geconfigureerd.
BR-005De migratiesecties werken vanuit de geopende bronmodule.
BR-006Actiebeschikbaarheid wordt server-side bepaald en mag niet uitsluitend op clientstate steunen.
BR-007Het openen van detailbeheer veroorzaakt geen datamutatie.

10. Datavalidatie

IDValidatie
VAL-001ExerciseModuleId is verplicht en moet bestaan.
VAL-002De beheerderrol wordt opnieuw server-side gevalideerd bij openen.
VAL-003De titel mag alleen worden samengesteld uit DisplayName en Version van de actuele module.
VAL-004Impactwaarden worden server-side afgeleid.
VAL-005Beschikbare acties worden bepaald uit IsActive, IsVisibleForTesting en actieve afhankelijkheden.
VAL-006Routeparameters mogen geen modulecontext afdwingen zonder databasevalidatie.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen functionele mutatieOpenen van modulebeheer is een leesactie.
MUT-002Geen eventEr wordt geen ExerciseHistory- of ExerciseModuleMigrations-record aangemaakt.

12. Geen datamutaties

IDGeen mutatieReden
NO-001ExerciseModulesMetadata en statusvelden blijven ongewijzigd.
NO-002ExercisesGeen oefening wordt aangepast.
NO-003ExerciseRunsGeen run wordt gewijzigd.
NO-004ExerciseModuleMigrationsGeen migratie wordt aangemaakt.
NO-005ExerciseHistoryGeen oefeninghistory wordt geschreven.

13. State diagram

Niet van toepassing. Deze usecase opent een bestaande modulecontext en wijzigt geen persistent statusobject. Beschikbare secties en acties worden afgeleid uit server-side autorisatie, modulemetadata en impactreadmodels.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

Niet van toepassing. Deze usecase gebruikt geen popupregister-popup. Eventuele inline foutmeldingen of lege staten worden als gewone schermfeedback behandeld.

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

DocumentAfleiding
Functioneel OntwerpModules beheren is een tweestapsflow: overzicht selecteren, daarna detailbeheer openen.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. Detailreadmodel combineert ExerciseModules met afgeleide impactwaarden en actiebeschikbaarheid.
Software Requirements SpecificationSRS moet secties en actiebeschikbaarheid per status en afhankelijkheid definiëren.
DatabaseGeen mutatie; leest ExerciseModules, Exercises, ExerciseRuns en historiebronnen.

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-002-001SRS-AUTH-004
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-004
AC-ADM-004
AC-ADM-001
AC-MOD-003
Modulebeheer alleen openen voor precies één geselecteerde module
REQ-BEH-MOD-002-002SRS-AUTH-001
SRS-AUTH-004
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-001
AC-AUTH-004
AC-ADM-004
AC-ADM-001
AC-MOD-003
De geselecteerde ExerciseModuleId server-side valideren
REQ-BEH-MOD-002-003SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
De titel samenstellen uit actuele modulemetadata
REQ-BEH-MOD-002-004SRS-TCH-004
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
SRS-NFR-AUD-001
AC-TCH-004
AC-ADM-004
AC-ADM-001
AC-MOD-003
AC-NFR-AUD-001
De onderdelen Intro / uitleg, Module, Migreren - docent, Migreren - alles en Geschiedenis tonen
REQ-BEH-MOD-002-005SRS-AUTH-001
SRS-ADM-001
AC-AUTH-001
AC-ADM-001
Actiebeschikbaarheid server-side bepalen
REQ-BEH-MOD-002-006SRS-LRN-009
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-LRN-009
AC-ADM-004
AC-ADM-001
AC-MOD-003
Bij openen van modulebeheer geen module- of oefeningdata wijzigen