Information processing device and program

The information processing apparatus enhances source code generation by refining basic design documents and integrating error correction, addressing inaccuracies and errors in existing AI-based code generation methods.

JP2026109272APending Publication Date: 2026-07-01NOMURA RESEARCH INSTITUTE

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
NOMURA RESEARCH INSTITUTE
Filing Date
2024-12-19
Publication Date
2026-07-01

AI Technical Summary

Technical Problem

Existing automated source code generation techniques using generative AI struggle with accuracy and error correction, particularly when relying solely on basic design documents, leading to inaccuracies and difficulties in correcting errors.

Method used

An information processing apparatus that includes a detailed design document generation means to refine basic design documents, a transmission means to send these documents to a generation AI server, and a receiving means to handle the generated source code, along with error correction capabilities.

Benefits of technology

Enables the generation of highly accurate source code and facilitates easy error correction, improving the overall quality and reliability of the code generation process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026109272000001_ABST
    Figure 2026109272000001_ABST
Patent Text Reader

Abstract

This technology enables the generation of highly accurate source code and facilitates error correction. [Solution] The information processing device according to this embodiment includes: detailed design document generation means for dividing a basic design document and generating a detailed design document based on detailed design document generation rules; transmission means for sending the generated detailed design document, along with an instruction to generate source code, to a generation AI server; and receiving means for receiving the source code generated by the generation AI server.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0004] , , , , , , , ,

[0006] , , , ,

[0005] , , , , ,

[0007] , , ,

[0001] The present invention relates to an information processing apparatus and a program.

Background Art

[0002] In the development process of system development, the source code of a program was manually generated based on a basic design document (specification). In recent years, there has been a trend to automate this development process using generative AI.

[0003] In Patent Document 1, a technique for automatically generating the source code of a program based on a basic design document (specification) is proposed.

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] In the technique proposed in Patent Document 1, specification definition information that defines a method for extracting design information from a specification, source code generation definition information that defines a method for generating source code, and a source code template that is a prototype of the source code are prepared in advance to generate the source code. When generating source code with generative AI, there was a problem that accurate and correct source code could not be generated even when only the basic design document (specification) was given. Also, it was difficult to correct errors after generating the source code.

[0006] The present invention has been made in view of the above problems, and its object is to realize a technique capable of generating highly accurate source code and a technique for facilitating error correction.

Means for Solving the Problems

[0007] To solve this problem, for example, the information processing apparatus of the present invention has the following configuration: a detailed design document generation means that divides a basic design document and generates a detailed design document based on a detailed design document generation rule; a transmission means that sends the generated detailed design document, along with an instruction to generate source code, to a generation AI server; and a receiving means that receives the source code generated by the generation AI server. [Effects of the Invention]

[0008] According to the present invention, it becomes possible to generate highly accurate source code and to easily correct errors. [Brief explanation of the drawing]

[0009] [Figure 1] A diagram illustrating an overview of an information provision system according to an embodiment of the present invention. [Figure 2] This block diagram shows an example of the functional configuration of the information processing device according to this embodiment. [Figure 3] A block diagram showing an example of the functional configuration of the terminal device according to this embodiment. [Figure 4] A flowchart illustrating the process for generating detailed design documents according to this embodiment. [Figure 5] A diagram illustrating an example of a basic design document according to this embodiment. [Figure 6] This figure shows an example of a drawing in the basic design document according to this embodiment. [Figure 7] This figure shows an example of a basic design document in text format according to this embodiment. [Figure 8] This figure shows an example of a drawing according to this embodiment converted into text format. [Figure 9] This figure illustrates a method for converting the drawings according to this embodiment into text format. [Figure 10] This figure shows an example of a detailed design document for a service class according to this embodiment. [Figure 11] This figure shows an example of a detailed design document for a DAO class according to this embodiment. [Figure 12]This figure shows an example of a detailed design document for a DTO class according to this embodiment. [Figure 13] This figure shows an example of the source code for a service class according to this embodiment. [Figure 14] This figure shows an example of the source code for the DAO class according to this embodiment. [Figure 15] This figure shows an example of a script that creates a table in the database according to this embodiment. [Figure 16] This figure shows an example of the source code for a DTO class according to this embodiment. [Figure 17] A sequence diagram illustrating the error correction process in the source code according to this embodiment. [Modes for carrying out the invention]

