Software design information recommendation system and software design information recommendation method

The software design information recommendation system uses a trained AI model to analyze past software design data and provide valid recommendations that meet evaluation index requirements, addressing the limitations of existing systems.

JP2026038307APending Publication Date: 2026-03-06ASTEMO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024141651
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-22
Publication Date
2026-03-06

AI Technical Summary

Technical Problem

Existing software design systems fail to provide recommended design information that satisfies required evaluation index values.

Method used

A software design information recommendation system utilizing a trained AI model that associates past software design information with evaluation index values, allowing for reverse analysis to determine recommended design information based on required evaluation information.

Benefits of technology

The system provides recommended design information that satisfies required evaluation index values, offering a greater number of design items than input requirements and ensuring validity through statistical analysis and user-defined criteria.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026038307000001_ABST
    Figure 2026038307000001_ABST
Patent Text Reader

Abstract

To provide recommended design information for satisfying required evaluation index values.SOLUTION: The software design information recommendation system includes a trained AI model trained based on a plurality of pieces of past software information in which past software design information that is design information of past software developed in the past and an evaluation index value related to an evaluation of the past software are associated with each other, a request input unit to which request evaluation information that is an evaluation index value required for software under development is input, and an inverse analysis unit that determines and outputs recommended design information recommended to the software under development to obtain the request evaluation information by analyzing training contents of the trained AI model in a direction opposite to a prediction processing order of the trained AI model.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a software design information recommendation system and a software design information recommendation method. [Background technology]

[0002] Software design plays a critical role in the development of complex software systems. Software design defines the system's structure and configuration, providing a high-level view of its components and interactions. Software design is essential for ensuring that a software system meets its functional and non-functional requirements and operates optimally. Patent Document 1 discloses an information processing method that uses a processor to determine the configuration of a machine learning model, performs a first determination as to whether the machine learning model with the determined configuration satisfies a first performance requirement, which is a requirement for hardware performance, performs training using a machine learning model with a configuration determined to satisfy the first performance requirement, if the first determination determines that the first performance requirement is satisfied, performs a second determination as to whether the trained model obtained by training satisfies a second performance requirement, which is a requirement for an evaluation value of the output of the machine learning model, outputs information indicating that the trained model satisfies both the first and second performance requirements, and if the first determination determines that the first performance requirement is not satisfied, modifies the configuration of the machine learning model and performs the first determination as to whether the machine learning model with the modified configuration satisfies the first performance requirement. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 2019-096285 Summary of the Invention [Problem to be solved by the invention]

[0004] The invention described in Patent Document 1 cannot provide recommended design information for satisfying required evaluation index values. [Means for solving the problem]

[0005] A software design information recommendation system according to a first aspect of the present invention comprises a trained AI model trained based on multiple pieces of past software information that associate past software design information, which is design information of past software that is software developed in the past, with evaluation index values ​​related to the evaluation of the past software; a requirement input unit to which required evaluation information, which is the evaluation index values ​​required for software under development, is input; and a reverse analysis unit that analyzes the training content of the trained AI model in a direction reverse to the prediction processing order of the trained AI model, to determine and output recommended design information to be recommended for the software under development in order to obtain the required evaluation information. A software design information recommendation method according to a second aspect of the present invention is a software design information recommendation method executed by one or more computers that can access a trained AI model trained based on multiple pieces of past software information that associate design information of past software, which is software developed in the past, with evaluation index values ​​related to the evaluation of the past software, and that has a requirement input unit to which required evaluation information, which is the evaluation index values ​​required for software under development, is input, and includes a reverse analysis process that analyzes the training content of the trained AI model in a direction reverse to the prediction processing order of the trained AI model, to determine and output recommended design information to be recommended for the software under development in order to obtain the required evaluation information. [Effects of the Invention]

[0006] According to the present invention, it is possible to provide recommended design information for satisfying required evaluation index values. [Brief explanation of the drawings]

[0007] [Figure 1] Functional configuration diagram of a software design information recommendation system according to a first embodiment [Figure 2] An example of an attribute table [Figure 3] An example of a KPI table [Figure 4] An example of attribute statistics [Figure 5] An example of a regression tree model [Figure 6] A diagram showing an example of recommended attribute ranges [Figure 7] Hardware configuration diagram of the software design information recommendation system [Figure 8] Flowchart showing the processing of the inverse analysis unit 1 [Figure 9] Flowchart showing the operation of the dfs function [Figure 10] Flowchart showing the processing of the validation unit [Figure 11] Figure showing an example of output from the result display section [Figure 12] Functional configuration diagram of a software design information recommendation system according to a second embodiment [Figure 13] An example of attribute correlation [Figure 14] An example of KPI weighting [Figure 15] FIG. 10 is a diagram showing an example of a recommended attribute range group 802G for explaining a first process of the recommended range synthesis unit. [Figure 16] FIG. 10 is a diagram illustrating a second process of the recommended range synthesis unit. [Figure 17] Flowchart showing the process of the recommended range synthesis unit DETAILED DESCRIPTION OF THE INVENTION

[0008] -First embodiment- A first embodiment of a software design information recommendation system will be described below with reference to FIGS.

