Patent ID: 9395954
Filing Date: 2016-07-19
CPC Classification: G06F,G06Q

Claim Text:
1. A method for performing functional decomposition of a software design to generate a computer-executable finite state machine (FSM), the method comprising: decomposing functions in the software design into data transformations and control transformations repetitively until each of the decomposed data transformations consists of a respective linear code block; wherein the data transformations accept and generate data, and the control transformations evaluate conditions and send and receive control indications to and from associated instances of the data transformations; converting the software design to a graphical diagram database, the graphical database including a machine readable representation of a plurality of graphical symbols interconnected to hierarchically represent the data transformations and the control transformations in the software design, wherein: a first type of the graphical symbols comprise process symbols indicating functional decomposition elements within the software design, and a second type of the graphical symbols comprise control flow indicators between the functions, which indicators have transformation-selection conditions associated therewith; and the process symbols including control bubbles or symbols and process bubble or symbols, wherein the control bubbles or symbols indicate the control transformations, and the process bubbles or symbols indicate the data transformations; translating the data transformations and the control transformations into states in the FSM; and translating the transformation-selection conditions associated with the control transformations into state transitions in the FSM; checkpointing state information in a storage system; adding an automatic error process to the FSM, the automatic error process halting execution of the FSM as it has entered a failed state and exiting with a debug flag set; copying saved checkpoint data to a checkpoint debug file when the debug flag is set; wherein the translating steps are performed by a computer system.