Development assistance device and development assistance system
Patent Information
- Application Number
- PCT/JP2025/012540
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-27
- Publication Date
- 2026-10-01
Smart Images

Figure JP2025012540_01102026_PF_FP_ABST
Abstract
Description
Development support apparatus and development support system
[0001] One aspect of the present invention relates to a development support apparatus and a development support system.
[0002] Visual programming is an environment that allows users to create programs, set application behaviors, and set tools by combining visual objects. Work that can be performed by visual programming is hereinafter collectively referred to as coding. Visual programming does not require direct editing of text source code, so it is user-friendly for beginners and has achieved good results in programming education and other fields. In recent years, use cases for realizing practical application development and complex tool settings have also emerged. Products that can withstand professional use, such as the development of mobile applications and embedded software, are currently available.
[0003] Code completion (also referred to as content assist, code hinting, etc.) is a powerful support function in traditional text-based development / setting environments. When using this function, for example, a user can immediately know which one of numerous APIs (Application Programming Interfaces) to call, and thus it can be said to be an indispensable tool for programmers. In the field of visual programming as well, an invention for realizing this type of support function has been filed (Patent Document 1).
[0004] International Publication No. 2024 / 252579
[0005] In visual programming, recommending required objects and automatically connecting them corresponds to code completion. However, in the existing technology, when there are several (that is, a plurality of) shape patterns after connecting objects, there is a problem that an appropriate combination cannot be selected. A solution to this problem is desired in order to improve development efficiency and quality.
[0006] The present invention has been made in view of the above circumstances, and aims to provide a technique for further enhancing support functions in a visual programming environment.
[0007] According to one embodiment, the development support device is a computer on which a visual programming environment for coding by combining visual objects is installed. The development support device comprises a display unit, a connection destination estimation processing unit, and a recommended object display unit. The connection destination estimation processing unit estimates the connection destination of a second object to a first object based on the attributes of the selected first object and the attributes of second objects that can be combined with the first object. The recommended object display unit displays candidate second objects to be combined with the first object and the estimated connection destination on the display unit.
[0008] According to one aspect of this invention, the support functions in a visual programming environment can be further enhanced.
[0009] Figure 1 is a functional block diagram showing an example of a development support device related to an embodiment. Figure 2 is a flowchart showing an example of the processing procedure of the processor 11 shown in Figure 1. Figure 3 is a flowchart showing an example of the procedure in the connection destination estimation process of Figure 2. Figure 4 is a flowchart showing an example of the procedure in the goodness-of-fit calculation process of Figure 3. Figure 5 is a diagram showing a case where there are multiple connection patterns between objects in past settings. Figure 6 is a diagram showing an example of the connection frequency (frequency) for each connectable destination. Figure 7 is a graph of the frequency distribution based on the results of Figure 6. Figure 8 is a diagram showing an example of weights applied to the frequency distribution. Figure 9 is a flowchart showing an example of the procedure in the text evaluation process of Figure 3. Figure 10 is a diagram for explaining the text evaluation process. Figure 11 is a diagram for explaining the text evaluation process. Figure 12 is a diagram for explaining events that may occur in an existing visual programming environment.
[0010] Figure 1 is a functional block diagram showing an example of a development support device according to an embodiment. In Figure 1, the development support device 100 is a computer comprising a processor 11, a storage unit 12, and a display unit 13.
[0011] The memory unit 12 stores a program 12a that enables the computer to function as a development support device, as well as current setting data 12b, past setting data 12c, and document information 12d.
[0012] The current configuration data 12b and the past configuration data 12c are, for example, information used to determine how to select the second object in relation to the first object. For example, the current configuration data 12b might be a setting such as "When object A is focused, the second object will be selected from the objects in group B."
[0013] Past configuration data 12c is data such as "which part of object C is connected to which location on object A." In other words, information such as the object's identifier (ID), the ID of the object to which that object is connected, and the connection location is registered in past configuration data 12c. That is, the connection relationships between multiple objects are registered and stored in past configuration data 12c, thereby managing the connection history of each object.
[0014] Furthermore, past configuration data 12c can be dynamically switched. For example, exemplary configuration sets and configuration sets created by experts can be stored in past configuration data 12c. This not only improves efficiency by recommending settings based on the user's current and past settings, but also contributes to quality improvement by creating better settings. Document information 12d is data that has been converted into text, such as contracts and various manuals.
[0015] The processor 11 includes a visual programming unit 11a, a connection destination estimation processing unit 11b, a suitability calculation unit 11c, a text evaluation unit 11d, and a recommendation object display unit 11e as processing functions according to the embodiment.
[0016] The visual programming unit 11a provides the user 10 with a visual programming environment. That is, an application that provides a visual programming environment is installed on the development support device 100. The user 10 can operate the visual programming application to create products 14 such as practical applications and settings.
[0017] The connection destination estimation processing unit 11b estimates the connection destinations of objects (second objects) that can be combined with the first object (first object) when the user 10 selects an arbitrary object in the visual programming environment. The connection destination estimation processing unit 11b estimates the connection destinations based on the attributes of the first object and the attributes of the second object. Note that selecting an object in an interface such as a GUI (Graphical User Interface) is also called "applying focus," "being in focus," or "focusing." In other words, the connection destination estimation processing unit 11b estimates the connection destinations of other objects to the focused visual object.
[0018] Attributes can include, for example, the shape of an object. Alternatively, numerical values, code snippets, reserved words, the object's color, length, orientation, and other information written within the object can also be treated as attributes.
[0019] For example, in estimation based on shape, the convex portion of the first object and the concave portion of the second object can be potential connection points for each other. However, if the second object has multiple concave portions, it may be unclear which concave portion the first object should be connected to. The following describes a technology that can solve such difficulties.
[0020] The fitness calculation unit 11c calculates the fitness for each connection destination of the second object to the first object based on past setting data 12c. The connection destination estimation processing unit 11b estimates the connection destination of the second object to the first object based on the fitness calculation unit 11c. Here, fitness refers not to the fitness between the first object and the second object, but to the fitness between the connection destinations of multiple objects.
[0021] The document evaluation unit 11d calculates an index for each connection destination that indicates the degree of agreement between a document consisting of a setting in which the second object is connected to the first object and an existing document, for pairs of objects whose degree of relevance does not meet a predetermined threshold. Examples of documents that can be used are contract data stored in document information 12d. The connection destination estimation processing unit 11b estimates the connection destination of the second object to the first object based on the index calculated by the document evaluation unit 11d, if the degree of relevance calculated by the degree of relevance calculation unit 11c does not meet the threshold.
[0022] The recommended object display unit 11e displays a list of candidate objects to be combined with the focused object in the GUI window of the display unit 13, based on the degree of relevance (relevance score) calculated by the degree of relevance calculation unit 11c and the index calculated by the text evaluation unit 11d.
[0023] Figure 2 is a flowchart illustrating an example of the processing procedure of the processor 11 shown in Figure 1. In Figure 2, the processor 11 obtains the second object (visual object) recommended for the first object (step S10), and estimates the connection destination of the second object to the first object (step S20).
[0024] Figure 3 is a flowchart showing an example of the procedure in the connection destination estimation process shown in Figure 2. In Figure 3, the processor 11 obtains the visual object recommended in step S10 (Figure 2) (step S1), and checks whether there is past setting data exceeding a default value regarding the connection between this recommended object (second object) and the object to which it will be connected (first object) (step S2).
[0025] If it exists (YES), the processor 11 performs a fitness calculation process for each of the multiple connection points between the first object and the second object (step S3). Based on the results, the processor 11 determines whether there are any calculated fitness scores that are equal to or greater than a threshold, and if they exist (YES), it connects the recommended visual object (second object) to the connection point with the highest fitness score in the first object (step S5).
[0026] On the other hand, if there is no past setting data exceeding a default value in step S2 (NO), or if there is no fit score exceeding a threshold in step S4 (NO), the processor 11 performs text evaluation processing (step S6) and calculates an index for each connection position. Then, the processor 11 connects the recommended visual object (second object) to the connection position with the highest index value (highest evaluation) in the first object (step S7).
[0027] Figure 4 is a flowchart showing an example of the procedure in the goodness-of-fit calculation process shown in Figure 3. In Figure 4, the processor 11 extracts past settings from past setting data 12c in which pairs of recommended visual objects (second object) and connected visual objects (first object) are in a connection relationship (step S11).
[0028] As shown in Figure 5, the object recommended for connection to the target object has, for example, two connection methods (top or bottom) according to past configuration data. Next, the processor 11 calculates the frequency of occurrence for each possible connection destination of the first object against the elapsed time from the extracted past settings (step S12). As shown in Figure 6, it is extracted that in today's development work, the first object was connected to the top 5 times (frequency 5) and to the bottom 2 times (frequency 2). Similarly, the frequency of occurrence against the elapsed time for each possible connection destination is aggregated from the extracted past settings in units of 1 week, 2 weeks, 3 weeks, and 4 weeks. The definition of elapsed time is arbitrary. Also, if multiple occurrences occur within a single setting, each is counted as 1. Figure 7 is a graph of the frequency distribution based on the results in Figure 6. According to Figure 7, it can be seen that there is a tendency to "connect the second object to the top of the first object" as we approach today.
[0029] Returning to Figure 4, the explanation continues. Following step S12, the processor 11 applies predetermined weights to the obtained frequency distribution values and calculates the goodness of fit (step S13). As shown in Figure 8(a), if you want to prioritize values closer to today in relation to the development period, for example, you can set the weight for today to 0.7 and then set the weights to 0.3, 0.15, and 0.5 for each week going back. In this case, suppose the goodness of fit is calculated to be 5.95 for the upper part (Figure 8(b)) and 3.0 for the lower part (Figure 8(d)). As a result, it is recommended to "connect the second object to the top of the first object".
[0030] On the other hand, as shown in Figure 8(c), if a uniform weight (e.g., 0.2) is set for the development period, a fit score of 3.0 is obtained for the upper part and 3.4 for the lower part. In this case, it is recommended to "connect the second object to the lower part of the first object". Then, in Figure 4, the processor 11 returns a list of fit scores for each connectable destination to the process that called the process (step S14).
[0031] Figure 9 is a flowchart illustrating an example of the procedure in the document evaluation process shown in Figure 3. In Figure 9, the processor 11 collects document information related to the current development (step S22) and stores it in the memory unit 12. Next, the processor 11 documents the visual programming settings after connecting objects (step S22), thereby obtaining a text document consisting of the setting where the second object is connected to the first object. The processor 11 then evaluates the degree of agreement between the document document obtained in step S22 and the document information collected in step S21 (step S23).
[0032] Figures 10 and 11 illustrate the text evaluation process. In Figure 10, a Robotic Process Automation (RPA) scenario related to contract approval can be used as an example of text relevant to this development. In step S23, the degree of agreement between the contract approval manual collected in step S21 and the text (for example, "When the approval amount is 1 million, check whether an audit is required; otherwise, ...") that was documented in step S22 regarding the connection status of multiple objects is evaluated. Here, the method of evaluating the text is arbitrary. Figure 10 shows an example where the evaluation is based on the order of word appearance. That is, suppose the sentence "When the approval amount is 1 million, check whether an audit is required; otherwise, ..." is morphologically analyzed to extract nouns and permuted to obtain data such as [1. Approval amount], [2. 1 million], [3. Audit requirement], [4. Check]. This is compared with the contract approval manual, and the degree to which the words appear in the same order within the manual is evaluated. For example, item 2. If they appear in the correct order, the value obtained is 2 / 4 = 0.5.
[0033] As shown in Figure 11, when comparing a document consisting of multiple interconnected objects with a related document (contract settlement manual), a Large Language Model (LLM) may be used. Alternatively, Retrieval-augmented generation (RAG) may be used. RAG is a technique that improves the accuracy of responses to prompts by combining LLM with the internet and other information. Here, for example, external information such as a contract settlement manual is used as RAG to determine whether the documented configuration can be evaluated as a summary or citation of information within the manual. The procedures in Figure 10 and Figure 11 can be performed individually or combined.
[0034] As described above, in this embodiment, when connecting a second object to a first object, the suitability of the connection destination is determined based on past configuration data, and a connection destination with a high suitability is recommended. Furthermore, if the suitability value does not meet the default criteria, the settings for the visual programming after connection are treated as text, the degree to which the text matches the related document is determined, and the connection destination with the highest evaluation is presented as the appropriate connection destination.
[0035] With existing technologies, as shown in Figure 12(a), the machine could not decide (or recommend) whether to connect a recommended block (object to be connected) above or below the other object. Similarly, as shown in Figure 12(b), a human had to decide whether to connect a recommended block (object) to the right or to the left. In other words, in visual programming, auto-completion (visual object recommendation and automatic connection) had the problem of not being able to select the appropriate combination when there were multiple connection destinations (patterns of shapes after connection).
[0036] In contrast, according to this embodiment, combinations of objects are shown along with recommended connection points. As a result, according to this embodiment, code completion in text-based coding can be provided in an even more advanced form in a visual programming environment. This makes it possible to reduce the hesitation in decision-making that often occurs in visual programming environments. Therefore, according to this embodiment, it is possible to further enhance the support functions in the visual programming environment, and consequently, dramatically improve development efficiency.
[0037] It should be noted that this invention is not limited to the above-described embodiments. For example, the embodiments assume an on-premises environment using a computer on which a visual programming environment is installed. Alternatively, the technology of the embodiments can also be applied to a visual programming environment provided by a virtualized instance using resources on the cloud. In this case, the program 12a, current setting data 12b, past setting data 12c, and document information 12d should be stored on an instance server launched on the cloud, and the visual programming unit 11a, connection destination estimation processing unit 11b, suitability calculation unit 11c, document evaluation unit 11d, and recommendation object display unit 11e should be installed. Furthermore, a separate database for storing the current setting data 12b, past setting data 12c, and document information 12d may be provided.
[0038] In other words, this invention is not limited to the above embodiments, and in the implementation stage, the components can be modified and materialized without departing from the gist of the invention. Furthermore, various inventions can be formed by appropriately combining the multiple components disclosed in the above embodiments. For example, some components may be deleted from all the components shown in the embodiments. Moreover, components from different embodiments may be appropriately combined.
[0039] 10...User 11...Processor 11a...Visual Programming Unit 11b...Connection Destination Estimation Processing Unit 11c...Fitness Calculation Unit 11d...Text Evaluation Unit 11e...Recommended Object Display Unit 12...Storage Unit 12a...Program 12b...Configuration Data 12c...Configuration Data 12d...Document Information 13...Display Unit 14...Product 100...Development Support Device.
Claims
1. A development support device having a visual programming environment installed for coding by combining visual objects, comprising: a display unit; a connection destination estimation processing unit that estimates the connection destination of the second object to the first object based on the attributes of the selected first object and the attributes of the second object that can be combined with the first object; and a recommended object display unit that displays candidate second objects to be combined with the first object and the estimated connection destination on the display unit.
2. The development support device according to claim 1, further comprising: a storage unit for storing settings of connection relationships between multiple objects; and a fitness calculation unit for calculating the fitness level for each connection destination of the second object to the first object based on the settings, wherein the connection destination estimation processing unit estimates the connection destination based on the fitness level.
3. The development support device according to claim 2, further comprising a document evaluation unit that calculates an index for each connection destination indicating the degree of agreement between a document consisting of the setting in which the second object is connected to the first object and an existing document, if the degree of fit does not meet a predetermined threshold, and the connection destination estimation processing unit estimates the connection destination based on the index.
4. A development support system that provides a visual programming environment for coding by combining visual objects using virtualized instances, wherein the instance comprises a connection destination estimation processing unit that estimates the connection destination of a second object to the first object based on the attributes of a selected first object and the attributes of a second object that can be combined with the first object, and a recommended object display unit that displays candidate second objects to be combined with the first object and the estimated connection destination on a display unit.