Source: https://patents.google.com/patent/WO1998021650A1/en
Timestamp: 2020-01-25 18:44:41
Document Index: 764287756

Matched Legal Cases: ['art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 26', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400', 'art 400']

WO1998021650A1 - Executable flowchart - Google Patents
Executable flowchart Download PDF
WO1998021650A1
WO1998021650A1 PCT/US1997/020241 US9720241W WO9821650A1 WO 1998021650 A1 WO1998021650 A1 WO 1998021650A1 US 9720241 W US9720241 W US 9720241W WO 9821650 A1 WO9821650 A1 WO 9821650A1
PCT/US1997/020241
1996-11-12 Priority to US08/748,092 priority Critical patent/US5893105A/en
1996-11-12 Priority to US08/748,092 priority
1997-11-10 Application filed by Micrografx, Inc. filed Critical Micrografx, Inc.
1998-05-22 Publication of WO1998021650A1 publication Critical patent/WO1998021650A1/en
240000008426 Persea americana Species 0 description 2
235000005426 persea americana Nutrition 0 description 2
EXECUTABLE FLOWCHART
In accordance with the present invention, the disadvantages and problems associated with flowcharting have been substantially reduced or eliminated. In accordance with one embodiment of the present invention, a system operating on a computer creates an executable flowchart . The system includes a constructor that generates objects that define the executable flowchart. The objects include a first shape and a second shape. A data structure stores information associated with the objects. An entity located at the first shape accesses the data structure to accumulate information associated with the first shape. The entity advances from the first shape to the second shape to associate at least a portion of the accumulated information with the second shape in response to advancing.
Important technical advantages of the present invention include providing a system and method operating on a computer in an object-oriented environment that allows the user to construct an executable flowchart without writing, entering, or otherwise providing program code to control flowchart execution. As a result, flowcharts and their benefits are readily accessible to an ordinary user of the present invention. Furthermore, in stark contrast to previous systems and methods, according to the present invention, flowchart 26 may be constructed, modified if necessary or desirable, and fully or partially executed in real time without transporting between platforms. As the user constructs the flowchart using the constructor, the system 12 simultaneously generates corresponding objects and other associated information and processes to allow the user to execute the flowchart in a straightforward manner as the entity progresses through the flowchart. Another important technical advantage of the present invention is that the modularity inherent in the objects that define the flowchart allows the user to execute one or more selected portions of the flowchart for testing or other purposes without executing the flowchart in full. Other important technical advantages are apparent from the accompanying figures, description, and claims. BRIEF DESCRIPTION OF THE DRAWINGS
FIGURE 1 illustrates an exemplary system operating on a computer for constructing, customizing, and executing an executable flowchart according to the teachings of the present invention; FIGURE 2 illustrates an exemplary wizard interface according to the present invention;
FIGURE 3 illustrates an exemplary method performed on a computer for constructing an executable flowchart;
FIGURE 4 illustrates an exemplary object-oriented data structure;
FIGURE 5 illustrates an exemplary method of executing a flowchart according to the present invention;
FIGURE 6 illustrates an exemplary method of executing an entity according to the present invention; FIGURE 7 illustrates an exemplary flowchart; and
FIGURE 8 illustrates a method for executing an exemplary flowchart.
DETAILED DESCRIPTION OF THE INVENTION FIGURE 1 illustrates an exemplary system 12 for constructing, customizing, and executing an executable flowchart in an object-oriented environment. System 12 may be operated by one or more persons, computers, or other processing devices suitable to determine, specify, direct, or otherwise control the operation of system 12.
In one embodiment, system 12 includes one or more palettes 22 and one or more wizard interfaces 24 that are used to construct, customize, or otherwise manipulate an executable flowchart 26 in an object-oriented environment. Palette 22 may appear visually on output device 18 as a box or other enclosed region containing physical shapes, lines, directional indicators, organizational layouts or other functional options, and other suitable flowchart elements or features, with or without accompanying descriptive or other textual information. The physical elements displayed in association with palette 22 correspond to objects 28 and information associated with objects 28 that may be used to construct executable flowchart 26 according to particular needs using wizard interface 24. Flowchart 26, objects 28, and information associated with flowchart 26 and objects 28 may be wholly or partially stored in data structure 30 or other suitable storage location. The features, behaviors, relationships, and other aspects of palette 22, wizard interface 24, flowchart 26, objects 28, and data structure 30 are discussed more fully below. System 12 includes a timer 36 that measures time intervals associated with the execution of flowchart 26. In one embodiment, objects 28 include one or more entities, one or more shapes, and one or more lines that are related in objectspace according to a hierarchical, functional, or other suitable arrangement. Each object 28 may be represented visually using output device 18 as a physical flowchart element. Each object 28 encapsulates, hides, or otherwise conceals from user 10 and possibly other objects 28 some or all of the structure of the information associated with object 28 and the routines, algorithms, functions, scripts, and other processes that implement actions and other behaviors of object 28. Instead of exposing the often complex implementation and other details of objects 28 to user 10, objects 28 present visual interfaces to user 10 using output device 18 that represent abstractions of objects 28.
For example, and referring to the visual presentation of exemplary flowchart 26 shown on output device 18, an abstraction of a shape 40, 41, 42, 43, or 44 (referred to generally as shape 40) may appear on output device 18 as a rectangle, triangle, diamond, circle, or other flowchart element. Similarly, an abstraction of a line 50, 51, 52, 53, or 54 (referred to generally as line 50) may appear as a straight, curved, solid, dashed, or other physical line suitable to connect visual abstractions of shapes 40 or other lines 50 to one another. Abstractions of entities 60 and 62 (referred to generally as entity 60 and illustrated as a dashed line) may appear during execution of flowchart 26 as a visual cue, such as a solid, shaded, or colored dot or other region, a toggling effect, a size or color change, or any other appropriate indicator of the progress of entity 60 through flowchart 26 during flowchart execution. Alternatively, abstractions of entity 60 may not be apparent on output device 18 during execution of flowchart 26. Instead, the existence or appearance of abstractions of shapes 40 and lines 50 may constitute the visual cue that indicates the progress of entity 60. The present invention contemplates any visual abstraction or other representation of objects 28 suitable to allow the user to construct, customize, and execute flowchart 26 in accordance with particular needs. Each object 28 may have one or more associated script modules 2, actions 4, and data field values 6, alone or in any combination. For example, shapes 40 incorporated into flowchart 26 may perform one or more actions 4 or other tasks during execution of flowchart 26 that have been previously specified during flowchart construction. The user specifies the order in which shapes 40 perform actions 4 and defines the relationships between shapes 40 as the user draws, drags, places, locates, or otherwise creates visual abstractions of shapes 40 on output device 18 using palette 22 and wizard interface 24. For example, shape 40 having a visual abstraction that resembles a film strip might be associated with a file specified by the user through wizard interface 24 that causes a movie or other audiovisual work to be displayed on output device 18 in response to entity 60 reaching, progressing through, or encountering film strip shape 40. Shape 50 having a visual abstraction resembling a printer might cause a printer specified by the user through wizard interface 24 to print a document in response to entity 60 encountering printer shape 40. Shape 40 having a visual abstraction resembling a dial or gauge might monitor or allow the user to modify parameters, variables, or other information associated with construction or execution of flowchart 26. The present invention contemplates any suitable actions 4 associated with shapes 40, lines 50, or other objects 28.
A path connects each shape 40 in flowchart 26 to one or more other shapes 40 in flowchart 26 in objectspace. Paths that connect shapes 40 in objectspace also connect visual abstractions of shapes 40 on output device 18 as would be expected from a visual examination of flowchart 26 on output device 18. In one embodiment, system 12 stores various relationships between shapes 40 and the paths that connect shapes 40 in data structure 30 or some other appropriate storage location as the user constructs flowchart 26. The content and arrangement of information associated with shapes 40 and other objects 28 in data structure 30 is discussed more fully below with reference to FIGURE 4. Each path that connects shapes 40 includes one or more lines 50 in objectspace and on output device 18. Each line 50 has inherent or specified directionality and connects a shape 40 to the same or a different shape 40, connects a shape 40 to a different line 50, or connects a different line 50 to a shape 40, depending on the construction of flowchart 26. Lines 50 that connect shapes 40 collectively form paths between shapes 40. In one embodiment, some or all paths available to entity 60 at each shape 40 are related visually to buttons or other suitable indicators on output device 18, such that entity 60 progresses along a particular path from shape 40 based on an interpretation of input from the user.
Entities 60, shapes 40, and lines 50 may each be associated with a suitable drawing application, program, or other tool that allows system 12 to present visual abstractions of objects 28 to the user on output device 18. The present invention contemplates objects 28 associated with other suitable applications, programs, or tools that allow system 12 to convey audio, audiovisual, multi-media, and other information to the user in accordance with the execution of flowchart 26. During the operation of system 12, a communicating object 28, such as shape 41 represented on output device 18, may interact with a receiving object 28, such as shape 42 represented on output device 18, using messages that stimulate the receiving object 28 to perform one or more operations, initiate one or more actions 4, or otherwise react in some manner. For example, shape 42 might send a message to shape 41 to prompt shape 41 or a script module 2 associated with shape 41 to perform a mathematical calculation, modify its appearance on output device 18, or otherwise react to the message from shape 42. The internal information structure and processes for the receiving object 28 may be wholly or partially private to the receiving object 28 or public to the communicating object 28 or other objects 28. For each object 28, data structure 30 includes a listing of other objects 28 that may provide information to, that may receive information from, or that are otherwise connected to object 28 in objectspace. As discussed more fully below with reference to FIGURE
4, data structure 30 also includes a listing of data field values 6 and other information that may be associated with or provided to each object 28 during some or all of the execution of flowchart 26. Objects 28, such as entity 60, consult data structure 30 to access information used to perform actions 4 and communicate information according to the execution of executable flowchart 26. For example, in one embodiment, entity 60 consults data structure 30 each time entity 60 encounters a new shape 40 to determine the available paths that emanate from shape 40 in objectspace and on output device 18. Entity 60 also consults data structure 30 to determine data field values 6 of lines 50 and shapes 40 associated with available paths. Entity 60 is therefore able to accumulate data field values 6 for each shape 40 and line 50 that entity 60 encounters and is also able to select a path from each shape 40 entity 60 encounters to progress through flowchart 26.
The present invention allows the user to construct an executable flowchart 26 without writing, entering, or otherwise providing program code, as discussed more fully below with reference to FIGURE 2 and wizard interface 24. In the past, although a flowchart could be constructed using a drawing application, the user was required to author program code, parameters, and other information each time a new or modified flowchart element was added to the flowchart during construction. Moreover, once this often complicated process was complete, the user was forced to transport the constructed flowchart to an appropriate operating platform to execute the flowchart. In stark contrast, according to the present invention, flowchart 26 may be constructed, modified if necessary or desirable, and fully or partially executed in real time without the user authoring program code and without transporting between platforms. As user 10 constructs flowchart 26 according to particular needs using wizard interface 24, system 12 simultaneously generates corresponding objects 28 and other associated information and processes to allow the user to execute flowchart 26 in a straightforward manner as entity 60 progresses through flowchart 26.
FIGURE 2 illustrates an exemplary wizard interface 24 used to generate objects 28 during flowchart construction. In one embodiment, the user generates, instantiates, or otherwise creates objects 28 and specifies relationships and other information associated with objects 28 using wizard interface 24 or another suitable constructor. In general, wizard interface 24 allows the user to generate objects 28, to specify the behavior of objects 28, and to associate information with objects 28 in constructing, customizing, or otherwise modifying flowchart 26 without writing, authoring, or otherwise providing the program code that directs and controls the execution of flowchart 26 within computer 14. In one embodiment, as the user generates objects 28 and abstractions of objects 28 during the construction of flowchart 26, a suitable diagrammer application, program, or other tool 32 associated with wizard interface 24 stores information associated with objects 28 in data structure 30 or other suitable storage locations. Wizard interface 24 may include one or more shape, line, entity, or other object base classes 8 from which shapes 40, lines 50, entities 60, and other objects 28 are derived or inherited. In one embodiment, the user uses wizard interface 24 to enter any shape 40 during or after flowchart construction to debug, customize, modify, or otherwise operate on shape 40 according to particular needs. The present invention contemplates the user using wizard interface 24 to enter any shape 40, line 50, or other object 28.
FIGURE 3 illustrates a method for constructing an executable flowchart 26 in an object-oriented environment. The method begins at step 100, where the user generates first shape 40 using palette 22, wizard interface 24, or suitable component of system 12. In one embodiment, the user points and clicks, drags and drops, or otherwise selects a first shape 40 from among one or more available shapes 40 associated with palette 22 on output device 18. The selected shape 40 may be presented to the user as a visual abstraction using wizard interface 24. First shape 40 may be derived from and inherit some or all behaviors of a single or multiple shape base class 8 as first shape 40 is incorporated into flowchart 26. In response to the user generating first shape 40, wizard interface 24 or another component of system 12 stores information associated with first shape 40 in data structure 30 for access by lines 50, entities 60, and other objects 28 in flowchart 26. In one embodiment, the information stored in data structure 30 for first shape 40 includes one or more data field values 6 for first shape 40 that entity 60 may accumulate or manipulate in some manner before, during, or after entity 60 reaches first shape 40. First shape 40 may be a starting shape 40 for entity 60 that entity 60 may return to each time the user begins to execute flowchart 26.
At step 102, the user may customize, configure, or modify first shape 40 using wizard interface 24 or another suitable interface according to the particular executable flowchart 26 under construction. For example, the user may use wizard interface 24 and one or more associated dialog boxes 3 on output device 18 to override, supplement, replace, delete, or otherwise modify selected parameters, variables, or other information associated in some manner with first shape 40. Dialog box 3 may visually prompt the user to provide desired textual information, shading, coloring, size information, toggling or other motion information, or any other visual cues, features, and information for association with the visual abstraction of first shape 40 on output device 18. The user may specify data field values 6 or other data or information for association with first shape 40 in data structure 30. In addition, wizard interface 24 may allow the user to associate one or more audiovisual, communications, multimedia, printing, or other actions 4 or behaviors with first shape 40 that occur in response to entity 60 encountering first shape 40 during flowchart execution. Dialog box 3 may prompt the user to provide customized script commands 7 to control the manner in which entity 60 navigates flowchart 26. The user generates second shape 40 at step 104 and customizes second shape 40 at step 106 in the manner discussed above in connection with first shape object 28. At step 107, the user generates first line 50 using wizard interface 24 or in some other suitable manner to wholly or partially connect first shape 40 and second shape 40. In one embodiment, similar to the generation of first shape 40 and second shape 40 discussed above, the user points and clicks, drags and drops, or otherwise selects a first line 50 from among one or more available physical lines 50 associated with palette 22 on output device 18. First line 50 may be presented as a visual abstraction using wizard interface 24. First line 50 may be derived from and inherit some or all behaviors of a single or multiple line base class 8 as the user incorporates first line 50 into flowchart 26. In response to the user generating first line 50, wizard interface 24 or another suitable component of system 12 stores information associated with first line 50 in data structure 30 for access by first shape 40, second shape 40, entity 60, and other objects 28. In one embodiment, the information stored in data structure 30 for first line 50 includes one or more data field values 6 for first line 50 that entity 60 may accumulate or manipulate in some manner before, during, or after entity 60 reaches first line 50 during flowchart execution.
At step 109, the user generates a first entity 60 using wizard interface 24, palette 22, or other suitable components of system 12. In one embodiment, entity 60 is generated from an entity base class 8 that includes all the routines, variables, and other information necessary to allow entity 60 to progress through flowchart 26 in an expected manner according to the information stored in data structure 30 in association with objects 28 that entity 60 encounters. For example, although the information stored in data structure 30 may vary considerably according to the particular flowchart 26 constructed, the logical processes entity 60 uses to proceed through flowchart 26 may be more or less identical. The user may specify a starting shape 40 for entity 60 that is the same or different than first shape 40 to cause entity 60 to begin executing at starting shape 40 each time flowchart 26 is executed. The user may customize first entity 60 at step 110 in a manner similar to that discussed above with reference to first shape 40, second shape 40, and first line 50. For example, the user may use wizard interface 24 and one or more associated dialog boxes 3 on output device 18 to override, supplement, replace, delete, or otherwise modify selected parameters, variables, or other information associated in some manner with entity 60. Dialog box 3 may visually prompt the user to provide desired textual information, shading, coloring, size information, toggling or other motion information, or any other visual cues, features, and information for association with the visual abstractions of shapes 40 and lines 50 on output device 18 as entity 60 encounters these objects 28. The user may specify mathematical and other operations entity 60 or associated script module 2 may perform using data field values 6 or other information associated with shapes 40 or lines 50 that entity 60 encounters. In addition, wizard interface 24 may allow the user to associate audiovisual, communications, multi-media, printing, or other actions 4 or behaviors with shapes 40 and lines 50 that occur in response to entity 60 encountering these objects 28 during flowchart execution. Dialog box 3 may prompt the user to provide customized script commands 7 to control the manner in which entity 60 navigates flowchart 26.
If the user does not further customize a previously generated object 28 at step 114, the user generates a next object 28 at step 116 and customizes next object 28 at step 118. Next object 28 may be a next shape 40, in which case next shape 40 is generated and customized in the manner discussed above in connection with steps 104 and 106, respectively. The user may place shape 40 in flowchart 26 on output device 18 at any location relative to previously generated objects 28. For example, referring to flowchart 26 on output device 18 in FIGURE 1, the user might have located shape 42 below shape 41, in between shape 40 and shape 41, to either side of shape 41, or in any other suitable location. Regardless of the location of shape 42, entity 60 progresses to and from shape 42 in an expected and straightforward manner according to the relationships specified during flowchart construction between shape 42 and other objects 28 in flowchart 26. The execution of flowchart 26 with respect to shape 42 is determined in accordance with lines 50 and associated paths generated to connect shape 42 to other objects 28 in objectspace and visually on output device 18, which provides an important technical advantage . Instead of next shape 40, next object 28 might be a next line 50, in which case next line 50 is generated and customized in the manner discussed above in connection with steps 107 and 108, respectively. Next line 50 may be placed in flowchart 26 at any location and with any directionality relative to previously generated objects 28. As discussed above in connection with next shape 40, flowchart execution with respect to next line 50 is specified according to other lines 50 and associated paths generated to connect next line 50 to other objects 28 visually and in objectspace. Next line 50 may connect any previously generated objects 28. For example, next line 50 may connect any shape 40 to the same or any other shape 40 or line 50, may connect any line 50 to any shape 40 or to any other line 50, or may connect any other previously generated objects 28.
In one embodiment, starting object 28 and ending object 28 for entity 60 are specified during flowchart construction using wizard interface 24 or otherwise and associated with entity 60 in data structure 30 using a pointer, flag, or indicator accessible to entity 60, other objects 28, flowchart 26, or system 12. Data structure 30 is consulted during flowchart execution to determine if starting object 28 or ending object 28 has been associated with entity 60 and execution of flowchart 26 proceeds or is limited accordingly, as discussed below with reference to FIGURE 6. Starting object 28 and ending object 28 may be specified and associated with entity 60 during flowchart construction or customization to allow the user to debug, text, or perform simulations using one or more selected portions of flowchart 26.
FIGURE 4 illustrates an exemplary data structure 30 that includes stored information associated with each shape 40, line 50, entity 60, and other object 28 created, instantiated, or generated during the construction of flowchart 26. In one embodiment, objects 28 and system 12 consult data structure 30 at appropriate times during the execution of flowchart 26 to access information that objects 28 then use to perform actions 4, communicate with other objects 28, and otherwise execute in accordance with the construction of flowchart 26. Objects 28 and system 12 may access information in data structure 30 associated with a particular object 28 according to a pointer or other suitable indicator.
For each shape 40 included in flowchart 26, data structure 30 may include, without limitation: a list 80 of lines 50 connected to shape 40, a list 81 of lines 50 leaving shape 40, a list 82 of lines 50 entering shape 40, a list 83 of paths connected to shape 40, a list 84 of paths leaving shape 40, a list 85 of paths entering shape 40, a path weight 86 associated with one or more paths connected to shape 40, one or more data field values 6 associated with shape 40, and any other suitable data or other information. For each line 50 included in flowchart 26, data structure 30 may include, without limitation: a list 90 of other lines 50 connected to line 50, a list 91 of other lines 50 leaving line 50, a list 92 of other lines 50 entering line 50, a list 93 of shapes 40 that line 50 leaves, a list 94 of shapes 40 that line 50 enters, a list
95 of paths including line 50, a directionality indicator
96 associated with line 50, a line weight 97 associated with line 50, one or more data field values 6 associated with line 50, and any other suitable information associated with line 50.
FIGURE 5 illustrates an exemplary method of executing flowchart 26 in an object-oriented environment according to the present invention. The method begins at step 300, where a determination is made whether any entities 60 have been incorporated into flowchart 26. If flowchart 26 does not include at least one entity 60 at step 300, system 12 prompts the user visually, audibly, or in some other manner at step 302 to generate one or more entities 60 using palette 22, wizard interface 24, or any other suitable components of system 12. If starting shape 40 associated with each entity 60 is not within a predetermined range of execution at step 303, system 12 prompts the user at step 302 to modify entity 60, starting shape 40, or another suitable parameters associated with flowchart execution. If starting shape 40 is within a predetermined range of execution at step 303, system 12 sets, initiates, or otherwise causes entity 60 to begin running, operating, or executing according to flowchart 26 at step 304.
System 12 communicates a start event at step 306 to some or all objects 28, such as entity 60, shapes 40, lines 50, or other objects 28 to enable objects 28 to communicate with other objects 28 and system 12, consult data structure 30, or otherwise begin executing. At step 308, system 12 communicates a start event to flowchart 26 that is the same as, separate from, in series with, simultaneous with, or in any other suitable relationship with the start event communicated to objects 28 at step 306. If flowchart 26 has not stopped or otherwise ceased executing at step 310 due to instructions from the user or for any other reason, and at least one entity 60 is still running, operating, or executing according to flowchart 26 at step 312, system 12 advances timer 36 at step 314. At step 316, system 12 gets, retrieves, calls, or otherwise communicates with a running entity 60 using information stored in data structure 30 or elsewhere. At step 318, entity 60 is iterated or otherwise executed in the manner discussed below with reference to FIGURE 6. If necessary or desirable before, during, or after entity 60 is iterated at step 318, system 12 may get, retrieve, call, or some other way communicate with the same or a different entity 60 at step 320. Steps 318 and 320 are repeated according to the construction of flowchart 26 until a determination is made at step 320 not to get another entity 60, in which case the method returns to step 310.
If flowchart 26 has stopped or ceased executing at step 310, or if no entities 60 are still running at step 312, system 12 communicates a finish event to some or all objects 28 at step 322. Similarly, at step 324, system 12 communicates a finish event to flowchart 26 that is the same as, separate from, in series with, simultaneous with, or in any other suitable- relationship with the finish event communicated to objects 28 at step 322. System 12 waits for objects 28 and flowchart 26 to finish, terminate, or otherwise stop executing at step 326 and, at step 328, resets or otherwise returns some or all entities 60 to starting shapes 40 with which entities 60 are associated in data structure 30. After entities 60 are reset to their corresponding starting shapes 40, the method ends. If an error occurs at any point during the execution of flowchart 26, system 12 may send an abort event to appropriate objects 28 at step 330 to cause objects 28 to terminate or cease executing. Similarly, at step 332, system 12 may send an abort event to flowchart 26 to cause flowchart 26 to terminate or cease executing.
FIGURE 6 illustrates an exemplary method of iterating or otherwise executing entity 60 that has been incorporated into flowchart 26 to allow entity 60 to progress through flowchart 26. The method begins at step 400, where a determination is made whether entity 60 has been set to running or otherwise initiated, as discussed above with reference to FIGURE 5. If entity 60 has not been suitably initiated, system 12 communicates an initiate entity event at step 402 to starting shape 40 associated with entity 60, and the method proceeds directly or indirectly to step 422. If entity 60 has been initiated at step 400, system 12 communicates a clocktick event to entity 60, an object 28 that contains entity 60, or another appropriate component of flowchart 26 or system 12 at step 404. At step 406, if a delay function, variable, or other value associated with entity 60 is not less than or equal to zero, system 12 reduces the entity delay value by a clocktick, iteration of entity 60 is complete, and the method ends. In one embodiment, the value of the delay may determine when entity 60 advances during a simulation that flowchart 26 is executing.
If the delay associated with entity 60 is less than or equal to zero at step 406, system 12 updates data structure 30 at step 408 to properly reflect the number, identity, directionality, data field values 6, or any other aspects of one or more paths, each containing one or more lines 50, that entity 60 has progressed along or may progress along according to instructions, responses, or communications from the user or system 12. For example, system 12 may update data structure 30 to reflect changes to one or more accumulated data field values 6 associated with entity 60 as a result of entity 60 progressing along a previous path having an associated data field value 6 to encounter a current shape 40 that is the same as or different from starting shape 40. If system 12 determines that entity 60 does not have any valid paths to progress along at step 410, using information stored in data structure 30 or another suitable indicator, system 12 causes entity 60 to cease executing at step 412, and the method ends. In one embodiment, entity 60 consults data structure 30 to access list 84, which specifies the paths and associated lines 50 available to entity 60. If at least one valid path exists for entity 60 at step 410, entity 60 or other suitable component of system 12 communicates a query accept event at step 414 to the next object 28 in the path, such as a next line 50, shape 40, or other suitable object 28. If a responsive or other suitable communication from the next object 28 or another component of system 12 indicates that entity 60 can advance to the next object 28 from the current object 28 at step 416, system 12 communicates a leave event to entity 60 at step 418. If entity 60 cannot advance to the next object 28 at step 416, the method ends. In response to the leave event, entity 60 advances from the current object 28 to the next object 28 at step 420. Advancement of entity object 28 from the current object 28 to the next object 28 may appear visually to the user as movement, a temporary change in appearance of the current shape 40, or any other visual cue on output device 18. Before, during, or after entity 60 advances at step 420, entity 60 communicates an execute event at step 422 to an appropriate component of system 12, and the method ends. Entity 60 may accumulate or otherwise manipulate data field values 6 for one or more objects 28 entity 60 advances through, for example, one or more lines 50 within a selected path at any time before, during, or after entity 60 advances between shapes 40 on output device 18, using script modules 2 or otherwise.
FIGURE 7 illustrates flowchart 400 constructed in accordance with the present invention that includes shapes 402, 404, 406, and 408. Shapes 402, 404, 406, and 408 include textual and other information appropriate for flowchart 400 and specified using wizard interface 24 during flowchart construction. In one embodiment, shape 404 includes a list of ingredients 426 and ranks 428 that are associated with ingredients 426. Exemplary data field value information 418, 420, 422, and 424 is associated with entity 60 in response to entity 60 encountering shape 402, shape 404, shape 404, and shape 406, respectively, but may or may not be visible to the user on output device 18. Shape 408 may have an associated action 4 that plays audible music to the user in response to entity 60 encountering shape 408. Lines 410, 412, 414, and 416 connect shapes 402, 404, 406, and 408 visibly on output device 18 and in objectspace. Entity 60 is shown in association with shape 408 after flowchart 400 has been fully or partially executed and entity 60 has encountered all objects 28 in flowchart 400 previous to shape 408. The execution, features, and other aspects of flowchart 400 are discussed more fully below. FIGURE 8 illustrates a method for executing flowchart 400 illustrated in FIGURE 7 according to the teachings of the present invention. In the example discussed, flowchart 400 guides the dieting user through the process of selecting ingredients 426 for a sandwich when flowchart 400 is executed. The method begins at step 500, where shape 402 prompts the user to enter a maximum number of calories for the sandwich. In one embodiment, shape 402 is the starting shape 40 for entity 60 as indicated by information stored in data structure 30. Execution of flowchart 400 would begin elsewhere if shape 402 was not the starting shape for entity 60. At step 502, the user provides the requested information, for example, "600". System 12 may prompt the user to reenter the requested information if the user provides a number that is invalid for any reason, for example, by generating a suitable audible, visual, or other error signal. In response to the user providing the requested information, system 12 stores the maximum calorie number "600" in data structure 30 at step 504 as a data field value 6 associated with shape 402, entity 60, or both shape 402 and entity 60. In one embodiment, system 12 associates maximum calorie data field value 6 with entity 60 in data structure 30 at step 505 for manipulation and comparison with data field values 6 associated with other objects 28 after further advancing through flowchart 400. Maximum calorie data field value 6 may be presented to the user as textual information 418 at step 506. At step 508, also in response to the user providing the number "600" at step 502, line 410 and shape 404 are temporarily highlighted or first presented to the user on output device 18. System 12 builds flowchart 400 on output device 18 in this manner as the user provides information for association with entity 60 at each shape 40. In one embodiment, shape 404 includes textual information that prompts the user at step 510 to select one or more ingredients 426 and to rank selected ingredients 426 in order of preference. Shape 404 consults, accesses, or otherwise receives maximum calorie data field value 6 and any other suitable data field values 6 associated with entity 60, shape 402, or both entity 60 and shape 402 in data structure 30 as entity 60 advances from shape 402 to shape 404 over a path that includes line 410. As entity 60 advances through flowchart 400, objects 28 that entity 60 encounters can determine information associated with one or more previous shapes 40, such as shape 402, using data structure 30, which reflects data field values 6 and other information entity 60 accumulates.
At step 512, the user provides the requested selection and ranking information as illustrated in FIGURE 7 or in any other suitable manner. In one embodiment, ingredients 426 each have associated data field values 6 corresponding to the specified rank, the calories, the price, and any other suitable information associated with the particular ingredient 426. In response to the user selecting and ranking ingredients 426 at step 512, the rank, calorie, and price data field values 6 associated with each selected ingredient 426 are stored in data structure 30 at step 514 in association with entity 60, shape 404, or both entity 60 and shape 404. Script module 2 associated with shape 404 sums the calorie and price data field values 6 for selected ingredients 426 at step 516 and, at step 518, compares the summed calorie data field value 6 with the maximum calorie data field value 6 previously stored in data structure 30. For example, the summed calorie data field value 6 for the selected ingredients 426 shown in FIGURE 7 might be "720" and may be presented to the user at step 520 as textual information 420 on output device. The present invention contemplates shape 404 performing other mathematical and other suitable operations involving these or other data field values 6 for selected ingredients 426.
In the exemplary execution of this discussion, script module 2 of shape 404 subtracted data field values 6 for only one ingredient, avocado, before the summed calorie data field value 6 of "580" did not exceed the maximum calorie data field value 6 of "600" at step 524. In response to shape 404 completing the performance of these actions, system 12 associates the summed calorie data field value 6 with entity 60 in data structure 30 at step 525. At step 526, line 412, line 414, and shape 406 are temporarily highlighted or first presented to the user on output device 18. As shown in FIGURE 7, line 412 and line 414 were generated during construction of flowchart 400 to connect shape 404 and shape 406, although a single line 50 may have been adequate under the circumstances. However, execution of flowchart 400 from the perspective of the user is unchanged as a result of this design choice, that is, flowchart 400 executes as the ordinary user would expect according to the arrangement of objects 28 on output device 18 and responses of the user.
At step 528, textual information associated with shape 406 informs the user of the subtraction of avocado from the list of ingredients 426 selected at step 512, of the total calories for the sandwich, and of the total price for the sandwich. In one embodiment, entity 60 encountering shape 406 causes shape 406 to consult data structure 30 to access these data field values 6 and other information. As entity 60 continues to advance through flowchart 400, data field values 6 may be accumulated in data structure 30 for entity 60 at each shape 40, line 50, or other object 28 that entity 60 encounters. Depending on the location of entity 60, system 12 and other objects 28 can access data field values 6 and other information accumulated as entity 60 advances to allow system 12 and objects 28 to manipulate this information according to construction of flowchart 400 by the user. Textual information 424 indicates the summed calorie data field value 6 associated with shape 406, and may or may not be visible to the user on output device 18. At step 530, after a predetermined time period or in response to information from the user or another suitable trigger, line 416 and shape 408 are temporarily highlighted or first presented to the user on output device 18. As indicated by dashed lines 430, shape 408 performs or executes an action 4 at step 532 in response to entity 60 reaching shape 408. Action 4 may be to provide audible, visual, or other information, such as a musical jingle, to the user. Entity 60 may or may not accumulate additional data field values 6 in advancing from shape 406 to shape 408. According to the accumulation of data field values 6 and advancement of entity 60, data structure 30 may include a complete record of information that the user provided to system 12, the operations performed on that information by shapes 40 and associated script modules 2, and any other information of interest to the user or others. After, presentation of visual representations of line 416 and shape 408 at step 530, the method ends.
1. A system operating on a computer for creating an executable flowchart, the system comprising: a constructor operable to generate a plurality of objects that define the executable flowchart, the plurality of objects comprising: a first shape; and a second shape; a data structure for storing information associated with the objects; and an entity located at the first shape, the entity operable to access the data structure to accumulate information associated with the first shape, the entity further operable to advance from the first shape to the second shape and to associate at least a portion of the accumulated information with the second shape in response to advancing.
2. The system of Claim 1, wherein the constructor comprises a wizard interface operable to allow a user to generate the objects without providing program code.
3. The system of Claim 1, wherein the information associated with the first shape comprises input of a user, the entity advancing in response to the input.
5. The system of Claim 1, wherein the system is operable to associate the accumulated information with the second shape in the data structure .
6. The system of Claim 1, wherein the second shape is operable to manipulate at least some of the accumulated information in response to the entity advancing to the second shape .
7. The system of Claim 1, wherein the system is operable to provide a user with a visual cue indicating the location of the entity.
8. A flowchart for executing on a computer, the flowchart comprising: a first shape; a second shape coupled to the first shape; and an entity located at the first shape, the entity operable to access the data structure to accumulate information associated with the first shape, the entity further operable to advance from the first shape to the second shape and to associate at least a portion of the accumulated information with the second shape in response to advancing.
9. The flowchart of Claim 8, wherein the information associated with the first shape comprises input of a user, the entity advancing in response to the input.
10. The flowchart of Claim 8, wherein the accumulated information comprises a data field value.
11. The flowchart of Claim 8, wherein the system is operable to associate the accumulated information with the second shape in the data structure .
12. The flowchart of Claim 8, wherein the second shape is operable to manipulate at least some of the accumulated information accumulated in response to the entity advancing to the second shape.
13. The flowchart of Claim 8, further comprising a visual cue indicating the location of the entity.
14. A method performed on a computer for executing a flowchart, the method comprising: generating a plurality of objects to construct the flowchart, the plurality of objects comprising: a first shape; a second shape coupled to the first shape; and an entity located at the first shape; storing information associated with the first shape in a data structure; accessing information associated with the first shape in the data structure using the entity; accumulating information associated with the first shape using the entity; advancing the entity from the first shape to the second shape; and associating accumulated information with the second shape in the data structure.
15. The method of Claim 14, wherein the objects are generated using a wizard interface without a user providing program code .
16. The method of Claim 14, further comprising the steps of : receiving input from a user; and associating the input with the first shape, the entity advancing in response to the input.
17. The method of Claim 14, wherein the accumulated information comprises a data field value.
18. The method of Claim 14, further comprising the step of associating the accumulated information with the second shape in the data structure in response to advancing the entity.
19. The method of Claim 14, further comprising the step of manipulating at least some of the accumulated information at the second shape in response to advancing the entity.
20. The method of Claim 14, further comprising the step of providing a user with a visual cue to indicate the location of the entity.
PCT/US1997/020241 1996-11-12 1997-11-10 Executable flowchart WO1998021650A1 (en)
US08/748,092 US5893105A (en) 1996-11-12 1996-11-12 Executable flowchart
US08/748,092 1996-11-12
EP19970947384 EP0944870A1 (en) 1996-11-12 1997-11-10 Executable flowchart
AU52478/98A AU5247898A (en) 1996-11-12 1997-11-10 Executable flowchart
WO1998021650A1 true WO1998021650A1 (en) 1998-05-22
ID=25007977
PCT/US1997/020241 WO1998021650A1 (en) 1996-11-12 1997-11-10 Executable flowchart
US (1) US5893105A (en)
EP (1) EP0944870A1 (en)
AU (1) AU5247898A (en)
WO (1) WO1998021650A1 (en)
EP0661631A2 (en) * 1993-12-23 1995-07-05 Telefonaktiebolaget Lm Ericsson Method and apparatus for creating a flowchart using a programmed computer which will automatically result in a structured program
JP2530380B2 (en) * 1990-04-02 1996-09-04 株式会社日立情報制御システム Process control method and a control for the controller - La
US5581759A (en) * 1990-04-02 1996-12-03 Hitachi, Ltd. Apparatus and method for controlling a system process
DE69324388T2 (en) * 1992-01-23 1999-09-09 Mitsubishi Electric Corp Programmable Logic Controller
JPH05257661A (en) * 1992-03-13 1993-10-08 Hitachi Ltd Software production system
1996-11-12 US US08/748,092 patent/US5893105A/en not_active Expired - Lifetime
1997-11-10 EP EP19970947384 patent/EP0944870A1/en not_active Withdrawn
1997-11-10 WO PCT/US1997/020241 patent/WO1998021650A1/en not_active Application Discontinuation
1997-11-10 AU AU52478/98A patent/AU5247898A/en not_active Abandoned
PRASHANT WAKNIS ET AL: "A GRAPHICAL PROGRAMMING ENVIRONMENT FOR SIMULATION OF CONTROL AND SIGNAL PROCESSING SYSTEMS", PROCEEDINGS OF THE SOUTHEAST CONFERENCE (SOUTHEASTCON), BIRMINGHAM, ALABAMA, APR. 12 - 15, 1992, vol. 1, 12 April 1992 (1992-04-12), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 447 - 450, XP000338761 *
AU5247898A (en) 1998-06-03
EP0944870A1 (en) 1999-09-29
US5893105A (en) 1999-04-06
Ref document number: 1997947384