[0009] FIG. 1 is a functional configuration diagram of a software design information recommendation system 1. Note that FIG. 1 also shows data used by the software design information recommendation system 1. The software design information recommendation system 1 is a system that outputs a recommended attribute range 802 that satisfies a desired KPI value 801 input by a user. The software design information recommendation system 1 includes an attribute analysis unit 305, a KPI generation unit 401, a statistics generation unit 501, an attribute estimation unit 702, a validity confirmation unit 902 that includes a criterion change unit 903, a result display unit 990, and a request input unit 991. The request input unit 991 and the criterion change unit 903 accept operational inputs from the user. The desired KPI value 801 is input to the request input unit 991, and a threshold value used for calculation by the validity confirmation unit 902 is input to the criterion change unit 903.

[0010] The data handled by the software design information recommendation system 1 includes at least source code 301, attribute table 304, KPI table 403, and recommended attribute range 802. These data may be stored in a storage device included in the software design information recommendation system 1, or may be saved outside the software design information recommendation system 1. The attribute analysis unit 305 includes an attribute extraction unit 302 and an attribute aggregation unit 303. The attribute estimation unit 702 includes a regression tree model 602 and an inverse analysis unit 1801.

[0011] The source code 301 is data on the source code and architecture of various software. The source code 301 includes not only the source code of different software but also different versions of the same software. At least a portion of the source code 301 may be provided externally via a network, and the source code 301 may change daily. The source code 301 is referenced by the attribute analysis unit 305 and the KPI generation unit 401.

[0012] FIG. 2 is a diagram showing an example of the attribute table 304. The attribute table 304 stores the values ​​of each attribute for each software. Software attributes include the number of lines of source code, the number of inputs and outputs of a function, the percentage of comments in the source code, the difficulty level of a function, the number of jobs, etc. In FIG. 2, each software is described as a combination of "SW" and a number, and each attribute is described as a combination of "attribute" and a number, but in reality, specific names are described. The attribute table 304 is generated by the attribute analysis unit 305 and is referenced by the statistics generation unit 501 and the regression tree model generation unit 960. The attribute table 304 can also be called design information of software developed in the past.

[0013] FIG. 3 shows an example of a KPI table 403. The KPI table 403 stores the values ​​of each KPI for each software. KPIs are key performance indicators for each software. Examples include CPU load, memory load, person-hours, and reusability. CPU load is the CPU core usage rate expressed as a percentage when the software is executed on specified hardware. Memory load is the memory usage rate expressed as a percentage when the software is executed on specified hardware. Person-hours are the product of the number of people and time required to implement the software. Reusability is the number of times source code is reused in different versions of the same software. In FIG. 3, each software is listed as a combination of "SW" and a number, and each KPI is listed as a combination of "KPI" and a number; however, in reality, specific names are listed. The KPI table 403 is generated by the KPI generation unit 401 and referenced by the regression tree model generation unit 960.

[0014] 4 is a diagram showing an example of the attribute statistics 502. The attribute statistics 502 stores statistical values ​​of each attribute listed in the attribute table 304. The statistical values ​​include, for example, minimum values, maximum values, average values, and standard deviations. The attribute statistics 502 are generated by the statistics generation unit 501 and are referenced by the validity confirmation unit 902.

[0015] FIG. 5 is a diagram showing an example of a regression tree model 602. The regression tree model 602 is composed of multiple nodes and has a branching shape from a single starting node. In the example shown in FIG. 5, nine nodes N1 to N9 are shown, with N1 at the top being the apex or starting point of the nodes. Hereinafter, N1 will be referred to as the "apex node." N1, N3, N4, and N6, surrounded by dashed lines, will be explained later. The example shown in FIG. 5 is a regression tree model 602 that estimates CPU load. In this embodiment, the regression tree model 602 is created for one KPI that is set in advance from multiple KPIs.

[0016] This regression tree model 602 identifies the value of a specific KPI using attributes derived from the software source code 301. In the regression tree model 602, at least one of two connected nodes contains a condition for proceeding to the next node, and at least the leaf node, which is the terminal node, contains a KPI value. In prediction processing using the regression tree model 602, reading proceeds from top to bottom in the figure. In other words, by continuing to proceed downward from the apex node through the nodes according to the attribute values ​​of the target source code, the KPI value written in the leaf node reached becomes the estimated KPI value of the software corresponding to the source code.

[0017] FIG. 6 is a diagram showing an example of a recommended attribute range 802. The recommended attribute range 802 is data indicating a preferable range for one or more attributes. The attributes included in the recommended attribute range 802 are attributes included in the attribute table 304. In the example shown in FIG. 6, it is indicated that attribute 1 should be between "35" and "41" and attribute 4 should be equal to or less than "6100". As such, the attribute range does not need to have both the upper and lower limits aligned. The recommended attribute range 802 is generated by the attribute estimation unit 702 and is referenced by the validity confirmation unit 902 and the result display unit 990. Hereinafter, the recommended attribute range 802 will also be referred to as "recommended design information." Returning to FIG. 1, the explanation will continue.

