Skip to main content

UC-DOC-AANB-008 — Categoriegebruik en zichtbaarheid afleiden

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-AANB-008
NaamCategoriegebruik en zichtbaarheid afleiden
DomeinDocent
SubdomeinOefenaanbod, niveaus en categorieën
Primaire actorOefenHub-systeem
Secundaire actor(en)Docent, Leerling
RolcontextDocentcontext en leerlingcontext binnen hetzelfde niveau
Betrokken schermenOefenaanbod; categorieoverzicht; leerlingnavigatie; leerling-frontpage
Gerelateerde usecasesUC-DOC-AANB-005, UC-DOC-AANB-006, UC-DOC-AANB-007, UC-DOC-OEF-006, UC-LLN-TOEG-001
Primaire entiteitenLevels, LevelCategories, Categories, Exercises
Secundaire entiteiten / eventsAfgeleide readmodels, ExerciseHistory
Gerelateerde popupsNiet van toepassing
PopupregisterNiet van toepassing
MoSCoWMust

2. Omschrijving

Het systeem leidt per niveau en categorie af hoe een categorie binnen docentbeheer en leerlingnavigatie behandeld moet worden. Voor docenten blijft een gekoppelde categorie zichtbaar als beheercontext, ook wanneer er nog geen actieve oefeningen zijn. Voor leerlingen wordt dezelfde categorie alleen zichtbaar wanneer binnen hun actieve niveau en toegangscontext minimaal één actieve oefening beschikbaar is. Deze usecase borgt dat categoriegebruik en zichtbaarheid niet als vrije handmatige docentinstelling worden gezien, maar als afgeleide uit bestaande brondata.

Deze usecase beschrijft de docenthandeling binnen het subdomein Oefenaanbod, niveaus en categorieën. De usecase is procesgericht en beschrijft geen pixelniveau-schermdetails. Schermdetails, exacte layout en componentvormgeving blijven bronhoudend in schermdocumentatie en mockups. Centraal categoriebeheer, migratie van categorieën en beheerdercorrecties blijven bronhoudend in de beheerderflows en ontwerpbronnen.

3. Scope

Binnen scope:

  • afleiden van categoriegebruik binnen een niveau;
  • afleiden van leerlingzichtbaarheid op basis van actieve oefeningen;
  • onderscheiden tussen docentbeheerzichtbaarheid en leerlingzichtbaarheid;
  • toepassen van niveaucontext en toegangscontext;
  • uitleggen wanneer afgeleide waarden eventueel technisch gecachet mogen worden;
  • voorkomen dat afgeleide zichtbaarheid een tweede bron van waarheid wordt.

Buiten scope:

  • oefening activeren of in onderhoud zetten;
  • leerlingniveau-autorisaties beheren;
  • centrale categorie-eigenschappen wijzigen;
  • frontpagecontent beheren;
  • populariteit of statistieken berekenen;
  • categorieën migreren of samenvoegen.

4. Pre-condities

IDVoorwaarde
PRE-001Er bestaat een niveau met nul, één of meerdere categorie-koppelingen.
PRE-002Categorieën en oefeningen hebben actuele statusinformatie.
PRE-003Voor leerlingzichtbaarheid is een actieve leerling-niveaucontext beschikbaar.
PRE-004Voor docentbeheerzichtbaarheid is een geldige docentcontext beschikbaar.
PRE-005Het systeem kan actieve oefeningen binnen niveau en categorie bepalen.
PRE-006Autorisatie- en toegangregels voor de actor zijn server-side beschikbaar.

5. Post-condities

IDResultaat
POST-001Voor docentbeheer is duidelijk welke categorieën aan het niveau gekoppeld zijn.
POST-002Voor leerlingnavigatie is bepaald welke categorieën zichtbaar zijn.
POST-003Categorieën zonder actieve oefeningen zijn niet leerlingzichtbaar.
POST-004Afgeleide zichtbaarheid is herleidbaar uit brondata.
POST-005Er zijn geen onnodige handmatige zichtbaarheidsschermen voor categorieën ontstaan.
POST-006Eventuele cachewaarden zijn afgeleid en vervangbaar, niet bronhoudend.

6. Trigger

