Relazioni di sostituzione

Nei diagrammi UML, una relazione di sostituzione è un tipo di dipendenza tra classificatori, che indica che un classificatore può sostituirne un altro durante il runtime.

Il concetto di dipendenza di sostituzione è stato introdotto per la prima volta nelle specifiche UML 2.0. Una sostituzione è una realizzazione tipo, ossia un altro modo in cui è possibile implementare un classificatore. In una dipendenza di sostituzione, il client prende il posto della classe fornitore.

Una dipendenza di sostituzione può risultare utile soprattutto per la personalizzazione di modelli. Ad esempio, è possibile personalizzare un sistema di vendita al dettaglio concepito per vendere linee di prodotti sportive o video e musicali. È possibile sostituire una serie di prodotti per un'altra lasciando invariato il resto della progettazione di sistema.

Per consentire la sostituzione, il classificatore sostituente deve soddisfare le regole specificate dall'altro classificatore.

Come viene illustrato nella seguente figura, una relazione di sostituzione viene visualizzata nell'editor del diagramma come una linea tratteggiata con una freccia aperta che va dal classificatore di implementazione al classificatore che specifica le regole. La parola chiave «substitution» viene visualizzata accanto al connettore.

L'immagine mostra in che modo è possibile sostituire una classe tramite un'altra senza dove modificare l'intero sistema. In questo diagramma, la classe Music Video può essere sostituita per Sporting goods line nel sistema Retail.


Feedback