[0018] The attribute analysis unit 305 reads the source code 301 and outputs an attribute table 304. The attribute analysis unit 305 includes an attribute extraction unit 302 and an attribute aggregation unit 303. The attribute extraction unit 302 extracts each attribute from the source code 301. For example, the attribute extraction unit 302 counts the number of lines of each source code, the number of inputs and outputs of functions included in the source code, and the number of lines of comments. The attribute aggregation unit 303 aggregates the attributes extracted by the attribute extraction unit 302 and creates an attribute table 304. For example, the attribute aggregation unit 303 aggregates the number of inputs and outputs of functions counted by the attribute extraction unit 302 for each source code. Furthermore, for example, the attribute aggregation unit 303 calculates the proportion of comments in the source code by dividing the number of lines of comments counted by the attribute extraction unit 302 by the number of lines of source code counted by the attribute extraction unit 302 and multiplying the result by 100.

[0019] The KPI generation unit 401 reads the source code 301 and outputs a KPI table 403. For example, the KPI generation unit 401 compiles a part of the source code 301 to generate an executable file in order to execute the first software, and executes it on the specified hardware described above to measure the CPU load and memory load. The KPI generation unit 401 may also refer to data other than the source code 301 as needed, such as the work record of the programmer who created the source code 301.

[0020] The statistics generation unit 501 reads the attribute table 304 and outputs attribute statistics 502. For example, the statistics generation unit 501 reads the values ​​of one attribute listed in the attribute table 304 for all software, and calculates one row of the attribute statistics 502 by applying a standard statistical operation to those values. The statistics generation unit 501 generates the entire attribute statistics 502 by repeating this process for each attribute.

[0021] The regression tree model generation unit 960 reads the attribute table 304 and the KPI table 403, generates a regression tree model 602, and outputs it to the attribute estimation unit 702. This regression tree model 602 estimates a KPI based on the input attributes. In this embodiment, the regression tree model 602 is generated for one predetermined KPI. The regression tree model generation unit 960 generates the regression tree model 602 using a known method, for example, by updating the parameters of a machine learning model through multiple learning processes. Since the regression tree model 602 can be generated by machine learning, for example, it can also be called a "trained AI model."

[0022] The attribute estimation unit 702 includes a regression tree model 602 and an inverse analysis unit 1801. A desired KPI value 801 is input to the inverse analysis unit 1801 from outside. The desired KPI value 801 is an evaluation index value required for the software under development. Hereinafter, the desired KPI value 801 is also referred to as "required evaluation information." The inverse analysis unit 1801 reads the regression tree model 602 and performs inverse analysis to generate a recommended attribute range 802 corresponding to the desired KPI value 801.

[0023] FIG. 7 is a hardware configuration diagram of the software design information recommendation system 1. The software design information recommendation system 1 includes a CPU 41, which is a central processing unit; a ROM 42, which is a read-only storage device; a RAM 43, which is a read / write storage device; an input / output device 44, which is a user interface; and a communication device 45. The CPU 41 loads a program stored in the ROM 42 into the RAM 43 and executes it to perform the various calculations described above. The software design information recommendation system 1 may be realized by a field programmable gate array (FPGA), which is a rewritable logic circuit, or an application specific integrated circuit (ASIC), which is an application specific integrated circuit, instead of the combination of the CPU 41, ROM 42, and RAM 43. The software design information recommendation system 1 may also be realized by a different combination of configurations, for example, a combination of the CPU 41, ROM 42, RAM 43, and an FPGA, instead of the combination of the CPU 41, ROM 42, and RAM 43.

[0024] 7, for convenience, the software design information recommendation system 1 is illustrated as being configured from one hardware device, but the software design information recommendation system 1 may also be configured from multiple hardware devices. In this case, the hardware devices may be installed adjacent to each other, or may be connected via a local area network or the Internet.

[0025] 8 is a flowchart showing the processing of the inverse analysis unit 1801. First, in step S301, the inverse analysis unit 1801 reads the desired KPI value 801 specified by the user. In the following step S302, the inverse analysis unit 1801 reads the regression tree model 602 generated by the regression tree model generation unit 960.

[0026] In the next step S303, the inverse analysis unit 1801 executes the dfs function, which will be described later. The dfs function has three arguments. The first argument is the target node, and in this case, the starting node "N1" is specified. The second argument is the node path, and here, an empty string is specified. The third argument is the desired KPI value 801, and here, "v" indicating the value read in step S301 is specified. The dfs function is executed recursively, and the dfs function started in step S303 calls another dfs function. This will be described in more detail later. The return value of the dfs function is the path of the node having a KPI value that approximately matches the desired KPI value 801 specified by the user, and is stored in the variable ret.

[0027] In the following step S304, the inverse analysis unit 1801 collects conditions by tracing the path described in the variable ret. For example, in the example shown in FIG. 5, if the variable ret is "N1, N3, N4, N6," the condition "number of jobs>35; number of lines<6100, number of jobs<41" is collected. In the following step S305, the inverse analysis unit 1801 merges the conditions collected in step S304. For example, in the above example, the merged condition is "35<number of jobs<41, number of lines<6100." In the following step S306, the inverse analysis unit 1801 outputs the conditions merged in step S305 as the recommended attribute range 802.

[0028] Fig. 9 is a flowchart showing the operation of the dfs function called in step S303 in Fig. 8. The inverse analysis unit 1801 executes this dfs function. As mentioned above, the dfs function has three arguments. In explaining this flowchart, the target node, which is the first argument, is referred to as "node," the node path, which is the second argument, is referred to as "path," and the desired KPI value 801, which is the third argument, is referred to as "KPIv."

