1. A non-transitory computer-readable storage medium containing instructions for controlling a computer system to be operable to: receive a specification of at least one composite computation module type for specifying a behavior of an application software in a hierarchical structure, wherein receive the specification of the at least one composite computation module type comprises: receive a specification of an exit-condition-set comprised of at least one exit-condition, wherein said exit-condition is comprised of a pair of an exit-predicate that specifies a condition under which said composite computation module type exits and an exit-code that identifies said exit-condition; and receive a specification of at least one phased-machine type including at least one phase type, wherein said phase type is comprised of a subordinate computation module type and at least one phase-transition, wherein said subordinate computation module type comprises one of a lower level composite computation module type and a simple computation module type for specifying a behavior of said subordinate computation module type; and wherein said phase-transition is comprised of a target-phase for specifying a next said phase type to become active after said subordinate computation module type exits, and a transition-predicate for specifying a condition under which the phase-transition is to take place; and output a design specification for use to automatically generate software code for the application software, wherein when said application software is executed, a composite computation module instance of said specified composite computation module type is instantiated in which: a phased-machine instance of each said specified phased-machine type is instantiated in which a subordinate computation module instance of each said subordinate computation module type is instantiated, when said subordinate computation module exits, a subordinate computation module instance of the target-phase, which is specified in the phase-transition whose transition-predicate is true, becomes active, and said composite computation module instance exits based on said specification of said exit-condition-set.