De usecase wordt uitgevoerd wanneer een overzicht, navigatie of frontpage moet bepalen welke categorieën of categoriegegevens zichtbaar zijn. De trigger kan ontstaan vanuit docentbeheer, leerlingnavigatie, leerling-frontpage of na wijzigingen aan oefeningen binnen een categorie.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1SysteemContextresolverOntvangt verzoek om categoriegebruik of zichtbaarheid te bepalen.Systeem bepaalt actorcontext en niveaucontext.Docent of leerling.
2SysteemAutorisatieControleert of de actor het niveau mag zien.Onbevoegde context wordt geblokkeerd.UserRoles, relaties, autorisaties.
3SysteemCategoriebronLaadt categorie-koppelingen voor het niveau.Gekoppelde categorieën vormen basis voor beheercontext.LevelCategories.
4SysteemOefeningbronLaadt actieve en inactieve oefeningen binnen niveau en categorie.Actieve status wordt gebruikt voor leerlingzichtbaarheid.Exercises.IsActive.
5SysteemDocentafleidingBepaalt docentbeheerzichtbaarheid.Alle gekoppelde categorieën blijven beheersbaar zichtbaar volgens statusregels.Docentcontext.
6SysteemLeerlingafleidingBepaalt leerlingzichtbaarheid.Categorie telt alleen mee wanneer minimaal één actieve oefening toegankelijk is.Leerlingcontext plus actieve oefening.
7SysteemReadmodelBouwt resultset voor betreffende scherm.Readmodel bevat uitleg/flags voor zichtbaar, niet zichtbaar of beheer-only.Geen nieuwe brondata.
8SysteemOptionele cacheActualiseert alleen afgeleide cache indien deze technisch bestaat.Cache is afgeleid en mag worden herbouwd.Geen functionele bron.
9Docent of LeerlingSchermZiet passende categoriegegevens.Docent ziet beheercontext; leerling ziet alleen toegankelijke categorieën.DRY-toegangsregels.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Actor heeft geen toegang tot niveau.Systeem retourneert geen categoriegegevens.Routeguard of toegang-geweigerdafhandeling.Geen.
ALT-0023Niveau heeft geen categorie-koppelingen.Docent ziet lege beheercontext; leerling ziet geen categorieën voor dat niveau.Geen popupregister-popup.Geen.
ALT-0034Categorie heeft alleen inactieve oefeningen.Docent ziet categorie als beheercontext; leerling ziet categorie niet.Geen popupregister-popup.Geen.
ALT-0044Oefening is actief maar leerling mist niveauautorisatie.Categorie wordt voor die leerling niet zichtbaar.Geen popupregister-popup.Geen.
ALT-0058Afgeleide cache is verouderd of ontbreekt.Systeem herbouwt of negeert cache op basis van brondata.Geen popupregister-popup.Technische cacheverversing zonder domeinmutatie.
ALT-0068Cacheverversing faalt maar bronquery slaagt.Systeem toont brongebaseerd resultaat en logt technische cachefout.Technische logging.Geen domeinmutatie.

9. Business rules

IDRegel
BR-001Categoriegebruik binnen docentbeheer wordt afgeleid uit LevelCategories.
BR-002Leerlingzichtbaarheid van een categorie wordt afgeleid uit actieve oefeningen binnen de geldige niveau- en autorisatiecontext.
BR-003Een docent zet categoriezichtbaarheid voor leerlingen niet handmatig aan of uit.
BR-004Een categorie zonder actieve oefeningen mag wel zichtbaar blijven voor de docent in beheercontext.
BR-005Een categorie zonder actieve oefeningen mag niet zichtbaar zijn in leerlingnavigatie.
BR-006Een actieve oefening maakt een categorie alleen zichtbaar voor leerlingen die de onderliggende niveaucontext mogen gebruiken.
BR-007Afgeleide zichtbaarheid mag technisch gecachet worden, maar cache is geen bron van waarheid.
BR-008Wijzigingen aan oefenstatus kunnen zichtbaarheid opnieuw laten afleiden.
BR-009Centrale categorie-status kan invloed hebben op koppelbaarheid, maar historische beheercontext kan zichtbaar blijven waar functioneel nodig.
BR-010De afleiding mag geen leerlingautorisaties of relaties aanpassen.

10. Datavalidatie

Veld / objectValidatie
ActorContextMoet geldige docent- of leerlingcontext zijn.
LevelIdMoet bestaan en passen bij de actorcontext.
LevelCategoryMoet bij het niveau horen.
CategoryStatusWordt gelezen om koppelbaarheid en beheerweergave te bepalen.
Exercise.IsActiveMoet betrouwbaar de oefenbeschikbaarheid binnen de categorie bepalen.
StudentLevelAuthorizationMoet actief zijn voor leerlingzichtbaarheid in privéniveaus.
DerivedVisibilityWordt server-side berekend en niet door de client aangeleverd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
1-7ReadmodelCategoriegebruik en zichtbaarheidAfgeleid uit niveau-, categorie-, oefening- en autorisatiebrondata zonder domeinmutatie.
8Afgeleide cacheMaterialized readmodel of cacheAlleen afgeleide cache kan technisch worden ververst; de cache is geen bron van waarheid.

Deze usecase schrijft geen functioneel domeinevent. Foutafhandeling rond cacheverversing is technische logging en geen categorie- of zichtbaarheidsevent.

