UC-BEH-DOCSUP-005 — Categorie-detail binnen docentcontext bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-005 |
| Naam | Categorie-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-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 een beheerder vanuit de structuurboom het readonly supportdetail van een categorie binnen het gekozen docentniveau bekijkt.
De detailweergave toont minimaal de centrale categorie-identiteit, het aantal concrete oefeningen binnen het gekozen niveau en de functionele zichtbaarheid voor leerlingen binnen dit niveau.
Centrale categorie-eigenschappen zoals naam, kleur en icoon worden hier niet gewijzigd. Voor centrale wijzigingen verwijst de beheerder naar Categorieën 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 centrale categorie-identiteit binnen docentcontext.
- Tonen van aantal concrete oefeningen onder de categorie in het gekozen niveau.
- Tonen van leerlingzichtbaarheid binnen dit niveau.
- Duidelijk onderscheiden van centraal categoriebeheer.
- Blokkeren van categoriegebruik 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 categorie binnen een niveau van de geselecteerde docentcontext gekozen. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet readonly categoriegebruik binnen het docentniveau. |
| POST-002 | De centrale categorie-identiteit wordt alleen gelezen. |
| POST-003 | Leerlingzichtbaarheid wordt afgeleid uit actieve oefeningen en toegangregels. |
| POST-004 | Geen centrale categorie, categoriekoppeling of oefening is gewijzigd. |
| POST-005 | De beheerder kan waar nodig navigeren naar centrale categoriebeheercontext zonder bronlogica te dupliceren. |
6. Trigger
De usecase start wanneer de beheerder in de structuurboom een categorie binnen een niveau selecteert.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Structuurboom | Klikt een categorie. | De frontend vraagt het categorie-detail op. | TeacherLevelCategoryId of LevelId + CategoryId. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen beheerder mag supportdetail openen. | Server-side rolcontext. |
| 3 | Backend | DocentContextService | Valideert categoriegebruik binnen niveau en docentcontext. | Categorie buiten context wordt geweigerd. | TeacherLevelCategories. |
| 4 | Backend | CategorieReadModel | Laadt centrale categorie-identiteit. | Naam, kleur en icoon worden readonly getoond. | Categories. |
| 5 | Backend | CategorieReadModel | Berekent oefeningen en zichtbaarheid. | Aantal concrete oefeningen en leerlingzichtbaarheid worden afgeleid. | TeacherLevelCategoryExercises, Exercises. |
| 6 | Frontend | Detailpaneel | Toont categorie-detail. | De beheerder ziet supportanalyse zonder mutatie. | Readonly detailpaneel. |
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-005-001 | Categorie-detail in docentondersteuning is readonly. |
| BR-UC-BEH-DOCSUP-005-002 | Centrale categorie-identiteit wordt niet vanuit docentondersteuning gewijzigd. |
| BR-UC-BEH-DOCSUP-005-003 | Leerlingzichtbaarheid wordt afgeleid uit actieve onderliggende oefeningen binnen het niveau. |
| BR-UC-BEH-DOCSUP-005-004 | Een categorie zonder actieve oefeningen is niet normaal zichtbaar voor leerlingen binnen dat niveau. |
| BR-UC-BEH-DOCSUP-005-005 | Categoriemigratie en statuswijziging horen bij Categorieën beheren. |
| BR-UC-BEH-DOCSUP-005-006 | Deze view mag geen nieuwe categorie aanmaken of koppelen. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-005-001 | TeacherLevelCategoryId of combinatie LevelId + CategoryId is verplicht. |
| VAL-UC-BEH-DOCSUP-005-002 | De categorie moet gekoppeld zijn aan een niveau binnen de gekozen docentcontext. |
| VAL-UC-BEH-DOCSUP-005-003 | Centrale categoriegegevens worden server-side geladen. |
| VAL-UC-BEH-DOCSUP-005-004 | Zichtbaarheid voor leerlingen wordt server-side afgeleid. |
| VAL-UC-BEH-DOCSUP-005-005 | Aantal oefeningen telt concrete oefeningen binnen het gekozen niveau, niet globaal over alle docenten. |
| VAL-UC-BEH-DOCSUP-005-006 | Routeparameters mogen geen centrale categorie buiten de context als docentgebruik presenteren. |
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 categorie-detail binnen docentondersteuning als readonly supportanalyse. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist afleiding van leerlingzichtbaarheid uit actieve oefeningen binnen het niveau. |
| Software Requirements Specification | SRS moet het onderscheid tussen centrale categorie-identiteit en categoriegebruik binnen docentcontext vastleggen. |
| Database | Leest TeacherLevelCategories, Categories, 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-005-001 | SRS-CAT-001 SRS-TCH-002 SRS-ADM-001 AC-CAT-001 AC-TCH-002 AC-ADM-001 | Categoriedetail alleen tonen voor categoriegebruik binnen de gekozen docentcontext |
REQ-UC-BEH-DOCSUP-005-002 | SRS-CAT-002 SRS-ADM-001 AC-CAT-002 AC-ADM-001 | Centrale categorie-identiteit readonly tonen |
REQ-UC-BEH-DOCSUP-005-003 | SRS-AUTH-001 SRS-RDM-001 SRS-RDM-005 SRS-CAT-001 SRS-LRN-005 SRS-ADM-001 AC-AUTH-001 AC-RDM-001 AC-RDM-005 AC-CAT-001 AC-LRN-005 AC-ADM-001 | Leerlingzichtbaarheid binnen het niveau server-side afleiden |
REQ-UC-BEH-DOCSUP-005-004 | SRS-CAT-001 SRS-LRN-009 SRS-ADM-001 AC-CAT-001 AC-LRN-009 AC-ADM-001 | Het aantal concrete oefeningen binnen het gekozen niveau tonen |
REQ-UC-BEH-DOCSUP-005-005 | SRS-CAT-002 SRS-TCH-002 SRS-ADM-008 SRS-ADM-001 AC-CAT-002 AC-TCH-002 AC-ADM-008 AC-ADM-001 | Centrale categoriegegevens niet vanuit docentondersteuning wijzigen |
REQ-UC-BEH-DOCSUP-005-006 | SRS-CAT-002 SRS-ADM-001 AC-CAT-002 AC-ADM-001 | Voor centrale categorieaanpassingen verwijzen naar Categorieën beheren |
REQ-UC-BEH-DOCSUP-005-007 | SRS-AUTH-001 SRS-CAT-001 SRS-TCH-002 SRS-ADM-001 AC-AUTH-001 AC-CAT-001 AC-TCH-002 AC-ADM-001 | Categorieën buiten de docentcontext blokkeren |