Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to draw a use-case diagram for a software project.

Two requirements for the software I am trying to model in use-case diagram are:

  1. A customer (i.e. Client) should be able to cancel its previous request. In this case, the client must select the relevant request from their list of request.
  2. A travel agent should be able to cancel a request. in this case, the agent must the client from the list of clients and the request from the list of request issued by that client.

How should I model this two requirements in a UML user-case diagram? I've ended up to something like this:

My use-case diagram

share|improve this question
up vote 3 down vote accepted

The two users do not interact in this use case and should both be on the left (neither are an external system that is invoked).

You could say that the two users have slightly different use cases - clients can only cancel their requests, travel agents can cancel any request. You can then say they both extend the same basic use case.

See approximate diagram bellow (their should only be one use case "Cancel a request" at the right with two arrows entering it).

Also, don't forget to box the system's boundaries.

               |                                                             |
Client --------|--> (Cancel own request)--<<includes>>-->(Cancel a request)  |
               |                                                             |    
Travel agent --|--> (Cancel any request)--<<includes>>-->(Cancel a request)  |
               |                                                             |
share|improve this answer
  • The use case diagram is correct, just move the client to the left hand side

  • Use cases shouldn't be concerned with how something will be implemented. When I look at the use case I don't care how the requests are selected.

share|improve this answer

That's largely how I've done them in Software Engineering. The Use Case diagram is to show relationships between Agents and Use Cases so you've done it correctly as far as I know. One small nitpick, typically primary users go on the left and back end users are on the right though they can be on the same side if you want. It's more of a convention that a rule.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.