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.
