Skip to main content

UC-DOC-AANB-004 — Niveaukerngegevens wijzigen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-DOC-AANB-004
NaamNiveaukerngegevens wijzigen
DomeinDocent
SubdomeinOefenaanbod, niveaus en categorieën
Primaire actorDocent
Secundaire actor(en)Systeem
RolcontextIngelogde gebruiker met actieve rol Docent, als actuele eigenaar van het niveau
Betrokken schermenOefenaanbod, niveaukerngegevens, formulier niveau bewerken
Gerelateerde usecasesUC-DOC-AANB-002 — Niveau selecteren; UC-DOC-AANB-003 — Nieuw niveau aanmaken; UC-DOC-SAM-005 — Eigenaarschap overdragen
Primaire entiteitenLevels
Secundaire entiteiten / eventsLevelHistory, LevelCollaborators, StudentLevelAuthorizations
Gerelateerde popupsNiet van toepassing; inline validatie
PopupregisterNiet van toepassing
MoSCoWShould

2. Omschrijving

Deze usecase beschrijft hoe een docent de kerngegevens van een bestaand niveau wijzigt.

Kerngegevens zijn gegevens die de identiteit en basiswerking van het niveau bepalen, zoals naam, beschrijving en zichtbaarheid. Omdat een niveau de onderwijscontext vormt voor categorieën, oefeningen, leerlingautorisaties en samenwerking, mag wijziging van kerngegevens alleen plaatsvinden door de actuele eigenaar van het niveau. Collaborators mogen binnen het niveau aan categorieën, oefeningen en configuraties werken, maar krijgen niet automatisch recht om de kerngegevens of zichtbaarheid van het niveau te wijzigen.

De usecase wijzigt geen categorieën, oefeningen, leerlingtoegang of collaborators. Die onderdelen blijven in aparte usecases bronhoudend.

3. Scope

Binnen scope:

  • openen van de bewerkmodus voor niveaukerngegevens;
  • controleren of de docent actuele eigenaar is;
  • wijzigen van naam, beschrijving en zichtbaarheid;
  • server-side valideren van wijzigingen;
  • opslaan van gewijzigde niveaukerngegevens;
  • vastleggen van wijzigingsmetadata en history;
  • opnieuw laden van de niveaucontext.

Buiten scope:

  • eigenaarschap overdragen;
  • collaborators beheren;
  • categorieën koppelen of ontkoppelen;
  • oefeningen aanmaken of wijzigen;
  • leerlingautorisaties beheren;
  • centrale categorie-identiteit aanpassen;
  • beheerderondersteuning;
  • frontpagecontent aanpassen.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd met actieve docentrol.
PRE-002Er is een niveau geselecteerd als actuele context.
PRE-003De gebruiker is actuele eigenaar van het niveau.
PRE-004Het niveau bestaat en is niet administratief verwijderd of ongeldig.
PRE-005De bewerkactie is zichtbaar of bereikbaar volgens autorisatieregels.
PRE-006Invoer wordt server-side gevalideerd.
PRE-007Wijzigingsmetadata kan worden vastgelegd.
PRE-008Eventuele leerlingtoegang wordt niet impliciet gewijzigd door het wijzigen van kerngegevens.

5. Post-condities

IDResultaat
POST-001De niveaukerngegevens zijn gewijzigd of ongewijzigd gebleven bij annuleren/fout.
POST-002De wijziging is alleen opgeslagen wanneer de docent actuele eigenaar was.
POST-003UpdatedByUserId en UpdatedAtUtc zijn bijgewerkt bij succesvolle wijziging.
POST-004De wijziging is auditbaar of historisch herleidbaar.
POST-005Bestaande categorieën en oefeningen blijven gekoppeld.
POST-006Bestaande leerlingautorisaties blijven bestaan, maar hun effect kan door zichtbaarheid en toegangsregels worden beïnvloed.
POST-007Bestaande collaborators blijven ongewijzigd.
POST-008De pagina toont de actuele niveaugegevens na opslaan.
POST-009Er zijn geen systeemberichten verstuurd door alleen niveaukerngegevens te wijzigen.

6. Trigger

