Skip to main content

UC-LLN-DEL-005 — Ontvangen gedeelde oefening verwijderen

1. Kerngegevens

VeldWaarde
Usecase-IDUC-LLN-DEL-005
NaamOntvangen gedeelde oefening verwijderen
DomeinLeerling
SubdomeinGedeelde oefeningen
Primaire actorLeerling
Secundaire actor(en)OefenHub frontend, OefenHub backend, autorisatielaag, database
RolcontextIngelogde gebruiker met actieve leerlingrolcontext die ontvanger is van de gedeelde oefening.
Betrokken schermenOntvangen gedeelde oefeningen; verwijderbevestiging; lege of bijgewerkte overzichtstoestand.
Gerelateerde usecasesUC-LLN-DEL-002; UC-LLN-DEL-003; UC-LLN-DEL-004; UC-LLN-HIS-001; UC-LLN-HIS-004
Primaire entiteitenSharedExercises, Users, ExerciseRuns
Secundaire entiteiten / eventsOntvangerverwijdermarkering, SharedExerciseHiddenByRecipient
Gerelateerde popupsPOP-LLN-DEL-RECEIVED-DELETE-CONFIRM, POP-LLN-DEL-RECEIVED-DELETE-SUCCESS, POP-LLN-DEL-RECEIVED-DELETE-ERROR
PopupregisterCentrale bron; deze usecase verwijst uitsluitend naar PopupKey.
MoSCoWShould

2. Omschrijving

Deze usecase beschrijft hoe een leerling een ontvangen gedeelde oefening uit het eigen overzicht verwijdert. Verwijderen is een zichtbaarheidshandeling voor de ontvanger. Het verwijdert geen bronrun van de afzender, geen gedeelde-oefeningenhistorie en geen afgeronde ontvangerruns.

Na verwijderen verschijnt het item niet meer in het ontvangen gedeelde-oefeningenoverzicht van deze leerling. Eerder afgeronde ontvangerruns blijven via de normale geschiedenis beschikbaar.

3. Scope

3.1 Binnen scope

  • Verwijderactie tonen voor een ontvangen gedeelde oefening.
  • Bevestiging vragen voordat de zichtbaarheid wordt aangepast.
  • Server-side controleren dat de ingelogde leerling de ontvanger is.
  • Vastleggen van een ontvangergebonden verwijdermarkering.
  • Bijwerken van het overzicht na succesvolle verwerking.

3.2 Buiten scope

  • Hard verwijderen van gedeelde-oefeningenrecords.
  • Verwijderen van bronrun, ontvangerruns, resultaten of geschiedenis.
  • Intrekken van gedeelde oefeningen door de afzender.
  • Vriendschap beëindigen of wijzigen.
  • Mailboxbericht verwijderen.
  • Herstellen van een verwijderd ontvangen item.

4. Pre-condities

IDVoorwaarde
PRE-001De gebruiker is ingelogd met een actieve leerlingrolcontext.
PRE-002Het gedeelde record bestaat en is gericht aan de ingelogde leerling.
PRE-003Het item is nog zichtbaar in het ontvangen overzicht van de leerling.
PRE-004De leerling bevestigt de verwijderactie via de centrale popupafhandeling.

5. Post-condities

IDResultaat
POST-001Bij succes is het ontvangen item niet meer zichtbaar in het overzicht van de ontvanger.
POST-002De zichtbaarheidshandeling is herleidbaar naar de ontvanger en het tijdstip.
POST-003De bronrun van de afzender blijft ongewijzigd.
POST-004Eerdere ontvangerruns en afgeronde resultaten blijven behouden.
POST-005Relaties, uitnodigingen, profielgegevens en autorisaties blijven ongewijzigd.
POST-006Bij foutafhandeling blijft de bestaande zichtbaarheidstoestand intact.

6. Trigger

De leerling kiest Verwijderen bij een ontvangen gedeelde oefening in het eigen overzicht en bevestigt de actie.

7. Normale processtroom

