🎯 UML Symbols Complete Reference Guide

Master Every Symbol, Arrow, and Notation for Software Engineering

πŸ“Œ Critical Arrow Distinctions - Master These!

FILLED ARROWHEAD (Solid Triangle β–Ά)

  • βœ“ Synchronous messages (waits for response)
  • βœ“ Control flow (activity diagrams)
  • βœ“ State transitions

OPEN ARROWHEAD (V-Shape >)

  • βœ“ Asynchronous messages (no wait)
  • βœ“ Return messages (dashed line)
  • βœ“ Include/Extend (dashed line)

HOLLOW TRIANGLE (Inheritance β–³)

  • βœ“ Generalization/Inheritance ONLY
  • βœ“ Always points to parent/superclass
  • βœ“ Used in Use Case & Class diagrams

NO ARROWHEAD (Association β€”)

  • βœ“ Association (actor to use case)
  • βœ“ Bidirectional relationship
  • βœ“ No specific direction implied

1️⃣ Use Case Diagrams

Use Case
Oval / Ellipse
Represents a use case - a specific function or action that the system provides to actors.
πŸ“ Example: "Login", "Process Payment", "Generate Report"
Stick Figure
Represents an actor - an external entity (person, system, or organization) that interacts with the system.
πŸ“ Example: "Customer", "Administrator", "Payment Gateway"
System Name Use Cases
Rectangle / Box
Represents the system boundary - defines the scope of the system and what's inside vs outside.
πŸ“ Contains all use cases of the system
Use Case
Solid Line (Association)
Shows communication/participation between actor and use case.
⚠️ SOLID LINE - No arrowhead
πŸ“ Meaning: Actor can initiate or participate in this use case
Base Use Case Β«includeΒ» Included UC
Β«includeΒ» Relationship
Base use case always includes the included use case. Mandatory inclusion.
⚠️ DASHED LINE + OPEN ARROWHEAD
πŸ“ Example: "Login" includes "Validate Credentials"
Base Use Case Β«extendΒ» Extension UC
Β«extendΒ» Relationship
Optional extension - extending use case may add behavior to base use case under certain conditions.
⚠️ DASHED LINE + OPEN ARROWHEAD (points TO base)
πŸ“ Example: "Process Order" extends to "Apply Discount Code"
User Admin Guest
Generalization (Inheritance)
Inheritance relationship between actors or use cases. Child inherits properties of parent.
⚠️ SOLID LINE + HOLLOW TRIANGLE (points to parent)
πŸ“ Example: "Admin" and "Guest" are specialized types of "User"
Part Whole
Aggregation (Hollow Diamond)
Weak "has-a" relationship - whole contains parts, but parts can exist independently when whole is destroyed.
⚠️ SOLID LINE + HOLLOW DIAMOND (points to whole)
πŸ“ Example: University has Students (students can exist without university)
Part Whole
Composition (Filled Diamond)
Strong "has-a" relationship - whole contains parts, parts CANNOT exist independently when whole is destroyed.
⚠️ SOLID LINE + FILLED DIAMOND (points to whole)
πŸ“ Example: House has Rooms (rooms cannot exist without the house)

2️⃣ Activity Diagrams

Filled Circle (●)
Represents the initial state / start node - where the activity begins.
πŸ“ Only ONE per activity diagram
Bull's Eye (β—Ž)
Represents the final state / end node - where the activity terminates.
πŸ“ Can have multiple end nodes
Activity Name
Rounded Rectangle
Represents an activity / action state - a task or operation being performed.
πŸ“ Example: "Process Payment", "Validate Input", "Send Email"
? [yes] [no]
Filled Diamond (β—†) - Decision
Decision node / branch - conditional flow with multiple outgoing paths based on conditions.
⚠️ FILLED DIAMOND (solid color inside)
πŸ“ Guards shown in brackets: [condition], [else]
Empty Diamond (β—‡) - Merge
Merge node - where multiple paths converge back into a single flow.
⚠️ EMPTY DIAMOND (hollow, no fill)
πŸ“ Used after decision/branch to rejoin paths
Task A Task B Task C
Thick Bar - Fork
Fork node - splits flow into multiple parallel/concurrent activities that execute simultaneously.
⚠️ ONE input, MULTIPLE outputs
πŸ“ All parallel activities start at the same time
Task A Task B Task C
Thick Bar - Join
Join node / synchronization - waits for ALL parallel activities to complete before continuing.
⚠️ MULTIPLE inputs, ONE output
πŸ“ Must wait for all tasks to finish (synchronization point)
Activity 1 Activity 2
Arrow (Control Flow)
Control flow / transition - shows the sequence and direction of activities.
⚠️ SOLID LINE + FILLED ARROWHEAD
πŸ“ Indicates order of execution
Customer System Administrator
Swimlane / Partition
Vertical or horizontal partition - organizes activities by who performs them (roles/departments).
πŸ“ Shows responsibility: Customer lane, System lane, Admin lane

3️⃣ Sequence Diagrams

