Skip to main content

UC-DOC-OEF-006 - Oefening activeren of in onderhoud zetten

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-OEF-006
NaamOefening activeren of in onderhoud zetten
DomeinDocent
SubdomeinOefeningen configureren en testen
Primaire actorDocent
Secundaire actor(en)Systeem
RolcontextDocentcontext met bewerkrechten binnen het geselecteerde niveau
Betrokken schermenDocent - Oefeningoverzicht, oefeningdetail, statusactie
Gerelateerde usecasesUC-DOC-OEF-001, UC-DOC-OEF-004, UC-DOC-OEF-005, UC-DOC-OEF-008, UC-LLN-TOEG-002, UC-LLN-TOEG-003
Primaire entiteitenExercises, ExerciseHistory
Secundaire entiteiten / eventsLevels, LevelCategories, Categories, ExerciseModules, LevelCollaborators, leerlingtoegang-readmodels
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een docent de gebruiksstatus van een concrete oefening wijzigt tussen In onderhoud en Actief. De status wordt functioneel gedragen door Exercises.IsActive.

Een oefening In onderhoud is niet zichtbaar of startbaar voor leerlingen. Een actieve oefening kan beschikbaar worden voor leerlingen wanneer ook de niveau-, categorie- en autorisatiecontext geldig is.

De usecase wijzigt alleen de status van de concrete oefening. Zij kent geen leerlingen toe, maakt geen nieuwe categorie aan en wijzigt geen technische module of moduleconfiguratie.

3. Scope

3.1 Binnen scope

  • Tonen van de actuele status van een concrete oefening.
  • Activeren van een oefening vanuit In onderhoud.
  • In onderhoud zetten van een actieve oefening.
  • Server-side controleren van docentrol, context en bewerkrechten.
  • Controleren of de oefening voldoende geldig geconfigureerd is om te activeren.
  • Bijwerken van Exercises.IsActive.
  • Vastleggen van statuswijziging in ExerciseHistory.
  • Afleiden van gevolgen voor leerlingzichtbaarheid zonder leerlingautorisaties te wijzigen.

3.2 Buiten scope

  • Oefeninginhoud of configuratie bewerken.
  • Nieuwe oefening aanmaken.
  • Technische module beschikbaarheid beheren.
  • Niveauautorisaties aan leerlingen wijzigen.
  • Categorie-actiefstatus handmatig beheren.
  • Bestaande afgeronde runs of geschiedenis wijzigen.
  • Technische modules centraal beheren of migreren.
  • Leerlingresultaten bekijken of wijzigen.
  • Niveau-autorisaties aan leerlingen toekennen of intrekken.
  • Relatie-uitnodigingen, docent-leerlingrelaties of docent-docentrelaties aanmaken.
  • Account-, profiel- of toegankelijkheidsinstellingen wijzigen.
  • Systeemnotificaties beheren of tonen.
  • Beheerderondersteuning of centrale modulebeheerflows uitvoeren.

4. Pre-condities

IDVoorwaarde
PRE-001De docent is ingelogd.
PRE-002De gebruiker heeft een actieve docentrol.
PRE-003Er is een geldige docentcontext bepaald.
PRE-004Er is een geldig niveau geselecteerd.
PRE-005De docent is eigenaar van het niveau of actieve collaborator met passende bewerkrechten.
PRE-006Er is een categoriecontext beschikbaar binnen het geselecteerde niveau.
PRE-007De oefening bestaat binnen de geselecteerde niveau- en categoriecontext.
PRE-008De docent heeft bewerkrechten voor statusbeheer.
PRE-009De actuele status van de oefening is bekend.
PRE-010Bij activeren is de oefening voldoende geconfigureerd volgens generieke en modulespecifieke regels.
PRE-011De gekoppelde technische module is beschikbaar voor normale inzet wanneer activeren wordt gekozen.

5. Post-condities

IDResultaat
POST-001De oefeningstatus is gewijzigd wanneer alle controles slagen.
POST-002Exercises.IsActive geeft de actuele status weer.
POST-003De statuswijziging is vastgelegd in ExerciseHistory.
POST-004Leerlingzichtbaarheid wordt afgeleid uit de nieuwe status en bestaande toegangsregels.
POST-005Bestaande afgeronde runs en geschiedenis zijn niet gewijzigd.
POST-006Bij blokkade of annuleren blijft de oude status behouden.

6. Trigger

De docent kiest in een oefeningoverzicht of oefeningdetail voor Activeren of Zet in onderhoud.