StapActorScherm / componentActieSysteemresponsData / regel
1LeerlingOntvangen gedeelde oefeningenKiest Verwijderen.Frontend toont bevestigingspopup.POP-LLN-DEL-RECEIVED-DELETE-CONFIRM.
2LeerlingBevestigingspopupBevestigt verwijderen.Frontend stuurt verwijderverzoek.PRE-004.
3BackendAutorisatielaagControleert sessie en leerlingrol.Alleen ontvanger mag verwijderen.PRE-001.
4BackendDatabaseLaadt gedeeld record.Record moet bij ontvanger horen.PRE-002.
5BackendDatabaseControleert huidige zichtbaarheid.Alleen zichtbaar item wordt gemarkeerd.PRE-003.
6BackendDatabaseZet ontvangerverwijdermarkering.Item verdwijnt uit overzicht.POST-001, POST-002.
7BackendEvent/auditRegistreert zichtbaarheidshandeling.Verwerking is herleidbaar.SharedExerciseHiddenByRecipient.
8FrontendOverzichtVernieuwt lijst.Leerling ziet bijgewerkt overzicht.POST-001.

8. Alternatieve en exceptionele processtromen

IDVanaf stapSituatieSysteemgedragPopup / meldingDatamutatie
ALT-0011Leerling annuleert de bevestiging.Popup sluit en overzicht blijft ongewijzigd.Geen vervolgpopup vereist.Geen.
ALT-0023Gebruiker is geen leerling.Backend weigert toegang.Generieke toegangafhandeling.Geen.
ALT-0034Record bestaat niet of hoort niet bij de leerling.Backend blokkeert zonder data te lekken.POP-LLN-DEL-RECEIVED-DELETE-ERROR.Geen.
ALT-0045Item is al verwijderd uit overzicht.Backend behandelt de actie idempotent of toont veilige melding.Inline of succesafhandeling.Geen extra wijziging.
ALT-0056Databasefout tijdens markeren.Verwijdering wordt teruggedraaid.POP-LLN-DEL-RECEIVED-DELETE-ERROR.Zichtbaarheid blijft intact.
ALT-0068Overzicht verversen faalt na succesvolle markering.Verwijdermarkering blijft geldig; gebruiker kan bij opnieuw laden de juiste toestand zien.Generieke foutafhandeling.Markering blijft geldig.

9. Business rules

IDRegel
BR-001Alleen de ontvanger mag een ontvangen gedeelde oefening uit het eigen overzicht verwijderen.
BR-002Verwijderen is een ontvangergebonden zichtbaarheidshandeling.
BR-003Verwijderen voert geen hard delete uit op gedeelde-oefeningenrecords.
BR-004Verwijderen wijzigt de bronrun van de afzender niet.
BR-005Verwijderen wijzigt eerdere ontvangerruns, resultaten en geschiedenis niet.
BR-006Verwijderen beëindigt geen vriendschap en trekt geen toestemming of autorisatie in.
BR-007Een verwijderd ontvangen item telt niet meer mee in het ontvangen gedeelde-oefeningenoverzicht.
BR-008Afgeronde ontvangerruns blijven via geschiedenis vindbaar volgens de normale geschiedenisregels.

10. Datavalidatie

Veld / objectValidatie
SessiecontextBevat actief intern Users.Id en actieve leerlingrol.
SharedExerciseIdBestaat en is gekoppeld aan de ingelogde leerling als ontvanger.
VerwijderstatusItem is zichtbaar voor de ontvanger of de actie wordt veilig idempotent afgehandeld.
ActorWordt server-side uit sessie bepaald.
BevestigingKomt uit de centrale popupafhandeling; popuptekst wordt niet in de usecase beheerd.

11. Datamutaties en events

StapTypeEntiteit / eventMutatie
6UpdateSharedExercisesZet ontvangergebonden verwijdermarkering, bijvoorbeeld verwijdermoment en verwijderende ontvanger.
7Event/auditSharedExerciseHiddenByRecipientRegistreert dat de ontvanger het item uit het overzicht heeft verwijderd.

12. Geen datamutaties

