主权项 |
1. A method for performing functional decomposition of a software design to generate a computer-executable finite state machine, 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 including 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 bubble 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; andthe bubble symbols include control bubbles and process bubbles, wherein the control bubbles indicate the control transformations, and the process bubbles indicate the data transformations; translating the data transformations and the control transformations into states in the finite state machine, wherein, at a given decomposition level, the first state is one of the control transformations and subsequent states each comprise a decomposed said linear code block with no control structure; translating the transformation-selection conditions associated with the control transformations into state transitions in the finite state machine; wherein the translating steps are performed by a computer system; and generating the finite state machine by performing steps comprising:
comparing successive decomposition levels to determine if lower-level process bubbles are associated or un-associated, wherein the process bubbles are associated if one of the control bubbles links together a pair of the process bubbles, otherwise the process bubbles are unassociated,wherein for each of the lower level process bubbles that are associated: (i) the single control bubble that associates the process bubbles of level x forms the first state on the finite state machine of level (x+1), (ii) each of the control bubbles at level x is translated into a state transition vector of the finite state machine of level (x+1); and (iii) each of the process bubbles of the next lower decomposition level is translated into a state of the of the finite state machine of level (x+1);if any of the process bubbles of level x are unassociated, then: (i) decomposing any non-recursively defined process bubble into a decomposed process bubble of level (x+1); and (ii) wherein decomposition is complete when a level (x+1) decomposition consists of un-associated process bubbles. |