System and method for outputting candidate correction locations.

The modification candidate output system efficiently identifies and detects software modification points using a database and LLM, addressing the burden of compliance with legal regulations in large-scale software updates.

JP2026095234APending Publication Date: 2026-06-10HITACHI LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
HITACHI LTD
Filing Date
2024-11-29
Publication Date
2026-06-10

Smart Images

  • Figure 2026095234000001_ABST
    Figure 2026095234000001_ABST
Patent Text Reader

Abstract

This aims to improve the efficiency of analyzing the scope of impact and detecting the specific changes required for software updates. [Solution] The correction candidate output system 100 has a correction candidate output unit 110 that, in accordance with the correction content of a predetermined software entered by the operator, obtains the processing content of the software related to the predetermined software from a database 1024 that holds information on the processing content of the software, identifies candidate correction locations in the related software that correspond to the processing content based on the relationship between the correction content and the processing content, and outputs that information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the technology of a candidate output system for correction locations and a method for outputting candidate correction locations, and specifically relates to a technology that enables the analysis of the influence range of an update target associated with software correction and the improvement of the efficiency of detecting correction locations.

Background Art

[0002] Software that is growing in scale and complexity year by year is likely to be corrected not only during its development but also after its release due to various enhancements and bug fixes. Especially in recent years, the establishment and amendment of various laws and regulations, the improvement of software functions, etc. are also frequent. When making the above corrections, it is necessary to repeatedly ensure consistency with regulations and the like indicated by various information including relevant laws and regulations.

[0003] In such operations, a vast amount of business knowledge is required from the persons in charge, and a large number of personnel and labor are also required for the analysis of the influence range exerted by the correction. Therefore, as a conventional technology related to the above problems, what is shown in Patent Document 1 has been proposed. In this Patent Document 1, a technology for appropriately identifying correction locations according to requests in software development in which a developer adds a written part to an unimplemented part of automatically generated source code is disclosed.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] Even if the scope of impact of a modification, i.e., the software to be updated, can be identified using conventional technologies, the task of identifying individual modification points (e.g., source code or functions) related to legal regulations, including dependent software, remains important and burdensome. In particular, when dealing with in-vehicle software installed in automotive ECUs (Electronic Control Units), a considerable amount of personnel resources and time are required to identify the software to be updated and detect the modification points in order to comply with numerous UN regulations. This situation has been a significant burden for software development and modification companies. Furthermore, this burden is expected to increase even more in recent years as software has become larger in scale, i.e., source code has been increasing.

[0006] Therefore, the present invention has been made in view of the above problems, and aims to provide a technology that enables more efficient analysis of the scope of impact on update targets and detection of modification locations associated with software modifications. [Means for solving the problem]

[0007] The present invention includes several means for solving the above problems, but an example is as follows. To solve the above problems, a modification candidate output system according to one aspect of the present invention has a modification candidate output unit that, in accordance with the modification content of a predetermined software entered by an operator, obtains the processing content of software related to the predetermined software from a database that holds information on the processing content of the software, identifies a candidate modification location corresponding to the processing content in the related software based on the relationship between the modification content and the processing content, and outputs the candidate information. [Effects of the Invention]

[0008] According to the present invention, it becomes possible to improve the efficiency of analyzing the scope of impact on the update target and detecting the modified parts when software is modified. [Brief explanation of the drawing]

[0009] [Figure 1] This is a network configuration diagram including the modification candidate output system in the embodiment. [Figure 2] This figure shows an example of the hardware configuration of the modification candidate output system in the embodiment. [Figure 3] This figure shows an example of the functional configuration of the modification candidate output system in the embodiment. [Figure 4] This figure shows an example of the configuration of the business knowledge database in the embodiment. [Figure 5] This figure shows an example of a source code file in an embodiment. [Figure 6] This figure shows an example of configuration information in an embodiment. [Figure 7] This figure shows an example of the configuration of the processing content database in the embodiment. [Figure 8] This figure shows an example of a flowchart for the method of outputting candidate correction points in the embodiment. [Figure 9] This figure shows an example of a flowchart for the method of outputting candidate correction points in the embodiment. [Figure 10] This figure shows an example of a flowchart for the method of outputting candidate correction points in the embodiment. [Figure 11] This figure shows an example of the estimation results in the embodiment. [Figure 12] This figure shows an example of the input / output configuration in the UI in the embodiment. [Figure 13] This figure shows an example of a flowchart for the method of outputting candidate correction points in the embodiment. [Figure 14] This figure shows an example of a flowchart for the method of outputting candidate correction points in the embodiment. [Modes for carrying out the invention]

