Skip to main content

UC-BEH-MOD-009 — Modulemigratie-proefuitvoering controleren

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-009
NaamModulemigratie-proefuitvoering controleren
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-006, UC-BEH-MOD-007, UC-BEH-MOD-008, 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-MIGRATION-PROOF-CONFIRM
PopupregisterOntwerpbronnen — Popup-register
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een beheerder voorafgaand aan bredere modulemigratie een afzonderlijke proefmigratie op precies één specifieke concrete oefening uitvoert.

De proefmigratie is bedoeld om in de praktijk te toetsen of de doelmodule zich correct gedraagt bij een representatieve oefening. Zij vervangt geen automatische backwards-compatibilitygarantie en geeft geen vrijbrief voor globale migratie zonder bewuste bevestiging.

De proefmigratie is smaller dan docentgerichte en globale migratie. Zij wijzigt precies de geselecteerde concrete oefening en legt de uitkomst auditbaar vast, zodat zichtbaar is welke oefening als proef is gemigreerd.

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:

  • Kiezen van actieve doelmodule voor de geopende bronmodule.
  • Selecteren van één concrete oefening die de bronmodule gebruikt.
  • Uitvoeren van een proefmigratie voor die oefening.
  • Vastleggen van proefmigratie-uitkomst en actor.
  • Duidelijk maken dat historische runs niet worden herschreven.
  • Geen bredere migratie starten vanuit deze usecase.

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.
  • Alle oefeningen van een docent migreren; dit hoort bij UC-BEH-MOD-007.
  • Alle oefeningen op een bronmodule migreren; dit hoort bij UC-BEH-MOD-008.
  • Automatisch bepalen dat modules backwards compatible zijn.
  • Leerlingresultaten opnieuw berekenen.

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 de bronmodule geopend.
PRE-006Er bestaat een actieve doelmodule die verschilt van de bronmodule.
PRE-007Er bestaat minimaal één concrete oefening die de bronmodule gebruikt.
PRE-008De beheerder begrijpt dat proefuitvoering geen volledige compatibiliteitsgarantie vormt.

5. Post-condities

IDResultaat
POST-001De geselecteerde concrete oefening is als proef gemigreerd naar de doelmodule.
POST-002De proefmigratie is auditbaar vastgelegd.
POST-003Geen globale of docentgerichte migratie is uitgevoerd.
POST-004Historische ExerciseRuns blijven ongewijzigd.
POST-005ExerciseHistory is voor de gemigreerde oefening vastgelegd.

6. Trigger

De usecase start wanneer de beheerder in modulebeheer een proefmigratie start voor één gekozen oefening en doelmodule.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderModulebeheerKiest doelmodule voor proef.De frontend valideert dat doelmodule actief is en verschilt van bronmodule.TargetExerciseModuleId.
2BeheerderModulebeheerSelecteert één concrete oefening.Alleen oefeningen op de bronmodule zijn selecteerbaar.ExerciseId.
3BackendMigratieServiceLaadt oefeningcontext.Oefening, docentcontext, niveau en categorie worden getoond voor controle.Exercises en docentstructuur.
4FrontendPopupToont bevestiging met verplichte reden.De beheerder bevestigt proefuitvoering.PopupKey POP-BEH-MOD-MIGRATION-PROOF-CONFIRM.
5BeheerderPopupBevestigt met reden.De backend voert de proefmigratie voor de geselecteerde oefening uit.Reason verplicht.
6BackendMigratieServiceValideert bron, doel en oefening opnieuw.Clientstate kan de oefening niet vervangen.Server-side validatie.
7BackendMigratieServiceVoert proefmigratie uit.Alleen de gekozen oefening wordt naar de doelmodule gemigreerd.Exercises.ExerciseModuleId.
8BackendHistorieServiceLegt migratie vast.Actor, tijdstip, bronmodule, doelmodule, oefening en reden worden auditbaar.ExerciseModuleMigrations en ExerciseHistory.
9FrontendModulebeheerToont proefresultaat.De beheerder kan daarna bewust kiezen voor docentgerichte of globale migratie.Geen automatische vervolgactie.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Doelmodule is gelijk aan bronmodule.De doelmodule wordt geweigerd.Niet van toepassing.Geen.
ALT-0022Geen oefening geselecteerd.De proefmigratieactie blijft uitgeschakeld.Niet van toepassing.Geen.
ALT-0032Oefening gebruikt de bronmodule niet meer.De selectie wordt geweigerd en lijst wordt herladen.Niet van toepassing.Geen.
ALT-0044Beheerder annuleert.Geen proefmigratie wordt uitgevoerd.POP-BEH-MOD-MIGRATION-PROOF-CONFIRM.Geen.
ALT-0055Reden ontbreekt.De bevestiging wordt geweigerd.POP-BEH-MOD-MIGRATION-PROOF-CONFIRM.Geen.
ALT-0067Proefmigratie faalt technisch.De transactie wordt teruggedraaid, de fout wordt veilig getoond en er wordt geen bredere migratie gestart.Niet van toepassing.Geen definitieve oefeningmutatie.

