I want to create a use case diagram (along with use case scenarios) for my application, but I'm not very familiar with that. My app has a couple of screens, every screen contains some functionality that user can interact with.
Let's assume that it's a car sharing app, and first screen contains two actions to do:
- browse cars → which moves the user to another screen, when he can see a list of cars
- view rental history → which moves the user to another screen, when he can see a list of cars he has rent in the past
I think that these two actions are two use cases, for examlple action "browse cars" is use case "browse cars" with workflow:
- App displays a list
- App downloads data (→ it may lose connection here etc.)
- App displays data
Am I right? Then, the diagram should look something like this (A is the actor)?:
A __ UC1
|___ UC2
Next, from "browse cars" screen I can, for example, see car's details, from details I can rent it and so on...
I am not sure, if these actions should be treated as <<extend>>
relationship, or it should be just standalone use case from actor.
I don't think that renting a car, displaying list or car's details should really depend on each other. It depends in the app, because the screens are grouped by functionality and that is the expected workflow in my case, but in other UI design it may differ. Should I care about the expected workflow or not?
Should it be like this:
A -- UC1 ←extend--- UC3 ←extend--- UC4
|___ UC2
or this:
A __ UC1
|___ UC2
|___ UC3
|___ UC4
My app contains many many features (about 40 defined for now) and I have to present every use case on the diagram.
In first case it will look like a tree and will be similar to this:
[]
(Taken from https://creately.com/diagram/example/i04a0uvo5/Group%20Use%20case.)
Is it a valid use case diagram?
In second case it will look like a big column of ellipses, like this, but with much more use cases:
Which should I choose? If I should draw it as in exapmple 2, what is the purpose of <<extend>>
then? Also, "browse cars" and "show car's details" are two independent use cases, or should it be combined to one?
One more question is, if I have two actors which can do the same thing but the result is different, should it be two different use cases or one, and I should include a some kind of condition in use case scenario then?
Thanks