Dependency
A dashed line with an open arrowhead is a dependency. The element at the tail depends on, or uses, the element the arrow points to.
Easily confused with
- FlowlineThe order of steps: a flowline joins two symbols, and the flow runs along it from one to the next. It is a straight line, with an arrowhead where the direction needs showing.
- RealizationA 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.
- Synchronous and return messagesArrows between lifelines in a sequence diagram are messages. A solid arrow with a filled head is a synchronous call, where the sender waits; a dashed arrow coming back is the reply.
- Sequence flow and message flowThe two arrows of BPMN. A solid arrow with a filled head is a sequence flow, the order of steps within one process; a dashed arrow that starts at a small open circle and ends in an open head is a message flow, a message passing between two participants.
How to read it
UML 2.5.1 draws a dependency as a dashed arrow between two model elements. The element at the tail, the client, depends on the element at the arrowhead, the supplier: the specification says the client's meaning is not complete without the supplier. A dependency says nothing about objects at run time; the specification gives it no runtime semantic implications. A keyword in guillemets on the arrow can name the kind of dependency. «use» means the client needs the supplier for its implementation, as in the specification's example of an Order that needs a Line Item; «instantiate» means the client creates instances of the supplier, as a CarFactory creates Cars. Course notes describe the usual case as a weak relationship in which one class uses another, often as a method parameter, without holding on to it (Robert C. Martin; Virginia Tech's OpenDSA). The University of Washington's slides sum it up as "uses temporarily".
Also searched as: dashed arrow uml, dependency symbol, uml dependency.
Look-alikes
A dashed line with a hollow triangle is Realization, not a dependency. In a use case diagram, dashed open-headed arrows labelled «include» or «extend» run between use cases; UML 2.5.1 draws «include» from the base use case to the included one, and «extend» from the extending use case to the one it extends. In a sequence diagram, a dashed line with an open arrowhead between lifelines is a reply or a creation Synchronous and return messages. A solid line with an open arrowhead is a navigable Association.
Read next
- Next in UML diagram symbolsMultiplicityNumbers at the end of a line, such as 1, 0..1 or 0..*, are a multiplicity: how many objects at that end can take part for each object at the other end. A star (*) means "many", with no upper limit.
- The same shape in Blueprint symbolsStairsA staircase, seen from above. The arrow shows the direction of travel from this floor, labelled with the direction and the number of risers.
More UML diagram symbols
The same shape elsewhere
Browse symbols drawn with arrows, lines or squares and rectangles.
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 Semantics; 7.7.4 Notation; 7.7.5 Examples; 18.1.4 Notation
- UML Tutorial: Part 1 -- Class Diagrams, Robert C. Martin, 1997, Northeastern University, Khoury College of Computer Sciences (course reading, CS U370, Fall 2007), Dependency
- The Unified Modeling Language (OpenDSA Complete Catalog, 3.2), Chapter 3, Object-Oriented Programming, OpenDSA Project, Virginia Tech, 3.2.1.2 Class Diagrams, Dependency relationships
- UML Class Diagrams (CSE 403 lecture slides), Emina Torlak, CSE 403: Software Engineering, Fall 2016, University of Washington, Paul G. Allen School of Computer Science & Engineering (Internet Archive), Slide 22
Researched, edited and approved by Rory Hansen before publishing. Last reviewed October 9, 2026. How we research
Added .