De trigger kan ook ontstaan na succesvolle configuratie, wanneer de docent de oefening bewust beschikbaar wil maken voor leerlingen.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentOefeningdetailKiest statusactieFrontend verstuurt gewenste statuswijzigingExerciseId, gewenste status
2SysteemBackendControleert docentrol en contextAlleen bevoegde docent mag verderUserRoles, Levels
3SysteemBackendControleert oefeningcontextOefening moet bij niveau en categorie horenExercises, LevelCategories
4SysteemBackendControleert bewerkrechtenEigenaar of collaborator met statusrecht mag verderLevelCollaborators
5SysteemBackendLeest actuele statusSysteem bepaalt of wijziging zinvol isExercises.IsActive
6SysteemBackendControleert activeringsvoorwaardenBij activeren moet oefening geldig configureerbaar zijnConfiguratie, modulebeschikbaarheid
7SysteemDatabaseWijzigt statusIsActive wordt aangepastExercises
8SysteemDatabaseLegt historie vastStatuswijziging wordt auditbaarExerciseHistory UPDATE_STATUS
9SysteemFrontendVerverst overzichtDocent ziet nieuwe statusStatuslabel
10SysteemReadmodelLeidt leerlingzichtbaarheid afBeschikbaarheid volgt uit status en toegangscontextGeen aparte handmatige categorie-status

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Geen actieve docentrolBlokkeer statusactieRouteguardGeen
ALT-0023Oefening bestaat niet of hoort niet bij contextToon niet-beschikbaarafhandelingInline meldingGeen
ALT-0034Geen statusbeheerrechtenBlokkeer actieToegangafhandelingGeen
ALT-0045Gewenste status is gelijk aan actuele statusGeen wijziging nodigGeen popupGeen
ALT-0056Oefening is niet geldig configureerbaarBlokkeer activeren en verwijs naar bewerkenInline meldingGeen
ALT-0066Gekoppelde technische module is niet beschikbaarBlokkeer activerenInline meldingGeen
ALT-0077Opslag faaltRollback en toon generieke foutGenerieke foutafhandelingGeen blijvende mutatie
ALT-0088Historie kan niet worden vastgelegdStatuswijziging wordt niet als succesvol beschouwd wanneer audit vereist isGenerieke foutafhandelingRollback
ALT-00910Activeren levert nog geen zichtbare leerlingcategorie opSysteem toont geen extra actie; zichtbaarheid volgt uit totale contextNiet van toepassingGeen extra mutatie

9. Business rules

IDRegel
BR-001Nieuwe oefeningen starten standaard In onderhoud.
BR-002Alleen IsActive bepaalt de concrete oefeningstatus Actief/In onderhoud.
BR-003Een oefening In onderhoud is niet zichtbaar of startbaar voor leerlingen.
BR-004Een actieve oefening is alleen voor leerlingen beschikbaar wanneer ook niveau-, categorie- en autorisatiecontext geldig zijn.
BR-005Activeren vereist dat de oefening geldig geconfigureerd is.
BR-006Activeren vereist een beschikbare technische module voor normale inzet.
BR-007In onderhoud zetten wijzigt bestaande afgeronde runs niet.
BR-008In onderhoud zetten kan voorkomen dat nieuwe runs worden gestart, maar wist geen geschiedenis.
BR-009Statuswijzigingen worden auditbaar vastgelegd in ExerciseHistory.
BR-010Categoriezichtbaarheid voor leerlingen wordt afgeleid uit actieve oefeningen binnen context en niet handmatig in deze usecase gezet.
BR-011Statusbeheer wijzigt geen leerlingautorisaties.
BR-012Statusbeheer verstuurt geen systeemberichten naar leerlingen binnen de huidige scope.
BR-013Clientstate mag niet bepalen of een oefening activeerbaar is.

10. Datavalidatie

Veld / objectValidatie
ExerciseIdMoet bestaan en binnen de toegankelijke docentcontext vallen.
Gewenste statusMoet overeenkomen met Actief of In onderhoud.
Exercises.IsActiveWordt server-side gelezen en gewijzigd.
BewerkrechtenMoeten uit eigenaarschap of collaboratorrechten volgen.
ModuleConfigurationJsonBase64Moet aanwezig en valideerbaar zijn bij activeren.
ExerciseModuleIdMoet verwijzen naar een beschikbare module bij activeren.
LevelCategory-koppelingMoet actief zijn om leerlingbeschikbaarheid zinvol te maken.
UpdatedByUserIdKomt uit server-side docentcontext.
UpdatedAtUtcWordt server-side in UTC gezet.
ExerciseHistory.ActionTypeMoet UPDATE_STATUS gebruiken of een gelijkwaardige gesloten actiewaarde.
ConcurrencyVerouderde statusactie moet veilig worden afgehandeld.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
2ReadUserRoles / RolesDocentrol wordt gecontroleerd.
3ReadExercises / LevelCategoriesOefeningcontext wordt gecontroleerd.
4ReadLevelCollaboratorsStatusrechten worden gecontroleerd.
6ReadExercises / ExerciseModules / modulevalidatieActiveringsvoorwaarden worden gecontroleerd.
7UpdateExercisesIsActive, UpdatedByUserId en UpdatedAtUtc worden bijgewerkt.
8CreateExerciseHistoryStatuswijziging wordt auditbaar vastgelegd.
10EventExerciseStatusChangedDomeinevent voor readmodelverversing en auditafleiding.

