UC-BEH-DOCSUP-006 — Oefening-detail binnen docentcontext bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-006 |
| Naam | Oefening-detail binnen docentcontext bekijken |
| 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-007, 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 vanuit de structuurboom het detail van één concrete docent-oefening bekijkt.
De detailweergave toont minimaal oefennaam, oefenicoon, huidige status, gekoppelde technische module en een actie om de volledige configuratie van deze concrete oefening te openen.
De beheerder bekijkt de concrete oefening binnen docentcontext. Centrale modulemetadata wordt niet gewijzigd en modulemigratie blijft onderdeel van Modules beheren.
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:
- Tonen van concrete oefeningmetadata.
- Tonen van gekoppelde technische module en versie-informatie waar beschikbaar.
- Tonen van status zoals actief of in onderhoud.
- Bieden van een actie om de volledige configuratie te openen.
- Blokkeren van oefeningen buiten de gekozen docentcontext.
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 | De tab Structuur is geopend. |
| PRE-006 | Er is één concrete oefening binnen de gekozen docentcontext geselecteerd. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet het oefeningdetail. |
| POST-002 | De modulekoppeling is zichtbaar maar niet centraal bewerkbaar. |
| POST-003 | De configuratie-openactie is beschikbaar wanneer de oefening nog bestaat en raadpleegbaar is. |
| POST-004 | Geen oefening, module of run is gewijzigd. |
| POST-005 | Historische runs blijven onaangetast. |
6. Trigger
De usecase start wanneer de beheerder in de structuurboom een concrete oefening selecteert.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Structuurboom | Klikt een oefening. | De frontend vraagt het oefeningdetail op. | ExerciseId. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | De aanvraag wordt geautoriseerd. | Server-side rolcontext. |
| 3 | Backend | DocentContextService | Valideert oefening binnen docentcontext. | Oefening buiten context wordt geweigerd. | TeacherLevelCategoryExercises, Exercises. |
| 4 | Backend | OefeningReadModel | Laadt oefeningmetadata. | Naam, icoon en status worden getoond. | Exercises. |
| 5 | Backend | OefeningReadModel | Laadt gekoppelde module-informatie. | Module-identiteit wordt readonly getoond. | ExerciseModules. |
| 6 | Frontend | Detailpaneel | Toont oefeningdetail. | De beheerder kan configuratie openen. | Readonly detail met doorklik. |
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-006-001 | Een oefeningdetail mag alleen worden getoond voor een concrete oefening binnen de gekozen docentcontext. |
| BR-UC-BEH-DOCSUP-006-002 | De gekoppelde technische module is readonly in dit detail. |
| BR-UC-BEH-DOCSUP-006-003 | Concrete oefeningnaam en icoon horen bij de docent-oefening en niet bij de centrale module. |
| BR-UC-BEH-DOCSUP-006-004 | Historische runs worden niet aangepast door het bekijken van oefeningdetail. |
| BR-UC-BEH-DOCSUP-006-005 | Een oefening in onderhoud wordt herkenbaar getoond en niet als leerlingstartbaar gepresenteerd. |
| BR-UC-BEH-DOCSUP-006-006 | De volledige configuratie mag alleen via een expliciete openactie worden geladen. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-006-001 | ExerciseId is verplicht. |
| VAL-UC-BEH-DOCSUP-006-002 | ExerciseId moet binnen de gekozen docentcontext vallen. |
| VAL-UC-BEH-DOCSUP-006-003 | De gekoppelde ExerciseModuleId wordt server-side gelezen. |
| VAL-UC-BEH-DOCSUP-006-004 | Statuslabel wordt afgeleid uit de opgeslagen oefeningstatus. |
| VAL-UC-BEH-DOCSUP-006-005 | Configuratiepayload wordt in deze detailweergave nog niet volledig geladen tenzij nodig. |
| VAL-UC-BEH-DOCSUP-006-006 | Clientstate mag geen oefening buiten de context openen. |
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 beschrijft dat een klik op een oefening een detailweergave opent met naam, icoon, status, module en configuratieactie. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist validatie van ExerciseId binnen docentniveau- en categoriecontext. |
| Software Requirements Specification | SRS moet bepalen welke oefeningvelden en modulevelden zichtbaar zijn in supportdetail. |
| Database | Leest Exercises, ExerciseModules en contextkoppelingen; 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-006-001 | SRS-LRN-009 SRS-TCH-002 SRS-ADM-001 AC-LRN-009 AC-TCH-002 AC-ADM-001 | Oefeningdetails alleen tonen voor oefeningen binnen de gekozen docentcontext |
REQ-UC-BEH-DOCSUP-006-002 | SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Oefennaam, icoon, status en gekoppelde module tonen |
REQ-UC-BEH-DOCSUP-006-003 | SRS-TCH-001 SRS-ADM-004 SRS-ADM-008 SRS-ADM-001 SRS-MOD-003 AC-TCH-001 AC-ADM-004 AC-ADM-008 AC-ADM-001 AC-MOD-003 | Modulegegevens readonly tonen in docentondersteuning |
REQ-UC-BEH-DOCSUP-006-004 | SRS-ADM-001 AC-ADM-001 | Een expliciete actie bieden om de volledige concrete configuratie te openen |
REQ-UC-BEH-DOCSUP-006-005 | SRS-LRN-009 SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-LRN-009 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Bij bekijken van oefeningdetail geen oefening, module of run wijzigen |
REQ-UC-BEH-DOCSUP-006-006 | SRS-LRN-009 SRS-ADM-001 AC-LRN-009 AC-ADM-001 | Oefeningen in onderhoud herkenbaar tonen |
REQ-UC-BEH-DOCSUP-006-007 | SRS-AUTH-001 SRS-AUTH-002 SRS-ADM-001 AC-AUTH-001 AC-AUTH-002 AC-ADM-001 | Clientstate voor ExerciseId niet vertrouwen zonder servervalidatie |