Information processing device and program

The information processing device automates traceability checks by converting source code into explanatory sentences and determining correspondence with design documents, addressing the tediousness of manual program specification creation and enhancing efficiency.

JP7763440B1Active Publication Date: 2025-11-04SHIMANE PREFECTURAL GOVERNMENT MATSUE +2
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024231179
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-12-26
Publication Date
2025-11-04
Estimated Expiration
2044-12-26

AI Technical Summary

Technical Problem

Ensuring traceability between design documents and source code is tedious and requires significant user effort, as existing methods rely on creating program specifications that match the content of the program, which is time-consuming.

Method used

An information processing device that converts source code into explanatory sentences and determines correspondence with design documents, allowing for automatic traceability checks without the need for user-prepared program specifications.

Benefits of technology

Facilitates easier and more efficient traceability checks by automating the comparison between design documents and source code, reducing the workload and improving employee efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007763440000001_ABST
    Figure 0007763440000001_ABST
Patent Text Reader

Abstract

We provide technology that helps make it easier to ensure traceability between design documents and source code. [Solution] A created design document D1 and created source code P1 are input into an information processing device 1. The source code P1 is converted into a text-based description P2 by an explanatory text conversion unit 2. As a result, a text-based correspondence between the descriptions in the design document D1 and the source code P1 is identified through the design document D1 and the explanatory text P2, and it is confirmed whether the source code P1 contains a description for implementing the execution content described in the design document D1. Such identification and confirmation are performed by a comparison unit 3 and a match determination unit 4.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device and a program. [Background technology]

