Dilemma:
Write long scenarios in one use case, or split explicitly into several use cases using include and extend relationships?
Craig Larman ("Applying UML and Patterns") recommends the first while Constantine & Lockwood (
www.foruse.com) advocates the second approach. What are your opinions on this?
These are the points I have noted for myself:
Pros for long use cases:
1. Easy and quick brainstorming process
2. Can be on a higher level of abstraction from the user interface implementation.
Cons for long use cases:
3. Causes duplicate use case
4. Does not give a complete picture
5. Sequential description. Normally users have many choices in the order in which they carry out actions
Pros for include and extend:
6. Gives a complete picture of the use of the application (when all use cases are complete.
Cons for include and extend:
7. Forces early decisions on user interface design.
8. Not easily readable for people without knowledge of use case diagrams.
9. Not easily writable for people without knowledge of use case diagrams.
What is the best? I am leaning towards avoiding too many include/extend relationships and trying to capture typical use scenarios instead of trying to create a diagram of the whole user interface at once. I focus on reasons 1, 2, 7, and 8.
Hope to start a discussion that will give me more insight!
Mikkel