Skip to main content

UC-BEH-MOD-010 — Modulegeschiedenis bekijken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-BEH-MOD-010
NaamModulegeschiedenis 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-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-009
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 de geschiedenis van één geselecteerde technische module raadpleegt.

De geschiedenis toont relevante beheeracties op moduleniveau, waaronder inhoudelijke wijzigingen, statuswijzigingen, wijzigingen van test-zichtbaarheid, docentgerichte modulemigraties, globale modulemigraties en proefuitvoeringen voor zover deze auditbaar zijn vastgelegd.

Geschiedenis is een raadpleegfunctie. Zij is bedoeld voor reconstructie en supportanalyse en wijzigt geen module, oefening, run of migratierecord.

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 modulegeschiedenis voor de geopende module.
  • Tonen van actor, datum/tijd, actietype, oude en nieuwe waarde of samenvatting.
  • Tonen van migratieregels met bronmodule, doelmodule, scope, docentcontext indien aanwezig en reden.
  • Filteren of sorteren binnen de geschiedenisweergave.
  • Afhandelen van lege of gedeeltelijk beschikbare historie.

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.
  • Geschiedenis wijzigen of verwijderen.
  • Volledige technische logs als gebruikersinterface tonen.
  • Zoeken in alle systeemlogs buiten modulebeheer.
  • Migraties terugdraaien; rollback is een nieuwe bewuste migratie naar een beschikbare module.

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 Geschiedenis is zichtbaar.
PRE-007Er kunnen nul of meer relevante historie- of migratieregels bestaan.

5. Post-condities

IDResultaat
POST-001De beheerder ziet de beschikbare geschiedenis van de module.
POST-002Geen historie is gewijzigd of verwijderd.
POST-003Geen module- of oefeningdata is gewijzigd.
POST-004Sortering en filtering wijzigen uitsluitend de weergave.
POST-005Bij ontbrekende historie wordt een lege staat getoond.

6. Trigger

De usecase start wanneer de beheerder in de modulebeheerweergave de sectie Geschiedenis opent.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1BeheerderModulebeheerOpent Geschiedenis.De frontend vraagt modulegeschiedenis op.ExerciseModuleId.
2BackendAutorisatiecomponentControleert beheerdercontext.Alleen beheerder mag modulegeschiedenis bekijken.Server-side autorisatie.
3BackendHistorieServiceLaadt metadatawijzigingen en statuswijzigingen.Wijzigingen aan ExerciseModules worden als geschiedenisregels weergegeven.Beheeraudit / modulehistory.
4BackendHistorieServiceLaadt modulemigraties.Migraties met bron of doel gelijk aan de geopende module worden opgenomen.ExerciseModuleMigrations.
5BackendHistorieServiceLaadt oefeninghistorysamenvattingen waar relevant.Per-oefening migratieregels kunnen als samenvatting worden gekoppeld.ExerciseHistory.
6FrontendGeschiedenisToont chronologisch overzicht.Regels tonen actor, tijdstip, domein, actie en reden waar aanwezig.Read-only.
7BeheerderGeschiedenisFiltert of sorteert.De weergave wordt aangepast zonder datamutatie.Readmodel.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is geen beheerder.De backend weigert toegang.Niet van toepassing.Geen.
ALT-0023Geen geschiedenis beschikbaar.De sectie toont een lege staat.Niet van toepassing.Geen.
ALT-0034Migratie verwijst naar historisch bekende module.De regel gebruikt opgeslagen naam- en versiesnapshots.Niet van toepassing.Geen.
ALT-0045Een onderliggende oefening bestaat niet meer in actieve weergave.De historyregel blijft zichtbaar via audit- en snapshotinformatie.Niet van toepassing.Geen.
ALT-0057Filter levert geen resultaten op.De sectie toont een lege filterstaat zonder geschiedenis te wijzigen.Niet van toepassing.Geen.

9. Business rules

