Information processing device and program

JP2026137519APending Publication Date: 2026-08-27NOMURA RESEARCH INSTITUTE
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025023680
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-17
Publication Date
2026-08-27

AI Technical Summary

Benefits of technology

【0016】 本発明によれば、現行システムをモダナイゼーションするために、現行システムを把握し、新しいシステムに移行する難易度を評価することが可能となる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026137519000001_ABST
    Figure 2026137519000001_ABST
Patent Text Reader

Abstract

To modernize the current system, we need to understand the current system and assess the difficulty of migrating to the new system. [Solution] The information processing device comprises: source code acquisition means for acquiring one or more source codes of the current system; prompt generation means for identifying the content of the system migration and generating prompts for generating an AI to respond regarding the difficulty of migrating the one or more source codes; difficulty evaluation means for causing the generating AI to respond regarding the difficulty of migrating the one or more source codes based on the one or more source codes and the prompts, and for evaluating the difficulty of the system migration based on the response; and visualization means for visualizing the difficulty of the system migration.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a technology for modernizing an existing system.

Background Art

[0002] The renewal of an old computer system, also called a legacy system, into a modern system is called modernization. In modernization, an old computer system is replaced with a modern system that conforms to the latest technology while making use of past assets.

[0003] The old computer systems targeted for modernization mainly include mainframes (large general-purpose computers) introduced in the 1980s and core systems using office computers. These old computer systems are equipped with vendor-specific operating systems, and computer languages such as COBOL are used for application software. Most of such systems were developed from scratch according to the operations of the introducing company. Open systems that began to be introduced around the late 1990s may also be targeted for modernization.

[0004] Legacy systems have problems such as technological obsolescence, system bloat and complexity, and black-boxing. In the existing systems with such problems, modernization of the existing systems is required. On the other hand, in such systems, the business knowledge from the operation of the existing system to the present has been lost, which is a major problem for modernization.

[0005] In large-scale systems, many developers and users complement each other's business knowledge, so no single user or developer can possess all the necessary business knowledge, resulting in a fragmented state of business knowledge. Therefore, if there is no successor due to personnel changes or retirement, or if knowledge is not properly passed on to the successor, business knowledge in that area is lost and fragmented. If documentation such as manuals and design documents are not maintained due to insufficient maintenance work to reduce maintenance costs or simple oversights in fixing system function additions, modifications, or troubleshooting, the fragmentation of business knowledge becomes even more serious.

[0006] Patent Document 1 proposes a source code conversion device that converts COBOL source code of legacy systems into Java source code for modernization purposes. Patent Document 2 proposes a database that structures executable code based on program elements and stores it in a searchable format. [Prior art documents] [Patent Documents]

[0007] [Patent Document 1] Patent No. 6982920 [Patent Document 2] Patent No. 7514149 [Overview of the project] [Problems that the invention aims to solve]

[0008] The proposed source code conversion device can convert the source code of legacy systems into a new language. Furthermore, the proposed database can generate a structured database of executable code.

[0009] However, none of the proposals were able to assess the difficulty of understanding the current system and migrating to the new system in order to modernize the legacy system.

[0010] In legacy systems, business knowledge is fragmented, and this fragmentation occurs during long-term maintenance. Attempting to modernize a system without properly assessing its impact can lead to problems related to project time, cost, and quality.

[0011] Business knowledge, over time, becomes fragmented and its scope changes, leading to discrepancies between manuals and design documents and the source code and the operating system. For example, when a specification change is implemented, the manuals, design documents, and source code for the business process that triggered the change may be updated, but the manuals and design documents for related business processes may not be updated because it was not recognized that they needed updating. Similarly, when a bug is fixed, the source code may be modified, but the design document may not be updated.

[0012] If there are discrepancies between the source code implementation and the manuals and design documents, performing modernization based on the manuals and design documents will not reproduce the functionality of the current system, resulting in an incorrect reconfiguration. Furthermore, the lack of manuals and design documents for all system specifications can lead to gaps in understanding of the current system between the user company and the vendor company. Gaps can occur not only between the user company and the vendor company, but also within the user company itself, such as between the system department and the user departments.

[0013] Performing modernization in this state is prone to problems. In addition, if business requirements are changed or added at the same time as modernization, it becomes difficult to ensure consistency between the parts of the existing system that are retained and the parts that have been changed or added to the business requirements. As a result, the difficulty of quality assurance becomes very high, and problems are even more likely to occur.

[0014] This invention has been made in view of any of the above problems, and aims to realize a technology for understanding the current system and evaluating the difficulty of migrating to a new system in order to modernize the current system. [Means for solving the problem]

