INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD AND INFORMATION PROCESSING PROGRAM

The information processing apparatus addresses the inefficiencies and errors in manually checking static analysis warnings by automating the copying of check results to appropriate destinations, thereby enhancing the efficiency and quality of software verification.

DE102024136392A1Pending Publication Date: 2025-06-26DENSO CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
DE102024136392
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-26
Filing Date
2024-12-05
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

Existing static analysis tools generate a large number of warnings, requiring software developers to manually check each warning, which is time-consuming and prone to human errors, leading to inefficiencies and potential quality issues in software verification.

Method used

An information processing apparatus and method that includes a database for storing static analysis results and check results, an input unit for receiving selection of a copy source and destinations, an acquisition unit for retrieving source and destination information, a determination unit for assessing destination appropriateness, and an output unit for displaying determination results, thereby automating the process of copying check results to appropriate destinations.

Benefits of technology

This solution significantly reduces the time and effort required for verifying static analysis results by automating the copying process, minimizing human errors, and ensuring high-quality and efficient inspection of static analysis results.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An information processing device (110) includes a database (308) that stores a plurality of static analysis results of a source code and a plurality of verification results of respective static analysis results. The information processing device receives a selection of a copy source and a plurality of copy destinations from the verified static analysis results and receives a copy processing request for copying the verification result of the static analysis result selected as the copy source to the copy destinations. The information processing device acquires copy source information of the copy source and copy destination information of the respective copy destinations from the database in response to receiving the copy processing request, determines whether the respective copy destinations are appropriate based on the copy source information and the copy destination information, and outputs the determination result.
Need to check novelty before this filing date? Find Prior Art

Description