[0029] In step S314, the inverse analysis unit 1801 adds the value of the variable node to the variable path. For example, when invoked as "dfs(N1, "", v)", the variable path, which was an empty string, becomes "N1", which is the value of the variable node. In the following step S312, the inverse analysis unit 1801 determines whether the KPI value of the node specified by the variable node approximately matches KPIv. The range of approximately matching is set in advance, and for example, a difference of up to 0.2 is allowed. For example, when invoked as "dfs(N1, "", v)", the CPU load, which is the KPI value indicated at node N1 in the example of FIG. 5, is "80.5", and it is determined whether this value approximately matches v. If the inverse analysis unit 1801 determines that the value of node approximately matches KPIv, it proceeds to step S3113; if it determines that they do not approximately match, it proceeds to step S314. In step S313, the inverse analysis unit 1801 sets the value of the variable path updated in step S311 as a return value, and ends the processing shown in FIG. 9.

[0030] In step S314, the inverse analysis unit 1801 refers to the regression tree model 602 and acquires child elements of the node indicated by the variable node. For example, when invoked as "dfs(N1, "", v)", N2 and N3, which are child nodes of N1, are acquired. In the following step S315, the inverse analysis unit 1801 determines whether or not there are child elements. If it is determined that there are child elements, the process proceeds to step S316, and if it is determined that there are no child elements, the process proceeds to step S318.

[0031] In step S316, the inverse analysis unit 1801 executes "dfs(child element, path, KPIv)" for each child element. For example, in the above example, since there are child elements N2 and N3, "dfs(N2, N1, KPIv)" and "dfs(N3, N1, KPIv)" are executed. That is, the inverse analysis unit 1801 sets one of the child elements as the first argument, sets the path updated in step S311 as the second argument, and sets the value set at startup as the third argument. The inverse analysis unit 1801 waits in this step until execution of all executed dfs is completed, and when all processing is completed, proceeds to step S317. In step S317, the inverse analysis unit 1801 sets the return value of the executed dfs function to a value other than "none" as its own return value, and ends the processing shown in FIG. 9. In step S318, the inverse analysis unit 1801 sets the return value to "none" and ends the processing shown in FIG. 9.

[0032] 10 is a flowchart showing the processing of the validity confirmation unit 902. First, in step S321, the validity confirmation unit 902 reads the recommended attribute range 802 output by the attribute estimation unit 702. In the following step S322, the validity confirmation unit 902 reads the attribute statistics 502 generated by the statistics generation unit 501. In the following step S323, the validity confirmation unit 902 determines whether the range of each attribute described in the recommended attribute range 802 is within a range of one standard deviation from the mean value of each attribute described in the attribute statistics 502, i.e., a one-sigma range. If the validity confirmation unit 902 determines that all attributes are within a one-sigma range from the mean value, the process proceeds to step S324. If the validity confirmation unit 902 determines that any one attribute is not within a one-sigma range from the mean value, the process proceeds to step S325.

[0033] In step S324, the validity confirmation unit 902 outputs a positive instruction to the result display unit 990, thereby ending the processing shown in Fig. 10. In step S325, the validity confirmation unit 902 outputs a negative instruction to the result display unit 990, thereby ending the processing shown in Fig. 10. In step S325, the validity confirmation unit 902 may not only simply output a negative instruction, but also output to the result display unit 990 which attribute is out of range, which of the minimum value and the maximum value is out of range, and what extent of the range is within a reasonable range. Furthermore, the validity confirmation unit 902 may use a criterion other than 1 sigma, for example 3 sigma, input from the criterion change unit 903 in step S323.

[0034] FIG. 11 is a diagram showing an example of output from the result display unit 990. The result display unit 990 presents information using, for example, a liquid crystal display included in the input / output device 44. FIG. 11(a) shows a display when a positive instruction is received from the validity confirmation unit 902, and FIG. 11(b) shows a display when a negative instruction is received from the validity confirmation unit 902. When a positive instruction is received from the validity confirmation unit 902, the result display unit 990 displays the recommended attribute range 802 and a message that the attribute is valid. When a negative instruction is received from the validity confirmation unit 902, the result display unit 990 displays the recommended attribute range 802 and a message that the attribute is invalid. At this time, if the validity confirmation unit 902 outputs an invalid attribute or a valid value range, the result display unit 990 may also output these.

[0035] According to the above-described first embodiment, the following advantageous effects can be obtained. (1) The software design information recommendation system 1 includes a regression tree model 602, which is a trained AI model trained based on a plurality of pieces of past software information that associates past software design information, which is design information of past software that is software developed in the past, i.e., attribute table 304, with evaluation index values ​​related to the evaluation of the past software, i.e., KPI table 403; a requirement input unit 991 to which requirement evaluation information, which is the evaluation index values ​​required for the software under development, i.e., desired KPI value 801, is input; and a reverse analysis unit 1801 that analyzes the training content of the regression tree model 602 in the reverse direction of the prediction processing order of the regression tree model 602, thereby determining and outputting recommended design information to be recommended for the software under development in order to obtain requirement evaluation information. Therefore, the software design information recommendation system 1 can provide recommended design information that satisfies the required evaluation index values.

