Information apparatus, information processing method, and information processing program

The information processing apparatus addresses inefficiencies and errors in static analysis review by automating the selection and validation of copy destinations, enhancing the efficiency and quality of static analysis result reviews.

JP2025102518APending Publication Date: 2025-07-08DENSO CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023220021
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-26
Publication Date
2025-07-08

AI Technical Summary

Technical Problem

Existing static analysis review tools require significant manual effort and are prone to human errors due to the large number of warnings, leading to inefficiencies and quality concerns.

Method used

An information processing apparatus and method that includes a database for storing static analysis results and review results, with features for selecting copy sources and destinations, determining appropriateness of destinations, and automatically suggesting or confirming copy actions to prevent errors and enhance efficiency.

Benefits of technology

The solution enables efficient and qualitative review of static analysis results by reducing human error and allowing batch processing of review results, thereby improving the quality and speed of the review process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025102518000001_ABST
    Figure 2025102518000001_ABST
Patent Text Reader

Abstract

To provide an information processing apparatus capable of reviewing static analysis results efficiently and with safe quality.SOLUTION: An information processing apparatus 110 comprises: a database 308 for storing static analysis results of a source code and review results of the static analysis results; an input unit 301 for accepting the selection of a copy source from among the reviewed static analysis results and also accepting the selection of a plurality of copy destinations, and accepting a copy processing request for copying the review results of the static analysis results of the copy source from the copy source to the plurality of copy destinations; an acquisition unit 302 for acquiring copy source information of the copy source and copy destination information of the plurality of copy destinations from the database in response to accepting the copy processing request; a determination unit 303 for determining whether or not each copy destination is appropriate based on the copy source information and the copy destination information; and an output unit 304 for outputting a determination result by the determination unit.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information device, an information processing method, and an information processing program.

Background Art

[0002] Static analysis exists as one of the technologies widely used as a means to guarantee the quality and reliability of software. There are also many tools for static analysis and it is possible to execute them easily. However, the number of warnings is enormous. It is necessary for software engineers to check each of these enormous numbers of warnings to determine whether there is a defect. Because it is work for an enormous number of warnings, it requires a huge cost. Also, it is considered that oversights of defects due to human error may occur and there are concerns about the quality aspect.

[0003] Patent Document 1 describes a review support device that realizes a reduction in review time for one warning by displaying past review results as reuse candidates. In the review support device described in Patent Document 1, since the comments and correction examples given to the warnings are appropriately carried over, it is possible to automatically construct the correspondence between the warnings, comments, and correction examples that were reset every time the version was updated, and the burden of review is reduced.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] However, in the review support device described in Patent Document 1, since the work of recording the determination results one by one for an enormous number of warnings remains the same, the problem that it takes time to record remains.

[0006] In view of the above problems, an object of the present invention is to provide an information processing apparatus capable of efficiently and safely and qualitatively performing a review of static analysis results.

Means for Solving the Problems

[0007] The present invention employs the following technical means to solve the above problems. The claims and the reference numerals in parentheses described in this section are an example showing the correspondence relationship with the specific means described in the embodiments described later as one aspect, and do not limit the technical scope of the present invention.

[0008] An information processing apparatus (110) according to an aspect of the present invention includes a database (308) that stores static analysis results of source code and review results for the static analysis results, and receives a selection of a copy source from among the reviewed static analysis results and receives a selection of a plurality of copy destinations, and receives a copy processing request for copying the review results for the static analysis results of the copy source to the plurality of copy destinations from the copy source; an input unit (301); in response to receiving the copy processing request, an acquisition unit (302) that acquires copy source information of the copy source and copy destination information of the plurality of copy destinations from the database; a determination unit (303) that determines whether each of the copy destinations is appropriate based on the copy source information and the copy destination information; and an output unit (304) that outputs a determination result by the determination unit.

[0009] According to this configuration, the determination unit can determine whether a plurality of copy destinations are appropriate based on the copy source information and the copy destination information. Thereby, human errors that may occur during the copying of the review results can be prevented, and the review of the static analysis results can be performed with stable quality. Further, when a plurality of copy destinations are appropriate, the review results of the copy source can be copied to the plurality of copy destinations at once, so that the review of the static analysis results can be performed efficiently.

[0010] An information processing apparatus (110) according to an aspect of the present invention includes a database (308) that stores static analysis results of source code and review results for the static analysis results, an input unit (301) that accepts selection of a static analysis result to be used as a copy source from among the reviewed static analysis results and accepts a copy processing request to copy the review result for the static analysis result, a candidate selection unit (305) that automatically selects a plurality of copy destination candidates based on the copy source information of the copy source in response to accepting the selection of the copy source, and a writing unit (306) that writes the review result of the copy source to the plurality of copy destinations in response to accepting the copy processing request.

[0011] According to this configuration, the candidate selection unit automatically selects a plurality of copy destinations based on the copy source information. As a result, the user can select a copy destination to which the review result should be copied from among the automatically selected plurality of copy destination candidates, so that the work of selecting a copy destination can be performed efficiently, human errors that may occur during copying can be prevented, and the review of the static analysis results can be performed with stable quality. Furthermore, since the review result of the copy source can be copied to a plurality of copy destinations at once, the review of the static analysis results can be performed efficiently.