[0010] In the following explanation, "CPU" refers to an arithmetic unit and may be one or more processor devices. At least one processor device is typically a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device may be a broad processor device such as a hardware circuit that performs some or all of the processing (e.g., an FPGA (Field-Programmable Gate Array), a CPLD (Complex Programmable Logic Device), or an ASIC (Application Specific Integrated Circuit)).

[0011] Furthermore, in the following explanation, "auxiliary storage device" may refer to one or more persistent storage devices, which are examples of one or more storage devices. Persistent storage devices are typically non-volatile storage devices, and specifically may be, for example, HDDs (Hard Disk Drives), SSDs (Solid State Drives), or NVMe (Non-Volatile Memory Express) drives.

[0012] Furthermore, in the following explanation, "main memory" refers to one or more memory devices, which are an example of one or more storage devices. At least one memory device in main memory may be a volatile memory device or a non-volatile memory device.

[0013] Also, in the following description, a "communication device" may be one or more communication interface devices. The one or more communication interface devices may be one or more homogeneous communication interface devices (e.g., one or more Network Interface Cards (NICs)), or two or more heterogeneous communication interface devices (e.g., a NIC and a Host Bus Adapter (HBA)).

[0014] Also, in the following description, expressions such as "xxx table" or "xxx database" may be used to describe information from which an output can be obtained for an input. However, such information may be data of any structure (e.g., structured data or unstructured data), or a learning model represented by a neural network, genetic algorithm, or random forest that generates an output for an input. Therefore, "xxx table" or "xxx database" can be referred to as "xxx information". Also, in the following description, the configuration of each database or table is an example, and one database or table may be divided into two or more databases or tables, or all or part of two or more databases or tables may be one database or table.

[0015] Also, in the following description, the "program" may be used as the subject to describe a process. However, since the program is executed by the CPU to perform a defined process while appropriately using a storage device and / or an interface device, etc., the subject of the process may be the CPU (or a device such as a controller having its processor). A computer program may be installed from a program source into a device such as a computer. The program source may be, for example, a program distribution server or a computer-readable (e.g., non-transitory) recording medium. Also, in the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.

[0016] Furthermore, in the following explanation, when describing similar elements without distinction, the common part of the reference code may be used, and when describing similar elements with distinction, the reference code or element identifier may be used. <Regarding the network configuration, including the system for outputting suggested correction points>

[0017] Figure 1 shows an example of a network configuration including the modification candidate output system 100 (information processing device) in the embodiment.

[0018] The modification location candidate output system 100 of this embodiment is a system that improves the efficiency of analyzing the scope of impact on update targets and detecting modification locations associated with software modifications. This modification location candidate output system 100 is connected to the repository 10, user terminal 20, and external system 30 via an appropriate network N, enabling it to cooperate as needed. Therefore, the configuration may include at least one of the modification location candidate output system 100, repository 10, user terminal 20, and external system 30.

[0019] Of the network configuration described above, the correction location candidate output system 100 is an information processing system that is the main entity executing the correction location candidate output method of this embodiment. This correction location candidate output system 100 is operated by, for example, a software development vendor or an SIer that provides business support to such a vendor, and more specifically, it is a server device that provides services to the user terminal 20 (of course, this is merely one example of an implementation).

[0020] Furthermore, repository 10 is a DB server that stores various information about each software that may be processed by the modification candidate output system 100, such as source code files 11 (see Figure 2) and configuration information 12 (see Figure 3). Repository 10 responds with the source code files 11 and configuration information 12 in response to requests from the modification candidate output system 100 or the user terminal 20.

[0021] Furthermore, the user terminal 20 accesses the correction location candidate output system 100 via the network N and displays the execution results of the correction location candidate output method of this embodiment on the screen using a predetermined viewer such as a web browser. This user terminal 20 is a client used by users such as development department personnel at the above-mentioned vendor or customer support personnel at an SIer. Specifically, the user terminal 20 consists of, for example, a PC (Personal Computer), a tablet terminal, or a smartphone.

[0022] Furthermore, the external system 30 is, for example, a system similar to the modification candidate output system 100 in this embodiment, and is operated by an organization different from the vendor mentioned above. This external system 30 receives requests from the modification candidate output system 100 or the user terminal 20, or responds with various information at regular intervals. The various information responded with here may include, for example, information on the processing content of the software that is processed by the modification candidate output system 100. <Hardware configuration of the system for outputting suggested correction points>

[0023] Next, we will describe the hardware configuration of the above-mentioned correction candidate output system 100.

