Many behaviors can be prescribed using either the constraint approach or events. Each type of behavior specification has advantages and seems to appeal to different groups of authors. Constraint authoring is highly modular. When the behavior of a model is specified using constraints, the specifications for the values of attributes are separated from each other. Every attribute 'owns' the constraint that determines what its value will be.
Authors can think about behavioral specifications in very small modules.
In many cases, this may enhance the maintainability of a simulation. Tracing the causes of behavior is easy in a constraint-based simulation. To find out why an object is currently visible, an author can simply select it, open its data view, and examine the constraint on its Visibility attribute. In the attribute data view for the object's Visibility, the author can select well-formed expressions within the constraint and evaluate them. This would open an attribute data view on that attribute, and its rule could be examined.