Support device, support method, and support program

The support device emulates pre-migration and post-migration systems using a natural language model to compare execution logs, addressing the challenge of identifying discrepancies during system migration.

JP2025177626APending Publication Date: 2025-12-05HITACHI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024084643
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-24
Publication Date
2025-12-05

AI Technical Summary

Technical Problem

Existing systems struggle to identify the cause of discrepancies between pre-migration and post-migration systems during system migration, as they require identical input data and execution environments, which may not always be feasible.

Method used

A support device utilizing a pre-migration system emulation unit, a post-migration system execution unit, an execution log comparison unit, and an output unit to compare execution logs emulated by a natural language model, identifying discrepancies between the systems.

Benefits of technology

Enables verification of correct system migration by comparing emulated execution logs, even when the pre-migration environment is unavailable, facilitating identification of discrepancies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025177626000001_ABST
    Figure 2025177626000001_ABST
Patent Text Reader

Abstract

To support in verifying whether a function of an existing system is correctly moved to a new system in moving the existing system to the new system.SOLUTION: A support device for supporting in verifying the operation of a second system obtained by moving a first system described in a prescribed programming language to another programming language makes a natural language model emulate the first system to acquire a first execution log including a variable value of a program of the first system as its execution result by inputting a prompt including a first program of the first system to the natural language model, acquires a second execution log including a variable value of a second program and the second system by executing the second program of the second system, and specifies and outputs a mismatching portion at which the variable values do not match between the first system and the second system by comparing a first execution log with a second execution log.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an assistance device, an assistance method, and an assistance program. [Background technology]

[0002] Attention is being paid to the idea of ​​dividing the programs and data of current monolithic IT (Information Technology) systems (hereinafter referred to as "pre-migration systems") developed using existing development platform technologies into multiple microservices and migrating them to a microservice architecture (hereinafter referred to as "post-migration systems") to improve flexibility or scalability. During the migration, it is extremely important to verify whether the functions of the pre-migration systems have been correctly migrated to the post-migration systems.

[0003] Technologies for reproducing defects have existed for some time. In the verification support system described in Patent Document 1, when a tester runs a test on a program under test on the verification support system, the system repeatedly determines whether or not a recording trigger event occurs. When a recording trigger event is detected, the system collects information on the object of observation and determines whether or not recording is necessary based on whether or not the collected information has changed. The items that need to be recorded are recorded in a test log and fed back to the developer. Then, in the developer's execution environment, the system reproduces the defective behavior of the program under test based on the test log, and the results are displayed on a display unit so that changes in the object of observation relative to the events to be recorded are clearly visible. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2009-205314 Summary of the Invention [Problem to be solved by the invention]

[0005] The above-mentioned technology limits the system to areas where a malfunction is likely, outputs a log of all execution commands, and reproduces the operation of the migrated system based on the output log to reproduce the malfunction. However, when verifying whether the functions of the pre-migration system have been correctly migrated to the migrated system, it is necessary to load the same input data into the pre-migration system and the migrated system, and if an output discrepancy occurs, it is necessary to identify the location of the discrepancy in the program. In contrast, while the above-mentioned technology can reproduce the malfunction of the migrated system, it cannot identify the cause of the discrepancy between the pre-migration system and the migrated system. Therefore, it is necessary to identify the cause of the discrepancy by comparing the execution logs of the pre-migration system and the migrated system, but it is sometimes not possible to prepare an execution environment for the pre-migration system and output the execution log of the pre-migration system.

[0006] The present invention has been made in consideration of the above circumstances, and its purpose is to provide an assistance device, assistance method, and assistance program that can assist in verifying whether the functions of an existing system have been correctly migrated to a new system when migrating the existing system to a new system. [Means for solving the problem]

[0007] One aspect of the present invention for solving the above-mentioned problems is a support device for supporting verification of the operation of a second system obtained by migrating a first system written in a specified programming language to another programming language, the support device having a processor and a memory, and including: a pre-migration system emulation unit that inputs a prompt including a first program of the first system into a natural language model, thereby causing the natural language model to emulate the first system, and obtains a first execution log including variable values ​​of the program of the first system as a result of the execution; a post-migration system execution unit that executes a second program of the second system, thereby obtaining a second execution log including variable values ​​of the second program of the second system; an execution log comparison unit that compares the first execution log with the second execution log to identify discrepancies between variable values ​​in the first system and the second system; and an output unit that outputs the discrepancies. [Effects of the Invention]