De usecase start wanneer de actuele eigenaar van een niveau binnen Oefenaanbod kiest voor het wijzigen van niveaukerngegevens.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1DocentOefenaanbodOpent geselecteerd niveau.Systeem toont niveaukerngegevens.UC-DOC-AANB-002.
2DocentNiveaukerngegevensKiest bewerken.Systeem controleert eigenaarschap.Alleen actuele eigenaar.
3SysteemApplicatieserviceValideert bewerkrecht.Bewerken toegestaan.Levels.OwnerUserId.
4DocentFormulierWijzigt naam.Invoer wordt lokaal in het formulier bijgehouden.Naamvalidatie volgt server-side.
5DocentFormulierWijzigt beschrijving.Invoer wordt lokaal in het formulier bijgehouden.Veilige tekst.
6DocentFormulierWijzigt zichtbaarheid.Keuze Open of Privé wordt aangeboden.Visibility.
7DocentFormulierSlaat op.Systeem valideert input server-side.Validatie.
8SysteemApplicatieserviceSlaat wijzigingen op.Levels wordt bijgewerkt.UpdatedAtUtc, UpdatedByUserId.
9SysteemApplicatieserviceLegt history vast.Wijzigingen zijn herleidbaar.LevelHistory of audit.
10SysteemOefenaanbodLaadt actuele niveaucontext.Nieuwe kerngegevens worden getoond.Readmodel.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0012Gebruiker is collaborator maar geen eigenaar.Bewerken van kerngegevens wordt geblokkeerd.Inline of toegangafhandeling.Geen.
ALT-0023Eigenaarschap is intussen overgedragen.Bewerking wordt geweigerd.Inline melding.Geen.
ALT-0037Naam ontbreekt.Opslaan wordt geblokkeerd.Inline validatie.Geen.
ALT-0047Zichtbaarheid onbekend.Opslaan wordt geblokkeerd.Inline validatie.Geen.
ALT-0057Beschrijving bevat onveilige inhoud.Opslaan wordt geblokkeerd of inhoud wordt veilig verwerkt.Inline validatie.Geen of gesanitized.
ALT-0068Gelijktijdige wijziging door eigenaar of beheerder.Systeem detecteert conflict of overschrijft volgens concurrencyregel.Inline melding.Geen of gecontroleerde update.
ALT-0078Opslagfout.Transactie wordt teruggedraaid.Inline foutmelding.Geen gedeeltelijke update.
ALT-0086Zichtbaarheid wijzigt van open naar privé.Bestaande autorisaties blijven, maar nieuwe leerlingtoegang volgt privéniveauregels.Inline toelichting aanbevolen.Levels.Visibility gewijzigd.
ALT-0096Zichtbaarheid wijzigt van privé naar open.Niveau kan breder beschikbaar worden volgens open-niveau-regels.Inline toelichting aanbevolen.Levels.Visibility gewijzigd.
ALT-0101Docent annuleert.Formulier sluit zonder wijziging.Niet van toepassing.Geen.

9. Business rules

IDRegel
BR-001Alleen de actuele eigenaar mag niveaukerngegevens wijzigen.
BR-002Een actieve collaborator mag categorieën en oefeningen binnen niveau beheren waar toegestaan, maar niet automatisch niveaukerngegevens wijzigen.
BR-003Naam en zichtbaarheid zijn kerngegevens van een niveau.
BR-004Wijziging van zichtbaarheid verandert geen bestaande relaties.
BR-005Wijziging van zichtbaarheid maakt geen leerlingautorisaties aan of ongedaan.
BR-006Een privé-niveau blijft afhankelijk van expliciete leerlingautorisaties.
BR-007Een open niveau wordt volgens open-niveau-regels beschikbaar, maar alleen actieve oefeningen zijn relevant voor leerlingweergave.
BR-008Wijzigingen moeten auditbaar zijn.
BR-009Wijziging van niveaukerngegevens verstuurt standaard geen systeembericht.
BR-010De eigenaar mag niet via dit formulier worden gewijzigd; dat hoort bij eigendomsoverdracht.
BR-011Kerngegevens wijzigen geen categorie-identiteit.
BR-012Kerngegevens wijzigen geen technische module of oefenconfiguratie.
BR-013De wijziging wordt server-side gevalideerd, ook wanneer de UI al beperkingen toont.
BR-014Een oude bewerkpagina mag geen wijziging opslaan wanneer de gebruiker intussen geen eigenaar meer is.
BR-015History moet minimaal actor, tijdstip, gewijzigd veld en oude/nieuwe waarde kunnen reconstrueren wanneer relevant.

10. Datavalidatie

Veld / objectValidatie
LevelIdMoet bestaan en eigendom zijn van de huidige docent.
NaamVerplicht, niet leeg, veilige tekst.
BeschrijvingVeilige tekst, lengte volgens de geldende SRS-grens.
ZichtbaarheidAlleen toegestane waarden Open en Private.
OwnerUserIdMag niet via dit formulier worden gewijzigd.
UpdatedByUserIdWordt server-side gezet op huidige docent.
UpdatedAtUtcWordt server-side in UTC gezet.
ConcurrencySysteem moet kunnen omgaan met gewijzigde of verouderde data.
FormulierinputGeen actieve HTML of scriptinhoud.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
8UpdateLevelsNaam, beschrijving en/of zichtbaarheid worden gewijzigd.
8AuditveldenLevelsUpdatedByUserId en UpdatedAtUtc worden bijgewerkt.
9AuditLevelHistory / auditOude en nieuwe waarden worden historisch vastgelegd.
9EventTeacherLevelCoreDataChangedDomeinevent voor wijziging van niveaukerngegevens.
10ReadOefenaanbodreadmodelGewijzigde niveaucontext wordt opnieuw geladen.

