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.
EDIT: This is the graph; on the right there is the FILTER
panel to be able to filter by difficulty and topic.
«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.
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.
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.
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