[SDL Forum Society - Logo] Tutorial on SDL-88
Belina, Hogrefe (edits Reed)

2.1 System structure

Home Up Next

The system definition constitutes the top level of detail. The system is what an SDL-88 model specifies: an abstract machine communicating with its environment, see figure 5.

wpe7.gif (3376 bytes)

Figure 5: system and its environment
Note: This is not an SDL-88 diagram.

A system should contain everything to be defined (it should be complete and comprehensive), but nothing that does not need to be defined (if there is no junk, there will be no confusion). A system communicates with its environment via channels. The communication mechanisms used between the system and the environment are the same as those used inside the system.

In SDL/GR the system definition is called system diagram. Figure 6 shows an example.

A system diagram contains the following elements:

system name (in figure 6 Daemongame);
signal definitions (for the types of signals interchanged between the blocks of the system or between the blocks and the environment; in figure 6 Newgame, Probe, etc);
channel definitions (for the channels connecting the blocks of the system to one another and to the environment of the system; in figure 6 Daemonserver, etc.);
data type definitions (for the user defined data types, visible in the whole system and its environment; in figure 6 there are no user defined data types);
block definitions (for the blocks into which the system is partitioned; in figure 6 the system contains only one block: Blockgame).

There may be some other elements contained in the system diagram, like signal list definitions and macro definitions; these elements are not covered in this tutorial

A signal definition contains a signal name and the types of values conveyed by the signal (in figure 6 the signal Score can convey a value of the type Integer).

Definitions written in the textual syntax (such as the description of signals and user defined data types) are placed inside a text symbol in SDL/GR.

A channel definition contains a channel name, a list of signal names for signals that can be transported by the channel. and the identification of the endpoints of the channel (block or environment). A channel is represented in SDL/GR by a channel symbol (a line with an arrowhead symbol on the line or at the end of the line). The channel name should be placed close enough to the channel symbol to avoid ambiguity. The list of signal names associated to the channel are given within brackets and placed close enough to the arrowhead indicating the direction of the signal flow. For example, in figure 6 the channel Gameserver.in may transport the signals Newgame. .... Endgame from the environment to the block Blockgame.

A channel may be bi-directional, in which case the channel symbol has two arrowheads. 

If the arrowhead is at the end of the line, each signal is delivered to the destination as soon as it is sent: the channel has no delay in the direction of the arrowhead. Otherwise for an arrowhead part the way along a line (as in the example), there is a possibly non-zero delay between a signal being delivered to the channel and reaching the destination. How long the delay is or whether it varies is not covered by SDL-88.

The complete system definition normally requires more than one diagram. For example, in figure 6 the SDL-88 referencing mechanism is used for the block Blockgame, which completes the system. The rectangle containing the name of the block is only a reference to the block, indicating that the actual definition of the block can be found somewhere else. How the referenced item is found is not prescribed by SDL-88 and will be determined by the SDL-88 support environment. In this case Blockgame is in figure 7. It is also allowed to place the block definition (the block diagram) inside the system diagram (in place of the reference), but this generally causes the system diagram to be overloaded, and is not advisable.

wpeB.gif (10704 bytes)

Figure 6: A system diagram
This is an SDL-88 diagram

Home Up Next

Contact the webmaster with questions or comments about this web site.
Copyright © 1997-May, 2013 SDL Forum Society