Key SDL-2000 feature: Interfaces
InterfaceNames set of stimuli (input signals, remote procedures and variables) and exceptions of an agent.An implicit interface with the agentís name has all the agentís signals etc. One interface can inherit from one or more other interfaces.
- ChannelCommunication path between agents, or between an agent and the enclosing scope environment. One or two directional, using an interface for each direction.Explicit or derived implicitly.
- SignallistNames a list of stimuli, but does not include definitions.
- GateConnection point to/from an agent(type) for interfaces and channels
The measure of a good structure is well-defined and clear interactions between components. If these are too complex or too much information is passed between components, then there is probably something wrong with the system structuring.
The stimuli handled by an agent determine the interface that it offers. The stimuli generated by an agent determine the interface it requires. Every agent has an implicit interface with the same name as the agent covering each signal, remote procedure, remote variable and exception that it handles. An interface defines a set of handled by an agent. There can be different interfaces defining different subsets of all the stimuli handled by an agent.
An interface can inherit properties from other interfaces. Typically an interface offered by a block will inherit interfaces from agents within the block.
A variable of an interface sort identifies an agent that offers the interface: that is, such a variable can only be associated with the identity of such an agent (or NULL - indicating no agent). It is not allowed to assign the identity of an agent which does not offer the interface to such a variable.
Communication in SDL takes place by channels between agents. However, channels can be given explicitly and are derived implicitly from the stimuli that agents handle and generate. Channels convey the stimuli passed between the agents of the system as signals (for example a remote procedure can be considered as an exchange of signals). Each signal can contain parameters. For convenience a signallist name can be given to a list of stimuli. A channel has one or two arrows indicating the directions in which it conveys stimuli. The stimuli are listed within [ ] associated with each arrow, which can contain interfaces, signallists and individual stimuli.
A gate is similar to a channel but gives a connection point on an agent or agent type and defines a set of stimuli that are handled, and the stimuli that are generated. Such definitions result in implicit channels: for example if a gate on block b1 has interface i1 as outgoing and a gate on block b2 has interface i1 as incoming, there is an implicit channel from b1 to b2 conveying the stimuli defined by†i1.