12. Geen datamutaties

EntiteitReden
LevelCollaboratorsCollaborators worden niet gewijzigd.
StudentLevelAuthorizationsLeerlingautorisaties blijven staan.
LevelCategoryLinksCategorieën blijven gekoppeld.
ExercisesOefeningen blijven ongewijzigd.
UserRelationshipsRelaties worden niet aangepast.
SystemMessagesGeen bericht door standaard kerngegevenswijziging.
ExerciseRunsHistorische runs blijven ongewijzigd.
FrontpageContentFrontpagebeheer staat los van niveaukerngegevens.

13. State diagram

Niet van toepassing als persistent statusmodel.

De zichtbaarheid Open of Privé is een eigenschap van het niveau, maar geen lifecycle-statusobject met eigen overgangsmodel. De wijziging van zichtbaarheid is wel een domeinmutatie en moet auditbaar zijn.

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Niveaukerngegevens wijzigen

16.2 Collaborator probeert kerngegevens te wijzigen

17. Popupverwijzingen

PopupKeyMomentDoel
Niet van toepassingKerngegevens wijzigenDeze usecase gebruikt inline validatie en routeguard-afhandeling.

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

DoeldocumentAfleiding
Functioneel OntwerpVastleggen dat de eigenaar niveaukerngegevens zoals naam, beschrijving en zichtbaarheid kan wijzigen.
Functioneel OntwerpVastleggen dat collaborators niet automatisch niveaukerngegevens mogen wijzigen.
Technisch OntwerpAutorisatie, policies en server-side contextcontrole beschrijft de owner-/docentcontextcontrole vóór wijziging.
Technisch OntwerpOefencatalogus, niveaus, categorieën, oefeningen en modules beschrijft audit/history van wijzigingen aan niveaukerngegevens.
Software Requirements SpecificationBeschrijft dat alleen actuele eigenaar kerngegevens mag wijzigen.
Software Requirements SpecificationBeschrijft dat zichtbaarheid alleen toegestane waarden mag hebben.
Database-informatieLevels en LevelHistory/audit sluiten aan op de database-informatiebaseline.
OntwerpbronnenBusiness rules en command/event-register bevatten de bijbehorende regels, command en events.

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-004-001SRS-CAT-001
SRS-TCH-002
AC-CAT-001
AC-TCH-002
Niveaukerngegevens alleen wijzigbaar maken voor de actuele eigenaar van het niveau
REQ-UC-DOC-AANB-004-002SRS-AUTH-001
SRS-CAT-001
SRS-TCH-006
AC-AUTH-001
AC-CAT-001
AC-TCH-006
Collaborators blokkeren voor het wijzigen van niveaukerngegevens tenzij een aparte ontwerpregel dit expliciet toestaat
REQ-UC-DOC-AANB-004-003SRS-AUTH-001
SRS-TCH-001
AC-AUTH-001
AC-TCH-001
Wijzigingen aan naam, beschrijving en zichtbaarheid server-side valideren
REQ-UC-DOC-AANB-004-004SRS-TCH-001
AC-TCH-001
Alleen toegestane zichtbaarheidwaarden accepteren
REQ-UC-DOC-AANB-004-005SRS-TCH-001
AC-TCH-001
UpdatedByUserId en UpdatedAtUtc bij succesvolle wijziging bijwerken
REQ-UC-DOC-AANB-004-006SRS-CAT-001
SRS-TCH-002
SRS-NFR-AUD-001
AC-CAT-001
AC-TCH-002
AC-NFR-AUD-001
Wijzigingen aan niveaukerngegevens auditbaar vastleggen
REQ-UC-DOC-AANB-004-007SRS-AUTH-001
SRS-CAT-001
SRS-LRN-009
SRS-TCH-006
AC-AUTH-001
AC-CAT-001
AC-LRN-009
AC-TCH-006
Bij wijziging van kerngegevens geen categorieën, oefeningen, leerlingautorisaties of collaborators wijzigen
REQ-UC-DOC-AANB-004-008SRS-TCH-007
AC-TCH-007
Eigenaarschap niet via het kerngegevensformulier wijzigen
REQ-UC-DOC-AANB-004-009SRS-AUTH-001
SRS-TCH-001
SRS-GUA-001
SRS-NFR-SEC-001
AC-AUTH-001
AC-TCH-001
AC-GUA-001
AC-NFR-SEC-001
Verouderde of ongeautoriseerde bewerkpogingen veilig blokkeren
REQ-UC-DOC-AANB-004-010SRS-CAT-006
SRS-TCH-002
AC-CAT-006
AC-TCH-002
Na succesvolle wijziging de actuele niveaucontext tonen