[0008] According to the present invention, when migrating an existing system to a new system, it is possible to assist in verifying whether the functions of the existing system have been correctly migrated to the new system. Configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a support system. [Figure 2] FIG. 2 is a diagram illustrating an example of the hardware configuration of a current-new matching support device and a user terminal. [Figure 3] 10 is a flowchart showing the processing steps of a pre-migration system execution log output process. [Figure 4] FIG. 10 is a diagram illustrating an example of a prompt. [Figure 5] FIG. 10 is a diagram illustrating an example of a pre-migration system execution log. [Figure 6] FIG. 10 is a diagram illustrating an example of execution point data after a call is completed. [Figure 7]10 is a flowchart showing the processing steps of a mismatched part output process. [Figure 8] FIG. 10 is a diagram for explaining an outline of a mismatch part output process. [Figure 9] FIG. 10 is a diagram for explaining an outline of a mismatch part output process. [Figure 10] FIG. 10 is a diagram showing an example of a mismatched portion display screen. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. The following description and drawings are examples for explaining the present invention, and some omissions and simplifications have been made as appropriate for clarity of explanation. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural. In order to facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings. In the following explanation, various types of information may be described using expressions such as "table," "list," and "queue," but the various types of information may also be expressed using data structures other than these. To indicate that the information is not dependent on the data structure, "XX table," "XX list," etc. may be referred to as "XX information." When describing identification information, expressions such as "identification information," "identifier," "name," "ID," and "number" are used, but these are interchangeable. When there are multiple components with the same or similar functions, they may be described using the same reference numeral with different subscripts. However, when there is no need to distinguish between these multiple components, the subscripts may be omitted. Furthermore, in the following description, processing performed by executing a program may be described, but the program is executed by a processor (e.g., a CPU or a GPU (Graphics Processing Unit)) to perform the specified processing while appropriately using storage resources (e.g., memory) and / or interface devices (e.g., communication ports), and therefore the processor may be the subject of the processing. Similarly, the subject of the processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The subject of the processing performed by executing a program may be any computing unit, and may include a dedicated circuit (e.g., an FPGA (Field-Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit)) that performs specific processing. A program may be installed on a device such as a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. If the program source is a program distribution server, the program distribution server may include a processor and storage resources for storing the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. Also, in the following description, two or more programs may be realized as one program, and one program may be realized as two or more programs.

[0011] <Support System> 1 is a diagram showing an example of the configuration of a support system 1. As shown in the figure, the support system 1 includes a current-new matching support device 10 (support device) and a user terminal 20. The current-new matching support device 10 and the user terminal 20 are communicatively connected to each other via a wired or wireless communication network N such as the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or a dedicated line.

[0012] The current-new matching support device 10 is an information processing device that compares the execution results of a pre-migration system program 100 with the execution results of a post-migration system program 135 and identifies where a discrepancy occurs. The current-new matching support device 10 includes functional units: a pre-migration system emulation unit 105, a generative artificial intelligence (AI) unit 115, a post-migration system execution unit 140, an execution log comparison unit 125, and an output unit 160. The current-new matching support device 10 also stores the pre-migration system program 100, the post-migration system program 135, and a master DB 120 in a storage device in advance.

[0013] The pre-migration system program 100 is a program written in a first programming language (for example, COBOL, etc.) for executing the existing pre-migration system (first system).

[0014] The pre-migration system emulation unit 105 reads the pre-migration system program 100, emulates (virtually executes) the pre-migration system program 100 using the data stored in the master DB 120 and the generation AI unit 115, and outputs the execution log, the pre-migration system execution log 110.

[0015] The master DB 120 is a database from which data is retrieved when an instruction to retrieve some data is executed in the running program when the pre-migration system program 100 is executed by the pre-migration system emulation unit 105, or when the post-migration system program 135 is executed by the post-migration system execution unit 140.

[0016] The generating AI unit 115 is a natural language model such as a large-scale language model (generative AI (Generative Artificial Intelligence)). For example, the generating AI unit 115 emulates the pre-migration system program 100 and outputs an execution log thereof in response to an instruction from the pre-migration system emulation unit 105. The generating AI unit 115 is, for example, a Bidirectional Encoder Representations from Transformers (BERT) or a Generative Pre-trained Transformer (GPT), but the type of model is not particularly limited.

