Skip to main content

UC-BEH-MOD-001 — Moduleoverzicht bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-001
NaamModuleoverzicht bekijken
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-002, 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

De usecase beschrijft hoe een beheerder het overzicht van technische oefenmodules opent. Het overzicht toont alleen administratief beheerde moduleversies uit ExerciseModules en geen concrete docent-oefeningen uit Exercises.

Per module worden minimaal weergavenaam, technische referentie, versienummer, actiefstatus, test-zichtbaarheid en gebruiksimpact op hoofdlijnen getoond. Het overzicht is de selectiestap voor detailbeheer; mutaties vinden pas plaats na het openen van één geselecteerde module.

Gebruiksimpact is een afgeleid readmodel. Het aantal koppelingen telt actieve concrete oefeningen die naar de module verwijzen, het aantal docenten telt unieke docenten met zulke oefeningen, het aantal unieke leerlingen telt leerlingen met actieve niveauautorisatie voor niveaus waarin zulke oefeningen voorkomen, en totaal gebruik telt blijvend opgeslagen exercise runs op basis van de module.

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:

  • Laden van de centrale lijst met ExerciseModules.
  • Tonen van module-identiteit: DisplayName, CodeReference en Version.
  • Tonen van IsActive en IsVisibleForTesting.
  • Bepalen en tonen van gebruiksimpact op hoofdlijnen.
  • Selecteren van precies één module als voorbereiding op detailbeheer.
  • Afhandelen van lege, gefilterde of gedeeltelijk foutieve overzichtstoestanden.

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.
  • Modulemetadata wijzigen; dit hoort bij UC-BEH-MOD-003.
  • Actiefstatus of test-zichtbaarheid wijzigen; dit hoort bij UC-BEH-MOD-004 en UC-BEH-MOD-005.
  • Modulemigraties uitvoeren; dit hoort bij UC-BEH-MOD-007, UC-BEH-MOD-008 en UC-BEH-MOD-009.

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 beheerpagina Modules beheren is bereikbaar via Content.
PRE-006De database bevat nul of meer ExerciseModules-records.

5. Post-condities

IDResultaat
POST-001De beheerder ziet een actueel overzicht van technische oefenmodules.
POST-002Geen ExerciseModules-record is gewijzigd.
POST-003Geen ExerciseHistory- of ExerciseModuleMigrations-record is aangemaakt.
POST-004Bij selectie van precies één module wordt de actie Open beheer beschikbaar.
POST-005De getoonde impactwaarden zijn afgeleid en niet als losse beheerrecords opgeslagen.

6. Trigger

De usecase start wanneer de beheerder via Content de pagina Modules beheren opent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderContent-menuOpent Modules beheren.De frontend vraagt het moduleoverzicht op.Route: Content > Modules beheren.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen een actieve beheerder mag modulebeheer openen.Server-side autorisatie.
3BackendModulequeryLaadt ExerciseModules.De modulelijst wordt samengesteld met statusvelden.ExerciseModules.
4BackendImpactreadmodelBerekent actieve oefenkoppelingen per module.Alleen actieve concrete oefeningen tellen mee.Exercises.ExerciseModuleId en Exercises.IsActive.
5BackendImpactreadmodelBerekent unieke docenten en leerlingen per module.Docenten en leerlingen worden via actieve docentstructuur en niveauautorisaties afgeleid.TeacherLevels, UserRoles, niveauautorisaties.
6BackendImpactreadmodelBerekent totaal gebruik.Blijvend opgeslagen ExerciseRuns tellen mee; tijdelijke docenttestruns niet.ExerciseRuns.
7FrontendModuleoverzichtToont modules, statussen en impact.De beheerder kan precies één module selecteren.Read-only overzicht.
8BeheerderModuleoverzichtSelecteert één module.De actie Open beheer wordt beschikbaar.Geselecteerde ExerciseModuleId.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen beheerder.De backend weigert toegang en toont een veilige toegang-geweigerdafhandeling.Niet van toepassing.Geen.
ALT-0023Er bestaan geen modules.Het overzicht toont een lege staat met uitleg dat geen technische modules beschikbaar zijn.Niet van toepassing.Geen.
ALT-0034Impactberekening faalt gedeeltelijk.De module blijft zichtbaar; impactwaarden worden niet als nul geïnterpreteerd maar als niet beschikbaar gemarkeerd.Niet van toepassing.Geen.
ALT-0047Meerdere modules worden geselecteerd.De actie Open beheer blijft uitgeschakeld tot precies één module geselecteerd is.Niet van toepassing.Geen.
ALT-0058De geselecteerde module bestaat niet meer.De selectie wordt geweigerd en het overzicht wordt opnieuw geladen.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Het moduleoverzicht is read-only; wijzigingen gebeuren pas in detailusecases.
BR-002Modules beheren richt zich uitsluitend op technische moduleversies uit ExerciseModules.
BR-003Concrete oefeningnamen, iconen en configuratiepayloads worden niet in het moduleoverzicht beheerd.
BR-004Aantal koppelingen telt actieve concrete oefeningen die naar de module verwijzen.
BR-005Aantal docenten telt unieke docenten met ten minste één actieve concrete oefening op deze module.
BR-006Aantal unieke leerlingen telt leerlingen die via actieve toegang een niveau kunnen gebruiken waarin een actieve oefening op deze module voorkomt.
BR-007Totaal gebruik telt blijvend opgeslagen ExerciseRuns; tijdelijke docenttestruns tellen niet mee.

