What is a use case diagram?
A use case diagram is a UML diagram that summarises who interacts with a system and what they can do with it. It has four building blocks: actors (people or external systems), use cases (goals the actor wants to achieve, drawn as ovals), the system boundary (a box around everything your system is responsible for), and associations (lines connecting actors to the use cases they take part in).
Use case diagrams are deliberately high-level. They do not show screens, steps or data — just the scope of the system and the value it delivers. That makes them one of the best diagrams for kicking off a project, writing requirements, or explaining a product to someone non-technical.
Why generate use case diagrams from text?
Classic UML tools are heavy: you install software, drag stick figures around and fight with connectors. This use case diagram generator turns a short text description into a tidy diagram in your browser. Add a use case and the boundary grows automatically; rename an actor and every line follows.
Text is also easy to keep with your requirements. Paste it into a ticket, a README or a specification, and anyone can update it later without the original file or a paid licence. Export to PNG or SVG when you need the picture.
How to make a use case diagram
- Identify the actors. List everyone and everything outside the system that interacts with it: customers, administrators, and external services like a payment gateway. Write each as
id["👤 Name"]. - Draw the system boundary. Open a
subgraphwith the system name, list the use cases inside it, and close it withend. - Add use cases. Write each goal as a verb phrase in an oval:
order(["Place order"]). Good use cases describe something valuable to the actor, not an internal step. - Connect actors to use cases. Use
---for a plain association line:customer --- order. - Add include and extend relationships. Use a dotted arrow with a label, such as
order -.->|«include»| pay, then export your diagram.
Include, extend and generalisation
UML defines three relationships between use cases, and each has a clear meaning:
- «include» — the base use case always performs the included one. “Place order” always includes “Make payment”. Draw the dotted arrow from the base use case to the included one.
- «extend» — optional behaviour that only happens under certain conditions, like “Apply discount code” extending “Place order”. The arrow points from the extension to the base use case.
- Generalisation — a specialised actor or use case inherits from a general one, for example a “Premium customer” is a kind of “Customer”. Draw it with a solid arrow:
premium --> customer.
flowchart LR
user["👤 User"]
subgraph app["Banking app"]
login(["Log in"])
verify(["Verify identity"])
reset(["Reset password"])
end
user --- login
login -.->|«include»| verify
reset -.->|«extend»| loginUse case diagram examples
- Online shopping system: customers browse, order and pay; admins manage inventory; a payment gateway processes transactions.
- Library management system: members search and borrow books, librarians manage loans and fines.
- ATM system: customers withdraw cash, check balances and transfer money, with the bank as a secondary actor.
- Hospital management system: patients book appointments, doctors update records, receptionists handle billing.
- Student portal: students register for courses and view grades, lecturers publish results.
Best practices
Name use cases with a verb and a noun — “Track order”, not “Order tracking page”. Keep primary actors (who start the interaction) on the left and secondary actors (systems that respond) on the right. Aim for five to fifteen use cases per diagram; if you have many more, split the system into subsystems. Remember that a use case diagram shows scope, not sequence: when you need the step-by-step flow inside one use case, draw it with the online flowchart maker.
Once the scope is agreed, the next step is usually the data model — use our ER diagram tool to make an ERD online from the same nouns you found here. Still exploring the problem space? Start with a concept map.
Frequently asked questions
Is this use case diagram generator free?
Yes. It is free to use with no account, no watermark and unlimited PNG and SVG exports.
Does it follow UML notation?
It follows UML use case conventions: actors outside a labelled system boundary, oval use cases inside it, association lines, and dotted «include» and «extend» relationships.
How do I draw the system boundary?
Wrap your use cases in a subgraph block with the system name, for example subgraph shop["Online shop"], and close it with end.
What is the difference between include and extend?
«include» is behaviour that always happens as part of the base use case. «extend» is optional behaviour that only happens under certain conditions.
Can I export the diagram for my report or assignment?
Yes. Export PNG for Word, Google Docs or slides, or Export SVG for a vector file that stays sharp when printed.
Can I put actors on both sides of the system?
The layout places nodes automatically from left to right based on the order you connect them. Define primary actors first and secondary actors such as external services last to keep them on opposite sides.