[0012] An information processing method according to an aspect of the present invention is an information processing method of an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, the method including an input step of accepting selection of a copy source from among the reviewed static analysis results and accepting selection of a plurality of copy destinations, and accepting a copy processing request to copy the review result for the static analysis result of the copy source to the plurality of copy destinations, an acquisition step of acquiring, in response to accepting the copy processing request, the copy source information of the copy source and the copy destination information of the plurality of copy destinations from the database, a determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information, and an output step of outputting the determination result by the determination step.

[0013] An information processing program according to an aspect of the present invention is an information processing program for an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, and causes a computer to accept selection of a copy source from among the reviewed static analysis results and accept selection of a plurality of copy destinations, and an input step of accepting a copy processing request to copy review results for the static analysis results of the copy source to the plurality of copy destinations from the copy source, an acquisition step of acquiring copy source information of the copy source and copy destination information of the plurality of copy destinations from the database in response to receiving the copy processing request, a determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information, and an output step of outputting a determination result by the determination step.

Effect of the Invention

[0014] According to the present invention, it is possible to provide an information processing apparatus or the like capable of efficiently and safely and qualitatively performing a review of static analysis results.

Brief Description of the Drawings

[0015]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Embodiments for Carrying Out the Invention

[0016] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the embodiments described below are examples of cases where the present invention is implemented, and the present invention is not limited to the specific configurations described below. In carrying out the present invention, specific configurations according to the embodiments may be appropriately adopted.

[0017] 1. System Configuration FIG. 1 is a diagram showing an example of the system configuration of the information processing system according to the present embodiment. As shown in FIG. 1, the information processing system includes a user terminal 100, an information processing apparatus 110 that is a server apparatus, and a network 120. The user terminal 100 and the information processing apparatus 110 are communicably connected via the network 120. A user such as a software developer accesses the information processing apparatus 110 through a web browser from the user terminal 100 to manage the data of the static analysis result. The information processing apparatus 110 receives the input of the result of analyzing the source code of the software by a static analysis tool and manages the static analysis result data. The information processing apparatus 110 receives the input of the static analysis results by a plurality of static analysis tools.

[0018] 2. Hardware Configuration FIG. 2 is a diagram showing an example of the hardware configuration of the user terminal 100 and the information processing apparatus 110 according to the present embodiment. The user terminal 100 is a terminal used by a user, for example, a notebook personal computer. Note that the type of the terminal of the user terminal 100 may be a desktop personal computer, a tablet terminal, a smartphone, or the like. The user terminal 100 includes a control unit 201, a storage unit 202, a communication unit 203, an input unit 204, and a display unit 205, and these components are electrically connected via a communication bus inside the information processing apparatus 100.

[0019] The control unit 201 performs processing and control of the overall operation related to the user terminal 100. The control unit 201 is, for example, a central processing unit (CPU). The control unit 201 reads a predetermined program stored in the storage unit 202 and executes the program to realize various functions related to the user terminal 100. That is, information processing by software stored in the storage unit 202 is specifically realized by the control unit 201, which is an example of hardware, and can be executed as each functional unit included in the control unit 201. Note that the control unit 201 is not limited to being single, and may be implemented to have a plurality of control units 201 for each function. Or a combination thereof may be used.

[0020] The storage unit 202 can be implemented as a storage device such as a Solid State Drive (SSD) that stores various programs and the like related to the user terminal 100 executed by the control unit 201, or as a memory such as a Random Access Memory (RAM) that stores temporarily necessary information (arguments, arrays, etc.) related to the calculation of programs. The storage unit 202 stores various programs related to the user terminal 100 executed by the control unit 201, variables, and data used by the control unit 201 when executing processing based on the programs. The program is a program for causing a computer to function as the control unit of the user terminal 100.

[0021] Although wired communication means such as USB, IEEE1394, Thunderbolt (registered trademark), and wired LAN network communication are preferable for the communication unit 203, wireless LAN network communication, mobile communication such as 3G / LTE / 5G, and BLUETOOTH (registered trademark) communication may be included as necessary. That is, it is more preferable to implement it as a set of these multiple communication means. That is, the user terminal 100 may communicate various information from the outside via the communication unit 203 and the network 120.

[0022] The input unit 204 may be included in the housing of the user terminal 100 or may be externally attached. For example, the input unit 204 may be integrated with the output unit 205 and implemented as a touch panel. With a touch panel, the user can input tap operations, swipe operations, etc. Of course, instead of the touch panel, a switch button, a mouse, a QWERTY keyboard, etc. may be adopted. That is, the input unit 204 receives operation inputs made by the user. The input is transferred as a command signal to the control unit 201 via the communication bus, and the control unit 201 can execute predetermined control and calculations as necessary.

[0023] The display unit 205 may be included in the housing of the user terminal 100, or may be externally attached. The display unit 205 displays a screen of a graphical user interface (GUI) operable by the user. For example, it is preferable to selectively use a display device such as a CRT display, a liquid crystal display, an organic EL display, or a plasma display according to the type of the user terminal 100.

[0024] Further, the information processing apparatus 110 includes at least a control unit 211, a storage unit 212, and a communication unit 213, and these components are electrically connected via a communication bus inside the information processing apparatus 110. For the control unit 211, the storage unit 212, and the communication unit 213 of the information processing apparatus 110, refer to the control unit 201, the storage unit 202, and the communication unit 203 of the user terminal 100.