12. Geen datamutaties

EntiteitReden
ModuleConfigurationJsonBase64Statuswijziging wijzigt de configuratie niet.
ExerciseModulesModule wordt niet beheerd.
ExerciseRunsBestaande runs blijven intact.
LevelCategoriesCategoriezichtbaarheid wordt afgeleid, niet handmatig gezet.
CategoriesCentrale categorie-identiteit blijft ongewijzigd.
StudentAuthorizationsDeze usecase wijzigt geen leerlingtoegang.
ExerciseRunProgressEr wordt geen leerlingvoortgang aangepast.
SystemMessagesEr worden geen systeemberichten aangemaakt.
PrivateMessagesEr worden geen privéberichten aangemaakt.
RelationshipInvitationsRelatievorming blijft buiten scope.

13. State diagram

Deze usecase raakt het statusgedrag van een concrete oefening. De backendwaarde is Exercises.IsActive; gebruikersgericht zijn de statussen Actief en In onderhoud.

Er is geen aparte statuslookup nodig voor deze twee waarden zolang IsActive de bron van waarheid blijft.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Oefening activeren

16.2 Oefening in onderhoud zetten

16.3 Activeren geblokkeerd

17. Popupverwijzingen

PopupKeyMomentToelichting
Niet van toepassingDeze usecase gebruikt geen domeinspecifieke popup.Routeguard-, inline validatie- of componentafhandeling volstaat.

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

DoeldocumentAfleiding
Functioneel OntwerpDocent kan oefeningstatus wijzigen tussen Actief en In onderhoud.
Functioneel OntwerpAlleen actieve oefeningen kunnen voor leerlingen beschikbaar worden.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. Exercises.IsActive blijft de technische bron van waarheid.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. Activeren vraagt controle op geldige configuratie en modulebeschikbaarheid.
Software Requirements SpecificationStatuswijzigingen moeten auditbaar worden vastgelegd.
DatabaseGeen aparte statusentiteit nodig; ExerciseHistory registreert UPDATE_STATUS.

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-UC-DOC-OEF-006-001SRS-LRN-009
SRS-TCH-002
AC-LRN-009
AC-TCH-002
De actuele oefeningstatus tonen als Actief of In onderhoud
REQ-UC-DOC-OEF-006-002SRS-AUTH-001
SRS-TCH-001
AC-AUTH-001
AC-TCH-001
Alleen bevoegde docenten statuswijzigingen laten uitvoeren
REQ-UC-DOC-OEF-006-003SRS-AUTH-001
SRS-TCH-001
SRS-MOD-003
AC-AUTH-001
AC-TCH-001
AC-MOD-003
Activeren blokkeren wanneer configuratie of module ongeldig is
REQ-UC-DOC-OEF-006-004SRS-TCH-001
AC-TCH-001
Exercises.IsActive wijzigen bij succesvolle statusactie
REQ-UC-DOC-OEF-006-005SRS-TCH-001
SRS-NFR-AUD-001
AC-TCH-001
AC-NFR-AUD-001
Statuswijzigingen auditbaar vastleggen in ExerciseHistory
REQ-UC-DOC-OEF-006-006SRS-LRN-001
SRS-TCH-002
AC-LRN-001
AC-TCH-002
In onderhoud-oefeningen niet zichtbaar of startbaar maken voor leerlingen
REQ-UC-DOC-OEF-006-007SRS-AUTH-001
SRS-RDM-001
SRS-RDM-005
SRS-LRN-005
SRS-TCH-002
AC-AUTH-001
AC-RDM-001
AC-RDM-005
AC-LRN-005
AC-TCH-002
Bij actieve oefeningen leerlingbeschikbaarheid afleiden uit de volledige toegangscontext
REQ-UC-DOC-OEF-006-008SRS-AUTH-001
SRS-LRN-009
SRS-TCH-001
AC-AUTH-001
AC-LRN-009
AC-TCH-001
Door statuswijziging geen leerlingautorisaties wijzigen
REQ-UC-DOC-OEF-006-009SRS-LRN-009
SRS-TCH-001
AC-LRN-009
AC-TCH-001
Door statuswijziging geen historische runs of resultaten wijzigen
REQ-UC-DOC-OEF-006-010SRS-TCH-001
SRS-NFR-SEC-001
AC-TCH-001
AC-NFR-SEC-001
Dubbele statusacties zonder effectieve wijziging veilig afhandelen
REQ-UC-DOC-OEF-006-011SRS-AUTH-001
SRS-AUTH-002
SRS-TCH-001
SRS-GUA-001
AC-AUTH-001
AC-AUTH-002
AC-TCH-001
AC-GUA-001
Verouderde clientstate opnieuw server-side controleren
REQ-UC-DOC-OEF-006-012SRS-TCH-001
SRS-NFR-AUD-001
AC-TCH-001
AC-NFR-AUD-001
Statuswijziging en historie transactioneel verwerken waar audit verplicht is