Skip to main content

UC-LLN-OEF-006 — Geen idee gebruiken

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-OEF-006
NaamGeen idee gebruiken
DomeinLeerling / Oefenen en voortgang
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, technische oefenmodule, database, SignalR-hub, popupcomponent
RolcontextIngelogde leerling met een lopende exercise run waarin AllowMarkAsDunno = true is voor de actuele vraagcontext.
Betrokken schermenOefenscherm, knop Geen idee, waarschuwingpopup, antwoordfeedbackcomponent, voortgangsindicator.
Gerelateerde usecasesUC-LLN-OEF-004 — Vraag beantwoorden; UC-LLN-OEF-005 — Antwoord tonen na bevestiging; UC-LLN-OEF-008 — Oefening afronden; UC-GEN-PROF-007 — Voorkeuren beheren
Primaire entiteitenExerciseRuns, ExerciseRunProgress, UserSettings, ExerciseModules
Secundaire entiteiten / eventsDunnoAnswerConfirmed, DunnoPreferenceStored, LiveViewProgressUpdated
Gerelateerde popupsPOP-LLN-OEF-DUNNO-WARNING
PopupregisterCentrale bron; deze usecase verwijst uitsluitend naar PopupKey.
MoSCoWMust

2. Omschrijving

Deze usecase beschrijft hoe een leerling tijdens een oefening de actie Geen idee gebruikt. Deze actie is alleen beschikbaar wanneer de oefenconfiguratie AllowMarkAsDunno = true toestaat. Met Geen idee geeft de leerling aan het antwoord niet te weten. Het systeem rekent de vraag functioneel als fout, toont het juiste antwoord en bewaart de markering zodat resultaten en statistieken kunnen tonen hoeveel vragen als Geen idee zijn gemarkeerd.

De eerste keer dat de leerling deze actie gebruikt, toont OefenHub een waarschuwing. In die waarschuwing kan de leerling annuleren of bevestigen. De leerling kan ook aangeven dat deze waarschuwing niet opnieuw getoond hoeft te worden. Die voorkeur wordt pas opgeslagen wanneer de leerling de Geen idee-actie bevestigt. Bij annuleren wordt de voorkeur niet opgeslagen en wordt de vraag niet als Geen idee verwerkt. Wanneer de leerling vóór het openen van de waarschuwing al een antwoord in het invoerveld had staan, blijft die zichtbare invoer lokaal beschikbaar zodat de leerling het antwoord kan aanpassen of alsnog regulier kan bevestigen; deze zichtbare invoer is geen definitieve server-side voortgangsmutatie. Wanneer de leerling vóór het openen van de waarschuwing al een antwoord in het invoerveld had staan, blijft die zichtbare invoer lokaal beschikbaar zodat de leerling het antwoord kan aanpassen of alsnog regulier kan bevestigen; deze zichtbare invoer is geen definitieve server-side voortgangsmutatie.

Deze usecase is bewust gescheiden van regulier antwoord geven. Een ingevuld antwoord mag wel bewaard worden als onderdeel van de vraagcontext, maar de resultaatstatus wordt door Geen idee altijd fout. Na bevestiging wordt het juiste antwoord getoond via de feedbackflow van UC-LLN-OEF-005.

DRY-afbakening: de algemene voorkeurenpagina is niet de bron voor deze waarschuwing tijdens de oefening. Deze usecase beschrijft alleen het opslaan van de verborgen voorkeur als gevolg van de bevestigde Geen idee-actie. De bredere voorkeurenstructuur blijft bij het profiel-/voorkeurendomein.

3. Scope

