Next: 3.4 Inheritance Relation
Up: 3. Yet Another Object Notation
Previous: 3.2 Clientship Relation
Subsections
3.3 Optional Clientship Annotations
Using these optional annotations it is possible to provide additional
information about relationships. As in ION, the
procurement annotations and the call annotations described
as follows will be used.
Procurement annotations are used to specify how a client gets
visibility of the server. The first possibility is that the
client creates the server by itself by creating an instance of the
server class. If this is the case, the client has two
possibilities. It keeps the server hidden from all other objects
in the system accessible only by itself -which would make the
server private, or it gives visibility to other objects
of the system -which makes it exported. The other
possibility is that the server is created by another external
object and the client gains visibility by means of a method call.
In this case we say that the server is imported.
Graphically this is depicted as shown in figure 13.
Figure 13:
Procurement Annotations
(460,200)
...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}](img21.gif) |
Call annotations are to indicate the class or type of the parameter
passed to the called method. The direction of the information flow is
specified by a combination of an arrow and a parenthesis. This is
depicted in figure 14.
Figure 14:
Call Annotations
 |
The called methods can also be specified easily by putting the name
of the method at the end of the clientship arrow, with a trailing
pair of parenthesis as in figure 15.
Figure 15:
Called Methods
 |
By the use of a ``round arrow'' as a thread symbol, one can
indicate that a method is executed asynchronously.
Figure 16:
Asynchronously Executed Methods
 |
Reference annotations are used to remember the name which a client
uses in order to refer to the server. This is shown in figure
17.
Figure 17:
Reference Annotations
 |
As the client-server relationship can be multiple, we extend the
notation allowing more than one arrow from the client to the
server. Moreover, it is possible to have the following scenario:
client C is in a clientship relation with the server S and server
S (as a client) is in a client relationship with client C (as a
server). The multiple clientship relation is depicted in figure
18.
Figure 18:
Multiple Clientship Relation
 |