[0025] 3. Functional Configuration Various functions related to the information processing apparatus 110 can be executed as each functional unit included in the information processing apparatus 110 by the information processing by software stored in the storage unit 212 being specifically realized by the control unit 211 which is an example of hardware.

[0026] FIG. 3 is a block diagram showing the functions of the information processing apparatus 110. Specifically, the information processing apparatus 110 includes an input unit 301, an acquisition unit 302, a determination unit 303, an output unit 304, a candidate selection unit 305, a writing unit 306, and a selection cancellation unit 307. Further, the information processing apparatus 110 includes an analysis result database 308.

[0027] The analysis result database 308 stores static analysis results which are the results of analyzing the source code of software by a static analysis tool, and review results for the static analysis results. The analysis result database 308 may store the source code. The analysis result database 308 stores static analysis results in units of a plurality of software constituting a product project.

[0028] The static analysis result is data regarding warnings for descriptions in source code that may contain bugs, and is data indicating where in the source code there are syntax errors and what kind of syntax errors there are. The review result is the result of the user's review of the warnings, and includes information such as the user who performed the review, the review comments made, and the review status indicating whether the review has been completed or not.

[0029] There are various tools as static analysis tools. The analysis result database 308 stores the static analysis results analyzed by different static analysis tools. The static analysis results vary depending on the static analysis tool, and there are cases where a description detected as a warning by one static analysis tool is not detected as a warning by another static analysis tool. This is due to the specifications of the static analysis tool, because the fields in which the tool is good at analysis are different. By the analysis result database 308 storing the static analysis results of multiple static analysis tools, a highly accurate review can be performed.

[0030] FIG. 4(a) shows an example of the data of the static analysis result stored in the analysis result database 308. The data of the static analysis result has data of the file ID, tool ID, warning ID, warning message, severity, line, column, and file characteristics, associated with the hash value.

[0031] The hash value is identification information for specifying the warning, and is calculated based on the data regarding the warning and the data of the code of the line related to the warning. By using the hash value as the identification information, the same warning can be easily specified between source files of different versions. Thereby, the labor of reviewing again the warnings for which the review has already been completed can be saved, and the review time of the source code can be significantly reduced.

[0032] The file ID is the file ID of the source file that is the target of static analysis. The tool ID is the ID of the static analysis tool that detected the warning. The warning message is a message for notifying the user of the content of the warning. The warning ID is an ID for specifying the warning, which is associated with the warning message. In this specification, this warning ID is referred to as the warning content.

[0033] The severity is data representing the seriousness of the warning. For example, it is represented by a numerical value from 0 to 30, and the larger the number, the more serious the content of the warning. The line and column are data for specifying the location of the code related to the warning. The line represents the line number where the warning starts, and the column indicates the column number within the file. The file characteristics are data indicating the characteristics of the target file. For example, it indicates automatically generated source code, source code purchased from another company, or source code under a certain folder. In FIG. 4(a), "under folder A" indicates that the file is stored in a folder under folder A. Note that this is just an example, and the static analysis result data may include data other than those shown in FIG. 4(a).

[0034] FIG. 4(b) shows an example of the review result data stored in the analysis result database. The review result data is associated with the hash value based on the above static analysis result and has data of status, checker, check date and time, review comment, and flag.

[0035] The hash value is associated with the hash value included in the static analysis result data to identify a warning. The status is the status of the review situation for the warning identified by the hash value. For example, "confirmed" indicates that it has been confirmed, and "unreviewed" indicates that the review has not been done yet. The reviewer is the name of the user who reviewed the warning and changed the status. The confirmation date and time is the data of the date and time when the content of the warning was confirmed (i.e., reviewed). The review comment is the comment left by the reviewer who reviewed the warning during the review. The flag is data indicating that the review result is a copy. For example, "〇" indicates that the review result is a copy. Note that what is shown here is just an example, and the review result data may include data other than that shown in Fig. 4(b).

[0036] The input unit 301 receives the selection of the copy source and the copy destination. One copy source is manually selected by the user via a browser operation from among the reviewed static analysis results. One or more copy destinations are manually selected by the user via a browser operation. The multiple copy destinations may be selectable collectively with elements common to the multiple copy destinations. As an example, the multiple copy destinations may be sorted by warning content and selected collectively.

[0037] Fig. 5 is a diagram showing an example of a browser display screen for the user to manually select the copy source and the copy destination. As shown in Fig. 5, the user can select the copy source by clicking on the radio button of the copy source and checking it. Also, the user can select the copy destination by clicking on the checkbox of the copy destination and checking it.

[0038] The input unit 301 receives a copy process request to copy the review result for the static analysis result from the copy source to the copy destination. When the user clicks "COPY & PASTE" (see FIG. 5) on the browser, the input unit 301 receives the copy process request. Also, the input unit 301 receives various instructions or requests via browser operations by the user. For example, the input unit 301 receives an instruction to copy the review result of the copy source from the copy source to the copy destination, or a selection cancellation request to cancel the selection of the selected copy destination all at once.

