Stai cercando un aiuto generale con la progettazione di modelli per la tua affermazione sul problema. Dal momento che questo sito Web non è un servizio di progettazione generica, non abbiamo intenzione di fare un progetto per te. Ma forse possiamo almeno dare qualche consiglio generale e fornire critiche costruttive per la tua affermazione sul problema (e il design attuale, se ne hai uno).
La modellazione viene effettuata identificando i concetti (tipi) e le loro relazioni (associazioni). Inoltre, possiamo aggiungere vincoli che impediscono il verificarsi di alcune cose indesiderate, i limiti possono variare dagli intervalli di cardinalità richiesti più semplici nelle relazioni, alle espressioni generali di ciò che è e non è consentito.
Un modello è, per definizione, un'astrazione; l'astrazione è l'omissione di dettagli irrilevanti per il dominio del problema e per l'utilizzo finale del modello. Per sapere cosa modellare e cosa non modellare, devi capire come verrà creato e utilizzato il modello.
Parte A
La mia preferenza è quella di modellare anche le entità più semplici come concetti / oggetti piuttosto che come attributi, per i principianti e successivamente come ottimizzazione, le entità refactoring in attributi quando è chiaro che il modello non ha bisogno di un livello di dettaglio per quel tipo di entità (ma piuttosto solo un valore per quelle entità).
Quindi, un modello perfetto per i principianti sarebbe quello di modellare un cambio come una collezione di pulegge e ingranaggi (e possibilmente rapporti di trasmissione - a meno che i rapporti non derivino da pulegge e ingranaggi).
~~~If it's the Case 1 or Case 2, how are we gonna show the predefined ratio of gears for every vehicle?
Ciò dipende in larga misura da ciò che deve essere modellato, il che non è chiaro dall'affermazione del problema. Chiedi chiarimenti su come verrà utilizzato il modello (in modo da sapere che cosa deve essere catturato, e quindi sai come calcolare le risposte derivate). Nel caso più semplice, modellate semplicemente i rapporti del cambio direttamente come entità (o attributi). Altrimenti, hai bisogno dell'affermazione del problema per dirti come calcolare o derivare rapporti di trasmissione dal cambio di pulegge e ingranaggi, e dovrai memorizzare gli ingranaggi e le pulegge in accordi validi che ti consentano di calcolare i rapporti del cambio.
Parte B
So, how do we show the number of gears to all three types of vehicles?
Ogni auto presumibilmente ha un cambio. Non è necessario collegare i componenti all'interno del riduttore all'auto: basta collegare ogni tipo di auto a uno (o più) cambi, le relazioni transitive saranno sufficienti per collegare le auto agli ingranaggi. Quindi, per passare dalla macchina alle marce, attraversiamo il suo riduttore.
È possibile memorizzare, per ogni auto, una copia del numero di marce, originariamente calcolate dal riduttore. Tuttavia, ciò rappresenterebbe il caching delle informazioni, che è un'ottimizzazione che complica la progettazione e che non si dovrebbe intraprendere senza prove chiaramente misurate che tale ottimizzazione sia importante per qualche motivo.
Parte C
The larger the numbers of gears the larger will the number of pulleys and vice versa
Questa è una dichiarazione di fatto, un'affermazione logica, una regola, se vuoi. Dice che se aggiungiamo una marcia al design di un cambio, dobbiamo avere più carrucole, e se aggiungiamo una puleggia, dovremmo avere più ingranaggi. (Non ci dice che è o dovrebbe essere valido aggiungere una marcia o una puleggia a un progetto altrimenti valido, però.)
Tuttavia, non è molto preciso: potrebbe essere che abbiamo bisogno di due ingranaggi per puleggia o due pulegge per marcia. Devi cercare chiarimenti dal dominio del problema.
Se le relazioni sono semplici delle relazioni 2: 1 che suggerisco, allora dovresti modellare questo (un ingranaggio essendo collegato a due pulegge, o una puleggia che è collegata a due ingranaggi), e non lo farai altrimenti dobbiamo modellare questa regola / affermazione di fatto perché questo sarà sufficiente a farla rispettare.
Tuttavia, nel senso più ampio, questo potrebbe essere pensato come un vincolo, che è possibile applicare in qualche modo, anche se questo è un vincolo difficile da modellare nel caso più generale perché specifica una relazione tra diversi progetti di riduttori senza altrimenti dire che cosa potrebbe essere un singolo disegno valido / legale. Quindi, potrei dire che ho 4 pulegge e 12 marce, e questa affermazione di fatto, questa regola, non offrirebbe nulla in termini di convalida (senza accesso ad altri progetti validi conosciuti, e come hanno convalidato quei progetti validi noti ?? ). Tutta la regola dice che se un design è valido / legale, rispetto a un altro design con più ingranaggi ha più carrucole. È una dichiarazione difficile con cui lavorare, e dovresti rispedirti al dominio problematico chiedendo chiarimenti.