:ObjectName
Rectangle with Name
Represents an object/participant in the interaction. Name format: :ClassName or objectName:ClassName
πŸ“ Example: :PaymentProcessor, user:User
Stick Figure (Actor)
Represents an external actor - typically a human user interacting with the system.
πŸ“ Example: Customer, Administrator
Object Lifeline
Vertical Dashed Line
Lifeline - represents the object's existence over time in the sequence.
⚠️ VERTICAL DASHED LINE
πŸ“ Extends from object box downward through the interaction
Object Active
Activation Box
Thin vertical rectangle on lifeline - shows when the object is actively executing or processing.
πŸ“ Duration of method execution or active state
A B method()
Solid Arrow (Synchronous)
Synchronous message - sender waits for receiver to complete before continuing.
⚠️ SOLID LINE + FILLED ARROWHEAD
πŸ“ Blocking call - waits for response
A B signal()
Open Arrow (Asynchronous)
Asynchronous message - sender continues immediately without waiting for receiver.
⚠️ SOLID LINE + OPEN ARROWHEAD
πŸ“ Non-blocking call - fire and forget
A B return value
Dashed Arrow (Return)
Return message - response or result sent back to caller.
⚠️ DASHED LINE + OPEN ARROWHEAD
πŸ“ Optional - often implied in synchronous calls
alt [condition 1] [else] Interaction 1 Interaction 2
Interaction Frame (alt)
Alternative flows - like if-else statement. Only one branch executes.
πŸ“ Common operators: alt (alternative), opt (optional), loop (repetition), ref (reference)
ref Another Sequence Diagram
Reference Frame (ref)
Reference to another diagram - indicates interaction continues in a separate sequence diagram.
πŸ“ Used to simplify complex interactions by breaking them into smaller diagrams
loop [1..n] Repeated interaction
Loop Frame (loop)
Repetition - interaction repeats based on condition or count.
πŸ“ Example: [for each item], [while condition], [1..10]

4️⃣ State Machine Diagrams

Filled Circle (●)
Represents the initial state - where the object begins its lifecycle.
πŸ“ Only ONE per state machine
Bull's Eye (β—Ž)
Represents the final state - where the object's lifecycle ends.
πŸ“ Can have multiple final states
State Name
Rounded Rectangle (State)
Represents a state - a condition or situation in the object's lifecycle.
πŸ“ Example: "Idle", "Processing", "Completed", "Error"
State A State B event
Arrow (Transition)
Transition - change from one state to another triggered by an event.
⚠️ SOLID LINE + FILLED ARROWHEAD
πŸ“ Labeled with: event [guard] / action
Idle Active buttonPressed [isValid] / startProcess()
Transition Label Format
event [guard] / action - Complete transition specification.
πŸ“ event = trigger, [guard] = condition, action = what happens
Active State entry / initialize() do / processData() exit / cleanup()
Composite State
State with internal activities - shows actions performed during the state.
πŸ“ entry/ = on entering, do/ = while in state, exit/ = on leaving
Processing entry / startTimer()
Entry Action (entry /)
Action performed when entering the state - executed once upon entry.
πŸ“ Example: Initialize variables, start timers, log entry
Active do / monitor()
Do Activity (do /)
Ongoing activity while in the state - continues until state exit.
πŸ“ Example: Continuous monitoring, animation, polling
Connected exit / disconnect()
Exit Action (exit /)
Action performed when leaving the state - executed once upon exit.
πŸ“ Example: Clean up resources, save state, log exit

πŸ’‘ Quick Memorization Tips

  • Circles: Start (●) and End (β—Ž) points in activity and state diagrams
  • Rectangles: Things that do work or hold state (activities, states, objects)
  • Filled Diamond (β—†): Decision points (branching) in activity diagrams
  • Empty Diamond (β—‡): Merge points OR Aggregation (weak "has-a")
  • Thick Bars: Parallel processing (fork to split, join to synchronize)
  • Filled Arrow (β–Ά): Strong relationship (synchronous call, transition, control flow)
  • Open Arrow (>): Weak/dependency relationship (async, include, extend, return)
  • Hollow Triangle (β–³): Always means inheritance/generalization (points to parent)
  • Stick Figures: Always external actors (people or systems)
  • Remember: Filled = Strong/Decision, Empty = Weak/Merge, Dashed = Dependency

🎯 Complete Arrow Reference - All Types

Visual Arrow Type Line Style Head Type Used In Meaning
Control Flow Solid Filled Triangle β–Ά Activity, State Sequence/transition
Synchronous Call Solid Filled Triangle β–Ά Sequence Waits for response
Asynchronous Call Solid Open (V-shape) Sequence No wait, continues
Return Message Dashed Open (V-shape) Sequence Response/result
Β«includeΒ» Dashed Open (V-shape) Use Case Always includes
Β«extendΒ» Dashed Open (V-shape) Use Case Optional extension
Generalization Solid Hollow Triangle β–³ Use Case, State Inheritance
Association Solid None Use Case Communication
Lifeline Dashed (vertical) None Sequence Object existence
Aggregation Solid Hollow Diamond β—‡ Class Weak "has-a"
Composition Solid Filled Diamond β—† Class Strong "has-a"