[0036] (2) The recommended design information output by the inverse analysis unit 1801 includes a greater number of design items than the number of requirement evaluation information input to the requirement input unit 991. Generally, a machine learning model has fewer nodes in the output layer than in the input layer, making it difficult to output more design items than the number of input requirements. However, in this embodiment, by using the regression tree model 602 in the opposite direction to the general usage method, it is possible to output a greater number of recommended attribute ranges 802 than the required KPI value 801. For example, in the example shown in FIG. 5, when the required KPI value 801 is a certain value for CPU load, the recommended attribute range 802 is "35<number of jobs<41, number of rows<6100." In other words, there is one input but two outputs.

[0037] (3) The software design information recommendation system 1 includes a validity confirmation unit 902 that determines whether the recommended attribute range 802 satisfies a standard determined based on past software design information. This allows the user to confirm the validity of the output recommended attribute range 802.

[0038] (4) The inverse analysis unit 1801 identifies a leaf node in the regression tree model 602 that is related to the requested requirements evaluation information, and extracts design information by searching the nodes of the regression tree model 602 from the leaf node toward the root node.

[0039] (5) The inverse analysis unit 1801 extracts design values ​​included in each piece of design information held by each node, and outputs a numerical range determined based on the extracted design values ​​of each node as recommended design information.

[0040] (6) The software design information recommendation system 1 includes a statistics generation unit 501 that analyzes past software design information and analyzes the distribution of design values ​​in the past software. The validity confirmation unit 902 evaluates the deviation between the distribution of design values ​​and the recommended design information.

[0041] (7) The validity confirmation unit 902 includes a criterion change unit 903 to which a user can input changes to the criteria, so that validity can be determined based on the criteria set by the user.

[0042] (8) The recommended design information is composed of a plurality of design items. The reverse analysis unit 1801 outputs the recommended design information for each of the plurality of design items. The validity confirmation unit 902 confirms the feasibility of each of the plurality of design items.

[0043] (Variation 1) In the first embodiment described above, the software design information recommendation system 1 includes the KPI generation unit 401, the attribute analysis unit 305, the statistics generation unit 501, the regression tree model generation unit 960, and the validity confirmation unit 902. However, the software design information recommendation system 1 does not have to include these units. If the KPI table 403 is generated in advance, the software design information recommendation system 1 does not have to include the KPI generation unit 401. If the attribute table 304 is generated in advance, the software design information recommendation system 1 does not have to include the attribute analysis unit 305. If the attribute table 304 and attribute statistics 502 are generated in advance, the software design information recommendation system 1 does not have to include the statistics generation unit 501. If the attribute table 304, the KPI table 403, and the regression tree model 602 are generated in advance, the software design information recommendation system 1 does not have to include the regression tree model generation unit 960. The software design information recommendation system 1 may not include the validity checking unit 902, and may output the recommended attribute range 802 output by the attribute estimation unit 702 to the result display unit 990 as is.

[0044] (Variation 2) In the first embodiment described above, the determination result of the validity confirmation unit 902 is output to the result display unit 990. However, instead of outputting the determination result of the validity confirmation unit 902 to the result display unit 990, the output of the recommended attribute range 802 to the result display unit 990 may be prevented when the determination result of the validity confirmation unit 902 is negative.

[0045] (Variation 3) The software design information recommendation system 1 does not need to include the result display unit 990. In this case, the software design information recommendation system 1 may output the recommended attribute range 802 and the output of the validity confirmation unit 902 to the outside of the software design information recommendation system 1 via the communication device 45.

[0046] (Variation 4) The validity checking unit 902 does not have to include the criterion changing unit 903. In this case, the validity checking unit 902 uses a predetermined criterion.

[0047] (Variation 5) In the first embodiment described above, the inverse analysis unit 1801 starts the search from the root node, as shown in the flowcharts of Figures 8 and 9. However, the inverse analysis unit 1801 may start the analysis from a node other than the root node. For example, the inverse analysis unit 1801 may acquire KPI values ​​for all leaf nodes and identify the leaf node having the KPI value closest to the desired KPI value 801. The inverse analysis unit 1801 may then trace from that leaf node toward the root node while recording the attribute conditions.

[0048] (Variation 6) In the first embodiment described above, a decision tree model may be used instead of the regression tree model 602 .

[0049] --Second embodiment-- A second embodiment of the software design information recommendation system will be described with reference to FIGS. 12 to 17. In the following description, the same components as in the first embodiment are designated by the same reference numerals, and differences will be mainly described. Points that are not particularly described are the same as in the first embodiment. In the first embodiment, the user inputs a desired value for one type of KPI. In this embodiment, the user inputs desired values ​​for two or more types of KPI, and attribute ranges that satisfy the requirements of these multiple KPIs are output, which is different from the first embodiment.

[0050] 12 is a functional configuration diagram of a software design information recommendation system 1A according to the second embodiment. In addition to the configuration of the software design information recommendation system 1 according to the first embodiment, the software design information recommendation system 1A further includes a recommended range synthesis unit 995 and an attribute correlation calculation unit 996. Furthermore, in addition to the data handled by the software design information recommendation system 1 according to the first embodiment, the software design information recommendation system 1A also handles attribute correlations 1202 and KPI weights 1104. Note that the illustration of the criterion change unit 903 is omitted from this diagram.