[0010] The embodiments will be described in detail below with reference to the attached drawings. Note that the following embodiments do not limit the invention as defined in the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more of the features described in the embodiments may be combined in any way. Furthermore, identical or similar configurations will be given the same reference numeral, and redundant descriptions will be omitted.

[0011] <Overview of the Information Processing System> Figure 1 shows an overview of the information processing system according to this embodiment. The information processing system 10 according to this embodiment includes, for example, as an example, an information processing device 100 that is an information processing server, a terminal device 120 that is, for example, a personal computer, and a generation AI server 130. Referring to Figure 1, the information processing system according to this embodiment will be described. The information processing system 10 includes 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 150 (for example, the Internet) through a firewall 160. The LAN 140 may be, for example, a network inside a company or an organization.

[0012] The terminal device 120 and the information processing device 100 can communicate with each other within the LAN 140 (that is, without passing through the external network 150). Also, each of the terminal device 120 and the information processing device 110 can communicate with the generation AI server 130 through the LAN 140, the firewall 160, and the external network 150. The terminal device 120 may be connected to the external network 150 through a cellular network (for example, a network compliant with the 4th generation communication standard (4G) or the 5th generation communication standard (5G)).

[0013] The information processing system 10 generates the source code of a program written in a predetermined programming language based on the basic design document of the system. Also, the generated source code is compiled to generate executable code, and it has a function to repair compilation errors.

[0014] The terminal device 120 is a device used, for example, by a user 110 who is developing a system. By operating the terminal device 120, the user 110 instructs the information processing device 100 to create a basic design document for the system, generate source code from the basic design document, compile the source code, and repair compilation errors. In addition, the basic design document and other documents created by the user 110 in the terminal device 120 are transmitted to the information processing device 100 and stored therein.

[0015] Access to the information processing device 100 from an external network 150, such as the Internet, is blocked by a firewall 160. 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 cases where some or all of the functions of the information processing device 100 operate in a cloud environment.

[0016] The information processing device 100 receives the basic design document of the system from the terminal device 120 and stores it in the storage unit 204. The information processing device 100 generates a detailed design document from the basic design document based on instructions from the user 110 via the terminal device 120. The generated detailed design document is sent to the generation AI server 130 via instructions from the user 110 via the terminal device 120, and source code is generated.

[0017] The information processing device 100 receives source code from the generation AI server 130 and stores it in the storage unit 204. Based on instructions from the user 110 via the terminal device 120, it compiles the source code and generates executable code. If a compilation error occurs, the user 110 via the terminal device 120 sends the source code and error information to the generation AI server 130 to correct the compilation error and debug.

[0018] 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, and may be a machine learning model that includes 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.

[0019] In this embodiment, the generation AI server 130 is installed on an external network 150, and the information processing device 100 connects to it via a firewall 160 and the external network 150. The installation and connection configurations of the generation AI server 130 are not limited to this. The generation AI server 130 may be an on-premises system within the company, or a generation model or server provided by a third party may be used. If the generation AI is owned internally, 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 is configured not to perform machine learning based on the content of the questions. Therefore, the system is configured not to leak internal company information to the outside via the generation AI.

[0020] <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 the figure 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. In addition, this embodiment describes the case where the information processing device 100 is a single device, but the information processing device 100 may consist of multiple devices, or it may be configured as one or more virtual machines.

[0021] The information processing device 100 comprises a communication unit 201, a control unit 202, a power supply unit 203, and a storage unit 204. The communication unit 201 includes a communication circuit or communication module that communicates with a terminal device 120 used by a user via a network. The communication unit 201 also connects to an external network 150 via a LAN 140 and a firewall 160, and communicates with the generation AI server 130.

[0022] 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 220 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.

[0023] 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.