[0015] In order to solve any of the above problems, for example, the information processing apparatus of the present invention includes: source code acquisition means for acquiring one or more source codes of the current system; prompt generation means for specifying the content of system migration and generating a prompt for causing an AI for generating the difficulty level of migration of the one or more source codes to answer; difficulty level evaluation means for causing the AI for generating to answer the difficulty level of migration of the one or more source codes based on the one or more source codes and the prompt, and evaluating the difficulty level of the system migration based on the answer; and visualization means for visualizing the difficulty level of the system migration.

Advantages of the Invention

[0016] According to the present invention, in order to modernize the current system, it is possible to grasp the current system and evaluate the difficulty of migrating to a new system.

Brief Description of the Drawings

[0017] [Figure 1] A diagram for explaining the configuration of an information processing system according to an embodiment. [Figure 2] A block diagram showing a functional configuration example of an information processing apparatus according to an embodiment. [Figure 3] A block diagram showing a functional configuration example of a terminal device according to an embodiment. [Figure 4] A diagram for explaining the configuration of a current system according to an embodiment. [Figure 5] A diagram for explaining an example of structured processing according to an embodiment. [Figure 6] A diagram for explaining an example of each element of a structured model according to an embodiment. [Figure 7] A diagram showing an example of data in JSON format generated in an embodiment [Figure 8] A diagram showing an example of data in JSON format and source code according to an embodiment [Figure 9] A flowchart of the analysis process of software assets according to an embodiment. [Figure 10] A diagram for explaining an example of display of analysis results of software assets according to an embodiment. [Figure 11] A flowchart of the analysis process of source code according to an embodiment. [Figure 12] A diagram for explaining an example of display of evaluation results of the migration difficulty of the source code of one file according to an embodiment. [Figure 13] A diagram for explaining an example of display of evaluation results of the migration difficulty of the source code of multiple files according to an embodiment. [Figure 14] A diagram for explaining an example of display of evaluation results of the migration difficulty of system migration according to an embodiment.

Embodiments of the Invention

[0018] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of the features described in the embodiments are essential for the invention. Two or more of the features described in the embodiments may be arbitrarily combined. Also, the same or similar configurations are denoted by the same reference numerals, and duplicate descriptions are omitted.

[0019] Referring to FIG. 1, the information processing system 10 according to the present embodiment will be described. The information processing system 10 includes, for example, an information processing device 100, a terminal device 120 used by a user 110, and a generation AI server 130. The information processing device 100 and the terminal device 120 are connected via the same local area network (LAN) 140. The LAN 140 may be a wired LAN, a wireless LAN, or a combination of both. The LAN 140 is connected to an external network 160 (for example, the Internet) through a firewall 150. The LAN 140 may be, for example, a network inside a company or an organization.

[0020] The terminal device 120 and the information processing device 100 can communicate with each other within the LAN 140 (i.e., without going through the external network 160). Furthermore, each of the terminal device 120 and the information processing device 100 can communicate with the AI ​​generation server 130 via the LAN 140, the firewall 150, and the external network 160. The terminal device 120 may also connect to the external network 160 via a cellular network (for example, a network compliant with the fourth-generation (4G) or fifth-generation (5G) communication standards).

[0021] Furthermore, the information processing system 10 may include the current system 170. The current system 170 is a system that includes software assets that are the target of modernization in this embodiment. The current system 170 may be connected to the information processing device 100 and terminal device 120 via the LAN 140, or it may be incorporated into the information processing device 100 by copying or the like, or it may be connected to the outside via the external network 160. The current system 170 may also be called a legacy system. The software assets included in the current system 170 may be in any form, regardless of whether they are new or old.

[0022] The information processing device 100 is a computer device that evaluates the difficulty of migrating the current system 170, which is the target of modernization. The information processing device 100 may be owned by the company or organization that owns the current system 170, or it may be owned by the vendor that undertakes the modernization of the current system 170. The form of ownership of the information processing device 100 is not limited to any other form. The information processing device 100 also functions as a front-end for the generation AI server 130. The information processing device 100 may be installed on-premises by the company or organization. The information processing device 100 and the terminal device 120 can communicate via the LAN 140. Access to the information processing device 100 from external networks 160, such as the Internet, is blocked by the firewall 150. In this embodiment, the case where the information processing device 100 is a single device is described as an example, but the information processing device 100 may consist of multiple devices, or it may be configured as one or more virtual machines. Furthermore, the information processing device 100 may operate on an external cloud computer, or it may operate in cooperation with an external cloud computer. The external cloud computer may consist of a private cloud operating in a dedicated area of ​​a company or organization on the cloud. The information processing device 100 may be connected to the cloud computer with security ensured by a dedicated line connection, a closed network connection, a VPN (Virtual Private Network) connection, etc. In this specification, the term "information processing device 100" simply refers to the information processing device 100, including devices that operate some or all of the functions of the information processing device 100 in a cloud environment.

