Program creation support device and program creation support method

JP2025041454AActive Publication Date: 2025-03-26HITACHI LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023148770
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-13
Publication Date
2025-03-26
Estimated Expiration
2043-09-13

AI Technical Summary

Benefits of technology

【0008】 本発明によれば、条件判断を所定の論理関係を用いて行うプログラムを効率良く作成することを支援することができる。 上記した以外の構成及び効果等は、以下の実施形態の説明により明らかにされる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025041454000001_ABST
    Figure 2025041454000001_ABST
Patent Text Reader

Abstract

To provide a program creation support device and method that support efficient creation of a program that performs conditional determinations using a predetermined logical relationship.SOLUTION: In a program creation system in which a user terminal, a program creation device, and a program creation support device are communicatively connected over a wired or wireless communication network, the program creation support device includes a control device 31, and executes: a data designation process that accepts from a user the designation of a first logical operation having a logical value as input and the designation of a first input operation which is an operation including at least one or more conditional operations that derive the logical value; and a data display process that displays a figure representing the designated first logical operation in a first display area of the display device, and displays a figure representing the first input operation in a second display area within the first display area.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a program creation support device and a program creation support method. [Background technology]

[0002] Banks develop applications that customers use to carry out procedures. However, because banks provide a wide variety of services, application development tends to be complicated, and there is a need to reduce the amount of work required. In this regard, being able to develop applications visually is thought to contribute to reducing the amount of work required.

[0003] Techniques for visually developing applications have been proposed. For example, Patent Document 1 discloses an input form design device in which a screen display unit displays a design screen of an input form for designing an input form for a data inputter to input data, an operation detection unit receives a setting input for setting items in the input form for which the data inputter should input data when the design screen of the input form is displayed, the operation detection unit receives a setting input for setting input conditions for each item that should be satisfied by data inputted into the item, and a form data storage unit stores form data as data related to the input form, including input condition data related to the input conditions set for each of a plurality of items included in the input form. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] International Publication No. 2006 / 308898 Summary of the Invention [Problem to be solved by the invention]

[0005] In banking operations, many procedures can only be executed if complex requirements are met. For this reason, applications also need to perform processing that determines various conditions using complex logical relationships. However, it is not easy for application developers to correctly reflect such complex conditions and logical relationships in programs. Patent Document 1 does not adequately address this issue.

[0006] The present invention has been made in consideration of such problems, and aims to provide a program creation support device and a program creation support method that are capable of supporting the efficient creation of programs that perform conditional judgments using predetermined logical relationships. [Means for solving the problem]

[0007] One aspect of the present invention for solving the above problem is a program creation support device that includes a control device that executes a data designation process that accepts from a user a designation of a first logical operation that has a logical value as input and a designation of a first input operation that is an operation including at least one conditional operation that derives the logical value, and a data display process that displays a figure representing the designated first logical operation in a first display area of ​​a display device, and displays a figure representing the first input operation in a second display area within the first display area. Effect of the Invention

[0008] According to the present invention, it is possible to assist in efficiently creating a program that performs conditional judgments using a predetermined logical relationship. Configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of a program creation system according to an embodiment of the present invention. [Diagram 2] 2 is a diagram illustrating an example of hardware included in the program creation support device and functions of the program creation support device. FIG. [Diagram 3] FIG. 11 is a diagram illustrating an example of relational operator information. [Figure 4] FIG. 11 is a diagram illustrating an example of logical operator information. [Diagram 5] FIG. 11 is a flow diagram illustrating an example of a program creation support process. [Figure 6] FIG. 13 is a diagram showing an example of a condition process editing screen. [Figure 7] FIG. 11 is a diagram illustrating an example of condition setting information. [Figure 8] FIG. 11 is a diagram illustrating an example of logical operation setting information. [Figure 9] FIG. 11 is a flow diagram illustrating an example of a data setting process. [Figure 10] FIG. 11 is a diagram for explaining an example of a change in a conditional calculation. [Figure 11] FIG. 11 is a diagram for explaining an example of a change in a conditional calculation. [Figure 12] FIG. 11 is a flow diagram illustrating an example of a result confirmation process. [Figure 13] FIG. 11 is a diagram illustrating an example of evaluation information. [Figure 14] FIG. 11 is a diagram illustrating an example of a result confirmation process. [Figure 15] FIG. 11 is a flow diagram illustrating details of a contradiction determination process. [Figure 16] FIG. 11 is a diagram illustrating an example of range information. [Figure 17] FIG. 11 is a diagram illustrating an example of a contradiction determination process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

[0011] 1 is a diagram showing an example of the configuration of a program creation system 1 according to this embodiment. The program creation system 1 includes a user terminal 10 used by a user who develops an application, a program creation device 20, and a program creation support device 30. The user terminal 10, the program creation device 20, and the program creation support device 30 are communicatively connected to each other via a wired or wireless communication network 5 such as the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or a dedicated line.

[0012] The program creation device 20 is an information processing device that creates an application program. The program creation device 20 receives input of a program code from the user terminal 10, for example, and creates the application program based on the input code.

[0013] The program creation support device 30 is an information processing device that supports the creation of a program. That is, a program created by a user in this embodiment includes a conditional expression that performs a conditional operation to calculate (derive) one or more true or false logical values ​​(truth-and-false values), and a process that performs a logical operation using the logical values ​​of the conditional expression as input. The program creation support device 30 is an information processing device that enables a user to create code for such a process (hereinafter referred to as a target process) in a visually easy-to-understand manner. The program creation support device 30 is called and executed by the user terminal 10 or the program creation device 20 when the user creates a program. The code for the target process (hereinafter referred to as condition data) created by the program creation support device 30 may be source code (text data) or executable binary data.

[0014] FIG. 2 is a diagram showing an example of hardware included in the program creation support device 30 and functions of the program creation support device 30. As shown in FIG.