12. Geen datamutaties

EntiteitReden
CategoriesZichtbaarheidsafleiding wijzigt de centrale categorie niet.
LevelCategoriesKoppelingen worden gelezen, niet gewijzigd.
ExercisesOefenstatus wordt gelezen, niet gewijzigd.
TeacherStudentLevelAuthorizationsAutorisaties worden gelezen, niet gewijzigd.
UserRelationshipsRelaties worden gelezen waar nodig, niet gewijzigd.
SystemMessagesAfleiding van zichtbaarheid stuurt geen berichten.

13. State diagram

Niet van toepassing als persistent statusmodel. De zichtbaarheid is een afgeleide toestand uit bestaande brondata en geen zelfstandige statuskolom die handmatig beheerd wordt.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingAfleiding van zichtbaarheid is systeemlogica zonder gebruikersbevestiging.Geen domeinspecifieke popup nodig.

18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification

DoeldocumentAfleiding
Functioneel OntwerpBeschrijft dat categoriezichtbaarheid voor leerlingen wordt afgeleid uit actieve oefeningen binnen het actieve niveau.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus en autorisatie en contextcontrole beschrijven de technische uitwerking. Beschrijf afleiding uit LevelCategories, Exercises.IsActive en autorisatiecontext, inclusief optionele cache als afgeleide.
Software Requirements SpecificationNeem eisen op dat zichtbaarheid niet handmatig door docent wordt ingesteld en dat cache geen bron van waarheid is.
Database-informatieControleer dat geen aparte verplichte categoriezichtbaarheidstabel als bron nodig is.
OntwerpbronnenBeschrijven business rules over afgeleide zichtbaarheid en onderscheid tussen docentbeheer en leerlingnavigatie.

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-afleidingDektUsecasecontext
REQ-UC-DOC-AANB-008-001SRS-RDM-001
SRS-RDM-004
SRS-RDM-005
SRS-CAT-001
SRS-TCH-002
SRS-ADM-001
AC-RDM-001
AC-RDM-004
AC-RDM-005
AC-CAT-001
AC-TCH-002
AC-ADM-001
Categoriegebruik binnen docentbeheer afleiden uit niveau-categorie-koppelingen
REQ-UC-DOC-AANB-008-002SRS-RDM-001
SRS-RDM-005
SRS-ACC-003
SRS-ACC-005
SRS-CAT-006
SRS-LRN-005
AC-RDM-001
AC-RDM-005
AC-ACC-003
AC-ACC-005
AC-CAT-006
AC-LRN-005
Leerlingzichtbaarheid van categorieën afleiden uit actieve toegankelijke oefeningen binnen de niveaucontext
REQ-UC-DOC-AANB-008-003SRS-CAT-001
SRS-LRN-009
SRS-TCH-002
AC-CAT-001
AC-LRN-009
AC-TCH-002
Categoriezichtbaarheid voor leerlingen niet als vrije handmatige docentinstelling behandelen
REQ-UC-DOC-AANB-008-004SRS-CAT-001
SRS-LRN-009
SRS-TCH-002
SRS-ADM-001
AC-CAT-001
AC-LRN-009
AC-TCH-002
AC-ADM-001
Categorieën zonder actieve oefeningen wel in docentbeheer kunnen tonen
REQ-UC-DOC-AANB-008-005SRS-CAT-001
SRS-LRN-009
SRS-TCH-002
AC-CAT-001
AC-LRN-009
AC-TCH-002
Categorieën zonder actieve oefeningen verbergen voor leerlingen
REQ-UC-DOC-AANB-008-006SRS-AUTH-001
SRS-TCH-001
AC-AUTH-001
AC-TCH-001
De afleiding server-side uitvoeren op basis van brondata en autorisatiecontext
REQ-UC-DOC-AANB-008-007SRS-RDM-001
SRS-TCH-001
AC-RDM-001
AC-TCH-001
Afgeleide cachewaarden gebruiken zolang deze afgeleid en herbouwbaar blijven
REQ-UC-DOC-AANB-008-008SRS-AUTH-001
SRS-REL-001
SRS-CAT-001
SRS-LRN-005
SRS-TCH-002
AC-AUTH-001
AC-REL-001
AC-CAT-001
AC-LRN-005
AC-TCH-002
Door zichtbaarheidsafleiding geen relaties, autorisaties, oefeningen of categorieën wijzigen
REQ-UC-DOC-AANB-008-009SRS-RDM-001
SRS-RDM-005
SRS-CAT-001
SRS-TCH-002
AC-RDM-001
AC-RDM-005
AC-CAT-001
AC-TCH-002
Bij wijziging van oefenstatus de categoriezichtbaarheid opnieuw correct kunnen afleiden