[0002] In software development, it is often necessary to ensure the consistency (traceability) between design specifications and source code. Ensuring this traceability allows for the development of more reliable software. To support this traceability, there is an information processing device that generates specification analysis information indicating details of various design information based on information input according to items indicating detailed information about various design information used to create a program, analyzes the source code to generate source code analysis information indicating details of the various design information described in the source code, compares the various design information described in the program specifications and the source code based on the specification analysis information and the source code analysis information, and outputs the comparison results (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Publication No. 08-030448 Summary of the Invention [Problem to be solved by the invention]

[0004] In the information processing device, the user is required to create a program specification in order to generate the specification analysis information, and the specification analysis information is compared with the source code analysis information based on the contents of the program specification. In this type of verification, the content that can be verified is limited to the content of the program specifications. Therefore, in order to ensure traceability, it is necessary to prepare program specifications whose content matches the functions to be implemented in the program being developed. However, preparing such program specifications is tedious. In addition, the effort required by the user to create the program specifications cannot be ignored.

[0005] An object of the present invention is to provide a technology that supports easier traceability between design documents and source code. [Means for solving the problem]

[0006] An information processing device according to one embodiment of the present invention includes a sentence generation unit that converts source code of software created in accordance with the contents of a design document and generates one or more sentences each including one or more explanatory sentences that describe the content of the processing executed by the source code, and a correspondence determination unit that determines the correspondence between the sentence and a description location in the design document. [Effects of the Invention]

[0007] In the present invention, traceability between design documents and source code can be more easily ensured. [Brief explanation of the drawings]

[0008] [Figure 1] 1 is a diagram illustrating an overview of an information processing device according to a first embodiment of the present invention and a traceability assurance support service provided by the information processing device. [Figure 2] FIG. 10 is a diagram illustrating an example of the hardware configuration of an AP server that is an information processing device according to a second embodiment of the present invention. [Figure 3] FIG. 10 is a diagram illustrating an example of a functional configuration realized on an AP server that is an information processing device according to a second embodiment of the present invention. [Figure 4] 10 is a flowchart illustrating an example of a traceability check process. [Figure 5]10 is a flowchart illustrating an example of a description conversion process. [Figure 6] 10 is a flowchart showing an example of a first association process. [Figure 7] 10 is a flowchart showing an example of a second association process. [Figure 8] 10 is a flowchart illustrating an example of a process of calculating similarity between sentences. [Figure 9] 10 is a flowchart illustrating an example of a similarity correction process. [Figure 10] 10 is a flowchart illustrating an example of a match determination process. [Figure 11] 10 is a flowchart illustrating an example of allocation processing. [Figure 12] 10 is a flowchart illustrating an example of a linking method determination process. [Figure 13] 10 is a flowchart showing an example of a first context confirmation process. [Figure 14] 10 is a flowchart showing an example of a second context confirmation process. [Figure 15] 10 is a flowchart illustrating an example of a linking candidate determination process. DETAILED DESCRIPTION OF THE INVENTION

[0009] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating an overview of an information processing device according to a first embodiment of the present invention and a traceability assurance support service provided by the information processing device.

[0010] The information processing device 1 is installed, for example, by an organization that develops software to provide services to improve work efficiency to those who belong to the organization or those to whom the organization's work has been outsourced (hereinafter collectively referred to as "employees"). One of the services provided is a traceability assurance support service (hereinafter referred to as "this service") that supports ensuring traceability between design documents and source code.

[0011] Organizations that develop software, such as development companies that undertake software development, typically begin program development upon receiving an order (S1), as shown in Figure 1. After receiving the order, they analyze the product's requirements (S2), determine what the software will do (S3), implement the software's execution content in source code (S4), test the operation of each developed function (S5), and test the operation of the entire developed system (S6), and then ship the developed software (S7). They often return to previous steps and repeat the work from that step onwards.

[0012] The design document D1 is the design data (file) created when the execution content of the software is determined (S3). The implementation in the source code P1 (S4) must be done in accordance with the contents of the design document. For this reason, a traceability check is performed to ensure that the contents of the design document D1 are fully incorporated into the source code P1 and that there is consistency between the two. Ensuring traceability means ensuring consistency between the two. This service allows employees to easily check whether there is consistency between the two, making the work of ensuring traceability easier and improving work efficiency.

[0013] To this end, a design document D1 and source code P1 are input to the information processing device 1. Both of these are data (e.g., files). The input source code P1 is converted by the explanatory text conversion unit 2 into an explanatory text P2 of the execution contents expressed in English. The reason for converting into the explanatory text P2 of the execution contents expressed in English is that the programming language of the source code P1 is based on English. The explanatory text conversion unit 2 corresponds to the sentence generation unit in this embodiment.

[0014] In this embodiment, by generating such an explanatory document P2, a text-based comparison between the design document D1 and the source code P1 is performed. This eliminates the need for employees to input data for traceability checks based on the contents of the design document D1, etc. In other words, employees do not need to prepare or create something like the program specification document (Patent Document 1), which contains less information than the design document D1. Therefore, in this embodiment, employees can more easily ensure the traceability of the design document D1 and the source code P1. This also improves employee work efficiency.

[0015] Both the design document D1 and the explanatory document P2 contain multiple sentences. To avoid confusion, we will refer to the sentences in the design document D1 as "design sentences" and the sentences in the explanatory document P2 as "explanatory sentences." Like other documents, the source code P1 also contains multiple statements. These statements will be collectively referred to as "program statements" hereinafter. The programming language used to create the source code P1 is not particularly limited. The programming language may be any of C, C#, JAVA (registered trademark), C++, Python, Pascal, FORTRAN, etc.

[0016] Source code P1 usually has a sentence structure that is different from that of ordinary documents. For this reason, the explanatory text conversion unit 2 converts the source code P1 into explanatory text P2 and also associates the program statements with the explanatory text. This association makes it possible to identify the program statements that correspond to the design statements even in a text-based comparison using explanatory text P2.

[0017] The comparison unit 3 compares the design document D1 and the explanatory document P2 and evaluates the degree of similarity between them. In this embodiment, the design document D1 and the explanatory document P2 are vectorized on a sentence-by-sentence basis or on a sentence-by-sentence basis, and the similarity (for example, cosine similarity) calculated using the vectors obtained by vectorization is used for the evaluation. The similarity is expressed as a numerical value ranging, for example, from -1 to 1. Note that the evaluation method is not particularly limited. The degree of similarity may be evaluated using an index other than similarity.

[0018] The match determination unit 4 focuses on consistency and determines the correspondence between description locations in the design document D1 and description locations in the explanatory document P2, thereby enabling the consistency between them to be confirmed. In other words, it makes it possible to confirm whether or not a description for implementing the execution content described in the design document D1 exists in the source code P1. Through this confirmation, employees can more easily perform traceability checks and ensure traceability through these checks.

[0019] To this end, the match determination unit 4 generates a determination result R that can confirm, for example, the corresponding description range between the design document D1 and the source code P1, or whether or not the source code P1 implements execution content that corresponds to the execution content described in the design document D1. The generated result R can be output to a terminal used by the employee, or can be stored in a manner that allows the terminal to access it, allowing the employee to confirm the generated result R. The comparison unit 3 and the match determination unit 4 correspond to the correspondence relationship identification unit in this embodiment.

[0020] As described above, in this embodiment, a traceability check can be performed automatically simply by preparing the design document D1 and the source code P1. Therefore, employees can perform a traceability check and check the results without having to perform work to perform a traceability check according to the contents of the design document D1, etc. As a result, the amount of work required to ensure traceability is reduced and can be performed more easily. This improves the work efficiency of employees.

[0021] Hereinafter, the embodiments of the present invention will be described in detail with further reference to the drawings. 2 is a diagram showing an example of the hardware configuration of an AP server, which is an information processing device according to a second embodiment of the present invention. This hardware configuration example is merely an example and is not particularly limited. For example, although only one CPU (Central Processing Unit) 21 and one GPU (Graphics Processing Unit) 24 are shown, multiple units of each may be installed.

[0022] The information processing device 1 is realized as an AP server installed, for example, by a software development company in its own facilities or using a cloud service to provide this service. Therefore, the AP server is designated by the reference numeral "1." Therefore, hereafter, the "information processing device" will also be referred to as the "AP server." Communication with employee terminals 31 used by employees can be performed via a network 30. The network 30 is, for example, a LAN (Local Area Network) or a composite network including the Internet.

[0023] 2, the AP server 1 has a configuration in which a CPU 21, a ROM (Read Only Memory) 22, a RAM (Random Access Memory) 23, a GPU 24, a NIC (Network Interface Card) 25, an auxiliary storage device 26, a media drive 27, and an I / FC (Interface Controller) group 28 are connected to a bus 29. A VRAM (Video RAM) 24A is connected to the GPU 24.

[0024] The auxiliary storage device 26 is a device capable of permanently storing data, such as a hard disk drive or a solid state drive (SSD). The media drive 27 is a device into which the media 27A, which is a recording medium, can be detachably attached. The media 27A is, for example, a compact disc (CD)-ROM, a DVD-ROM, a DVD-RAM, etc.

[0025] The I / FC group 28 includes various I / FCs that enable communication with various peripheral devices or external devices, including an input device 28A and a display device 28B. The input device 28A and the display device 28B are temporarily connected to the I / FC group 28 as needed. The auxiliary storage device 26 stores, as programs, an operating system (OS) and various application programs that run on the OS. One of the various application programs is an application program that enables the provision of this service. Hereinafter, this application will be referred to as the "traceability assurance support app."

[0026] The ROM 22 is also a device capable of permanently storing data, and stores, for example, firmware and various data. The CPU 21 reads the firmware stored in the ROM 22 into the RAM 23 and executes it. The firmware then reads the OS stored in the auxiliary storage device 26 into the RAM 23 and executes it. Various application programs, including some traceability assurance support apps, are read into the RAM 23 and executed by the OS. The GPU 24 can execute various application programs, including some traceability assurance support apps, that are stored in the auxiliary storage device 26 and read into the VRAM 24A.

[0027] The traceability ensuring support app may be stored in the medium 27A and distributed. If the network 30 is a composite network, it may be distributed via the network 30. When distributed via the network 30, the traceability ensuring support app may be stored in a recording medium that can be directly or indirectly accessed by the information processing device that distributes it. In other words, the storage medium may be one that can be directly or indirectly accessed by another information processing device that can communicate with the information processing device that distributes it.

[0028] 3 is a diagram showing an example of a functional configuration realized on an AP server, which is an information processing device according to the second embodiment of the present invention. This functional configuration example is mainly realized by the CPU 21 and the GPU 24 respectively executing different parts of the traceability assurance support application. Note that the functional configuration is not particularly limited. Various modifications are possible. For example, one or more of the functional components realized on the GPU 24 may be moved to the CPU 21. The above traceability assurance support application may be entirely executed by the CPU 21, and all functional components may be realized on the CPU 21.

[0029] Many programming languages ​​are based on English. A design document D1 is usually written in one's native language. In Japan, the design document D1 is usually written in Japanese. For this reason, in this embodiment, emphasis is placed on the source code P1, and an explanation document P2 written in English is generated by converting the source code P1, and an explanation document written in English is generated by machine translation of the design document D1 written in Japanese. The design document generated by machine translation will hereinafter be referred to as "design document D2" to distinguish it from the design document D1.

[0030] As shown in Figure 3, the CPU 21 of the AP server 1 has the following functional configuration: a transmission / reception processing unit 211, a screen generation unit 212, a translation instruction unit 213, an explanatory text generation instruction unit 214, a source code generation instruction unit 215, a generation result confirmation unit 216, a replacement unit 217, an explanatory text correspondence identification unit 218, a vectorization instruction unit 219, a translation learning instruction unit 220, an explanatory text learning instruction unit 221, a vectorization learning instruction unit 222, a similarity calculation unit 223, an allocation unit 224, a linking method determination unit 225, a context confirmation unit 226, and a linking candidate determination unit 227.

[0031] The functional configuration implemented on the GPU 24 includes a first translation unit 241, a second translation unit 242, an explanatory sentence generation unit 243, a vectorization unit 244, a source code generation unit 245, a translation learning unit 246, an explanatory sentence learning unit 247, and a vectorization learning unit 248. All of these units use AI (Artificial Intelligence). While this functional configuration is realized on the CPU 21 and the GPU 24, on the auxiliary storage device 26, an explanation information memory unit 261, a design document memory unit 262, a source code memory unit 263, an explanation document memory unit 264, a vector memory unit 265, and a similarity memory unit 266 are secured as data storage areas.

[0032] Program statements in the source code P1 often contain identifiers. These identifiers are names that uniquely identify variables, functions, classes, etc. In this embodiment, explanatory text for each identifier is prepared as explanatory information so that program statements containing these identifiers can be converted more appropriately into explanatory text. The explanatory information storage unit 261 is a storage area reserved for this purpose. The explanatory information includes at least the corresponding identifier and its explanatory text. This explanatory information enables conversion of the source code P1 into explanatory text P2 using RAG (Retrieval Augmented Generation).

[0033] The design document storage unit 262 is a storage area reserved for storing various design documents. In addition to the design documents D1 and D2, the various design documents include a design document written in Japanese that is generated by machine translation of the design document D2. This design document will be referred to as "design document D3" hereafter to distinguish it from the others. The source code storage unit 263 is a storage area reserved for storing the source code P1. The source code storage unit 263 also stores the source code generated by converting the explanation document P2. This source code will be hereinafter referred to as "source code P3" to distinguish it from the source code P1.

[0034] The explanatory document storage unit 264 is a storage area for storing explanatory document P2. The vector storage unit 265 is a storage area for storing each sentence of the design document D2 and explanatory document P2, or the vector of a sentence. Here, a sentence refers to a group of one or more consecutive sentences that express some meaning. The similarity storage unit 266 is a storage area reserved for storing calculated similarities. Although not specifically shown, a storage area for saving the determination result R is also secured on the auxiliary storage device 26.

[0035] The various data stored in each of the storage units 261 to 266 is actually read into the RAM 23 or VRAM 24A and processed there. Furthermore, data transfer between the CPU 21 and the GPU 24 is actually performed via the RAM 23. Communication with the employee terminal 31 is performed via the NIC 25. For convenience, these are ignored in FIG. 3. This also applies to the following explanation.

[0036] Each of the units 241 to 248 implemented on the GPU 24 has the following functions. The first translation unit 241 performs machine translation to translate, for example, a design document D1 expressed in Japanese into English, and generates a design document D2 expressed in English. The second translation unit 242 performs machine translation to translate, for example, the design document D2 expressed in English into Japanese, and generates a design document D3 expressed in Japanese. The generated design documents D2 and D3 are both stored in the design document storage unit 262.

[0037] The explanatory text generation unit 243 converts the source code P1 into an explanatory document P2. In this conversion, explanatory information (identifier) ​​stored in the explanatory information storage unit 261 is used as needed. As a result, the explanatory document P2 is generated in a form that conforms to the contents of the design document D2. The generated explanatory document P2 is stored in the explanatory document storage unit 264.

[0038] The vectorization unit 244 performs vectorization on a sentence or paragraph basis that constitutes the design document D2 and the explanatory document P2. The vectors obtained by vectorization are stored in the vector storage unit 265 together with, for example, identification information that indicates the sentence or paragraph to which the vector corresponds. A vector here is an array containing, for example, multiple real values, and the meaning of a word, sentence, or paragraph is expressed by a combination of real values. Therefore, by using vectors, it is possible to determine whether or not there is semantic consistency even between different expressions.

[0039] The source code generation unit 245 converts the explanation document P2 to generate source code P3. The generated source code P3 is stored in the source code storage unit 263. The translation learning unit 246 is for causing the first translation unit 241 and the second translation unit 242 to perform learning. Learning is performed by preparing a large amount of learning data. Through this learning, the weights of the neural network are optimized.

[0040] The explanatory sentence learning unit 247 is used to cause the explanatory sentence generation unit 243 to perform learning. This learning is also performed by preparing a large amount of learning data. The learning data is created for each group of program statements, which are, for example, one or more program statements that serve as processing units. The loss value used as the criterion for stopping learning is set to a value larger than normal, for example, 0.8, to prevent the content of the explanatory sentence from becoming unnatural.

[0041] The vectorization learning unit 248 is for causing the vectorization unit 244 to perform learning. This learning is also performed by preparing a large amount of learning data. All of the above units 241 to 248 function in response to instructions from the CPU 21. When the functional configuration example shown in Fig. 3 is realized, the description conversion unit 2 and comparison unit 3 shown in Fig. 1 may be realized by cooperation between the CPU 21 and the GPU 24.

[0042] Each of the units 211 to 227 implemented on the CPU 21 has the following functions. The transmission / reception processing unit 211 performs processing for transmitting and receiving various data, including requests, to and from the employee terminal 31. The screen generation unit 212 generates a screen to be displayed on the employee terminal 31. The transmission / reception processing unit 211 transmits the screen generated by the screen generation unit 212 to the employee terminal 31, thereby enabling various requests to be transmitted from the employee terminal 31 and responses to be displayed on the employee terminal 31.

[0043] The translation instruction unit 213 controls the first translation unit 241 and the second translation unit 242. Through this control, the design documents D2 and D3 are generated. The explanatory text generation instruction unit 214 controls the explanatory text generation unit 243 to generate explanatory text P2 from the source code P1. The generated explanatory text P2 is stored in the explanatory text storage unit 264. The source code generation instruction unit 215 controls the source code generation unit 245 to generate source code P3 from the explanation document P2. The generated source code P3 is written in the same programming language as the source code P1, and is stored in the source code storage unit 263.

[0044] Not all of the source code P1 can be converted into explanatory text. Depending on the structure of the source code P1, identifiers, etc., it may be impossible to properly convert at least a portion of the source code P1 into explanatory text. For this reason, the generation result confirmation unit 216 calculates the percentage of the source code P1 that has been converted into explanatory text and checks whether this percentage is equal to or greater than a predetermined threshold. If the percentage is equal to or greater than the threshold, the processing proceeds. If the percentage is less than the threshold, the explanatory text generation instruction unit 214 is notified of this, and the explanatory text P2 is regenerated.

[0045] In this embodiment, the explanatory sentence generation instruction unit 214 and the explanatory sentence generation unit 243 correspond to a sentence generation unit. The generation result confirmation unit 216, the replacement unit 217, the explanatory sentence correspondence identification unit 218, the vectorization instruction unit 219, the similarity calculation unit 223, the allocation unit 224, the linking method determination unit 225, the context confirmation unit 226, the linking candidate determination unit 227, and the vectorization unit 244 correspond to a correspondence identification unit. The generation result confirmation unit 216 includes a ratio calculation unit. The explanatory sentence generation instruction unit 214 corresponds to a re-creation instruction unit. The allocation unit 224 corresponds to an allocation unit. The linking method determination unit 225 and the context confirmation unit 226 correspond to an allocation correction unit.

[0046] As described above, RAG is used to generate the explanatory document P2. Even when RAG is used, it is possible that identifiers cannot be completely replaced, and some identifiers remain in the explanatory text. Therefore, the replacement unit 217 replaces the remaining identifiers in the explanatory text with explanatory text corresponding to those identifiers. The explanatory document P2 after the replacement process including confirmation by the replacement unit 217 is finally stored in the explanatory document storage unit 264.

[0047] The explanatory text correspondence identification unit 218 identifies a description location in the source code P1 to which the generated explanatory text corresponds. In this embodiment, the location is identified using two methods. Therefore, the explanatory text correspondence identification unit 218 has a first correspondence identification unit 218A and a second correspondence identification unit 218B.

[0048] The first correspondence identifying unit 218A identifies the correspondence between the explanatory text and the description location in the source code P1 by an outlier test that focuses on the degree of association (for example, attention weight). The relevance is an index calculated for each word when generating an explanatory sentence. It represents the degree of attention paid to each word in the source code (input sentence) each time an explanatory sentence (output sentence) is output. The outlier test is used to identify outliers. In this embodiment, all consecutive statements in the source code P1 that are outliers are associated with explanatory sentences. This is an operation for associating what is essentially a single program statement, such as one that is written across multiple lines in the source code P1, with a single explanatory sentence.

[0049] The second correspondence identification unit 218B focuses on the distance (for example, Levenshtein distance) between the explanatory text and the description location in the source code P1, and identifies the correspondence therebetween. The second correspondence identification unit 218B converts the program statements (source code) corresponding to the explanatory text into regular expressions and extracts a range in the source code P1 that may be associated with the regular expressions. Next, it calculates the Levenshtein distance between each program statement in the extracted range and the regular expressions. After this calculation, the second correspondence identification unit 218B associates the program statement with the smallest Levenshtein distance with the explanatory text. The Levenshtein distance is calculated as the smallest number of editing operations between two sequences from one to the other. Note that the index used to identify the correspondence between the explanatory text and the description location in the source code P1 is not particularly limited. The index may be the Jaccard coefficient, a similarity (e.g., cosine similarity), or the like.

[0050] Even for program statements that specify the same processing content, there may be multiple options for how to write them. For this reason, in this embodiment, multiple different indicators are used to identify the description location in the source code P1 that corresponds to the explanatory text, making it possible to more reliably and accurately identify the correspondence between the explanatory text and the description location in the source code P1.

[0051] The vectorization instruction unit 219 controls the vectorization unit 244 to vectorize the sentences or paragraphs that make up the design document D2 and the explanatory document P2. The vectors obtained by this vectorization are stored in the vector storage unit 265. The translation learning instruction unit 220 instructs the translation learning unit 246 to perform learning on the first translation unit 241 or the second translation unit 242. For example, the learning data is specified by the instruction. The explanatory sentence learning instruction unit 221 instructs the explanatory sentence learning unit 247 to perform learning for the explanatory sentence generation unit 243. For example, learning data is specified by the instruction. The vectorization learning instruction unit 222 instructs the vectorization learning unit 248 to perform learning for the vectorization unit 244. For example, the learning data is specified by the instruction.

[0052] The similarity calculation unit 223 includes a target similarity calculation unit 223A and a similarity correction unit 223B. The target similarity calculation unit 223A calculates various similarities using vectors. The similarity correction unit 223B corrects the calculated similarity between the design document D2 and the explanatory document P2 as needed. The correction is performed by focusing on numerical values ​​present in the text. The similarity may be obtained by the GPU 24, i.e., by AI.

[0053] The allocation unit 224 divides the design document D2 into a plurality of parts (division units), and performs allocation for each divided part to identify a part in the explanation document P2 that corresponds to that part. The linking method determination unit 225 determines a linking method for each sentence between the design document D2 and the explanation document P2. The linking method is performed assuming the allocation result by the allocation unit 224.

[0054] The context confirmation unit 226 is used to make fine adjustments to the allocation results. It identifies the design statements or sentences to be combined for each division unit, and performs the combination for each division unit. By performing such combination, the linking between the description parts in the design document D2 and the description parts in the explanatory document P2 is completed, focusing on consistency, i.e., the traceability check is completed.

[0055] As a result of the above-described traceability check, there is a possibility that unlinked parts will occur in the design document D2 or the source code P2. The linking candidate determination unit 227 targets such unlinked parts and identifies candidates (linking candidates) that are considered possible links for the unlinked parts. Employees can confirm the identification results.

[0056] As described above, in this embodiment, a text-based comparison between the design document D2 and the explanatory document P2 is performed to identify the corresponding description in the explanatory document P2 for each division unit of the design document D2, and the identified correspondence is fine-tuned to determine the final correspondence. This fine-tuning allows for the division unit to be changed to one that actually contains semantically coherent sentences, even if the division unit is based on a formal aspect and a range of sentences considered to be semantically coherent. This allows workers to more reliably and easily perform traceability checks for each design content.

[0057] The traceability check results are stored, for example, in the auxiliary storage device 26. The traceability check results can be confirmed by an employee by, for example, viewing the results on the auxiliary storage device 26 as is, or by having the screen generation unit 212 generate a screen on which the results are arranged and then having the transmission / reception processing unit 211 transmit the results to the employee terminal 31. The results may be transmitted automatically or upon request.

[0058] In this embodiment, a design document D3 and source code P3 are generated and made available for viewing by employees. By making them available for viewing, workers can confirm or estimate the processing details and accuracy actually performed in the traceability check through the design document D3 and source code P3. If the design document D3 and source code P3 closely match the design document D1 and source code P1 in content, it can be expected that the traceability check was also performed with high accuracy. The method for presenting the design document D3 and source code P3 is not particularly limited. However, it is desirable to present the design document D3 and source code P3 so that the associated description locations can be seen.

[0059] Hereinafter, the processing for realizing the functional components implemented on the CPU 21 will be described in detail. 4 is a flowchart showing an example of the traceability check process. This process is executed when, for example, an employee operating the employee terminal 31 specifies the design document D1 and the source code P1 and instructs a traceability check. This process itself is realized by the traceability assurance support app. Next, this process will be described in detail with reference to FIG. 4.

[0060] As described above, part of the traceability assurance support application is executed by the GPU 24, and the rest is executed by the CPU 21. The flowchart shown as an example in Fig. 4 is based on the assumption that the processing is executed by the CPU 21. Therefore, the subject that executes the processing is the CPU 21.

[0061] First, in step S11, the CPU 21 instructs the first translation unit 241 to translate the specified design document D1 into English. In the following step S12, the CPU 21 executes an explanation conversion process to have the explanation generation unit 243 convert the source code P1 into an explanation document P2. As a result, when the process proceeds to step S13, the design document D2 and the explanation document P2 exist.

[0062] In step S13, the CPU 21 executes a comparison process to compare the design document D2 and the explanatory document P2 and calculate the degree of similarity. In the next step S14, the CPU 21 executes a match determination process to identify the correspondence between the sentences in the design document D2 and the explanatory document P2 and confirm the consistency between the sentences. Thereafter, the traceability check process ends.

[0063] Hereinafter, the subroutine processing executed in the traceability check processing will be described in detail with reference to the flowcharts shown in FIGS. 5 is a flowchart showing an example of the explanation text conversion process executed as step S12. Next, this conversion process will be described in detail with reference to FIG. 5. As described above, RAG is used to convert the source code P1 into the explanation text P2.

[0064] First, in step S21, the CPU 21 extracts an identifier from the source code P1. In the next step S22, the CPU 21 creates a prompt input by adding a pair of an identifier and an explanatory text for each program statement, for example. The explanatory text here is obtained by performing a search using the identifier as a key and extracting the necessary explanatory information from the explanatory information storage unit 261. The prompt input outputs the explanatory text as well as the source code corresponding to the explanatory text.

[0065] In the next step S23, the CPU 21 instructs the explanatory text generation unit 243 to generate explanatory text based on the created prompt input. This instruction to generate explanatory text is sequentially given to all of the source code P1. As a result, the process proceeds to step S24 after the conversion of the source code P1 into explanatory text P2 is completed.

[0066] There is a possibility that an identifier may exist in the generated explanatory text. For this reason, in step S24, CPU 21 replaces the identifier with a corresponding explanatory text for explanatory text that contains an identifier. By such replacement, the explanatory text that constitutes explanatory document P2 can be made more natural.

[0067] In the next step S25, CPU 21 performs a first association process to identify a correspondence between the explanatory text and a description portion in source code P1, focusing on the degree of association. In the next step S26, CPU 21 performs a second association process to identify a correspondence between the explanatory text and a description portion in source code P1, focusing on the distance.

[0068] In the next step S27, the CPU 21 calculates the proportion of the program statements associated with the explanatory text to the entire source code P1. In the next step S28, the CPU 21 determines whether the calculated proportion is equal to or greater than a preset threshold. If the calculated proportion is equal to or greater than the threshold, the determination in step S28 is YES, and the explanatory text conversion process ends here. If the calculated proportion is less than the threshold, the determination in step S28 is NO, and the process returns to step S23. As a result, the source code P1 is converted into explanatory text P2 again. The calculation of the ratio in step S27 implements the ratio calculation unit in this embodiment. Also, when the determination in step S28 is NO and the process proceeds to step S23, the re-creation instruction unit in this embodiment is implemented.

[0069] In step S23, it is necessary to generate an explanatory text by inputting a prompt different from the previous ones. In this embodiment, for this purpose, multiple types of prompts are prepared in advance, and by using an unselected type of prepared prompt, different outputs (source code and explanatory text) can be obtained. Therefore, in step S23, the type of prompt is selected and the input of the selected type of prompt is further created. By generating such an explanation, it becomes possible to perform a more appropriate traceability check.

[0070] 6 is a flowchart showing an example of the first association process executed as step S25 above. Next, this process will be described in detail with reference to FIG. Prompt input to the explanatory text generation unit 243 is created for each individual program statement. The output of the explanatory text generation unit based on the prompt input is an explanatory text and the source code (one or more program statements) corresponding to that explanatory text. The relevance (attention weight) is an index calculated for selecting words that make up the explanatory text. Note that the prompt input may be created for multiple sentences rather than for each individual program statement. Multiple sentences here refers to a group of one or more sentences.

[0071] First, in step S31, CPU 21 obtains the relevance of each word for each output. In the next step S32, CPU 21 extracts the maximum value from the numerical values ​​of the second to 32nd layers for each word. In the next step S33, CPU 21 sums the maximum value of each word for each output, that is, for each explanatory sentence. In the following step S34, CPU 21 sums the maximum value of each word for each line of source code P1, that is, for each program statement.

[0072] In step S35, the CPU 21 performs an outlier test on the sum of each line (program statement) of the source code P1 for each explanatory sentence, and identifies outlier lines. In the next step S36, the CPU 21 associates all outlier lines with explanatory sentences in each output. Thereafter, the first association process ends.

[0073] When a program statement that can be written in one line is written in multiple lines, the description of each line usually differs significantly from the explanatory text of the program statement written in one line. As a result, each line is likely to become an outlier. For this reason, in this embodiment, multiple outlier lines in the source code P1 are considered to be partial descriptions corresponding to the explanatory text and are collectively associated with the explanatory text.

[0074] 7 is a flowchart showing an example of the second association process executed as step S26 above. Next, this process will be described in detail with reference to FIG. First, in step S41, CPU 21 selects a target output from the explanation generation unit 243. In the next step S42, CPU 21 uses a regular expression to extract a source code portion from the selected output. In the following step S43, CPU 21 calculates the distance to each line (program statement) of source code P1 using the source code portion of the regular expression. In the subsequent step S44, CPU 21 identifies the line (program statement) in source code P1 with the smallest distance, and associates the identified line with the explanation of the output.

[0075] In step S45 following step S44, the CPU 21 determines whether there are any unselected outputs. If all outputs have been associated, the determination in step S45 is YES, and the second association process ends here. If there are any unselected outputs, the determination in step S45 is NO, and the process returns to step S41. As a result, one of the unselected outputs is selected.

[0076] In the comparison process executed as step S13 in the traceability check process shown in the example flowchart of Fig. 4, a text similarity calculation process and a similarity correction process are executed as subroutine processes. These subroutine processes will now be described.

[0077] 8 is a flowchart showing an example of the inter-sentence similarity calculation process. In the subroutine process executed in the comparison process, the inter-sentence similarity calculation process will first be described in detail with reference to FIG.

[0078] First, in step S51, CPU 21 controls vectorization unit 244 to vectorize the entire design document D2 and the entire explanatory document P2 sentence by sentence. In the following step S52, CPU 21 uses the vectors obtained by vectorization to calculate similarities between all combinations of sentences in design document D2 and explanatory document P2, and calculates a total value of the calculated similarities. This total value will be referred to as a "first total value" hereinafter.

[0079] In the next step S53, the CPU 21 calculates the similarities for all combinations of sentences in the design document D2 and calculates the sum of the calculated similarities. This sum is hereinafter referred to as the "second sum." In step S54, the CPU 21 calculates the similarities for all combinations of sentences in the explanatory document P2 and calculates the sum of the calculated similarities. This sum is hereinafter referred to as the "third sum."

[0080] In step S55 following step S54, the CPU 21 calculates the overall similarity using the first to third total values ​​After calculating this similarity, the inter-sentence similarity calculation process ends. The overall similarity may be calculated, for example, using the following formula: Overall similarity = 1st total / (2nd total + 3rd total) The first total value indicates the overall similarity between sentences that can be combined between the design document D2 and the explanatory document P2. The second and third total values ​​indicate the overall similarity between sentences that can be combined within the same document. The overall similarity calculated using the above formula and these first to third total values ​​indicates the degree to which the descriptions in the design document D2 and the explanatory document P2 match, including the flow.

[0081] Fig. 9 is a flowchart showing an example of a similarity correction process. This correction process is a process for correcting the similarity calculated between sentences in the design document D2 and the explanatory document P2 by focusing on the numerical values ​​present in the sentences. Next, the correction process will be described in detail with reference to Fig. 9.

[0082] First, in step S61, the CPU 21 selects one sentence (design sentence) in the design document D2. In the following step S62, the CPU 21 selects one sentence (explanatory sentence) in the explanatory document P2. In the next step S63, the CPU 21 determines whether or not at least one of the selected two sentences contains a numerical value. If at least one of the two sentences contains a numerical value, the determination in step S63 becomes YES, and the process proceeds to step S64. If neither sentence contains a numerical value, the determination in step S63 becomes NO, and the process proceeds to step S67.

[0083] In step S64, CPU 21 extracts a numerical value from each sentence. In the next step S65, CPU 21 determines the number of extracted numerical values ​​and whether or not all the numerical values ​​match. In step S66, CPU 21 corrects the target similarity in accordance with the determination result.

[0084] The similarity is corrected, for example, only when it is determined that the number of extracted numerical values ​​or all of the numerical values ​​do not match. The similarity correction itself may be performed, for example, by multiplying the original similarity by a predetermined constant less than 1, such as 0.6. By correcting the similarity in this way, a more appropriate similarity can be obtained that takes into account the differences in the numerical values.

[0085] In step S67 following step S66, the CPU 21 determines whether there is an unselected sentence (explanation) that can be combined in the explanatory document P2. If such an explanation exists, the determination in step S67 is YES, and the process returns to step S62. If such an explanation does not exist, the determination in step S67 is NO, and the process proceeds to step S68.

[0086] In step S68, the CPU 21 determines whether or not there is an unselected sentence (design sentence) in the design document D2. If such a design sentence exists, the determination in step S68 becomes YES, and the process returns to step S61. If such a design sentence does not exist, the determination in step S68 becomes NO, and the similarity correction process ends here.

[0087] 10 is a flowchart showing an example of the match determination process executed as step S14 in the traceability check process. Next, the determination process will be described in detail with reference to FIG.

[0088] First, in step S71, CPU 21 executes an allocation process to identify rough correspondences between sentences in design document D2 and explanatory document P2. In this allocation process, design document D2 is divided into units of sentences that are considered to be semantically coherent, and for each unit of division, the degree of correspondence is considered, and a range in explanatory document P1 that corresponds to that unit of division is extracted.

[0089] In the next step S72, the CPU 21 executes a linking method determination process for determining, for each division unit of the design document D2, a method for identifying (linking) program statements in the source code P1 that correspond to (link) the division unit. By executing this linking method determination process, the program statements in the source code P1 are linked to the design statements in each division unit in consideration of their consistency.

[0090] In step S73, the CPU 21 executes a first context confirmation process to confirm how the design statements located before and after the division unit are handled. In the following step S74, the CPU 21 executes a second context confirmation process to confirm how the multiple explanatory statements (sentences) located before and after the division unit are handled. The reason why the second context confirmation process focuses on the multiple explanatory statements is that there is a possibility that the correspondence between the sentences in the design document D2 and the explanatory document P2 is one-to-multiple or multiple-to-one.

[0091] In step S75 following step S74, the CPU 21 executes a linking candidate determination process for determining candidates that may potentially link the unlinked portion of the design document or the description. In step S76, the CPU 21 then executes a reverse conversion process for the design document D2 and the description document P2, i.e., for generating a design document D3 by translating the design document D2 into Japanese and generating source code P3 from the description document P2. After this reverse conversion process is executed, the matching determination process ends.

[0092] The subroutine processing executed in the match determination processing will be described in detail below. 11 is a flowchart showing an example of the allocation process executed as step S71. In the subroutine process executed in the match determination process, the allocation process will first be described in detail with reference to FIG.

[0093] First, in step S81, the CPU 21 divides the design document D2 into division units. In the following step S82, the CPU 21 selects one of the division units. In the next step S83, the CPU 21 selects one of the functions (subroutine processes) whose explanations are written in the explanation document P2. After the selection, the process proceeds to step S84.

[0094] In step S84, the CPU 21 calculates the degree of match, for example, the degree of similarity, between the division unit and a sentence in the explanatory document P2 that explains one function in the source code P1. When calculating the degree of similarity as the degree of match, the target sentence is vectorized by the vectorization unit 244. The degree of match calculated here will hereinafter be referred to as the "original degree of match" to distinguish it from the degree of match described below.

[0095] In step S85 following step S84, CPU 21 checks the calling relationship of the selected function with other functions. In the next step S86, it is determined whether the selected function calls other functions. If other functions are called, the determination in step S86 is YES, and the process proceeds to step S87. If other functions are not called, the determination in step S86 is NO, and the process proceeds to step S90.

[0096] In step S87, CPU 21 expands the sentence describing the called function into the sentence describing the selected function, and calculates the degree of match between the expanded sentence and the division unit. In the following step S88, CPU 21 determines whether the calculated degree of match is higher than the original degree of match. If there is a better match between the expanded sentence and the division unit, the calculated degree of match this time will be higher than the original degree of match. Therefore, the determination in step S88 is YES, and the process proceeds to step S89. If the calculated degree of match this time is lower than the original degree of match, the determination in step S88 is NO, and the process returns to step S85. This confirms whether or not another function has been called.

[0097] In step S89, CPU 21 adopts the expanded sentence as the base sentence. As a result, when the next sentence explaining another function is expanded, the sentence obtained in step S87 will be the target of expansion. After updating the base sentence in this way, the process returns to step S85.

[0098] In step S90, to which the CPU 21 proceeds when the determination in step S86 above is NO, the CPU 21 determines whether or not there are any unselected functions. If there are any unselected functions, the determination in step S90 is YES and the process returns to step S83 above. As a result, one of the unselected functions is selected. On the other hand, if there are no unselected functions, the determination in step S90 is NO and the process proceeds to step S91.

[0099] In step S91, the CPU 21 determines whether or not there are other unselected division units. If there are unselected division units, the determination in step S91 becomes YES and the process returns to step 82. As a result, one of the unselected division units is selected. On the other hand, if there are no unselected division units, that is, if the linking of explanations to each division unit has been completed, the determination in step S91 becomes NO, and the allocation process ends here.

[0100] 12 is a flowchart showing an example of the linking method determination process executed as step S72 in the above-mentioned match determination process. Next, this determination process will be described in detail with reference to FIG.

[0101] When the linking method determination process is executed, as described above, the sentences in the explanatory document P2 are linked to each division unit of the design document D2 on a function-by-function basis. In the linking method determination process, the target portions are extracted on a description-by-description basis from the linked sentences in the explanatory document P2. As a result, in this embodiment, more consistent descriptions are linked to the division units with higher accuracy.

[0102] First, in step S101, CPU 21 selects one of the division units in design document D2. In the following step S102, CPU 21 determines combinations of each design sentence constituting the selected division unit with each explanatory sentence constituting the corresponding description portion in explanatory document P2, and extracts those combinations whose similarity exceeds a predetermined threshold. In the next step S103, CPU 21 determines combinations of sentences for the division unit located next to the selected division unit, and extracts those combinations whose similarity exceeds a predetermined threshold.

[0103] The reason why the selected division unit and subsequent division units are also considered is that there may be design statements for the same processing content across multiple division units. For this reason, the number of division units to be considered may be three or more. Furthermore, there is no need to particularly limit the relative positions of the division units. The similarity has been corrected as necessary by the similarity correction process, an example of which is shown in the flowchart of Figure 9.

[0104] In step S104 following step S103, the CPU 21 counts the number of combinations that exceed the threshold. In the next step S105, the CPU 21 determines whether or not there are other combination methods, i.e., other linking methods. If there are other unselected combination methods, the determination in step S105 becomes YES and the process returns to step S102. This allows confirmation of combinations of design statements and description statements that exceed the threshold in unselected combination methods. If there are no unselected combination methods, the determination in step S105 becomes NO and the process proceeds to step S106.

[0105] In step S106, the CPU 21 determines the combination with the largest number as the linking method, and links the design statement and the description. In the following step S107, the CPU 21 determines whether there are any other unselected division units. If there are any unselected division units, the determination in step S106 is YES, and the process returns to step S101. If there are no unselected division units, the determination in step S106 is NO, and the linking method determination process ends here.

[0106] 13 is a flowchart showing an example of the first context confirmation process executed as step S73 in the match determination process. Next, this confirmation process will be described in detail with reference to FIG.

[0107] First, in step S151, the CPU 21 selects one division unit in the design document D2. In the next step S152, the CPU 21 acquires design sentences located before and after the selected division unit, and also acquires explanatory sentences located before and after the range of explanatory sentences linked to the division unit and having a high similarity to the acquired design sentence. In the subsequent step S153, the CPU 21 calculates a similarity for each combination that adds at least one of the acquired preceding and following sentences, and extracts combinations with a high calculated similarity.

[0108] The combinations extracted are, for example, a division unit plus the design statement located before it, and the range of explanatory statements linked to that division unit plus the explanatory statement located after it. The calculated similarity is compared with the similarity when the preceding and following statements are not included (original similarity). If a similarity greater than the original similarity is calculated, that is, if it is considered that there is a design statement that should be combined with the division unit, the link between the description in the design document D2 and the description in the explanatory document P2 is updated according to the combination with the highest similarity. In step S153, the processes up to this point are also executed.

[0109] In step S154 following step S153, the CPU 21 determines whether or not there are other unselected division units. If there are unselected division units, the determination in step S154 becomes YES and the process returns to step S151. As a result, one of the unselected division units is selected. On the other hand, if there are no unselected division units, the determination in step S154 becomes NO, and the first context confirmation process ends here.

[0110] 14 is a flowchart showing an example of the second context confirmation process executed as step S74 in the above-mentioned match determination process. Next, this confirmation process will be described in detail with reference to FIG.

[0111] First, in step S201, the CPU 21 selects one of the division units in the design document D2. In the next step S202, the CPU 21 acquires the sentences (multiple consecutive design sentences) located before and after the selected division unit. In the following step S203, the CPU 21 combines the preceding sentence into the division unit, and calculates the similarity between the range of the explanatory sentence linked to the division unit before the combination and the division unit after the combination, as well as the BLEU score. The CPU 21 also calculates the BLEU score between the uncombined division unit and the range of the explanatory sentence linked thereto. In the subsequent step S204, the CPU 21 combines the succeeding sentence into the division unit, and calculates the similarity between the range of the explanatory sentence linked to the division unit before the combination and the division unit after the combination, as well as the BLEU score.

[0112] The BLEU (score) is an index for evaluating the similarity with a reference sentence, and the higher the similarity, the larger the value. However, the calculation method is different from the similarity calculated using a vector. In this embodiment, by using two indexes calculated by different methods, the appropriateness of combining the preceding and following sentences in a division unit is evaluated with higher accuracy. Note that an index other than BLEU may be used to evaluate the similarity. The index may be ROUGE (Recall-Oriented Understudy for Gisting Evaluation), METEOR (Metric for Evaluation of Translation with Explicit Ordering), TER (Translation Edit Rate), or the like.

[0113] In step S205 following step S204, if the calculated similarity and BLEU score are both greater than those in the unlinked case, the CPU 21 updates the linking to the linking method that resulted in the greater similarity and BLEU score. In the next step S206, the CPU 21 determines whether the linking has been updated. If the linking has been updated, the determination in step S206 becomes YES and the process returns to step S202. As a result, the sentences located before and after the updated linking, i.e., the updated division unit, are acquired. On the other hand, if the linking has not been updated, the determination in step S206 becomes YES and the process proceeds to step S207.

[0114] In step S207, CPU 21 determines whether there are any other unselected division units. If there are any unselected division units, the determination in step S207 becomes YES and the process returns to step S201. As a result, one of the unselected division units is newly selected. On the other hand, if there are no unselected division units, the determination in step S207 becomes NO, and the second context confirmation process ends here.

[0115] In this way, in this embodiment, if there is a design statement or sentence to be linked at least before or after the division unit, that design statement or sentence is linked to the division unit. By linking in this way, it is possible to more appropriately link sentence units between the design document D2 and the explanation document P2.

[0116] The results of the linking on a sentence-by-sentence basis are stored, for example, in the auxiliary storage device 26, and can be checked by employees at their discretion. This allows employees to easily check whether the execution content of the process described on a sentence-by-sentence basis is implemented in the source code P1. Furthermore, by checking this together with the corresponding description in the design document D3 and the source code P3, employees can more easily check whether the linking is appropriate, whether the execution content is appropriately implemented in the source code P3, etc.

[0117] Fig. 15 is a flowchart showing an example of the linking candidate determination process executed as step S75 in the above-mentioned match determination process. Finally, this linking candidate determination process will be described in detail with reference to Fig. 15. As described above, this linking candidate determination process is a process for identifying and determining, for each unlinked portion (sentence or paragraph), a candidate (linking candidate) with which that portion can be linked.

[0118] First, in step S301, the CPU 21 extracts unlinked portions from the design document D2 and the explanatory document P2. In the following step S302, the CPU 21 determines whether or not there are unlinked portions. If an unlinked portion can be extracted, the determination in step S302 becomes YES, and the process proceeds to step S303. If an unlinked portion cannot be extracted, the determination in step S302 becomes NO, and the linking candidate determination process ends here.

[0119] In step S303, for each unlinked portion extracted from the design document D2, the CPU 21 performs a search to extract linking candidates from the unlinked portions of the explanatory document P2 that are candidates for linking, by referring to the linking results for the sentences before and after the unlinked portion. This search is performed, for example, by determining a search range in the explanatory document P2 based on the linking results for the sentences before and after the unlinked portion, and evaluating the validity of linking for each unlinked portion within the determined search range. In this manner, in this embodiment, a search for linking candidates is performed taking into account the positional relationship between the sentences before and after the unlinked portion and the sentences in the explanatory document P2 that are linked. If an unlinked portion with high linking validity is extracted, the extracted unlinked portion is determined as a linking candidate. Based on this determination, the linking results are stored, for example, in the auxiliary storage device 26. The evaluation of validity, i.e., the determination of whether or not linking is possible, may be performed using, for example, similarity calculated using vectors.

[0120] The extracted unlinked parts are called linking candidates because the reliability of the linking is lower than that of the parts where linking has been identified. For this reason, employees are allowed to distinguish linking candidates and the unlinked parts linked to those linking candidates from other results. Linking between them may not be performed automatically, but may be performed by a worker. In this case, all unlinked parts may be presented to the worker, or only unlinked parts for which no linking candidates could be extracted may be selectively presented to the worker.

[0121] As described above, in this embodiment, the entire design document D1 is linked to the source code P1. However, the employee may be able to arbitrarily specify the range of the design document D1. The range may be specified, for example, by inserting a page, item name, or range specification identifier into the design document D1. To allow the employee to specify the range more appropriately and easily, interactive support may be provided. In this case, for example, range specification candidates may be identified and the identified range specification candidates may be presented to the employee for selection. Presenting range specification candidates in this manner allows the employee to specify the required range more reliably and easily. The range specification candidates may be identified by the process described above.

[0122] If such a range specification is possible, employees can check the results of the traceability check limited to the required range. This makes it easier to check the required results. Such a range specification may be possible for the source code P1. Therefore, the number of sentences generated by converting the source code P1 may be one.

[0123] In this embodiment, the source code P1 is converted into an explanation document P2 expressed in English, and the design document D1 expressed in Japanese is left as is or converted into the design document D2 expressed in English, but the type of natural language used to express them is not particularly limited. The type of natural language may be selected arbitrarily taking into consideration the conversion accuracy or machine translation accuracy, etc. [Explanation of symbols]

[0124] 1 Information processing device (AP server), 2 Explanation text conversion unit, 3 Comparison unit, 4 Match determination unit, 211 Transmission / reception processing unit, 213 Translation instruction unit, 214 Description generation instruction unit, 215 Source code generation instruction unit, 216 Generation result confirmation unit, 217 Replacement unit, 218 Description correspondence identification unit, 219 Vectorization instruction unit, 223 Similarity calculation unit, 224 Allocation unit, 225 Linking method determination unit, 226 Context confirmation unit, 227 Linking candidate determination unit, 241 First translation unit, 242 Second translation unit, 243 Description generation unit, 244 Vectorization unit, 245 Source code generation unit, D1 Design document (design data), P1 Source code, P2 Description document.

Claims

1. a sentence generation unit that converts the entire source code of the software created in accordance with the contents of the design document and generates one or more sentences including one or more explanatory sentences that describe the contents of the processing executed by the source code; a correspondence specifying unit that specifies a correspondence between the sentence and a description in the design document based on a similarity of the text; An information processing device comprising:

2. The correspondence relationship identification unit a proportion calculation unit that calculates a proportion of description locations in the source code that correspond to one or more of the sentences generated by the sentence generation unit; a re-creation instruction unit that causes the sentence generation unit to re-generate the sentence in accordance with the ratio calculated by the ratio calculation unit, The information processing device according to claim 1 .

3. The correspondence relationship identification unit an allocation unit that divides the design document into a plurality of division units and allocates a sentence to be linked to each division unit; and an allocation correction unit that combines one or more sentences located before and after the division unit based on a change in the degree of agreement with the sentence for the division unit linked by the allocation unit, The information processing device according to claim 1 .

4. In the information processing device, Converting the entire source code of the software created in accordance with the contents of the design document, and generating one or more sentences including one or more explanatory sentences that describe the contents of the processing executed by the source code; Identifying a correspondence between the sentence and a description in the design document based on a similarity of the text; A program that executes a process.

Citation Information

Patent Citations

  • Document generator, document generation method and storage medium

    JP2000222192A

  • Software development support system, software development support program and software development support method

    JP2012084030A

  • Traceability generation apparatus and traceability generation method

    JP2023126104A

  • Program specification consistency inspecting device

    JP1996030448A