Order-Dependency Between Use CasesSource: firstname.lastname@example.org
Per-Olof Strand asked:
[...] we have some use cases that need to be done in a specific order, i.e. use case A has to be done before use case B. How is this expressed in UML?
Huseyin Angay replied:
If there are ordering dependencies between use cases, it is better to show these within one use case that <<includes>> or <<uses>> (whatever) these use cases. Call this a sequencer use case, if you want.
[...] if you have use cases following each other, you have actually broken down a single use case in the DFD fashion.
And why is this not good?
It is not good because it gives you stove-pipe use cases. Each use case relies on something else happening before it. You cannot introduce anything into the middle without disturbing the sequence, whereas having separate use cases makes it look like they are independent and leaves you open to that sort of error.
The sequencer use case solution solves this by centralizing the control of the sequence. The use cases that are being sequenced can now be used in other contexts -- something you could not have done with nose-to-tail use cases.
You might have four use cases called:
Anyway, my sequencer use case might look like this.
Alistair Cockburn, Structuring Use Cases with Goals
Alistair Cockburn, Writing Effective Use Cases
Geri Schneider, Jason P. Winters and Ivar Jacobson, Applying Use Cases: A Practical Guide