Ho una domanda su un problema che mi sembra sempre di incontrare durante la creazione di un modello di dominio. Il problema sorge ogni volta che un oggetto dominio viene utilizzato in quello che sto chiamando uno scenario di "offerta" e in uno scenario di "utilizzo". Ad esempio, prendiamo una piccola scuola.
Questa scuola offre programmi di studio. Ogni programma richiede che uno studente si iscriva e completi un certo numero di lezioni di un certo tipo. In altre parole, un programma può richiedere 2 classi di tipo "educazione generale" e un tipo "matematica". Ecco il modello di dominio per questo:
Questoètuttobenefinora.Ora,consideriamolostudentechesiiscriveaquestoprogramma.Lostudentehalapossibilitàdisceglieretra2classidi"educazione generale" e una classe di "matematica". Una volta selezionate queste classi, devono essere associate al programma in cui è iscritto lo studente. Ecco un modello di dominio per questo:
Entrambiquestimodellididominiosembranosoddisfacenti.Tuttavia,quandoliaggiungiinsiemeottieniqualcosachenonèaffattochiaro.Ottieniquantosegue:
Questo è fonte di confusione perché non puoi dire quali relazioni si applicano a quale scenario ("offerta" o "utilizzo", in altre parole, i programmi offerti e quelli in cui uno studente si è iscritto). Sembrano programmi che le offerte scolastiche potrebbero già avere classi selezionate. In alternativa potresti pensare che anche dopo che uno studente è iscritto in una classe ci sono ancora delle opzioni di classe.
C'è un modo generale per affrontare questo problema? Trovo che si presenti nella maggior parte delle aziende e quindi nei progetti software. Ci sono "schemi" di modellazione del dominio per cose come questa?
Grazie per l'aiuto che può essere fornito.