[0051] The regression model generation unit 960A creates regression tree models 602 for multiple KPIs. The method for creating each regression tree model 602 is the same as in the first embodiment, and regression tree models 602 are generated for the number of target KPIs. In this embodiment, the user inputs various desired KPI values ​​1401 via the request input unit 991A. The various desired KPI values ​​1401 are a collection of desired values ​​for multiple KPIs, for example, three KPIs. For example, the various desired KPI values ​​1401 include two or more combinations of data specifying the type of KPI and desired values ​​for that KPI.

[0052] The inverse analysis unit 1801A reads the regression tree model 602 for each KPI specified by the various desired KPI values ​​1401, and calculates the attribute range for realizing that KPI value as the recommended attribute range 802. For example, if three KPIs are listed in the various desired KPI values ​​1401, three recommended attribute ranges 802 are calculated. The attribute correlation calculation unit 996 reads the attribute table 304, calculates the correlation coefficient between the attributes, and outputs the attribute correlation 1202. The correlation coefficient between the attributes is calculated using a known calculation method, that is, by dividing the covariance by the standard deviation of each variable.

[0053] Fig. 13 is a diagram showing an example of attribute correlation 1202. In attribute correlation 1202, the names of the same attributes are written in rows and columns, and the cell value indicates the magnitude of the correlation. The larger the cell value, the stronger the correlation, with the maximum value being "1." The diagonal lines are all "1" because they represent the same attribute.

[0054] The KPI weight 1104 is a preset weight for each KPI, and can also be considered a value indicating the priority of the KPI. The KPI weight 1104 includes at least the weight of the KPI included in the various desired KPI values ​​1401. The weight is, for example, a decimal number between 0 and 1.

[0055] Fig. 14 is a diagram showing an example of the KPI weight 1104. The KPI weight 1104 includes multiple combinations of KPI types and weight values. In the example shown in Fig. 14, only three KPIs, KPI1 to KPI3, are listed, but there is no upper limit as long as it is two or more.

[0056] The recommended range combining unit 995 aligns the recommended attribute range groups 802G. Specifically, the recommended range combining unit 995 adjusts values ​​when the same attribute is recommended for different KPIs as a first process, and adjusts values ​​based on the correlation of attributes as a second process. Hereinafter, the first process will also be referred to as "weighting process," and the second process will also be referred to as "correlation ratio process."

[0057] FIG. 15 is a diagram showing an example of a recommended attribute range group 802G for explaining a first process of the recommended range synthesis unit 995. The first process will be described with reference to FIG. 15. In the example shown in FIG. 15, value ranges are specified for attribute 1 for each of KPI1 to KPI3. In this case, the recommended range synthesis unit 995 calculates a synthesis value by weighted averaging. Specifically, assuming that the weight of KPI1 is w1, the weight of KPI2 is w2, the weight of KPI3 is w3, and the calculated recommended attribute range 802 has the values ​​shown in FIG. 15, the minimum value of attribute 1 after synthesis is Attr min , and the maximum value of attribute 1 after synthesis is Attr max can be calculated as follows:

[0058] Attr min =(w1 x 10+w2 x 30+w3 x 50) / 3 (Formula 1) Attr max =(w1 x 100+w2 x 80+w3 x 60) / 3 (Formula 2)

[0059] FIG. 16 is a diagram illustrating a second process of the recommended range combining unit 995. The second process will be described with reference to FIG. 16. The recommended range combining unit 995 corrects, based on correlation, the values ​​of attributes included in the recommended attribute range group 802G whose correlation level is higher than a predetermined threshold and whose corresponding KPI weight is lower than the KPI weight of another correlated attribute. In this case, even if the correlation level is higher than the predetermined threshold, the value of the attribute with the higher corresponding KPI weight is not changed. For example, assume that the minimum value of a certain attribute attr12 is calculated as attr12_pred for the recommended attribute range 802 for KPI1, and the minimum value of a certain attribute attr22 is calculated as attr22_pred for the recommended attribute range 802 for KPI2. In this case, the relationship between attr12 and attr22 is shown by the circle plot in FIG. 16.

[0060] If KPI1 is weighted more heavily than KPI2, the value of attr12 is not changed in the second process, but the value of attr22 is. If the correlation coefficient between attributes attr12 and attr22 listed in attribute correlation 1202 is c, then if the value of attr22 is determined solely from the value and correlation of attr12, it will be "c x attr12". The triangular plot in Figure 16 shows the relationship between attr12 and attr22 in this case. The recommended range synthesis unit 995 uses the weights to calculate the weighted average of the triangular plot and the circular plot in Figure 16, and calculates the square plot. In other words, attr22_after, which is the value of attr22 in the square plot, is expressed by the following formula:

[0061] attr22_after=(w2 x attr22_pred + w1 x C x attr12_pred) / (w2+w1) (Equation 3)

[0062] 17 is a flowchart showing the processing of the recommended range combining unit 995. In step S331, the recommended range combining unit 995 reads the recommended attribute range group 802G and proceeds to step S332. In step S332, the recommended range combining unit 995 selects one unselected attribute from the attributes included in the recommended attribute range group 802G as a target attribute, and proceeds to step S333. In step S333, the recommended range combining unit 995 determines whether the target attribute is included in multiple recommended attribute ranges 802. If the recommended range combining unit 995 determines that the target attribute is included in multiple recommended attribute ranges 802, it proceeds to step S334, and if it determines that the target attribute is not included in multiple recommended attribute ranges 802, it proceeds to step S335. For example, in the example of the recommended attribute range group 802G shown in FIG. 15, if the target attribute is "Attribute 1," a positive determination is made in this step, and if the target attributes are "Attribute 2," "Attribute 4," and "Attribute 6," a negative determination is made.

