A use case diagram is a fundamental modeling tool in requirements engineering used to visualize the interactions between actors (users or external systems) and the system (or its functionalities). It helps stakeholders understand what the system must do from a functional perspective and serves as a communication bridge between technical teams and business users.
Despite its simplicity, the use case diagram is often misapplied due to poor actor identification, vague use cases, or incorrect relationships. This guide aims to clarify the key concepts, provide a step-by-step methodology, and highlight common pitfalls to avoid.
| Concept | Explanation |
|---|---|
| Actor | A human user, organization, or external system that interacts with the system. Acts as a “user” in the systemâs context. Examples: student, teacher, admin, payment gateway. |
| Use Case | A description of a specific goal or function that the system performs for an actor. Defines what the system does, not how. Examples: “Register for a course”, “Submit grades”, “Generate report”. |
| System Boundary | The boundary that separates the system from external actors and systems. Everything inside the boundary is part of the system. |
| Association | A line connecting an actor to a use case, indicating that the actor can perform that use case. |
| Generalization | A relationship where one actor inherits behavior from another (e.g., “Student” is a type of “User”). |
| Dependency | A relationship indicating that one use case depends on another (e |
| .g., “Generate Report” depends on “Get Student Data”). | |
| Include | A use case that is required for another to be executed (e.g., “Submit Grades” includes “Validate Student ID”). |
| Extend | A use case that conditionally adds functionality (e.g., “Send Notification” extends “Submit Grades” when grades are below threshold). |
â ïžÂ Important Note: Use cases are not about features â they are about functional goals that satisfy user needs.
Ask yourself these core questions to identify all relevant actors:
| Question | Why It Matters |
|---|---|
| Who uses the main use cases? | Identifies primary users (e.g., students, professors). |
| Who needs support for daily work? | Finds support roles (e.g., HR staff, IT support). |
| Who is responsible for system administration? | Identifies admin roles (e.g., system manager, database admin). |
| What external devices/software systems does the system interact with? | Identifies external systems (e.g., email, payment gateway, ERP). |
| Who has an interest in the systemâs outcomes? | Identifies stakeholders (e.g., parents, board members). |
đ Tip: Start with the most critical users and expand outward. Use real-world scenarios or interviews to validate actor identification.
đĄ Example: In a university student management system, actors might include:
Student
Faculty Member
Academic Advisor
Admin Officer
Payment Gateway
ERP System
Once actors are identified, ask the following questions about each actor:
| Question | Purpose |
|---|---|
| What are the main tasks an actor must perform? | Identifies functional goals (e.g., register, enroll, view grades). |
| Does the actor want to query or modify data in the system? | Indicates read/write operations (e.g., view records, edit profile). |
| Does the actor want to inform the system about changes in other systems? | Suggests event-driven triggers (e.g., notify system when a course is added). |
| Should the actor be informed about unexpected events? | Indicates notification use cases (e.g., “Alert: Course Overload Detected”). |
đ Use simple, goal-oriented language. Avoid technical terms.
â Good use case: “Enroll in a Course”
â Bad use case: “Submit enrollment form with validation” â becomes too technical.
Use cases can be modeled at different levels:
| Level | Description |
|---|---|
| Top-Level Use Cases | Broad functional objectives that reflect business goals (e.g., “Manage Student Records”). |
| Refined Use Cases | Detailed actions derived from top-level goals. |
đ Iterative Development Approach:
Begin with high-level business objectives.
Break them down into sub-goals.
Refine each use case until it is specific and actionable.
đ Example Breakdown:
Top-level: “Support student administration”
Refinement:
Student can register
Student can enroll in courses
System stores grades
System sends enrollment confirmation
This ensures the system meets business objectives while remaining practical and testable.
Now, place actors and use cases on the diagram and connect them appropriately.
[Actor] --> [Use Case]
â
[Include] [Extend]
â
[Dependency]
Place actors outside the system boundary (typically on the left/right/top).
Place use cases inside the system boundary (center or below).
Use solid lines for associations.
Use dashed lines for dependencies.
Use inclusion arrows (â) for include relationships.
Use extension arrows (â) for extend relationships.
Avoid overlapping use cases; keep the diagram clean and readable.
đ Visual Example (Text-Based):
+------------------+
| Student | --> Enroll in Course
+------------------+
|
v
+------------------+
| System | --> Store Course Enrollments
| (Boundary) |
+------------------+
^
|
+------------------+
| Payment Gateway| --> Process Fee Payment
+------------------+
đš Common Mistake: Drawing actors inside the system boundary â this implies they are part of the system, which they are not.

