Search code examples
umluse-caseactivity-diagramuse-case-diagram

Activity Diagram vs Use-case diagram


I'm trying to model the behavior of a dashboard system, and more precisely how a user could navigate between the different features that are offered.

In a previous question I have explored use-case diagrams for this purpose. But it turned out that these are not well suited for user navigation and sequence of interactions. I therefore have decided to keep my use case simple as in the answer to that question.

I have now created an activity diagram for my use case. But I am new to the activity diagrams, and am not sure that it represents the intended flow correctly (i.e. user logs in, choses to go to the dashboards and views the first dashboard, then may drill down in more detailed dashboards and filter the data that is viewed; unregistererd users have first to go through a registration process with the system administrator).

Here the result:

Updated AC-Diagram

I already know I should insert the different roles (user/admin) but is this diagram reflecting the described flow or are there obvious mistakes?


Solution

  • Your diagram roughly reprensents the intended design.

    First some minor issues, that you could quickly discover in popular introductions to AD:

    • The start and end should indeed be modelled with a black circle, and a black surrounded circle. But you already know.
    • There are no diamonds with question as in traditional flow-charts: The diamonds stay small, and the condition is written as a guard between brackets on the top of the arrow.
    • All arrows are simple arrows (no white triangle - that has a completely different meaning)

    Then there is a more subtle issue:

    • when there are two or more incoming arrows, the action only takes place when all the incomming arrows are simultaneously active. This is why qwerty_so mentioned in the comment that Login and Insert username and password are stuck: only one incoming arrow can be active, so the actions will never start.
    • to solve this, you need to add merge-nodes: it's again diamonds, with several incoming arrows and one outgoing arrow.

    Then it is not clear: the filter data only applies to the last dashboard but will never result in any subsequent action ?

    Then, do I undesrtant well: as soon as the user comments a dashboard, he/she will leave the dashboard and go to the next ?

    Finally, you don't need to detail too much: you could have some simpler actions that combine several more detailed steps. It's like zooming in/out. If you put all the details in one diagram, it becomes very difficult to read.