[0015] The program creation support device 30 includes a control device 31 such as a central processing unit (CPU), a digital signal processor (DSP), a graphics processing unit (GPU), or a field-programmable gate array (FPGA), a memory 32 such as a random access memory (RAM) or a read only memory (ROM), a storage device 33 such as a hard disk drive (HDD) or a solid state drive (SSD), a communication device 36 such as a network interface card (NIC), a wireless communication module, a universal serial interface (USB) module, or a serial communication module, an input device 34 such as a keyboard, a mouse, or a touch panel, and a display device 35 such as a liquid crystal monitor or a liquid crystal display (LCD). The user terminal 10 and the program creation device 20 also include similar hardware.

[0016] Next, the program creation support device 30 includes functional sections: a data designation processing section 37, a data display processing section 38, a data setting processing section 39, a condition change processing section 40, a result confirmation processing section 41, and a contradiction determination processing section 42.

[0017] The data specification processing unit 37 receives, from the user, a specification of a certain logical operation (first logical operation) that uses a logical value as input, and a specification of a first input operation that is an operation including at least one conditional operation that derives the logical value.

[0018] The conditional operation is a conditional expression including a variable to be subjected to the conditional judgment, a constant (comparison value) to be compared with the variable, and a relational operator (e.g., "greater than or equal to," "less than") that indicates the relationship between the variable and the comparison value when the operation result of the conditional operation is a true value. In this embodiment, the first input operation other than the conditional operation is a logical operation (a second logical operation described later) different from the first logical operation.

[0019] Moreover, the first logical operation is, for example, an operation for calculating a logical product, a logical sum, or an exclusive logical sum between the truth values ​​of the first input operations.

[0020] Furthermore, the data specification processing unit 37 accepts, as a specification of a first input operation, a specification of a second logical operation that takes a logical value as input, and a specification of a second input operation that is an operation including at least one conditional operation that derives that logical value, from the user.

[0021] The data display processing unit 38 displays a figure representing the first logical operation specified by the data specification processing unit 37 in a first display area of ​​the display device 35, and displays a figure representing the first input operation in a second display area within the first display area.

[0022] In addition, the data display processing unit 38 displays a figure representing the second logical operation specified by the data specification processing unit 37 in a second display area within the first display area, and displays a figure representing the second input operation in a third display area within the second display area.

[0023] The data setting processor 39 generates data (logical operation setting information 800, described later) that associates the first input operation with the first logical operation and the second input operation with the second logical operation. In this embodiment, the data setting processor 39 associates the first input operation with the first logical operation as a lower hierarchical level of the first logical operation, and associates the second input operation with the second logical operation as a lower hierarchical level of the second logical operation, but the method of association is not limited to this.

[0024] When a condition change processing unit 40 receives an instruction from a user to change the display area of ​​a figure representing an input operation, the condition change processing unit 40 associates the input operation with a logical operation related to the new display area in the data generated by the data setting processing unit 39.

[0025] The result confirmation processing unit 41 displays the operation result of the second logical operation, which has the second input operation as an input, in the second display area in a display mode according to the operation result, based on the condition data generated by the data setting processing unit 39. The result confirmation processing unit 41 also displays the operation result of the first logical operation, which has the first input operation as an input, in the first display area, based on the operation result of the second logical operation and the condition data generated by the data setting processing unit 39.

[0026] The contradiction determination processing unit 42 determines whether or not there is a logical contradiction between the second input operations in the second logical operation based on the condition data generated by the data setting processing unit 39, and displays information indicating the determination result in the second display area in a display mode corresponding to the determination result. Also, the contradiction determination processing unit 42 determines whether or not there is a logical contradiction between the first input operations in the first logical operation based on the determination result and the condition data generated by the data setting processing unit 39, and displays information indicating the determination result in the first display area in a display mode corresponding to the determination result.

[0027] Next, the program creation support device 30 stores the relational operator information 300 , the logical operator information 400 , the condition setting information 700 , the logical operation setting information 800 , and the evaluation information 1300 .

[0028] The relational operator information 300 is information that defines relational operators that can be applied to conditional operations.

[0029] The logical operator information 400 is information that defines logical operators.

[0030] The condition setting information 700 is information that stores the contents of each condition calculation set by the user.

[0031] The logical operation setting information 800 is information that stores the contents of each logical operation set by the user.

[0032] The evaluation information 1300 is information on the evaluation of the execution result of the target process created by the program creation support device 30.