[0063] In step S334, the recommended range combination unit 995 performs the weighting process, which is the first process described above, on the minimum and maximum values ​​of the target attribute, and proceeds to step S338. In step S335, the recommended range combination unit 995 determines whether there is an attribute (hereinafter referred to as a "correlated attribute") whose correlation with the target attribute is higher than a threshold and which is included in the recommended attribute range group 802G. If the recommended range combination unit 995 determines that a correlated attribute exists, the process proceeds to step S336. If the recommended range combination unit 995 determines that a correlated attribute does not exist, the process proceeds to step S338. In step S336, the recommended range combination unit 995 determines whether the weight of the KPI corresponding to the target attribute is smaller than the weight of the KPI corresponding to the correlated attribute. If the recommended range combination unit 995 determines that the weight of the KPI corresponding to the target attribute is smaller than the weight of the KPI corresponding to the correlated attribute, the process proceeds to step S337. If the recommended range combination unit 995 determines that the weight of the KPI corresponding to the target attribute is equal to or greater than the weight of the KPI corresponding to the correlated attribute, the process proceeds to step S338.

[0064] In step S337, the recommended range combination unit 995 performs the correlation ratio process, which is the second process described above, on the minimum and maximum values ​​of the target attribute, and proceeds to step S339. In step S338, which is executed if a negative judgment is made in step S335 or step S336, the recommended range combination unit 995 outputs the minimum and maximum values ​​of the target attribute as is, and proceeds to step S339. In step S339, which is executed after steps S334, S337, and S338, the recommended range combination unit 995 determines whether all attributes have been processed. If the recommended range combination unit 995 determines that all attributes have been processed, it ends the process shown in FIG. 17; if it determines that there are attributes that have not been processed, it returns to step S332.

[0065] According to the second embodiment described above, in addition to the effects of the first embodiment, the following effects can be obtained. (9) The requirements input unit 991 is configured to allow multiple pieces of requirements evaluation information to be input. Multiple regression tree models 602 are provided corresponding to the respective pieces of requirements evaluation information. The inverse analysis unit 1801 outputs recommended design information for each piece of requirements evaluation information. Therefore, the software design information recommendation system 1A can output attributes that satisfy multiple KPIs desired by the user.

[0066] (10) As shown in Fig. 14, weights indicating the priority of each of multiple KPIs are preset in the KPI weight 1104. When the inverse analysis unit 1801 outputs the same recommended design information for different requirements evaluation information, the recommended range synthesis unit 995 uses the weights to calculate a weighted average. Therefore, the software design information recommendation system 1A can adjust values ​​based on the priority.

[0067] (11) The recommended design information is composed of multiple design items. The system includes an attribute correlation calculation unit 996 that calculates the correlation between each design item included in the multiple design items and other design items, and a recommended range synthesis unit 995 that corrects the output of the inverse analysis unit 1801. When the inverse analysis unit 1801 outputs the value of a first design item corresponding to first requirements evaluation information and the value of a second design item corresponding to second recommended design information that has a higher priority than the first requirements evaluation information, the recommended range synthesis unit 995 rewrites the value of the first design item by correlation ratio processing if the correlation between the first design item and the second design item is higher than a predetermined threshold.

[0068] A specific example will be described using the examples shown in FIGS. 13 to 15. As shown in FIG. 15, recommended attribute range group 802G includes attribute 1, attribute 2, attribute 4, and attribute 6. Of these, attributes 2 and 6 have a correlation of a predetermined threshold, for example, "0.9," which is greater than "0.5," as shown in FIG. 13. As shown in FIG. 15, attribute 2 is in recommended attribute range 802 corresponding to KPI1, and attribute 6 is in recommended attribute range 802 corresponding to KPI3. As shown in FIG. 14, the weights of KPI1 and KPI3 are "0.8" and "0.2," respectively, so KPI3 is heavier. Therefore, the value of attribute 6, which corresponds to a KPI with a high priority, is not changed, and the value of attribute 2, which corresponds to KPI3 with a low priority, is changed. The changed values ​​of attribute 2, specifically the minimum and maximum values, are calculated using Equation 3.

[0069] (Modification of the second embodiment) In the software design information recommendation system 1A, it is not essential to create and use a correlation coefficient. In other words, the software design information recommendation system 1A does not need to include the attribute correlation calculation unit 996. In this case, the recommended range synthesis unit 995 does not execute the second process described above, and does not perform the processes of steps S335 to S337 in the flowchart shown in FIG. 16.

[0070] In each of the above-described embodiments and modifications, the functional block configurations are merely examples. Some functional configurations shown as separate functional blocks may be configured as an integrated unit, or a configuration shown in a single functional block diagram may be divided into two or more functions. Furthermore, some of the functions of each functional block may be provided by other functional blocks.

