UC-BEH-DOCSUP-003 — Docentstructuur inspecteren
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-003 |
| Naam | Docentstructuur inspecteren |
| 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-004, UC-BEH-DOCSUP-005, UC-BEH-DOCSUP-006, 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 de beheerder binnen de tab Structuur de onderwijsstructuur van één docent bekijkt. De structuur wordt hiërarchisch getoond als niveau → categorie → oefening.
De tab ondersteunt één zoekveld dat gelijktijdig zoekt op namen van niveaus, categorieën en concrete oefeningen. Er worden geen aanvullende filters verondersteld.
Niveaus, categorieën en oefeningen zijn klikbaar en openen rechts een contextafhankelijk detailpaneel. De tab zelf wijzigt geen structuur.
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 de hiërarchische structuur niveau → categorie → oefening.
- Zoeken binnen niveaus, categorieën en concrete oefeningen.
- Selecteren van een niveau, categorie of oefening voor detailweergave.
- Expliciet readonly houden van de structuurinspectie.
- Afhandelen van lege structuur of zoekresultaten.
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 ondersteuningsweergave voor één docent is geopend. |
| PRE-006 | De geselecteerde docentcontext bevat nul of meer niveaus, categorieën en oefeningen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet de docentstructuur. |
| POST-002 | Zoekresultaten blijven binnen de gekozen docentcontext. |
| POST-003 | Selectie van een object opent het juiste detailpaneel. |
| POST-004 | Geen niveau, categorie, oefening of koppeling is gewijzigd. |
| POST-005 | Centrale categorie- en modulegegevens worden niet vanuit deze tab beheerd. |
6. Trigger
De usecase start wanneer de beheerder de tab Structuur opent binnen de ondersteuningsweergave van één docent.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Supportdetail | Opent tab Structuur. | De frontend vraagt de hiërarchische structuur op. | Geselecteerde docentcontext. |
| 2 | Backend | Autorisatiecomponent | Valideert beheerder en docentcontext. | Alleen geautoriseerde inzage. | Server-side context. |
| 3 | Backend | StructuurService | Laadt niveaus van de docent. | Niveauknooppunten worden opgebouwd. | TeacherLevels. |
| 4 | Backend | StructuurService | Laadt categorieën per niveau. | Categorieën worden onder niveaus geplaatst. | TeacherLevelCategories, Categories. |
| 5 | Backend | StructuurService | Laadt concrete oefeningen per categorie. | Oefeningen worden onder categorieën geplaatst. | TeacherLevelCategoryExercises, Exercises. |
| 6 | Frontend | Structuurboom | Toont structuur en zoekveld. | De beheerder kan zoeken of objecten selecteren. | Read-only boom. |
| 7 | Beheerder | Structuurboom | Klikt niveau, categorie of oefening. | Het bijbehorende detailpaneel opent. | ObjectType en ObjectId. |
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-003-001 | De structuurboom is readonly. |
| BR-UC-BEH-DOCSUP-003-002 | Zoeken mag alleen binnen de gekozen docentcontext plaatsvinden. |
| BR-UC-BEH-DOCSUP-003-003 | Een categorie in deze boom is een gebruik binnen een docentniveau en niet de centrale categoriebeheerpagina. |
| BR-UC-BEH-DOCSUP-003-004 | Een oefening in deze boom is een concrete docent-oefening en niet de technische module zelf. |
| BR-UC-BEH-DOCSUP-003-005 | Lege niveaus mogen zichtbaar zijn wanneer zij relevant zijn voor support. |
| BR-UC-BEH-DOCSUP-003-006 | Niet-actieve oefeningen worden alleen getoond wanneer dat functioneel nodig is voor supportanalyse en duidelijk als zodanig gelabeld. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-003-001 | Docentcontext is verplicht. |
| VAL-UC-BEH-DOCSUP-003-002 | Zoekterm wordt server-side toegepast of server-side begrensd. |
| VAL-UC-BEH-DOCSUP-003-003 | Objectselectie moet overeenkomen met objecttype niveau, categorie of oefening. |
| VAL-UC-BEH-DOCSUP-003-004 | Een geselecteerd object moet binnen de gekozen docentcontext vallen. |
| VAL-UC-BEH-DOCSUP-003-005 | Objecten uit andere docenten mogen niet via routeparameters worden geïnjecteerd. |
| VAL-UC-BEH-DOCSUP-003-006 | Historische of inactieve objecten worden alleen getoond met duidelijke status. |
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 Structuur als hiërarchie niveau → categorie → oefening met één gecombineerd zoekveld. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist een readmodel dat docentniveau, categoriekoppelingen en concrete oefeningen samenbrengt. |
| Software Requirements Specification | SRS moet vastleggen welke statussen zichtbaar zijn en hoe zoeken binnen de docentcontext werkt. |
| Database | Leest TeacherLevels, TeacherLevelCategories, TeacherLevelCategoryExercises en Exercises; 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-003-001 | SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 SRS-ADM-001 AC-CAT-001 AC-LRN-009 AC-TCH-002 AC-ADM-001 | De docentstructuur hiërarchisch tonen als niveau, categorie en oefening |
REQ-UC-BEH-DOCSUP-003-002 | SRS-CAT-001 SRS-LRN-009 SRS-TCH-002 SRS-ADM-001 AC-CAT-001 AC-LRN-009 AC-TCH-002 AC-ADM-001 | Één zoekveld ondersteunen dat zoekt op niveaus, categorieën en oefeningen binnen de docentcontext |
REQ-UC-BEH-DOCSUP-003-003 | SRS-AUTH-001 SRS-TCH-001 SRS-ADM-001 AC-AUTH-001 AC-TCH-001 AC-ADM-001 | Objectselecties server-side valideren binnen de gekozen docentcontext |
REQ-UC-BEH-DOCSUP-003-004 | SRS-CAT-001 SRS-LRN-009 SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-CAT-001 AC-LRN-009 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Vanuit de structuurinspectie geen categorie-, module- of oefeningmutatie uitvoeren |
REQ-UC-BEH-DOCSUP-003-005 | SRS-CAT-002 SRS-TCH-002 SRS-ADM-001 AC-CAT-002 AC-TCH-002 AC-ADM-001 | Onderscheid maken tussen centrale categorie-identiteit en categoriegebruik binnen een docentniveau |
REQ-UC-BEH-DOCSUP-003-006 | SRS-LRN-009 SRS-TCH-002 SRS-ADM-004 SRS-ADM-001 SRS-MOD-003 AC-LRN-009 AC-TCH-002 AC-ADM-004 AC-ADM-001 AC-MOD-003 | Concrete docent-oefeningen onderscheiden van technische modules |
REQ-UC-BEH-DOCSUP-003-007 | SRS-ADM-008 SRS-ADM-001 SRS-NFR-SEC-001 AC-ADM-008 AC-ADM-001 AC-NFR-SEC-001 | Lege of inactieve onderdelen veilig en herkenbaar tonen wanneer zij relevant zijn voor support |