Search code examples
umluse-case-diagram

Simple Use Case Diagram - UML


I have a web page with a graph made up of many nodes inside. The user can obviously view the graph (use case: preview the graph). It can also filter the nodes of the graph based on the argument and the difficulty and in that case the graph updates itself highlighting the nodes of interest (use case: filter nodes).

My problem is: does it make sense to insert an «include» like the one in the figure? I think so, since when the graph is updated the user displays the preview of the graph that has been updated again.

enter image description here

EDIT: This is the graph; on the right there is the FILTER panel to be able to filter by difficulty and topic. enter image description here


Solution

  • UML semantics

    «include» means that a use-case is ALWAYS included in another.

    We therefore understand from your diagram that Preview graph is an independent set of behaviors but that it can also be included in Filter node. In consequence filtering always implies previewing.

    It's formally correct and the meaning seems to match your narrative. Moreover it highlights the reuse of set of behaviors.

    Use-case logic

    However, use-cases are in principle user goals, not features or functions that are decomposed in more an more details. And your narrative seems to describe features and user-interface much more than goals.

    Moreover, an «include» does not represent a sequence. If Filter node includes Preview graph this does not mean that filtering leads to previewing, nor event that filtering happens before previewing.

    Take a User perspective

    While we could argue that previewing or filtering could be user goals, it is clear that previewing is not a subgoal of filtering.

    So what is the real goal for the user here? Could it be to Navigate in the graph? How it is done, is user-interface detail: do we just browse through a picture? do we offer filtering to facilitate the navigation? do we use coloring to highlight some parts ? do we zoom-in to see more? All these are (interesting) features but not independent use-cases.

    Edit after your edit

    Your screenshot reinfocres what I said before: filtering is just a mean to navigate more easily in the preview. I'd recommend not to consider it as a use-case.

    If despite my advice you want to show the filtering on your diagram, then you should use <> to show that the filtering behavior may enrich the navigation behavior:

                                                   <<extend>>
    actor --------- Previsualize/Navigate graph <-------------- Filter interests