[0024] Figure 4 shows an example of the hardware configuration of the modification candidate output system 100 in this embodiment.

[0025] The modification candidate output system 100 in this embodiment consists of a CPU 101, an auxiliary storage device 102, a main memory device 103, and a communication device 104.

[0026] Of these, the CPU 101 is a processor that calls and executes the program 1021 held in the auxiliary storage device 102 in the main memory device 103, performs overall control of the device itself, and performs various judgment, calculation, and control processing. In other words, the functional units corresponding to the correction location candidate output method implemented in the correction location candidate output system 100 (see Figure 5; correction location candidate output unit 110, summary unit 111, and external linkage unit 112) are implemented by the CPU 101 executing the program 1021. Note that some of the processing performed by the CPU 101 when executing the program 1021 may be performed by other arithmetic units (for example, hardware such as ASICs and FPGAs). Further details of the above functional units (correction location candidate output unit 110, summary unit 111, and external linkage unit 112) will be described later.

[0027] Furthermore, the auxiliary storage device 102 is a storage means composed of non-volatile storage devices such as a hard disk drive or an embedded multimedia card. In addition to the program 1021, the auxiliary storage device 102 also holds an LLM (Large Language Model) 1022 as data. This LLM 1022 primarily implements the functions of the summarization unit 111, generating and responding with a summary of the given input information. The LLM 1022 also implements some functions of the correction candidate output unit 110. These functions include generating text for the proposed corrections (which may be included in the output results of Figures 11 and 12), but this function is not essential. The auxiliary storage device 102 also holds the business knowledge DB 1023 and the processing content DB 1024. Details of the business knowledge DB 1023 and the processing content DB 1024 will be described later.

[0028] The program 1021 executed by the CPU 101 may be provided to the correction candidate output system 100 via removable media (such as a CD-ROM or flash memory) or a network N, and stored in a non-volatile auxiliary storage device 102, which is a non-temporary storage medium.

[0029] Furthermore, the main memory 103 is a storage means composed of a volatile storage device such as RAM (Random Access Memory). The main memory 103 may also be a non-volatile storage element called ROM (Read Only Memory). ROM stores immutable programs (for example, BIOS).

[0030] Furthermore, the communication device 104 is a device that connects to the network N and communicates with external devices such as the repository 10, the user terminal 20, and the external system 30.

[0031] The correction candidate output system 100 is a computer system configured on a single physical computer, or on multiple logically or physically configured computers, and may operate on a virtual computer built on multiple physical computing resources. The correction candidate output system 100 may be configured on the cloud, or on-premises on a specific computer (hardware).

[0032] Furthermore, the network N connecting the modification candidate output system 100, the repository 10, the user terminal 20, and the external system 30 may be the internet, a LAN (Local Area Network), a WAN (Wide Area Network), or a mobile phone network, but is not limited to these. As an example of a mobile phone network, a general public network, whether wired or wireless, such as the fifth-generation mobile communication system, or so-called 5G (5th Generation), which enables "massive simultaneous connections" and "ultra-low latency," may be used. Of course, by taking advantage of the features of newer mobile phone systems beyond 5G, secondary effects such as faster processing in the modification candidate output method according to the present invention and higher resolution when drawing output information can also be expected.

[0033] Furthermore, data exchange between the correction candidate output system 100, the repository 10, the user terminal 20, and the external system 30 may be carried out, for example, according to an API (Application Programming Interface) protocol. In that case, it is assumed that each device has already implemented the functions and configurations necessary to perform API request and response processing. <About the Functional Section>

[0034] Next, the functional components of the correction candidate output system 100 will be explained based on Figure 5.

[0035] Figure 5 shows an example of the functional configuration of the modification candidate output system 100 in this embodiment.

[0036] Of these, the modification candidate output unit 110 acquires the modification details of a predetermined software entered by the user (e.g., a worker in charge of software development) via the user terminal 20. These modification details include, for example, matters that the user is focusing on when making modifications, such as the provisions of laws and regulations that the software must comply with and their planned amendments, the sensors and mechanisms controlled by the software, or information regarding functions that are planned to be added or changed.

[0037] Furthermore, the correction candidate output unit 110 retrieves the processing content of the software related to the software from the processing content DB 1024 according to the correction content obtained above. Also, based on the relationship between the correction content and the processing content, the correction candidate output unit 110 identifies candidate correction locations in the related software that correspond to the processing content and outputs that information.