Deze usecase omvat wel:

  • tonen van de knop Geen idee wanneer configuratie dit toestaat
  • verwerken van de eerste waarschuwing voor Geen idee
  • annuleren van de Geen idee-actie zonder vraagmutatie
  • bevestigen van de Geen idee-actie
  • opslaan van de verborgen voorkeur om niet opnieuw te waarschuwen wanneer de leerling dit bij bevestiging kiest
  • opslaan van de vraag als beantwoord met Dunno = true
  • opslaan van eventueel reeds ingevuld antwoord als gegeven antwoord waar relevant
  • markeren van de vraag als fout
  • bijwerken van uniforme tellers voor fout en Geen idee
  • tonen van het juiste antwoord na bevestiging
  • publiceren van voortgang naar geautoriseerde live-meekijkers
  • voorkomen dat de actie beschikbaar is wanneer AllowMarkAsDunno = false

Deze usecase omvat niet:

  • regulier antwoord controleren zonder Geen idee
  • beheer van oefenconfiguratie
  • handmatig wijzigen van verborgen voorkeuren door beheerder
  • algemene voorkeurenpagina
  • berekenen van eindstatistieken na volledige afronding
  • tonen van resultaatpopup
  • PDF-export
  • relatiebeheer of berichten
  • live meekijken als actorflow

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is succesvol ingelogd als leerling.
PRE-002Er bestaat een lopende exercise run van deze leerling.
PRE-003De actuele vraag is nog niet definitief verwerkt.
PRE-004De oefenconfiguratie staat AllowMarkAsDunno = true toe.
PRE-005De juiste antwoordrepresentatie is via de modulecontext herleidbaar.
PRE-006UserSettings kan worden gelezen om te bepalen of de waarschuwing onderdrukt moet worden.
PRE-007De run is niet afgerond en niet geblokkeerd.

5. Post-condities

IDResultaat
POST-001Bij bevestiging is de vraag als Geen idee verwerkt en als fout geteld.
POST-002Bij bevestiging is de vraagvoortgang server-side opgeslagen.
POST-003Bij bevestiging zijn run-tellers voor fout en Geen idee bijgewerkt.
POST-004Bij bevestiging wordt de leerling naar antwoordfeedback geleid.
POST-005Bij annuleren is de vraag niet als Geen idee verwerkt; eventueel zichtbaar ingevuld antwoord blijft alleen als bewerkbare UI-invoer beschikbaar en is geen definitieve vraagmutatie.
POST-006Bij annuleren wordt de onderdrukvoorkeur niet opgeslagen.
POST-007Bij bevestiging met gekozen onderdrukking is de verborgen voorkeur opgeslagen.
POST-008De actie wijzigt geen relaties, autorisaties, berichten of meldingen.

6. Trigger

