Adding Alternative Paths
To add an alternative path to a use case, navigate to the use case in the tree view at the left of the main window, then click the ‘+’ to expand the paths and actors under the selected use case.
From the main menu select Edit | Add path to create a new child alternative path under the selected use case, or click the ‘Add path’ toolbar button as indicated by the red arrow in the screenshot below. The new alternative path editing panel appears to the right of the tree view, with the new path selected (highlit in red) in the tree view:
Note that the new path has a temporary descriptive name of ‘Alt path 1’ in the tree view. This is because you have not provided a description of the extension point for the new path yet, nor a description of the branch condition that causes this alternative path to be taken.
Provide a brief description of where this new path branches off another existing path, and a description of what must be true for the alternative path to be taken. Once you move the focus from these input text controls, the name of the alternative path will automatically change to the format ‘<extension point description> if <branch condition description>’.
You can now provide a description of the steps in the alternative path in the ‘Brief/casual description’ field, and a description of where the alternative path remerges onto the originating path in the field labelled ‘Remerge point’. A completed new alternative path is shown below:
Although not shown in the two screenshots on this page, it is now also possible to specify whether the alternative path is a concurrent, parallel sequence of interactions, or the more conventional ‘one or the other’ branch in the sequence of interactions that might be captured. When an alternative path is flagged as being concurrent by checking a check box near the top of this page, it means that the sequence of interactions between users and the system for the alternative path are taking place independently of those on the originating path. At the end of the alternative path, both sequences have to reach the merge point before the use case can proceed with the subsequent step. Hence this would be a rendez-vous or synchronisation point in the use case.
Concurrent paths are useful when modelling business processes with use cases, where several business processes might well be executing independently of each other, but need to synchronise at key points in the process.
Editing Alternative Paths
To edit an existing alternative path in a use case, navigate to the use case in the tree view at the left of the main window, then click the ‘+’ to expand the paths and actors under the selected use case. Select the alternative path that you wish to edit.
You can now edit the brief description of where this path branches off its existing parent path, and can edit the description of what must be true for the alternative path to be taken. Once you move the focus from these input text controls, the name of the alternative path will automatically update to the format ‘<extension point description> if <branch condition description>’.
You can also edit the description of the steps in the alternative path in the ‘Brief/casual description’ field, and a description of where the alternative path remerges onto the originating path in the field labelled ‘Remerge point’.
Deleting Alternative Paths
To delete an existing alternative path in a use case, navigate to the use case in the tree view at the left of the main window, then click the ‘+’ to expand the paths and actors under the selected use case. Select the alternative path that you wish to delete.
You can either select Edit | Delete path from the main menu, or click on the delete path button on the toolbar as shown below:
Note that a confirmation dialog appears to make sure you intended to delete this path. This is because your child path may be referred to by other paths, or maybe even by other use cases that are in an extension relationship with this use case. Make sure these dependencies are removed before deleting a path from a use case.
Note too that you will not be able to delete the primary path of a use case, for obvious reasons!