[0017] The post-migration system program 135 is a program that executes a post-migration system (second system) that has the same functions as the pre-migration system. The post-migration system program 135 is a program written in a second programming language (e.g., Java (registered trademark)) that is different from the first programming language. The post-migration system is a system that has been migrated by replacing the pre-migration system with the second programming language, and operates in the same way as the pre-migration system.

[0018] The post-migration system execution unit 140 reads the post-migration system program 135, executes the post-migration system program 135 using the data stored in the master DB 120, and outputs an execution log, that is, a post-migration system execution log 145. Note that in this embodiment, the post-migration system execution unit 140 executes the post-migration system program 135 in the real environment, but this is not limiting, and the post-migration system program 135 may be emulated using the generation AI unit 115, similar to the pre-migration system emulation unit 105.

[0019] The execution log comparison unit 125 reads the pre-migration system execution log 110 and the post-migration system execution log 145, and compares the pre-migration system execution log 110 and the post-migration system execution log 145. The execution log comparison unit 125 then outputs a list of mismatched parts 150, which is a list of parts where the execution results do not match, and a list of excess / deficiency parts 155, which is a list of parts where the execution logs could not be compared.

[0020] The output unit 160 reads the mismatched part list 150 and the excess / deficiency part list 155, and outputs the mismatched part list 150 and the excess / deficiency part list 155 to the user terminal 20 for display.

[0021] The user terminal 20 is an information processing device used by a user (e.g., a system engineer) who verifies the post-migration system program 135, and is, for example, a personal computer, a tablet terminal, or a smartphone. The user terminal 20 includes a display output unit 260 and an input unit 265. The display output unit 260 is, for example, a display, and displays various information related to the execution of the processes described below on the screen. The input unit 265 is, for example, a keyboard, a mouse, or a touch panel, and accepts input of various information related to the execution of the processes described below.

[0022] In this embodiment, the first programming language is COBOL and the second programming language is Java (registered trademark), but the first programming language and the second programming language may be other programming languages.

[0023] 2 is a diagram showing an example of the hardware configuration of the current-new matching support device 10 and the user terminal 20. The current-new matching support device 10 and the user terminal 20 can be realized by, for example, a general computer as shown in this diagram (schematic computer diagram) that includes a CPU 200 (Central Processing Unit), memory 205 such as RAM (Random Access Memory) or ROM (Read Only Memory), an external storage device 210 such as an HDD (Hard Disk Drive) or SSD (Solid State Drive), a reading / writing device 230 that reads and writes information from / to a portable storage medium 250 such as a CD (Compact Disk) or USB (Universal Serial Bus) memory, input devices 225 such as a keyboard and a mouse, an output device 220 such as a display, a communication device 215 such as a NIC (Network Interface Card) for connecting to a communication network, and an internal communication line (referred to as a system bus) 240 that connects these devices together.

[0024] Furthermore, various data stored in or used for processing in the current / new matching support device 10 or the user terminal 20 can be realized by the CPU 200 reading and using the data from the memory 205 or the external storage device 210. Furthermore, each functional unit of the current / new matching support device 10 or the user terminal 20 (for example, the pre-migration system emulation unit 105, the generation AI unit 115, the post-migration system execution unit 140, the execution log comparison unit 125, or the output unit 160) can be realized by the CPU 200 loading a predetermined program stored in the external storage device 210 into the memory 205 and executing it.

[0025] The predetermined program described above may be stored (downloaded) into the external storage device 210 from the storage medium 250 via the reading / writing device 230 or from a network via the communication device 215, and then loaded onto the memory 205 and executed by the CPU 200. Alternatively, the program may be directly loaded onto the memory 205 from the storage medium 250 via the reading / writing device 230 or from a network via the communication device 215, and then executed by the CPU 200.

[0026] In addition, the programs that realize the functions of the pre-migration system emulation unit 105, the generation AI unit 115, the post-migration system execution unit 140, the execution log comparison unit 125, and the output unit 160 of the current-new matching support device 10 can be recorded on, for example, a portable or fixed recording medium and distributed.