De usecase start wanneer een leerling in het oefenscherm op de actie Geen idee klikt voor de actuele vraag.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOefenschermBekijkt een vraag waarbij Geen idee beschikbaar is.Frontend toont de knop Geen idee.Alleen bij AllowMarkAsDunno = true.
2LeerlingOefenschermKlikt op Geen idee.Frontend vraagt de actuele waarschuwingstoestand op of gebruikt geladen instelling.UserSettings.
3OefenHub frontendPopupcomponentControleert of waarschuwing getoond moet worden.Bij eerste keer of niet-onderdrukt wordt waarschuwing getoond.Geen datamutatie.
4LeerlingWaarschuwingpopupBevestigt de actie.Frontend verstuurt bevestigde Geen idee-actie naar backend.Checkboxwaarde wordt meegestuurd indien aanwezig.
5OefenHub backendRouteguardControleert sessie, leerlingrol en eigenaar van de run.Alleen eigenaar mag verwerken.ExerciseRuns.UserId.
6OefenHub backendConfiguratiecontroleControleert AllowMarkAsDunno.Actie wordt alleen toegestaan als configuratie dit toestaat.Runconfiguratie.
7OefenHub backendVoortgangsserviceControleert of de vraag nog niet verwerkt is.Dubbele verwerking wordt voorkomen.Idempotentie.
8OefenHub backendModule-adapterHaalt juiste antwoordrepresentatie op.Juiste antwoord kan na bevestiging getoond worden.Modulecontext.
9OefenHub backendVoortgangsserviceSlaat vraag op met Dunno = true en resultaat fout.Vraag is administratief beantwoord.Eventueel ingevuld antwoord blijft bewaard.
10OefenHub backendRunserviceWerkt uniforme tellers bij.Fout en Geen idee worden verhoogd.Geen goed-teller.
11OefenHub backendInstellingenserviceSlaat onderdrukvoorkeur op indien leerling dit koos.Voorkeur wordt alleen na bevestiging opgeslagen.UserSettings.
12OefenHub backendDatabaseCommit voortgang en eventuele voorkeur transactioneel passend.Mutaties zijn duurzaam vastgelegd.Geen half verwerkte vraag.
13OefenHub backendSignalR-hubPubliceert voortgangsupdate.Geautoriseerde meekijkers zien actuele stand.Afgeleid uit opgeslagen voortgang.
14OefenHub frontendFeedbackcomponentToont juiste antwoord en foutstatus.Leerling ziet feedback volgens UC-LLN-OEF-005.Geen idee telt fout.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011AllowMarkAsDunno = falseKnop Geen idee wordt niet getoond of backend weigert actie.Niet van toepassing / componentmeldingGeen
ALT-0023Waarschuwing is eerder onderdruktPopup wordt overgeslagen en bevestigde actie wordt direct verwerkt.Niet van toepassingVraagmutatie bij verwerking
ALT-0034Leerling kiest annulerenPopup sluit; vraag blijft onbeantwoord. Eventueel eerder ingevulde invoer blijft zichtbaar in het antwoordveld zodat de leerling deze kan aanpassen of regulier kan bevestigen.Popup sluitGeen definitieve voortgangsmutatie
ALT-0044Leerling kiest annuleren met checkbox aangevinktCheckboxwaarde wordt genegeerd, omdat de actie niet bevestigd is.Popup sluitGeen
ALT-0055Sessie verlopenRouteguard stopt verwerking.Niet van toepassingGeen
ALT-0065Run hoort niet bij leerlingBackend weigert actie zonder details te lekken.ToegangafhandelingGeen
ALT-0076Configuratie staat Geen idee niet langer toeBackend weigert verwerking, ook als knop nog zichtbaar was.ComponentmeldingGeen
ALT-0087Vraag is al verwerktBackend geeft actuele opgeslagen toestand terug zonder tellerwijziging.Niet van toepassingGeen nieuwe mutatie
ALT-0098Juiste antwoordrepresentatie is niet beschikbaarBackend verwerkt vraag niet als feedback niet veilig kan worden opgebouwd.ComponentmeldingGeen
ALT-01011Voorkeur opslaan faalt, maar vraagverwerking slaagt niet transactioneel samenSysteem rolt terug of kiest expliciete veilige foutafhandeling volgens transactieontwerp.ComponentmeldingGeen gedeeltelijke mutatie
ALT-01113SignalR-update faaltVraag blijft verwerkt; live-updatefout wordt technisch gelogd.Niet van toepassingVraagmutatie blijft geldig
ALT-01214Laatste vraag is via Geen idee verwerktFeedback toont daarna Bekijk resultaat als vervolgactie.Niet van toepassingVraagmutatie is opgeslagen

9. Business rules

