Bidirectional Interaction

There are cases in which two interactions are so closely related that they can be treated as being the same interaction. Consider the following example:

Here, the withdrawal is represented as two interactions. In the first interaction, a customer makes a request to withdraw a certain amount of money from an account identified by an account number. A bank teller returns cash to the customer in the second interaction. These two interactions actually belong to a single unit of interaction between the customer and teller. We can model the interaction as follows:

Placement of labels on bidirectional interaction links makes a difference in how we interpret the interaction. If we place the label withdraw (account#,amount) in the middle of the bidirectional arrow, we cannot know whether the customer or the teller is requesting a withdrawal. Thus we always place the label on the destination-object side.

In the case of interaction descriptions on both ends of a bidirectional being identical, we write only one description and place it in the middle as the following example shows:

Here, a seller negotiates the price of something with a buyer and vice versa. The interaction descriptions on both ends are the same. Therefore, we place the label in the middle to avoid redundancy.

Go to the Specifying Interacting Objects

Go to Special Interactions

 OSM Home Page CS Dept Home Page  BYU Home Page

Last updated 13 October 1994.
by Lei Cao (