[0023] The terminal device 120 includes electronic devices used by the user 110, such as a personal computer or tablet terminal. For example, the user 110 may be an employee or member of a company or organization that owns the information processing device 100. Furthermore, the user 110 is not limited to an employee of a company or organization, but may also be a user granted access rights by a company or organization. The terminal device 120 communicates with the information processing device 100 via the LAN 140, and can access the information processing device 100 from an external network 160 such as the Internet via a VPN connection, in an environment similar to a dedicated line. The terminal device 120 displays the operation screen provided by the information processing device 100 and answers to user questions on the display unit 305 of the terminal device 120. The terminal device 120 also receives user operations on the operation screen and transmits questions to the information processing device 100.

[0024] The Generative AI Server 130 consists of one or more servers and executes the processing of machine learning models (e.g., Generative AI) that have been trained on large amounts of data. The Generative AI is a machine learning model, or generative model, that runs on the Generative AI Server 130. The Generative AI model may be an LLM, or it may be a machine learning model configured to respond to prompts that include images and audio, not just natural language. The Generative AI of the Generative AI Server 130 takes prompts corresponding to questions from the user's terminal device 120 as input via the information processing device 100, and returns responses to the prompts to the terminal device 120 via the information processing device 100.

[0025] In this embodiment, the generation AI server 130 is installed on an external network 160, and the information processing device 100 may connect to it via a firewall 150 and the external network 160. The installation and connection configurations of the generation AI server 130 are not limited to this. The generation AI server 130 may be on-premises within the company, or a generation model or server provided by a third party may be used. If the generation AI is owned in-house, the information processing device 100 may connect to the generation AI server 130 via LAN 140, or the generation AI may be installed inside the information processing device 100. Alternatively, the generation AI may operate virtually in a dedicated area on the cloud. In this case, the information processing device 100 may connect to the generation AI on the cloud via a dedicated line connection, a closed network connection, a VPN connection, etc. When the generation AI operates virtually in a dedicated area on the cloud, and the cloud is connected via a dedicated line connection, etc., the generation AI may not perform machine learning based on the question content. Therefore, when generating AI operates in a dedicated area on the cloud, it may be configured so that internal company information is not leaked to the outside through the generating AI.

[0026] <Configuration of the information processing device> Next, an example of the functional configuration of the information processing device 100 will be described with reference to Figure 2. Note that each of the functional blocks described with reference to Figure 2 may be integrated or separated, and the functions described may be implemented in other blocks. Furthermore, what is described as hardware may be implemented in software, and vice versa.

[0027] The communication unit 201 includes a communication circuit or communication module that can communicate with the terminal device 120 via the LAN 140. The communication unit 201 also connects to an external network 160 via the LAN 140 and firewall 150 and communicates with the generation AI server 130.

[0028] The control unit 202 includes a processor 210 and a memory 211. The processor 210 may consist of one or more processors. The processor 210 may include a CPU as well as a GPU. The control unit 202 controls the operation of each part of the information processing device 100 by having the processor 210 execute a computer program stored in the memory 211 or the storage unit 204. Furthermore, the functions of each part included in the control unit 202 are realized, for example, by the processor 210 executing a program. In this embodiment, the program according to this embodiment is stored in the program storage unit 221 of the storage unit 204. However, it is not limited to this, and the program may be stored in an external storage medium, or the program may operate on the cloud.

[0029] The memory 211 is a volatile storage medium such as DRAM, and temporarily stores parameters and processing results for the control unit 202 to execute computer programs. The power supply unit 203 is a power supply that provides power for the operation of each part of the information processing device 100.

[0030] The storage unit 204 includes a non-volatile storage medium such as a hard disk or semiconductor memory, and stores setting values ​​and computer programs necessary for the operation of the information processing device 100. The computer programs held in the storage unit 204 include an operating system and various applications for realizing the various functions of the information processing device 100. The storage unit 204 includes a program storage unit 221 for storing the program of this embodiment. It also includes a conversation history DB 222 for storing information on the history of conversations between the user 110 and the information processing device 100 using the terminal device 120 based on the program of this embodiment. Furthermore, the software assets 400 of the current system 170 may be stored in the current system storage unit 223. It also includes an analysis result storage unit 224 for storing the analysis results of the software assets 400.

[0031] In this embodiment, the information processing device 100 asks questions to the generating AI server 130 in a question-and-answer format with the user 110's terminal device 120 and obtains answers. The control unit 202 is configured to include a question answering unit 212, an API gateway 213, a software analysis unit 214, a source code analysis unit 215, and an interface 216.