IDRegel
BR-001Geen idee is alleen beschikbaar wanneer AllowMarkAsDunno = true.
BR-002Een bevestigde Geen idee-actie rekent de vraag altijd als fout.
BR-003Een bevestigde Geen idee-actie markeert de vraag met Dunno = true.
BR-004Een eventueel reeds ingevuld antwoord mag worden bewaard, maar verandert de fouttelling niet.
BR-005De eerste waarschuwing wordt getoond zolang de verborgen onderdrukvoorkeur niet actief is.
BR-006De onderdrukvoorkeur wordt alleen opgeslagen wanneer de leerling de Geen idee-actie bevestigt.
BR-007Bij annuleren ontstaat geen vraagmutatie en geen voorkeurmutatie; eerder zichtbare invoer mag in het antwoordveld blijven staan zolang dit uitsluitend lokale, bewerkbare UI-state is.
BR-008Na bevestiging wordt het juiste antwoord getoond, ongeacht ShowAnswerAfterSubmit.
BR-009Een vraag mag niet dubbel als Geen idee meetellen.
BR-010De Geen idee-actie wijzigt geen relaties, autorisaties, berichten of meldingen.
BR-011Live-meekijkers zien alleen de afgeleide voortgang waarvoor zij geautoriseerd zijn.
BR-012De juiste antwoordrepresentatie wordt veilig via de modulecontext opgebouwd.
BR-013De waarschuwingstekst en knopteksten worden niet in de usecase gedupliceerd, maar horen bij het popupregister.
BR-014De verborgen voorkeur is gebruikersgebonden en geen oefenrunresultaat.
BR-015Geen idee-tellingen worden naast fouttellingen bewaard zodat resultaten het aantal gemarkeerde vragen kunnen tonen.

10. Datavalidatie

Veld / objectValidatie
ExerciseRunIdMoet bestaan, bij de leerling horen en lopend zijn.
VraagnummerMoet verwijzen naar de actuele of toegestane vraag binnen de run.
AllowMarkAsDunnoMoet waar zijn op basis van de runconfiguratie.
VraagstatusMag nog niet definitief verwerkt zijn.
Checkbox onderdrukvoorkeurWordt alleen verwerkt bij bevestiging.
Gegeven antwoordMag als context worden opgeslagen wanneer al ingevuld en veilig representabel.
Juiste antwoordrepresentatieMoet uit modulecontext komen en veilig renderbaar zijn.
TellersDunno verhoogt ook fout, maar niet goed.
ClientstateMag de server-side configuratie of vraagstatus niet overrulen.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
9MutatieExerciseRunProgressVraag wordt opgeslagen met Dunno = true, resultaat fout en afrondtijd.
9MutatieModulepayloadModulespecifieke voortgang wordt bijgewerkt waar nodig.
10MutatieExerciseRunsUniforme tellers voor fout en Geen idee worden bijgewerkt.
11MutatieUserSettingsVerborgen voorkeur voor het onderdrukken van de waarschuwing wordt opgeslagen wanneer de leerling dit bij bevestiging kiest.
12EventDunnoAnswerConfirmedGeen idee is succesvol verwerkt.
12EventDunnoPreferenceStoredOnderdrukvoorkeur is opgeslagen nadat de bevestigde actie daarom vroeg.
13EventLiveViewProgressUpdatedGeautoriseerde meekijkers kunnen voortgang ontvangen.

12. Geen datamutaties

EntiteitReden
UsersDe accountidentiteit wijzigt niet.
UserRolesRollen wijzigen niet.
StudentLevelAuthorizationsToegang wordt alleen gecontroleerd.
UserRelationshipsRelaties wijzigen niet.
PrivateMessageThreadsEr ontstaat geen privébericht.
SystemMessagesEr ontstaat geen systeembericht.
TicketsEr ontstaat geen melding.
LiveViewAuditDe meekijksessie zelf wordt niet gestart of beëindigd.
TicketHistoryGeen ticketactie.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Eerste keer Geen idee bevestigen

16.2 Geen idee annuleren

16.3 Onderdrukte waarschuwing

17. Popupverwijzingen

PopupKeyMomentDoel
POP-LLN-OEF-DUNNO-WARNINGEerste of niet-onderdrukte klik op Geen ideeWaarschuwt dat het antwoord direct getoond wordt en de vraag fout telt; kan een onderdrukvoorkeur bevatten.

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