EntiteitReden
Bronrun van afzenderBlijft ongewijzigd.
Eerdere ontvangerrunsBlijven historisch beschikbaar.
ExerciseRunProgressVoortgang wordt niet aangepast.
UserRelationshipsRelaties worden niet gewijzigd.
RelationshipInvitationsUitnodigingen vallen buiten deze flow.
SystemMessagesMailboxberichten worden niet verwijderd door deze actie.
UserSettingsVoorkeuren worden niet gewijzigd.

13. State diagram

14. Decision flow

15. Data lifecycle diagram

16. Sequence diagrammen

16.1 Ontvangen item verwijderen uit overzicht

16.2 Verwijderen geweigerd

17. Popupverwijzingen

PopupKeyMomentToepassing
POP-LLN-DEL-RECEIVED-DELETE-CONFIRMLeerling kiest Verwijderen.Bevestigt dat het item uit het eigen overzicht verdwijnt.
POP-LLN-DEL-RECEIVED-DELETE-SUCCESSVerwijdermarkering is opgeslagen.Bevestigt succesvolle verwerking.
POP-LLN-DEL-RECEIVED-DELETE-ERRORVerwijderen faalt of wordt geweigerd.Veilige foutafhandeling.

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

DoeldocumentAfleiding
Functioneel OntwerpGedeelde oefeningen beschrijft verwijderen/verbergen van ontvangen gedeelde oefeningen uit het leerlingoverzicht.
Technisch OntwerpOefenruns, voortgang, resultaten, statistieken en PDF-brondata beschrijft soft delete/verbergstatus zonder bronrun of ontvangerrun te verwijderen.
Technisch OntwerpReadmodels, tellers, badges, caching en materialisatie beschrijft uitsluiting uit readmodels en tellerherberekening.
Technisch OntwerpPrivacy, retentie, anonimisering en gegevensbescherming beschrijft historische context, soft links en retentiegrenzen.
Software Requirements SpecificationBorgt de centrale requirements voor verwijderen/verbergen, brondataretentie, autorisatie en veilige foutafhandeling.

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-DEL-005-001SRS-RDM-001
SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-RDM-001
AC-LRN-009
AC-SHR-004
AC-SHR-007
Een ontvangen gedeelde oefening uit het eigen overzicht kunnen verwijderen
REQ-UC-LLN-DEL-005-002SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-LRN-009
AC-SHR-004
AC-SHR-007
Voor verwijderen expliciete bevestiging vragen
REQ-UC-LLN-DEL-005-003SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-LRN-009
AC-SHR-004
AC-SHR-007
Verwijderen beperken tot de ontvanger van het gedeelde record
REQ-UC-LLN-DEL-005-004SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-LRN-009
AC-SHR-004
AC-SHR-007
Verwijderen uitvoeren als ontvangergebonden zichtbaarheidshandeling
REQ-UC-LLN-DEL-005-005SRS-LRN-010
SRS-SHR-003
SRS-NFR-AUD-001
AC-LRN-010
AC-SHR-003
AC-NFR-AUD-001
Bronrun, ontvangerruns en geschiedenis niet verwijderen
REQ-UC-LLN-DEL-005-006SRS-AUTH-001
SRS-REL-001
SRS-LRN-009
SRS-SHR-001
AC-AUTH-001
AC-REL-001
AC-LRN-009
AC-SHR-001
Vriendschap of autorisaties niet wijzigen door deze actie
REQ-UC-LLN-DEL-005-007SRS-RDM-001
SRS-LRN-009
SRS-SHR-004
SRS-SHR-007
AC-RDM-001
AC-LRN-009
AC-SHR-004
AC-SHR-007
Verwijderde items uitsluiten uit het ontvangen overzicht
REQ-UC-LLN-DEL-005-008SRS-LRN-009
SRS-SHR-001
SRS-NFR-AVL-001
AC-LRN-009
AC-SHR-001
AC-NFR-AVL-001
Foutafhandeling uitvoeren zonder bestaande zichtbaarheid ongecontroleerd te wijzigen