[0032] The question answering unit 212 is a functional unit responsible for answering questions between the user 110 and the terminal device 120 in this embodiment. The question answering unit 212 receives questions entered by the user 110 into the terminal device 120 via the communication unit 201. The question answering unit 212 causes the API gateway 213 to process the questions from the user 110. The question answering unit 212 also works in cooperation with the API gateway 213 to send questions from the user 110 to the generation AI server 130 via the communication unit 201, and receives answers from the generation AI server 130 via the communication unit 201 and the API gateway 213. The question answering unit 212 causes the interface 216 to generate a display screen in response to the answers from the generation AI server 130, and the interface 216 displays it on the display unit 305 of the user 110's terminal device 120.

[0033] The generation AI's API (Application Programming Interface) only has a question-and-answer function, responding to prompts one at a time. Therefore, the question answering unit 212 stores the content of the conversation with user 110 in the conversation history DB 222 of the storage unit 204, managing the content of conversations with user 110 conducted in the same session as a history. This allows the question answering unit 212 to accept consecutive questions from user 110 in the same session. For example, the question answering unit 212 can accept further questions in response to the response to user 110's previous question. The question answering unit 212 analyzes user 110's questions, refers to the conversation history DB 222, supplements the necessary information, and generates prompts. Then, in cooperation with the API gateway 213, it sends the prompts to the generation AI server 130.

[0034] The API gateway 213 functions as an interface to the API of the generation AI server 130. The API gateway 213 receives questions from the user 110 from the question answering unit 212 and sends them as requests to the generation AI server 130's API via the communication unit 201. The API gateway 213 then receives the answer as a response from the generation AI server 130's API. The API gateway 213 then passes the received answer to the question answering unit 212.

[0035] Interface 216 serves as the interface between the information processing device 100 and the terminal device 120. Interface 216 provides a conversation screen based on the question answering unit 212 to the display unit 305 and also accepts operations and questions from the user 110 via the operation unit 303.

[0036] The software analysis unit 214 analyzes the software assets 400 of the current system 170. Specifically, it analyzes the correspondence between the manual 401, design documents 402, source code 403, and executable files 404, and checks for any inconsistencies between their contents.

[0037] The source code analysis unit 215 analyzes the source code 403 to evaluate the difficulty of the system migration through modernization.

[0038] <Terminal device configuration> Next, an example of the functional configuration of the terminal device 120 will be described with reference to Figure 3. In this embodiment, a personal computer is used as an example of the terminal device 120. Note that each of the functional blocks described with reference to the following figures may be integrated or separated, and the functions described may be implemented in other blocks. Also, what is described as hardware may be implemented in software, and vice versa.

[0039] The communication unit 301 includes, for example, a communication circuit, and connects to a network, for example via wireless LAN communication, to communicate with the information processing device 100.

[0040] The control unit 302 includes a processor 310 and a memory 311, and controls the operation of each part of the terminal device 120 by having the processor 310 execute a computer program stored in, for example, the storage unit 306. The processor 310 includes one or more processors, and the memory 311 includes volatile memory such as DRAM.

[0041] The operation unit 303 includes input devices such as a keyboard, mouse, buttons, and touch panel provided by the terminal device 120, and accepts user operations on the keyboard and mouse, as well as on the GUI for various operations displayed on the display unit 305. The power supply unit 304 supplies power to each part of the terminal device 120.

[0042] The display unit 305 includes, for example, a display device such as an LCD or OLED. The display unit 305 displays the conversation screen received from the information processing device 100 in accordance with instructions from the control unit 302. The control unit 302, for example, executes a web browser or a dedicated application to display the conversation screen received from the information processing device 100 on the display unit 305.

[0043] The storage unit 306 includes, for example, non-volatile memory such as semiconductor memory, and holds programs and settings executed by the control unit 302. The computer programs held in the storage unit 306 include operating systems and various applications for realizing the various functions of the terminal device 120.

[0044] <Current System Configuration> Next, with reference to Figure 4, the current system 170 that is the target of modernization by the information processing device 100 in this embodiment will be described. The current system 170 includes a manual 401, a design document 402, source code 403, and an executable file 404. The current system 170 may be, for example, a mainframe system. Due to modifications to the system to date, the manual 401, design document 402, and source code 403 may not be consistent. Also, the programming language of the source code 403 may be written in various languages. Furthermore, if the vendor changes, due to contracts, copyrights, etc., the executable file 404 of the current system 170 may exist, but the source code 403 may not. The manual 401, design document 402, source code 403, and executable file 404 included in the current system 170 are collectively referred to as software assets 400.