[0039] In response to receiving the copy process request, the acquisition unit 302 acquires the copy source information of the copy source and the copy destination information of the copy destination from the analysis result database 308. Since the copy source information is the reviewed part of the static analysis result, it includes the static analysis result and the review result for the static analysis result. On the other hand, since the copy destination information also includes static analysis results that have not been reviewed yet, there are some that do not include the review result for the static analysis result.

[0040] The determination unit 303 determines whether the copy destination is appropriate based on the copy source information and the copy destination information. Specifically, the determination unit 303 determines whether the copy destination is appropriate based on the warning content of the copy source information and the warning content of the copy destination information. When the warning content of the copy source information and the warning content of the copy destination information match, the determination unit 303 determines that the copy destination is appropriate, and when the warning content of the copy source information and the warning content of the copy destination information do not match, the determination unit 303 determines that the copy destination is inappropriate. Furthermore, the determination unit 303 determines whether the copy destination is appropriate based on the review status of the copy destination information. Specifically, if the review status is "unreviewed", the determination unit 303 determines that the copy destination is appropriate. Also, the determination of whether the copy destination is appropriate may be further considered in light of the review comments of the copy destination.

[0041] In this embodiment, the determination unit 303 determines that the copy destination is appropriate when the warning contents of the copy source and the copy destination are the same and the copy destination is in an unreviewed state. However, the determination by the determination unit 303 as to whether the copy destination is appropriate is not limited to this. Whether the copy destination is appropriate varies depending on the user's process and way of thinking, and thus it may be customizable. For example, depending on the characteristics of the target file, it may be determined whether the copy destination is appropriate. When the characteristics of the file are at least any one of automatically generated source code, source code purchased from another company, or source code under a certain folder, etc., the copy destination may be collectively set as "excluded".

[0042] The output unit 304 outputs the determination result by the determination unit 303. Specifically, the output unit 304 displays the determination result by the determination unit 303 on the display unit 205 of the user terminal 100 via the browser. Also, the output unit 304 displays various information on the display unit 205 of the user terminal 100 via the browser. For example, when the input unit 301 receives a copy process request, the output unit 304 outputs the information to be copied to the copy destination and the information not to be copied to the copy destination among the review results of the copy source information. The information to be copied to the copy destination includes, for example, the review status and the review comment among the review results of the copy source information. The information not to be copied to the copy destination includes, for example, the hash value, the checker, the check date and time, etc.

[0043] FIG. 6 is a diagram showing an example of a browser display screen for displaying the information to be copied to the copy destination and the information not to be copied to the copy destination. As shown in FIG. 6, by the output unit 304 displaying such information, the user can easily know which information is copied to the copy destination and which information is not copied to the copy destination.

[0044] Also, when the determination unit 303 determines that the copy destination is inappropriate, the output unit 304 outputs a warning screen as the determination result. The warning screen includes at least one of the review status or the review comment among the review results of the copy destination information. FIGS. 7(a) and 7(b) are diagrams showing examples of browser display screens for displaying the warning screen. As shown in FIG. 7(a), when the warning contents of the copy source and the copy destination do not match, a warning screen that does not permit copying is displayed. The warning screen is displayed with "The warning contents do not match." and the user can only select to cancel the copy. This can prevent the user from accidentally copying to the wrong destination and prevent human errors. Also, as shown in FIG. 7(b), when the warning contents of the copy source and the copy destination match, but the copy destination information is not "unreviewed", the review status indicating that the copy destination information has been reviewed and its review comment are displayed as the warning screen, and "There is already a review status or comment set for the copy destination. Do you want to overwrite and copy?" is displayed. This can prevent the user from accidentally copying to the wrong destination and prevent human errors. In the case of FIG. 7(b), since there is a possibility of executing the copy even if the warning screen appears, the warning screen includes a region for displaying whether to copy or not in the form of "Yes / No", similar to the decision screen described later.

[0045] Further, when the determination unit 303 determines that the copy destination is appropriate, the output unit 304 outputs, as a determination result, a determination screen for allowing the user to determine whether to copy the review result of the copy source from the copy source to the copy destination. For example, the determination screen is one that displays whether to copy in the form of "Yes / No". FIG. 8 is a diagram showing an example of a browser display screen for displaying the determination screen. As shown in FIG. 8, the output unit 304 displays "Do you want to copy all at once to the copy destination?" and displays an area for selecting "Yes" or "No". Note that when the determination unit 303 determines that the copy destination is appropriate, the copying may be performed without outputting the determination screen to the output unit 304. Further, as will be described later, the output unit 304 displays the candidates for the copy destination automatically selected by the candidate selection unit 305 on the browser display screen.

[0046] The candidate selection unit 305 automatically selects candidates for the copy destination based on the copy source information of the copy source. Specifically, when the input unit 301 receives the user's selection of the copy source, the candidate selection unit 305 selects candidates for the copy destination based on the warning content of the selected copy source. FIG. 9 is a diagram showing an example of a browser display screen for displaying the result of the candidate selection unit 305 automatically selecting candidates for the copy destination based on the warning content of the selected copy source when the user selects one copy source. The user selects from among these candidates for the copy destination by checking the checkbox.