This Diagram is generated by Visual Paradigm AI Chatbot:

| Pitfall | Why It’s Wrong | How to Fix It |
|---|---|---|
| đ«Â Overcomplicating actors | Creating too many actors (e.g., “John Doe”, “Sarah Smith”) instead of grouping roles | Group similar roles (e.g., “Student”, “Faculty”) |
| đ«Â Using vague use cases | Phrases like “manage data”, “do something” | Replace with specific, goal-oriented phrases (e.g., “Submit course enrollment”) |
| đ«Â Missing dependencies | Not showing how one use case depends on another | Add include or extend relationships where needed |
| đ«Â Incorrect use of ‘extend’ | Using extend for normal workflows |
Use include for mandatory steps; use extend only for optional, conditional ones |
| đ«Â Ignoring external systems | Not including payment gateways, email, etc. | Identify all external systems and show their interactions |
| đ«Â Using only one actor | Assuming only one user uses the system | Identify all stakeholders and their needs |
| đ«Â Using technical jargon | e.g., “Update database”, “call API” | Stick to functional behaviors â “Submit a request” is better |
| Practice | Explanation |
|---|---|
| â Start with business goals | Model from the top down â align with strategic objectives. |
| â Involve stakeholders early | Interview end-users or domain experts to validate use cases. |
| â Keep use cases independent | Each use case should represent a single, clear goal. |
| â Use real-world scenarios | Base use cases on actual user activities (e.g., a student enrolling in a class). |
| â Validate with the team | Review the diagram with developers, testers, and business analysts. |
| â Update iteratively | As requirements evolve, refine the diagram in smaller cycles. |
| â Document use cases in detail | Include preconditions, postconditions, and success/failure criteria in a separate document. |
[30] Requirements Engineering â Foundational text on use case modeling.
[27] Identifying Use Cases in Software Requirements â Practical methods for deriving use cases from actors.
[16, 40]Â â Comprehensive literature on requirements engineering and system design.
IEEE/ISO Standards: ISO/IEC 29148 â Use case specification guidelines.
Recommended books:
Software Requirements: Getting it Right the First Time by Ian Sproul
The Unified Software Development Process (RUP)Â â Introduces use case modeling in UML
Member
Librarian
Administrator
Online Catalog System
Payment Gateway
Member:
Borrow a book
Return a book
Search books
View membership status
Librarian:
Check out books
Return books
Update book records
Generate overdue list
Administrator:
Add new books
Manage user accounts
Generate annual report
Online Catalog System:
Search books
Notify member of new arrivals
Payment Gateway:
Process fines
Process renewal fees
Member â Borrow â Include â Return
Librarian â Check Out â Extend â Send Reminder (if overdue)
Admin â Add Book â Include â Update Catalog
This diagram clearly shows who does what, what they can do, and how systems interact.
â
Did I identify all relevant actors?
â
Are the use cases descriptive and goal-oriented?
â
Are all actors connected to at least one use case?
â
Are dependencies (include/extend) correctly modeled?
â
Are there any missing actors or use cases?
â
Is the diagram easy to read and understand?
â
Have I reviewed it with stakeholders?
Creating a use case diagram is more than just drawing lines and boxes â it’s a strategic process that requires deep understanding of user needs, clarity in language, and attention to detail.
While the diagram appears simple, misuse of actors and use cases leads to poor system design, missed requirements, and frustrated users. By following the steps in this guide â identifying actors through real-world questions, deriving use cases from actor needs, and avoiding common pitfalls â you can create accurate, actionable, and stakeholder-aligned use case diagrams.
â Remember: A good use case diagram tells a story â the story of how users interact with the system to achieve their goals.