UC-BEH-DOCSUP-014 — Docentcontextgeschiedenis bekijken
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-BEH-DOCSUP-014 |
| Naam | Docentcontextgeschiedenis 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-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 |
| 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 in de tab Geschiedenis de supportrelevante historie van de geselecteerde docentcontext raadpleegt.
De geschiedenis toont minimaal wijzigingen aan niveaus, categoriekoppelingen, oefenkoppelingen, leerlingtoegang, collaborators en eigendomsoverdrachten.
De tab is raadplegend. Zij is bedoeld voor reconstructie en supportanalyse en niet als bewerkingsplek of zoekbaar communicatiearchief.
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 supportrelevante geschiedenis binnen één docentcontext.
- Samenbrengen van historie over niveaus, categorieën, oefeningen, leerlingtoegang, collaborators en eigenaarschap.
- Sorteren op datum/tijd met meest recente wijzigingen herkenbaar.
- Filteren of beperken tot de geselecteerde docentcontext.
- Blokkeren van persoonsgegevens die door anonimisering niet meer zichtbaar mogen zijn.
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 | Er bestaan nul of meer relevante history- of auditrecords voor de docentcontext. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De beheerder ziet een chronologisch overzicht van supportrelevante wijzigingen. |
| POST-002 | Geschiedenis wordt niet gewijzigd door raadplegen. |
| POST-003 | Geanonimiseerde actor- of accountgegevens worden veilig weergegeven. |
| POST-004 | De geschiedenis toont alleen records die binnen de docentcontext relevant zijn. |
| POST-005 | De beheerder kan wijzigingen reconstrueren zonder vrije technische IDs als primaire gebruikersinformatie. |
6. Trigger
De usecase start wanneer de beheerder de tab Geschiedenis opent binnen de ondersteuningsweergave van één docent.
7. Normale processtroom
| Stap | Actor | Component / context | Handeling | Resultaat | Belangrijke gegevens |
|---|---|---|---|---|---|
| 1 | Beheerder | Supportdetail | Opent tab Geschiedenis. | De frontend vraagt contextgeschiedenis op. | TeacherUserId. |
| 2 | Backend | Autorisatiecomponent | Controleert beheerdercontext. | Alleen beheerder mag geschiedenis zien. | Server-side rolcontext. |
| 3 | Backend | DocentContextService | Valideert docentcontext. | Geschiedenis blijft binnen context. | Users, TeacherLevels. |
| 4 | Backend | HistoryReadModel | Laadt niveau- en categoriewijzigingen. | Onderwijsstructuurwijzigingen worden zichtbaar. | TeacherLevels, CategoryHistory, ExerciseHistory. |
| 5 | Backend | HistoryReadModel | Laadt leerlingtoegang en collaboratorwijzigingen. | Supportmutaties worden zichtbaar. | LevelStudentAuthorizations, LevelCollaborators. |
| 6 | Backend | HistoryReadModel | Laadt eigendomsoverdrachten. | Eigenaarmutaties worden zichtbaar. | TeacherLevels / eigendomshistory. |
| 7 | Frontend | Geschiedenistab | Toont chronologisch overzicht. | Beheerder kan supportanalyse uitvoeren. | Readonly geschiedenis. |
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-014-001 | Geschiedenis is readonly. |
| BR-UC-BEH-DOCSUP-014-002 | Geschiedenis toont supportrelevante wijzigingen binnen de gekozen docentcontext. |
| BR-UC-BEH-DOCSUP-014-003 | Volledige relatiebeheerhistorie buiten de docentcontext hoort niet in deze tab. |
| BR-UC-BEH-DOCSUP-014-004 | Technische identifiers mogen niet leidend zijn voor herkenning in de UI. |
| BR-UC-BEH-DOCSUP-014-005 | Geanonimiseerde accounts worden zonder persoonsgegevens weergegeven. |
| BR-UC-BEH-DOCSUP-014-006 | Geschiedenis is reconstructie-informatie en geen vrij communicatiekanaal. |
| BR-UC-BEH-DOCSUP-014-007 | Raadplegen van geschiedenis maakt geen nieuw historyrecord aan. |
10. Datavalidatie
| ID | Validatie |
|---|---|
| VAL-UC-BEH-DOCSUP-014-001 | TeacherUserId is verplicht. |
| VAL-UC-BEH-DOCSUP-014-002 | De docentcontext moet server-side geldig zijn. |
| VAL-UC-BEH-DOCSUP-014-003 | Historyqueries moeten worden begrensd tot relevante niveaus en supportobjecten. |
| VAL-UC-BEH-DOCSUP-014-004 | Geanonimiseerde persoonsgegevens mogen niet worden teruggetoond. |
| VAL-UC-BEH-DOCSUP-014-005 | Sortering moet eenduidig zijn op tijdstip en eventueel volgnummer. |
| VAL-UC-BEH-DOCSUP-014-006 | Records uit centrale module- of categoriebeheerhistorie worden alleen getoond wanneer zij relevant zijn voor de docentcontext. |
| VAL-UC-BEH-DOCSUP-014-007 | De backend mag routeparameters niet gebruiken om andere docentgeschiedenis te tonen. |
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 Geschiedenis als supportrelevante historie van niveaus, categoriekoppelingen, oefenkoppelingen, leerlingtoegang, collaborators en eigendomsoverdrachten. |
| Technisch Ontwerp | Technisch Ontwerp: technische rolflows, oefencatalogus, relatiebeheer en logging en historie beschrijven de technische uitwerking. TO vereist een history-readmodel dat meerdere auditbronnen veilig combineert. |
| Software Requirements Specification | SRS moet de scope, sortering, privacyregels en herkenbare velden van geschiedenis vastleggen. |
| Database | Leest history- en auditbronnen; 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-014-001 | SRS-TCH-004 SRS-ADM-008 SRS-ADM-001 SRS-NFR-AUD-001 AC-TCH-004 AC-ADM-008 AC-ADM-001 AC-NFR-AUD-001 | Een beheerder supportrelevante geschiedenis van één docentcontext kunnen tonen |
REQ-UC-BEH-DOCSUP-014-002 | SRS-AUTH-001 SRS-CAT-001 SRS-LRN-009 SRS-TCH-003 SRS-ADM-001 AC-AUTH-001 AC-CAT-001 AC-LRN-009 AC-TCH-003 AC-ADM-001 | Wijzigingen aan niveaus, categoriekoppelingen, oefenkoppelingen, leerlingtoegang, collaborators en eigendomsoverdrachten kunnen tonen |
REQ-UC-BEH-DOCSUP-014-003 | SRS-AUTH-001 SRS-TCH-004 SRS-ADM-001 SRS-NFR-AUD-001 AC-AUTH-001 AC-TCH-004 AC-ADM-001 AC-NFR-AUD-001 | Geschiedenis server-side begrenzen tot de gekozen docentcontext |
REQ-UC-BEH-DOCSUP-014-004 | SRS-ADM-003 SRS-ADM-001 SRS-NFR-PRV-001 AC-ADM-003 AC-ADM-001 AC-NFR-PRV-001 | Geanonimiseerde actoren zonder persoonsgegevens weergeven |
REQ-UC-BEH-DOCSUP-014-005 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Bij raadplegen van geschiedenis geen nieuw historyrecord schrijven |
REQ-UC-BEH-DOCSUP-014-006 | SRS-ADM-001 SRS-NFR-AUD-001 AC-ADM-001 AC-NFR-AUD-001 | Geschiedenis chronologisch en functioneel herkenbaar tonen |
REQ-UC-BEH-DOCSUP-014-007 | SRS-TCH-001 SRS-ADM-001 AC-TCH-001 AC-ADM-001 | Centrale beheerhistorie alleen tonen wanneer zij relevant is voor de docentcontext |