[0047] As shown on the left side of FIG. 9, when the user selects the hash value 94b276b42e... as the copy source information, the candidate selection unit 305 automatically selects candidates for the copy destination based on the warning content of the selected copy source. Then, as shown on the right side of FIG. 9, the copy destination information with matching warning content is displayed as candidates for the copy destination below the copy source information.

[0048] When the user selects the source for copying, since the source for copying must have been reviewed, the GUI may be controlled so that data with a review status of "unreviewed" cannot be selected. For example, as shown on the left side of FIG. 9, the function of the radio button for data that cannot be selected may be turned off.

[0049] In addition, the candidate selection unit 305 may select candidates for the destination for copying based on the source information of the source for copying using a machine learning model that outputs candidates for the destination for copying from the input of the source information of the source for copying. This machine learning model is a model generated by learning using data on past performance in which the user copied the review result of the source for copying to the destination for copying.

[0050] This model may be, for example, a model that takes the source information of the source for copying as input and outputs the destination information of the destination for copying, or a model that takes the source information of the source for copying and the destination information of the destination for copying as input and outputs the probability of being suitable as the destination for copying. For the former model, the candidate selection unit 305 inputs the source information of the source for copying into the model, obtains the attributes required for the warning of the destination for copying, and selects the destination for copying that matches the attributes. For the latter model, the candidate selection unit 305 sequentially inputs the source information of the source for copying and the destination information of the destination for copying, and selects the destination for copying with a high accuracy rate.

[0051] The writing unit 306 writes data to the analysis result database 308. Specifically, when the input unit 301 receives an instruction to copy the review result of the source for copying from the source for copying to the destination for copying (that is, when the user selects "Yes" in FIG. 8), the writing unit 306 writes the review result of the source for copying to the destination for copying in a batch. In addition, when writing the source information in a batch, the writing unit 306 writes at least one piece of information, such as the approver who made the decision to copy or a flag indicating that the review result of the destination for copying is a copy, to the review result of the destination for copying.

[0052] When the selection cancellation unit 307 receives a selection cancellation request to cancel the selection of the copy destination selected by the input unit 301 (that is, when the user clicks "DESELECT ALL" in FIG. 5), it cancels the selections of the selected copy source and copy destination all at once. As a result, before performing the next operation, the user does not need to cancel the selections of the selected copy source and copy destination one by one, which is excellent in operability.

[0053] 4. Information Processing Method Next, the information processing method of the information processing apparatus 110 will be described. FIG. 10 is a flowchart showing the flow of operations of the information processing apparatus 110.

[0054] In step S101, the input unit 301 receives a selection of a copy source from among the reviewed static analysis results and a selection of a copy destination from the user terminal 100, and receives a copy processing request to copy the review result for the static analysis result of the copy source from the copy source to the copy destination. Note that the reception of the selection of the copy source is made by checking a radio button, and the reception of the selection of the copy destination is made by checking a check box (see FIG. 5). Also, the reception of the copy processing request is made when the user clicks the "COPY & PASTE" button (see FIG. 5).

[0055] In step S102, in response to the input unit 301 receiving the copy processing request, the acquisition unit 302 acquires the copy source information of the copy source and the copy destination information of the copy destination from the analysis result database 308. At this time, as shown in FIG. 6, the output unit 304 may display, via the browser, on the display unit 205 of the user terminal 100 a screen for displaying information to be copied to the copy destination and information not to be copied to the copy destination.

[0056] In step S103, the determination unit 303 determines whether the copy destination is appropriate based on the source information for copying and the destination information for copying. Note that this determination may be made when the user clicks the "COPY DETERMINATION" button on the screen that displays the information to be copied to the copy destination and the information not to be copied to the copy destination, which is output by the output unit 304 when the input unit 301 receives a copy process request (see FIG. 6), or may be automatically made when the acquisition unit 302 acquires the source information for copying and the destination information for copying. The determination as to whether the copy destination is appropriate is made based on the warning content of the source for copying and the warning content of the destination for copying as described above. Further, it is determined whether the copy destination is appropriate based on the review status of the copy destination. Also, the determination as to whether the copy destination is appropriate may be made taking further into account the review comments of the copy destination. If the copy destination is appropriate, the flow proceeds to step S104. If the copy destination is not appropriate, the flow proceeds to step S105.

[0057] In step S104, the output unit 304 displays a decision screen (see FIG. 8) as the determination result on the browser display screen. Note that if the copy is to be performed as it is when it is determined that the copy destination is appropriate, this step S104 is omitted.

[0058] In step S105, the output unit 304 displays a warning screen as the determination result on the browser display screen. On the warning screen, for example, as shown in FIG. 7, the review status indicating that the copy destination information has been reviewed and its review comments are displayed.

[0059] In step S106, the input unit 301 checks whether it has received a determination from the user to "copy". The reception of the determination to "copy" is made when "Yes" is selected on the determination screen or when "Yes" is selected on the warning screen. If the input unit 301 receives an instruction to "copy", the flow proceeds to step S107. If the input unit 301 receives an instruction not to "copy" (that is, when "No" is selected on the determination screen or the warning screen), the flow proceeds to step S108.

[0060] In step S107, the writing unit 306 writes the review results of the copy source to the copy destination in a batch. Then the flow ends.

[0061] In step S108, the output unit 304 displays a dialog indicating that the copy has been canceled on the browser display screen. Then the flow ends.