[0071] In the above-described embodiments and modifications, the program is stored in ROM 42. However, the program may be stored in a rewritable nonvolatile storage device (not shown). The software design information recommendation system may also include an input / output interface (not shown), and the program may be loaded from another device as needed via the input / output interface and a medium available to the software design information recommendation system. The medium here refers to, for example, a storage medium detachable from the input / output interface, or a communication medium, such as a wired, wireless, or optical network, or a carrier wave or digital signal propagating through the network. Some or all of the functions implemented by the program may be implemented by a hardware circuit or FPGA.

[0072] The above-described embodiments and modifications may be combined with each other. Although various embodiments and modifications have been described above, the present invention is not limited to these. Other embodiments conceivable within the scope of the technical concept of the present invention are also included within the scope of the present invention. [Explanation of symbols]

[0073] 1, 1A: Software design information recommendation system 301: Source code 304: Attribute table 305: Attribute analysis section 401:KPI generation section 403 :KPI table 501:Statistics generation section 502: Attribute statistics 602: Regression tree model 702: Attribute estimation section 801: Desired KPI value 802: Recommended attribute range 802G: Recommended attribute range group 902: Validation section 903: Standards Change Department 991, 991A: Request input section 995: Recommended range synthesis section 996: Attribute correlation calculation unit 1202: Attribute correlation 1801, 1801A: Inverse analysis section

Claims

1. a trained AI model trained based on a plurality of pieces of past software information that associates past software design information, which is design information of past software that is software developed in the past, with evaluation index values ​​related to evaluation of the past software; a requirement input unit to which requirement evaluation information, which is the evaluation index value required for the software under development, is input; a reverse analysis unit that analyzes the training content of the trained AI model in a direction reverse to the prediction processing order of the trained AI model, thereby determining and outputting recommended design information that is recommended for the software under development in order to obtain the requirements evaluation information.

2. 2. The software design information recommendation system according to claim 1, A software design information recommendation system, wherein the recommended design information output by the reverse analysis unit includes a greater number of design items than the number of pieces of requirement evaluation information input to the requirement input unit.

3. 2. The software design information recommendation system according to claim 1, a validation unit that executes a validation process to determine whether the recommended design information satisfies a standard determined based on the past software design information;

4. 2. The software design information recommendation system according to claim 1, The trained AI model is constructed by a regression tree, the inverse analysis unit identifies a leaf node in the regression tree that is related to the requested requirements evaluation information, and extracts the design information by searching for nodes in the regression tree from the leaf node toward a root node.

5. 5. The software design information recommendation system according to claim 4, the inverse analysis unit extracts design values ​​included in each piece of design information held by each of the nodes, and outputs, as the recommended design information, a numerical range determined based on the extracted design values ​​of each of the nodes.

6. 4. The software design information recommendation system according to claim 3, a statistics generating unit that analyzes the past software design information and analyzes a distribution of design values ​​in the past software; The validity checking unit evaluates a deviation between the distribution of the design values ​​and the recommended design information.

7. 7. The software design information recommendation system according to claim 6, The software design information recommendation system, wherein the validity checking unit includes a criterion change unit to which a user inputs changes to the criterion.

8. 4. The software design information recommendation system according to claim 3, the recommended design information is composed of a plurality of design items, the reverse analysis unit outputs the recommended design information for each of the plurality of design items; The software design information recommendation system includes a validation unit that performs the validation process for each of the plurality of design items.

9. 2. The software design information recommendation system according to claim 1, The request input unit is configured to allow input of a plurality of pieces of request evaluation information, A plurality of the trained AI models are provided corresponding to each of the requirement evaluation information, The software design information recommendation system, wherein the reverse analysis unit outputs the recommended design information for each of the requirements evaluation information.

10. 10. The software design information recommendation system according to claim 9, a weight indicating a priority is preset for each of the plurality of pieces of requirement evaluation information; The software design information recommendation system further comprises a recommended range synthesis unit that calculates a weighted average using the weights when the reverse analysis unit outputs the same recommended design information for different pieces of requirement evaluation information.

11. 10. The software design information recommendation system according to claim 9, a weight indicating a priority is preset for each of the plurality of pieces of requirement evaluation information; the recommended design information is composed of a plurality of design items, a correlation calculation unit that calculates a correlation between each of the design items included in the plurality of design items and other design items; a recommended range synthesis unit that corrects the output of the inverse analysis unit; When the inverse analysis unit outputs a value of a first design item corresponding to a first piece of requirement evaluation information and a value of a second design item corresponding to a second piece of recommended design information having a higher priority than the first piece of requirement evaluation information, the recommended range synthesis unit rewrites the value of the first design item by correlation ratio processing when the correlation between the first design item and the second design item is higher than a predetermined threshold.

12. A software design information recommendation method executed by one or more computers that can access a trained AI model trained based on a plurality of pieces of past software information that associates design information of past software, which is software developed in the past, with evaluation index values ​​related to evaluation of the past software, and that includes a requirement input unit to which required evaluation information, which is the evaluation index values ​​required for software under development, is input, A software design information recommendation method including a reverse analysis process for determining and outputting recommended design information recommended for the software under development in order to obtain the requirements evaluation information by analyzing the training content of the trained AI model in a reverse direction to the prediction processing order of the trained AI model.

Citation Information

Patent Citations

  • Information processing method and information processing system

    JP2019096285A