design, implement, and debug. Segregating all synchronization behavior into IDAs means that this code is now identifiable and localized rather than being scattered throughout the system. The fact that IDAs are typed means that once an implementation is debugged it can be reused with confidence.
All of these entities along with the connections between them cannot exist in free space; they must be contained within a subsystem. Subsystems provide context and control for the entities they contain and can contain other subsystems. Subsystems are named and their names must be globally unique within the bounds of a MASCOT system; activity, IDA, and connection names, on the other hand, need only be unique within the boundaries of a subsystem. Within a MASCOT system there is always at least one subsystem, the ‘global’ subsystem, which contains everything else.
Within a subsystem, connections are either local, ie. internal to the subsystem, or external, ie. they cross the subsystem boundary. External connections have a defined scope that controls their visibility outside the subsystem boundaries; please refer to the example for a detailed explanation of connection scoping. External connections are the way a designer ‘wires’ subsystems together.
The ‘contains’ relationship is central to constructing MASCOT systems and defines the relationship between subsystems. The contains relationship is not hierarchical; there is no implied dependency between a subsystem and its container. A container must satisfy the contained subsystem’s external connection requirements but beyond this the relationship simply states that one subsystem lies completely within another’s boundaries. The contains relationship does have implications in terms of control; any command applied to a subsystem will propagate to all of the subsystems it contains. For example, terminating the global subsystem will terminate every subsystem know to the machine and cause it to exit. The easiest way to visualize this relationship is to think of subsystems as pluggable.