IDBusiness rule
BR-001Modulegeschiedenis is read-only.
BR-002Migraties worden zichtbaar gemaakt als beheeracties op moduleniveau.
BR-003Naam- en versiesnapshots blijven leidend voor leesbaarheid van historische migraties.
BR-004ExerciseHistory blijft de audittrail op oefeningniveau; modulegeschiedenis mag daarvan samenvattingen tonen.
BR-005Geschiedenisregels mogen niet worden aangepast of verwijderd vanuit de GUI.
BR-006Rollback van modulemigratie is geen historybewerking maar een nieuwe bewuste migratie.
BR-007Technische stacktraces of secrets worden niet in de functionele geschiedenis getoond.

10. Datavalidatie

IDValidatie
VAL-001ExerciseModuleId is verplicht en moet bestaan of historisch resolveerbaar zijn.
VAL-002De beheerderrol wordt server-side gevalideerd.
VAL-003Filterwaarden mogen alleen de query beperken en geen datamutaties triggeren.
VAL-004Migratieregels moeten bronmodule, doelmodule, scope, actor, tijdstip en reden tonen waar beschikbaar.
VAL-005Datum/tijd wordt getoond in gebruikerslokale tijd maar blijft opgeslagen in UTC.
VAL-006Historyregels worden chronologisch consistent gesorteerd.

11. Datamutaties en events

IDMutatie / eventToelichting
MUT-001Geen functionele mutatieGeschiedenis raadplegen wijzigt geen data.
MUT-002Geen eventEr wordt geen nieuwe historyregel geschreven door het bekijken van geschiedenis.

12. Geen datamutaties

IDGeen mutatieReden
NO-001ExerciseModulesModulemetadata en status blijven ongewijzigd.
NO-002ExerciseModuleMigrationsMigratieregels blijven ongewijzigd.
NO-003ExerciseHistoryOefeninghistory blijft ongewijzigd.
NO-004ExercisesGeen oefening wordt aangepast.
NO-005ExerciseRunsGeen run wordt aangepast.

13. State diagram

Niet van toepassing. Deze usecase raadpleegt bestaande history- en migratiegegevens als read-only overzicht en wijzigt geen persistent statusobject.

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 OntwerpModulebeheer toont geschiedenis van inhoudelijke wijzigingen, statuswijzigingen, test-zichtbaarheid en migraties.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, background jobs en teststrategie beschrijven de technische uitwerking. Geschiedenisreadmodel combineert module-audit, ExerciseModuleMigrations en relevante ExerciseHistory-samenvattingen.
Software Requirements SpecificationSRS moet read-only gedrag, snapshotgebruik en filter-/sorteergedrag specificeren.
DatabaseLeest audit/historybronnen zonder mutatie.

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-010-001SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
SRS-NFR-AUD-001
AC-ADM-004
AC-ADM-001
AC-MOD-003
AC-NFR-AUD-001
Modulegeschiedenis read-only tonen
REQ-BEH-MOD-010-002SRS-ADM-004
SRS-ADM-001
SRS-MOD-005
AC-ADM-004
AC-ADM-001
AC-MOD-005
Inhoudelijke modulewijzigingen, statuswijzigingen en test-zichtbaarheid tonen
REQ-BEH-MOD-010-003SRS-TCH-001
SRS-ADM-004
SRS-ADM-001
SRS-MOD-004
AC-TCH-001
AC-ADM-004
AC-ADM-001
AC-MOD-004
Docentgerichte en globale modulemigraties tonen
REQ-BEH-MOD-010-004SRS-ADM-004
SRS-ADM-001
SRS-MOD-003
AC-ADM-004
AC-ADM-001
AC-MOD-003
Bronmodule, doelmodule, scope, actor, tijdstip en reden tonen waar beschikbaar
REQ-BEH-MOD-010-005SRS-ADM-001
AC-ADM-001
Naam- en versiesnapshots gebruiken voor historische leesbaarheid
REQ-BEH-MOD-010-006SRS-ADM-001
SRS-NFR-AUD-001
AC-ADM-001
AC-NFR-AUD-001
Historyregels niet via de GUI laten wijzigen of verwijderen
REQ-BEH-MOD-010-007SRS-RDM-001
SRS-ADM-001
AC-RDM-001
AC-ADM-001
Filteren en sorteren zonder datamutatie uitvoeren