[0045] In order to modernize the current system 170, it is first necessary to correctly understand the state of the current system 170, determine a policy, and then create a modernization execution plan. Therefore, in this embodiment, the software assets of the current system 170 are structured. Referring to Figure 5, the process of structuring the software assets 400 of the current system 170, which is executed in the information processing device 100, will be described.

[0046] This process is achieved by the CPU 210 of the control unit 202 reading the computer program stored in the program storage unit 221 of the storage unit 204 into the memory 211 and executing it. In this embodiment, the process of associating the manual 401, design document 402, source code 403, and executable file 404 of the current system 170 is performed. In addition, the executable file 404 is structured by a description classification process and then associated with the source code 403.

[0047] In S501, the software analysis unit 214 obtains the manual 401, design document 402, source code 403, and executable file 404 from the current system 170. The following description will explain an example where the source code 403 is written in the Java programming language and the executable file 404 is a Jar file, but the programming language of the source code 403 is not limited to this.

[0048] In S502, the software analysis unit 214 and the control unit 202 first perform the mapping of manual 401, design document 402, source code 403, and executable file 404. Through this mapping, they identify the manual 401, design document 402, and source code 403 that correspond to the executable file 404 of the current system 170.

[0049] The software analysis unit 214 analyzes whether the source code 403 and the executable file 404 are identical, that is, whether the executable file 404 is a compilation of the source code 403. The software analysis unit 214 also analyzes whether the functions of the design document 402 are implemented in the source code 403, whether any functions not present in the design document 402 are implemented in the source code 403, whether any functions defined in the design document 402 have been removed from the source code 403, and whether there are any discrepancies between the functions defined in the design document 402 and the functions implemented in the source code 403.

[0050] The software analysis unit 214 may analyze the correspondence between the design document 402 and the source code 403 by having the generation AI server 130 generate a design document from the source code 403. Alternatively, the correspondence between the source code 403 and the design document 402 may be identified by comparing the design document generated by the generation AI server 130 from the source code 403 with the design document 402 of the current system 170.

[0051] Furthermore, the software analysis unit 214 analyzes the correspondence and consistency between the manual 401, the design document 402, and the source code 403. It analyzes whether the functions implemented in the design document 402 and the source code 403 are described in the manual 401. The software analysis unit 214 may also have the generating AI server 130 analyze the correspondence and consistency between the source code 403, the design document 402, and the manual 401. If there is no complete correspondence between the manual 401, the design document 402, the source code 403, and the executable file 404, the software analysis unit 214 will say that there is a discrepancy, inconsistency, or mismatch.

[0052] The software analysis unit 214 can analyze correspondences, consistency, and inconsistencies using comments included in the source code 403, functional descriptions included in the manual, and functional descriptions included in the design document 402. Furthermore, by compiling the source code 403, it can analyze the correspondence between the source code 403 and the executable file 404. The degree of agreement between the executable file generated by compiling the source code 403 and the executable file 404 included in the current system 170 may be verified. Alternatively, the executable file generated by compiling the source code 403 and the executable file 404 included in the current system 170 may be executed to compare their functions. The software analysis unit 214 may also have the generation AI 130 perform the correspondence analysis process for the manual 401, design document 402, source code 403, and executable file 404 via the API gateway 213.

[0053] Next, in S503, the software analysis unit 214 obtains descriptions from the executable file 404 that match each element of the database model (each element that classifies the program elements). At this time, the executable file 404 may be used, or the source code 403 may be compiled to generate executable code. When the source code 403 is compiled, it is possible to check whether the contents of the source code and the executable file 404 match by comparing them with the executable file 404.

[0054] Here, we will refer to Figure 6 to explain examples of each element of the database model. Figure 6 shows an example of a database model for classifying Java program elements based on the Java language specification. Each element 601 shown in Figure 6 is represented by a pair of a program element name 602 and an example of the code corresponding to that element 603. Elements for classifying program elements include, as shown in Figure 6, importing code, annotations, methods, code that creates instances, code that throws exceptions, code that casts variable types, code that calls methods, code that accesses specific variables of a class, and parameters.

[0055] In S504, the control unit 202 generates JSON data containing descriptions that match each element of the database model from the executable code of the executable file 404. By generating JSON data once, each value of the JSON data can be easily added to the database using a database language. For example, Figure 7 shows an example of JSON data 700 generated when the source code 800 shown in Figure 8 is input. In the example shown in Figure 10, the Java source code 800 includes imported code, annotations, methods, and code that throws exceptions. From such executable code, descriptions that match each element of the database model are obtained to generate the data shown in Figure 7. In the example shown in Figure 7, corresponding descriptions are stored in elements 701 to 703 and elements 711 to 714, which are further configured under element 702, respectively, that correspond to the database model shown in Figure 6.

