UC-BEH-DOCSUP-007 — Concrete oefeningconfiguratie openen
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-007 |
| Naam | Concrete oefeningconfiguratie openen |
| Domein | Beheerder / Docentondersteuning |
| Primaire actor | Beheerder |
| Secundaire actor(en) | Frontend, backend, database, autorisatiecomponent, docentondersteuningcomponent, historiecomponent |
| Rolcontext | Actieve beheerdercontext; server-side bepaald vanuit de ingelogde gebruiker |
| Betrokken schermen | Content > Docent ondersteuning |
| Gerelateerde usecases | UC-BEH-DOCSUP-001, UC-BEH-DOCSUP-002, UC-BEH-DOCSUP-003, UC-BEH-DOCSUP-004, UC-BEH-DOCSUP-005, UC-BEH-DOCSUP-006, UC-BEH-DOCSUP-008, UC-BEH-DOCSUP-009, UC-BEH-DOCSUP-010, UC-BEH-DOCSUP-011, UC-BEH-DOCSUP-012, UC-BEH-DOCSUP-013, UC-BEH-DOCSUP-014 |
| Primaire entiteiten | Users, UserRoles, Roles, TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises, Exercises, ExerciseModules, ExerciseHistory, LevelCollaborators, LevelStudentAuthorizations, UserRelationships |
| Secundaire entiteiten / events | RelationshipEvents, SystemMessages, beheerlog, docentondersteuning-readmodels, autorisatiecomponent |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Ontwerpbronnen — Popup-register |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een beheerder de volledige configuratie van één concrete docent-oefening opent voor supportanalyse.
De configuratie bestaat uit generieke oefeningmetadata en een modulespecifieke configuratiepayload. De technische module blijft eigenaar van interpretatie en rendering van modulespecifieke instellingen.
De usecase is raadplegend. Wijzigen van concrete oefeningconfiguratie door beheer valt buiten deze usecase en vereist een expliciete beheeractie met audit.
Uitgangspunten
- Docentondersteuning werkt altijd vanuit één gekozen docentcontext.
- De beheerder heeft supportgerichte inzage, maar mutaties blijven beperkt tot expliciete beheeracties met audit.
- Centrale categorie- en module-identiteit worden niet vanuit deze pagina beheerd.
- Server-side autorisatie is leidend; clientstate mag geen objecttoegang afdwingen.
- Historische runs, resultaten en PDF-contexten worden niet herschreven.
3. Scope
Deze usecase beschrijft:
- Openen van de volledige configuratie van een concrete docent-oefening.
- Tonen van generieke metadata en modulespecifieke payload in een veilige supportvorm.
- Aangeven wanneer de gekoppelde module ontbreekt of niet meer resolveerbaar is.
- Blokkeren van configuraties buiten de gekozen docentcontext.
- Voorkomen dat historische runs of leerlingresultaten worden herschreven.
Deze usecase beschrijft niet:
- Centraal categoriebeheer; dat blijft bronhoudend in Beheerder / Categorieën beheren.
- Centraal technisch modulebeheer; dat blijft bronhoudend in Beheerder / Modules beheren.
- Volledig account- en rolbeheer; dat blijft bronhoudend in Beheerder / Accountbeheer.
- Reguliere docentflows vervangen; docentondersteuning is supportgericht en niet de primaire docentinterface.
- Live meekijken tijdens actieve oefeningen; beheerders mogen geschiedenis analyseren, maar niet live meekijken.
- Popupteksten, knopteksten of inputlabels specificeren; usecases verwijzen uitsluitend naar PopupKey.
3.1 Afbakening met aangrenzende domeinen
| Onderdeel | Afbakening |
|---|---|
| Docent / Oefenaanbod | Docenten beheren hun eigen niveaus, categorieën en oefeningen via de reguliere docentflows; docentondersteuning biedt beheerderinzage en gerichte correctie. |
| Beheerder / Categorieën beheren | Centrale categorie-identiteit, migratie en statuswijziging worden daar beheerd, niet in docentondersteuning. |
| Beheerder / Modules beheren | Technische modulemetadata en modulemigraties worden daar beheerd; docentondersteuning kan alleen concrete oefeningcontext inspecteren. |
| Beheerder / Accountbeheer | Rollen, accountstatus en account lifecycle horen daar; docentondersteuning gebruikt bestaande account- en relatiecontext. |
| Generiek / Relaties | Relaties en uitnodigingen blijven bronhoudend in het relatiedomein; docentondersteuning kan alleen bestaande geldige context gebruiken of een expliciete beheeractie auditen. |
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De gebruiker is succesvol ingelogd in OefenHub. |
| PRE-002 | De backend heeft server-side vastgesteld dat de gebruiker een actieve beheerderrol heeft. |
| PRE-003 | De beheerder bevindt zich binnen de beheeromgeving via Content > Docent ondersteuning. |
| PRE-004 | De pagina gebruikt actuele serverdata; clientstate, routeparameters of verborgen formuliervelden bepalen geen autorisatie, docentcontext, niveaucontext of oefeningcontext. |
| PRE-005 | Een oefeningdetail is geopend via UC-BEH-DOCSUP-006. |
| PRE-006 | De gekoppelde technische module is beschikbaar of de configuratie kan veilig historisch gelezen worden. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet de concrete configuratiecontext. |
| POST-002 | De modulespecifieke interpretatie is via module-rendering of veilige fallback zichtbaar. |
| POST-003 | Geen configuratie is gewijzigd in deze usecase. |
| POST-004 | Geen historische run of resultaat is gewijzigd. |
| POST-005 | Eventuele ontbrekende module wordt veilig afgehandeld. |
6. Trigger
De usecase start wanneer de beheerder vanuit het oefeningdetail de actie Configuratie openen kiest.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Oefeningdetail | Kiest Configuratie openen. | De frontend vraagt configuratiedetail op. | ExerciseId. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen beheerder mag supportconfiguratie openen. | Server-side rolcontext. |
| 3 | Backend | DocentContextService | Valideert ExerciseId binnen docentcontext. | Oefening buiten context wordt geweigerd. | Exercises. |
| 4 | Backend | ConfiguratieService | Laadt generieke metadata en payload. | Configuratiecontext wordt opgebouwd. | Exercises.ConfigurationPayload. |
| 5 | Backend | ModuleStrategy | Probeert modulespecifieke renderhulp te gebruiken. | Configuratie wordt begrijpelijk weergegeven wanneer mogelijk. | ExerciseModules.CodeReference. |
| 6 | Frontend | Configuratiepaneel | Toont configuratie of veilige fallback. | Beheerder kan supportanalyse uitvoeren. | Readonly supportweergave. |
8. Alternatieve en exceptionele processtromen
| Stap | Situatie | Afhandeling | PopupKey | Datamutatie |
|---|---|---|---|---|
| 2 | Beheerdercontext is ongeldig. | De backend weigert de actie en toont een veilige blokkade. | POP-BEH-DOCSUP-NO-ACCESS | Geen. |
| 3 | De geselecteerde docent bestaat niet of is niet toegankelijk. | De ondersteuningsweergave wordt niet geopend of wordt veilig teruggezet naar het overzicht. | POP-BEH-DOCSUP-SAVE-ERROR | Geen. |
| 4 | Het gekozen object bestaat niet meer. | De pagina toont dat het object niet beschikbaar is en ververst de context. | Niet van toepassing | Geen. |
| 5 | De readmodeldata is tijdelijk incompleet. | De beschikbare gegevens worden getoond met veilige ontbrekend-status; ontbrekend wordt niet als nul geïnterpreteerd. | Niet van toepassing | Geen. |
| 6 | De beheerder gebruikt een oude route of clientstate. | De backend negeert de clientcontext en herleidt de actuele context opnieuw. | Niet van toepassing | Geen. |
9. Business rules
| ID | Business rule |
|---|---|
| BR-UC-BEH-DOCSUP-007-001 | Configuratie openen is geen impliciete bewerkactie. |
| BR-UC-BEH-DOCSUP-007-002 | De modulespecifieke payload blijft generiek opgeslagen en modulespecifiek geïnterpreteerd. |
| BR-UC-BEH-DOCSUP-007-003 | Ontbrekende of niet-resolveerbare module mag de supportweergave niet onveilig laten falen. |
| BR-UC-BEH-DOCSUP-007-004 | Historische runs worden niet herberekend of aangepast. |
| BR-UC-BEH-DOCSUP-007-005 | Vrije JSON-wijziging in de GUI is niet toegestaan binnen deze usecase. |
| BR-UC-BEH-DOCSUP-007-006 | De configuratie mag alleen worden geopend vanuit een gevalideerde docentcontext. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-007-001 | ExerciseId is verplicht. |
| VAL-UC-BEH-DOCSUP-007-002 | ExerciseId moet binnen de gekozen docentcontext vallen. |
| VAL-UC-BEH-DOCSUP-007-003 | ConfigurationPayload wordt server-side gelezen. |
| VAL-UC-BEH-DOCSUP-007-004 | Module-rendering gebruikt de CodeReference uit de database, niet clientinput. |
| VAL-UC-BEH-DOCSUP-007-005 | Payloadweergave moet veilig geëncodeerd zijn. |
| VAL-UC-BEH-DOCSUP-007-006 | Ontbrekende module wordt als supportfout afgehandeld zonder mutatie. |
11. Datamutaties en events
| Object / event | Mutatie |
|---|---|
| Geen functionele mutatie | Deze usecase raadpleegt of navigeert zonder inhoudelijke domeinwijziging. |
| Geen event | Er wordt geen historyrecord geschreven voor alleen raadplegen. |
12. Geen datamutaties
| Object | Waarom geen mutatie |
|---|---|
| Users | Alleen gelezen voor actor- en docentcontext. |
| TeacherLevels | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategories | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| TeacherLevelCategoryExercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| Exercises | Alleen gelezen tenzij deze usecase expliciet anders beschrijft. |
| ExerciseRuns | Historische runs worden nooit herschreven. |
13. State diagram
Niet van toepassing.
Deze usecase wijzigt geen persistent statusobject. De getoonde selectie-, detail-, zoek- of navigatietoestand is uitsluitend tijdelijke UI-state binnen de beheerderweergave en wordt niet als domeinstatus opgeslagen.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
17. Popupverwijzingen
| PopupKey | Gebruik |
|---|---|
| Niet van toepassing | Deze usecase gebruikt geen popupregister-popup. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Onderdeel | Afleiding |
|---|---|
| Functioneel Ontwerp | FO benoemt dat de concrete oefeningdetail een actie biedt om volledige configuratie te openen. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist veilige payloadweergave en module-rendering via de strategy-interface wanneer de gekoppelde module beschikbaar is. |
| Software Requirements Specification | SRS moet vastleggen dat configuratie-inzage niet gelijkstaat aan configuratiewijziging. |
| Database | Leest Exercises.ConfigurationPayload en ExerciseModules; schrijft niets. |
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-afleiding | Dekt | Usecasecontext |
|---|---|---|
REQ-UC-BEH-DOCSUP-007-001 | SRS-CAT-003 SRS-LRN-009 SRS-TCH-002 SRS-ADM-001 AC-CAT-003 AC-LRN-009 AC-TCH-002 AC-ADM-001 | De concrete oefeningconfiguratie alleen openen binnen een geldige docentcontext |
REQ-UC-BEH-DOCSUP-007-002 | SRS-LRN-009 SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-LRN-009 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Generieke oefeningmetadata en modulespecifieke configuratiepayload kunnen tonen |
REQ-UC-BEH-DOCSUP-007-003 | SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 SRS-NFR-SEC-001 AC-ADM-004 AC-ADM-001 AC-MOD-003 AC-NFR-SEC-001 | Module-rendering gebruiken wanneer beschikbaar en veilig terugvallen wanneer niet beschikbaar |
REQ-UC-BEH-DOCSUP-007-004 | SRS-ADM-001 AC-ADM-001 | Configuratie openen niet behandelen als wijziging |
REQ-UC-BEH-DOCSUP-007-005 | SRS-LRN-009 SRS-ADM-001 AC-LRN-009 AC-ADM-001 | Historische runs of resultaten niet herschrijven bij configuratie-inzage |
REQ-UC-BEH-DOCSUP-007-006 | SRS-ADM-001 SRS-NFR-SEC-001 AC-ADM-001 AC-NFR-SEC-001 | Payloadweergave veilig coderen en geen actieve inhoud renderen |
REQ-UC-BEH-DOCSUP-007-007 | SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 SRS-NFR-SEC-001 AC-ADM-004 AC-ADM-001 AC-MOD-003 AC-NFR-SEC-001 | Ontbrekende modulekoppelingen veilig afhandelen |