DoeldocumentAfleiding
Functioneel OntwerpFunctioneel Ontwerp beschrijft starten, hervatten, beantwoorden, Geen idee, onderbreken, afronden en resultaatnavigatie binnen de leerling-oefenflow.
Technisch OntwerpTechnisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en voortgang, live meekijken en frontend-oefencontext beschrijft de technische afbakening, server-side brondata, autorisatie en UI-compositie voor deze usecase. identiteit en gebruikersinstellingen beschrijft de opslag van de onderdrukvoorkeur in UserSettings.
Software Requirements SpecificationSoftware Requirements Specification bevat centrale eisen en acceptatiecriteria voor oefenruns, voortgangsopslag, modulegedrag, foutafhandeling en veilige server-side verwerking.
Database-informatieDatabase-informatie blijft bron voor ExerciseRuns, ExerciseRunProgress, payloadvelden, snapshots en soft links richting gebruiker en catalogus.
OntwerpbronnenOntwerpbronnen bevatten aanvullende businessregels voor oefenflow, modulepayloads, Geen idee en voortgangsregistratie.

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-LLN-OEF-006-001SRS-LRN-004
AC-LRN-004
De actie Geen idee alleen beschikbaar maken wanneer AllowMarkAsDunno = true
REQ-UC-LLN-OEF-006-002SRS-LRN-004
AC-LRN-004
Een bevestigde Geen idee-actie als fout tellen
REQ-UC-LLN-OEF-006-003SRS-LRN-004
SRS-NFR-AUD-001
AC-LRN-004
AC-NFR-AUD-001
Een bevestigde Geen idee-actie met Dunno = true vastleggen
REQ-UC-LLN-OEF-006-004SRS-LRN-004
AC-LRN-004
Het aantal Geen idee-markeringen afzonderlijk kunnen tellen
REQ-UC-LLN-OEF-006-005SRS-LRN-003
AC-LRN-003
Na bevestigde Geen idee-actie het juiste antwoord tonen
REQ-UC-LLN-OEF-006-006SRS-ACC-003
SRS-RDM-008
SRS-LRN-009
AC-ACC-003
AC-RDM-008
AC-LRN-009
De eerste waarschuwing tonen zolang de onderdrukvoorkeur niet actief is
REQ-UC-LLN-OEF-006-007SRS-LRN-009
AC-LRN-009
Annuleren toestaan zonder vraagmutatie
REQ-UC-LLN-OEF-006-008SRS-ACC-003
SRS-RDM-008
SRS-LRN-009
AC-ACC-003
AC-RDM-008
AC-LRN-009
De onderdrukvoorkeur niet opslaan wanneer de leerling annuleert
REQ-UC-LLN-OEF-006-009SRS-ACC-003
SRS-RDM-008
SRS-LRN-009
AC-ACC-003
AC-RDM-008
AC-LRN-009
De onderdrukvoorkeur alleen opslaan na bevestigde actie
REQ-UC-LLN-OEF-006-010SRS-LRN-003
SRS-NFR-SEC-001
AC-LRN-003
AC-NFR-SEC-001
Een eventueel ingevuld antwoord veilig kunnen bewaren zonder de fouttelling te wijzigen
REQ-UC-LLN-OEF-006-011SRS-LRN-004
AC-LRN-004
Dubbele Geen idee-verwerking voorkomen
REQ-UC-LLN-OEF-006-012SRS-LRN-009
AC-LRN-009
Vóór verwerking controleren dat de run bij de leerling hoort
REQ-UC-LLN-OEF-006-013SRS-LRN-009
AC-LRN-009
Vóór verwerking controleren dat de vraag nog niet verwerkt is
REQ-UC-LLN-OEF-006-014SRS-LRN-009
AC-LRN-009
Vóór verwerking controleren dat de run niet afgerond is
REQ-UC-LLN-OEF-006-015SRS-LRN-003
SRS-MOD-003
AC-LRN-003
AC-MOD-003
De juiste antwoordrepresentatie via de modulecontext verkrijgen
REQ-UC-LLN-OEF-006-016SRS-AUTH-001
SRS-LRN-003
SRS-LIVE-002
AC-AUTH-001
AC-LRN-003
AC-LIVE-002
Geautoriseerde live-meekijkers kunnen informeren na opgeslagen Geen idee-voortgang
REQ-UC-LLN-OEF-006-017SRS-LRN-009
SRS-LIVE-001
SRS-NFR-AVL-001
AC-LRN-009
AC-LIVE-001
AC-NFR-AVL-001
Een live-updatefout niet behandelen als mislukte vraagopslag
REQ-UC-LLN-OEF-006-018SRS-LRN-004
SRS-SHR-001
SRS-NFR-LOG-001
AC-LRN-004
AC-SHR-001
AC-NFR-LOG-001
Bij technische fouten voorkomen dat gedeeltelijke Geen idee-mutaties definitief zichtbaar worden
REQ-UC-LLN-OEF-006-019SRS-LRN-004
AC-LRN-004
Geen idee-feedback kunnen tonen ongeacht ShowAnswerAfterSubmit
REQ-UC-LLN-OEF-006-020SRS-LRN-009
SRS-POP-001
AC-LRN-009
AC-POP-001
De popuptekst en knopteksten centraal via het popupregister beheren
REQ-UC-LLN-OEF-006-021SRS-AUTH-001
SRS-LRN-009
AC-AUTH-001
AC-LRN-009
Bij onderdrukte waarschuwing de actie nog steeds server-side valideren
REQ-UC-LLN-OEF-006-022SRS-AUTH-001
SRS-REL-001
SRS-MSG-001
SRS-TIC-002
SRS-LRN-004
AC-AUTH-001
AC-REL-001
AC-MSG-001
AC-TIC-002
AC-LRN-004
Bij Geen idee geen relaties, autorisaties, berichten of meldingen wijzigen
REQ-UC-LLN-OEF-006-023SRS-LRN-004
AC-LRN-004
Bij verlopen sessie geen Geen idee-mutatie opslaan
REQ-UC-LLN-OEF-006-024SRS-AUTH-001
SRS-AUTH-004
SRS-ACC-003
SRS-ACC-005
SRS-LRN-009
SRS-NFR-ACC-001
AC-AUTH-001
AC-AUTH-004
AC-ACC-003
AC-ACC-005
AC-LRN-009
AC-NFR-ACC-001
Bij niet-toegankelijke run de actie blokkeren zonder details te lekken
REQ-UC-LLN-OEF-006-025SRS-LRN-004
SRS-NFR-AUD-001
AC-LRN-004
AC-NFR-AUD-001
De Geen idee-markering beschikbaar maken voor resultaatweergave en geschiedenis
REQ-UC-LLN-OEF-006-026SRS-LRN-003
AC-LRN-003
Een bevestigde Geen idee-vraag administratief als beantwoord behandelen
REQ-UC-LLN-OEF-006-027SRS-LRN-009
AC-LRN-009
Bij annuleren de leerling terugbrengen naar de vraag zonder opgeslagen Dunno-status
REQ-UC-LLN-OEF-006-028SRS-ACC-003
SRS-RDM-008
SRS-LRN-006
AC-ACC-003
AC-RDM-008
AC-LRN-006
De onderdrukvoorkeur als gebruikersinstelling behandelen en niet als runresultaat
REQ-UC-LLN-OEF-006-029SRS-RDM-001
SRS-RDM-002
SRS-RDM-009
SRS-LRN-004
AC-RDM-001
AC-RDM-002
AC-RDM-009
AC-LRN-004
Geen idee-tellers consistent houden met de fouttellers
REQ-UC-LLN-OEF-006-030SRS-LRN-004
AC-LRN-004
Bij de laatste vraag na Geen idee naar de afrondflow kunnen routeren
REQ-UC-LLN-OEF-006-031SRS-LRN-004
AC-LRN-004
Bij refresh na bevestigde Geen idee-actie de opgeslagen feedbacktoestand kunnen reconstrueren
REQ-UC-LLN-OEF-006-032SRS-AUTH-001
SRS-AUTH-002
SRS-LRN-009
AC-AUTH-001
AC-AUTH-002
AC-LRN-009
Bij clientstate die de knop onterecht toont alsnog server-side blokkeren wanneer configuratie dit niet toestaat