2
votes

I've recently been trying to get my head around the include and extend dependencies that are used in use case diagrams. I thought I had fully understood the difference between them until I came across this sample model as an exam question solution.

Use case diagram example

I am focusing mainly on the use cases towards the top of the diagram. Now surely if a customer wants to place an order for an item, it is essential for the customers credit to be verified, it isn't something that should be optional... Therefore the 'place order for goods' use case should be dependent on the 'verify credit' use case by using the include dependency.

So that being said, my interpretation of the dependency is shown in the diagram below.

Correct? Use case diagram example

Could someone please give me their opinion on what should be the correct way of representing this dependency? (include or extend??)

Thanks for your help.

1

1 Answers

4
votes

No, it is not correct. The meaning of include/extend is about optionality of use cases (whether you implement them at all/sooner/later) and not about whether one use case "calls" another one. A use case itself must be complete in the sense that it returns additional value to its actor. Don't fall in the pit to make functional decomposition with use cases. This is wrong and it turns your use case diagram into a spider's web. Remove all include/extend and connect Produce Quotation directly to its actor.

You might want to use roles and generalization. E.g. you could generalize from Spec. Team to Customer to tell that they can act as customer and link a constraint that it's only meaningful for a certain use case (Place Order for...).

My condolence for using Rational - ;-)