[0056] In this embodiment, for example, the description in the executable code of the executable file 404 that matches each element of the database model includes the line number of the source code. In this way, the location of the executable code of the executable file 404 and the location of the corresponding source code 403 can be identified. Furthermore, in this way, inconsistencies between the source code 403 and the executable code of the executable file 404 can be identified, and the contents of the executable code can be provided to the user in a source code format that is easy for humans to understand.

[0057] In S505, the software analysis unit 214 stores the correspondence between the manual 401, the design document 402, the source code 403, and the executable file 404 in a database. It also stores the description in the JSON format data of the executable code of the executable file 404 in the analysis result storage unit 224 of the storage unit 204. The software analysis unit 214 stores each value of the data stored in the file in the analysis result storage unit 224 by executing a process written in a database language, for example, on the JSON format data. At this time, the software analysis unit 214 associates the description that matches each element of the database model in the executable code of the executable file 404 with the corresponding line number of the source code and stores them in the analysis result storage unit 224. Once the software analysis unit 214 has stored the data of the JSON format file in the analysis result storage unit 224, it terminates the process shown in Figure 5.

[0058] The above process structures the software assets 400 of the current system 170. Next, the structured software assets 400 are analyzed. Referring to Figure 9, the analysis of the structured software assets 400 performed in the information processing device 100 will be explained.

[0059] This process is achieved when the CPU 210 of the control unit 202 reads a computer program stored in the program storage unit 221 of the storage unit 204 into the memory 211 and executes it.

[0060] This process analyzes inconsistencies between manual 401, design document 402, and source code 403. In S901, the CPU 210 retrieves source code 403. In S902, the software analysis unit 214 sends source code 403 to the generation AI server 130 via the API gateway 213, along with a prompt to generate a design document. The generation AI server 130 generates a design document from the received source code 403 and sends it to the information processing device 100.

[0061] Next, in S903, the software analysis unit 214 sends the existing design document 402 and the generated design document to the generation AI server 130 via the API gateway 213, causing the generation AI server 130 to perform a comparison. In S903, the manual 401 may also be sent along with the existing design document 402, causing the generation AI server 130 to perform a comparison of the existing manual 401 and design document 402 with the generated design document.

[0062] Next, in S904, the software analysis unit 214 identifies inconsistencies based on the comparison results between the existing design document 402 and the generated design document. Inconsistencies between the existing design document 402 and the design document generated from the source code 403 indicate a discrepancy between the design document 402 and the source code 403. This discrepancy between the design document 402 and the source code 403 poses a modernization risk.

[0063] Next, in S905, the software analysis unit 214 stores the results of its analysis of the design document 402 and source code 403 in the analysis result storage unit 224 of the storage unit 204.

[0064] Referring to Figure 10, an example of how the analysis results by the software analysis unit 214 are displayed will be explained. Since the source code 403 is associated with the executable file 404, it is possible to indicate inconsistencies in the correspondence between the design document 402 and the executable code of the executable file 404. The display may be shown using different colors depending on the number of inconsistencies and the degree of inconsistency.

[0065] The example of the analysis results in Figure 10 shows that there is an inconsistency between the design document and the source code and executable code that are throwing the exception. By displaying the results in this way, it is possible to identify the inconsistencies and their locations in the design document 402, source code 403, and executable file 404. This allows user 110 to understand how the current system 170 operates and whether it operates according to the design document 402. Furthermore, user 110 can consider whether to perform modernization based on the design document 402 or based on the current operation of the existing system 170.

[0066] Next, with reference to Figure 11, the analysis process of source code 403 will be described. In S1101, the source code analysis unit 215 acquires the source code 403 of the current system 170.

[0067] In S1102, the source code analysis unit 215 sends the source code 403 to the generation AI server 130 via the API gateway 213, along with a prompt for analyzing the source code 403, causing the generation AI server 130 to analyze the source code 403. The prompt for analyzing the source code 403 includes instructions indicating the details of the system migration and the difficulty and rationale for migrating the source code 130. The details of the system migration included in the prompt identify what kind of system the new system will be and indicate that the current system will be migrated to the new system.

[0068] The generating AI server 130 indicates the difficulty of the migration and the basis for it when the source code 130 is migrated to the system. The source code 403 that the source code analysis unit 215 has the generating AI server 130 evaluate may be a single file, multiple files included in the current system 170, or all files of the current system 170 that are subject to migration.