[0024] The storage unit 204 includes, for example, a non-volatile storage medium such as a hard disk or semiconductor memory, and stores setting values ​​and calculation results necessary for the operation of the information processing device 100. The storage unit 204 may include a database internally. The database stores the system's basic design document 222, detailed design document 223, source code 224, and conversation history 225.

[0025] 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 composed of a question answering unit 212, an API gateway 213, a development tool 214, a basic design document generation unit 215, a detailed design document generation unit 216, a source code generation unit 217, a compilation unit 218, an error correction unit 219, an interface 220, and a language server 221.

[0026] 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 220 to generate a display screen in response to the answers from the generation AI server 130, and the interface 220 displays it on the display unit 305 of the user 110's terminal device 120.

[0027] 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 225 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 225, supplements with necessary information, and generates prompts. Then, in cooperation with the API gateway 213, it sends the prompts to the generation AI server 130.

[0028] 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.

[0029] Interface 220 serves as the interface between the information processing device 100 and the terminal device 120. Interface 220 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.

[0030] In this embodiment, the development tool 214 is a tool for user 110 to perform system development, and has file management functions, functions for creating basic design documents and detailed design documents, and an editor function for creating source code. In this embodiment, the development tool 214 is a tool that uses an IDE (Integrated Development Environment). An IDE is a programming environment that integrates multiple developer tools necessary for application construction (source code editor, build tool, debugger, etc.) and makes them available through a single GUI (Graphical User Interface). The source code editor is a text editor equipped with various functions useful for coding software, and includes syntax highlighting, language-specific auto-completion, and bug checking functions that run simultaneously with code input. Local build automation is a function that streamlines repetitive build tasks such as compiling source code, creating binaries, and running automated tests. The debugger is a tool that tests a running program step by step and visually displays error locations and variable states.

[0031] LSP (Language Server Protocol) is a protocol that standardizes communication between IDEs and programming language tools. By using LSP, development tools 214 can make the same functionality available in the IDE for multiple programming languages. For example, VS Code supports many languages ​​such as JavaScript, Python, and C# through LSP. Development tools 214 communicate with language servers 221 via LSP.

[0032] The language server 221 provides programming language-specific services to the development tool 214 to streamline source code editing and debugging when the development tool 214 generates source code. When source code is loaded into the development tool 214, the language server 221 corresponding to the source code is started. The development tool 214 communicates with the language server 221 via the LSP, and the source code loaded by the development tool 214 is sent to the language server 221. The language server 221 analyzes the transmitted source code, performing syntax error and structure checks, type checks and symbol resolution, and understanding dependencies. The language server 221 also sends the source code analysis results to the development tool 214, and the development tool 214 displays error locations, warnings, and completion candidates based on the transmitted analysis results.

[0033] The basic design document creation unit 215 is a functional unit in the development tool 214 that creates the basic design document. The user 110 operates the development tool 214 and creates the basic design document using the basic design document creation unit 215. The basic design document creation unit 215 assists the user 110 in creating the basic design document. For example, it has functions such as providing basic design document templates, components, and similar basic design documents from the past.

[0034] The detailed design document generation unit 216 generates the detailed design document 223 from the basic design document 222 in cooperation with the generation AI server 130, either based on instructions from the user 110 via the development tool 214 or automatically. The generation of the detailed design document 223 from the basic design document 222 will be described later.

[0035] The source code generation unit 217 generates source code based on the detailed design document 223, either in response to instructions from the user 110 via the development tool 214, or automatically, in cooperation with the generation AI server 130.

[0036] The compilation unit 218 compiles the source code 224 to generate executable code, either based on instructions from the user 110 via the development tool 214 or automatically.

[0037] The error correction unit 219 works in cooperation with the generation AI server 130 to identify and correct compilation errors. The user 110 can also edit the source code and correct errors using the editor of the development tool 214.

[0038] <Configuration of terminal device 120> 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 a terminal device, but the terminal device may be other electronic devices such as a tablet terminal. 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 communication circuits and other components, and communicates with the information processing device 100 by connecting to the internet via mobile communication such as LTE, or by connecting to a network via wireless LAN communication.