The present invention relates to an information processing apparatus, an information processing method, and an information processing program.In software development, static analyses are widely used as a method for securing the quality and reliability of software. There are many different types of static analysis tools. Although static analysis tools for analyzing source code of a software program can be used easily, a large number of warnings are issued from the static analysis tools. Thus, a software developer needs to check the large number of warnings one after another and determine whether a respective warning relates to an error. Since the check must be performed for the large number of warnings, the check causes enormous costs. There is also concern about verification quality, as some of the large number of warnings could be missed due to human errors.JP 2011-81 496 A describes a verification support device that reduces the verification time for warning by displaying past verification results as reuse candidates. The inspection support device described in JP 2011-81 496 A suitably adopts comments and revision examples assigned to the warning. Thus, correspondence between the warnings, comments, and revision examples reset for each version update can be automatically formed, thereby reducing the verification effort.However, the inspection support device described in JP 2011-81 496 A still requires successively recording determination results for the large number of warnings. Thus, recording determination results for the large number of warnings continues to be time-consuming.In view of the above problem, it is an object of the present invention to provide an information processing apparatus, an information processing method, and an information processing program that can perform the inspection of static analysis results with high efficiency and quality.In order to achieve the object, the present invention includes the following aspects.According to an aspect of the present invention, an information processing apparatus includes: a database storing static analysis results of a source code and check results of respective static analysis results; an input unit receiving a selection of a copy source and a plurality of copy destinations from the checked static analysis results and a copy processing request for copying the check result of the static analysis result selected as the copy source to the copy destinations; an acquisition unit acquiring, from the database, copy source information of the copy source and copy destination information of the respective copy destinations in response to receiving the copy processing request; a determination unit determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; and an output unit that outputs a determination result of the determination unit.According to the above configuration, the determination unit may determine whether the respective copy destinations are appropriate based on the copy source information and the copy destination information. This configuration prevents a human error that may occur in a copying operation of the inspection result, and enables inspection of the static analysis results with stable and high quality. When it is determined that each of the copy destinations is appropriate, the check result of the copy source can be simultaneously copied to the copy destinations at once, thereby increasing the check efficiency of the static analysis results.According to another aspect of the present invention, an information processing apparatus includes: a database storing static analysis results of a source code and check results of respective static analysis results; an input unit receiving a selection of a copy source from the checked static analysis results and receiving a copy processing request for copying the check result of the static analysis result selected as the copy source; a candidate selection unit automatically selecting copy target candidates based on copy source information of the selected copy source in response to receiving the selection of the copy source; and a writing unit writing the check result of the copy source into the copy target candidates in response to receiving the copy processing request.In the above configuration, the candidate selection unit automatically selects a plurality of copy target candidates on the basis of the copy source information. This allows the user to select, from among a plurality of automatically selected copy target candidates, the copy target to which the check results should be copied, thereby increasing an efficiency of selection of the copy target and preventing a human error that may occur in a copying operation. Thus, the check result of the static analysis result can be obtained with stable quality. The check result of the copy source can be copied to a plurality of copy destinations at once in one piece, thereby increasing the check efficiency of the static analysis results.According to another aspect of the present invention, an information processing method is performed by an information processing apparatus. The information processing apparatus includes a database storing static analysis results of a source code and check results of respective static analysis results. The information processing method includes: receiving selection of a copy source and a plurality of copy destinations from the checked static analysis results; receiving a copy processing request for copying the check result of the static analysis result selected as the copy source to the copy destinations; acquiring copy source information of the copy source and copy destination information of each of the copy destinations from the database in response to reception of the copy processing request; determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; and outputting a determination result indicating whether the respective copy destinations are appropriate.According to another aspect of the present invention, an information processing program is executed by an information processing apparatus. The information processing apparatus includes a database storing static analysis results of a source code and check results of respective static analysis results. The information processing program causes a computer to perform: receiving selection of a copy source and a plurality of copy destinations from the checked static analysis results that have been obtained; receiving a copy processing request for copying the check result of the static analysis result selected as the copy source to the copy destinations; acquiring copy source information of the copy source and copy destination information of each of the copy destinations from the database in response to reception of the copy processing request; determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; and outputting a determination result indicating whether the respective copy destinations are appropriate.According to the above-described aspects of the present invention, it is possible to provide an information processing apparatus, an information processing method, and a corresponding program that can increase an efficiency of checking static analysis results and ensure a secure quality for checking static analysis results.The objects, features and advantages of the present invention will become apparent from the following detailed description with reference to the accompanying drawings. The following are shown: FIG. 1 is a diagram showing an example of a system configuration of an information processing system; FIG. 2 is a diagram showing an example of a hardware configuration of a user terminal and an information processing apparatus; FIG. 3 is a block diagram showing functions of the information processing apparatus; FIG. 4A is a diagram showing an example of static analysis result data; FIG. 4B is a diagram showing an example of check result data; FIG. 5 is a diagram showing an example of a browser display window for a user to manually select a copy source and a copy destination; FIG. 6 is a diagram showing an example of a browser display window that displays information to be copied to a copy destination and information not to be copied to a copy destination; FIG. 7A is a diagram showing a warning window that prohibits copying; FIG. 7B is a diagram showing a warning window indicating whether copying is to be permitted in a "Yes / No format"; FIG. 8 is a diagram showing an example of a browser display window for determining copying; FIG. 9 is a diagram showing an example of a browser display window that displays copy target candidates automatically selected by a candidate selection unit on the basis of a warning content of a copy source in response to the copy source being selected by a user; FIG. 10 is a flowchart showing a process executed by the information processing apparatus; and FIG. 11 is a flowchart showing a process in which the information processing apparatus displays copy target candidates and causes a user to perform confirmation.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. The embodiments described below show an example of the present invention, but the present invention is not limited to the specific configuration described below. According to an implementation of the present invention, a particular configuration may be suitably used according to an embodiment.1. System ConfigurationFIG. 1 is a diagram showing an example of a system configuration of an 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 device 110 provided by a server device, and a network 120. The user terminal 100 and the information processing device 110 are connected to each other via the network 120 so as to be able to communicate with each other. A user such as a software developer accesses the information processing device 110 via a web browser on the user terminal 100 to manage data of static analysis results. The information processing apparatus 110 receives as input an analysis result of a software source code analyzed by a static analysis tool, and manages the received data of the static analysis result. The information processing device 110 receives, as inputs, a plurality of static analysis results analyzed by a plurality of static analysis tools.2. Hardware ConfigurationFIG. 2 is a diagram showing an example of a hardware configuration of the user terminal 100 and the information processing apparatus 110 according to the present embodiment. The user terminal 100 is a user-carried terminal such as a notebook computer. The type of the user terminal 100 may be a desktop, a tablet, a smartphone, or the like. The user terminal 100 includes a controller 201, a storage unit 202, a communication unit 203, an input unit 204, and a display unit 205, and these components are electrically connected to each other via a communication bus of the information processing apparatus 100.The controller 201 processes and controls the overall operation of the user terminal 100. The controller 201 is provided by, for example, a central processing unit (CPU). The controller 201 reads out a predetermined program stored in the storage unit 202 and executes the program to execute various functions related to the user terminal 100. Thus, the information processing by the software stored in the storage unit 202 is executed by the controller 201 corresponding to a hardware circuit, thereby implementing each functional unit included in the controller 201. The controller 201 is not limited to a single controller. For example, a plurality of controllers 201 may be provided for the respective functions. According to another example, a single controller configuration may be combined with a multiple controller configuration.The storage unit 202 may be implemented by a nonvolatile storage medium such as a solid state drive (SSD) storing various programs related to the user terminal 100. The various programs concerning the user terminal 100 are executed by the controller 201. According to another example, the storage unit 202 may be implemented by a random access memory (RAM) that temporarily stores necessary information (argument of a function, array, etc.) regarding the calculation of a program. The storage unit 202 stores various programs related to the user terminal 100 and executed by the controller 201, variables, and data to be used when the controller 201 executes a process based on the corresponding program. The program causes a computer to serve as a control of the user terminal 100.The communication unit 203 may be provided by a wired communication method such as a universal serial bus (USB), IEEE 1394, Thunderbolt (registered trademark), a wired LAN network communication. The communication unit 203 may be provided by a wireless LAN network communication, a mobile communication such as 3G, LTE, 5G, Bluetooth (registered trademark), as appropriate. The communication unit 203 may use a combination of the wired communication method and the wireless communication method. The user terminal 100 can communicate various information transmitted from the outside via the communication unit 203 and the network 120.The input unit 204 may be contained in a housing of the user terminal 100, or may be attached to the user terminal 100 as an external input unit. The input unit 204 may be integrated with the output unit 205, for example, and implemented as a touch panel (touch panel). When the input unit is provided as a touch panel, the user may perform a tap operation, a swiping operation, or the like with respect to the touch panel. In place of the touch panel, a switch button, a mouse, a keyboard device with QWERTY layout, or the like may be used as the input unit. The input unit 204 receives an operation performed by the user. The input from the user is transmitted as a command signal to the controller 201 via the communication bus, and the controller 201 can execute predetermined control and calculation according to the command signal as necessary.The display unit 205 may be contained in the housing of the user terminal 100 or attached to the user terminal 100 as an external display unit. The display unit 205 displays a graphic user interface (GUI) that enables user operation with respect to a display window. The display unit 205 can be implemented according to the type of the user terminal 100 by selectively using a display device such as a cathode ray tube (CRT) display, a liquid crystal display, an organic electroluminescence (EL) display, a plasma display.The information processing apparatus 110 includes at least a controller (controller) 211, a storage unit 212, a communication unit 213, and a communication bus that electrically connects these components in the information processing apparatus 110. The controller 211, the storage unit 212, and the communication unit 213 of the information processing apparatus 110 are similar to the controller 201, the storage unit 202, and the communication unit 203 of the user terminal 100, so that detailed description thereof will be omitted.3. Function ConfigurationVarious functions of the information processing apparatus 110 are implemented when the controller 211 corresponding to a hardware circuit performs information processing by executing software programs stored in the storage unit 212.FIG. 3 is a block diagram showing 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 deselection unit 307. The information processing apparatus 110 also includes an analysis result database 308.The analysis result database 308 stores static analysis results, which are the results of analyzing the source code of the software using static analysis tools, and also stores check results of the static analysis results. The analysis result database 308 may store the source code. The analysis result database 308 stores the static analysis results for a plurality of software programs constituting a software product project.The static analysis results include data regarding alerts that warn about the source code descriptions that may result in bugs (errors), and includes data indicating a location of a syntax error in the source code and a type of the syntax error. The verification result indicates a result after a user checks a warning, and includes information such as the user who has performed the verification, a verification comment, and a verification status indicating whether the verification has been completed.There are various types of static analysis tools. The analysis result database 308 stores the static analysis results analyzed by different static analysis tools. The static analysis results may vary depending on the type of the static analysis tool. A description acquired by a static analysis tool as a warning does not need to be acquired by a static analysis tool other than a warning. This is because the specifications of static analysis tools differ from each other and different static analysis tools are good in different analysis areas. The analysis result database 308 stores the static analysis results obtained from different static analysis tools, thereby enabling highly accurate inspection.FIG. 4A shows an example of data of static analysis results stored in the analysis result database 308. Each static analysis result includes data regarding a file identification (file ID), a tool identification (tool ID), a warning identification (warning ID), a warning message, a severity, a line, a column, and file characteristics in association with a hash value.The hash value is identification information identifying the warning, and is calculated based on the data related to the warning and the code included in the line related to the warning. Using the hash value as the identification information of the alert, the same alert can be easily identified in different versions of source files. Using the hash value, it can be avoided that a warning that has already been checked is checked again, thereby significantly reducing the time required for checking the source code.The file ID in the static analysis result indicates a file ID of the source file that is a target of the static analysis. The tool ID in the static analysis result indicates an ID of the static analysis tool that has detected the warning. The warning message in the static analysis result informs the user of the warning content. The warning ID in the static analysis result identifies the warning and is associated with the warning message. In the present invention, the warning ID is also referred to as warning content.The severity in the static analysis result indicates a meaning of the warning. The severity in the static analysis result is expressed within a numerical range between 0 and 30, and the higher the number, the more severe the warning. The row and column in the static analysis result identify the location of the code associated with the alert. The line indicates a line number in which the code associated with the warning starts. The column indicates a column number of the code associated with the alert within the file. The file characteristics in the static analysis result indicate the characteristics of the target file. The file characteristics indicate, for example, an automatically generated source code, a source code purchased from another company, or a source code in a particular folder. In FIG. 4A, "folder A and below" indicates that the files are stored in the folder A or a folder (e.g., subordinate) below the folder A. Note that the above-described configuration is an example of a static analysis result. The static analysis result may include data other than the example data shown in FIG. 4A.FIG. 4B shows an example of check result data stored in the analysis result database. The check result data is associated with a hash value associated with the static analysis result. The check result data includes data on status, checker, confirmation date and time, check comment, and flag.The hash value in the check result data corresponds to the hash value in the static analysis result data and identifies the corresponding warning in the static analysis result data. The status in the check result data indicates a check status of the warning identified by the hash value. "Confirmed" indicates, for example, that the warning has been confirmed, and "Not checked" indicates that the warning has not been checked yet. The verifier in the verification result data indicates a name of a user who has verified the warning and / or changed a status of the warning. Confirmation date and time in the check result data indicate a date and time at which the content of the warning has been confirmed (i.e., checked). The check comment in the check result data indicates a comment of the verifier who has checked the warning. The flag in the check result data indicates whether or not the check result is a copy. For example, a circle in the "Flag" column indicates that the check result is a copy. Note that the above-described configuration is an example of check result data. The check result data may include data other than those shown in FIG. 4B.The input unit 301 receives selection of a copy source and a copy destination. One of the checked static analysis results is manually selected as a copy source by a user by performing a browser operation. One or more copy destinations are manually selected by the user by performing a browser operation. A plurality of copy destinations may be selected in one piece based on an element common to the copy destinations. According to one example, the copy destinations may be sorted according to the alert content, and then a plurality of copy destinations may be selected in one piece based on the alert content.FIG. 5 is a diagram showing an example of a browser display screen for the user to manually select a copy source and a copy destination. As shown in FIG. 5, the user can select the copy source by clicking on a button of the copy source. The user can select the copy destination by clicking on a check box of the copy destination.The input unit 301 receives a copy processing request for copying the check result of the corresponding static analysis result from the copy source to the copy destination. When the user clicks "copy & insert" in the browser (see FIG. 5 ), the input unit 301 receives the copy processing request. The input unit 301 receives various commands or requests when the user performs operations in the browser. The input unit 301 receives, for example, a command for copying the check result from the copy source to the copy destination or receives a deselect request for deselecting the selected copy destinations in one piece.In response to receiving the copy processing request, the acquisition unit 302 acquires, from the analysis result database 308, information on the copy source (hereinafter referred to as copy source information) and information on the copy destination (hereinafter referred to as copy destination information). The copy source information is the static analysis result that has been checked, and therefore includes the static analysis result and the corresponding check result. The copy target information may include a static analysis result not yet checked, and may not include the check result of the static analysis result.The determination unit 303 determines whether the copy target is appropriate based on the copy source information and the copy target information. Specifically, the determination unit 303 determines whether the copy target is appropriate based on the warning content of the copy source information and the warning content of the copy target information. When the warning content of the copy source information matches the warning content of the copy target information, the determination unit 303 determines that the copy target is appropriate. When the warning content of the copy source information does not match the warning content of the copy target information, the determination unit 303 determines that the copy target is unsuitable. The determination unit 303 determines whether the copy target is appropriate based on the checking status of the copy target information. When the check result is "not checked", the determination unit 303 determines that the copy target is appropriate. The copy target verification comment may also be considered to determine whether the copy target is appropriate.In the present embodiment, the determination unit 303 determines that the copy target is appropriate when the warning content of the copy source is the same as the warning content of the copy target and the copy target is "not checked". The determination made by the determination unit 303 as to whether the copy target is appropriate is not limited to this configuration. Whether the copy target is considered appropriate depends on the process and the way of thinking of the user. Thus, a criterion on the basis of which the copy target is determined to be appropriate can be adjusted. Whether the copy target is appropriate may be determined depending on the characteristics of the target file, for example. When the file characteristic indicates "automatically generated source code", "source code purchased from another company", or "source code stored in a specific folder or a folder below the specific folder", the corresponding files may be set as a "non-selectable" copy destination in one piece.The output unit 304 outputs a determination result determined by the determination unit 303. The output unit 304 displays the determination result obtained from the determination unit 303 on the display unit 205 of the user terminal 100 via the browser. The output unit 304 displays various information about the browser on the display unit 205 of the user terminal 100. For example, when the input unit 301 receives a copy processing request, the output unit 304 outputs copy target information to be copied to the copy target and non-copy information not to be copied to the copy target from the check results of the copy source information. Among the inspection results of the copy source information, for example, the copy destination information to be copied to the copy destination includes the inspection status and the inspection comment. The non-copy information that is not to be copied to the copy destination includes, for example, the hash value, the verifier that has confirmed the warning, and the confirmation date and time / s.FIG. 6 is a diagram showing an example of a browser display window that displays information to be copied to the copy destination and information not to be copied to the copy destination. As shown in FIG. 6, by displaying the copy destination information and the non-copy information using the output unit 304, the user can easily recognize which information is provided for copying to the copy destination and which information is not.When the determination unit 303 determines that the copy target is not appropriate, the output unit 304 outputs a warning window as a determination result. The warning window contains the checking status and / or the checking comment from the checking result of the copy destination information. FIGS. 7A and 7B are diagrams showing examples of browser display windows each displaying a warning window. As shown in FIG. 7A, when the warning content of the copy source does not match the warning content of the copy target, a warning window is displayed to inform the user that copying is not permitted. The alert window displays "alert content does not match", and the user can only select a stop of copying. This configuration can prevent the user from unintentionally performing the copying to the copy destination, thereby preventing a human error. As shown in FIG. 7B, when the warning content of the copy source matches the warning content of the copy destination but the status of the copy destination information is "not checked", a checking status indicating that the copy destination information has not been checked and a corresponding checking comment in the warning window are already set in the copy destination together with a message "a checking status or checking comment has been already set in the copy destination. Overwrite Copy Target?" is displayed. This allows the user to avoid erroneously performing a copy operation to the copy destination, and thus a human error can be prevented. In the case of FIG. 7B, even when a warning window is displayed, there is a possibility that copying cannot be performed. Thus, the warning window includes an area indicating whether to perform the copying operation in a "yes / no" format, similar to the determination window described below.When the determination unit 303 determines that the copy target is appropriate, the output unit 304 outputs a determination window as a determination result. The determination window causes the user to determine whether to copy the check result corresponding to the copy source to the copy destination. The determination window indicates whether to copy the check result, for example, in a "Yes / No" format. FIG. 8 is a diagram showing an example of a browser display window that displays the determination window. As shown in FIG. 8, the output unit 304 displays "Copy in one piece to the copy destination?", and displays a region for user selection of "Yes" or "No". When the determination unit 303 determines that the copy target is appropriate, the copying may be performed without output of the determination window by the output unit 304. As described later, the output unit 304 displays copy target candidates automatically selected by the candidate selection unit 305 on the browser display window.The candidate selection unit 305 automatically selects candidates of the copy destination on the basis of the copy source information of the copy source. Specifically, in response to the input unit 301 receiving a user selection of a copy source, the candidate selection unit 305 selects one or more copy target candidates based on the warning content of the selected copy source. FIG. 9 shows an example of a browser display window that displays a plurality of copy destination candidates in response to a user selecting a copy source. The candidate selection unit 305 automatically selects the copy target candidates on the basis of the warning content of the selected copy source. The user selects a copy destination from the copy destination candidate by checking, i.e., clicking on a corresponding selection box.As shown in the left table of FIG. 9, when the user selects the hash value "94b276b42e..." as copy source information, the candidate selection unit 305 automatically selects copy target candidates based on the warning content of the selected copy source. Then, as shown in the right table of FIG. 9, copy target information having the same warning contents is displayed as copy target candidates below the copy source information.If the user selects the copy source, the copy source must have been checked. The data with the check status "not checked" may be set as non-selectable by the GUI. For example, as shown in the left table of FIG. 9, the option field corresponding to the non-selectable data may be disabled.The candidate selection unit 305 may select the copy target candidates based on the copy source information of the selected copy source using a machine learning model that outputs copy target candidates based on input of copy source information. The type of the machine learning model is generated by performing learning from past performance data indicating copying operations of the inspection results from the copy source to the copy destination. The copying operations were performed by the users.The machine learning model may receive, as input, copy source information of the copy source and output copy destination information of the copy destination. The machine learning model may receive, as inputs, copy source information of the copy source and copy destination information of the copy destination, and output a probability indicating suitability as a copy destination. In the case of the former model that receives copy source information as input, the candidate selection unit 305 inputs the copy source information of the copy source into the model, acquires an attribute required for the warning of the copy target, and selects a copy target matching the attribute. In the latter model that receives copy source information and copy destination information as inputs, the candidate selection unit 305 sequentially inputs the copy source information of the copy source and the copy destination information of the copy destination, and selects the copy destination having the highest accuracy rate.The writing unit 306 writes data into the analysis result database 308. When the input unit 301 receives a command for copying the inspection results of the copy source from the copy source to the copy destination (i.e., when the user selects "yes" in FIG. 8 ), the writing unit 306 writes the inspection results of the copy source into the copy destination in one piece. When the copy source information is written in one piece in the copy destination, the writing unit 306 writes, in the check result of the copy destination, the person who has decided to perform the copying or a flag indicating that the check result written in the copy destination is copied information.When the input unit 301 receives a disconnection request for disconnection of the selected copy destination (i.e., when the user clicks "all disconnection" in FIG. 5 ), the disconnection unit 307 integrally selects the copy sources that are in a selected state and the copy destinations that are in a selected state. This eliminates the need for the user to perform selection of the copy sources and copy destinations one by one before the next operation can be performed, thereby improving operability.4. Information Processing MethodAn information processing method performed by the information processing device 110 will be described below. FIG. 10 is a flowchart showing a process executed by the information processing device 110.In S 101, the input unit 301 receives, from the user terminal 100, selection of a copy source from the checked static analysis results, receives selection of a copy destination, and receives a copy processing request for copying the check results of the static analysis results of the copy source from the copy source to the copy destination. Selection of the copy source is performed by checking an option field, and selection of the copy destination is performed by checking a selection box (see FIG. 5 ). The input unit receives the copy processing request in response to the user clicking on the "copy & insert" field (see FIG. 5 ).In S 102, in response to the input unit 301 receiving the copy processing request, the acquisition unit 302 acquires copy source information of the copy source and copy destination information of the copy destination from the analysis result database 308. As shown in FIG. 6, the output unit 304 may simultaneously display, on the display unit 205 of the user terminal 100, information to be copied to the copy destination and information not to be copied to the copy destination via a browser.In S 103, the determination unit 303 determines whether the copy target is appropriate based on the copy source information and the copy target information. The determination may be made in response to the user clicking on the "copy destination" field in a window that displays information to be copied to the copy destination and information not to be copied to the copy destination. The window may be displayed by the output unit 304 when the input unit 301 accepts the copy processing request from the user (FIG. 6 ). The determination may also be automatically performed when the acquisition unit 302 acquires the copy source information and the copy target information. As described above, the determination as to whether the copy target is appropriate is made based on the warning content of the copy source and the warning content of the copy target. The determination unit also determines whether the copy target is appropriate based on the checking status of the copy target. The determination unit also determines whether the copy target is appropriate in consideration of the check comment of the copy target. When it is determined that the copy target is appropriate, the flow proceeds to S 104. When it is determined that the copy target is not appropriate, the flow proceeds to S 105.In S 104, the output unit 304 displays a determination window (see FIG. 8 ) on the display window of the browser as a result of fitness determination. Note that, when the copy target is determined to be appropriate and a copy operation is performed unchanged, S 104 may be omitted.In S 105, the output unit 304 displays a warning window as a result of suitability determination on the display window of the browser. For example, as shown in FIG. 7B, in the warning window, a checking status indicating that the copy target information has been checked and the corresponding checking comment may be displayed.In S 106, the input unit 301 confirms whether a "copy designation" is input from the user. The copy determination is confirmed when "yes" is selected on the determination window or when "yes" is selected on the warning window. When the input unit 301 receives a command to "copy", the flow proceeds to S 107. When the input unit 301 receives a command for "not copying" (i.e., when "no" is selected on the determination window or the warning window), the flow proceeds to S 108.In S 107, the writing unit 306 writes the check results of the copy source in one piece into the copy destination. The flow then ends.In S 108, the output unit 304 displays a dialog message indicating that copying has been canceled on the display window of the browser. The flow then ends.After S 107 and S 108, the selected copy source and the selected copy destination remain on the display window of the browser as checked. The user then clicks "all deselect" in Fig. 5. When "all deselect" is clicked by the user, the input unit 301 receives the deselect request for deselecting the selected copy sources and the selected copy destinations, and the deselect unit 307 integrally selects the corresponding selected copy sources and copy destinations. After S 107 and S 108, the copy sources and copy destinations may be displayed on the display window of the browser as not being checked.Further EmbodimentsAlthough an embodiment of the present invention has been described above, the present invention is not limited to this embodiment, but may include various other embodiments and combinations within the scope of the present invention.ModificationsIn the present embodiment, the candidate selection unit 305 selects copy target candidates, and after the user determines a copy target from among the copy target candidates, the determination unit 303 determines whether the copy target is appropriate. According to another example, when the candidate selection unit 305 selects the copy target candidate, the candidate selection unit 305 may determine whether the copy target candidate is appropriate. In this case, the candidate selection unit 305 may select the copy target candidate on the basis of the copy source information of the copy source. Similar to the process performed by the determination unit 303, the copy target candidate may be selected based on the warning content of the copy source and the warning content of the copy target candidate. Similarly to the process performed by the determination unit 303, the candidate selection unit 305 may select the copy target candidate on the basis of the warning content of the copy source, the warning content of the copy target candidate, and the checking status of the copy target candidate. The candidate selection unit 305 may use the above-described machine learning model to select the copy target candidate on the basis of the copy source information of the selected copy source. The candidate selection unit 305 may select the copy target instead of the copy target candidate.In the above-described embodiment, a user first selects a copy source and a plurality of copy destinations, and then each of the copy destinations is checked as to whether it is suitable as a copy destination. According to another example, the information processing device 110 may first select copy target candidates using the candidate selection unit 305, and present the selected copy target candidates to the user. Then, the user can select a copy destination from the presented copy destination candidates. That is, the information processing apparatus 110 may have a function of proposing a copy destination to the user.FIG. 11 is a flowchart showing the flow of operations performed by the information processing device 110 to present copy target candidates to the user for confirmation.In S 111, the input unit 301 receives selection of a copy source from the user terminal 100.In S 112, the candidate selection unit 305 selects copy target candidates on the basis of the copy source information of the copy source. The candidate selection unit 305 determines the copy target candidates based on the copy source information of the selected copy source using, for example, a machine learning model generated in advance. This type of machine learning model is generated by learning from past performance data indicating copying operations of inspection results from the copy source to the copy destination. The copying operations are performed by the user.Then, the information processing device 110 transmits the copy target candidate data to the user terminal 100. The user terminal 100 displays the copy destination candidate data on the user terminal.In S 113, the input unit 301 receives selection of a copy destination from the user terminal 100. That is, S113 is a step in which the user selects a copy destination regarded as safe from the warnings displayed as copy destination candidates.In S 114, the input unit 301 receives the copy processing request.In S 115, the writing unit 306 writes the check results of the copy source in one piece into the copy destination. The flow then ends.With this configuration, the information processing device 110 presents the copy target corresponding to the warning of the copy source, and thus the display information that the user should confirm can be reduced, and the task of searching for the copy target can be facilitated.When the user manually selects a copy target and the selected copy target is not suitable, the output unit 304 may immediately display a warning window indicating that the selected copy target is not suitable. In this case, the determination as to whether the copy target is appropriate may be performed based on the warning content of the copy source and the warning content of the copy target similarly to the process performed by the determination unit 303. Alternatively, the determination may be made based on the warning content of the copy source, the warning content of the copy target, and the checking status of the copy target. The determination may also be performed using the machine learning model described above.The controller and methods thereof described herein may be implemented by a special purpose computer including a processor programmed to perform one or more functions performed by computer programs. Alternatively, the controller and its method according to the present invention may be implemented by an associated hardware logic circuit. Alternatively, the controller and its method according to the present invention may be implemented by one or more associated computers implemented by a combination of a processor executing a computer program and one or more hardware logic circuits. The computer program may be stored in a computer readable non-transitory tangible storage medium as instructions to be executed by a computer.In addition, the process flow in the above embodiments is described as an example. Unnecessary steps may be omitted from the flow, new steps may be appropriately added, or the execution order may be appropriately changed within the scope of the present invention.References included in the specificationThis list of documents cited by the applicant has been produced in an automated manner and is only included for the better information of the reader. The list is not part of the German patent application or utility model application. The DPMA does not take any adhesion for any faults or omissions.Patent Literature citedJP 2011-81 496 A [0003, 0004]

