I'm currently struggling with how to handle an alternate (or exception) flow on an alternate flow in Use Cases.
I've met several business-specific examples in which I needed an alternate flow in an other alternate flow,
or an exception in an alternate flow. We use Enterprise Architect, in which it isn't possible to define an alternate flow within an alternate flow, or an exception flow in an alternate flow.
I tried an other tool I stumbled upon while searching google (caseComplete) but it had the same problem. That's why I don't know if this is a correct way of working, and I'm searching for another way to correctly define this kind of nested alternate flows.
I tried to make the next example a bit more generic to spare you the business-details, but you can assume that there are more situations in which I'd need an alternate flow within another alternate flow.
7. system shows list of default options.
8. user selects default option.
9. system adds default option to order.
10. system places order.
8a. Alternate: option not in list.
8a.1 user enters option not in list.
8a.2 system asks to add option.
8a.3 user confirms addition of new option.
(back to 10)
8a.3a Alternate: user doesn't want to add option.
8a.3a.1 user reject option addition.
8a.3a.2 system adds not-default option to order.
(back to 10)
So two questions:
1) Is this a correct way of describing Use Case Scenarios?
2) If this is a correct way of describing this kind of nested alternate flows, how could I solve this in Enterprise Architect?
I could switch the “basic path” and the “alternate path”, so that the alternate flow is a first level alternate flow, but in that case, my basic path wouldn’t be the “basic path” anymore, and I would consider this a dirty solution.
7. system shows list of default options.
8. user enters option not in list.
9. system asks to add option
10. user confirms addition of new option.
11. system places order.
8a. Alternate: option already exists
8a.1 user selects default option.
8a.2 system adds default option to order.
(back to 11).
10a. Alternate: user doesn’t want to add option.
10a.1 user rejects option addition.
10a.2. system adds not-default option to order.
(back to 11).