Architecting and designing : UML 2.5 : Relationships : Substitution
  
Substitution
You can create a Substitution relationship between any two Classifiers in UML. A Substitution is a relationship between two Classifiers which signifies that the substitutingClassifier complies with the contract specified by the contract Classifier.
This implies that instances of the substitutingClassifier are runtime substitutable where instances of the contract Classifier are expected. Substitution, unlike specialization, does not imply inheritance of structure, but only compliance of publicly available contracts.
Substitution requires:
Interfaces implemented by the contract Classifier are also implemented by the substitutingClassifier or else the substitutingClassifier implements a more specialized Interface type.
Any Port owned by the contract Classifier has a matching Port owned by the substitutingClassifier.
Relates
The Substitution relationship can be drawn like this:
From
To
Any Classifier
Any Classifier
Example
This graphic is described in the surrounding text.
See also
Association
Dependency
Realization
Collaboration Property to Part
Component Provides (Realizes) Interface
Component Requires (Uses) Interface
Port Provides (Realizes) Interface
Port Requires (Uses) Interface
Comment to AnnotatedElement
Constraint to ConstrainedElement
Connector
ElementGroup to Element
Instance Specification Relationships
Generalization
Package Containment
Package Import
Go up to
Relationships