[0027] In the following, we will explain an example in which the current / new matching support device 10 is configured by a single computer, but all or part of these functions may be distributed across one or more computers, such as a cloud, and similar functions may be realized by communicating with each other via a network.

[0028] Next, we will explain the processing performed by the current-new matching support device 10. When using the current-new matching support device 10, the user, a system engineer, sets input data required for emulation of the pre-migration system program 100 and execution of the post-migration system program 135, as well as the first process names in the pre-migration system program 100 and the post-migration system program 135. The first process name is information that identifies the process that starts execution in the program.

[0029] <Pre-migration system execution log output process> FIG. 3 is a flowchart showing the processing procedure of the pre-migration system execution log output processing executed by the pre-migration system emulation unit 105.

[0030] The pre-migration system emulation unit 105 first reads the top process name set by the user (S101).

[0031] Next, the pre-migration system emulation unit 105 reads the source code of the program to be executed from the first process name from the pre-migration system program 100 (S102). For example, the pre-migration system emulation unit 105 reads the source code of unit programs divided into predetermined action execution units (sections in this embodiment) from the entire pre-migration system program 100. In this embodiment, a section (a clause divided by the reserved word "SECTION") is used as an example of a process execution unit, but other process execution units such as a function may also be used.

[0032] Thereafter, the pre-migration system emulation unit 105 determines whether or not the read source code includes a process for master search (S103). The master search process is a process for searching data stored in the master DB 120. If it is determined that there is no process for master search (S103: No), the process proceeds to S106.

[0033] On the other hand, if the pre-migration system emulation unit 105 determines that there is a process for master search (S103: Yes), it requests the generation AI unit 115 to generate master search conditions. The master search conditions are conditions for searching the master DB 120 in the loaded program. For example, the pre-migration system emulation unit 105 inputs a prompt including a statement instructing the generation of an SQL statement for the master search conditions and the source code of the loaded program to the generation AI unit 115. The generation AI unit 115 generates master search conditions in accordance with the instructions of the pre-migration system emulation unit 105 and outputs the generated master search conditions to the pre-migration system emulation unit 105 (S104).

[0034] Next, the pre-migration system emulation unit 105 searches the master DB 120 for master data using the master search conditions generated by the generation AI unit 115, and extracts the searched master data from the master DB 120 (S105). For example, the pre-migration system emulation unit 105 inputs the SQL statement generated by the generation AI unit 115 into the master DB 120, thereby acquiring the master data output from the master DB 120.

[0035] Thereafter, the pre-migration system emulation unit 105 inputs a prompt including the program's source code and master data to the generation AI unit 115, thereby emulating and executing the program in the generation AI unit 115, and records the execution log in the pre-migration system execution log 110 (S106).

[0036] (prompt) 4 is a diagram showing an example of a prompt. Prompt 500 includes instruction text 510 to generation AI unit 115, execution start line number 520, source code 530 of the program to be executed by emulation, and information 540 on the values ​​or definitions of variables used in the program to be executed.

[0037] Wording 510 includes an instruction to record the values ​​of variables included in the program when the program given in source code 530 is executed. Wording 510 also includes an instruction to record the variable values ​​up to that point in the first execution log if there is a call to another process (e.g., another program, function, subroutine, etc.) in source code 530, and then terminate the emulation. In the illustrated example, wording 510 includes the following instruction:

[0038] (Wording of instructions to the generation AI unit 115) You are an expert at analyzing COBOL source code. Given the following information about a COBOL program: - The line number where execution of the COBOL program begins - Information about variables in a COBOL program at the start line number of the COBOL program - If the variable value is known, the variable name and its value are listed. - If the variable value is not known, the variable definition is provided. - Data required for the COBOL program to run (provided if necessary) - The COBOL program to run Describe what happens to the variable values ​​when the given COBOL program is executed line by line starting from the execution start line number. The execution order is as follows: 1. Execute the program line by line from the execution start line number and write the variable values. However, for comment lines and blank lines, write "Do not execute" and execute the next line. 2. When a PERFORM or CALL statement is encountered, the variable values ​​up to that point are written and execution ends. 3. If no PERFORM or CALL statement is encountered, execute to the end and write the variable values.

[0039] The line number of the first process name in the source code is set in the execution start line number 520. The source code read in S102 is set in the source code 530.