Claims

An information processing apparatus (110) comprising: a database (308) storing a plurality of static analysis results of a source code and a plurality of check results of respective static analysis results; an input unit (301) receiving a selection of a copy source and a plurality of copy destinations from the checked static analysis results, and receiving a copy processing request for copying the check result of the static analysis result selected as the copy source to the copy destinations; an acquisition unit (302) acquiring, from the database, copy source information of the copy source and copy destination information of each of the copy destinations in response to receiving the copy processing request; a determination unit (303) determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; and an output unit (304) that outputs a determination result determined by the determination unit.The information processing apparatus according to claim 1, further comprising: a candidate selection unit (305) that automatically selects a plurality of copy target candidates as candidates of the copy targets.The information processing apparatus according to claim 2, wherein the candidate selection unit selects the copy target candidates on the basis of a warning content of the static analysis result selected as the copy source.The information processing apparatus according to claim 2, wherein the candidate selection unit selects the copy target candidates using a machine learning model on the basis of the copy source information of the copy source, and the machine learning model outputs the copy target candidates on the basis of input of the copy source information of the copy source.The information processing apparatus according to any one of claims 1 to 4, wherein the output unit outputs information to be copied to the copy destinations and information not to be copied to the copy destinations from the check result of the copy source information.The information processing apparatus according to claim 5, wherein the information to be copied to the copy destinations includes a checking status and a checking comment from the checking result of the copy source information.The information processing apparatus according to any one of claims 1 to 6, wherein the determination unit determines whether the respective copy destinations are appropriate based on a warning content of the source code included in the copy source information and a warning content of the source code included in the copy destination information.The information processing apparatus according to claim 7, wherein the determination unit determines whether the respective copy destinations are appropriate using a check status of a warning as the copy destination information.The information processing apparatus according to any one of claims 1 to 8, wherein when the determination unit determines that one of the copy targets is not appropriate, the output unit outputs a warning window as the determination result.The information processing apparatus according to claim 9, wherein the warning window includes a checking status and / or a checking comment from the checking result of the copy target information.The information processing apparatus according to any one of claims 1 to 10, wherein the database stores the static analysis results in units of software programs constituting a product project.The information processing apparatus according to any one of claims 1 to 11, wherein each of the static analysis results and the verification result of each of the static analysis results are associated with a hash value based on the corresponding static analysis result.The information processing apparatus according to any one of claims 1 to 12, further comprising: a writing unit (306) that writes data into the database, wherein when the determining unit determines that the copy destinations are suitable, the output unit outputs a determining window as the determination result, the determining window guides a user to determine whether to copy the check result of the copy source from the copy source to the copy destinations, and when the input unit receives a command to copy the check result of the copy source from the copy source to the copy destinations, the writing unit writes the check result of the copy source to the copy destinations.The information processing apparatus according to claim 13, wherein when the writing unit writes the checking result of the copy source, the writing unit writes (i) a flag indicating that the checking result of the respective copy destinations is copied information, and / or (ii) a verifier that has made a copy determination into the checking result of the respective copy destinations.The information processing apparatus according to any one of claims 1 to 14, further comprising: a deselection unit (307) that deselects the copy source in a selected state and the copy targets in the selected state in response to receiving a deselection request for deselecting the copy targets in a selected state.An information processing apparatus comprising: a database (308) storing a plurality of static analysis results of a source code and a plurality of check results of respective static analysis results; an input unit (301) receiving a selection of a copy source from the checked static analysis results and receiving a copy processing request for copying the check result of the static analysis result selected as the copy source; a candidate selection unit (305) automatically selecting a plurality of copy target candidates based on copy source information of the selected copy source in response to receiving the selection of the copy source; and a writing unit (306) writing the check result of the copy source into the copy target candidates in response to receiving the copy processing request.An information processing method performed by an information processing apparatus including a database storing a plurality of static analysis results of a source code and a plurality of verification results of respective static analysis results, the information processing method comprising: receiving a selection of a copy source and a plurality of copy destinations from the verified static analysis results; receiving a copy processing request for copying the verification result of the static analysis result selected as the copy source to the copy destinations; acquiring copy source information of the copy source and copy destination information of the respective copy destinations from the database in response to receiving the copy processing request; determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; outputting a determination result indicating whether the respective copy targets are appropriate.An information processing program executed by an information processing apparatus including a database storing a plurality of static analysis results of a source code and a plurality of check results of respective static analysis results, the information processing program causing a computer to perform: receiving a selection of a copy source and a plurality of copy destinations from the checked static analysis results; receiving an information processing request for copying the check result of the static analysis result selected as the copy source to the copy destinations; acquiring copy source information of the copy source and copy destination information of the respective copy destinations from the database in response to receiving the copy processing request; determining whether the respective copy destinations are appropriate based on the copy source information and the copy destination information; outputting a determination result indicating whether the respective copy targets are appropriate.

Citation Information

Patent Citations

  • Result product review support device

    JP2011081496A