warreee
warreee

Reputation: 527

INCLUDE statement in the alternate flow of a business use case

I'm doing a requirements analysis for a system and currently I try to write the business use cases (BUC) and make business use case diagram. I currently use the following guidelines:

This all worked fine for until I arrived at the following situation:

I considered following options:

  1. I keep all the functionality in the the alternate flow, but this makes the alternate flow too long and creates duplicate functionality.
  2. I use extend instead, but this imposes that B is optional while if you are in the alternate flow of A, you have to go through B.

Any thoughts?

Upvotes: 1

Views: 261

Answers (2)

qwerty_so
qwerty_so

Reputation: 36305

From your description you are not making a use case synthesis, but a functional decomposition. This is plain wrong. The point in use case synthesis is to focus on the added value a use case gives to its actor and not to decompose any functionality.

I strongly recommend to read Bittner/Spence and understand the basics before proceeding in the direction you are going - respectively to walk back and aim for the right target.

Upvotes: 0

Ister
Ister

Reputation: 6318

include is used when (and only when) the included UC is run always when the main UC is run.

extend is used when it is possible to finish the main UC without running the extending UC, but in some of alternate flows the extending UC is run as well.

So in your case you should use extend.

It is possible to show extension points. You can use that to explain the logic (clarify that the extending UC is run always when entering the alternate flow). If the logic is more complex, you can also put it in a comment.

I'm not discussing here if your decomposition is a right approach at all (but do expect such discussion from others).

Upvotes: 2

Related Questions