Realization
A dashed line ending in a hollow triangle is realization. The element at the plain end implements the interface or specification that the triangle points at.
Easily confused with
- Generalization (inheritance)A solid line ending in a hollow triangle is generalization, UML's inheritance arrow. The triangle points at the more general class (the parent); the class at the other end is the more specific one (the subclass).
- DependencyBoth dashed; realization ends in a hollow triangle, dependency in an open arrowhead.
How to read it
Realization is a relationship between a specification and an implementation of it. UML 2.5.1 draws it as a dashed line with a triangular arrowhead at the end of the realized element, the specification; the element at the tail, the client, is the implementation. In class diagrams its commonest use is a class implementing an interface. The interface is drawn as a class rectangle with «interface» above its name, and the specification describes it as a contract that any class realizing it has to fulfil. Kansas State University's CIS 400 textbook calls realization a weak "is-a" relationship, because the same interface can be implemented by otherwise unrelated classes.
Also searched as: implementation arrow uml, interface realization, realization symbol, uml realization.
The lollipop and the socket
An interface can also be drawn as a small circle, the "ball" or "lollipop", joined by a solid line to the class that provides it. UML 2.5.1 draws a half circle, the "socket", on a solid line from a class that requires the interface. Robert C. Martin's 1997 tutorial shows the lollipop as shorthand for the arrow between the implementing class and the interface.
Look-alikes
With a solid line, the same triangle is Generalization (inheritance), inheritance between classes. OpenDSA's notes put the difference this way: generalization models inheritance between classes, and realization models a class implementing an interface. A dashed line with an open arrowhead is a Dependency; OpenDSA draws that plain arrowhead from a class that uses an interface. The specification treats realization as a specialized kind of dependency, so the arrowhead is what tells the two apart.
Older diagrams
Diagrams from UML's first versions may mark an interface with the stereotype «type» instead of «interface». Martin's tutorial, written in the year UML 1.0 was released, does.
Read next
- Next in UML diagram symbolsDependencyA dashed line with an open arrowhead is a dependency. The element at the tail depends on, or uses, the element the arrow points to.
- The same shape in African flagsFlag of the ComorosThe Comoros flag is four horizontal stripes, yellow, white, red and blue from the top, with a green triangle along the pole holding a white crescent and four white stars in a line between its tips. Norway’s Store norske leksikon explains the crescent as the symbol of Islam and the four stars as the four islands of the Comoros; Lex says the four stripes are said to stand for the islands too.
More UML diagram symbols
The same shape elsewhere
Browse symbols drawn with arrows, lines, squares and rectangles or triangles.
Sources
- OMG Unified Modeling Language (OMG UML), Version 2.5.1, OMG document formal/17-12-05, December 2017, Object Management Group, 7.7.3.4 Realization; 7.7.4 Notation; 10.4.3 Semantics; 10.4.4 Notation
- UML (CIS 400 Textbook: Object-Oriented Design, Implementation, and Testing), Chapter 5, UML, Kansas State University, Department of Computer Science, Realization (Weak is-a)
- The Unified Modeling Language (OpenDSA Complete Catalog, 3.2), Chapter 3, Object-Oriented Programming, OpenDSA Project, Virginia Tech, 3.2.1.2 Class Diagrams, Realization relationships
- UML Tutorial: Part 1 -- Class Diagrams, Robert C. Martin, 1997, Northeastern University, Khoury College of Computer Sciences (course reading, CS U370, Fall 2007), Interfaces
Researched, edited and approved by Rory Hansen before publishing. Last reviewed October 9, 2026. How we research
Added .