[0040] The information 540 is generated based on master data acquired from the master DB 120. Note that, in this embodiment, an example will be described in which the master data acquired from the master DB 120 is set in the information 540, but this is not limiting. If the source code of the loaded program includes an external call process, data acquired as a result of the external call process may be set in the information 540. The external call process includes, for example, reading data from a database, calling an external program, calling an external API (Application Programming Interface), and the like.

[0041] The generation AI unit 115 reads the prompt 500 and executes emulation based on the read prompt 500 .

[0042] In the example shown in Figure 4, the generation AI unit 115 executes an emulation of the section "sample processing" as the program 520 to be executed. In the emulation, the generation AI unit 115 starts execution from line number "040030" of the sample processing based on the instruction text 510, the execution start line number 520, and information 540 on the values ​​and definitions of variables used in the program to be executed, and continues execution until another process, "main processing," is called at line number "040090." The generation AI unit 115 then outputs the pre-migration system execution log 110 as the execution result.

[0043] (Pre-migration system execution log) 5 is a diagram showing an example of a pre-migration system execution log 110. As shown in the figure, the pre-migration system execution log 110 records the variable name and value of each variable included in the program that has been emulated.

[0044] In addition, when a call is made to another section (another function) or another program during emulation execution, the generation AI unit 115 generates post-call execution location data 600 that records the location where execution starts after the call ends.

[0045] (Execution location data after call) 6 is a diagram showing an example of post-call execution location data. As shown in the figure, the post-call execution location data 600 records the line number of the program (process) to be executed next. In the example shown, in the "sample process," line "040100," which is immediately after the "main process" is called at line number "040090," is recorded in the post-call execution location data 600.

[0046] Thereafter, the pre-migration system emulation unit 105 determines whether or not there is a next process (S107). For example, if a line number is recorded in the execution location data 600 after the call is completed, the pre-migration system emulation unit 105 determines that there is a next process, and if a line number is not recorded in the execution location data 600 after the call is completed, the pre-migration system emulation unit 105 determines that there is no next process. If the pre-migration system emulation unit 105 determines that there is a next process (S107: Yes), it returns to the processing of S102, sets the line number recorded in the execution location data 600 after the call is completed as the execution start line number, and reads the next program to be executed. On the other hand, if the pre-migration system emulation unit 105 determines that there is no next process (S107: No), it ends the processing.

[0047] <Output process for mismatched parts> Fig. 7 is a flowchart showing the procedure of the mismatch part output process executed by the execution log comparison unit 125. Figs. 8 and 9 are diagrams for explaining the outline of the mismatch part output process. A specific description will be given below using data examples shown in Figs. 8 and 9.

[0048] First, the execution log comparison unit 125 reads the pre-migration system execution log 110 and the post-migration system execution log 145 (S201).

[0049] Next, the execution log comparison unit 125 generates a character string by converting the variable name portion of each execution log into characters (S202). At this time, the execution log comparison unit 125 can convert into any characters by assigning the same characters to the same variable names.

[0050] 8, the execution log comparison unit 125 converts the variable name "contract number" to the letter "A," the variable name "contractor name" to the letter "B," the variable name "contract year" to the letter "C," the variable name "contract date" to the letter "D," and the variable name "contract month" to the letter "E" according to the conversion rules for converting variable names to alphabetic characters. As a result, the execution log comparison unit 125 generates a pre-migration system converted string 830 "ACED" by converting the pre-migration system execution log 110 into a character string, and a post-migration system converted string 840 "ABCD" by converting the post-migration system execution log 145 into a character string.

[0051] Next, the execution log comparison unit 125 extracts the difference in the converted character strings using the post-migration system execution log 145 as a reference (S203).

[0052] 8, the execution log comparison unit 125 compares the pre-migration system converted character string 830 "ACED" with the post-migration system converted character string 840 "ABCD," and extracts the character string difference 850. The character string difference 850 includes the missing portion "second character: - B" that is present in the post-migration system execution log 145 but not in the pre-migration system execution log 110, and the extra portion "third character: + E" that is present in the pre-migration system execution log 110 but not in the post-migration system execution log 145.

