Information processing system, information processing method, machine learning method, and learned model
By clustering software based on static analysis results, the method addresses the uniform evaluation challenge, enabling characteristic-based evaluation and bug trend analysis, enhancing evaluation accuracy and efficiency.
Patent Information
- Application Number
- JP2024060901
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-04
- Publication Date
- 2025-10-17
AI Technical Summary
Existing static analysis methods uniformly evaluate software with different characteristics using the same standards, failing to appropriately reflect the unique characteristics of each software type, leading to inadequate evaluation.
A clustering technique is employed to classify software based on the results of static analysis, grouping software into clusters according to their characteristics, enabling evaluations that consider their unique traits.
This approach allows for software evaluation that accurately reflects its characteristics, applying appropriate quality indicators and identifying potential bug trends, reducing unnecessary efforts and improving evaluation accuracy.
Smart Images

Figure 2025158398000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing system, an information processing method, a machine learning method, and a trained model, and is particularly suitable for use in an information processing system, an information processing method, a machine learning method, and a trained model related to software evaluation. [Background technology]
[0002] Conventionally, software static analysis (also called static code analysis) has been known as a method for evaluating software quality, reliability, security, etc. Static analysis allows software to be evaluated without actually running the software, and is therefore widely practiced in software development. Patent Document 1 describes the following technology: That is, an information processing system 200 classifies multiple pieces of software into multiple clusters based on the call relationships between the software. The information processing system 200 groups software belonging to a cluster based on the similarity of source code between the software in the cluster. The above technology is described. The technology in Patent Document 1 makes it possible to identify software that realizes a desired function. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent Publication No. 2021-140502 Summary of the Invention [Problem to be solved by the invention]
[0004] Software has significantly different characteristics depending on its type. For example, classifications are based on the field in which the software is used (e.g., automotive, entertainment, or games), or the type of system to which the software corresponds (e.g., web, general-purpose, embedded, or open systems). Other characteristics include trends in scale (number of lines of code), complexity, and inter-module dependencies. Different software characteristics dictate different standards for determining what constitutes appropriate software. For example, regarding the number of lines of code, depending on the software's characteristics, several thousand lines are appropriate for some software, while a few dozen lines are appropriate for others. However, static analysis uniformly analyzes multiple pieces of software with different characteristics using the same standards, limiting its ability to appropriately evaluate each piece of software based on the analysis results.
[0005] The present invention has been made to solve such problems, and has as its object to enable software to be evaluated in accordance with its characteristics. [Means for solving the problem]
[0006] In order to solve the above-mentioned problems, the present invention uses a clustering technique to classify a plurality of software programs into groups based on the results of static analysis of the plurality of software programs. [Effects of the Invention]
[0007] Because the results of static analysis of software reflect the characteristics of the software, there will be some degree of similarity / approximation between the results of static analysis of different software with similar characteristics. Based on the above, the present invention, configured as described above, can group software into groups based on the results of static analysis, thereby grouping the software into multiple groups according to its characteristics. As a result, it becomes possible to evaluate each group while reflecting its characteristics. In other words, the present invention makes it possible to evaluate software based on its characteristics. [Brief explanation of the drawings]
[0008] [Figure 1] 1 is a block diagram showing an example of a functional configuration of an information processing device according to a first embodiment. [Figure 2] FIG. 1 is a diagram used to explain processing by an information processing device. [Figure 3] FIG. 1 illustrates inputs and outputs of a clustering model. [Figure 4] FIG. 10 is a diagram illustrating an example of a clustering result screen. [Figure 5] FIG. 1 illustrates the inputs and outputs of a classification model. [Figure 6] FIG. 10 is a diagram used to explain processing by an information processing device according to a second embodiment. [Figure 7] FIG. 10 is a diagram illustrating an example of a clustering result screen. [Figure 8] FIG. 1 illustrates an example of the configuration of an information processing system. DETAILED DESCRIPTION OF THE INVENTION
[0009] First Embodiment A first embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a block diagram showing an example of the functional configuration of an information processing device 1 (information processing system) according to this embodiment. As shown in FIG. 1, the information processing device 1 includes, as its functional configuration, a device information processing unit 2 (information processing unit), a display unit 3, an input unit 4, and a storage unit 5. The device information processing unit 2 includes a processing device and a primary storage device. The processing device includes a processor, and the primary storage device includes RAM. The device information processing unit 2 executes processing by having the processing device read a program stored in a storage area of the storage unit 5 (or another storage area) into the primary storage device and execute the program. In other words, the device information processing unit 2 executes processing through cooperation between hardware and software. The display unit 3 includes a liquid crystal panel, an organic EL panel, or other display device. The display unit 3 displays an image on the display device under the control of the device information processing unit 2. The input unit 4 includes a keyboard, a mouse, a touch panel, a camera, or other input device. The input unit 4 detects input to the input device and outputs the detection result to the device information processing unit 2. The storage unit 5 includes a nonvolatile memory and stores data in the nonvolatile memory. Examples of non-volatile memory include a hard disk drive (or other magnetic storage device), a ROM, and a flash memory.
[0010] The type of information processing device 1 is not limited. For example, a desktop PC, a notebook PC, a tablet device (including a smartphone), or a "server connected to the Internet, a LAN, or other networks" can function as the information processing device 1. The information processing device 1 may also be configured from multiple devices. In this case, the multiple information processing devices function as an "information processing system," and each of the functional units that execute information processing in the multiple devices functions as an "information processing unit."
[0011] The information processing device 1 includes: <1> A function to group multiple software into one or more groups by clustering (hereinafter referred to as "clustering function"); <2> Functions that perform processing using the results of clustering (hereinafter referred to as "evaluation-related functions"); <3> The system has a function (hereinafter referred to as "classification function") of classifying software into one of the defined groups. In this embodiment, "clustering" means defining one or more groups according to the similarities between multiple objects (e.g., software) in a situation where no groups have been determined, and assigning each object to one of the groups (however, objects that do not belong to any group may appear). On the other hand, "classifying into groups" (sometimes simply referred to as "classification") means assigning each object to one of the groups in a situation where one or more groups have already been defined (however, objects that are determined not to belong to any group may appear). Each function will be described in detail below.
[0012] ●Clustering function First, the clustering function will be described. FIG. 2 is a diagram used to explain the processing of the clustering function of the information processing device 1. First, a considerable number of pieces of software (software source code J1) to be clustered are prepared. Here, the software is not prepared for a specific type, but is prepared regardless of type. The types are, for example, types based on the field in which the software is used, such as in-vehicle, entertainment, or games, or types based on the type of system corresponding to the software, such as web, general-purpose, embedded, or open. Hereinafter, software to be clustered will be referred to as "processing target software." Each piece of processing target software is assigned a software ID, which is identification information.
[0013] As shown in FIG. 2, the device information processing unit 2 executes the following process for each piece of source code J1 of the target software. That is, the device information processing unit 2 executes static analysis process P1 using the source code J1 to generate static analysis result information J2. More specifically, the static analysis result information J2 is information that holds item values derived for a plurality of predetermined items through static analysis (static code analysis) of the source code J1. Hereinafter, each item in the static analysis result information J2 will be referred to as a "static analysis item." Examples of static analysis items include the number of lines of code, the number of functions, the number of code clones, or the "number of deviations from the guidelines" (however, these are merely examples). The number of static analysis items is, for example, 20 to 30. If the number of static analysis items is 25, the static analysis result information J2 is information that holds item values for each of the 25 static analysis items.
[0014] In static analysis processing P1, the device information processing unit 2 analyzes source code J1 using a predetermined static analysis tool and derives item values for each static analysis item. The device information processing unit 2 then generates static analysis result information J2 in a predetermined format that includes each of the derived item values.
[0015] As shown in Fig. 2, after generating static analysis result information J2 for each piece of software to be processed, the device information processing unit 2 executes clustering processing P2. More specifically, a clustering model M1 is stored in the storage unit 5. Fig. 3 is a diagram showing the input and output of the clustering model M1. Note that in this embodiment, information input to the model is naturally subjected to standardization, normalization, and other necessary preprocessing before being input to the model, and no particular explanation of the preprocessing will be given. The clustering model M1 has the function of executing the following processes.
[0016] That is, the clustering model M1 inputs multiple pieces of static analysis result information J2 and accompanying information J3. The accompanying information J3 is information necessary for generating the clustering result information J4. The contents of the accompanying information J3 and the clustering result information J4 will be explained later. The static analysis result information J2 input to the clustering model M1 can be considered vector information with dimensions equal to the number of static analysis items. The clustering model M1 uses clustering techniques to classify each piece of input static analysis result information J2 into one or more groups. The clustering model M1 performs grouping based on the similarity between the pieces of static analysis result information J2. The clustering model M1 performs grouping so that the greater the similarity between the pieces of information (i.e., the similarity between the static analysis results of the software), the higher the probability that they belong to the same group, and the smaller the similarity, the higher the probability that they belong to different groups. Any existing clustering method can be used. For example, for non-hierarchical clustering, k-means (which naturally includes methods based on this, and the same applies below) can be used. For hierarchical clustering, the longest distance method, shortest distance method, Ward's method, or group average method can be used.
[0017] The clustering model M1 generates clustering result information J4 based on the grouping results. The clustering result information J4 is information in which, for each piece of static analysis result information J2 (= each piece of processing target software), a software ID is associated with group information. The group information is the group ID (identification information) of the group to which the corresponding software belongs. The device information processing unit 2 uses accompanying information J3 to generate the clustering result information J4. The accompanying information J3 includes the software ID of each piece of processing target software, a group ID generation rule, and other information necessary for generating the clustering result information J4. The clustering result information J4 clearly indicates the group to which each piece of processing target software belongs. Therefore, by referring to the clustering result information J4, it is possible to understand what groups have been defined based on the group of processing target software, the number of groups, which software belongs to which group, and which software belongs to the same or different groups. This concludes the functions of the clustering model M1.
[0018] In the clustering process P2, the device information processing unit 2 performs the necessary preprocessing and then passes each piece of static analysis result information J2 and accompanying information J3 to the clustering model M1. The device information processing unit 2 then obtains clustering result information J4, which is the output of the clustering model M1. This concludes the explanation of the clustering function.
[0019] As described above, the device information processing unit 2 according to this embodiment has a function for executing a clustering process that uses clustering technology to classify multiple pieces of software into groups based on the results of static analysis of the multiple pieces of software. This configuration provides the following advantages. Because the results of static analysis of software reflect the characteristics of the software, the results of static analysis of different pieces of software with similar characteristics tend to exhibit some degree of similarity / approximation. Based on the above, the configuration of this embodiment allows software to be grouped based on the results of static analysis, thereby allowing the software to be grouped according to its characteristics. As a result, it becomes possible to evaluate each group while reflecting its characteristics. In other words, this embodiment enables software to be evaluated based on its characteristics.
[0020] Furthermore, this embodiment provides the following advantages. Specifically, because groups are defined for software, appropriate quality indicators can be applied to each group depending on the type of software, development items, development methods, and so on. This prevents unnecessary man-hours from being incurred due to the embedding of bugs according to unnecessary guidelines. Furthermore, this embodiment makes it possible to analyze bug trends for each group, and through this analysis, it is possible to determine the trends in software that are potentially prone to bugs. This makes it possible to identify in advance structures that are difficult to review or structures that are prone to missing test patterns. Furthermore, because clustering is performed mechanically using a model rather than by artificial means, grouping does not depend on human skill.
[0021] ●Evaluation-related functions Next, evaluation-related functions will be described. Below, each of the processes that the information processing device 1 can execute based on the clustering result information J4 will be described. However, it is not necessary for the device information processing unit 2 to be able to execute all of the processes exemplified below.
[0022] First processing In the first process, the device information processing unit 2 displays a clustering result screen 10 on the display unit 3 based on the clustering result information J4. FIG. 4 is a diagram showing an example of the clustering result screen 10. As shown in FIG. 4, the clustering result screen 10 depicts nodes (points) representing each piece of software on a two-dimensional coordinate system. The closer the nodes are to the software, the greater the similarity between the software (i.e., the similarity between the static analysis results of the software), and the farther the nodes are to the software, the smaller the similarity. The clustering result screen 10 also clearly shows each of the groups formed. The information displayed on the clustering result screen 10 shown in FIG. 4 is information indicating the relationship between the groups defined by the clustering process P2 and the software. By referring to the clustering result screen 10, the user can intuitively understand what groups have emerged as a result of the clustering process and how the software belongs to each group.
[0023] As described above, in the first process, the device information processing unit 2 has a function of providing information indicating the relationship between the groups defined by the clustering process P2 and the software. However, the content of the information is not limited to the content exemplified in FIG. 4. As an example, the information may be a list displaying the software IDs of the software belonging to each group. Furthermore, the means of providing the information is not limited to display, and may be, for example, outputting a paper medium on which the information is recorded, storing data on which the information is recorded, or sending an email on which the information is recorded. The fact that the means by which the device information processing unit 2 provides information to the user is not limited also applies hereinafter.
[0024] Secondary processing In the second process, the device information processing unit 2 derives a deviation value for each static analysis item of the software to be evaluated and provides it to the user. The deviation value for one static analysis item is a deviation value derived using the item values of that one static analysis item for each piece of software in the group to which the software to be evaluated belongs as a population. The process in which the device information processing unit 2 derives the deviation value corresponds to a function of performing a relative evaluation of the software to be evaluated within the group to which the software belongs. This is because the deviation value corresponds to an index that indicates the relative magnitude of the item value of the software to be evaluated in relation to the item values of each piece of software in the group to which the software belongs. By referring to the derived deviation value, the user can understand the relationship (relative relationship) between the item value and the average value of the group for each static analysis item of the software to be evaluated.
[0025] As described above, in the second process, the device information processing unit 2 has the function of performing a relative evaluation of a piece of software within the group to which the piece of software belongs, among the groups defined by the clustering process P2. However, the method of relative evaluation is not limited to the method exemplified above. As an example, the device information processing unit 2 may be configured to derive other statistical items instead of deviation values. The statistical items are, for example, the relationship between the item value of a static analysis item and "maximum value, minimum value, mode, mean value, standard deviation, variance, and other statistical quantities."
[0026] Third processing In the third process, the device information processing unit 2 acquires, for each piece of software, information indicating the status of defects that occurred due to the software after the software was installed. Next, the device information processing unit 2 derives a defect occurrence trend for each group based on the clustering result information J4 and the defect-related information, and provides this to the user. For example, the device information processing unit 2 derives a trend such as "group G1 tends to have defects of type S1 occurring (high probability of occurrence) compared to other groups." According to this example, the user can accurately grasp the defect occurrence trend for each group.
[0027] As described above, in the third process, the device information processing unit 2 has a function of acquiring information about defects that occurred due to the software after the software was installed, and deriving the tendency of defects to occur for each group defined by the clustering process P2. However, the tendency of defects to occur for each group and the method of deriving this tendency are not limited to those exemplified.
[0028] Fourth Processing In the fourth process, the device information processing unit 2 derives, for each group, a quality index (index) that can be used to evaluate the software belonging to the group based on the results of static analysis of the software belonging to the group. A quality index is an index for evaluating the quality of software. In particular, in this embodiment, the quality index is an index for which a threshold value for whether or not a static analysis item is passed is defined for each static analysis item. Note that "pass" here does not mean completely problem-free, but rather a rough boundary between appropriate and inappropriate. For example, the device information processing unit 2 derives a threshold value for one static analysis item for one group using the following method. That is, the device information processing unit 2 acquires the item value for each static analysis item of the software belonging to the group and derives the mean value and standard deviation. Next, the device information processing unit 2 sets the threshold value to the mean value, taking into account an adjustment value derived from the standard deviation using a specific formula. For each group, the user can acquire a quality index that takes into account the characteristics of the group. Therefore, by using the corresponding quality index when evaluating software, the user can perform an accurate evaluation that takes into account the characteristics of the software.
[0029] As described above, in the fourth process, the device information processing unit 2 has a function of deriving, for each group defined by the clustering process P2, an index (quality index) that can be used to evaluate the software belonging to the group based on the results of static analysis of the software belonging to the group. However, the content of the index and the method of deriving the index are not limited to those exemplified.
[0030] ●Classification function Next, the classification function will be described. As described above, one or more groups are defined by the clustering process P2. After the groups are defined, the device information processing unit 2 can execute machine learning-related processes and classification processes. Each process will be described in detail below.
[0031] Machine learning related processing The machine learning-related processing is processing related to machine learning of the classification model M2. Fig. 5 is a diagram showing the input and output of the classification model M2. As shown in Fig. 5, the classification model M2 is a model that receives static analysis result information J2 of the software to be classified as input and outputs group affiliation information that indicates the group ID of the group to which the software belongs.
[0032] The device information processing unit 2 generates learning data when the clustering process P2 is executed or at any timing after the execution. One learning data corresponds to one piece of processing target software. Each piece of learning data includes static analysis result information J2 (the result of the static analysis) of the corresponding piece of processing target software and belonging group information indicating the group ID of the group to which the corresponding piece of processing target software is determined to belong. The belonging group information included in the learning data corresponds to information indicating the correct answer.
[0033] The device information processing unit 2 then performs machine learning on the classification model M2 using the training data. All existing machine learning methods related to supervised learning can be used for machine learning. A simple example is given below. Specifically, the classification model M2 is configured by a function that uses the item values of each static analysis item in the static analysis result information J2 as part of its variables and includes parameters for adjusting each variable. The device information processing unit 2 then repeatedly updates each parameter of the classification model M2, deriving the loss of the model after each parameter update. The device information processing unit 2 then determines the model in which each parameter has been adjusted to minimize the loss as the final classification model M2 (i.e., determines the final value of each parameter). Note that the parameters of the classification model M2 can be updated using any method that learns parameters to reduce loss, such as stochastic gradient descent.
[0034] The above is the machine learning-related processing. The classification model M2 trained by the machine learning-related processing corresponds to the "trained model." As a result of the above processing, a classification model M2 is constructed that outputs with high accuracy the probability that a piece of software belongs to each group.
[0035] Classification processing Next, the classification process will be described. The classification process is executed after the classification model M2 has been machine-learned through the machine-learning-related process. With regard to the classification process, first, the user stores the source code J1 of the software to be classified in a storage area accessible to the device information processing unit 2 (for example, a storage area of the storage unit 5), and then issues a command to start the classification process using a predetermined method. In response to the command, the device information processing unit 2 acquires the source code J1 of the software to be processed. Next, the device information processing unit 2 generates static analysis result information J2 based on the acquired source code J1. Next, the device information processing unit 2 inputs the static analysis result information J2 into the classification model M2 and acquires the output belonging group information. The belonging group information is the group ID of the group to which the software to be classified belongs. The device information processing unit 2 provides the belonging group information to the user. The user can recognize the group to which the software to be classified belongs based on the provided belonging group information.
[0036] The above is the classification process. The classification process makes the following possible, for example. For example, suppose that a quality index is prepared for each group. In this case, for software whose group it belongs to is unknown, the device information processing unit 2 performs classification process to identify the group to which the software belongs, and can automatically switch the quality index to be applied to the software.
[0037] Second Embodiment Next, a second embodiment will be described. In the first embodiment, the device information processing unit 2 performed clustering processing based on the results of static analysis of multiple pieces of software. On the other hand, the device information processing unit 2 according to this embodiment performs clustering processing based on not only the results of static analysis but also information about defects that occur due to the software after the software is executed. This will be described in detail below.
[0038] FIG. 6 is a diagram used to explain the processing of the device information processing unit 2 according to this embodiment. As is clear from a comparison of FIGS. 2 and 6, in this embodiment, the device information processing unit 2 executes a reflection process PX after a static analysis process P1. In the reflection process PX, the device information processing unit 2 generates reflection information J6 from the static analysis result information J2 and the defect-related information J5. The defect-related information J5 is information that holds item values for predetermined defect-related items. Hereinafter, each item in the defect-related information J5 will be referred to as a "defect item." In this embodiment, unless otherwise specified, a "software defect" refers to a defect that has occurred or may occur due to the software after the software is actually implemented. Examples of defect items include whether or not a defect has occurred, the frequency of the defect, the time required to resolve the defect, and the average time between defects (however, these are merely examples). The device information processing unit 2 generates reflection information J6 by adding the defect-related information J5 to the static analysis result information J2 according to a format. For example, if items J1 to J25 exist as static analysis items and items J26 to J30 exist as defect items, the reflection information J6 holds the item values of the 30 items, items J1 to J25 and items J26 to J30.
[0039] After the reflection process PX, the device information processing unit 2 executes the same process as in the first embodiment. That is, the device information processing unit 2 executes the clustering process P2X and generates clustering result information J4X from each piece of reflection information J6 using the clustering model M1X. Here, the reflection information J6 input to the clustering model M1X reflects the defect-related information J5. Based on this, the clustering process P2X corresponds to a clustering process executed by the device information processing unit 2 based on the results of static analysis as well as information about defects that occurred due to the software after implementation.
[0040] In the clustering process P2X according to this embodiment, grouping is performed based not only on the results of static analysis but also on the defect status of each piece of software. Therefore, when evaluating a piece of software, it is possible to perform a relative evaluation that takes into account the unique defect trends / status of the group to which the software belongs, thereby improving the accuracy of the relative evaluation. Furthermore, according to this embodiment, the device information processing unit 2 can provide information indicating the status of a group that reflects the defect trends / status. For example, the device information processing unit 2 can provide the screen shown in FIG. 7. FIG. 7 visualizes how software that has previously caused defects is distributed within a group.
[0041] In this embodiment, the device information processing unit 2 generates the following learning data in the machine learning-related processing. The learning data includes reflection information J6 based on the reflection information J6 of the corresponding software and group information to which the corresponding software belongs. The device information processing unit 2 then uses each of the generated learning data to train the classification model M2. In this embodiment, the device information processing unit 2 also classifies the software using the classification model M2 in the classification processing.
[0042] <Modification of the second embodiment> Next, a modified example of the second embodiment will be described. In the second embodiment, the device information processing unit 2 may be configured to perform the clustering process P2X using type information instead of or in addition to the defect-related information J5. Type information is information indicating the type of software. As described above, the type may be, for example, based on differences in the field in which the software is used, or based on differences in the type of system corresponding to the software. According to this modified example, the device information processing unit 2 can perform grouping that reflects the software type in addition to the results of static analysis. Furthermore, according to this modified example, it is possible to identify / estimate the type of software that each group is made up of. This makes it possible to determine, for a given piece of software, the general coding trends of software of the same type as that piece of software.
[0043] Although one embodiment of the present invention has been described above, the above embodiment merely illustrates one example of a specific implementation of the present invention, and the technical scope of the present invention should not be interpreted as being limited thereby. In other words, the present invention can be implemented in various forms without departing from the gist or main features thereof. Application examples of the above embodiment are described below. However, among the application examples described below, configurations that are applicable to the above-mentioned modified examples may also be applied to the modified examples. Furthermore, if multiple application examples can be implemented in combination, multiple application examples may be implemented in combination.
[0044] For example, in the above-described embodiment, the static analysis process P1 is executed by the device information processing unit 2. However, the device information processing unit 2 may not execute the static analysis process P1. In this case, the device information processing unit 2 acquires the static analysis result information J2 generated by the external device by communication or other means.
[0045] The functional blocks shown in the above embodiments can be realized by any hardware or by a combination of any hardware and any software, and are not limited to specific hardware.
[0046] The provision of a program executed by the information processing device 1 can also be included in the embodiments. The provision of a recording medium on which the program is recorded so as to be readable by a computer can also be included in the embodiments. The recording medium can be a magnetic or optical recording medium or a semiconductor memory device. Specific examples include portable or fixed recording media such as a flexible disk, a hard disk drive (HDD), a compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a Blu-ray (registered trademark) disc, a magneto-optical disk, a flash memory, and a card-type recording medium.
[0047] Furthermore, the target functioning as an information processing system is not limited to the target exemplified in the above embodiment. Hereinafter, an example will be given focusing on the "function of executing clustering processing for grouping multiple software programs using clustering technology based on the results of static analysis of the multiple software programs" (hereinafter referred to as the "first function"). In the above embodiment, the information processing device 1 is configured to have the first function as shown in FIG. 8A. In this configuration, the information processing device 1 functions as an information processing system, and the device information processing unit 2 functions as an information processing unit. Alternatively, as shown in FIG. 8B, the information processing device 1 and an external device 15 that can communicate with it may cooperate to realize the first function. In this configuration, the information processing device 1 and the external device 15 function as an information processing system, and the device information processing unit 2 of the device information processing unit 2 and the external device information processing unit 16 of the external device 15 function as an information processing unit. [Explanation of symbols]
[0048] 1. Information processing device (information processing system) 2. Device information processing section (information processing section) M2 Classification Model (Model)
Claims
1. An information processing unit having a function of executing a clustering process that divides a plurality of software programs into groups using a clustering technique based on the results of static analysis of the plurality of software programs. An information processing system comprising:
2. The results of static analysis of software are a combination of item values derived by static analysis for multiple predetermined items.
2. The information processing system according to claim 1, wherein:
3. The information processing unit The system has the function of executing the clustering process based on the results of static analysis as well as information about software defects that occurred after the software was implemented.
2. The information processing system according to claim 1, wherein:
4. The information processing unit It has the function of executing the clustering process based on the results of static analysis as well as information indicating the type of software.
2. The information processing system according to claim 1, wherein:
5. The information processing unit a function of providing information indicating the relationship between the plurality of groups defined by the clustering process and the software; 2. The information processing system according to claim 1, wherein:
6. The information processing unit The system has a function of performing a relative evaluation of a piece of software within a group to which the piece of software belongs, among groups defined by the clustering process.
2. The information processing system according to claim 1, wherein:
7. The information processing unit The system has a function of acquiring information about defects that have occurred due to the software after implementation and deriving the tendency of defects occurring for each group defined by the clustering process.
2. The information processing system according to claim 1, wherein:
8. The information processing unit For each group defined by the clustering process, a function is provided for deriving an index that can be used to evaluate software belonging to the group based on the results of static analysis of the software belonging to the group.
2. The information processing system according to claim 1, wherein:
9. The information processing unit a function of executing a classification process using a model to classify a piece of software into one of the groups defined by the clustering process based on the results of static analysis of the piece of software; The model is machine-trained using learning data including the results of static analysis of the software that has been subjected to the clustering process and information indicating the group to which the software belongs as a result of the clustering process.
9. The information processing system according to claim 1, wherein the information processing system comprises: a processor;
10. An information processing unit of the information processing system acquires results of static analysis of a plurality of pieces of software; and a step in which the information processing unit of the information processing system executes a clustering process to classify the software into a plurality of groups using a clustering technique.
1. An information processing method comprising:
11. A step of acquiring learning data for software that has been subjected to a clustering process in which a plurality of pieces of software are classified into groups using a clustering technique based on the results of static analysis of the plurality of pieces of software, the learning data including the results of the static analysis and information indicating the group to which the plurality of pieces of software belong as a result of the clustering process; and a step of machine learning a model using the training data. A machine learning method characterized by:
12. A trained model obtained by machine learning, The software that has been subjected to a clustering process in which multiple pieces of software are grouped using a clustering technique based on the results of static analysis of multiple pieces of software is machine-learned using learning data that includes the results of the static analysis and information indicating the group to which the software belongs based on the clustering process. A trained model characterized by:
Citation Information
Patent Citations
Information processing program, information processing method, and information processing apparatus
JP2021140502A