A realization depicts the relationship between an interface and a class that provides the actual implementation.



A dependency depicts the relationship between a source and a target component, when there is a dependency relationship between the two. It means, when there is a change in the target, the source element undergoes a necessary change but not vice versa.


Class Association

Class association specifies the structural relationship between classes. Navigability and Multiplicity come into picture here.



Class A contains Class B. This statement denotes a strong ownership between Class A, the whole, and Class B, its part. In other words, the part class cannot meaningfully exist on its own without the whole class.


This is a lighter form of composition. The whole class plays a more important role than the part class, but unlike the case of composition, the part class can meaningfully exist on its own without the whole class.


Roles in UML association

At the end of each association the role each object might take is written. It can be applied to other types of association like generalization as well.



  • Provided interface: OrderEntry and AccountPayable are provided interfaces; lollipop symbol.
  • Required interface: Person is a required interface; socket symbol.


UML 2.0 makes it possible to refine interface definitions even further, and depict how they are supported within the context of a component. This is done by associating interfaces with ports. Ports define a unique, optionally named interaction point between a component and its external environment. They are represented by small squares on the edge of the component, and have one or more provides or requires interfaces associated with them. Ports can be unidirectional or bidirectional in terms of supporting one or more provides or requires interfaces. (Image links to



Profiles are things (stereotypes, tag definitions, and constraints) that are applied to specific model elements (Classes, Attributes, Operations, and Activities). A Profile is a collection of such extensions that collectively customize UML for a particular domain (financial) or platform (J2EE).

UML Editors

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License