[0062] Note that after steps S107 and S108, the copy source and destination selected on the browser display screen remain checked. Therefore, the user clicks "DESELECT ALL" shown in FIG. 5. When "DESELECT ALL" is clicked, the input unit 301 receives a selection cancellation request from the selection cancellation unit to cancel the selection of the selected copy source and destination, and the selection cancellation unit 307 cancels the selection of the selected copy source and destination in a batch. Note that after steps S107 and S108, in the browser display screen, the checks for the selected copy source and destination may be canceled.

[0063] (Other Embodiments) As described above, the embodiments of the present disclosure have been described. However, the present disclosure is not construed as being limited to the above embodiments, and can be applied to various embodiments and combinations without departing from the gist of the present disclosure.

[0064] (Modification Examples) In this embodiment, the candidate selection unit 305 selects candidates for the copy destination. After the user designates the copy destination from among the candidates for the copy destination, the determination unit 303 determines whether the copy destination is appropriate. However, when the candidate selection unit 305 selects candidates for the copy destination, it may also determine whether the candidates for the copy destination are appropriate. In this case, the candidate selection unit 305 selects candidates for the copy destination based on the copy source information of the copy source. Specifically, similar to the processing of the determination unit 303, the candidates for the copy destination may be selected based on the warning content of the copy source and the warning content of the candidates for the copy destination. Further, the candidate selection unit 305 may select candidates for the copy destination based on the warning content of the copy source, the warning content of the candidates for the copy destination, and the review status of the candidates for the copy destination, similar to the processing of the determination unit 303. Further, the candidate selection unit 305 may select candidates for the copy destination based on the copy source information of the selected copy source using the above-described machine learning model. The candidate selection unit 305 may select the copy destination instead of the candidates for the copy destination.

[0065] In the above-described embodiment, first, the process of the user selecting the copy source and a plurality of copy destinations and determining whether the selected plurality of copy destinations are appropriate has been described. However, the information processing apparatus 110 can also perform the process of first selecting candidates for the copy destination by the candidate selection unit 305 and presenting them to the user, and then the user selects the copy destination from among them. That is, the information processing apparatus 110 may have a function of suggesting the copy destination to the user.

[0066] FIG. 11 is a flowchart showing the flow of an operation in which the information processing apparatus 110 presents candidates for the copy destination and causes the user to confirm.

[0067] In step S111, the input unit 301 receives a selection of the copy source from the user terminal 100.

[0068] In step S112, the candidate selection unit 305 selects candidates for the copy destination based on the source information of the source to be copied. For example, the candidate selection unit 305 obtains candidates for the copy destination based on the selected source information of the source to be copied by using a pre-generated machine learning model. This machine learning model is a model generated by training using data on past performance in which the user copied the review results of the source to the copy destination.

[0069] Subsequently, the information processing apparatus 110 transmits the data of the candidates for the copy destination to the user terminal 100. The user terminal 100 displays the data of the candidates for the copy destination on the user terminal.

[0070] In step S113, the input unit 301 receives a selection of the copy destination from the user terminal 100. That is, this step S113 is a step of selecting a copy destination that the user has determined is okay to copy from among the warnings displayed as candidates for the copy destination.

[0071] In step S114, the input unit 301 receives a copy processing request.

[0072] In step S115, the writing unit 306 writes the review results of the source to the copy destination in a batch. Then the flow ends.

[0073] By having the information processing apparatus 110 present the copy destination of the warning data of the source in this way, the targets that the user should view are limited, making it easier to search for the copy destination.

[0074] In addition, when the user manually selects a copy destination, if the selected copy destination is inappropriate, the output unit 304 may immediately display a warning window indicating that the selected copy destination is inappropriate. The determination as to whether the copy destination is appropriate in this case may be made based on the warning content of the copy source and the warning content of the copy destination, in the same manner as the processing of the determination unit 303. Alternatively, it may be made based on the warning content of the copy source, the warning content of the copy destination, and the review status of the copy destination. Further, it may be determined using the machine learning model described above.

[0075] The control unit and its method described in the present disclosure may be implemented by a dedicated computer configured to include a processor programmed to execute one or more functions embodied by a computer program. Alternatively, the apparatus and its method described in the present disclosure may be implemented by dedicated hardware logic circuits. Or, the apparatus and its method described in the present disclosure may be implemented by one or more dedicated computers configured by a combination of a processor that executes a computer program and one or more hardware logic circuits. Further, the computer program may be stored in a computer-readable non-transitory tangible recording medium as instructions to be executed by a computer.

[0076] Also, the processing flow described in the above embodiment is also an example, and unnecessary steps may be deleted, new steps may be added, or the processing order may be changed within the scope not departing from the gist of the present invention.

[0077] It may be provided in each of the aspects described below. (Aspect 1) A database (308) that stores the static analysis result of source code and the review result for the static analysis result, An input unit (301) that accepts the selection of a copy source from among the reviewed static analysis results and accepts the selection of a plurality of copy destinations, and accepts a copy process request to copy the review results for the static analysis results of the copy source from the copy source to the plurality of copy destinations. An acquisition unit (302) that acquires the copy source information of the copy source and the copy destination information of the plurality of copy destinations from the database in response to receiving the copy process request. A determination unit (303) that determines whether each of the copy destinations is appropriate based on the copy source information and the copy destination information. An output unit (304) that outputs the determination result by the determination unit. An information processing apparatus (110) comprising the above.