[0053] Next, the execution log comparison unit 125 extracts the redundant portion 860 "line 3" of the pre-migration system execution log 110 and the missing portion 870 "line 2" of the pre-migration system execution log 110 based on the extracted character string difference 850 (S204). The redundant portion 860 is data indicating the position of the character (line) at which the redundant portion of the pre-migration system converted character string 830 occurs, based on the post-migration system converted character string 840. Furthermore, the missing portion 870 is data indicating the position of the character (line) at which the portion of the post-migration system converted character string 840 that is missing from the pre-migration system converted character string 830 occurs, based on the post-migration system converted character string 840.

[0054] Next, the execution log comparison unit 125 acquires the excess / deficiency part list 155 based on the excess part 860 of the pre-migration system execution log 110 and the deficient part 870 of the pre-migration system execution log 110 (S205).

[0055] For example, the execution log comparison unit 125 obtains an example 880 of the list of excess and deficiency parts 155, "Before migration: Deficiency: Line 3", from the excess part 860 "Line 3" of the pre-migration system execution log 110 shown in Figure 9 and the deficient part 870 "Line 2" of the pre-migration system execution log 110.

[0056] Next, the execution log comparison unit 125 removes the redundant parts from the pre-migration system execution log 110 and the post-migration system execution log 145 based on the redundant parts 860 of the pre-migration system execution log 110 and the missing parts 870 of the pre-migration system execution log 110 (S206).

[0057] For example, the execution log comparison unit 125 generates a pre-migration system post-removal execution log 910 by removing the third line from an example 810 of the pre-migration system execution log 110 shown in Figure 9, and a post-migration system post-removal execution log 920 by removing the second line from an example 820 of the post-migration system execution log 145.

[0058] Next, the execution log comparison unit 125 compares the variable values ​​of the pre-migration post-system removal execution log 910 and the post-migration post-system removal execution log 920 line by line, and acquires the mismatch list 150 (S207).

[0059] 9, the execution log comparison unit 125 generates an example 930 of the list of mismatches 150 indicating that the variable value of the variable name "contract date" is mismatched. From this list of mismatches 150, it is possible to identify the mismatches between the pre-migration system program 100 and the post-migration system program 135. In this embodiment, the mismatches are variable names whose variable values ​​are different between the pre-migration system program 100 and the post-migration system program 135.

[0060] Then, the output unit 160 displays a mismatched part display screen on the user terminal 20 based on the mismatched part list 150 and the excess / deficiency part list 155 (S208). Thereafter, the mismatched part output process ends.

[0061] (Discrepancy display screen) 10 is a diagram showing an example of a mismatch part display screen. The output unit 160 causes the user terminal 20 to display a mismatch part display screen 1000 based on the mismatch part list 150 and the excess / deficiency part list 155 generated by the execution log comparison unit 125.

[0062] The mismatch part display screen 1000 includes a first area 1010 that displays the process name of the executed program, a second area 1020 that displays the variable values ​​of the pre-migration system program 100 at the mismatch part, a third area 1030 that displays the variable values ​​of the post-migration system program 135 at the mismatch part, a fourth area 1040 that displays the deficiencies of the pre-migration system program 100, and a fifth area 1050 that displays the mismatch part. For example, the fourth area 1040 displays a list of excess and deficiency parts 155. Furthermore, the fifth area 1050 displays the variable names of the mismatch part and the variable values ​​of the post-migration system execution log 145.

[0063] As described above, the current-new matching support device 10 of this embodiment is a support device that supports verification of the operation of a second system (post-migration system) in which a first system (pre-migration system) written in a predetermined programming language has been migrated to another programming language, and is equipped with: a pre-migration system emulation unit 105 that inputs a prompt including a first program of the first system (pre-migration system program 100) into a natural language model (generation AI unit 115) to cause the natural language model to emulate the first system, and acquires a first execution log (pre-migration system execution log 110) including variable values ​​of the program of the first system as the execution result; a post-migration system execution unit 140 that executes a second program of the second system (post-migration system program 135) to acquire a second execution log (post-migration system execution log 145) including variable values ​​of the second program of the second system; an execution log comparison unit 125 that compares the first execution log with the second execution log to identify discrepancies where variable values ​​do not match between the first system and the second system; and an output unit 160 that outputs the discrepancies.

