next up previous contents
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.

3.3.1 Procurement Annotations

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
\begin{figure}
\begin{picture}
(460,200)(0,0)
%\graphpaper[20](0,0)(460,200)
...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}

3.3.2 Call Annotations

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
\begin{figure}
\begin{tabular}{cl}
\begin{picture}
(200,20)(0,0)
\put(30,5){(...
...end{picture}
& Data passing in both directions \\
\end{tabular} \end{figure}

3.3.3 Called Methods

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
\begin{figure}
\begin{picture}
(400,100)(0,0)
%\graphpaper(0,0)(400,100)
\put...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}

3.3.4 Asynchronously executed 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
\begin{figure}
\begin{picture}
(400,100)(0,0)
%\graphpaper(0,0)(400,100)
\put...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}

3.3.5 Reference Annotations

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
\begin{figure}
\begin{picture}
(400,101)(0,0)
%\graphpaper(0,0)(400,100)
\put...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}

3.3.6 Multiple Clientship Relation

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
\begin{figure}
\begin{picture}
(401,100)(0,0)
%\graphpaper(0,0)(400,100)
\put...
...3mm} & \hspace*{2cm}\\
& \\ \hline
\end{tabular} }
\end{picture} \end{figure}