2009-08-20 8 views
11

Ho letto diversi tutorial su cosa dovrebbe contenere un modello UML e cosa no. Come sviluppatore, penso sempre in termini di un modello di dati relazionali in cui non si potrebbe mai avere una relazione molti a molti tra le tabelle. Ora con un modello di classe UML, ho letto che se non forniscono un valore aggiunto, puoi semplicemente saltare i linktables.Modello di classe UML come modellare la relazione molti a molti

Tuttavia, ho anche letto un tutorial in cui esempi forniti di dati all'interno di tabelle suggerivano fortemente di rappresentare ogni classe come una semplice tabella mentre si modellava il modello di classe.

Sono confuso, che cos'è adesso ?!

+0

Quale contesto è il modello di classe che si sta considerando; Modello di business, modello di analisi o modello di progettazione? –

risposta

12

Modellarlo come una relazione M: N. Come in un modello di relazione, una classe associata (o classe di collegamento) di un tipo di codice sarà in codice. Non è necessario inserirlo nel diagramma a meno che non abbia attributi in cima agli attributi di join (in modo simile a quanto si ometterebbe generalmente un'entità join da un ERD a meno che non avesse attributi che non erano chiavi esterne nelle entità correlate). La classe di collegamento viene in genere disegnata come una classe collegata alla relazione da una linea tratteggiata.

L'entità Join Enrollment è un buon esempio di ciò in UML 2 Class Diagrams.

29

La "tabella di collegamento relazionale" è una tecnica di implementazione per una relazione molti-a-molti.

La relazione esiste indipendentemente dal modo in cui è stata implementata.

In un modello a oggetti, si hanno molte scelte su come implementare molti a molti, il che può (o non può) coinvolgere una tabella persistente aggiuntiva. Potrebbe essere fatto in molti modi diversi.

Il punto di UML è quello di essere in grado di descrivere le essenziali essenziali di ciò che è realmente il modello.

È possibile anche descrivere l'implementazione. Sono diagrammi separati con scopi separati. Puoi facilmente mostrare l'implementazione relazionale con la tabella dei link. Puoi anche mostrare il modello essenziale senza la tabella di collegamento.

Ecco il rapporto essenziale

Essential http://i28.tinypic.com/x3tnhk.jpg

Ecco l'attuazione del rapporto

Implemntation http://i32.tinypic.com/mmws2h.jpg

Entrambi sono validi UML. La vera domanda è "cosa devi mostrare agli altri?" Verità essenziale o una particolare implementazione?

Problemi correlati