3

I am creating a use case diagram for an elevator control system program, and I am a little confused about using includes for sequential actions. What I mean is that when the user calls the elevator, it is required that subsequently the call button light must turn on and the elevator must go to the called floor. After the elevator goes to the called floor, it is required that the doors open. There is other functionality I will add, but just consider this simple case.

Are my arrows pointing the wrong way? It's a little confusing to think about a process backwards.

Should the arrow point to the action that happens first rather than second?

enter image description here

Here is what it would look like with the arrows the other way enter image description here

*edit: question title

1 Answer 1

6

What you are doing (and it's a typical mistake at the beginning) is decomposing how to execute a single use case as "smaller use cases". As a result you're getting a messed diagram with a ton of includes (and usually also extends).

As a rule of thumb, if the number of your dashed arrow exceed 1/3 of the number of use cases you've surely fallen for this trap. In real life that'll be closer to 1/10 to start reconsidering your diagram (that is majority of the diagrams will have zero inclusions or extensions).

I'd say the proper diagram here would have just... one use case: "take a passenger to the selected floor". Only in other diagrams would you show steps to complete the use cases.

I'd strongly recommend you read a bit more about what a use case is (and what isn't).

1
  • 1
    Indeed, use-cases are about user goals and independent of the internals of the situation. Moreover, there is no sequence/ordering between use-cases. OP tries to use UC instead of going for a an acivity or state diagram.
    – Christophe
    Commented Mar 24 at 15:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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