[0033] (Relational Operator Information) 3 is a diagram showing an example of the relational operator information 300. The relational operator information 300 has information on each relational operator, including a first relational operator 301 which is a relational operator ("=") indicating that the value of a certain variable is equal to a comparison value, a second relational operator 302 which is a relational operator ("!=") indicating that the value of a certain variable is not equal to the comparison value, a third relational operator 303 which is a relational operator ("="") indicating that the value of a certain variable is null, a fourth relational operator 304 which is a relational operator indicating that the value of a certain variable is not null ("!=""), a fifth relational operator 305 which is a relational operator indicating that the value of a certain variable is equal to or greater than a comparison value (">=""), and a sixth relational operator 306 which is a relational operator indicating that the value of a certain variable is greater than a comparison value (">"). Note that the relational operators shown here are merely examples, and are not intended to exclude other types of relational operators.

[0034] (Logical operator information) 4 is a diagram showing an example of logical operator information 400. The logical operator information 400 has information on each logical operator including a first operator 401 (AND) which is a logical product operator that is true if all of the conditions are true and false otherwise, and a second operator 402 (OR) which is a logical sum operator that is true if any of the conditions are true and false otherwise. Note that the logical operators shown here are merely examples, and are not intended to exclude other types of logical operators (e.g., negation, exclusive OR).

[0035] Each of the functional units of the program creation support device 30 described above is realized by the control device 31 reading and executing each program stored in the memory 32 or the storage device 33. Each program can be recorded on a recording medium and distributed, for example. Note that the program creation support device 30 may be realized, in whole or in part, by using virtual information processing resources provided by using virtualization technology, process space separation technology, or the like, such as a virtual server provided by a cloud system. Also, all or in part of the functions provided by the program creation support device 30 may be realized by a service provided by a cloud system via an API (Application Programming Interface), for example. Next, the processing performed by the program creation system 1 will be described.

[0036] <Program creation support processing> 5 is a flow diagram illustrating an example of a program creation support process that supports the creation of code for a target process. The program creation support process is started when a user (user terminal 10) inputs a predetermined instruction to the program creation device 20 to generate application code, and when it is necessary to generate code (program) for a target process, the program creation support process is started when the user inputs a predetermined instruction from the user terminal 10 to the program creation support device 30.

[0037] First, the program creation support device 30 displays a conditional processing edit screen (described later) for setting conditional operations and logical operations on the screen of the user terminal 10 (s11).

[0038] Furthermore, the program creation support device 30 accepts settings of conditional operations or logical operations or changes thereto from the user (user terminal 10) via the condition processing edit screen (s13).

[0039] (Condition processing edit screen) 6 is a diagram showing an example of a condition processing edit screen 600 for explaining the process of s13. The condition processing edit screen 600 has a condition setting display area 610 (first display area) which is a display area in which figures representing logical operations and conditional operations set by the user are displayed, a logical operation selection field 630 which accepts the selection of a logical operator to be used from the user, a condition selection field 650 which allows the user to select the type of conditional operation whose operation value is the input value of the logical operation, a contradiction determination result display field 680 which displays information showing the result of the contradiction determination process described later, and an end designation field 670 for designating the end of the generation of condition data.

[0040] The logical operation selection field 630 has a logical AND selection field 631 for selecting a logical AND, which is a logical operation (first logical operation and second logical operation), and a logical OR selection field 632 for selecting a logical OR, which is a logical operation. Each logical operation in the logical operation selection field 630 is obtained from the logical operator information 400.

[0041] Next, the condition selection field 650 is a setting field for selecting a conditional operation (a first conditional operation and a second conditional operation). That is, the condition selection field 650 has a first condition selection section 651 for selecting a conditional operation including a first relational operator ("="), a second condition selection section 652 for selecting a conditional operation including a second relational operator ("!="), a third condition selection section 653 for selecting a conditional operation including a third relational operator ("="""), a fourth condition selection section 654 for selecting a conditional operation including a fourth relational operator ("!="""), a fifth condition selection section 655 for selecting a conditional operation including a fifth relational operator (">=""), and a sixth condition selection section 656 for selecting a conditional operation including a sixth relational operator (">").

[0042] Here, in the condition setting display area 610, a first logical operation diagram 611 representing a logical operation (first logical operation) selected in the logical operation selection field 630 is displayed by an instruction from the user (user terminal 10). This sets the logical operation. Specifically, when the user instructs to move (e.g., drag and drop with a mouse) from any field of the logical operation selection field 630 to the condition setting display area 610 on the condition processing editing screen 600, the first logical operation diagram 611 with the name 612 of the logical operator of the first logical operation attached thereto is displayed in the condition setting display area 610. This first logical operation diagram 611 is a closed curve of any shape having a predetermined area, and is, for example, a rectangular diagram having a display mode (contour line or background such as shape, color, or pattern) according to the type of operator.

[0043] Furthermore, within the area (second display area) of the first logical operation graphic 611, a first conditional operation graphic 613 and a second logical operation graphic 614 are displayed as graphics representing the first input operation, upon instruction from the user (user terminal 10).

[0044] Specifically, first, one or more first conditional operation graphics 613 representing the conditional operation selected in the condition selection field 650 are displayed in the first logical operation graphic 611. This sets the conditional operation. Specifically, when the user instructs to move (e.g., drag and drop with the mouse) from any field of the condition selection field 650 into the first logical operation graphic 611 on the condition processing editing screen 600, a first conditional operation graphic 613 having an input field (described later) for the contents of the conditional operation and having a name 617 of a relational operator in the conditional operation is displayed in the area of ​​the first logical operation graphic 611. The first conditional operation graphic 613 is a closed curve of any shape having a predetermined area, and is, for example, a rectangular graphic having a display mode (contour line or background such as shape, color, or pattern) according to the type of the conditional operation. When a plurality of first conditional operation graphics 613 are set, those first conditional operation graphics 613 are displayed aligned with each other (for example, as graphics of the same shape) within the first logical operation graphic 611.

[0045] Furthermore, in the first logical operation diagram 611, one or more second logical operation diagrams 614 representing the logical operator (second logical operation) selected in the logical operation selection field 630 are displayed by an instruction from the user (user terminal 10). This sets the logical operation. Specifically, when the user instructs to move (e.g., drag and drop with a mouse) from any field of the logical operation selection field 630 to the first logical operation diagram 611 in the condition setting display area 610 on the condition processing editing screen 600, the second logical operation diagram 614 with the name 615 of the operator of the second logical operation attached thereto is displayed in the area of ​​the first logical operation diagram 611. The second logical operation diagram 614 is a closed curve of any shape having a predetermined area, and is, for example, a rectangular diagram having a display mode (contour line or background such as shape, color, or pattern) according to the type of logical operation. The first conditional operation graphic 613 and the second logical operation graphic 614 are displayed aligned with each other (for example, as graphics of the same shape) within the first logical operation graphic 611.

[0046] Furthermore, in the area of ​​the second logical operation graphic 614 (third display area), one or more second conditional operation graphics 616 representing the conditions selected in the condition selection field 650 are displayed by an instruction from the user (user terminal 10). In this way, the conditional operation is set. Specifically, when the user instructs to move (e.g., drag and drop with the mouse) from any field of the condition selection field 650 into the second logical operation graphic 614 on the condition processing editing screen 600, the second conditional operation graphic 616 having an input field (described later) for the contents of the conditional operation is displayed in the area of ​​the second logical operation graphic 614. The second conditional operation graphic 616 is a closed curve of any shape having a predetermined area, and is, for example, a rectangular graphic having a display mode (contour line or background such as shape, color, or pattern) according to the type of the conditional operation. When a plurality of second conditional operation graphics 616 are set, those second conditional operation graphics 616 are displayed aligned (for example, as graphics of the same shape) within the second logical operation graphic 614.

[0047] In addition, the figures relating to each operation constituting the first input operation (one or more first condition operation figures 613 and one or more second logical operation figures 614) are displayed aligned with each other (for example, as figures of the same shape).

[0048] Next, each conditional operation diagram (first and second conditional operation diagrams 613, 616) has a variable selection field 661 that accepts from the user the selection of a variable for the conditional operation, a comparison value selection field 662 that accepts from the user the selection of a comparison value for the conditional operation, and a relational operator input field 663 that accepts from the user the input of a relational operator for the conditional operation.

[0049] Note that multiple nesting of logical operators may be realized by configuring the second logical operation graphic 614 to display one or more third logical operation graphics (not shown) (similar to the first logical operation graphic 611) in addition to the second conditional operation graphic 616 within the region of the second logical operation graphic 614. In this case, the graphics within the second logical operation graphic 614 (the second conditional operation graphic 616 and the third logical operation graphic) are also displayed aligned with each other in the same shape within the second logical operation graphic 614.

[0050] The program creation support device 30 also accepts an instruction (e.g., drag and drop) to move the conditional operation graphics (first and second conditional operation graphics 613 and 616) between the display areas of the logical operation graphics (first and second logical operation graphics 611 and 614) from the user terminal 10 via the conditional processing editing screen 600. This changes the conditional operation (changes the logical operation that uses the conditional operation as an input).

[0051] For example, the program creation support device 30 receives an instruction 690 (e.g., drag and drop) from the user terminal 10 to change the display area of ​​the second conditional operation graphic 616 displayed within the second logical operation graphic 614 on the condition processing editing screen 600 to an area within the first logical operation graphic 611. As a result, the display area of ​​the second conditional operation graphic 616 is changed to within the first logical operation graphic 611 (second display area), and the second conditional operation graphic 616 is changed to the first conditional operation graphic 613.

[0052] Also, for example, the program creation support device 30 receives an instruction 691 (e.g., drag and drop) from the user terminal 10 to change the display area of ​​the first conditional operation graphic 613 displayed in the first logical operation graphic 611 on the condition processing editing screen 600 to an area within the second logical operation graphic 614. As a result, the display area of ​​the first conditional operation graphic 613 is changed to within the second logical operation graphic 614 (third display area), and the first conditional operation graphic 613 is changed to the second conditional operation graphic 616.

[0053] Next, as shown in FIG. 5, the program creation support device 30 executes a data setting process s15 for setting the contents of the logical operation and the condition operation set in s13 into the logical operation setting information 800 and the condition setting information 700, respectively.

[0054] For example, the program creation support device 30 stores the second input operation (the logical operation selected in the condition selection field 650) in association with the second condition operation diagram 616, stores the second logical operation (the logical operation selected in the logical operation selection field 630) in association with the second logical operation diagram 614, stores the first input operation (the logical operation selected in the condition selection field 650) in association with the first condition operation diagram 613, and stores the first logical operation (the logical operation selected in the logical operation selection field 630) in association with the first logical operation diagram 611.

[0055] Furthermore, the program creation support device 30 stores in the condition setting information 700 the information set in the condition operation graphics (the first and second condition operation graphics 613 and 616).

[0056] Furthermore, the program creation support device 30 stores information associating the first logical operation with the first input operation and information associating the second logical operation with the second input operation in the logical operation setting information 800. The data setting process s15 will be described later in detail.

[0057] The processing in s13 to s15 is carried out each time the user makes an input to the condition processing edit screen 600 as described above.

[0058] (Condition setting information) 7 is a diagram showing an example of condition setting information 700. The condition setting information 700 has each data item of an identifier 701 (id) of a conditional calculation (conditional expression), attribute information 702 (type) indicating that it is a conditional calculation (conditional expression), a variable 703 (field) in the conditional calculation (conditional expression), a relational operator 704 (state) (comparison operator) in the conditional calculation (conditional expression), and a comparison value 705 (value) in the conditional calculation (conditional expression). Here, "STATE" indicating that it is a conditional calculation (conditional expression) is set in the attribute information 702 (type). For example, any one of the first relational operator 301 to the sixth relational operator 306 is set in the relational operator 704 (state).

[0059] (Logic operation setting information) 8 is a diagram showing an example of logical operation setting information 800. The logical operation setting information 800 has each piece of data: a logical operation identifier 801 (id), attribute information 802 (type) indicating the type of logical operation, and an operation identifier 803 (child) which is an input value (lower hierarchical level) of the logical operation. For example, an identifier indicating a logical AND or a logical OR is set in the attribute information 802. An identifier of an operation (conditional operation or other logical operation) which is an input to the logical operation is set in the identifier 803.

[0060] 7, the program creation support device 30 judges whether or not to end the editing of the logical operation and the conditional operation (s17). For example, the program creation support device 30 checks whether or not there is a designation in the end designation field 670 of the conditional processing editing screen 600.

[0061] If editing of the logical operations and conditional operations is to be ended (s17: YES), the program creation support device 30 executes the processing of s19, and if editing of the logical operations and conditional operations is not to be ended (s17: NO), the program creation support device 30 repeats the processing from s11 onwards.

[0062] In s19, the program creation support device 30 determines whether or not to check the results of the logical operation and the conditional operation set in the processes up to s15. For example, the program creation support device 30 determines whether or not a predetermined instruction has been input from the user (user terminal 10).

[0063] If the results of the logical operation and the conditional operation are to be confirmed (s19: YES), the program creation support device 30 executes a result confirmation process s21, and if the results of the logical operation and the conditional operation are not to be confirmed (s19: NO), the program creation support device 30 executes a process of s23. The result confirmation process s21 will be described in detail later.

[0064] In s23, the program creation support device 30 determines whether or not to check for contradictions in the logical operations and conditional operations set in the processes up to s15. For example, the program creation support device 30 determines whether or not a predetermined instruction has been input from the user (user terminal 10).

[0065] If the contradiction in the logical operation and the conditional operation is to be checked (s23: YES), the program creation support device 30 executes the contradiction determination process s25, and then the program creation support process ends. On the other hand, if the contradiction in the logical operation and the conditional operation is not to be checked (s23: NO), the program creation support process ends. The details of the contradiction determination process s25 will be described later.

[0066] After the program creation support process is completed, the program creation support device 30 generates code for the target process based on the data set in the condition setting information 700 and the logical operation setting information 800.

[0067] <Data setting process> FIG. 9 is a flow diagram illustrating an example of the data setting process s19. First, the program creation support device 30 stores the contents of the input operations (first input operation, second input operation, etc.) set in each setting field in the condition operation graphics (first and second condition operation graphics 613, 616, etc.) in the condition setting information 700. Then, the program creation support device 30 searches each operation (logical operation, input operation) by depth-first search, and selects operations in order from the deepest hierarchical operation.

[0068] The program creation support device 30 judges whether the selected operation is a logical operation or not (s191). If the selected operation is a logical operation (s191: YES), the program creation support device 30 executes the process of s193, and if the selected operation is not a logical operation (s191: NO), the data setting process s19 ends.

[0069] In s193, the program creation support device 30 judges whether a new operation (conditional operation or logical operation) is associated with the selected logical operation. For example, the program creation support device 30 judges whether a user's move operation, such as dragging and dropping a conditional operation graphic from an area of ​​a logical operation graphic to an area of ​​another logical operation graphic, has moved the conditional operation graphic into the other logical operation graphic.

[0070] If a new operation is associated with the selected logical operation (s193: YES), the program creation support device 30 executes the process of s195, and if a new operation is not associated with the selected logical operation (s193: NO), the condition change process s19 ends.

[0071] In s195, the program creation support device 30 stores the new operation in association with the selected logical operation. For example, the program creation support device 30 sets an identifier of the selected logical operation in an identifier 801 of the logical operation setting information 800, sets attribute information of the logical operation in attribute information 802, and sets an identifier of the new operation (conditional operation or logical operation) in an identifier 803.

[0072] In s197, the program creation support device 30 judges whether or not the operation (conditional operation or logical operation) associated with the selected logical operation has been removed from the logical operation. For example, the program creation support device 30 judges whether or not the conditional operation diagram has been removed from the logical operation diagram by a user's drag-and-drop operation of the conditional operation diagram from the region of a logical operation diagram to the region of another logical operation diagram.

[0073] If the operation associated with the selected logical operation has been removed from the selected logical operation (s197: YES), the program creation support device 30 executes the process of s199, and if the operation associated with the selected logical operation has not been removed from the selected logical operation (s197: NO), the data setting change process s19 ends.

[0074] In s199, the program creation support device 30 releases the association between the selected logical operation and the removed operation. For example, the program creation support device 30 deletes the identifier of the operation related to the graphic (conditional operation graphic or logical operation graphic) removed from the logical operation graphic from the identifier 803 of the logical operation setting information 800 in which the identifier of the selected logical operation is set in the identifier 801. Then, the data setting change process s19 ends.

[0075] Here, FIGS. 10 and 11 are diagrams for explaining an example of changing a conditional calculation. 10, a first logical operation graphic 611A is displayed in a condition setting display area 610 of a condition processing editing screen 600, a second logical operation graphic 614A and a second conditional operation graphic 613A are displayed in an area within the first logical operation graphic 611A, and third conditional operation graphics 617A and 617B are displayed in an area within the second logical operation graphic 614A. In this case, for example, an identifier 1002 of the second logical operation graphic 614A and an identifier 1003 of the second conditional operation graphic 613A are set in an identifier 803 (child1011) of the logical operation setting information 800 related to the first logical operation graphic 611A. Also, an identifier 1004 of the third conditional operation graphic 617A and an identifier 1005 of the third conditional operation graphic 617B are associated with an identifier 803 (child1012) of the logical operation setting information 800 related to the second logical operation graphic 614A.

[0076] 11, when the third conditional operation graphic 617B is dragged and dropped from within the second logical operation graphic 614A into the first logical operation graphic 611A, the position of the third conditional operation graphic 617B moves from an area within the second logical operation graphic 614A to an area within the first logical operation graphic 611A (however, an area outside the second logical operation graphic 614A). Accordingly, the identifier 1005 of the third conditional operation graphic 617B is deleted from the identifier 803 (child 1012) of the logical operation setting information 800 related to the second logical operation graphic 614A, and the identifier 1005 of the third conditional operation graphic 617B is added to the identifier 803 (child 1011) of the logical operation setting information 800 related to the first logical operation graphic 611A.

[0077] Note that, here, the case has been described where the operation of the conditional operation graphic by the user terminal 10 is to move from a logical operation graphic of a lower hierarchical level to a logical operation graphic of a higher hierarchical level, but the same applies to the case where the operation of the conditional operation graphic by the user terminal 10 is to move from a logical operation graphic of a higher hierarchical level to a logical operation graphic of a lower hierarchical level.

[0078] <Result confirmation process> Next, FIG. 12 is a flow diagram illustrating an example of the result confirmation process s21. First, the program creation support device 30 sets each operation (conditional operation, logical operation, etc.) in the condition setting information 700 and the logical operation setting information 800 to “unevaluated,” obtains the initial values ​​of the variables in each condition operation from specified test case data, and initializes the current evaluation value (the “intermediate result”).

[0079] Then, in a result confirmation process s21, the program creation support device 30 searches each operation (logical operation, input operation) by a depth-first search, selects operations in order from the deepest hierarchical operation, and performs the following process.

[0080] The program creation support device 30 judges whether the selected operation is a logical operation or not (s213). If the selected operation is a logical operation (s213: YES), the program creation support device 30 executes the process of s215, and if the selected operation is not a logical operation (s213: NO), the program creation support device 30 executes the process of s223.

[0081] In s215, the program creation support device 30 checks whether there is an "unevaluated" operation (e.g., a conditional operation or a logical operation) associated with the currently selected operation (in the immediately lower hierarchical level). For example, the program creation support device 30 checks the contents of the identifier 803 of the logical operation setting information 800 related to the currently selected operation.

[0082] If there is an "unevaluated" operation associated with the selected logical operation (s215: YES), the program creation support device 30 executes the process of s217, and if there is no "unevaluated" operation associated with the selected logical operation (s215: NO), the program creation support device 30 executes the process of s227.

[0083] In s217, the program creation support device 30 selects one of the "unevaluated" operations and executes the selected operation. For example, the program creation support device 30 calculates a truth value of a condition based on a variable value in the selected conditional operation. Also, for example, the program creation support device 30 calculates a truth value based on each input value (the truth value of the conditional operation) in the selected logical operation.

[0084] The program creation support device 30 performs a logical operation between the calculation value calculated in s217 and the current evaluation value ("intermediate result"), and sets the calculated value as the current evaluation value ("intermediate result") (s219). The program creation support device 30 then stores the currently selected operation as "evaluated" (s221), and thereafter repeats the process of s215.

[0085] In s223, the program creation support device 30 executes the selected conditional operation to calculate a true / false value, and then stores the true / false value in the evaluation information 1300 (s225), and the evaluation process ends. Thereafter, the program creation support device 30 displays the judgment result on the conditional process editing screen 600.

[0086] In s227, the program creation support device 30 judges the current evaluation value ("intermediate result"), and then stores the truth value in the evaluation information 1300 (s225), and the evaluation process ends. After that, the program creation support device 30 displays the judgment result on the condition process editing screen 600.

[0087] In this manner, the program creation support device 30 calculates the truth values ​​of all operations (conditional operations, logical operations) set on the condition processing edit screen 600.

[0088] (Evaluation information) 13 is a diagram showing an example of evaluation information 1300 generated in the result confirmation process s21. The evaluation information 1300 has each data item of an identifier 1301 (id) of a conditional operation or logical operation, a truth value 1302 of the conditional operation or logical operation, and a variable value 1303 in the conditional operation.

[0089] 14 is a diagram for explaining a specific example of the result confirmation process s21. First, it is assumed that a first logical operation graphic 611C and two first condition operation graphics 613C and 613D in the first logical operation graphic 611C are set in a condition setting display area 610C of a condition processing edit screen 600C.

[0090] In this case, the truth value of the condition related to the first condition operation graph 613C (first truth value 1302A), the truth value of the condition related to the first condition operation graph 613D (second truth value 1303B), and the operation value 1304C of the logical operator related to the first logical operation graph 611C related to the first truth value and the second truth value are calculated in this order, and these values ​​are set in the evaluation information 1300.

[0091] The first conditional operation graphic 613C displays the first true / false value and sets a corresponding display mode (contours of shape, color, or pattern, or background) (broken line 1305 in the figure). The first conditional operation graphic 613D displays the second true / false value and sets a corresponding display mode (contours of shape, color, or pattern, or background) (bold line 1306 in the figure). The first logical operation graphic 611C displays the operation value of the logical operator and sets a corresponding display mode (contours of shape, color, or pattern, or background) (bold line 1307 in the figure).

[0092] <Conflict Judgment Process> Next, FIG. 15 is a flow diagram illustrating the details of the contradiction determination process s25.

[0093] In the contradiction determination process s25, the program creation support device 30 searches each operation (logical operation, input operation) by depth-first search, selects operations in order from the deepest hierarchical operation, and performs the following process.

[0094] The program creation support device 30 judges whether the selected operation is a logical operation or not (s253). If the selected operation is a logical operation (s253: YES), the program creation support device 30 executes the process of s295, and if the selected operation is not a logical operation (s253: NO), the program creation support device 30 executes the process of s263.

[0095] In s255, the program creation support device 30 checks whether there is an operation (e.g., a conditional operation or a logical operation) that is associated with the currently selected operation (in the immediately lower hierarchical level) and does not generate a range. For example, the program creation support device 30 checks the contents of the identifier 803 of the logical operation setting information 800 related to the currently selected operation.

[0096] If there is an operation that has not generated a range associated with the selected logical operation (s255: YES), the program creation support device 30 executes the process of s257, and if there is no operation that has not generated a range (s255: NO), the program creation support device 30 executes the process of s265.

[0097] In s257, the program creation support device 30 specifies the range of variables in one of the operations for which a range has not been generated. For example, the program creation support device 30 calculates the range of variable values ​​(minimum and maximum values) when the operation value of the conditional operation is a true value, and sets it in the range information 1600. Also, for example, the program creation support device 30 performs a selected logical operation on the range of variables in each conditional operation that is an input of the logical operation, thereby calculating the range of variable values ​​(minimum and maximum values), and sets it in the range information 1600.

[0098] In s259, the program creation support device 30 judges whether the currently selected operation is logical AND. If the currently selected operation is logical AND (s259: YES), the program creation support device 30 executes the process of s261, and if the currently selected operation is not logical AND (s259: NO), the program creation support device 30 repeats the process of s255.

[0099] In s261, the program creation support device 30 performs a logical AND operation to generate the range of variables in the operation. For example, for each operation identified in s255 and s257, the program creation support device 30 sets the minimum value of the operation with the largest minimum value as the minimum value related to the logical operation, sets the maximum value of the operation with the smallest maximum value as the maximum value related to the logical operation, and sets them in the range information 1600. After that, the process of s255 is repeated.

[0100] In s263, the program creation support device 30 generates a range for the currently selected conditional operation. For example, the program creation support device 30 calculates the range (minimum and maximum values) of the variable values ​​when the operation value of the selected conditional operation is a true value, and sets this in the range information 1600. After that, the process of s265 is executed.

[0101] In s265, the program creation support device 30 determines whether or not there is a logical contradiction in the ranges generated in s263, s257, and s261 (s265). For example, the program creation support device 30 determines whether or not the minimum value of the range is greater than the maximum value of the range.

[0102] If there is a logical contradiction in the range (s265: YES), the programming support device 30 executes the process of s309, and if there is no logical contradiction in the range (s265: NO), the programming support device 30 executes the process of s267.

[0103] In s267, the program creation support device 30 stores the information in the above range, and displays the information in the above range in the contradiction determination result display field 680 on the condition process editing screen 600.

[0104] In s269, the program creation support device 30 displays information about the logical contradiction in the above range on the conditional processing edit screen 600. For example, the program creation support device 30 acquires information about the identifier of an operation (such as a conditional operation) having a logical contradiction in the range from the range information 1600, and displays the acquired information in the contradiction determination result display field 680 on the conditional processing edit screen 600.

[0105] (Range information) 16 is a diagram showing an example of range information 1600. The range information 1600 has data on identifiers 1601, 1602 (id1, id2) of one or more conditions to be determined as the range, a start value 1603 (minimum value, etc.) of the range, and an end value 1604 (maximum value, etc.) of the range.

[0106] 17 is a diagram for explaining a specific example of the contradiction determination process s25. First, a first logical operation graphic 611D is set in a condition setting display area 610D of the condition processing edit screen 600, and two first condition operation graphics 613E and F are set in the first logical operation graphic 611D. In this case, the first condition operation graphic 613D is associated with the identifier of the first logical operation, and the first condition operation graphics 613E and F are associated with the identifiers (id:1234-5678, id:abcd-5678) of the first and second condition operations, respectively.

[0107] By executing the contradiction determination process s25, a minimum value 1701 and a maximum value 1702, which are the range of variables in which the first conditional calculation related to the first conditional calculation graphic 613E is a true value, and a minimum value 1703 and a maximum value 1704, which are the range of variables in which the second conditional calculation related to the second conditional calculation graphic 613F is a true value, are specified, and these are set in the range information 1600. Then, the ranges (minimum value 1705 and maximum value 1706) of the first conditional calculation and the second conditional calculation related to the first logical operation graphic 611D to which the first conditional calculation graphic 613E and F correspond are set in the range information 1600. Then, it is determined whether or not the new variable range includes a contradiction (for example, whether or not the start value 1603 of the range information 1600 is larger than the end value 1604).

[0108] Then, the first conditional operation graphics 613E, F in the hierarchy immediately below the first logical operation graphic 611D are set with a display mode (shape, color, or outline or background of a pattern, etc.) according to the judgment result (in the same figure, dashed line 1707 indicating the existence of a contradiction).

[0109] As described above, the program creation support device 30 of this embodiment displays the condition processing editing screen 600, accepts designation of a first logical operation and a first input operation including at least one condition operation from the user via the logical operation selection field 630 and the condition selection field 650, respectively, displays a figure representing the specified first logical operation (first logical operation figure 611) in the first display area (condition setting display area 610) of the display device, and displays a figure representing the first input operation (second logical operation figure 614) in the second display area (area within the first logical operation figure 611) within the first display area.

[0110] In this way, by accepting input of logical operations and conditional operations that compose the logical operations, and displaying the figures representing the logical operations so that they include figures representing the conditional operations, it is possible to visually express the logical relationship between the logical operations and the conditional operations in an easily understandable manner, allowing the user to easily create programs even in which logical operations and conditional operations are intricately intertwined.

[0111] As described above, the program creation support device 30 of this embodiment can support efficient creation of a program that performs conditional decisions using a predetermined logical relationship.

[0112] Furthermore, the program creation support device 30 of this embodiment accepts from the user a specification of a conditional operation and a second logical operation having a logical value as an input as a first input operation, and accepts a specification of a second input operation including at least one conditional operation that derives the logical value. The program creation support device 30 also displays a figure representing the specified second logical operation in a second display area within the first display area, and displays a figure representing the second input operation in a third display area (area within the second logical operation figure 614) within the second display area.

[0113] In this way, by accepting the user's designation of the conditional operation and other logical operations (second logical operations) as inputs to the logical operation (first logical operation) in the same manner as above, and displaying the figure representing the first logical operation so as to include the figures representing the conditional operation and other logical operations, it is possible to visually express the multiple structure (nesting) of logical operations in an easily understandable manner. This allows the user to easily create programs in which logical operations and conditional operations are intricately intertwined.

[0114] Then, the program creation support device 30 of this embodiment generates data (logical operator information 400) in which the first input operation is associated with the first logical operation and the second input operation is associated with the second logical operation.

[0115] In this way, by generating data that correctly reflects the relationship between the input operations (conditional operations, etc.) and logical operations set by the user, it is possible to create the corresponding program code.

[0116] Furthermore, when the program creation support device 30 of this embodiment receives an instruction (such as drag-and-drop) from a user to change the display area of ​​the figures (first and second conditional operation figures 613, 616) representing an input operation (conditional operation, etc.), it changes the display area of ​​the figures representing the input operation to a new display area, and in the logical operator information 400, associates the input operation with a logical operation related to the new display area.

[0117] In this way, the user can change the logical operation to which the input operation (conditional operation, etc.) belongs by simply instructing to change the display area of ​​the conditional operation graphic, and can easily correct the logical relationship related to the input operation.

[0118] In addition, the program creation support device 30 of this embodiment displays the result of the second logical operation, which has the operation value of the second input operation as an input, in the third display area (area within the second logical operation graphic 614) in a display mode (color, thickness, shape, etc.) corresponding to the result, and displays the result of the first logical operation, which has the operation value of the first input operation as an input and is calculated based on the operation result of the second logical operation, in the second display area (area within the first logical operation graphic 611) in a display mode (color, thickness, shape, etc.) corresponding to the result.

[0119] In this way, the result of each set logical operation is displayed in a display mode according to the result of the operation in the corresponding area of ​​the figure, so that the user can easily verify the logical relationship.

[0120] Furthermore, the program creation support device 30 of this embodiment judges whether or not there is a logical contradiction between the second input operations in the second logical operation, and displays information indicating the judgment result (e.g., true / false) in a display mode corresponding to the judgment result in the third display area (area in the second logical operation graphic 614). Furthermore, the program creation support device 30 judges whether or not there is a logical contradiction between the first input operations in the first logical operation based on the above judgment result, and displays information indicating the judgment result (e.g., true / false) in a display mode corresponding to the judgment result in the second display area (area in the first logical operation graphic 611).

[0121] In this way, by displaying the contradictions in each set logical operation in the corresponding graphic region in a display mode according to the operation result, the user can easily check whether there are any contradictions in each logical relationship.

[0122] Furthermore, the program creation support device 30 of this embodiment judges whether or not there is a logical contradiction in the range of values ​​of the variables related to the conditional operations of each second input operation in the second logical operation, and judges whether or not there is a logical contradiction in the range of values ​​of the variables related to the conditional operations of each first input operation in the first logical operation.The program creation support device 30 then displays information on each conditional operation having a logical contradiction and each range of values ​​of the variables related to each conditional operation in the contradiction judgment result display field 680 on the conditional processing editing screen 600 of the display device 35.

[0123] In this way, by determining the inconsistencies in the ranges of variable values ​​between conditional operations in a logical operation and displaying information about the inconsistent conditional operations and their variable value ranges, the user can easily confirm the inconsistencies in the conditional operations in the logical operation.

[0124] Furthermore, the program creation support device 30 of this embodiment displays the respective figures representing the conditional operation and the second logical operation, which constitute the first input operation, in the second display area in an aligned manner.

[0125] This allows the user to easily confirm the relationship between the first logical operation and each of the first input operations that serve as inputs to the first logical operation.

[0126] The present invention is not limited to the above-described embodiment, and can be implemented using any components without departing from the scope of the present invention. The above-described embodiments and modifications are merely examples, and the present invention is not limited to these contents as long as the features of the invention are not impaired. In addition, although various embodiments and modifications have been described above, the present invention is not limited to these contents. Other aspects conceivable within the scope of the technical idea of ​​the present invention are also included in the scope of the present invention.

[0127] For example, part of the hardware included in each device of this embodiment may be provided in another device.

[0128] Furthermore, each program of each device may be provided in another device, a program may consist of multiple programs, or multiple programs may be integrated into one program.

[0129] Also, in this embodiment, the input operations are assumed to be conditional operations or (other) logical operations, but may include other operations (mathematical expressions or constants) that output an operation value.

[0130] In addition, in this embodiment, the user can specify logical operations and input operations, and can specify a change in the display area for the input operation (conditional operation) by dragging and dropping on the condition processing editing screen 600, but other specification methods (for example, selection from a pull-down menu, specification by character input) may also be adopted. [Explanation of symbols]

[0131] 30 Program creation support device, 37 Data designation processing unit, 38 Data display processing unit, 39 Data setting processing unit, 40 Condition change processing unit, 41 Result confirmation processing unit, 42 Contradiction determination processing unit

Claims

1. a data specification process for receiving, from a user, a specification of a first logical operation having a logical value as an input, and a specification of a first input operation which is an operation including at least one conditional operation and which derives the logical value; a data display process for displaying a graphic representing the specified first logical operation in a first display area of ​​a display device and displaying a graphic representing the first input operation in a second display area within the first display area; A program creation support device comprising a control device that executes the above.

2. The control device includes: In the data specification process, a specification of the conditional operation and a second logical operation having a logical value as an input is accepted from a user as a specification of the first input operation, and a specification of a second input operation which is an operation including at least one conditional operation that derives the logical value is accepted; in the data display process, a graphic representing the specified second logical operation is displayed in a second display area within the first display area, and a graphic representing the second input operation is displayed in a third display area within the second display area.

2. The program creation support device according to claim 1.

3. The control device includes: executing a data setting process to generate data in which the first input operation corresponds to the first logical operation and the second input operation corresponds to the second logical operation; 3. The program creation support device according to claim 2.

4. The control device includes: when an instruction to change a display area of ​​the figure representing the input operation is received from a user, the display area of ​​the figure representing the input operation is changed to a new display area, and a condition change process is executed to associate the input operation with the logical operation related to the new display area in the generated data.

4. The program creation support device according to claim 3.

5. The control device includes: displaying a result of the second logical operation, which uses the calculated value of the second input operation as an input, in the third display area in a display mode corresponding to the result of the second logical operation; executing a result confirmation process for displaying, in the second display area, a result of the first logical operation, which is calculated based on a result of the second logical operation and which uses as an input the operation value of the first input operation, in a display mode corresponding to the result of the operation; 4. The program creation support device according to claim 3.

6. The control device includes: determining whether or not there is a logical contradiction between the conditional operations of the second input operations in the second logical operation, and displaying information indicating the determination result in the third display area in a display mode corresponding to the determination result; execute a contradiction determination process for determining whether or not there is a logical contradiction between the conditional operations of the first input operations in the first logical operation based on the determination result, and displaying information indicating the determination result in the second display area in a display mode corresponding to the determination result.

4. The program creation support device according to claim 3.

7. The control device includes: In the contradiction determination process, it is determined whether or not there is a logical contradiction in a range of values ​​of variables related to each of the second input operations in the second logical operation, and it is determined whether or not there is a logical contradiction in a range of values ​​of variables related to each of the first input operations in the first logical operation; displaying information on each conditional operation having a logical contradiction and each range of values ​​of variables related to each conditional operation in a predetermined display area of ​​a display device; 7. The program creation support device according to claim 6.

8. the control device, in the data display process, displays in the second display area the figures representing the conditional operation and the second logical operation, which constitute the first input operation, in alignment with each other.

3. The program creation support device according to claim 2.

9. A program creation support method by an information processing device having a control device, comprising: The control device, a data specification process for receiving, from a user, a specification of a first logical operation having a logical value as an input, and a specification of a first input operation which is an operation including at least one conditional operation and which derives the logical value; a data display process for displaying a graphic representing the specified first logical operation in a first display area of ​​a display device and displaying a graphic representing the first input operation in a second display area within the first display area; Execute How to support program creation.

Citation Information

Patent Citations

  • Method and system for data search and display, and data search engine equipped with data search and display method

    JP2002117056A

  • Information processing system

    JP2017188043A

  • Group Eligibility Criteria Builder

    US20220374842A1

  • Rule consistency verification device and rule consistency verification method

    WO2016110946A1

  • WO2006/308898