# Use case

In the browser, an use case may contain other use cases, actors (classes stereotyped actor), classes, use case diagrams, sequence diagrams, collaboration diagrams, and the relations, in any order :

Define a use case nested in an other one in the browser is a practical way when a use case is refined into sub use cases.

The relations between use cases presented in the browser are the inheritance and dependency.

## Menus

The menu appearing with a right mouse click on a use case in the browser are something like this, supposing it is not read-only nor deleted :

### Menu : edit

edit allows to show/modify the use case properties with the following dialog :

The stereotype of a use cases doesn't have a special meaning for BOUML.

The editor button visible above and associated here to the description, allows to edit the description in an other window, or to call an external editor (for instance Xcoral) specified through the environment variable BOUML_EDITOR. Note that this external editor have to create an own window, its parameter is the pathname of the file containing the description, its execution is done in parallel with BOUML which looks each second at the file contents to get the new definition until the dialog is closed (I do not like very much this polling but this works even QT isn't compiled with the thread support).

### Menu : edit drawing settings

This dialog allows to specify how the sub diagrams must be drawn by default.

Refer to drawing, for the settings concerning the use cases.

### Menu : delete

The delete entry is only present when the use case is not read-only.

Delete the use case and all its children, and all the representation of them in the opened diagrams. After that it is possible to undelete them (from the browser) until you close the project : obviously the deleted items are not saved !

### Menu : referenced by

To know who reference the use case through a dependency or an inheritance, show a dialog, for instance :

### Menu : mark

See mark

### Menu : tools

The menu entry tool is only present in case at least a plug-out may be applied on the use case. The selected tool is called and applied on the current use case.

### Default stereotypes

The dialog allowing to set the default stereotypes has a tab reserved for the use cases :

UML propose a simple line for the relation between use cases and actors/classes. I propose also an arrow because I prefer this representation.

## Drawing

A use case is drawn in a diagram with a sizable ellipse, the available options are :

- use case color

- automatic label position : this concerns the relation's labels, by default BOUML automatically move the labels associated to a relation accordingly to its extremities. If you do not like how BOUML place the labels, set this option to false and you will be the master (note that the labels default position entry of the relation's menus in the diagrams remains available to help you when you are lost).

A right mouse click on a use case in a diagram calls the following menu :

The drawing settings concerns only the picture for which the menu is called.

select linked items select all the items connected with the current one through any line

set associated diagram allows to automatically open the current diagram when a double mouse click is made on the use case representation in a diagram or the browser. After that the only way to edit the use case is to choose the edit entry in the menu.

Previous : deployment view

Next : class