10. Datavalidatie

IDValidatie
VAL-001De opgevraagde route vereist een server-side beheerderclaim.
VAL-002ExerciseModuleId in selecties moet verwijzen naar een bestaand ExerciseModules-record.
VAL-003Impactaantallen worden server-side berekend en niet vanuit de client aangeleverd.
VAL-004Statuslabels zijn afgeleid uit IsActive en IsVisibleForTesting.
VAL-005CodeReference wordt in het overzicht als technische sleutel getoond en niet als vrij invoerveld gebruikt.
VAL-006Selectie voor detailbeheer is alleen geldig bij precies één geselecteerde module.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen functionele mutatieRaadplegen van het overzicht wijzigt geen module-, oefening- of rundata.
MUT-002Geen eventEr wordt geen historie- of migratierecord aangemaakt.

12. Geen datamutaties

IDGeen mutatieReden
NO-001ExerciseModulesModulemetadata en statusvlaggen blijven ongewijzigd.
NO-002ExercisesGeen ExerciseModuleId of IsActive wordt aangepast.
NO-003ExerciseRunsHistorische runs blijven ongewijzigd.
NO-004ExerciseHistoryBekijken schrijft geen oefeninghistorie.
NO-005ExerciseModuleMigrationsBekijken start geen migratie.

13. State diagram

Niet van toepassing. Deze usecase is een read-only overzichtsflow en wijzigt geen persistent statusobject. De actuele modulebeschikbaarheid, test-zichtbaarheid en impactwaarden worden als readmodel geladen en blijven ongewijzigd.

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 overzichtspagina voor technische modules, niet voor concrete docent-oefeningen.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. Impactwaarden worden als readmodel afgeleid uit ExerciseModules, Exercises, docentstructuur en ExerciseRuns.
Software Requirements SpecificationSRS moet exact definiëren welke records meetellen voor koppelingen, docenten, unieke leerlingen en totaal gebruik.
DatabaseGeen mutaties; gebruikt ExerciseModules, Exercises en ExerciseRuns als brondata.

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-001-001SRS-RDM-001
SRS-RDM-004
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-RDM-001
AC-RDM-004
AC-ADM-004
AC-ADM-001
AC-MOD-003
Een beheerder een overzicht van technische modules tonen
REQ-BEH-MOD-001-002SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
Per module DisplayName, CodeReference, Version, IsActive en IsVisibleForTesting tonen
REQ-BEH-MOD-001-003SRS-AUTH-001
SRS-RDM-001
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-001
AC-RDM-001
AC-ADM-004
AC-ADM-001
AC-MOD-003
Gebruiksimpact per module server-side afleiden
REQ-BEH-MOD-001-004SRS-LRN-009
SRS-TCH-005
SRS-ADM-001
AC-LRN-009
AC-TCH-005
AC-ADM-001
Tijdelijke docenttestruns uitsluiten uit totaal gebruik
REQ-BEH-MOD-001-005SRS-AUTH-004
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-004
AC-ADM-004
AC-ADM-001
AC-MOD-003
De actie Open beheer alleen beschikbaar maken bij precies één geselecteerde module
REQ-BEH-MOD-001-006SRS-RDM-001
SRS-RDM-004
SRS-CAT-003
SRS-LRN-009
SRS-ADM-004
SRS-ADM-001
AC-RDM-001
AC-RDM-004
AC-CAT-003
AC-LRN-009
AC-ADM-004
AC-ADM-001
In het moduleoverzicht geen concrete oefeningconfiguratie tonen of wijzigen
REQ-BEH-MOD-001-007SRS-AUTH-001
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-001
AC-ADM-004
AC-ADM-001
AC-MOD-003
Toegang tot modulebeheer server-side beperken tot beheerders