Skip to main content

UC-BEH-MOD-006 — Moduleconnectiviteit testen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-006
NaamModuleconnectiviteit testen
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-005, 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-HEALTHCHECK-ERROR
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder vanuit modulebeheer een eenvoudige connectiviteitstest uitvoert voor de geselecteerde technische module.

De test is bedoeld om te controleren of de CodeReference via de strategy-interface resolveerbaar is en of de module een eenvoudige healthcheck of ping-pong-aanroep succesvol kan afhandelen.

De test wijzigt geen modulemetadata, geen concrete oefeningen en geen oefenruns. De uitkomst mag technisch gelogd worden voor beheeranalyse, maar vormt geen nieuwe functionele status 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:

  • Starten van een healthcheck voor één geselecteerde module.
  • Resolveren van CodeReference via de strategy-interface.
  • Uitvoeren van een eenvoudige ping-pong- of healthcheck-aanroep.
  • Tonen van resultaat aan beheerder.
  • Technisch loggen van foutdetails zonder wijziging van moduledata.

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.
  • Backwards compatibility bewijzen voor modulemigraties.
  • Modulecode aanpassen of deployen.
  • Module actief of inactief zetten op basis van testresultaat.
  • Concrete oefeningconfiguratie valideren.

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 module heeft een CodeReference.
PRE-007De applicatie beschikt over een strategy-interface voor technische modules.

5. Post-condities

IDResultaat
POST-001De beheerder ziet of de module technisch resolveerbaar en bereikbaar is.
POST-002ExerciseModules is niet gewijzigd.
POST-003Exercises en ExerciseRuns zijn niet gewijzigd.
POST-004Eventuele technische foutdetails zijn veilig gelogd.
POST-005De testuitkomst wordt niet als zelfstandige domeinstatus opgeslagen.

6. Trigger

De usecase start wanneer de beheerder in de sectie Module of Intro / uitleg de actie Connectiviteit testen kiest.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderModulebeheerKiest Connectiviteit testen.De frontend vraagt een healthcheck aan.ExerciseModuleId.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerder mag de test uitvoeren.Server-side autorisatie.
3BackendModuleServiceLaadt CodeReference.De technische referentie wordt uit ExerciseModules gelezen.ExerciseModules.CodeReference.
4BackendStrategyResolverProbeert module te resolveeren.De implementatie achter CodeReference wordt opgezocht.Strategy-interface.
5BackendModuleStrategyVoert healthcheck uit.De module geeft succes of fout terug.Ping-pong / healthcheck.
6BackendTechnische loggingLegt foutdetails vast wanneer nodig.Gevoelige details worden niet als UI-inhoud weergegeven.Applicatielog.
7FrontendModulebeheerToont testresultaat.De beheerder ziet succes of veilige foutmelding.Geen domeinmutatie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen beheerder.De backend weigert de test.Niet van toepassing.Geen.
ALT-0023CodeReference ontbreekt of is leeg.De test wordt geweigerd met veilige foutmelding.POP-BEH-MOD-HEALTHCHECK-ERROR.Geen.
ALT-0034StrategyResolver vindt geen implementatie.De beheerder ziet dat de module niet resolveerbaar is; technische details worden gelogd.POP-BEH-MOD-HEALTHCHECK-ERROR.Geen domeinmutatie.
ALT-0045Module geeft fout terug.De beheerder ziet dat de healthcheck mislukt; details worden veilig gelogd.POP-BEH-MOD-HEALTHCHECK-ERROR.Geen domeinmutatie.
ALT-0055Test duurt te lang.De backend breekt gecontroleerd af en logt timeoutinformatie.POP-BEH-MOD-HEALTHCHECK-ERROR.Geen domeinmutatie.

9. Business rules