[0064] That is, the current-new matching support device 10 of this embodiment acquires the pre-migration system execution log 110 by emulating the pre-migration system program 100 using the generation AI unit 115, which is a natural language model. Therefore, even if the execution environment of the pre-migration system cannot be prepared, it is possible to acquire the pre-migration system execution log 110 and compare the pre-migration system execution log 110 with the post-migration system execution log 145 to identify discrepancies. In other words, if a discrepancy occurs in the execution results between the pre-migration system and the post-migration system, it is possible to identify the part where the discrepancy occurred. This makes it possible to support verification of whether the functions of the existing system have been correctly migrated to the new system when migrating an existing system to a new system.

[0065] In addition, the current-new matching support device 10 of this embodiment acquires the first execution log by inputting a prompt including an instruction to record the variable values ​​of each variable included in the first program in the first execution log into the natural language model.

[0066] With this configuration, the first execution log, in which the variable values ​​of each variable included in the first program are recorded, can be acquired from the natural language model generation AI unit 115. This makes it possible to compare it with the variable values ​​included in the second execution log, making it easier to identify discrepancies.

[0067] In addition, when the first program has an external call process, the current-new matching support device 10 of this embodiment acquires the first execution log by inputting a prompt including data acquired as a result of the external call process into the natural language model.

[0068] With this configuration, even if the generation AI unit 115, which is a natural language model, cannot execute external call processing (for example, reading data from a database, calling an external program, or calling an external API), it is possible to successfully emulate the first program. For example, it is possible to prevent errors caused by being unable to execute external call processing during emulation of the first program.

[0069] In addition, when the first program includes a process for retrieving data from a database (master DB 120) as an external call process, the current-new matching support device 10 of this embodiment acquires a first execution log by inputting a prompt including data retrieved from the database based on the search conditions of the process to be retrieved into the natural language model.

[0070] With this configuration, even if the generation AI unit 115, which is a natural language model, cannot access the database, it is possible to successfully emulate the first program. For example, it is possible to prevent errors caused by being unable to access the database during emulation of the first program.

[0071] In addition, the current-new matching support device 10 of this embodiment acquires the first execution log of the unit program by inputting into the natural language model a unit program obtained by dividing the first program into predetermined processing execution units, and a prompt including an instruction to record the variable values ​​up to that point in the first execution log and terminate the emulation if there is a call to another process in the unit program.

[0072] Generally, natural language models (especially large-scale language models) are expensive to use and have limitations on the number of characters in the prompt. Therefore, if the entire first program is included in the prompt, the number of characters will be large, and the cost of using it may be high. Therefore, by dividing the first program into processing execution units (in this embodiment, by section) and having the natural language model emulate them, the cost of using the natural language model can be reduced.

[0073] In addition, the current / new matching support device 10 of this embodiment compares the first execution log with the second execution log to identify variables that are missing from the first execution log or the second execution log, and outputs the variables that are missing from the first execution log or the second execution log.

[0074] With this configuration, the user can identify variables whose variable values ​​could not be compared between the first and second execution logs.

[0075] In addition, the current-new matching support device 10 of this embodiment converts the variable names contained in the first execution log and the second execution log into character strings, and extracts the differences between the converted character strings to identify variables that are missing from the first execution log or the second execution log.

[0076] In this way, by converting the variable names into character strings and comparing them, it becomes easier to identify variables that are missing from the first execution log and the second execution log, improving processing efficiency.

[0077] In addition, the current / new matching support device 10 of this embodiment deletes the variables that are missing in the second execution log from the first execution log, and then deletes the variables that are missing in the first execution log from the second log, and then identifies the mismatched points where the variable values ​​do not match between the first system and the second system.

[0078] With this configuration, comparison is possible even if the variables recorded in the first execution log and the second execution log do not completely match.

[0079] The present invention is not limited to the above-described embodiments, and can be implemented using any components within the scope of the present invention. The above-described embodiments and modifications are merely examples, and the present invention is not limited to these contents as long as the characteristics of the invention are not impaired. Furthermore, although various embodiments and modifications have been described above, the present invention is not limited to these contents. Other aspects conceivable within the scope of the technical idea of ​​the present invention are also included within the scope of the present invention.

[0080] For example, part of the hardware provided in each device of this embodiment may be provided in another device.

[0081] Furthermore, each program of the current-new matching support device 10 or the user terminal 20 may be provided in another device, a program may consist of multiple programs, or multiple programs may be integrated into one program.

