2

So I'm creating a Use Case Diagram from a system I use at work. It's a simple Restaurant system to register orders, products etc.

My main concern with the Use Case Diagram is whether or not I should add 'Printers' as Actors. I added an image to this thread so you can visualize exactly what I mean.

enter image description here

Does this make any sense? Is this a correct use of Actors who are not persons such as Admin or Employee? If not, what should I do so it shows a correct Use Case Diagram?

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • I think the «extend» between `Register Order` and `Print Order` should be an «include» though (or otherwise all the print use cases should be extending their main use case) having one extend where the other are included does not make sense. – Geert Bellekens Oct 28 '18 at 06:30
  • Hi Geert, the thing is that the Kitchen Printer only prints if the items are FOOD. Meaning that if it would be DRINKS such as water or soda, it shouldn't print it in the kitchen. – Kenneth De Coster Oct 29 '18 at 17:07
  • I understood that, but I still don’t see a reason to make Print Order an extend. – Geert Bellekens Oct 29 '18 at 18:09
  • Because not every time the employee registers an order it has to print in the kitchen. If I write <> there, then it means that if the employee only registers drinks (so no food), it will print out in the kitchen. The Fiscal Printer doesn't have any conditions, it has to print whenever the connected use cases are executed. – Kenneth De Coster Oct 29 '18 at 21:30
  • You might want to read up on the difference between include and extend. There's no reason why you can't execute an included use case conditionally. – Geert Bellekens Oct 30 '18 at 04:42
  • Are you sure about that? I'm totally new to the world of UML but I have been taught that include always will be executed no matter what condition. Extend in the other hand requires a condition to execute. I can be totally wrong about this though! Like I said, still learning most of it! – Kenneth De Coster Oct 30 '18 at 17:22
  • Yes, I'm sure. What you have been taught is a gross oversimplification of what an extend relationship is. Please read the [UML specs](https://www.omg.org/spec/UML/2.5/PDF) yourself starting at page 638 – Geert Bellekens Oct 30 '18 at 19:14

3 Answers3

1

Well, yes. The printers are actors, though it sounds trivial or silly. Just the fact that you see there are two different printers is worth it.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
0

An Actor is defined as any user, software/hardware or an external system, that uses the services of a system.

You are correct in defining the printers as actors in your system, as they would be classified as secondary actors.

Although they do not input into the system like your admin and employee actors, they give output from the system (in this case, they print food orders and receipts).

Kebab Programmer
  • 1,213
  • 2
  • 21
  • 36
0

I think it depends on wether this use case diagram is part of the requirements or not. In requirements you want to agree with the client and users the different kind of users that Will use the system, the goals of this users detail the interacion between the system and the users.

I dont see how it is relevant from the requirements point of view that the system Will use this two printers.

MABC
  • 576
  • 2
  • 11
  • 29