[0069] For example, when migrating software from a specific vendor's mainframe to an open-source framework, the source code analysis unit 215 may include a prompt instructing the generation AI server 130 that indicates the difficulty of the migration, such as the following: (1) Extraction of processes that depend on the vendor-dependent proprietary framework of the current system. (2) How to migrate to an open-source framework (3) Identifying outdated technologies and replacing them with the latest standard technologies (4) Identify the scope of impact of the transition and propose countermeasures. The source code analysis unit 215 then prompts the generating AI server 130 to provide a three-stage evaluation of the difficulty of the source code migration and the rationale for it, based on these items, including the time required for migration, the risks, the costs, and the degree to which the skill set is applicable.

[0070] In S1103, the source code analysis unit 215 receives a three-stage evaluation of the difficulty level of source code migration and the basis for that evaluation from the generation AI server 130 via the API gateway 213.

[0071] In S1104, the interface 216 causes the display unit 305 of the terminal device 120 to display the evaluation result of the difficulty of source code migration. Referring to Figure 12, the visualization of the evaluation result of the difficulty of migration, which was analyzed by the source code analysis unit 215 for one file of source code 403, will be explained. The difficulty evaluation result shown in Figure 12 is displayed on the display unit 305, for example, when the interface 216 of the information processing device 100 creates page information for display and sends it to the terminal device 120, and the terminal device 120 executes a browser application.

[0072] Figure 12 illustrates how the screen 1200 displaying the evaluation results of the difficulty of the migration is shown on the display unit 305 of the terminal device 120. The screen 1200 includes the source code to be migrated 1201, the problems related to the migration 1202, the difficulty of the change 1203, and the basis for the difficulty of the change 1204.

[0073] The example in Figure 12 shows an evaluation of the migration difficulty of "xxx.java" 1201, which is a file in the source code 403 of the current system 170. Migration issue 1202 indicates that, regarding SQL processing optimization, the class that manages access to the database is a proprietary class of the vendor's mainframe.

[0074] Change difficulty 1203 indicates that the difficulty of modifying the source code for the migration is Medium. Rationale for change difficulty 1204 indicates that replacing a mainframe class with any class from the open-source framework would have a moderate impact.

[0075] Next, referring to Figure 13, we will explain the visualization of the migration difficulty evaluation results obtained by the source code analysis unit 215 after analyzing the source code 403 of multiple files. The migration difficulty evaluation results 1300 shown in Figure 13 are displayed on the display unit 305, for example, when the interface 216 of the information processing device 100 creates page information for display and sends it to the terminal device 120, and the terminal device 120 executes a browser application.

[0076] Figure 13, in the evaluation results 1300 of the migration difficulty, lists the following items as examples of issues for batch processing and online processing, under item 1301: replacement of vendor system-dependent processing, optimization of SQL processing, replacement of logging processing, replacement of date manipulation APIs, replacement of deprecated APIs and outdated technologies, replacement of authorization processing, replacement of error handling, replacement of web services, replacement of workflow processing, and replacement of workflow processing. For online processing, it further provides the example of migration from RMI to RESTful API.

[0077] I will explain each of them. First, replacing vendor-dependent processes involves replacing functions and processes that are dependent on a specific vendor with general-purpose technologies and frameworks that can be used in other environments. This allows for adaptation to future technological changes and avoids the risk of vendor lock-in.

[0078] SQL processing optimization improves the efficiency of SQL queries in the database, enhancing response speed and performance. This includes simplifying redundant queries, leveraging indexes, and implementing modern database features.

[0079] Replacing logging processes replaces outdated logging libraries and inefficient logging designs with modern frameworks, making log management and analysis easier.

[0080] Replacing date manipulation APIs improves code readability and maintainability by replacing deprecated, older date APIs with modern, user-friendly ones.

[0081] Replacing deprecated APIs and outdated technologies involves migrating older, unmaintained, or deprecated APIs and technologies to newer technologies with improved security and performance. This prevents future compatibility issues.

[0082] Replacing authorization processes involves replacing older authentication methods with secure and scalable methods such as OAuth or JWT to reduce security risks. This improves the standardization and extensibility of authentication processes.

[0083] Replacing error handling involves migrating outdated exception handling logic and inefficient error handling designs to a structured exception handling framework, thereby improving the efficiency of error detection and management.

[0084] Replacing web services involves migrating older web service technologies such as SOAP to lighter and more flexible technologies such as RESTful APIs, thereby improving the efficiency of inter-service communication.

[0085] Workflow processing replacement involves replacing traditional manual processes and inefficient tools with BPM (Business Process Management) tools and orchestration frameworks to achieve automation and improved efficiency.

[0086] Migrating from RMI to a RESTful API can enhance security and improve network traversability by moving from RMI, a proprietary Java-based distributed object technology, to a RESTful API that uses the HTTP protocol and allows the use of any language. RESTful APIs enable encrypted communication using HTTPS and the use of common authentication frameworks. In addition, by using the standard HTTP protocol, they reduce network environment constraints and increase communication flexibility.