[0082] For example, the functions of the master DB 120 or the generation AI unit 115 of the current-new matching support device 10 may be provided in another device. [Explanation of symbols]

[0083] 1. Support System 10 Current and new matching support device 100 Pre-migration system program 105 Pre-migration System Emulation Department 110 Pre-migration system execution log 115 Generation AI Department 120 Master DB 125 Execution log comparison section 135 Post-migration system program 140 Post-migration system execution department 145 Post-migration system execution log 150 List of discrepancies 155 List of excess and shortage areas 160 Output section 20 User terminal 260 Display output unit 265 Input Section N Network

Claims

1. 1. A support device for supporting verification of an operation of a second system obtained by migrating a first system written in a predetermined programming language to another programming language, comprising: a processor and a memory; a pre-migration system emulation unit that inputs a prompt including a first program of the first system into a natural language model, thereby causing the natural language model to emulate the first system, and acquires a first execution log including variable values ​​of the program of the first system as an execution result; a post-migration system execution unit that executes a second program of the second system to acquire a second execution log including variable values ​​of the second program of the second system; an execution log comparison unit that identifies a mismatch between variable values ​​in the first system and the second system by comparing the first execution log with the second execution log; an output unit that outputs the mismatched portion; A support device comprising:

2. the pre-migration system emulation unit acquires the first execution log by inputting the prompt, which includes an instruction to record variable values ​​of each variable included in the first program in the first execution log, to the natural language model; The support device according to claim 1 .

3. the pre-migration system emulation unit, when the first program has an external call process, acquires the first execution log by inputting the prompt including data acquired as a result of the external call process into the natural language model; The support device according to claim 1 .

4. the pre-migration system emulation unit acquires the first execution log by inputting the prompt including the data acquired from the database according to a search condition of the acquisition process into the natural language model when the first program includes a process of acquiring data from a database as the external call process; The support device according to claim 3 .

5. the pre-migration system emulation unit acquires the first execution log of the unit program by inputting, into the natural language model, unit programs obtained by dividing the first program into predetermined processing execution units, and, if another processing is called in the unit program, the prompt including an instruction to record variable values ​​up to that point in the first execution log and terminate emulation. The support device according to claim 1 .

6. the execution log comparison unit compares the first execution log with the second execution log to identify a variable that is missing from the first execution log or the second execution log; the output unit outputs a variable that is missing from the first execution log or the second execution log. The support device according to claim 1 .

7. the execution log comparison unit converts variable names included in the first execution log and the second execution log into character strings, and extracts differences between the converted character strings to identify variables that are missing from the first execution log or the second execution log. The support device according to claim 6.

8. the execution log comparison unit identifies variables that are missing in the first execution log or the second execution log by comparing the first execution log with the second execution log, deletes the variables that are missing in the second execution log from the first execution log, and deletes the variables that are missing in the first execution log from the second execution log, and then identifies mismatched locations where variable values ​​do not match between the first system and the second system. The support device according to claim 1 .

9. An information processing device that supports verification of the operation of a second system in which a first system written in a predetermined programming language is migrated to another programming language, a pre-migration system emulation process for inputting a prompt including a first program of the first system into a natural language model to cause the natural language model to emulate the first system, and acquiring a first execution log including variable values ​​of the program of the first system as an execution result; a post-migration system execution process for acquiring a second execution log including variable values ​​of the second program of the second system by executing the second program of the second system; an execution log comparison process for identifying a mismatched portion of variable values ​​between the first system and the second system by comparing the first execution log with the second execution log; an output process for outputting the mismatched portion; How to support the implementation.

10. An information processing device for supporting verification of the operation of a second system obtained by migrating a first system written in a predetermined programming language to another programming language, a pre-migration system emulation process for inputting a prompt including a first program of the first system into a natural language model to cause the natural language model to emulate the first system, and acquiring a first execution log including variable values ​​of the program of the first system as an execution result; a post-migration system execution process for acquiring a second execution log including variable values ​​of the second program of the second system by executing the second program of the second system; an execution log comparison process for identifying a mismatched portion of variable values ​​between the first system and the second system by comparing the first execution log with the second execution log; an output process for outputting the mismatched portion; A support program to help implement this.

Citation Information

Patent Citations

  • Software verification support system and computer program having verification support function

    JP2009205314A