[0078] (Aspect 2) The information processing apparatus according to Aspect 1, further comprising a candidate selection unit (305) that automatically selects candidates for copy destinations.

[0079] (Aspect 3) The information processing apparatus according to Aspect 2, wherein the candidate selection unit selects candidates for the copy destinations based on the warning contents of the selected copy source in the static analysis results.

[0080] (Aspect 4) The information processing apparatus according to Aspect 2, wherein the candidate selection unit selects candidates for the copy destinations based on the copy source information of the selected copy source using a machine learning model that outputs candidates for copy destinations from the input of the copy source information of the copy source.

[0081] (Aspect 5) The information processing apparatus according to any one of Aspects 1 to 4, wherein the output unit outputs information to be copied to the plurality of copy destinations and information not to be copied to the plurality of copy destinations among the review results of the copy source information.

[0082] (Aspect 6) The information to be copied to the copy destination is the information processing apparatus according to aspect 5, including the review status and the review comment among the review results of the copy source information.

[0083] (Aspect 7) The determination unit determines whether the plurality of copy destinations are appropriate based on the warning content for the source code that is the copy source information and the warning content for the source code that is the copy destination information, according to the information processing apparatus according to any one of aspects 1 to 6.

[0084] (Aspect 8) The determination unit determines whether the plurality of copy destinations are appropriate by using the review status for the warning as the copy destination information, according to the information processing apparatus according to aspect 7.

[0085] (Aspect 9) When the determination unit determines that the copy destination is inappropriate, the output unit outputs a warning screen as the determination result, according to the information processing apparatus according to any one of aspects 1 to 8.

[0086] (Aspect 10) The warning screen includes at least one of the review status or the review comment among the review results of the copy destination information, according to the information processing apparatus according to aspect 9.

[0087] (Aspect 11) The database stores the static analysis results in units of a plurality of software that make up a product project, according to the information processing apparatus according to any one of aspects 1 to 10.

[0088] (Aspect 12) The static analysis result and the review result for the static analysis result are associated with a hash value based on the static analysis result, according to the information processing apparatus according to any one of aspects 1 to 11.

[0089] (Aspect 13) The information processing apparatus further includes a writing unit (306) for writing data to the database. When it is determined by the determination unit that the plurality of copy destinations are appropriate, the output unit outputs, as the determination result, a determination screen for allowing the user to determine whether to copy the review result of the copy source to the plurality of copy destinations from the copy source. When the input unit receives an instruction to copy the review result of the copy source to the plurality of copy destinations from the copy source, the writing unit writes the review result of the copy source to the copy destination. The information processing apparatus according to any one of Aspects 1 to 12.

[0090] (Aspect 14) When writing the copy source information, the writing unit writes at least one piece of information of the reviewer who made the decision to copy or a flag indicating that the review results of the plurality of copy destinations are copies to the review results of the plurality of copy destinations. The information processing apparatus according to Aspect 13.

[0091] (Aspect 15) When the input unit receives a selection cancellation request for canceling the selection of the selected plurality of copy destinations, the information processing apparatus according to any one of Aspects 1 to 14 further includes a selection cancellation unit (307) for canceling the selection of the selected copy source and the plurality of copy destinations.

[0092] (Aspect 16) A database (308) that stores the static analysis result of the source code and the review result for the static analysis result, An input unit (301) that receives a selection of a static analysis result to be used as a copy source from among the reviewed static analysis results and receives a copy process request to copy the review result for the static analysis result, A candidate selection unit (305) that automatically selects a plurality of copy destination candidates based on the copy source information of the copy source in response to receiving the selection of the copy source, A writing unit (306) that writes the review result of the copy source to the plurality of copy destinations in response to receiving the copy process request, An information processing apparatus (110) comprising the same.

[0093] (Aspect 17) An information processing method for an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, an input step of receiving a selection of a copy source from among the reviewed static analysis results and receiving selections of a plurality of copy destinations, and receiving a copy process request to copy the review results for the static analysis results of the copy source from the copy source to the plurality of copy destinations; an acquisition step of acquiring, from the database, copy source information of the copy source and copy destination information of the plurality of copy destinations in response to receiving the copy process request; a determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information; an output step of outputting a determination result by the determination step; An information processing method comprising the above.

[0094] (Aspect 18) An information processing program for an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, causing a computer to perform an input step of receiving a selection of a copy source from among the reviewed static analysis results and receiving selections of a plurality of copy destinations, and receiving a copy process request to copy the review results for the static analysis results of the copy source from the copy source to the plurality of copy destinations; an acquisition step of acquiring, from the database, copy source information of the copy source and copy destination information of the plurality of copy destinations in response to receiving the copy process request; a determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information; an output step of outputting a determination result by the determination step; An information processing program that causes the above to be executed.

Explanation of Symbols

[0095] 110 ··· Information processing device, 301 ··· Input unit, 302 ··· Acquisition unit, 303 ··· Determination unit, 304 ··· Output unit, 305 ··· Candidate selection unit, 306 ··· Writing unit, 307 ··· Selection cancellation unit, 308 ··· Analysis result database