[0087] Migrating from RMI to RESTful APIs, replacing vendor-dependent processes, and replacing workflow processes generally involve significant changes and are therefore difficult. Replacing deprecated APIs or older technologies, optimizing SQL processing, and replacing web services generally involve moderate migration difficulty. Replacing authorization processes, error handling, logging processes, and date manipulation APIs can be handled with localized changes and are generally easy to migrate.

[0088] From the migration difficulty evaluation result 1300 in Figure 13, the difficulty of the overall system migration work can be quantified and evaluated by summing the low, medium, and high difficulty levels of the source code migration for each function. The value 1300 in the source code migration difficulty evaluation result 1300 in Figure 13 simply represents the sum of the number of items that were pointed out, but weights can also be assigned to the low, medium, and high difficulty levels. For example, a weight of 1 could be assigned to low difficulty, a weight of 2 to medium difficulty, and a weight of 3 to high difficulty, and the total value could be calculated by multiplying the number of items by these weights.

[0089] Returning to the explanation in Figure 11, in S1105, the source code analysis unit 215 stores the analysis result of the source code 403 in the analysis result storage unit 224 of the storage unit 204, and the flow in Figure 11 ends.

[0090] Furthermore, the difficulty of the system migration may be evaluated by considering the correspondence between manual 401, design document 402, source code 403, and executable file 404, as well as the difficulty of migrating source code 403.

[0091] Referring to Figure 14, the visualization of the evaluation results for assessing the difficulty of system migration by the software analysis unit 214 and the source code analysis unit 215 will be explained. The difficulty evaluation results shown in Figure 14 are displayed on the display unit 305, for example, when the interface 216 of the information processing device 100 creates page information for display and sends it to the terminal device 120, and the terminal device 120 executes a browser application.

[0092] Figure 14 illustrates how screen 1400, which displays the evaluation results of the migration difficulty, is displayed on the display unit 305 of the terminal device 120. Screen 1400 includes the number 1401 of manuals, design documents, source code, and executable files to be migrated. If there are inconsistencies in the manuals, design documents, or source code, inconsistencies 1402 are displayed. Inconsistencies 1402 represent the number of each item, including inconsistencies, out of the total number of manuals, design documents, and source code items. The migration difficulty of the source code 1403 displays the number of source codes with high, medium, and low migration difficulty relative to the total number of source codes. By visualizing the difficulty of system migration when performing such modernization, the user 110 can understand the difficulty of modernizing the current system.

[0093] As explained above, in this embodiment, by analyzing the correspondence between the current system's manuals, design documents, source code, and executable files, and visualizing the analysis results, it is possible to grasp the modernization risks due to inconsistencies and discrepancies among them. Furthermore, by analyzing the difficulty of migrating the source code and visualizing the analysis results, it is possible to grasp the difficulty of migrating the source code.

[0094] The invention is not limited to the embodiments described above, and various modifications and changes are possible within the scope of the gist of the invention. [Explanation of Symbols]

[0095] 100: Information processing device, 120: Terminal device, 130: Generation AI server, 170: Current system, 214: Software analysis unit, 215: Source code analysis unit,

Claims

1. A source code acquisition method for obtaining one or more source codes of the current system, A prompt generation means for specifying the content of the system migration and generating a prompt for the generating AI to respond regarding the difficulty of migrating the one or more source codes, The system includes one or more source codes, a difficulty evaluation means that causes the generating AI to respond with the difficulty of migrating the one or more source codes based on the prompt, and evaluates the difficulty of migrating the system based on the response, A visualization means for visualizing the difficulty of the aforementioned system migration, An information processing device equipped with the following features.

2. The evaluation of the difficulty of the aforementioned system migration includes the difficulty of migrating one or more source codes and the basis for that difficulty. The information processing apparatus according to claim 1.

3. The evaluation of the difficulty of the aforementioned system migration includes quantifying the difficulty of migrating one or more source codes. The information processing apparatus according to claim 1.

4. A software asset acquisition method for acquiring one or more software assets of the current system, An analysis means for analyzing the correspondence and inconsistencies of the one or more software assets acquired, A visualization means for visualizing the correspondence and inconsistencies of the one or more software assets that have been analyzed, An information processing device equipped with the following features.

5. The aforementioned one or more software assets include manuals, design documents, source code, and executable files. The information processing apparatus according to claim 4.

6. The analysis means causes the generating AI to analyze the correspondence and inconsistencies of the one or more software assets based on the prompt. The information processing apparatus according to claim 5.

7. A program that causes a computer to function as one of the means of an information processing device according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Source code conversion device and program

    JP6982920B1

  • Information processing device and program

    JP7514149B2