IDBusiness rule
BR-001De connectiviteitstest is een technische controle en geen functionele statuswijziging.
BR-002Een succesvolle healthcheck bewijst niet dat een module backwards compatible is voor migratie.
BR-003Een mislukte healthcheck maakt de module niet automatisch inactief.
BR-004De test gebruikt CodeReference uit ExerciseModules en niet een client-aangeleverde codewaarde.
BR-005Technische foutdetails worden gelogd, maar niet volledig aan de beheerder getoond.
BR-006De test mag geen oefeningen, runs of configuratiepayloads aanmaken.
BR-007De test is bedoeld voor vroegtijdige detectie van typefouten of foutieve technische koppelingen.

10. Datavalidatie

IDValidatie
VAL-001ExerciseModuleId is verplicht en moet bestaan.
VAL-002CodeReference moet aanwezig zijn.
VAL-003De backend moet de CodeReference server-side uit de database lezen.
VAL-004De healthcheck moet binnen een gecontroleerde timeout afronden.
VAL-005UI-resultaten mogen geen stacktraces of secrets tonen.
VAL-006De beheerderrol wordt vlak vóór uitvoering gevalideerd.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen domeinmutatieDe healthcheck wijzigt geen module-, oefening-, run- of migratierecord.
MUT-002Technische foutregistratie buiten domeinmodelFouten of timeouts worden veilig technisch gelogd zonder functionele modulegeschiedenis of migratierecord te schrijven.

12. Geen datamutaties

IDGeen mutatieReden
NO-001ExerciseModulesGeen status of metadata wordt aangepast.
NO-002ExercisesGeen oefening wordt aangemaakt of gewijzigd.
NO-003ExerciseRunsGeen run wordt aangemaakt.
NO-004ExerciseHistoryGeen oefeninghistory wordt geschreven.
NO-005ExerciseModuleMigrationsGeen migratie wordt aangemaakt.

13. State diagram

Niet van toepassing. De connectiviteitstest levert een tijdelijke testuitkomst op en wijzigt geen persistente module-, oefening-, migratie- of runstatus.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-BEH-MOD-HEALTHCHECK-ERRORVeilige foutmelding wanneer moduleconnectiviteit niet kan worden vastgesteld.

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 OntwerpModulebeheer ondersteunt een eenvoudige connectiviteitstest via de strategy-interface.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. De test resolveert CodeReference server-side en voert een healthcheck met timeout uit zonder functioneel domeinrecord te schrijven.
Software Requirements SpecificationSRS moet bepalen dat testuitkomst geen domeinstatus is en geen module automatisch wijzigt.
DatabaseLeest ExerciseModules; schrijft geen ExerciseModuleMigrations, ExerciseHistory, Exercises of ExerciseRuns.
OefenmodulesModuleplatform en contract beschrijft de generieke module-interface; concrete modules zoals Optellen & Aftrekken (simpel) leveren de resolveerbare module-implementatie achter CodeReference.

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-006-001SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
Een beheerder een moduleconnectiviteitstest kunnen laten uitvoeren
REQ-BEH-MOD-006-002SRS-AUTH-001
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-AUTH-001
AC-ADM-004
AC-ADM-001
AC-MOD-003
CodeReference server-side uit ExerciseModules lezen
REQ-BEH-MOD-006-003SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
De module via de strategy-interface resolveeren
REQ-BEH-MOD-006-004SRS-ADM-001
AC-ADM-001
Een eenvoudige healthcheck of ping-pong-aanroep ondersteunen
REQ-BEH-MOD-006-005SRS-LRN-009
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-LRN-009
AC-ADM-004
AC-ADM-001
AC-MOD-003
Bij de test geen modulemetadata of oefeningen wijzigen
REQ-BEH-MOD-006-006SRS-ADM-001
SRS-NFR-SEC-001
SRS-NFR-LOG-001
AC-ADM-001
AC-NFR-SEC-001
AC-NFR-LOG-001
Technische foutdetails veilig loggen zonder stacktraces in de UI te tonen
REQ-BEH-MOD-006-007SRS-ADM-001
AC-ADM-001
Een succesvolle healthcheck niet gelijkstellen aan bewezen migratiecompatibiliteit