Model Refactoring

 A key element of modeling scripts within MiceOnABeam is the ability to create multiple sub-states contained within any state to form hierarchical states. This Composite State can then serve as a higher-level abstraction that hides away more detailed behavior. Typically, a designer will start by laying out the high-level view of the script's behavior and then add in additional decompositional detail as the design progresses.

Life however is rarely that linear in practice; the ability to come at a design from multiple directions and to restructure or refactor the design as development progresses is essential.

To that end, in addition to providing basic Cut/Copy/Paste of modeling components, MiceOnABeam supports advanced capabilities such as Aggregate, whereby a group of selected components can be pushed down a level, to become contained within a newly-created Composite State.

The reverse of this operation is called Decompose, whereby the contained components of a Composite State are removed and brought up a level within the state hierarchy and the (former) Composite State is then removed.