1

I am to create a UseCase diagram for an existing web program. Unfortunately I am very unsure about UseCase, I like to mix it with other UMLs.

For this purpose, I have picked out the order page.

There are 3 different users, the admin, driver and customer.

The admin can view all orders and has the ability to create a new order. The driver can see his own orders, as well as orders he can accept. The customer can see his own orders, as well as place a new order.

There is a possibility to choose between the standard view (row view) and a widget view of the meta information of the order.

Last but not least, there is the possibility to click on one of the orders and a single order overview will open.

Based on this I have now created a UseCase diagram, my first question would be: Is this all correct, with the informations i gave?

UseCase-Example-Picture

Will this then become a huge UseCase diagram? Or should this rather be done page by page for web applications? For example, if this is the order overview and I now have the use case that I change the page (In this case, when I go to the single order overview). And is there a way to make this look cleaner? All these extends/includes on 1 place looks confusing.

I'm afraid I don't know if I'm doing this only partially right, or completely missing the point.

Geert Bellekens
  • 12,788
  • 2
  • 23
  • 50
Daniel H
  • 21
  • 3

1 Answers1

1

What you need to remember is that Use Cases are about added value and not about technical realization. That's really hard for tech people and that's why they always start functional decomposition. So looking at the above, the only use case is Show Order and nothing else.

Login is no use case from that perspective. It is just a constraint you apply to certain use cases.

You just have focused on the Show aspect but likely there's also add/edit/delete. Such CRUD can be dealed with in variuous ways and there's no general rule. There might be a Manage and a Show or what ever combination along with constraints.

Basically, when your UC diagram resembles a spider web your design is likely broken.

qwerty_so
  • 35,448
  • 8
  • 62
  • 86
  • Thanks for your time. I see that with log-in. But im not quite sure with "Show Orders and nothing else" In this case I would only make a use case "Show Orders" from the user? All 3 users can view the orders in certain ways, whether all or only their own. Is it not a use case if the customer switches the view e.g. to Widget? I'm just a bit confused, because first there is a row view, so that would not be a use case, but you also have the possibility to change this. – Daniel H Jan 04 '21 at 15:44
  • If I understand you correctly, my <> on "Show Orders as Row" is wrong. I could change this together with the <> "Show Order as Widget". These two then as a new <> "Change Order View". Or, is changing the view more of a technical thing and the only other use case in this case would be "Create new order" and "Show single Order". – Daniel H Jan 04 '21 at 15:45
  • I mean it as I said: there is only a single UC. Everything else you put in is technical realization. The only added value is that you can see an order. It is completely irrelevant how this is being presented. – qwerty_so Jan 04 '21 at 16:12
  • I am able to create a new order on this page, this looks like a UseCase for me. I understand why changing the apperance doesn´t count as a UseCase, but isn´t the creation of a new ticket a UseCase? – Daniel H Jan 05 '21 at 08:24
  • I recommend you take a read: Bittner/Spence Use Cases Modeling. And yes, I oerlooked the `Create` which is a single new UC (part of the CRUD stuff I was referring). – qwerty_so Jan 05 '21 at 09:14
  • Thanks, my last question would be why "Show single order" isnt a UseCase. I have a overview of orders with meta informations, im able to click on one of these orders to get to a new tab with all informations to the single order. In my eyes this should be the 3rd UseCase. 1. Show All Orders 2. Create New Order 3. Show Single Order – Daniel H Jan 05 '21 at 12:45
  • It depends. That's already a presentation detail. Important is the `Order` per se. Whether you show a single one or a list is secondary. One can debate where to make a split and defining something to be a new added value. In any case I'd start modeling UCs with the very basic added values. Everything can be overdone easily, but it's not for the good. – qwerty_so Jan 05 '21 at 13:04