Claims

1. A database (308) that stores the static analysis results of source code and the review results for the static analysis results, An input unit (301) that accepts selection of a copy source from among the reviewed static analysis results and accepts selection of a plurality of copy destinations, and accepts a copy process request to copy the review results for the static analysis results of the copy source to the plurality of copy destinations, An acquisition unit (302) that, in response to receiving the copy process request, acquires copy source information of the copy source and copy destination information of the plurality of copy destinations from the database, A determination unit (303) that determines whether each of the copy destinations is appropriate based on the copy source information and the copy destination information, An output unit (304) that outputs the determination result by the determination unit, An information processing apparatus (110) comprising the above.

2. The information processing apparatus according to claim 1, further comprising a candidate selection unit (305) that automatically selects candidates for the copy destination.

3. The information processing apparatus according to claim 2, wherein the candidate selection unit selects candidates for the copy destination based on the warning content of the selected copy source in the static analysis results.

4. The information processing apparatus according to claim 2, wherein the candidate selection unit selects candidates for the copy destination based on the copy source information of the selected copy source using a machine learning model that outputs candidates for the copy destination from the input of the copy source information of the copy source.

5. The information processing apparatus according to any one of claims 1 to 4, wherein the output unit outputs information to be copied to the plurality of copy destinations and information not to be copied to the plurality of copy destinations among the review results of the copy source information.

6. The information processing apparatus according to claim 5, wherein the information to be copied to the copy destination includes a review status and a review comment among the review results of the copy source information.

7. The information processing apparatus according to claim 1, wherein the determination unit determines whether the plurality of copy destinations are appropriate based on the warning content for the source code that is the copy source information and the warning content for the source code that is the copy destination information.

8. The information processing apparatus according to claim 7, wherein the determination unit determines whether the plurality of copy destinations are appropriate using the review status for the warning as the copy destination information.

9. The information processing apparatus according to claim 1, wherein when the determination unit determines that the copy destination is inappropriate, the output unit outputs a warning screen as the determination result.

10. The information processing apparatus according to claim 9, wherein the warning screen includes at least one of a review status or a review comment among review results of the copy destination information.

11. The information processing apparatus according to claim 1, wherein the database stores the static analysis result in units of a plurality of software components constituting a product project.

12. The information processing apparatus according to claim 1, wherein the static analysis result and the review result for the static analysis result are associated with a hash value based on the static analysis result.

13. The apparatus further includes a writing unit (306) for writing data to the database, wherein when the determination unit determines that the plurality of copy destinations are appropriate, the output unit outputs a decision screen for allowing a user to decide whether to copy the review result of the copy source to the plurality of copy destinations as the determination result, and when the input unit receives an instruction to copy the review result of the copy source to the plurality of copy destinations, the writing unit writes the review result of the copy source to the copy destination. The information processing apparatus according to claim 1.

14. The information processing apparatus according to claim 13, wherein when writing the copy source information, the writing unit writes at least one piece of information of a reviewer who has decided to perform the copy or a flag indicating that the review results of the plurality of copy destinations are copies to the review results of the plurality of copy destinations.

15. The information processing apparatus according to claim 1, further comprising a selection canceling unit (307) for canceling the selection of the selected copy source and the plurality of copy destinations when the input unit receives a selection canceling request for canceling the selection of the selected plurality of copy destinations.

16. A database (308) for storing a static analysis result of source code and a review result for the static analysis result, an input unit (301) for receiving a selection of a static analysis result to be used as a copy source from among the reviewed static analysis results and receiving a copy processing request for copying the review result for the static analysis result, A candidate selection unit (305) that automatically selects a plurality of candidate copy destinations based on the copy source information of the copy source in response to receiving the selection of the copy source; A writing unit (306) that writes the review result of the copy source to the plurality of copy destinations in response to receiving the copy process request; An information processing apparatus (110) comprising:

17. An information processing method for an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, comprising: An input step of receiving a selection of a copy source from among the reviewed static analysis results and receiving a selection of a plurality of copy destinations, and receiving a copy process request to copy the review result for the static analysis result of the copy source from the copy source to the plurality of copy destinations; An acquisition step of acquiring, from the database, the copy source information of the copy source and the copy destination information of the plurality of copy destinations in response to receiving the copy process request; A determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information; An output step of outputting the determination result by the determination step; An information processing method comprising:

18. An information processing program for an information processing apparatus having a database that stores static analysis results of source code and review results for the static analysis results, comprising: Causing a computer to An input step of receiving a selection of a copy source from among the reviewed static analysis results and receiving a selection of a plurality of copy destinations, and receiving a copy process request to copy the review result for the static analysis result of the copy source from the copy source to the plurality of copy destinations; An acquisition step of acquiring, from the database, the copy source information of the copy source and the copy destination information of the plurality of copy destinations in response to receiving the copy process request; A determination step of determining whether each of the copy destinations is appropriate based on the copy source information and the copy destination information; An output step of outputting the determination result by the determination step; An information processing program for executing the steps.

Citation Information

Patent Citations

  • Result product review support device

    JP2011081496A

  • System and method for grouping caution generated during static analysis

    JP2014170530A

  • Analysis device for static analysis result of source code, and analysis method

    JP2017204090A