9. Business rules

IDBusiness rule
BR-001Proefmigratie raakt precies één concrete oefening.
BR-002Een geslaagde proefmigratie bewijst niet automatisch backwards compatibility voor alle oefeningen.
BR-003De proefmigratie start nooit automatisch een docentgerichte of globale migratie.
BR-004De beheerder moet een reden opgeven.
BR-005Historische runs blijven ongewijzigd.
BR-006De gekozen oefening moet server-side nog naar de bronmodule verwijzen.
BR-007De uitkomst van de proef moet auditbaar zijn.
BR-008ExerciseHistory moet de proefmigratie op oefeningniveau zichtbaar maken.

10. Datavalidatie

IDValidatie
VAL-001TargetExerciseModuleId is verplicht, actief en verschillend van bronmodule.
VAL-002ExerciseId is verplicht en moet naar een oefening op de bronmodule verwijzen.
VAL-003Reason is verplicht en maximaal 500 tekens.
VAL-004De beheerderrol wordt vlak vóór uitvoering gevalideerd.
VAL-005De proefscope moet precies één oefening omvatten.
VAL-006Foutdetails worden veilig gelogd en niet als stacktrace getoond.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Update ExercisesExerciseModuleId wordt voor precies de geselecteerde oefening aangepast naar de doelmodule.
MUT-002Insert ExerciseModuleMigrationsMigratieheader met bron, doel, scope Proof, oefening, actor, tijdstip en reden.
MUT-003Insert ExerciseHistoryVoor de gemigreerde oefening wordt MODULE_MIGRATION_SOURCE_TO_TARGET vastgelegd.

12. Geen datamutaties

IDGeen mutatieReden
NO-001Andere ExercisesAlleen de geselecteerde oefening wordt gemigreerd.
NO-002Docentgerichte scopeGeen volledige docentenset wordt geraakt.
NO-003Globale scopeGeen globale modulescope wordt geraakt.
NO-004ExerciseRunsHistorische runs blijven ongewijzigd.
NO-005SharedExercisesGedeelde oefenrecords blijven ongewijzigd.
NO-006UserRolesGeen rolwijzigingen.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyGebruik
POP-BEH-MOD-MIGRATION-PROOF-CONFIRMBevestiging van proefmigratie 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 OntwerpEen beheerder kan voorafgaand aan brede migratie een afzonderlijke proefmigratie op één oefening uitvoeren.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. De proefscope is precies één oefening en legt migratie auditbaar vast via migratieregistratie en ExerciseHistory.
Software Requirements SpecificationSRS moet voorkomen dat proefmigratie automatisch docentgerichte of globale migratie start.
DatabaseGebruikt ExerciseModules, Exercises, ExerciseModuleMigrations en ExerciseHistory.

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-009-001SRS-LRN-009
SRS-ADM-001
AC-LRN-009
AC-ADM-001
Proefmigratie van precies één concrete oefening ondersteunen
REQ-BEH-MOD-009-002SRS-LRN-009
SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-LRN-009
AC-ADM-004
AC-ADM-001
AC-MOD-003
Alleen oefeningen tonen die de bronmodule gebruiken
REQ-BEH-MOD-009-003SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
Een actieve doelmodule vereisen die verschilt van de bronmodule
REQ-BEH-MOD-009-004SRS-ADM-001
AC-ADM-001
Een verplichte reden vragen
REQ-BEH-MOD-009-005SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
De proefmigratie auditbaar vastleggen in migratiehistorie en ExerciseHistory
REQ-BEH-MOD-009-006SRS-TCH-001
SRS-ADM-001
AC-TCH-001
AC-ADM-001
Door proefmigratie geen docentgerichte of globale migratie starten
REQ-BEH-MOD-009-007SRS-LRN-009
SRS-SHR-001
SRS-ADM-001
AC-LRN-009
AC-SHR-001
AC-ADM-001
Historische ExerciseRuns en gedeelde oefeningen niet herschrijven
REQ-BEH-MOD-009-008SRS-AUTH-004
SRS-LRN-009
SRS-ADM-001
AC-AUTH-004
AC-LRN-009
AC-ADM-001
Alleen de geselecteerde oefening muteren en alle andere oefeningen ongemoeid laten