[0038] The correction candidate output unit 110 will determine the similarity between the vector information (first vector information) of the correction content (text indicating the correction) and the vector information (second vector information) of the processing content (text indicating the processing). The technique of generating vectors for multiple texts and determining the similarity of the vectors between texts to identify texts with similar meanings is a known function of LLM1022 (language model). Therefore, the correction candidate output unit 110 can perform the similarity determination between the correction content and the processing content by appropriately calling and using LLM1022. Vectorization is just one example of a method for determining similarity, and it is not mandatory. Also, the use of LLM is not mandatory for similarity determination. For example, RAG (Retrieval-Augmented Generation) calculates the similarity of vectorized data, but it does not require the use of LLM.

[0039] Furthermore, the summarization unit 111 generates information about the processing content of the software, i.e., a summary, by inputting a prompt for summary generation request containing information constituting the software to the LLM 1022 (language model). This function of generating a summary of input information is a common and known function of the LLM 1022 and can be adopted as appropriate. In addition to being held and used by the summarization unit 111, the LLM 1022 may also be used by being called as appropriate from an external service via the network N. The summarization unit 111 stores the information about the processing content thus generated in the "processing content" column of the processing content DB 1024. The information constituting the software may include, for example, at least one of the following: the source code file 11 of the software, the configuration information 12, the comments in the file describing the software, and the business knowledge stored in the business knowledge DB 1023.

[0040] Furthermore, if the processing details of the software are not stored in the processing details DB 1024, the external linkage unit 112 outputs a request to share the processing details of the software to the software developer, that is, to the developer's user terminal 20 or to the external system 30 of the corresponding business operator. For this reason, the external linkage unit 112 has in advance the addresses of the external systems 30 of the external vendor developing the software, and the addresses of the people in charge of development at that vendor, and can use them as needed. <Database configuration, etc.>

[0041] Next, we will specifically explain the various types of data that the correction candidate output system 100 holds in the auxiliary storage device 102.

[0042] Figure 6 shows the configuration of the business knowledge DB 1023 in this embodiment.

[0043] Business Knowledge DB1023 is business data collected from business systems and document management systems operated by businesses such as software vendors. This includes data such as the system under development, the software that comprises it, the laws and regulations that should be considered when developing, operating, or using the system, and the departments responsible for the development and operation of the software.

[0044] In the example of business knowledge DB1023 shown in Figure 6, each business knowledge record is a collection of records where a unique ID is associated with various values ​​such as the model name, system name, function name, relevant legal name, software component name, source code file name and function name, part name, dependencies, and corresponding department name. Of these, the "function name" is the name of the function implemented in the system indicated by the "system name". The "relevant legal name" is the name of the legal regulation that must be complied with for the function implemented in the system indicated by the "system name". The "software component name" is the name of the software component that makes up the system indicated by the "system name".

[0045] Furthermore, "Source code file name and function name" is a value that indicates the source code file 11 that constitutes the software component and the functions contained in that source code file 11. Also, "Component name" is the name of the component that constitutes the system indicated by the "System name" above. Furthermore, "Dependency" indicates the dependencies between components and software components, for example. This dependency indicates relationships such as one component or software component using arguments from other components or software components. Finally, "Corresponding department name" is the name of the department that develops and operates the "software component" that constitutes the system indicated by the "System name".

[0046] Furthermore, the "dependency" information in the above-mentioned business knowledge DB1023 was detected through a series of step-by-step processes, including (1) to (3) below, as described in the applicant's application (Japanese Patent Application No. 2024-139574). (1) When updating software in response to specific legal amendments, the system detects information about legal amendments from publicly available information. (2) Detect systems that violate the regulations and extract the relevant software components from those systems. (3) Identify the software components that will be updated and the software components that have a calling relationship with them among the extracted software components.

[0047] Therefore, in the case of the business knowledge DB1023 shown in Figure 6, the names of other software components that are dependent on the software component indicated by "Software Component Name" are set as the value in the "Dependency" column.

[0048] The following situations (A) to (C) are prerequisites for such processing. (A) When updating software, information about each dependent software component, as well as information about laws, hardware, and systems that are prerequisites for those dependencies, is recorded and stored in a distributed manner across the systems and files of multiple businesses, such as vendors and suppliers that are OEM partners of the product manufacturer. (B) There is no common data model for the information recorded and stored on such systems or files. (C) Furthermore, much of the data is unstructured.