[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 recorded in the storage unit 307, for example.

[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 101 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 101 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] <Process for generating detailed design documents> Next, we will describe the process of generating detailed design documents executed in the information processing device 100. First, we will explain the basic design document and the detailed design document in system development.

[0045] In system development, user 110 creates a basic design document 222 on terminal device 120 and stores it in the memory unit 204 of information processing device 100. In system development, user 110 first defines the requirements. In requirements definition, user 110, together with the client, decides what kind of system to create, what development method will be used, the implementation and operation methods, budget, development period, and other requirements necessary for system development.

[0046] Next, user 110 uses development tool 214 to create a basic design document 222 based on the requirements definition. The basic design document creation unit 215 assists user 110 in creating the basic design document 222. The basic design document 222 is a document created during the design phase of the entire system, and is created with the aim of aligning understanding with the client based on the contents of the requirements definition. It is also called external design because it determines the interface, the part of the system that will behave from the perspective of the user using the client's system. Basic design documents 222 are often created for each function of the system. The basic design document 222 describes the general design of the system, such as its basic configuration, architecture, functions, performance, and security. It also includes the objectives, scope, constraints, schedule, and risk management plan of the development project. Since the basic design document 222 is a document that the client will review, it rarely contains technical terms or complex data.

[0047] While it is possible to have the AI ​​server 130 generate source code based on the basic design document 222 created by user 110, since the basic design document 222 was created for the client, generating source code based on the basic design document 222 will not produce highly accurate source code. Therefore, in this embodiment, a detailed design document 223 is generated based on the basic design document 222.

[0048] Detailed Design Document 223 is a document that describes how to implement the system's functions for programming, based on Basic Design Document 222. It is a design document that divides the functions to be included in the system into modules and envisions their specific implementation.

[0049] Since the basic design document 222 is created by roughly dividing it by function, it is common for multiple basic design documents to be created for a single system. The detailed design document 223 is generated based on the basic design document 222, further dividing it into classes for each individual function. Typically, multiple detailed design documents 223 are created from one basic design document 222.

[0050] Referring to Figure 4, the method for generating the detailed design document 223 from the basic design document 222 will be explained. This method is achieved by the processor 210 of the control unit 202 of the information processing device 100 executing a computer program recorded in the storage unit 204.

[0051] In this embodiment, the system is described on the premise that it is built using object-oriented programming, but it is not limited to object-oriented programming. First, user 110 creates a basic design document 222 using development tool 214. Basic design document creation unit 215 assists user 110 in creating the basic design document. Basic design documents are often created in the form of document editing software or spreadsheets. Therefore, the way they are written and the format vary from engineer to engineer. The created basic design document 222 is stored in storage unit 204. As an example of a created basic design document, Figure 5 shows a basic design document 500 for a customer management system.

[0052] Referring to Figures 4 to 6, the process by which the detailed design document generation unit 216 generates a detailed design document from a basic design document in spreadsheet format will be explained. First, the user 110 identifies the basic design document 222 via the development tool 214 from the terminal device 120 and instructs the information processing device 100 to generate a detailed design document. In S401, the detailed design document generation unit 216 of the information processing device 100 reads the basic design document 222, which was created using document editing software or a spreadsheet and stored in the storage unit 220.

[0053] This explanation of a basic design document will use the basic design document 500 of the customer management system shown in Figure 5 as an example. The basic design document 500 describes a customer management system that manages customer information in a database, making it possible to register, update, delete, and search for customer information. The basic design document 500 consists of the system name 501, purpose 502, function list 503, data items 508, and system configuration diagram 509. The function list 503 includes functions 504, overviews 505, inputs 506, and outputs 507. The data items 508 describe the database data items required for each function. Here, customer ID, name, address, and telephone number are included as data items, and their respective data types are described. The system configuration diagram 509 is described in SVG format (Scalable Vector Graphics format) as shown in Figure 6, and shows that a user operates a web application to perform the operations listed in the function list 503 on the database.

[0054] The system configuration diagram 509 in Figure 5 is described and displayed using the SVG code 610 in Figure 6. The system configuration diagram 600 in Figure 6 is a reproduction of the system configuration diagram 509 in Figure 5. The user box 601 in system configuration diagram 600 is described using SVG code 610, specifically 611. The web application box 602 in system configuration diagram 600 is described using SVG code 610, specifically 612. The database box 603 in system configuration diagram 600 is described using SVG code 610, specifically 613. Also, the arrow 604 in system configuration diagram 600 is described using SVG code 610, specifically the connecting line 614 and arrow 6141. The arrow 605 in system configuration diagram 600 is described using SVG code 610, specifically the connecting line 615 and arrow 6151.

[0055] Next, in S402, the detailed design document generation unit 216 converts the basic design document 222, which is written in free format, into a text file and adjusts the formatting. In this embodiment, as an example, the detailed design document generation unit 216 converts the basic design document 500, which is in spreadsheet format, into a Markdown file. At this time, the detailed design document generation unit 216 also converts the diagrams included in the basic design document 500, which are in image format such as SVG, into text format. In this embodiment, it is converted to Markdown format, but other text formats are also acceptable. For example, UML format may be used.

[0056] Figure 7 shows an example of converting a basic design document 500 in spreadsheet format to Markdown format. The detailed design document generation unit 216 converts the basic design document 500 to Markdown format using a rule-based method. The user 110 may edit the basic design document converted to Markdown format using the development tool 214.

[0057] Next, the conversion of drawings included in the basic design document in S403 to Markdown format will be explained with reference to Figures 6, 8, and 9. In Figure 9, the detailed design document generation unit 216 converts the SVG image 901 into graph-format text 903. The detailed design document generation unit 216 analyzes the SVG format drawings included in the basic design document from the SVG code and converts them into text data. For example, the detailed design document generation unit 216 converts the SVG images included in the basic design document into text data. The detailed design document generation unit 216 pre-defined the blocks, branches, and conditions of the SVG image into rules, analyzes the SVG code, and converts it into graph-format text data. For example, in the case of the system configuration diagram 600 in Figure 6, the detailed design document generation unit 216 converts the system configuration diagram 600 in Figure 6 into text that represents the flow of processing, starting from block 601 where the user starts processing, then from block 602 where the next processing is performed by the web application, then from block 603 where the next processing is performed by the database, and finally from block 603 where the processing ends. As a result, the detailed design document generation unit 216 converts the system configuration diagram 600 described in SVG code 610 in Figure 6 into graph-format text data 800 in Figure 8.

[0058] Furthermore, the detailed design document generation unit 216 converts the SVG image 901 into a PNG (Portable Network Graphics) image 902. The detailed design document generation unit 216 then generates a prompt 904 containing the PNG image 902 and graph-format text 903, and sends the prompt 904 to the generation AI server 130 via the API gateway 213. For example, in the case of the system configuration diagram 500 of the basic design document 500, the generation AI server 130 sends a prompt 904 containing the SVG image 610 of the system configuration diagram converted to PNG format, and graph-format text data 800, and converting to Markdown format. Based on the prompt 904, the generation AI server 130 sends the Markdown format text 905 of the SVG image to the information processing device 100. The information processing device 100 receives the system configuration diagram converted to Markdown format by the detailed design document generation unit 216 via the API gateway 213. The data converted to Markdown format is shown in the Markdown format system configuration diagram 801 in Figure 8. When the generation AI server 130 analyzes the basic design document from SVG images only, the processing order is generally recognized correctly, but the text portion included in the SVG images may not be recognized. Also, when the generation AI server 130 analyzes the basic design document from SVG code only, the text portion is recognized correctly, but there may be errors in the processing order. When the generation AI server 130 analyzes SVG images and text data together, it can correctly recognize the processing order and the text portion.

[0059] Next, in S403, the detailed design document generation unit 216 converts the format of the basic design document, which has been converted to Markdown format. For example, if the item numbers are written as (1) and (2), the unit converts the item numbers to 1. and 2. in Markdown format. It also changes the format of tables to bullet points. The format conversion may be performed using a rule-based method or may be performed by the generation AI server 130.

[0060] Next, in S404, the detailed design document generation unit 216 divides the basic design document, which has been converted to Markdown format, into classes and generates the detailed design document 223. The detailed design document generation unit 216 sends the basic design document, which has been converted to Markdown format, to the generation AI server 130 via the API gateway 213 and performs class division. The detailed design document generation unit 216 determines which layer—presentation layer, service layer, data access layer, or database layer—the processing content will be implemented in, as well as the logical name, physical name, and directory structure of each class, according to the detailed design document generation rules, and performs class division. The detailed design document generation rules define the rules for creating the detailed design document 223 from the basic design document 222. The detailed design document generation rules define, for example, the definition of the class structure, the deletion of history included in the basic design document 222, the addition of table indexes, and the supplementation or deletion of API path names. Detailed design document generation rules may be prepared separately for each type of system being developed.

[0061] In the example of the basic design document 500 for the customer management system, the detailed design document generation unit 216 divides the basic design document, which has been converted to Markdown format, into parts for presentation classes, service classes, DAO classes, DTO classes, etc., using the generation AI server 130. The presentation class is responsible for the user interface layer and mainly manages the interaction between the application and the user. The presentation class receives input from the user, sends a request to the service class, and displays the processing result in a format that is easy for the user to understand. The service class is the layer that manages the business logic of the application. The service class is responsible for processing requests received from the presentation class, calling the DAO class as needed to perform database operations, and returning the processing result to the presentation class. The DAO class is a class that specializes in database operations and is responsible for connecting to the database, executing SQL queries (data retrieval, insertion, update, deletion, etc.), and separating database operations from business logic. The DTO class is a class for exchanging data and is dedicated to data transfer, so it does not contain processing logic and is used to pass data between the presentation class, service class, and DAO class. DTO classes typically only contain fields and their accessor methods (getters / setters).

[0062] Next, in S405, the detailed design document generation unit 216 sends the basic design document, which has been roughly divided into classes, to the generation AI server 130 via the API gateway 213, and instructs it to perform method division. The detailed design document generation unit 216 instructs the generation AI server 130 to perform method division according to how the processing content should be divided into methods, the argument information of the methods, and the variable declaration location / scope of global variables and local variables.

[0063] Next, in S406, the detailed design document generation unit 216 sends the class-divided and method-divided basic design document to the generation AI server 130 via the API gateway 213, and instructs it to assign physical names. The detailed design document generation unit 216 may also provide the generation AI server 130 with a correspondence between the logical names and physical names of the classes.

[0064] Next, in S407, the detailed design document generation unit 216 sends the detailed design document, which has been divided into classes, methods, and given physical names, to the generation AI server 130 via the API gateway 213, and has the AI ​​server add dependency information between classes. The dependency information is added only to the minimum necessary information from the information defined in the class division and the information of common parts.

[0065] The processes in S404 to S407 may be performed sequentially, or the detailed design document generation unit 216 may perform class division, method division, physical name assignment, and dependency class information assignment in a single process by sending the basic design document to the generation AI server 130. Once class division, method division, physical name assignment, and dependency class information assignment are performed, a detailed design document is obtained.

[0066] Figure 10 shows an example of a detailed design document for the service layer generated from the basic design document 500. Detailed design document 1001 is the detailed design document for the CustomerManager class, and detailed design document 1002 is the detailed design document for the Customer class. Figure 11 shows the detailed design document for the data layer. The database definition 1102 for customer management and the operation methods 1101 for the database are defined.

[0067] The detailed design document generation unit 216 divides the DTO class into presentation layer, service layer, and data access layer. The detailed design document 1201 of the DTO class definition in Figure 12 shows the DTO class of the service layer. The detailed design document generation unit 216 similarly creates detailed design information for the DTO classes of the presentation layer and data access layer using the generation AI server 130.

[0068] The detailed design document generation unit 216 adds dependency information to the DAO class definition 1101 and DTO class definition 1201, indicating that the CustomerDAO class depends on the CustomerDTO class, because the CustomerDAO uses the CustomerDTO class for data acquisition and storage. Each of the detailed design documents created by class division corresponds to a source code. This completes the detailed design document generation process.

[0069] <Source code generation process> Next, the source code generation process performed in the information processing device 100 will be explained with reference to Figure 17. This process is realized when the processor 210 of the control unit 202 executes a computer program stored in the storage unit 204.

[0070] The detailed design document 223 functions as a source code generation instruction document for generating source code. Returning to the explanation in Figure 4, at S408, the source code generation unit 217 sends the detailed design document 223 to the generation AI server 130 via the API gateway 213 to generate the source code.

[0071] Source code is generated for each detailed design document 223. The source code generation unit 217 may use an existing set of detailed design document and existing source code stored in the memory unit, or a source code corresponding to an existing detailed design document similar to the detailed design document to be generated, as a template and send it to the generation AI server 130. By sending past source code as a template, the generation AI server 130 can generate source code with higher accuracy.

[0072] The source code generation unit 217, in cooperation with the generation AI server 130, generates the source code 1300 shown in Figure 13 based on the detailed service layer design documents 1001 and 1002 shown in Figure 10. In this embodiment, the source code is generated in Java, but it may be generated in any language other than Java.

[0073] The source code generation unit 217, in cooperation with the generation AI server 130, generates the source code 1400 shown in Figure 14, based on the detailed design document 1101 for the DAO class definition shown in Figure 11. In source code 1400, the processes getCustomerByid, which retrieve customer information based on the customer ID, and getAllCustomers, which retrieve information for all customers, are omitted.

[0074] Furthermore, the source code generation unit 217, in cooperation with the generation AI server 130, generates an SQL script 1500 for creating the Customer table in the database, as shown in Figure 15, based on the database table structure definition in the detailed design document 1102 in Figure 11.

[0075] Furthermore, the source code generation unit 217, in cooperation with the generation AI server 130, generates the source code 1600 shown in Figure 16, based on the detailed design document 1201 of the DTO class definition shown in Figure 12. The source code generated by the source code generation unit 217 is displayed in the editor of the development tool 214, and the user 110 can edit it. This concludes the source code generation process.

[0076] <Compilation and compilation error correction process> Next, the compilation unit 218 compiles the generated source code to produce executable code, either based on instructions from the user 110 via the development tool 214 or automatically. Since the generated source code 224 is automatically generated, it may contain errors, and if errors occur, it may be difficult for the user 110 to understand which part of the source code should be corrected.

[0077] IDEs are optimized for specific programming languages ​​and operating environments. Therefore, error information is also generated based on the characteristics of that particular programming language and operating environment. For example, the Eclipse IDE, which is specialized for Java, and the PyCharm IDE, which is for Python, have different error formats and display methods. As a result, even if error information is provided to an AI for error generation, the AI ​​may not be able to understand the content of the error.

[0078] The location indicated by the error code does not always match the location of the error in the source code. For example, if a token used in a pair such as parentheses is missing, the error code will indicate that there is no corresponding ending at the beginning, but it can be difficult to tell where to add it to resolve the issue. Also, errors indicating that a variable is not defined occur frequently, but most of these are due to a mistake in the variable name, and it can be difficult to pinpoint which definition is incorrect.

[0079] In this embodiment, source code compilation errors are corrected by utilizing the language server 221 and the generation AI server 130. The source code correction process will be explained with reference to Figure 17. The language server 221 is installed within the information processing device 100 as shown in Figure 2, but it may be a server separate from the information processing device 100.

[0080] In S1701, user 110 instructs the development tool 214 to generate source code. In S1702, the development tool 214 sends the detailed design document and instructions to the generation AI server 130 via the source code generation unit 217. In S1703, the generation AI server 130 returns the generated source code to the development tool 214. The processes from S1701 to S1703 correspond to the process in S408 of Figure 4.

[0081] In S1705, user 110 instructs development tool 214 to load source code. In S1706, development tool 214 loads the target source code. S1705 and S1706 represent the normal operation when editing source code with development tool 214.

[0082] Next, in S1707, the development tool 214 sends the loaded source code to the language server 221.

[0083] In S1708, the language server 221 analyzes the source code. If classes or libraries used in the source code are not imported, the language server 221 suggests the necessary import statements. It also checks whether the dependencies of external libraries and modules are correct. Furthermore, it checks for violations of programming language coding conventions and potential bugs. These are static checks performed before compilation.

[0084] Next, in S1709, the language server 221 sends the analysis check results to the development tool 214. In S1710, the analysis tool 214 makes corrections to import statements and other elements based on the analysis results. At this time, user 110 may confirm the changes before modifying the source code, following the suggestions from the language server 221.

[0085] In S1711, the development tool 214 compiles the source code using the compilation unit 218. The development tool 213 can provide information about variables and functions where errors occurred during compilation using the compilation unit 218. In S1712, the development tool 214 sends the compilation result, along with information about compilation errors, to the language server 221.

[0086] The language server 221 uses the LSP to identify the definition locations of the variables and functions where compilation errors occur in the development tool 214. In S1714, the analysis results are sent to the development tool 214.

[0087] In S1715, the development tool 214 sends the compilation error information and additional information obtained from the language server 221 to the generation AI server 130. The generation AI server 130 identifies the error locations to be corrected and the suggested corrections from the compilation error information. Then, in S1718, the generation AI server 130 sends the error locations and suggested corrections back to the development tool 214.

[0088] The development tool 214 corrects errors in the source code based on the error locations and suggested corrections received from the generation AI server 130. The user 110 may also perform the corrections while reviewing the process. By using the language server 221 and the generation AI server 130, it has become possible to correct errors that were previously difficult to pinpoint.

[0089] For example, an incorrect method name would traditionally result in an error code indicating that the method name is not defined. However, the language server 221 and the generation AI server 130 can identify that the method name was incorrect and correct it to the correct method name.

[0090] For example, while the location of errors in the use of common parts was previously clear, it was necessary to refer to detailed design information. In S1716, by adding detailed design information as a prompt and sending it, errors in the use of common parts can be corrected. The development tool 214 can add the necessary detailed design information according to the content of the error generated by LSP and send it to the generation AI server 130.

[0091] For example, regarding errors in the physical names of instance variables, the location of the compilation error and the location that needs correction may be different. In this case, because the LSP identifies the location of the error and the related locations, the generating AI server 130 can accurately analyze the locations that need to be collected and the corrections that need to be made.

[0092] The above explains the process of compiling and correcting errors in source code. Source code generation, compilation, and error correction can be for standalone code or for code that interacts with other system classes.

[0093] As described above, in this embodiment, detailed design documents are generated from the basic design document of the system, and the source code is generated by the generation AI using the detailed design documents, thereby generating source code with high accuracy. Furthermore, errors in the source code can be corrected using the language server's LSP and the generation AI.

[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: Generative AI server, 214: Development tool, 221: Language server

Claims

1. A detailed design document generation means that generates detailed design documents by dividing the basic design document based on detailed design document generation rules, A transmission means for sending the generated detailed design document, along with instructions for generating source code, to the generating AI server, A receiving means for receiving source code generated by the aforementioned AI server, An information processing device equipped with the following features.

2. The aforementioned detailed design document generation rules define the rules for dividing the aforementioned basic design document into a presentation layer, a service layer, a data access layer, and a database layer. The information processing apparatus according to claim 1.

3. The detailed design document generation means converts the basic design document into text format, and then divides the basic design document according to the detailed design document generation rules to generate a detailed design document. The information processing apparatus according to claim 1.

4. The detailed design document generation means includes converting the drawings included in the basic design document into text format. The information processing apparatus according to claim 3.

5. The transmission means transmits the detailed design document, source code corresponding to a detailed design document similar to the detailed design document, or a set of the similar detailed design document and the source code corresponding to the similar detailed design document, to the generation AI server along with an instruction to generate source code. The information processing apparatus according to claim 1.

6. Compilation means for compiling the aforementioned source code, A language server that analyzes the results of the compilation based on the LSP, A second transmission means transmits the results of the analysis based on the source code and the LSP, along with instructions for modifying the source code, to the generating AI server. A modification means that receives the modification results of the source code received from the AI ​​generation server and modifies the source code, The information processing apparatus according to claim 1, further comprising the above.

7. A program for causing a computer to function as one of the means of an information processing device described in any one of claims 1 to 6.