Creazione del modello a oggetti usando le convenzioni UML

0

Ho la dichiarazione del problema per creare un modello a oggetti.

Dichiarazione del problema: Ogni veicolo ha un motore e un cambio. Un cambio è composto da pulegge funzionanti secondo rapporti di trasmissione predefiniti. Le auto hanno motori più piccoli con 4-6 marce mentre gli Sports Utility Vehicles (SUV) hanno motori più grandi con 4-8 marce. Gli Heavy Duty Vehicles (HDVs), invece, sono progettati per il trasporto di carichi e quindi hanno motori enormi con 8-16 rapporti. Maggiore è il numero di ingranaggi, maggiore sarà il numero di pulegge e viceversa.

Bene, ho fatto tutto il modello a oggetti, ma ci sono tre cose che mi confondono:

A) La parte in cui si dice "Un riduttore è composto da pulegge che funzionano secondo rapporti di trasmissione predefiniti" , abbiamo bisogno di

~~~ Caso 1: prendi ingranaggi e pulleys come oggetti e crea la relazione di composizione dall'oggetto cambio a ingranaggio e pulleys

~~~ Caso 2: prendi ingranaggi e pulleys come attribuisce all'oggetto cambio

~~~ Se è il caso 1 o il caso 2, come mostreremo il rapporto predefinito di ingranaggi per ogni veicolo?

B) La parte in cui si dice Le automobili hanno motori più piccoli con 4-6 marce ..... Gli Sports Utility Vehicles (SUV) hanno motori più grandi con 4-8 marce ..... Veicoli pesanti ( HDV) hanno motori enormi con 8-16 marce . Quindi, come possiamo mostrare il numero di ingranaggi a tutti e tre i tipi di veicoli? Se secondo Confusion (A) abbiamo scelto il Caso 1 e abbiamo reso oggetto gear , avremmo bisogno di collegarlo a tutti e tre gli oggetti Automobili , SUV e HDV che fanno dell'Associazione tra loro O se scegliamo il Caso 2 da Confusion (A) allora avremmo bisogno di mostrare il no degli ingranaggi come attributi in tutti e tre gli oggetti Cars , SUV e HDV ?

C) La parte in cui dice Quanto maggiore è il numero di ingranaggi tanto più grande sarà il numero di pulegge e viceversa , come dovremmo mostrare questa relazione in Object Model?

Gentilmente, chiunque mi aiuta in questo. Ho usato la mia mente da tutto il giorno e non sono riuscito a finalizzare alcuna idea. Grazie in anticipo.

    
posta Khubaib Khawar 23.04.2017 - 11:14
fonte

1 risposta

0

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.

    
risposta data 24.04.2017 - 01:45
fonte

Leggi altre domande sui tag