UC-DOC-OEF-003 - Technische module selecteren
1. Kerngegevens
| Veld | Waarde |
|---|---|
| Usecase-ID | UC-DOC-OEF-003 |
| Naam | Technische module selecteren |
| Domein | Docent |
| Subdomein | Oefeningen configureren en testen |
| Primaire actor | Docent |
| Secundaire actor(en) | Systeem, technische module-interface |
| Rolcontext | Docentcontext met toegang tot het geselecteerde niveau |
| Betrokken schermen | Docent - Nieuwe oefening, modulekeuze, modulebeschrijving |
| Gerelateerde usecases | UC-DOC-OEF-002, UC-DOC-OEF-004, UC-DOC-OEF-008 |
| Primaire entiteiten | ExerciseModules |
| Secundaire entiteiten / events | Levels, LevelCategories, Categories, LevelCollaborators, Exercises |
| Gerelateerde popups | Niet van toepassing |
| Popupregister | Niet van toepassing |
| MoSCoW | Must |
2. Omschrijving
Deze usecase beschrijft hoe een docent tijdens het aanmaken van een nieuwe oefening één technische module selecteert. De module bepaalt welke oefenlogica en configuratievelden daarna beschikbaar zijn.
Beschikbare modules komen uit ExerciseModules. De docent kiest een functionele moduleweergave; technische implementatiedetails zoals CodeReference zijn niet vrij bewerkbaar.
Het selecteren van een module slaat nog geen oefening op. De selectie opent de passende modulespecifieke configuratieflow.
3. Scope
3.1 Binnen scope
- Tonen van selecteerbare technische modules.
- Filteren op actieve modules.
- Filteren op test-zichtbaarheid en TestDocent-context.
- Tonen van functionele module-informatie.
- Selecteren van precies één module.
- Server-side valideren van de modulekeuze.
- Openen van de modulespecifieke configuratieflow.
3.2 Buiten scope
- Technische module beheren.
- Modulemigratie uitvoeren.
- Configuratievelden invullen en opslaan.
- Oefening activeren.
- Oefening testen.
- Modulecompatibiliteit bewijzen.
- Leerlingresultaten bekijken of wijzigen.
- Relatie-uitnodigingen of docent-leerlingrelaties beheren.
- Account-, profiel- of toegankelijkheidsinstellingen wijzigen.
- Systeemnotificaties beheren of tonen.
- Centrale beheerderflows voor modules of categorieën uitvoeren.
4. Pre-condities
| ID | Voorwaarde |
|---|---|
| PRE-001 | De docent is ingelogd. |
| PRE-002 | De gebruiker heeft een actieve docentrol. |
| PRE-003 | Er is een geldig niveau geselecteerd. |
| PRE-004 | De docent heeft bewerkrechten binnen het niveau. |
| PRE-005 | Er is een categorie geselecteerd. |
| PRE-006 | De categorie is actief gekoppeld aan het niveau. |
| PRE-007 | De nieuwe-oefening-flow is geldig gestart. |
| PRE-008 | Er bestaat minimaal één selecteerbare module. |
| PRE-009 | Modulemetadata is beschikbaar. |
| PRE-010 | De module-interface kan voor configuratie worden aangesproken. |
5. Post-condities
| ID | Resultaat |
|---|---|
| POST-001 | De docent heeft één module gekozen. |
| POST-002 | De modulekeuze is server-side gevalideerd. |
| POST-003 | De configuratieflow voor de gekozen module is geopend. |
| POST-004 | Er is nog geen definitieve oefening opgeslagen. |
| POST-005 | Niet-toegestane modules zijn niet selecteerbaar. |
| POST-006 | De niveau- en categoriecontext blijft behouden. |
6. Trigger
Het systeem opent na de nieuwe-oefening-flow de stap waarin de docent een technische module moet kiezen.
De docent selecteert een modulekaart of lijstregel om de configuratiefase te starten.
7. Normale processtroom
| Stap | Actor | Scherm / component | Actie | Systeemrespons | Data / regel |
|---|---|---|---|---|---|
| 1 | Systeem | Modulekeuze | Laadt aanmaakcontext | Context wordt opnieuw gecontroleerd | LevelId, CategoryId |
| 2 | Systeem | Backend | Controleert bewerkrechten | Alleen bevoegde docent mag verder | LevelCollaborators |
| 3 | Systeem | Backend | Haalt modules op | Alleen actieve/selecteerbare modules | ExerciseModules |
| 4 | Systeem | Backend | Past testfilter toe | Testmodules alleen in testcontext | IsVisibleForTesting |
| 5 | Systeem | Frontend | Toont modulelijst | Docent ziet module-informatie | DisplayName, Version |
| 6 | Docent | Modulekeuze | Selecteert module | Selectie wordt naar backend gestuurd | ExerciseModuleId |
| 7 | Systeem | Backend | Valideert module opnieuw | Alleen geldige module wordt geaccepteerd | IsActive, testcontext |
| 8 | Systeem | Backend | Bepaalt configuratiecomponent | Module-interface wordt voorbereid | CodeReference |
| 9 | Systeem | Frontend | Opent configuratieflow | Docent kan configureren | UC-DOC-OEF-004 |
8. Alternatieve en exceptionele processtromen
| ID | Vanaf stap | Situatie | Systeemgedrag | Popup / melding | Datamutatie |
|---|---|---|---|---|---|
| ALT-001 | 1 | Aanmaakcontext ontbreekt | Leid terug naar oefeningoverzicht | Routeguard | Geen |
| ALT-002 | 2 | Geen bewerkrechten | Blokkeer modulekeuze | Toegangafhandeling | Geen |
| ALT-003 | 3 | Geen actieve modules | Toon dat aanmaken niet mogelijk is | Inline melding | Geen |
| ALT-004 | 4 | Alleen testmodules beschikbaar zonder testcontext | Toon geen selecteerbare modules | Inline melding | Geen |
| ALT-005 | 6 | Docent annuleert | Keer terug naar vorige stap | Geen popup | Geen |
| ALT-006 | 7 | Module is intussen inactief | Weiger selectie en herlaad lijst | Inline melding | Geen |
| ALT-007 | 8 | Module-interface faalt | Blokkeer configuratie en log technisch | Generieke foutafhandeling | Geen domeinmutatie |
9. Business rules
| ID | Regel |
|---|---|
| BR-001 | Een nieuwe concrete oefening verwijst uiteindelijk naar precies één ExerciseModules-record. |
| BR-002 | Alleen actieve modules zijn selecteerbaar voor normale oefeningen. |
| BR-003 | Testzichtbare modules zijn alleen beschikbaar in geldige testcontext. |
| BR-004 | CodeReference is technisch en niet vrij bewerkbaar door de docent. |
| BR-005 | Modulekeuze wordt pas persistent bij definitieve oefeningopslag. |
| BR-006 | Modulekeuze maakt niets zichtbaar voor leerlingen. |
| BR-007 | De backend valideert de gekozen module opnieuw. |
| BR-008 | Modulebeheer en modulemigratie horen niet in deze docentflow. |
| BR-009 | Configuratie-DTO en validatie blijven modulespecifiek. |
| BR-010 | Opslag en audit blijven generiek en centraal. |
10. Datavalidatie
| Veld / object | Validatie |
|---|---|
| ExerciseModuleId | Moet bestaand en selecteerbaar zijn. |
| ExerciseModule.IsActive | Moet waar zijn voor normale selectie. |
| IsVisibleForTesting | Alleen toegestaan binnen testcontext. |
| CodeReference | Wordt alleen technisch gebruikt. |
| DisplayName | Wordt getoond als functionele herkenning. |
| Version | Mag getoond worden ter herkenning. |
| Docentcontext | Moet bewerkrechten bevatten. |
| Module-interface | Moet aanspreekbaar zijn voor configuratie. |
11. Datamutaties en events
| Stap | Type | Entiteit / event | Mutatie |
|---|---|---|---|
| 1 | Read | Aanmaakcontext | Context wordt gecontroleerd. |
| 3 | Read | ExerciseModules | Modulelijst wordt gelezen. |
| 7 | Read | ExerciseModules | Gekozen module wordt gevalideerd. |
| 8 | Read | Module-interface | Configuratiecomponent wordt bepaald. |
12. Geen datamutaties
| Entiteit | Reden |
|---|---|
| Exercises | Nog geen opslag. |
| ExerciseHistory | Geen concrete wijziging. |
| ExerciseModules | Alleen lezen. |
| ModuleConfigurationJsonBase64 | Nog geen configuratie. |
| ExerciseRuns | Geen run. |
| SystemMessages | Geen communicatie. |
| StudentAuthorizations | Geen leerlingtoegang. |
13. State diagram
Geen zelfstandig statusmodel. De modulebeschikbaarheid wordt gelezen, maar niet gewijzigd.
14. Decision flow
15. Data lifecycle diagram
16. Sequence diagrammen
16.1 Module selecteren
16.2 Module niet beschikbaar
17. Popupverwijzingen
| PopupKey | Moment | Toelichting |
|---|---|---|
| Niet van toepassing | Deze usecase gebruikt geen domeinspecifieke popup. | Routeguard-, inline validatie- of componentafhandeling volstaat. |
18. Afleiding naar Functioneel Ontwerp / Technisch Ontwerp / Software Requirements Specification
| Doeldocument | Afleiding |
|---|---|
| Functioneel Ontwerp | Docent selecteert een functionele technische module bij nieuwe oefening. |
| Functioneel Ontwerp | Alleen beschikbare modules zijn zichtbaar. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. Modulelijst komt uit ExerciseModules en configuratie loopt via module-interface. |
| Technisch Ontwerp | Technisch Ontwerp: oefencatalogus, oefenmodulecontract, oefenruns en testuitvoering en background jobs beschrijven de technische uitwerking. CodeReference blijft technisch. |
| Software Requirements Specification | Inactieve modules zijn niet selecteerbaar. |
| Database | Geen nieuwe entiteiten; ExerciseModules blijft bron. |
| Oefenmodules | Moduleplatform en contract beschrijft het generieke modulecontract; Optellen & Aftrekken (simpel) is de eerste concrete module-uitwerking voor configuratie, states en payloads. |
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-DOC-OEF-003-001 | SRS-TCH-001 SRS-MOD-003 AC-TCH-001 AC-MOD-003 | Toon selecteerbare technische modules |
REQ-UC-DOC-OEF-003-002 | SRS-RDM-001 SRS-TCH-001 SRS-MOD-003 AC-RDM-001 AC-TCH-001 AC-MOD-003 | Filter op actieve modules |
REQ-UC-DOC-OEF-003-003 | SRS-RDM-001 SRS-TCH-005 SRS-MOD-003 AC-RDM-001 AC-TCH-005 AC-MOD-003 | Filter testmodules op testcontext |
REQ-UC-DOC-OEF-003-004 | SRS-AUTH-001 SRS-TCH-001 SRS-MOD-003 AC-AUTH-001 AC-TCH-001 AC-MOD-003 | Valideer modulekeuze server-side |
REQ-UC-DOC-OEF-003-005 | SRS-CAT-001 SRS-TCH-002 AC-CAT-001 AC-TCH-002 | Behoud niveau- en categoriecontext |
REQ-UC-DOC-OEF-003-006 | SRS-LRN-009 SRS-TCH-002 SRS-MOD-003 AC-LRN-009 AC-TCH-002 AC-MOD-003 | Sla nog geen definitieve oefening op door modulekeuze |
REQ-UC-DOC-OEF-003-007 | SRS-TCH-001 SRS-MOD-005 AC-TCH-001 AC-MOD-005 | Blokkeer oude selectie van niet meer beschikbare module |
REQ-UC-DOC-OEF-003-008 | SRS-TCH-001 AC-TCH-001 | Behandel CodeReference niet als docentinput |
REQ-UC-DOC-OEF-003-009 | SRS-TCH-001 AC-TCH-001 | Open configuratieflow na geldige keuze |
REQ-UC-DOC-OEF-003-010 | SRS-TCH-001 SRS-MOD-003 SRS-NFR-SEC-001 AC-TCH-001 AC-MOD-003 AC-NFR-SEC-001 | Handel module-interfacefouten veilig af |