Cos'è la relazione UML?
Le relazioni in UML vengono utilizzate per rappresentare una connessione tra elementi strutturali, comportamentali o di raggruppamento. È anche chiamato collegamento che descrive come due o più cose possono relazionarsi tra loro durante l'esecuzione di un sistema. I tipi di relazione UML sono associazione, dipendenza, generalizzazione e realizzazione.
Vediamoli in dettaglio
- Associazione
È un insieme di collegamenti che collega elementi del modello UML. Definisce anche quanti oggetti prendono parte a quella relazione.
- Dipendenza
In una relazione di dipendenza, come suggerisce il nome, due o più elementi dipendono l'uno dall'altro. In questo tipo di relazione, se apportiamo una modifica a un particolare elemento, è probabile che anche tutti gli altri elementi vengano influenzati dal cambiamento.
- Generalizzazione
Viene anche chiamata relazione genitore-figlio. Nella generalizzazione, un elemento è una specializzazione di un'altra componente generale. Può essere sostituito. Viene utilizzato principalmente per rappresentare l'eredità.
- Realizzazione
In una relazione di realizzazione di UML, un'entità denota una responsabilità che non è implementata da sola e l'altra entità che le implementa. Questa relazione si trova principalmente nel caso delle interfacce.
In questo tutorial UML imparerai:
- Associazione
- Dipendenza
- Generalizzazione
- Realizzazione
- Composizione
- Aggregazione
Associazione
È una relazione strutturale che rappresenta oggetti che possono essere collegati o associati ad un altro oggetto all'interno del sistema. I seguenti vincoli possono essere applicati alla relazione di associazione.
- {implicit} - I vincoli impliciti specificano che la relazione non è manifesta; si basa su un concetto.
- {ordinato} - I vincoli ordinati specificano che l'insieme di oggetti a un'estremità di un'associazione si trova in un modo specifico.
- {modificabile} - Il vincolo modificabile specifica che la connessione tra i vari oggetti nel sistema può essere aggiunta, rimossa e modificata secondo il requisito.
- {addOnly} - Specifica che le nuove connessioni possono essere aggiunte da un oggetto che si trova all'altra estremità di un'associazione.
- {congelato} - Specifica che quando viene aggiunto un collegamento tra due oggetti, non può essere modificato mentre il vincolo congelato è attivo sul collegamento specificato o su una connessione.
Possiamo anche creare una classe che abbia proprietà di associazione; si chiama come una classe di associazione.
Associazione riflessiva
L'associazione riflessiva è un sottotipo di relazione di associazione in UML. In un'associazione riflessiva, le istanze della stessa classe possono essere messe in relazione tra loro. Si dice anche che un'istanza di una classe sia un oggetto.
L'associazione riflessiva afferma che un collegamento o una connessione può essere presente all'interno degli oggetti della stessa classe.
Consideriamo un esempio di un frutto di classe. La classe della frutta ha due istanze, come il mango e la mela. L'associazione riflessiva afferma che può essere presente un legame tra mango e mela poiché sono esempi della stessa classe, come la frutta.
Associazione diretta
Come suggerisce il nome, l'associazione diretta è correlata alla direzione del flusso all'interno delle classi di associazione.
In un'associazione diretta, il flusso è diretto. L'associazione da una classe all'altra scorre in un'unica direzione.
È indicato utilizzando una linea continua con una punta di freccia.
Esempio:
Si può dire che esiste una relazione di associazione diretta tra un server e un client. Un server può elaborare le richieste di un client. Questo flusso è unidirezionale, che scorre solo dal server al client. Quindi una relazione di associazione diretta può essere presente all'interno di server e client di un sistema.
Dipendenza
Usando una relazione di dipendenza in UML, è possibile mettere in relazione come le varie cose all'interno di un particolare sistema dipendono l'una dall'altra. La dipendenza viene utilizzata per descrivere la relazione tra i vari elementi in UML che dipendono l'uno dall'altro.
Stereotipi
- « Bind » - Bind è un vincolo che specifica che l'origine può inizializzare il modello in una posizione di destinazione, utilizzando i parametri oi valori forniti.
- «Derivare» - Rappresenta che la posizione di un oggetto di origine può essere calcolata dall'oggetto di destinazione.
- «Amico» - Specifica che l'origine ha una visibilità unica nell'oggetto di destinazione.
- «InstanceOf» - Specifica che l'istanza di un classificatore di destinazione è l'oggetto di origine.
- «Instantiate» - Specifica che l'oggetto di origine è in grado di creare istanze di un oggetto di destinazione.
- «Raffina» - Specifica che l'oggetto di origine ha un'astrazione eccezionale rispetto a quella dell'oggetto di destinazione.
- «Use» - Viene utilizzato quando i pacchetti vengono creati in UML. Lo stereotipo d'uso descrive che gli elementi di un pacchetto sorgente possono essere presenti anche all'interno del pacchetto di destinazione. Descrive che il pacchetto sorgente utilizza alcuni elementi di un pacchetto di destinazione.
- «Sostituto» - specifica che il cliente può essere sostituito dal fornitore in fase di esecuzione.
- «Access» - Specifica che il pacchetto sorgente accede agli elementi del pacchetto di destinazione che è anche chiamato come unione privata.
- «Import» - Specifica che la destinazione può importare gli elementi di un pacchetto sorgente come sono definiti all'interno della destinazione, chiamata anche unione pubblica.
- «Permesso» - specifica che l'elemento di origine ha accesso all'elemento fornitore qualunque sia la visibilità dichiarata del fornitore.
- «Estendi» - Ti aiuta a specificare che l'obiettivo può estendere il comportamento dell'elemento di origine.
- «Include» - Consente di specificare l'elemento sorgente che può essere incluso il comportamento di un altro elemento in una posizione specificata. (come una chiamata di funzione in c / c ++)
- «Diventa» - Specifica che il target è simile alla sorgente con valori e ruoli diversi.
- «Call» - Specifica che l'origine può invocare un metodo dell'oggetto di destinazione.
- «Copia» - Specifica che l'oggetto di destinazione è indipendente, copia di un oggetto di origine.
- «Parametro» - il fornitore è un parametro delle operazioni del cliente .
- «Invia» - il cliente è un'operazione che invia al fornitore un target non specificato.
Stereotipi tra macchine statali
- «Invia» - Specifica che l'operazione di origine invia l'evento di destinazione.
Generalizzazione
È una relazione tra un'entità generale e un'entità unica che è presente all'interno del sistema.
In una relazione di generalizzazione, può essere implementato il concetto orientato agli oggetti chiamato ereditarietà . Esiste una relazione di generalizzazione tra due oggetti, chiamati anche entità o cose. In una relazione di generalizzazione, un'entità è un genitore e un'altra si dice che sia un bambino. Queste entità possono essere rappresentate usando l'ereditarietà.
In eredità, un figlio di qualsiasi genitore può accedere, aggiornare o ereditare la funzionalità come specificato all'interno dell'oggetto genitore. Un oggetto figlio può aggiungere la sua funzionalità a se stesso così come ereditare la struttura e il comportamento di un oggetto genitore.
Questo tipo di relazione è noto collettivamente come relazione di generalizzazione.
Stereotipi e loro vincoli
- «Implementazione» - Questo stereotipo viene utilizzato per rappresentare che l'entità figlio viene implementata dall'entità padre ereditando la struttura e il comportamento di un oggetto padre senza violare le regole. Nota Questo stereotipo è ampiamente utilizzato in una singola eredità .
La relazione di generalizzazione contiene vincoli come completo, incompleto per verificare se tutte le entità figlio vengono incluse o meno nella relazione.
Realizzazione
In una relazione di realizzazione di UML, un'entità denota una responsabilità che non è implementata da sola e l'altra entità che le implementa. Questa relazione si trova principalmente nel caso delle interfacce.
La realizzazione può essere rappresentata in due modi:
- Utilizzando una forma canonica
- Usando una forma elisa
Nel diagramma sopra, le regole aziendali dell'account realizzano l'interfaccia IRuleAgent.
Tipologie di realizzazione:
- Forma canonica
In una relazione di realizzazione di UML, la forma canonica viene utilizzata per realizzare interfacce in tutto il sistema. Utilizza uno stereotipo dell'interfaccia per creare un'interfaccia e la relazione di realizzazione viene utilizzata per realizzare la particolare interfaccia.
In una forma canonica, la relazione di realizzazione è indicata utilizzando la linea diretta tratteggiata con una punta di freccia aperta di dimensioni considerevoli.
Nello schema sopra, l'interfaccia Iruleagent è realizzata utilizzando un oggetto chiamato Account Business Rules.
- Forma elisa
La realizzazione nel diagramma delle classi UML può anche essere mostrata utilizzando una forma elided. In una forma elisa, l'interfaccia è denotata utilizzando un cerchio che è anche chiamato notazione lecca-lecca.
Questa interfaccia, quando realizzata utilizzando qualsiasi cosa presente all'interno del sistema, crea una struttura elisa.
Nel diagramma sopra, l'interfaccia Iruleagent è indicata utilizzando un modulo eliso che viene realizzato da acctrule.dll.
Composizione
Non è una relazione UML standard, ma è ancora utilizzata in varie applicazioni.
L'aggregazione composita è un sottotipo di relazione di aggregazione con caratteristiche come:
- è un'associazione a due vie tra gli oggetti.
- È una relazione tutto / parte.
- Se un composto viene eliminato, tutte le altre parti ad esso associate vengono eliminate.
L'aggregazione composita è descritta come un'associazione binaria decorata con un diamante nero pieno all'estremità (intera) dell'aggregato.
Una cartella è una struttura che contiene n numero di file al suo interno. Una cartella viene utilizzata per memorizzare i file al suo interno. Ogni cartella può essere associata a un numero qualsiasi di file. In un sistema informatico, ogni singolo file fa parte di almeno una cartella all'interno del sistema di organizzazione dei file. Lo stesso file può anche far parte di un'altra cartella, ma non è obbligatorio. Ogni volta che un file viene rimosso dalla cartella, la cartella rimane invariata mentre i dati relativi a quel particolare file vengono distrutti. Se un'operazione di eliminazione viene eseguita sulla cartella, influirà anche su tutti i file presenti all'interno della cartella. Tutti i file associati alla cartella vengono automaticamente distrutti una volta che la cartella viene rimossa dal sistema.
Questo tipo di relazione in UML è noto per relazione di aggregazione composita.
Aggregazione
Un'aggregazione è un sottotipo di una relazione di associazione in UML. L'aggregazione e la composizione sono entrambi i tipi di relazione di associazione in UML. Una relazione di aggregazione può essere descritta in parole semplici come "un oggetto di una classe può possedere o accedere agli oggetti di un'altra classe".
In una relazione di aggregazione, l'oggetto dipendente rimane nell'ambito di una relazione anche quando l'oggetto di origine viene distrutto.
Consideriamo un esempio di un'auto e di una ruota. Un'auto ha bisogno di una ruota per funzionare correttamente, ma una ruota non ha sempre bisogno di un'auto. Può anche essere utilizzato con la bici, la bicicletta o qualsiasi altro veicolo ma non con un'auto in particolare. In questo caso, l'oggetto ruota è significativo anche senza l'oggetto automobile. Questo tipo di relazione è chiamata relazione di aggregazione.
Sommario
- La relazione in UML consente a una cosa di relazionarsi con altre cose all'interno del sistema.
- Le relazioni di associazione, dipendenza, generalizzazione e realizzazione sono definite da UML.
- La relazione di composizione può essere utilizzata anche per rappresentare che l'oggetto può essere parte di un solo composto alla volta.
- L'associazione viene utilizzata per descrivere che un oggetto può essere associato a un altro oggetto.
- La dipendenza indica che gli oggetti possono essere dipendenti l'uno dall'altro.
- Una realizzazione è una relazione significativa tra classificatori.
- La generalizzazione è anche chiamata relazione genitore-figlio.