[0049] Therefore, the correction candidate output system 100, or a predetermined system that works in cooperation with the correction candidate output system 100, structures the distributed and unstructured data as described above and constructs the business knowledge DB 1023. For example, suppose design information is created in a specific file format, and that file includes figures in addition to text. In that case, the system provides the data of the file to LLM 1022 and prompts it to convert the information indicated by the text and figures contained in the file into text. The system obtains the above text information from LLM 1022 and extracts titles, categories, dates and times, features, keywords, etc. from the text information to construct a structured business knowledge DB 1023. The above is an overview of the generation method of the business knowledge DB 1023, but a more detailed explanation will be omitted (as it is disclosed in the applicant's application: Japanese Patent Application No. 2024-139574).

[0050] Next, the processing details DB1024 will be explained based on Figure 7. The processing details DB1024 is a database that defines, for each source code file in the software, the functions contained in that source code file and the processing details of those functions. Of these, the processing details information is generated by the summarization unit 111 using LLM1022. The process for generating this processing details information in the summarization unit 111 has already been described. <Correction Point Candidate Output Flow: Processing Details Extraction>

[0051] Next, the processing flow in the method for outputting candidate correction points in this embodiment will be described.

[0052] Figure 8 is a diagram showing an example of the flow chart for outputting candidate correction points in this embodiment.

[0053] In this flow, the summarization unit 111 of the modification candidate output system 100 accesses the repository 10 and retrieves each source code file 11 (source code group) held by the repository 10 (S1). Note that the items retrieved here may include not only the source code files 11 but also the configuration information 12.

[0054] Next, the summarization unit 111 of the correction candidate output system 100 performs the detection of processing content in the source code file 11 (and configuration information 12) obtained in S1 (S2). This process is repeatedly executed until there are no more unprocessed source code files 11 and functions (S3:N, S5:N) based on the results of determining whether processing is incomplete for each source code file 11 and the functions contained in the source code file 11 (S3, S5).

[0055] Furthermore, if the above determination indicates that an unprocessed source code file 11 exists (S3:Y) and an unprocessed function exists (S5:Y), the summarization unit 111 of the correction location candidate output system 100 detects the beginning of the description of the unprocessed function in the source code file 11 (the start of the function description) (S6). This detection is based on the fact that in source code files 11, comments such as explanatory text for the function (unrelated to its function) are often written near the beginning of the description of the function.

[0056] Furthermore, the summarization unit 111 of the correction candidate output system 100 acquires comments near the beginning detected in S6 (S7). In the example of the source code file 11 shown in Figure 2, the text "Processing using camera and radar" enclosed in "#" will be acquired as a comment.

[0057] Next, the summarization unit 111 of the correction candidate output system 100 obtains information about the source code file 11 that is currently being processed from the business knowledge DB 1023 (S8). Since the function contained in this source code file 11 corresponds to "processing using cameras and radar", the summarization unit 111, using the example of the business knowledge DB 1023 shown in Figure 6, identifies the matches and similarities based on the vectors of the values ​​of items such as "system name", "function name", and "software component name" and the keywords such as "camera" and "radar" contained in the above comment, using the LLM 1022. As a result, the summarization unit 111 identifies a record that contains a value matching the above keyword in at least one of the items, and obtains the values ​​of each item contained in that record.

[0058] Furthermore, the summarization unit 111 of the correction candidate output system 100 inputs the two pieces of information obtained in S7 and S8 (comments and information derived from the business knowledge DB 1023) into the LLM 1022 and generates text of the processing content, which is a summary of those two pieces of information (S9).

[0059] Next, the summarization unit 111 of the correction candidate output system 100 inputs the text of the processing content generated in S9 into the LLM 1022 and vectorizes it (S10).

[0060] Furthermore, the summarization unit 111 of the correction candidate output system 100 outputs the text vector value of the processing content, which is the processing result of S10, to the "Processing Content" column of the processing content DB 1024 (S11), and terminates this flow. <Output flow for potential correction locations: Identifying potential correction locations>

[0061] Next, the process of identifying candidate correction locations will be explained based on the flow chart in Figure 9. In this case, suppose a user operates, for example, the user terminal 20 and inputs the correction details, including the name of the system to be corrected and the number of the legal regulation that triggers the correction. At this time, the user terminal 20 acquires the correction details information, which is the content of the input, and notifies the correction location candidate output system 100. Therefore, the correction candidate output unit 110 of the correction location candidate output system 100 acquires the above correction details information from the user terminal 20 (S15).

[0062] Furthermore, the modification candidate output unit 110 of the modification candidate output system 100 obtains the name of the relevant software based on the regulation number or system name indicated by the information of the modification content (S16). In this embodiment, this process of obtaining the name of the relevant software is performed, for example, by referring to the value in the "dependency" column of the business knowledge DB 1023 and identifying software that is dependent on each other. However, the value in the "dependency" column is based on the technology of the present applicant (Japanese Patent Application No. 2024-139574) as described above, and is detected through a series of stepwise processes including (1) to (3) below. (1) When updating software in response to specific legal amendments, the system detects information about legal amendments from publicly available information. (2) Detect systems that violate the regulations and extract the relevant software components from those systems. (3) Identify the software components that will be updated and the software components that have a calling relationship with them among the extracted software components.

[0063] Therefore, instead of performing a search based on the value in the "Dependency" column of the business knowledge DB1023, detection using the applicant's technology described above may be performed each time.

[0064] Furthermore, the correction candidate output unit 110 of the correction candidate output system 100 performs correction candidate estimation processing (S17). Details of this correction candidate estimation processing will be described later based on Figure 10.

[0065] Next, the correction candidate output unit 110 of the correction candidate output system 100 notifies and displays the estimation result from S17 (see Figure 10) to, for example, the user terminal 20 (S18), and terminates this flow.

[0066] Here, the process of S17 in the above flow, namely the process of estimating candidate correction locations, will be explained with reference to Figure 10. In this case, the correction candidate output unit 110 of the correction location candidate output system 100 obtains the name of the related software and the correction content entered by the user, which have been identified based on the dependency information (S20). The correction candidate output unit 110 of the correction location candidate output system 100 also assigns the correction content obtained in S20 to the LLM 1022 and vectorizes it (S21).

[0067] Next, the correction candidate output unit 110 of the correction candidate output system 100 obtains at least the value in the "processing content" column from the processing content DB 1024 as data for the related software (S22). This process is repeated until all target software is processed.

[0068] Furthermore, the correction candidate output unit 110 of the correction candidate output system 100 determines whether there is information about the processing content related to the above-mentioned related software in the processing content DB 1024 (S23). If, as a result of this determination, information about the processing content exists (S23:Y), the correction candidate output unit 110 of the correction candidate output system 100 obtains the information about the processing content of the above-mentioned related software from the processing content DB 1024 (S24).

[0069] On the other hand, if, as a result of the above determination, no information exists regarding the corresponding processing content (S23:N), the external linkage unit 112 of the correction location candidate output system 100 executes a linkage process with the external system 30 (S25). Details of this linkage process will be described later based on Figures 13 and 14.

[0070] Next, the correction candidate output unit 110 of the correction candidate output system 100 calculates the similarity between the vector data of the processing content of each software and the vector data of the correction content (S26). Then, based on the similarity calculated in S26, the correction candidate output unit 110 of the correction candidate output system 100 sorts the source code information in descending order of similarity (S27), and responds to the user terminal 20, for example, to terminate this flow.

[0071] As shown in Figure 11, an example of the results obtained in S27 is a collection of records containing values ​​such as software name, source code name, function name, estimated correction candidate value, and proposed correction content. Each record also includes the name (source code name) and function name of each source code file 11 of the related software, and is sorted by the magnitude of the estimated correction candidate value (similarity value).

[0072] Furthermore, the estimation results shown in Figure 11 include a "draft revision." This "draft revision" is, for example, text generated by LLM1022. Therefore, the revision candidate output unit 110 inputs a prompt (text requesting the generation of a draft revision) to LLM1022 that includes, for example, the software name, source code name, function name, and revision content, and obtains a response of the draft revision. In this case, it is preferable that LLM1022 has achieved an appropriate accuracy in generating draft revisions through appropriate additional learning such as fine-tuning and RAG (Retrieval-Augmented Generation).

[0073] Furthermore, Figure 12 shows an example of the UI (User Interface) displayed on the user terminal 20 in conjunction with the series of processes described so far. In this case, the display screen G01 of the user terminal 20 is configured with a timeline in which the outputs of both the user and the correction candidate output system 100 are linked together, for example, in a chat format. In the example in Figure 12, the text G11 requesting the output of correction candidate items, including the correction content, appears at the beginning of the timeline. Meanwhile, the response content G21 from the correction candidate output system 100, which has performed various processes (corresponding to each flow in Figures 8-10) in response to this, is posted on the timeline. Of course, this UI form is just one example, and various other forms can be adopted, such as the user selecting the correction content from an existing menu using pull-downs or radio buttons, rather than the user freely inputting the correction content. <Output flow for suggested correction points: External integration>

[0074] Next, the processing in the external linkage unit 112 will be explained based on the flows shown in Figures 13 and 14. This flow corresponds to the "external linkage function (transmission)" (S25) in the flow of Figure 10. In other words, this flow is executed when the processing content information for the related software could not be identified in the processing content DB 1024.

[0075] In this case, the external linkage unit 112 of the correction location candidate output system 100 obtains the creator information of the related software from the processing content DB 1024 (S30). Although the processing content DB 1024 shown in Figure 7 does not have an item for such creator information, it is assumed that it will be included as an item separately. Furthermore, this creator information will include, for example, the creator's name, affiliation, and contact information (email address), as well as the network address of the correction location candidate output system 100 (external system 30) of the affiliation company (for example, the URL of the Web API).

[0076] Furthermore, the external linkage unit 112 of the correction location candidate output system 100 notifies the network address of the external system 30 (another person's correction location candidate output system 100), which is indicated by the creator information obtained in S30, of a request for information sharing regarding the processing content (S31).

[0077] Next, the external linkage unit 112 of the correction location candidate output system 100 obtains information on the processing content from the external system 30 (correction location candidate output system 100) that received the request (S32), and uses this information as appropriate for the processes S26 and S27 in the flow of Figure 10, and the processes S17 and S18 in the flow of Figure 9.

[0078] Unlike the case described above, where information on missing processing details is requested from the external system 30, there may also be cases where the external system 30 requests the sharing of processing details with a similar intention. In that case, the processing corresponding to the flow in Figure 14 is executed. In this flow, the external linkage unit 112 of the correction location candidate output system 100 receives a request from the external system 30 (another party's correction location candidate output system 100) to share information on processing details regarding a predetermined software (S35).

[0079] Furthermore, the external linkage unit 112 of the correction location candidate output system 100 obtains information about the processing content related to the software from the processing content DB 1024 (S36). Subsequently, the external linkage unit 112 of the correction location candidate output system 100 responds to the requesting external system 30 (another party's correction location candidate output system 100) with the processing content information obtained in S36 (S37), and this flow ends.

[0080] As described above, the modification candidate output system in this embodiment makes it possible to improve the efficiency of analyzing the scope of impact on the update target and detecting modification locations associated with software modifications.

[0081] Although this embodiment describes software used in a vehicle, the present invention is applicable to fields other than vehicles and can be used for the development of various types of software.

[0082] It should be noted that the present invention is not limited to the embodiments described above, but includes various modifications and equivalent configurations within the spirit of the attached claims. For example, the embodiments described above are described in detail for the purpose of clearly illustrating the present invention, and the present invention is not necessarily limited to having all the described configurations. Furthermore, some of the configurations of one embodiment may be replaced with those of another embodiment. Furthermore, configurations of other embodiments may be added to the configuration of one embodiment. Furthermore, some of the configurations of each embodiment may be added, deleted, or replaced with those of other embodiments.

[0083] Furthermore, each of the aforementioned configurations, functions, processing units, and processing means may be implemented in hardware, for example, by designing them as integrated circuits, or they may be implemented in software by having a processor interpret and execute programs that realize each function.

[0084] Information such as programs, tables, and files that implement each function can be stored in memory, hard disks, SSDs (Solid State Drives), or other storage devices, or in recording media such as IC cards, SD cards, or DVDs. Furthermore, some or all of the above configurations, functions, processing units, and processing means may be implemented in hardware, for example, by designing them as integrated circuits. Alternatively, the above configurations and functions may be implemented in software by a processor interpreting and executing programs that implement each function. Information such as programs, tables, and files that implement each function can be stored in memory, hard disks, SSDs (Solid State Drives), or other storage devices, or in recording media such as IC cards, SD cards, or DVDs.

[0085] Furthermore, the control lines and information lines shown are those deemed necessary for explanation purposes and do not necessarily represent all control lines and information lines required for implementation. In reality, it can be assumed that almost all components are interconnected.

[0086] Furthermore, the various explanations above can be summarized as follows. The following summary may include supplementary explanations and explanations of variations of the above explanations.

[0087] The modification candidate output system of this embodiment may further include a summarization unit that generates information about the processing content in the software based on the information constituting the software, and stores the generated processing content information in the database.

[0088] This allows for the efficient generation and use of appropriate processing information regarding each function in the source code of each software. Ultimately, this enables further efficiency improvements in analyzing the scope of impact and detecting modifications when updating software.

[0089] Furthermore, in the modification candidate output system of this embodiment, the summarization unit may generate information about the processing content in the software based at least on the source code of the software.

[0090] This allows for highly accurate estimation of processing content based on the source code. Consequently, it becomes possible to further improve the efficiency of analyzing the scope of impact of updates and detecting the modified areas when software modifications are made.

[0091] Furthermore, in the modification candidate output system of this embodiment, the summarization unit may generate information on the processing content in the software based on configuration information that includes at least the setting information of variables used by the software.

[0092] This allows for highly accurate estimation of processing content based on configuration information. Ultimately, this enables more efficient analysis of the scope of impact of software updates and detection of modified areas.

[0093] Furthermore, in the modification candidate output system of this embodiment, the summarization unit may include a language model.

[0094] This enables efficient and highly accurate generation of processing information using LLM (Large Language Model). Ultimately, this allows for further efficiency improvements in analyzing the scope of impact of updates and detecting the modified areas when software modifications are made.

[0095] Furthermore, in the modification candidate output system of this embodiment, the summarization unit may generate information on the processing content in the software from comments in the file describing the software and business knowledge stored in a predetermined business knowledge database.

[0096] This enables the efficient generation of highly accurate processing information based on comments within the software and specialized business knowledge. Ultimately, this allows for further efficiency improvements in analyzing the scope of impact and detecting changes associated with software modifications.

[0097] Furthermore, in the modification candidate output system of this embodiment, the modification candidate output unit may determine the relationship by determining the degree of similarity between the first vector information of the modification content and the second vector information of the processing content.

[0098] This allows for the accurate and efficient identification of potential areas for modification based on vector similarity. Ultimately, this enables further efficiency improvements in analyzing the scope of impact and detecting areas for modification when updating software.

[0099] Furthermore, the modification candidate output system of this embodiment may include an external cooperation unit that, if the processing content is not stored in the database, outputs a request to the software developer to share the processing content in the software.

[0100] According to this, even when information on the processing content has not been generated by the summarization unit, etc., it will be possible to acquire and use it from the external environment as needed. In turn, it will be possible to further improve the efficiency of analyzing the scope of impact of updates and detecting modified parts when software modifications are made.

[0101] Furthermore, in the modification candidate output system of this embodiment, if the processing content is not stored in the database, the external cooperation unit may output a request to share the processing content in the software to a predetermined system of the software developer.

[0102] According to this, even when information on the processing content has not been generated by the summarization unit, etc., it will be possible to acquire and use it from the external environment as needed. In turn, it will be possible to further improve the efficiency of analyzing the scope of impact of updates and detecting modified parts when software modifications are made.

[0103] Furthermore, this invention only requires the ability to obtain the processing details of the software; the database itself is not an essential component. [Explanation of symbols]

[0104] 10: Repository, 11: Source code file, 12: Configuration information, 20: User terminal, 30: External system, 100: Correction candidate output system (information processing device), 101: CPU (processor), 102: Auxiliary storage device, 1021: Program, 1022: LLM (Language Model), 1023: Business knowledge DB, 1024: Processing content DB, 103: Main memory, 104: Communication device, 110: Correction candidate output unit, 111: Summarization unit, 112: External linkage unit

Claims

1. A modification candidate output unit retrieves the processing content of software related to the specified software from a database that holds information on the processing content of the software, based on the input modification content of the specified software, identifies candidate modification locations in the related software that correspond to the processing content based on the relationship between the modification content and the processing content, and outputs the information of the candidates. A system for outputting candidate correction locations.

2. A summarization unit generates information about the processing content of the software based on the information that constitutes the software, and stores the generated processing content information in the database. The modification candidate output system according to claim 1, further comprising:

3. The summarization unit generates information about the processing content in the software, based at least on the source code of the software. The modification candidate output system according to claim 2.

4. The summarization unit generates information about the processing content in the software based on configuration information that includes at least the setting information of variables used by the software. The modification candidate output system according to claim 2.

5. The summary section includes a language model, The modification candidate output system according to claim 2.

6. The summarization unit generates information about the processing content of the software from comments in the file describing the software and business knowledge stored in a predetermined business knowledge database. The modification candidate output system according to claim 2.

7. The correction candidate output unit determines the relationship between the first vector information of the correction content and the second vector information of the processing content, The modification candidate output system according to claim 1.

8. If the processing details are not stored in the database, the external collaboration unit outputs a request to the software developer to share the processing details of the software. The modification candidate output system according to claim 1, further comprising:

9. If the processing details are not stored in the database, the external linkage unit outputs a request to share the processing details of the software to a predetermined system of the software developer. The modification candidate output system according to claim 8.

10. In accordance with the input modifications to the specified software, the processing details of the software related to the specified software are obtained from a database that holds information on the processing details of the software. Based on the relationship between the aforementioned modification and the aforementioned processing, the related software identifies candidate modification locations corresponding to the aforementioned processing and outputs information about the candidates. A method for outputting suggested correction locations using a computer.