JP2025171397A - Computer program, information processing device, and information processing method - Google Patents
Computer program, information processing device, and information processing methodInfo
- Publication number
- JP2025171397A JP2025171397A JP2024076698A JP2024076698A JP2025171397A JP 2025171397 A JP2025171397 A JP 2025171397A JP 2024076698 A JP2024076698 A JP 2024076698A JP 2024076698 A JP2024076698 A JP 2024076698A JP 2025171397 A JP2025171397 A JP 2025171397A
- Authority
- JP
- Japan
- Prior art keywords
- data
- language model
- software development
- text
- document
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
【課題】ソフトウェア開発関連文書の作成を支援するコンピュータプログラム、情報処理装置、及び情報処理方法を提供する。【解決手段】コンピュータプログラムは、ソフトウェア開発関連文書の文書データを取得し、言語モデルに、前記ソフトウェア開発関連文書に関するレビュー結果を出力させるように前記文書データを与え、前記言語モデルからの出力に基づき、レビュー結果を出力する処理を実行させる。【選択図】図3A computer program, an information processing device, and an information processing method for supporting the creation of software development-related documents are provided. The computer program acquires document data of software development-related documents, provides the document data to a language model so as to output review results for the software development-related documents, and executes a process for outputting the review results based on the output from the language model. [Selected Figure] Figure 3
Description
本発明は、ソフトウェア開発関連文書の作成を支援するコンピュータプログラム、情報処理装置、及び情報処理方法に関する。 The present invention relates to a computer program, information processing device, and information processing method that support the creation of software development-related documents.
種々の業務に関するフォーマットが定められた各種文書について、文書内のテキストをOCR(Optical Character Recognition/Reader)などを用いてテキストデータとして取り込み、内容を自動的にチェックする技術が提案されている(特許文献1等)。 Technology has been proposed for automatically checking the content of various business-related documents with defined formats by using OCR (Optical Character Recognition/Reader) or other tools to capture the text within the document as text data (see, for example, Patent Document 1).
特許文献1に開示されているような契約書に対する法律や、ソフトウェアプログラムのような文法が定められているものは、OCRで取り込んだテキストを、明確な法律又は文法との比較に基づいて修正することが可能である。 In cases where laws governing contracts, such as those disclosed in Patent Document 1, or software programs have defined grammar, it is possible to correct text captured by OCR based on a comparison with clear laws or grammar.
これに対し、国家で定められる法律や世界共通のルールまで明確でないものの、各企業や団体、技術分野にて蓄積された知識や慣習に基づき比較的緩やかに形式や文言、あるいは必要事項が定まっている文書が存在する。例えば、システム開発などのプロジェクトにて必要な機能を定義していく「要件定義書」、「開発仕様書」、及び「設計書」など、プロジェクト参加者で共通認識としておくべき情報には、相互の理解に齟齬がないようにある程度形式が定まっている。これらの文書データもチェックや修正を自動化することができれば業務の効率化等に貢献可能となる。 In contrast, while there are no clear national laws or globally-defined rules, there are documents whose formats, wording, and required information are relatively loosely defined based on the knowledge and customs accumulated by each company, organization, and technical field. For example, information that should be shared among project participants, such as "requirements specifications," "development specifications," and "design documents" that define the necessary functions in a system development project, has a certain degree of format to ensure there are no discrepancies in mutual understanding. If the checking and correction of this document data could be automated, it could contribute to improving work efficiency, etc.
本発明は、ソフトウェア開発関連文書の作成を支援するコンピュータプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。 The present invention aims to provide a computer program, information processing device, and information processing method that support the creation of software development-related documents.
本開示の一実施形態のコンピュータプログラムは、コンピュータに、ソフトウェア開発関連文書の文書データを取得し、言語モデルに、前記ソフトウェア開発関連文書に関するレビュー結果を出力させるように前記文書データを与え、前記言語モデルからの出力に基づき、レビュー結果を出力する処理を実行させる。 A computer program according to one embodiment of the present disclosure causes a computer to acquire document data for software development-related documents, provide the document data to a language model so as to output review results for the software development-related documents, and execute a process of outputting the review results based on the output from the language model.
本開示のコンピュータプログラム、情報処理装置及び情報処理方法では、ソフトウェア開発関連文書のデータに対するレビュー結果が、言語モデルを用いて自動的に出力される。言語モデルは、レビュー対象のソフトウェア開発関連文書のデータのみならず、ソフトウェア開発関連文書の参照情報や、開発対象のソフトウェアの技術分野やこれまで蓄積された知識を参照し、RAG(Retrieval-Augmented Generation)の技術を用いてレビューを出力するようにしてあってもよい。 In the computer program, information processing device, and information processing method disclosed herein, review results for software development-related document data are automatically output using a language model. The language model may reference not only the software development-related document data being reviewed, but also reference reference information for the software development-related documents, the technical field of the software being developed, and accumulated knowledge to date, and output the review using RAG (Retrieval-Augmented Generation) technology.
本開示によれば、ソフトウェア開発関連文書のレビューが自動的に出力され、文書に対し修正すべき事項等のチェックが効率的に実行可能となる。 This disclosure enables reviews of software development-related documents to be automatically output, enabling efficient checking of documents for items that need to be corrected.
本開示をその実施の形態を示す図面を参照して具体的に説明する。以下の実施の形態では、本開示のコンピュータプログラムを用いた開発支援システムについて説明する。 The present disclosure will be described in detail with reference to drawings showing embodiments thereof. In the following embodiment, a development support system using the computer program of the present disclosure will be described.
図1は、開発支援システム100の概要図である。開発支援システム100は、情報処理装置1と、端末装置2とを含む。情報処理装置1は、開発支援事業者が管理するWebサーバであり、端末装置2は情報処理装置1との間でネットワークNを介した通信が可能である。端末装置2は例えば、システムに関する多くのソフトウェア群の設計開発を実施するオペレータによって使用されるパーソナルコンピュータである。 Figure 1 is a schematic diagram of a development support system 100. The development support system 100 includes an information processing device 1 and a terminal device 2. The information processing device 1 is a web server managed by a development support provider, and the terminal device 2 is capable of communicating with the information processing device 1 via a network N. The terminal device 2 is, for example, a personal computer used by an operator who designs and develops a large number of software programs related to the system.
オペレータは、端末装置2上で設計開発対象のソフトウェアに対し、「開発仕様書」、「設計書」、及び「要件定義書」等のソフトウェア開発関連文書を作成、編集する。オペレータは、端末装置2上で、作成、編集したソフトウェア開発関連文書についてのレビュー(内容チェック、修正の提案など)の依頼をする操作を行なう。端末装置2から依頼を受けた情報処理装置1は、ソフトウェア開発関連文書を取得し、対象に対するレビュー結果を端末装置2へ出力する。情報処理装置1は、以下の説明において、ソフトウェア開発関連文書の自動作成や自動修正を実施せず、レビュー結果を出力するにとどめる。 On terminal device 2, the operator creates and edits software development-related documents such as "development specifications," "design documents," and "requirements definition documents" for the software being designed and developed. On terminal device 2, the operator performs operations to request a review (content check, suggested revisions, etc.) of the software development-related documents they have created and edited. Upon receiving the request from terminal device 2, information processing device 1 acquires the software development-related documents and outputs the review results for the target to terminal device 2. In the following explanation, information processing device 1 does not automatically create or automatically correct software development-related documents, but simply outputs the review results.
「開発仕様書」、「設計書」、及び「要件定義書」等のソフトウェア開発関連文書は、大抵の場合、継続的改善(Continuous Integration)と呼ばれる品質改善手法に基づき、ソフトウェアの作成やデバッグ、テスト、デプロイの循環的な繰り返しと対応して、複数のオペレータの介入操作により更新される。システムへの要求増加によってソフトウェアの部分変更が行なわれると、その更新によって他のソフトウェア部品などに影響がないか否かをテストする回帰テスト(regression testing)が行なわれる。回帰テストは時間及び費用をいずれも多く必要とするため、この部分のコスト削減や効率化がシステム開発及び保守には特に重要である。回帰テストを含む各種テストやソフトウェアそのものの自動作成も推し進められているが、この際、「開発仕様書」、「設計書」、及び「要件定義書」等のソフトウェア開発関連文書が重要になる。ソフトウェア開発関連文書からテストコードを自動的に作成する手法や、ソフトウェア開発関連文書との対応を確認する手法があり、ソフトウェア開発関連文書に誤りや曖昧さが残ると開発やテスト工程にて支障をきたし不具合のもととなり得る。開発対象のシステムの規模が大きくなるほど、ソフトウェア関連文書は粗密さまざまに作成され、相互に関連し合うことになり、齟齬による不具合発生の可能性が高まり、回帰コストの工数も膨大となる。 Software development documents such as "development specifications," "design documents," and "requirements" are often updated through the intervention of multiple operators in response to the cyclical cycle of software creation, debugging, testing, and deployment, based on a quality improvement method known as continuous integration. When software changes are made due to increased system requirements, regression testing is performed to determine whether the update will affect other software components. Because regression testing requires significant time and expense, reducing the cost and streamlining this process is particularly important for system development and maintenance. Automated generation of various tests, including regression testing, and software itself is also being promoted, and software development documents such as "development specifications," "design documents," and "requirements" play an important role in this process. There are methods for automatically generating test code from software development documents and for verifying their correspondence with software development documents. However, errors or ambiguities in software development documents can hinder the development and testing process and lead to defects. The larger the system being developed, the more software-related documentation will be created, with varying degrees of detail and interrelatedness, increasing the likelihood of defects occurring due to discrepancies and the labor costs of regression.
また、システムはGUI(Graphics User Interface)を含むことが多く、ソフトウェア開発関連文書にはソフトウェアのGUIに関する画像を載せた仕様書などが含まれる。ソフトウェア開発関連文書は、オペレータや開発事業者の直感的な理解を高めるために、図表を用いることも多い。GUIのみならず、表であっても色分けがされるなどして直感的な把握を容易とするように工夫してある場合がある。このようなソフトウェア関連文書に、従来のOCRの技術を適用しても画像内で表現されている文字情報などを取得することが難しい。また、画像データとテキストデータとが混在した文書は、自然言語処理でそのまま扱うことが困難である。 Furthermore, systems often include a GUI (Graphics User Interface), and software development-related documents often include specifications with images of the software's GUI. Software development-related documents often use diagrams and charts to enhance intuitive understanding among operators and developers. Not only GUIs, but even tables may be color-coded to facilitate intuitive understanding. Even when applying conventional OCR technology to such software-related documents, it is difficult to obtain the text information expressed within the images. Furthermore, documents that contain a mixture of image data and text data are difficult to handle directly using natural language processing.
そこで本開示の開発支援システム100では、情報処理装置1が言語モデルLMを用い、ソフトウェア開発関連文書に対し、開発事業者の知識や慣習に基づき適切に、対象の文書の誤りなどについて少なくともレビュー結果を出力する。更に、画像を含む文書も画像に対する認識する前処理を実行してテキスト化することにより、言語モデルLMを用いた知識や慣習に基づくレビューの対象に、文書内のGUI画像を加えることができる。つまり、大規模システムの開発事業者のオペレータによるソフトウェア開発関連文書の見直しやバグ修正などを効率化し、蓄積された知識に基づいた修正案などをレビュー結果として提示することが可能になる。オペレータは、「開発仕様書」や「設計書」などを正確かつ適切に作成・修正できる。このような作成・修正ができる高度な人材が不足しつつある昨今でも、高品質のソフトウェア群によるシステムの提供を可能とする。 In the development support system 100 disclosed herein, the information processing device 1 uses a language model LM to appropriately output at least review results for errors in software development-related documents based on the developer's knowledge and practices. Furthermore, by performing image recognition preprocessing on documents that contain images and converting them into text, GUI images within the documents can be included as a subject of review based on knowledge and practices using the language model LM. This means that operators of large-scale system developers can efficiently review software development-related documents and fix bugs, and can present review results such as suggested revisions based on accumulated knowledge. Operators can accurately and appropriately create and modify "development specifications" and "design documents." Even in today's world where there is a shortage of highly skilled personnel capable of such creation and modification, this system makes it possible to provide systems based on high-quality software suites.
このようなソフトウェア開発関連文書の作成・修正の支援を実現するための各装置及び処理の詳細について以下に説明する。 The details of each device and process used to support the creation and revision of software development-related documents are described below.
図2は、情報処理装置1の構成を示すブロック図である。情報処理装置1は、サーバコンピュータである。サーバコンピュータは、クラウドサーバであって開発支援事業者が管理するものであってもよいし、オンプレミスサーバであってソフトウェア開発事業者にて管理するものであってもよい。情報処理装置1は、デスクトップ型又はラップトップ型のパーソナルコンピュータであってもよい。 Figure 2 is a block diagram showing the configuration of information processing device 1. Information processing device 1 is a server computer. The server computer may be a cloud server managed by a development support provider, or an on-premise server managed by a software development provider. Information processing device 1 may also be a desktop or laptop personal computer.
情報処理装置1は、処理部10、記憶部11、及び通信部12を備える。処理部10は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサである。処理部10は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)等のメモリを含む。処理部10は、記憶部11に記憶されている情報処理プログラムP1をメモリに読み出して実行することにより、汎用的なコンピュータに、後述する各種処理を実行させる。 The information processing device 1 includes a processing unit 10, a memory unit 11, and a communication unit 12. The processing unit 10 is a processor such as one or more CPUs (Central Processing Units), MPUs (Micro-Processing Units), GPUs (Graphics Processing Units), etc. The processing unit 10 includes memory such as SRAMs (Static Random Access Memory) and DRAMs (Dynamic Random Access Memory). The processing unit 10 reads the information processing program P1 stored in the memory unit 11 into memory and executes it, causing a general-purpose computer to perform various processes described below.
記憶部11は、SSD(Solid State Drive)、ハードディスク(Hard Disk Drive )等の比較的大容量の不揮発性記憶媒体(ストレージ)である。記憶部11は、処理部10が処理を実行するために必要なプログラム(プログラム製品)と、参照用の設定データとを記憶する。プログラム製品は、情報処理プログラムP1、言語モデルモジュールM1及びナレッジデータK1を含む。 The memory unit 11 is a relatively large-capacity non-volatile storage medium (storage) such as a solid-state drive (SSD) or a hard disk drive. The memory unit 11 stores programs (program products) required for the processing unit 10 to execute processing, as well as reference setting data. The program products include an information processing program P1, a language model module M1, and knowledge data K1.
記憶部11に記憶されている情報処理プログラム(コンピュータプロダクト)P1、言語モデルモジュールM1及びナレッジデータK1のいずれかは、コンピュータから読み取り可能な非一時記憶媒体9に記憶されている情報処理プログラムP9、言語モデルモジュールM9、又はナレッジデータK9を、処理部10が読み出して記憶部11に記憶したものであってもよい。情報処理プログラムP1、言語モデルモジュールM1、ナレッジデータK1のいずれかは、処理部10が通信部12を介して外部のダウンロードサーバからダウンロードして記憶部11に記憶したものであってもよい。 Any of the information processing program (computer product) P1, language model module M1, and knowledge data K1 stored in the memory unit 11 may be the information processing program P9, language model module M9, or knowledge data K9 stored on a computer-readable non-temporary storage medium 9 that has been read by the processing unit 10 and stored in the memory unit 11. Any of the information processing program P1, language model module M1, and knowledge data K1 may be downloaded by the processing unit 10 from an external download server via the communication unit 12 and stored in the memory unit 11.
情報処理プログラムP1、言語モデルモジュールM1及びナレッジデータK1に基づく処理については詳細を後述する。 Processing based on the information processing program P1, language model module M1, and knowledge data K1 will be described in detail below.
通信部12は、ネットワークNを介して端末装置2との通信を実現する。通信部12は、例えばネットワークカードである。処理部10は、通信部12により端末装置2からのデータの受信や、端末装置2への応答が可能である。 The communication unit 12 communicates with the terminal device 2 via the network N. The communication unit 12 is, for example, a network card. The processing unit 10 can receive data from the terminal device 2 and respond to the terminal device 2 via the communication unit 12.
ネットワークNは、所謂インターネットを含むネットワークである。ネットワークNは、ソフトウェア開発事業者のローカルネットワークであってもよい。ネットワークNは、キャリアネットワークを含んでもよいし、他の無線通信媒体を含んでもよい。 Network N is a network that includes the so-called Internet. Network N may also be a local network of a software developer. Network N may also include a carrier network or other wireless communication media.
図3は、言語モデルモジュールM1の説明図である。言語モデルモジュールM1は、所謂言語モデル(LM:Language Model)と呼ばれるモデルを含む。言語モデルモジュールM1は、GPT-4等の大規模言語モデル(LLM:Large Language Model)を含んでもよい。言語モデルLM等の言語モデルモジュールM1を構成する一部は、外部サーバで稼働しているもの(GPT-4、Gemini、Claude等)を、処理部10が通信部12を介して利用してもよい。言語モデルLMは、ベクトルデータ化されて入力される単語群に対し、出現確率の高い単語を用いて自然な言語型データ(自然文)を出力するようにニューラルネットワークを用いて学習されたモデルである。言語モデルLMのアルゴリズムは、Transformerを始めとする種々の手法が採用可能である。 Figure 3 is an explanatory diagram of the language model module M1. The language model module M1 includes a model known as a language model (LM). The language model module M1 may also include a large language model (LLM) such as GPT-4. A portion of the language model module M1, such as the language model LM, may be running on an external server (GPT-4, Gemini, Cloude, etc.) and be used by the processing unit 10 via the communication unit 12. The language model LM is a model trained using a neural network to output natural language data (natural sentences) using words with a high occurrence probability for a group of words input as vector data. Various methods, including Transformer, can be used as the language model LM algorithm.
言語モデルモジュールM1は上述した言語モデルLMを用い、後述するようにしてテキスト化された「開発仕様書」などのソフトウェア開発関連文書のデータと、これに対するクエリとが入力されると、そのソフトウェア開発関連文書に対するレビュー結果を、自然言語を用いて出力する。言語モデルモジュールM1は、表計算ソフトウェアによって読み取れる形式(例えば、カンマやコロンなどの文字や記号で区切る)で出力するように言語モデルLMに指示して出力させるか、整形してから出力する。 The language model module M1 uses the above-mentioned language model LM to input data for software development-related documents such as "development specifications" converted to text as described below, along with a query for that data, and outputs the review results for the software development-related documents in natural language. The language model module M1 either instructs the language model LM to output the data in a format that can be read by spreadsheet software (for example, separated by characters or symbols such as commas or colons), or formats and then outputs the data.
言語モデルモジュールM1は、ナレッジデータK1に基づき、ナレッジデータK1に含まれるソフトウェア開発関連文書に関する知識を組み合わせて使用されてよい。即ち、情報処理装置1は、言語モデルLMを、RAG(Retrieval Augmented Generation)の技術を用いて精度を高めて使用する。 The language model module M1 may be used based on the knowledge data K1, combining knowledge about software development-related documents contained in the knowledge data K1. In other words, the information processing device 1 uses the language model LM with improved accuracy using RAG (Retrieval Augmented Generation) technology.
ナレッジデータK1は、ソフトウェア開発関連文書に対して用意された参照情報である。ナレッジデータK1は、対象ソフトウェアが適用される業務分野毎、その対象ソフトウェアそれぞれに対して個別に用意されてよい。ナレッジデータK1は、言語モデルLMにとって前提などの参照情報とし使用できるデータである。ナレッジデータK1は例えば、これまでに作成され、レビューが反映されて修正が完了している「開発仕様書」、「設計書」、及び「要件定義書」の文書データである。ナレッジデータK1は例えば、ソフトウェアの変更や回帰テストの熟練者による指摘の仕方をテキスト化したものを、ベクトルデータ化して記憶したものであってもよい。ナレッジデータK1は、過去の文書に対する熟練者の指摘であってもよい。ナレッジデータK1は、検索のしやすさや、後述の言語モデルLMへの入力のためにベクトルデータ化されていることが好ましい。 Knowledge data K1 is reference information prepared for software development-related documents. Knowledge data K1 may be prepared individually for each business field to which the target software is applied and for each piece of target software. Knowledge data K1 is data that can be used as reference information such as assumptions for the language model LM. Knowledge data K1 is, for example, document data of "development specifications," "design documents," and "requirements definition documents" that have been created, reviewed, and revised. Knowledge data K1 may be, for example, textual data of expert comments on software changes and regression testing, which have been converted into vector data and stored. Knowledge data K1 may also be expert comments on past documents. It is preferable that knowledge data K1 be converted into vector data for ease of search and for input into the language model LM, described below.
ナレッジデータK1は、ソフトウェア開発関連文書の例えば「開発仕様書」、「設計書」、及び「要件定義書」等の種類に応じて、業務分野毎に記憶されていてもよい。図4は、ナレッジデータK1の説明図である。ナレッジデータK1は、図4では、ソフトウェア開発関連文書の種類と、対応する業務分野とを識別可能に記憶してある。図4の例では、ナレッジデータK1は、「ERP」及び「生産管理」の業務分野毎に区別して記憶されている。その他、教育関連などと業務分野毎に分けられているとよい。ナレッジデータK1は、業務分野毎に、「開発仕様書」についてのデータ、「設計書」についてのデータ、及び「要件定義書」についてのデータと区別して記憶されている。また、ナレッジデータK1は、システムの全体の大枠としての「概要」や「コンセプト」を示す程度の設計書などの粗いデータから、システムを実現するソフトウェアモジュールそれぞれの「個別知識」などの密なデータの粗密が様々であるソフトウェア開発関連文書を区別できるように記憶されているとよい。 Knowledge data K1 may be stored for each business field according to the type of software development-related document, such as "development specifications," "design documents," and "requirements definition documents." Figure 4 is an explanatory diagram of knowledge data K1. In Figure 4, knowledge data K1 is stored so that the type of software development-related document and the corresponding business field can be identified. In the example of Figure 4, knowledge data K1 is stored separately for each business field, "ERP" and "production management." It may also be separated into other business fields, such as education-related fields. Knowledge data K1 is stored separately for each business field, with data on "development specifications," data on "design documents," and data on "requirements definition documents." Knowledge data K1 may also be stored so that it can distinguish between software development-related documents with varying levels of detail, from coarse data such as design documents that merely indicate the overall "overview" or "concept" of the system, to dense data such as the "individual knowledge" of each software module that implements the system.
ナレッジデータK1は、異なる業務分野又は異なる種類で互いに重複したデータがあってよい。ナレッジデータK1は、いずれの業務分野やいずれの種類についても参照可能なデータを含んでよい。このようなナレッジデータK1を使用することにより、言語モデルモジュールM1は、入力されるソフトウェア開発関連文書に記載内容を理解する手段としても機能する。 Knowledge data K1 may contain overlapping data from different business fields or types. Knowledge data K1 may include data that can be referenced in any business field or type. By using such knowledge data K1, language model module M1 also functions as a means for understanding the content of input software development-related documents.
ナレッジデータK1は、後述するように、過去のレビュー結果(熟練者による指摘)によって更新されるとよい。ナレッジデータK1は、ソフトウェア開発事業者のオペレータなどによって支持された指摘の仕方を促すように学習され更新され得る。このナレッジデータK1の学習や更新により、外部サーバ経由で使用する言語モデルLMを用いつつ、レビュー結果の精度を、開発支援事業者にて蓄積されたナレッジを活かして向上させることが可能である。 As described below, knowledge data K1 can be updated based on past review results (remarks made by experts). Knowledge data K1 can be learned and updated to encourage a method of making comments supported by operators at software development companies. By learning and updating this knowledge data K1, it is possible to improve the accuracy of review results by utilizing knowledge accumulated by development support companies while using a language model LM used via an external server.
図3に戻り、言語モデルモジュールM1について更に説明する。言語モデルモジュールM1は、言語モデルLMに対するリクエストに相当するクエリと、ソフトウェア開発関連文書のテキストデータとを与えられる。言語モデルモジュールM1は与えられたクエリとテキストデータとを解釈し、必要なナレッジデータK1の選定を行ない、言語モデルLMに対するプロンプト作成を行なう。 Returning to Figure 3, we will further explain the language model module M1. The language model module M1 is given a query corresponding to a request to the language model LM and text data of software development-related documents. The language model module M1 interprets the given query and text data, selects the necessary knowledge data K1, and creates a prompt for the language model LM.
言語モデルモジュールM1は、また、入力されるクエリ、ソフトウェア開発関連文書のデータに対し、トークン化(Tokenize)及びベクトルデータ化(Embedding )などの演算処理を実行するモジュールを含む。言語モデルモジュールM1は、与えられたクエリおよびソフトウェア開発関連文書の演算処理後のデータと、ベクトルデータ化されたナレッジデータK1から取り出された要素とを連結させるモジュール(Concatenate)を含む。言語モデルモジュールM1は、連結されたデータ(ベクトルデータ)を、言語モデル(大規模言語モデル)に入力する。 Language model module M1 also includes modules that perform computational processes such as tokenization and embedding of input query and software development-related document data. Language model module M1 also includes a module (Concatenate) that concatenates the processed data of the given query and software development-related document with elements extracted from the vectorized knowledge data K1. Language model module M1 inputs the concatenated data (vector data) into a language model (large-scale language model).
ナレッジデータK1から取り出されるデータは、入力されたソフトウェア開発関連文書の演算処理後のデータを入力する前後に、前提として言語モデルLMに与えられ、出力される言語データが、ソフトウェア開発関連文書に関するものとなるようにされてもよい。 The data extracted from the knowledge data K1 may be given to the language model LM as a premise before or after inputting the processed data of the input software development-related documents, so that the output language data relates to the software development-related documents.
ナレッジデータK1は、ソフトウェア関連文書の対象ソフトウェアの製品情報であってもよいし、その業務分野に関する情報であってもよい。ナレッジデータK1は、対象ソフトウェアがERP(Enterprise Resources Planning)や基幹システムに関するものである場合、複数の業務それぞれに対応するシステムにおける用語定義や規模の情報を含むとよい。これにより、言語モデルモジュールM1は、入力されたソフトウェア開発関連文書に対して、ナレッジデータK1に基づき、ソフトウェア開発関連文書の変更や、その対象ソフトウェアの熟練開発者や、回帰テストの熟練者による指摘のような言語型データを出力できる。 Knowledge data K1 may be product information for the software that is the subject of the software-related document, or information about its business field. If the subject software is related to ERP (Enterprise Resources Planning) or a core system, knowledge data K1 should include terminology definitions and scale information for the system corresponding to each of multiple business operations. This allows language model module M1 to output language-type data for the input software development-related document, such as changes to the software development-related document and comments from experienced developers of the subject software or experienced regression testers, based on knowledge data K1.
言語モデルLMは、予め開発支援事業者におけるプロフェッショナルとしての役割や指摘のフォーマットを含むインストラクションデータによって、仕様書等のソフトウェア開発関連文書の変更や回帰テストの熟練者による指摘の仕方をするようにチューニングされてもよい。 The language model LM may be tuned in advance using instruction data that includes the professional role and comment format of the development support provider to make changes to software development-related documents such as specifications and to display the comments made by an expert in regression testing.
ナレッジデータK1は、例えば「開発仕様書」についての知識として、過去の誤りや修正すべき点を含む「開発仕様書」のデータ(入力)と、「開発仕様書」に対する高度な知識を有するオペレータによるレビュー結果(出力)とのデータセットの形で記憶されていてもよい。この場合、言語モデルモジュールM1は、入力される「開発仕様書」のデータに対し、「開発仕様書」に対する高度な知識を有するオペレータによる指摘を再現できるように、所謂言語モデル(LM)に限らず、種々の自然言語解析に関するアルゴリズムによって学習されたものであってもよい。言語モデルモジュールM1の構成は図3に示した態様に限られない。 Knowledge data K1 may be stored in the form of a data set of, for example, "development specification" data (input) including past errors and areas to be corrected, as knowledge about the "development specification," and review results (output) by an operator with advanced knowledge of the "development specification." In this case, language model module M1 is not limited to a so-called language model (LM), and may be trained using various natural language analysis algorithms so that the comments made by an operator with advanced knowledge of the "development specification" can be reproduced for the input "development specification" data. The configuration of language model module M1 is not limited to the form shown in FIG. 3.
図5は、端末装置2の構成を示すブロック図である。端末装置2は、ソフトウェア開発事業者のオペレータが使用するラップトップ型又はデスクトップ型のパーソナルコンピュータである。端末装置2は、スマートフォン、又はタブレット端末であってもよい。 Figure 5 is a block diagram showing the configuration of terminal device 2. Terminal device 2 is a laptop or desktop personal computer used by an operator of a software developer. Terminal device 2 may also be a smartphone or tablet terminal.
端末装置2は、処理部20、記憶部21、通信部22、表示部23、及び操作部24を備える。 The terminal device 2 includes a processing unit 20, a memory unit 21, a communication unit 22, a display unit 23, and an operation unit 24.
処理部20は、一又は複数のCPU、MPU、GPU等のプロセッサである。処理部10は、SRAM、DRAM等のメモリを含む。処理部20は、各構成部を制御して処理を実行する。処理部20は、プロセッサ、メモリ、後述の通信部22を集積した1つのハードウェア(SoC)として構成されていてもよい。処理部20は、記憶部21に記憶されているプログラムに基づき、情報処理装置1との間でデータを送受信し、テストエンジニアからの操作を受け付ける。詳細については後述する。 The processing unit 20 is one or more processors such as a CPU, MPU, GPU, etc. The processing unit 10 includes memory such as SRAM and DRAM. The processing unit 20 controls each component to execute processing. The processing unit 20 may be configured as a single piece of hardware (SoC) that integrates a processor, memory, and a communication unit 22 (described below). The processing unit 20 sends and receives data to and from the information processing device 1 based on a program stored in the storage unit 21, and accepts operations from a test engineer. Details will be provided below.
記憶部21は、ハードディスク、フラッシュメモリ、SSD等の不揮発性メモリを用いる。記憶部21は、処理部20が参照するプログラム及びデータを記憶する。記憶部21は、端末プログラム(プログラムプロダクト)P2を記憶する。端末プログラムP2は、Webブラウザプログラムであって、情報処理装置1によって提供されるWebアプリケーションプログラムであってもよい。記憶部21に記憶される端末プログラムP2は、処理部20が記憶媒体8に記憶されている端末プログラムP8を読み出して複製し、インストールしたものであってもよい。端末プログラムP2は、図示しないプログラムサーバから端末装置2がダウンロードして記憶部21に記憶し、インストールしたものであってもよい。 The storage unit 21 uses non-volatile memory such as a hard disk, flash memory, or SSD. The storage unit 21 stores programs and data referenced by the processing unit 20. The storage unit 21 stores a terminal program (program product) P2. The terminal program P2 is a web browser program, and may be a web application program provided by the information processing device 1. The terminal program P2 stored in the storage unit 21 may be a terminal program P8 stored in the storage medium 8 that the processing unit 20 reads, copies, and installs. The terminal program P2 may also be a program downloaded by the terminal device 2 from a program server (not shown), stored in the storage unit 21, and installed.
通信部22は、ネットワークNを介した通信を実現する通信デバイスである。通信部22は例えば、ネットワークNに対応するネットワークカードである。通信部22は、無線通信を実現するものであってもよい。処理部20は、通信部22を介して、情報処理装置1との間でデータを送受信できる。 The communication unit 22 is a communication device that realizes communication via the network N. The communication unit 22 is, for example, a network card compatible with the network N. The communication unit 22 may also realize wireless communication. The processing unit 20 can send and receive data to and from the information processing device 1 via the communication unit 22.
表示部23は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部23は、タッチパネル内蔵型ディスプレイであってもよい。情報出力は、スピーカを含む音声出力部が用いられてもよい。 The display unit 23 is a display such as a liquid crystal display or an organic EL (Electro Luminescence) display. The display unit 23 may also be a display with a built-in touch panel. Information may be output using an audio output unit including a speaker.
操作部24は、処理部20との間で入出力が可能なユーザインタフェースである。操作部24は、表示部23内蔵のタッチパネルであってもよいし、物理ボタン、スイッチ、物理ダイヤルを含む構成であってもよい。操作部24は、マイクロフォン及びスピーカを含む音声入出力部であってもよい。 The operation unit 24 is a user interface that allows input and output to and from the processing unit 20. The operation unit 24 may be a touch panel built into the display unit 23, or may include physical buttons, switches, and physical dials. The operation unit 24 may also be an audio input/output unit that includes a microphone and speaker.
このように構成される開発支援システム100における処理についてフローチャートを参照して説明する。図6は、開発支援システム100におけるレビュー出力処理の手順の一例を示すフローチャートである。オペレータが用いる端末装置2にて、あるシステム開発のプロジェクトに関するソフトウェア開発関連文書に対する特定の操作がされることで、処理部20が、端末プログラムP2に基づき以下の処理を開始する。 The processing in the development support system 100 configured in this manner will be described with reference to a flowchart. Figure 6 is a flowchart showing an example of the procedure for review output processing in the development support system 100. When a specific operation is performed on a software development-related document for a system development project on the terminal device 2 used by an operator, the processing unit 20 starts the following processing based on the terminal program P2.
特定の操作とは、例えば、表示部23に表示されているソフトウェア開発関連文書のデータファイルのアイコンに対し、操作部24のポインティングデバイスの右クリックなどにより、そのデータファイルに対する処理の一覧が選択可能に表示され、その一覧に含まれる端末プログラムP2を選択するという操作である。特定の操作は他に、端末プログラムP2に基づくGUIを含む操作パネルにて対象のデータファイルを選択する操作を行なったことであってもよいし、操作パネルに対して対象のデータファイルをドラッグアンドドロップしたことであってもよい。 A specific operation is, for example, an operation in which a user right-clicks the pointing device of the operation unit 24 on the icon of a data file of a software development-related document displayed on the display unit 23, thereby displaying a list of selectable processes for that data file, and then selecting a terminal program P2 included in that list. A specific operation may also be an operation in which the user selects the target data file on an operation panel including a GUI based on the terminal program P2, or dragging and dropping the target data file onto the operation panel.
端末装置2の処理部20は、端末プログラムP2に基づき、特定の操作の対象のデータファイル(文書データ)を取得する(ステップS201)。処理部20は、ステップS201において対象のデータファイルの内容(文書データ)をメモリに展開する。 Based on the terminal program P2, the processing unit 20 of the terminal device 2 acquires the data file (document data) that is the target of a specific operation (step S201). In step S201, the processing unit 20 expands the contents (document data) of the target data file into memory.
処理部20は、データファイルの内容をテキストデータへ変換する(ステップS202)。ステップS202のテキストデータへの変換は、言語モデルモジュールM1に含まれる言語モデルLMがソフトウェア開発関連文書に記載内容を理解するために行なわれる処理である。このため、処理部20は、図7及び図8で後述するように、特定の記号を用いた所定のルールでテキストデータへ変換するとよい。ステップS202において処理部20は、例えば、データファイルの内容(文書データ)から表をテキストとして取得できる場合、これらを、データファイルの内容に含まれるテキストに加えてテキストデータ化する。ステップS202において処理部20は、データファイルのファイル名も共にテキストデータとして取得してもよい。 The processing unit 20 converts the contents of the data file into text data (step S202). The conversion to text data in step S202 is a process performed so that the language model LM included in the language model module M1 can understand the contents of documents related to software development. For this reason, the processing unit 20 may convert to text data according to predetermined rules using specific symbols, as described below in Figures 7 and 8. In step S202, if the processing unit 20 can obtain tables as text from the contents of the data file (document data), for example, it will convert these into text data in addition to the text included in the contents of the data file. In step S202, the processing unit 20 may also obtain the file name of the data file as text data.
処理部20は、文書データに含まれる図表の画像データからテキストデータを抽出し、整形する(ステップS203)。ステップS203において処理部20は、抽出したテキストデータが、図表を説明するテキストであることを言語モデルLMで理解しやすくなるように整形する。例えば処理部20は、GUI画面の画像データから「データ入力」「項目」などのテキストデータを抽出し、「「データ入力」の欄がある。入力するデータの「項目」を選択可能である」といった自然文に整形してもよい。ステップS203において処理部20は、画像認識技術やOCRによって画像データに含まれるテキストを抽出してもよい。ステップS203において処理部20は、ニューラルネットワークを用い、GUI画面の画像データが入力されるとGUI画面の概要をテキストとして出力するように学習された学習モデルを使用してテキストデータへ変換してもよい。ステップS203において処理部20は、Vision Transformer、LayoutLM等の技術を用いた既存の画像認識モデルを用い、ソフトウェア開発関連文書の内容に含まれる図表の画像データに含まれるテキストを、そのテキストが含まれる画像データ内の位置(例えば何行目か等)と共に認識してもよい。 The processing unit 20 extracts and formats text data from the image data of figures and tables included in the document data (step S203). In step S203, the processing unit 20 formats the extracted text data so that it is easy for the language model LM to understand that it is text explaining a figure or table. For example, the processing unit 20 may extract text data such as "data input" and "item" from the image data of a GUI screen and format it into natural language such as "There is a "data input" column. You can select the "item" of the data to input." In step S203, the processing unit 20 may extract text included in the image data using image recognition technology or OCR. In step S203, the processing unit 20 may use a neural network to convert the image data of a GUI screen into text data using a learning model that has been trained to output an overview of the GUI screen as text when the image data is input. In step S203, the processing unit 20 may use an existing image recognition model using technologies such as Vision Transformer or LayoutLM to recognize text contained in image data of diagrams and tables included in the contents of software development-related documents, along with the position within the image data where the text is contained (e.g., which line, etc.).
処理部20は、ステップS202により得られるテキストデータと、ステップS203により得られるテキストデータとを指定してレビューリクエストを情報処理装置1へ送信する(ステップS204)。 The processing unit 20 specifies the text data obtained in step S202 and the text data obtained in step S203 and sends a review request to the information processing device 1 (step S204).
情報処理装置1の処理部10は、ソフトウェア開発関連文書からのテキストデータを指定したレビューリクエストを受信する(ステップS101)。ステップS101により処理部10は、ソフトウェア開発関連文書から変換又は抽出されたテキストデータを取得できる。 The processing unit 10 of the information processing device 1 receives a review request specifying text data from a software development-related document (step S101). Step S101 enables the processing unit 10 to obtain text data converted or extracted from the software development-related document.
処理部10は、レビューリクエストの対象のソフトウェア開発関連文書に対する知識を、ナレッジデータK1から選定する(ステップS102)。ステップS102において処理部10は例えば、対象のソフトウェア開発関連文書が「開発仕様書」であれば、「開発仕様書」に関する知識をナレッジデータK1から選定し、対象のソフトウェア開発関連文書が「要件定義書」であれば、「要件定義書」に関する知識をナレッジデータK1から選定する。なおステップS102の処理は、後述のS104の処理中で言語モデルLMに検索させるようにしてもよい。 The processing unit 10 selects knowledge about the software development-related document that is the subject of the review request from the knowledge data K1 (step S102). In step S102, for example, if the subject software development-related document is a "development specification," the processing unit 10 selects knowledge about the "development specification" from the knowledge data K1, and if the subject software development-related document is a "requirements definition document," the processing unit 10 selects knowledge about the "requirements definition document" from the knowledge data K1. Note that the processing of step S102 may be performed by having the language model LM search during the processing of S104 described below.
処理部10は、言語モデルモジュールM1に対するプロンプトを作成する(ステップS103)。ステップS103において処理部10は、言語モデルLMの役割と、言語モデルLMに対し、出力形式などを指定する指示文とを含むテキストデータをプロンプトとして作成する。 The processing unit 10 creates a prompt for the language model module M1 (step S103). In step S103, the processing unit 10 creates text data as the prompt, which includes the role of the language model LM and instructions that specify the output format, etc. for the language model LM.
処理部10は、ステップS101で受信したソフトウェア開発関連文書のテキストデータと、ステップS102にて選定した知識に対応するデータと、ステップS103で作成したプロンプトのテキストデータとを共に言語モデルモジュールM1へ与える(ステップS104)。ステップS104にて処理部10は、言語モデルモジュールM1により、自然言語により記述されたプロンプト及びソフトウェア開発関連文書のテキストデータをベクトルデータ化し、選定されたナレッジデータK1のデータを繋げ、結合させた入力データを言語モデルLMへ与える。ステップS103、S104において処理部10は、プロンプトにて、対象のテキストデータと、参照するナレッジデータK1とを指定する形式で言語モデルモジュールM1へそのプロンプトを入力し、言語モデルモジュールM1及び言語モデルLMが自ら、テキストデータとナレッジデータK1とを参照しに行くようにしてもよい。 The processing unit 10 provides the text data of the software development-related document received in step S101, the data corresponding to the knowledge selected in step S102, and the text data of the prompt created in step S103 to the language model module M1 (step S104). In step S104, the processing unit 10 converts the prompt written in natural language and the text data of the software development-related document into vector data using the language model module M1, connects the data of the selected knowledge data K1, and provides the combined input data to the language model LM. In steps S103 and S104, the processing unit 10 inputs the prompt to the language model module M1 in a format that specifies the target text data and the knowledge data K1 to be referenced, and the language model module M1 and the language model LM may themselves reference the text data and knowledge data K1.
処理部10は、ステップS104の処理によって言語モデルモジュールM1から出力されるレビュー結果を、一時記憶媒体又は記憶部11に記憶する(ステップS105)。ステップS105において処理部10は、記憶部11にレビュー結果を記憶する場合、対象のソフトウェア開発関連文書を識別するデータと、レビューリクエストを識別する識別データ(リクエストID、リクエスト元の端末装置2の識別データ、端末装置2のオペレータのID等)と、対応付けてそのレビュー結果を記憶するとよい。 The processing unit 10 stores the review results output from the language model module M1 by the processing of step S104 in a temporary storage medium or the memory unit 11 (step S105). When storing the review results in the memory unit 11 in step S105, the processing unit 10 may store the review results in association with data identifying the target software development-related document and identification data identifying the review request (request ID, identification data of the terminal device 2 that made the request, ID of the operator of the terminal device 2, etc.).
ステップS105において処理部10は、ナレッジデータK1から知識を選定し、クエリにて指示を与えているにも関わらず、「理解不能」に該当する指摘がある場合、理解不能である旨をレビュー結果に含めて記憶する。 In step S105, the processing unit 10 selects knowledge from the knowledge data K1, and if there is an indication that the knowledge is "incomprehensible" despite the instructions given in the query, it stores the fact that the knowledge is "incomprehensible" in the review results.
処理部10は、ステップS105において、レビュー結果をそれぞれ、レビュー結果の妥当性と対応付けて記憶部11にナレッジデータK1として記憶しておくことにより、後に言語モデルモジュールM1による出力の精度向上に利用することができる。レビュー結果の妥当性は、開発支援事業者におけるプロフェッショナルによって評価されてもよいし、オペレータによる顧客満足度によって評価されてもよい。 In step S105, the processing unit 10 associates each review result with its validity and stores it as knowledge data K1 in the memory unit 11, which can then be used to improve the accuracy of output by the language model module M1. The validity of the review results may be evaluated by a professional at the development support provider, or by an operator based on customer satisfaction.
処理部10は、言語モデルモジュールM1から出力されたレビュー結果を、所定の形式(例えば特定の表計算ソフトウェアの形式のファイル)に変換し(ステップS106)、変換後に端末装置2へ送信する(ステップS107)。ステップS106において処理部10は、例えば、言語モデルLMから出力されるCSV形式のデータを、特定のアプリケーションプログラム用の形式のデータとする。ステップS106の変換も、言語モデルモジュールM1に含まれる言語モデルLMへの出力形式を指示した指示文によって言語モデルモジュールM1内で実行されてもよい。 The processing unit 10 converts the review results output from the language model module M1 into a predetermined format (for example, a file in the format of a specific spreadsheet software) (step S106) and transmits the converted results to the terminal device 2 (step S107). In step S106, the processing unit 10 converts, for example, CSV-format data output from the language model LM into data in a format for a specific application program. The conversion in step S106 may also be performed within the language model module M1 using a directive included in the language model module M1 that specifies the output format for the language model LM.
端末装置2の処理部20は、レビュー結果を受信し(ステップS205)、記憶部21に、ステップS201で取得したデータファイルのファイル名と対応付けた名称を付してレビュー結果のデータファイルとして記憶し(ステップS206)、処理を終了する。 The processing unit 20 of the terminal device 2 receives the review results (step S205) and stores them in the storage unit 21 as a data file of the review results, giving it a name associated with the file name of the data file acquired in step S201 (step S206), and then terminates the process.
図6に示した処理手順では、ソフトウェア開発関連文書の内容に含まれるGUIのキャプチャ画像などからテキストのデータを抽出して送信することとした(S203)。しかしながら、画像データが含まれないソフトウェア開発関連文書に対してはステップS203の処理は省略可能である。つまり、画像データを含まないテキストベースのソフトウェア開発関連文書に対しても勿論、上述の処理手順は適用可能である。 In the processing procedure shown in Figure 6, text data is extracted from GUI capture images and other data contained in the software development-related documents and transmitted (S203). However, step S203 can be omitted for software development-related documents that do not contain image data. In other words, the above processing procedure can of course also be applied to text-based software development-related documents that do not contain image data.
上述の処理手順について、具体例を挙げて説明する。図7は、ソフトウェア開発関連文書の一例を示す図である。図7では、具体例として「開発仕様書」を挙げる。「開発仕様書」はテキストを主体とする文書データである。「開発仕様書」は、図7に示すように、仕様書を識別する「番号」や、仕様の対象の「処理名」、処理の目的などを規定している。図7に示す「開発仕様書」の事例は、項目毎の説明を直感的に把握しやすくするために、表形式を多用している。 The above processing procedure will be explained using a specific example. Figure 7 is a diagram showing an example of a software development-related document. Figure 7 shows a "development specification" as a specific example. A "development specification" is document data that is primarily text. As shown in Figure 7, a "development specification" specifies a "number" that identifies the specification, the "process name" that the specification targets, the purpose of the processing, and so on. The example of a "development specification" shown in Figure 7 makes extensive use of a table format to make the explanation of each item easier to understand intuitively.
図7に示す「開発仕様書」の事例では、「2.画面レイアウトと項目説明」の節に、GUI画面のキャプチャ画像を含んでいる。図7の例におけるキャプチャ画像には、使用の対象の処理に対応する部分が強調されるように、キャプチャ画像に太線で描きこまれて画像化されている。「開発仕様書」のみならず、ソフトウェア開発関連文書においては、このキャプチャ画像に手書きやフォントを用いたテキストが描きこまれている場合があってもよい。 In the example of the "Development Specifications" shown in Figure 7, the section "2. Screen Layout and Item Descriptions" includes a captured image of a GUI screen. In the example of Figure 7, the captured image is highlighted with bold lines to highlight the parts that correspond to the processing to be used. In software development-related documents, not just "Development Specifications," this captured image may also contain handwritten or font-based text.
図7に示す「開発仕様書」の事例において、GUI画面のレイアウトは、上段の「終了」、「項目選択」、「設定」、又は「コピー」といった機能やメニューの部分を「画面上部」と定義し、中段のドロップダウンリストの部分や入力欄を含む部分を「条件部」と定義し、下段の表部分は「明細部」と規定されている。GUI画面は、ドロップダウンリストで、入力するデータの項目を選択し、入力欄にデータを入力して使用される。なお、GUI画面には、これらの「画面上部」、「条件部」、又は「明細部」といった定義を示すテキストは含まれておらず、ドキュメント内の「画面項目」の定義としてこれらの名称が使用されている。GUI画面の各箇所との対応付けを理解するには、「開発仕様書」の読み手側に知識(前提や読解力)が必要になる。 In the example "Development Specifications" shown in Figure 7, the layout of the GUI screen defines the upper section, including functions and menus such as "Exit," "Item Selection," "Settings," and "Copy," as the "Top of the Screen," the middle section including the drop-down list and input fields as the "Condition Section," and the table section at the bottom as the "Details Section." GUI screens are used by selecting the data item to be entered from the drop-down list and entering data in the input fields. Note that the GUI screen does not contain any text defining these "Top of the Screen," "Condition Section," or "Details Section," and these names are used as definitions of the "screen items" within the document. To understand the correspondence with each section of the GUI screen, readers of the "Development Specifications" require knowledge (prerequisites and reading comprehension).
GUI画面には、図7に示すように、入力欄が含まれている。図7の「開発仕様書」の場合には、GUI画面の中段の「条件部」のうち、太線で囲まれている部分に入力欄が設けられ、この部分が「データ入力」と定義されている。この開発対象のソフトウェアのユーザは、所定ルールの下でテキストを入力することが可能である。図7に示す「開発仕様書」の事例では、この「条件部」の入力欄「データ入力」という画面項目部分に対し、「データを入力すると、システムが自動的に処理を開始する。」という説明が記載されている。また、事例の「開発仕様書」は、この「条件部」の入力欄「データ入力」という画面項目部分について、入力欄に入れる「範囲」として「指定月」が定義されており、「説明欄」に「データの範囲を指定する。」という説明が記載されている。 GUI screens include input fields, as shown in Figure 7. In the case of the "Development Specifications" in Figure 7, an input field is provided in the part of the "Condition Section" in the middle of the GUI screen that is surrounded by a bold line, and this part is defined as "Data Entry." Users of the software being developed can enter text under specified rules. In the example "Development Specifications" shown in Figure 7, the screen item part of the "Condition Section" input field called "Data Entry" has the following explanation: "When data is entered, the system will automatically begin processing." Furthermore, in the "Development Specifications" in the example, for the screen item part of the "Condition Section" input field called "Data Entry," "Specified Month" is defined as the "Range" to be entered in the input field, and the "Explanation" field has the explanation: "Specify the data range."
図8は、テキスト化されたソフトウェア開発関連文書の一例を示す図である。図8は、図7に示した「開発仕様書」をテキスト化した一部を示す。図8に示すように、テキスト化したデータは、テキストのみで表現されている。図8の例では、各テキストの「開発仕様書」における位置を行数で数字で示している。行数は数字で示さず、図8に示したテキストデータ内の行数で位置を表現してもよい。 Figure 8 shows an example of a software development-related document that has been converted into text. Figure 8 shows a portion of the "Development Specifications" shown in Figure 7 that has been converted into text. As shown in Figure 8, the converted data is expressed as text only. In the example of Figure 8, the position of each piece of text in the "Development Specifications" is indicated by a line number. The line number may not be indicated by a number, but the position may be expressed by the line number within the text data shown in Figure 8.
上述したように、図7に示した「開発仕様書」は、項目毎の説明を直感的に把握しやすくするために、図表を多用している。これに対し、図8に示す例では、「表」がテキスト化されていることが示されている。図8に示す例において、テキスト化された文書(テキストデータ)は、「表」における項目の名称に特定の記号(ここでは、ダブルクォーテーション“”)で囲い、「表」の要素を行列として示すために中括弧{}を用いて文字列化してある。これらの記号を用いた、表や図表内でのテキストの位置を特定可能とする表現は、端末プログラムP2及びこれを受信する情報処理装置1にて規定したルールに従う。図8に示す例では、JSON形式とし、中括弧{}を用いて表に含まれるテキストの範囲を示し、表内の各テキストを、1行ずつ、順に表している。ダブルクォーテーションにより表の項目を示し、各項目に対するデータを「:」の記号で示す。元の「開発仕様書」のデータファイルの形式によるが、情報処理装置1及び言語モデルLMにてより正確に理解できるように整形されるとよい。 As mentioned above, the "Development Specifications" shown in Figure 7 makes extensive use of diagrams and charts to make the explanations for each item easier to understand intuitively. In contrast, the example shown in Figure 8 shows a "Table" that has been converted to text. In the example shown in Figure 8, the converted document (text data) encloses the names of the items in the "Table" in specific symbols (here, double quotation marks "") and converts the elements of the "Table" into strings using curly brackets { } to indicate them as matrices. Expressions using these symbols to identify the location of text within a table or diagram follow rules defined by the terminal program P2 and the information processing device 1 that receives it. The example shown in Figure 8 uses the JSON format, with curly brackets { } indicating the range of text included in the table and each piece of text within the table being represented line by line. Table items are indicated by double quotation marks, and the data for each item is indicated by the ":" symbol. Depending on the format of the data file for the original "Development Specifications," it is preferable to format it so that it can be more accurately understood by the information processing device 1 and language model LM.
図8に示す例では、図7に示した「開発仕様書」における「2.画面レイアウトと項目説明」の「表」について、「データ入力」の項目の行には、列方向の「範囲」の項目に「指定月」が設定され、「説明」に「データを入力すると、システムが自動的に処理を開始する。」という説明と、「データの範囲を指定する。」が入力されていることとがテキストで示されている。 In the example shown in Figure 8, for the "Table" in "2. Screen Layout and Item Description" in the "Development Specifications" shown in Figure 7, the row for the "Data Entry" item has "Specified Month" set in the "Range" field in the column direction, and the text indicates that "When data is entered, the system will automatically begin processing" and "Specify the data range" has been entered in "Explanation."
また、図8に示す例では、図7に示した「開発仕様書」における「2.画面レイアウトと項目説明」の冒頭に含まれている画像データについては、画像データを識別するための識別データ「画像1」が中括弧で囲まれて、テキスト化されている。この「画像1」の識別データが振られた画像データが、この場所に表示されることが、テキストにて認識可能である。 In the example shown in Figure 8, the image data included at the beginning of "2. Screen Layout and Item Description" in the "Development Specifications" shown in Figure 7 has been converted to text with the identification data "Image 1" for identifying the image data enclosed in curly brackets. It is possible to recognize from the text that the image data assigned the identification data "Image 1" will be displayed in this location.
図8に示すテキストと、テキストに対応する画像データとを情報処理装置1に渡すと、処理部10は、図3及び図6に示したように、「開発仕様書」に関するナレッジデータK1から知識を選定し、渡されたテキストと共に言語モデルモジュールM1に与える。このとき、処理部10は、図6のステップS103にて説明したように、言語モデルLM向けのプロンプトを作成するとよい。 When the text shown in Figure 8 and the image data corresponding to the text are passed to the information processing device 1, the processing unit 10 selects knowledge from the knowledge data K1 related to the "development specifications" as shown in Figures 3 and 6, and provides this knowledge to the language model module M1 along with the passed text. At this time, the processing unit 10 may create a prompt for the language model LM, as described in step S103 of Figure 6.
図9は、プロンプトの一例を示す図である。処理部10は、言語モデルLMに対応するように、役割として「ソフトウェアにおける検証の専門家」、「ソフトウェアの品質を担保する役割」、及び「ERPについて熟知している」という「前提」を自然言語によって記述したテキストを作成する。このような前提を追加することで、レビュー結果の精度を向上させることができる。更に処理部10は、レビュー対象が「ソフトウェアの開発仕様書である」こと、「仕様書について、曖昧さのある部分を指摘してほしい」、「指摘した部分の原文と指摘内容、修正案を提示してほしい」、レビュー対象の「開発仕様書」に対応する「ソフトウェアがERP製品であることを考慮してほしい」、「表計算ソフトウェアに対応する形式で出力してほしい」という言語モデルLMに対する「指示」を自然言語によって記述したテキストを作成する。これらの自然言語のテキストからなるプロンプトにより、言語モデルLMから出力されるレビュー結果の精度を向上させることができる。例えば、「ソフトウェアがERP製品であることを考慮してほしい」という指示により、与えられるナレッジデータK1のみならず、検索された他の結果を言語モデルLMが利用し、レビュー結果の精度を高めることが期待できる。 9 is a diagram showing an example of a prompt. The processing unit 10 generates text in natural language describing the roles "software verification expert," "role in ensuring software quality," and "prerequisites" such as "familiarity with ERP" corresponding to the language model LM. Adding such prerequisites can improve the accuracy of the review results. Furthermore, the processing unit 10 generates text in natural language describing "instructions" to the language model LM, such as that the review target is "software development specifications," that "please point out any ambiguities in the specifications," that "please provide the original text of the pointed-out parts, the details of the points, and proposed revisions," and that "please consider that the software is an ERP product" and "please output in a format compatible with spreadsheet software," corresponding to the "development specifications" being reviewed. Prompts composed of such natural language text can improve the accuracy of the review results output from the language model LM. For example, the instruction "please consider that the software is an ERP product" allows the language model LM to use not only the provided knowledge data K1 but also other searched results, which is expected to improve the accuracy of the review results.
図10は、レビュー結果の表示例を示す図である。図10に示すように、レビュー結果は、指摘箇所の原文の文書内での位置(ここでは何行目なのかで示す)と、原文の内容と、言語モデルモジュールM1による指摘事項と、指摘箇所に対する修正案とが、図9に示したクエリに従うようにして表計算ソフトウェアで読み取れる形式(例えばCSV形式のデータ)で表現されている。 Figure 10 shows an example of the display of review results. As shown in Figure 10, the review results include the position of the pointed-out passage in the original document (in this case, the line number), the content of the original text, the points pointed out by language model module M1, and suggested corrections for the pointed-out passage, all expressed in a format that can be read by spreadsheet software (e.g., CSV data) in accordance with the query shown in Figure 9.
図10に示すレビュー結果では、図7の例における「開発仕様書」内の表に記載された「説明」の文章の表現の曖昧さ、即ち、意味を一意に特定できない(理解不能の趣旨)ことも、指摘箇所と対応付けて出力されている。同様にして、図10に示すレビュー結果では、図7の例における「開発仕様書」内の表にて指定すべき「指定月」という項目について、形式が不明瞭であることが、指摘箇所と対応付けて出力されている。 In the review results shown in Figure 10, the ambiguity of the "explanation" text in the table in the "Development Specifications" in the example of Figure 7, i.e., the meaning cannot be uniquely identified (meaning it is incomprehensible), is also output in correspondence with the pointed out points. Similarly, in the review results shown in Figure 10, the unclear format of the "Specified Month" item that should be specified in the table in the "Development Specifications" in the example of Figure 7 is output in correspondence with the pointed out points.
ソフトウェア開発関連文書の作成や更新を実施するオペレータは、図7に示したような「開発仕様書」を指定し、端末プログラムP2による処理を実行させる。これにより、端末装置2にて、図8に示したテキストへの変換と、変換されたテキストを指定したレビューリクエストの情報処理装置1への送信とが実行される。このとき端末プログラムP2に基づき処理部20は、レビューリクエストに、データファイル名即ち文書の種類「開発仕様書」を付加して情報処理装置1へ送信すると、情報処理装置1にてナレッジデータK1中の知識を特定しやすい。 An operator creating or updating software development-related documents specifies a "development specification" as shown in Figure 7 and executes processing using terminal program P2. This causes the terminal device 2 to convert the text shown in Figure 8 and send a review request specifying the converted text to the information processing device 1. At this time, based on terminal program P2, the processing unit 20 adds the data file name, i.e., the document type "development specification," to the review request and sends it to the information processing device 1, making it easier for the information processing device 1 to identify the knowledge in knowledge data K1.
図10に示したようなレビュー結果が得られると、ソフトウェア開発関連文書の作成や更新を実施するオペレータは、作成した文書内で修正すべき点を把握できる。例えば、この表形式のレビュー結果を、表計算ソフトウェアなどによって表示部23に表示させると、オペレータは、修正案を含めて指定事項を認識できる。したがって、オペレータは、何度も文書を通読、精読しなくてもよい。更に、これらのレビュー結果は、ソフトウェア開発関連文書に精通した技術者の知識が反映したレビューである。したがってオペレータは、文書を無用に修正して他の仕様書との齟齬を発生させてしまうことを回避できる。 Obtaining review results like those shown in Figure 10 allows operators who create or update software development-related documents to understand what needs to be corrected in the documents they create. For example, by displaying these tabular review results on the display unit 23 using spreadsheet software, the operator can recognize the specified items, including suggested corrections. This means that the operator does not need to read through or carefully read the document multiple times. Furthermore, these review results reflect the knowledge of engineers who are familiar with software development-related documents. This means that operators can avoid making unnecessary corrections to documents that could cause discrepancies with other specifications.
上述した処理手順及び得られるレビュー結果のデータにより、大規模システムの開発事業者のオペレータによるソフトウェア開発関連文書の見直しやバグ修正などを効率化することができる。大規模言語モデル(LLM)に、ソフトウェア開発事業者としての役割を与えてから、仕様書の修正をリクエストするプロンプトを与えて修正案をもらうのみならず、ナレッジデータK1を反映させることで、より精度よく、またオペレータにとって有益なレビューを提示することが可能になる。高度な人材が不足した状況であっても、高品質のソフトウェア群によるシステムの提供を可能とする。 The above-described processing procedure and the resulting review result data enable operators of large-scale system developers to efficiently review software development-related documents and fix bugs. By assigning the role of the software developer to the large-scale language model (LLM), not only can a prompt to request revisions to the specifications be issued and a revision proposal be obtained, but also by reflecting knowledge data K1, it becomes possible to provide a more accurate and useful review for the operator. This makes it possible to provide systems with high-quality software even in situations where there is a shortage of highly skilled personnel.
(第2実施形態)
第2実施形態では、テキストと画像データとをいずれも入力可能なマルチモーダルモデルを用いる。第2実施形態の開発支援システム100の構成は、以下に示す言語モデルモジュールM1と詳細な処理手順を除き、第1実施形態の開発支援システム100の構成と同様である。したがって、第2実施形態の開発支援システム100の構成のうち、第1実施形態の開発支援システム100と共通するものについては同一の符号を付して詳細な説明を省略する。
Second Embodiment
In the second embodiment, a multimodal model that can input both text and image data is used. The configuration of the development support system 100 of the second embodiment is the same as the configuration of the development support system 100 of the first embodiment, except for the language model module M1 and detailed processing procedures described below. Therefore, among the configuration of the development support system 100 of the second embodiment, components that are common to the development support system 100 of the first embodiment are assigned the same reference numerals and detailed descriptions thereof will be omitted.
図11は、第2実施形態における言語モデルモジュールM1の概要図である。言語モデルモジュールM1は、第1実施形態と同様に言語モデルLMを含む。第2実施形態においても、言語モデルLMは大規模言語モデルであってよいし、外部サーバで稼働しているものを処理部10が通信部12を介して利用するものであってよい。 Figure 11 is a schematic diagram of the language model module M1 in the second embodiment. The language model module M1 includes a language model LM, as in the first embodiment. In the second embodiment, the language model LM may also be a large-scale language model, or may be one running on an external server that the processing unit 10 uses via the communication unit 12.
第2実施形態の言語モデルモジュールM1は、例えばLLaVA(Large Language-and Vision Assistant)を用いる。言語モデルモジュールM1は、 LLaVAに限らず、他のアーキテクチャのモデルを採用可能である。言語モデルモジュールM1は、図11に示す例では、図3に示した第1実施形態の言語モデルモジュールM1と同様に、入力されたテキストについて、トークン化(Tokenize)及びベクトルデータ化(Embedding)などの演算処理を実行するモジュールを含む。第2実施形態において言語モデルモジュールM1は、入力された画像データをベクトル変換し、ベクトル変換されたデータをエンコード(抽象化)し、更に、Vision Transformerなどを用いて注目すべきデータを特定する処理(Languagezation)などを行なうようにしてある。言語モデルモジュールM1において、入力された画像に、何が写っているかをテキストとして出力するVision Transformerなどのモデルを用いてもよい。言語モデルモジュールM1は、テキストに対する処理後のデータと、画像データに対する処理後のデータとを連結(Concatenate)可能である。 The language model module M1 of the second embodiment uses, for example, LLaVA (Large Language-and Vision Assistant). The language model module M1 is not limited to LLaVA, and other architecture models can be used. In the example shown in FIG. 11, the language model module M1 includes a module that performs computational processing on input text, such as tokenization and vector data embedding, similar to the language model module M1 of the first embodiment shown in FIG. 3. In the second embodiment, the language model module M1 vector-converts the input image data, encodes (abstracts) the vector-converted data, and further performs processing (languagezation) to identify noteworthy data using a Vision Transformer or the like. The language model module M1 may also use a model such as a Vision Transformer that outputs text describing what appears in the input image. The language model module M1 is capable of concatenating data after processing the text and data after processing the image data.
第2実施形態においても言語モデルモジュールM1は、ナレッジデータK1に基づき、ソフトウェア開発関連文書に関する知識を参照するように使用される。言語モデルモジュールM1は、ソフトウェア開発関連文書のテキストのベクトルデータと、画像データの処理後のベクトルデータと、ナレッジデータK1から選択したデータと、プロンプトのテキストデータとを連結し、入力データとして言語モデルLMに与える。画像データに対する処理において言語モデルモジュールM1は、画像内のテキストの位置によって、そのテキストがタイトルなのか、内容なのか、テキストが大項目、中項目及び小項目のいずれなのかなどのテキスト間の関係や構造を、ソフトウェア開発関連文書と関連付けて言語モデルLMが理解可能に表現したデータとしてもよい。 In the second embodiment, the language model module M1 is also used to reference knowledge about software development-related documents based on the knowledge data K1. The language model module M1 concatenates the vector data of the text of the software development-related documents, the vector data after processing the image data, data selected from the knowledge data K1, and the text data of the prompt, and provides this as input data to the language model LM. When processing image data, the language model module M1 may associate the relationships and structure between text, such as whether the text is a title or content, or whether the text is a major, medium, or minor item, with the software development-related documents and represent this data in a way that the language model LM can understand, depending on the position of the text within the image.
ナレッジデータK1の種類や使用方法については、第1実施形態と同様であるから詳細な説明を省略する。 The types and usage of knowledge data K1 are the same as in the first embodiment, so detailed explanation will be omitted.
図12は、第2実施形態におけるレビュー出力処理手順の一例を示すフローチャートである。第2実施形態においても、端末装置2にてソフトウェア開発関連文書に対する特定の操作がされることを契機に、端末プログラムP2に基づいて処理部20が以下の処理を開始する。 Figure 12 is a flowchart showing an example of the review output processing procedure in the second embodiment. In the second embodiment, when a specific operation is performed on a software development-related document on the terminal device 2, the processing unit 20 starts the following processing based on the terminal program P2.
端末装置2の処理部20は、特定の操作の対象のデータファイル(文書データ)を取得し(ステップS211)、データファイルの内容をテキストデータへ変換する(ステップS212)。ステップS212において、処理部20は、データファイルの内容から、テキストデータを取り出すようにし、図表や画像については読み取り不要である。 The processing unit 20 of the terminal device 2 acquires the data file (document data) that is the target of a specific operation (step S211) and converts the contents of the data file into text data (step S212). In step S212, the processing unit 20 extracts the text data from the contents of the data file; it is not necessary to read any charts, tables, or images.
処理部20は、データファイルの内容から画像データと、画像の位置とを取得する(ステップS213)。ステップS213において処理部20は、データファイルに埋め込まれている図表及び画像データを取得してもよいし、データファイルを表示部23に表示した場合の画面(キャプチャ画像)の画像データを取得してもよい。処理部20は、画像の位置として、ページ数、行数、又は座標を取得する。ステップS212において処理部20は、テキストデータへ変換するに際し、画像が含まれていた箇所に画像の識別データをテキストで記載し、画像データには識別データを対応付けておいてもよい。 The processing unit 20 acquires image data and the position of the image from the contents of the data file (step S213). In step S213, the processing unit 20 may acquire diagrams and image data embedded in the data file, or may acquire image data of the screen (captured image) when the data file is displayed on the display unit 23. The processing unit 20 acquires the page number, line number, or coordinates as the position of the image. In step S212, when converting to text data, the processing unit 20 may write image identification data in text at the location where the image was included, and associate the identification data with the image data.
処理部20は、ステップS212により得られるテキストデータと、ステップS213により得られる画像データ及び位置のデータとを指定してレビューリクエストを情報処理装置1へ送信する(ステップS214)。 The processing unit 20 specifies the text data obtained in step S212 and the image data and position data obtained in step S213 and sends a review request to the information processing device 1 (step S214).
ステップS212及びステップS213の処理は、情報処理装置1にて実施するようにしてもよい。この場合、処理部20はステップS214において、取得したデータファイルをそのままレビューリクエストと共に情報処理装置1へ送信する。 The processing of steps S212 and S213 may be performed by the information processing device 1. In this case, in step S214, the processing unit 20 transmits the acquired data file as is to the information processing device 1 together with a review request.
情報処理装置1の処理部10は、ソフトウェア開発関連文書からのテキストデータ、画像データ及び位置のデータを指定したレビューリクエストを受信する(ステップS111)。ステップS111により処理部10は、ソフトウェア開発関連文書からのテキストを取得できる。 The processing unit 10 of the information processing device 1 receives a review request specifying text data, image data, and position data from a software development-related document (step S111). Step S111 enables the processing unit 10 to obtain text from the software development-related document.
処理部10は、レビューリクエストの対象のソフトウェア開発関連文書に対する知識を、ナレッジデータK1から選定する(ステップS112)。ステップS112の処理の内容は、図6に示した処理手順のうちのステップS102の処理と同様である。 The processing unit 10 selects knowledge about the software development-related document that is the subject of the review request from the knowledge data K1 (step S112). The processing content of step S112 is the same as the processing of step S102 in the processing procedure shown in Figure 6.
処理部10は、言語モデルモジュールM1に対するプロンプトを作成する(ステップS113)。ステップS113の処理の内容は、図6に示した処理手順のうちのステップS103の処理と同様である。 The processing unit 10 creates a prompt for the language model module M1 (step S113). The processing content of step S113 is the same as the processing content of step S103 in the processing procedure shown in Figure 6.
処理部10は、ステップS111で受信したソフトウェア開発関連文書のテキストデータと、画像データ及び位置のデータと、ステップS112にて選定した知識に対応するデータと、ステップS113で作成したプロンプトのテキストデータとを言語モデルモジュールM1へ与える(ステップS114)。ステップS114の処理は、図6のステップS104と同様である。ステップS114において処理部10は、位置のデータを用いて画像の前後のテキストを特定し、ベクトル変換後の画像データと、特定したテキストとを用いて出現確率付きの単語群(注目すべきデータ)を作成し、ナレッジデータK1のデータとを結合してから言語モデルLMに与えてもよい。ステップS114において処理部10は、端末装置2からの画像におけるテキストの位置を示すテキストを、指示に含めて作成するとよい。処理部10は、例えば、画像内の特定の位置に、特定のテキストがあることをテキスト化し、そのテキストを含めて曖昧さのある部分を指摘するようにクエリを追加する。 The processing unit 10 provides the language model module M1 with the text data of the software development-related document received in step S111, the image data and position data, the data corresponding to the knowledge selected in step S112, and the text data of the prompt created in step S113 (step S114). The processing of step S114 is similar to step S104 in FIG. 6. In step S114, the processing unit 10 may use the position data to identify text before and after the image, create a group of words with appearance probabilities (notable data) using the vector-converted image data and the identified text, combine this with the data in the knowledge data K1, and then provide it to the language model LM. In step S114, the processing unit 10 may create text indicating the position of the text in the image from the terminal device 2, including the instruction. For example, the processing unit 10 may convert the presence of specific text at a specific position in the image into text, and add a query that includes the text to point out any ambiguity.
処理部10は、ステップS114の処理によって言語モデルモジュールM1から出力されるレビュー結果を、一時記憶媒体又は記憶部11に記憶する(ステップS115)。ステップS115の処理の内容は、図6に示した処理手順のうちのステップS105の処理と同様である。 The processing unit 10 stores the review results output from the language model module M1 by the processing of step S114 in a temporary storage medium or the storage unit 11 (step S115). The processing content of step S115 is the same as the processing content of step S105 in the processing procedure shown in Figure 6.
処理部10は、言語モデルモジュールM1から出力されたレビュー結果を、所定の形式に変換し(ステップS116)、変換後に端末装置2へ送信する(ステップS117)。ステップS116の変換も、言語モデルモジュールM1に含まれる言語モデルLMへの出力形式の指定によって言語モデルモジュールM1内で実行されてもよい。 The processing unit 10 converts the review results output from the language model module M1 into a predetermined format (step S116) and transmits the converted results to the terminal device 2 (step S117). The conversion in step S116 may also be performed within the language model module M1 by specifying an output format for the language model LM included in the language model module M1.
端末装置2の処理部20は、レビュー結果を受信し(ステップS215)、記憶部21に、ステップS201で取得したデータファイルのファイル名と対応付けた名称を付してレビュー結果のデータファイルとして記憶し(ステップS216)、処理を終了する。 The processing unit 20 of the terminal device 2 receives the review results (step S215) and stores them in the storage unit 21 as a data file of the review results, giving it a name associated with the file name of the data file acquired in step S201 (step S216), and then terminates the process.
このように、ソフトウェア開発関連文書の中に載っている図表又はキャプチャ画像を端末装置2側で処理することなしに、情報処理装置1の言語モデルモジュールM1において、画像データも含めたレビューを出力することが可能となる。 In this way, the language model module M1 of the information processing device 1 can output a review that includes image data, without processing the diagrams or captured images contained in software development-related documents on the terminal device 2 side.
第2実施形態では、マルチモーダルモデルを用いてレビュー対象のソフトウェア開発関連文書のテキストと画像とをナレッジデータK1の要素と共にレビューを取得するため、レビュー結果として画像を得ることも比較的容易になる。したがって、処理部20は、図を用いてレビューを出力してもよい。 In the second embodiment, a multimodal model is used to obtain a review of the text and images of the software development-related document to be reviewed along with elements of knowledge data K1, making it relatively easy to obtain images as review results. Therefore, the processing unit 20 may output the review using diagrams.
図13は、第2実施形態におけるレビュー結果の表示例を示す図である。レビュー結果がGUI画面に関するものである場合、レビュー結果は、GUI画面のキャプチャ画面上の指摘箇所に該当する部分に、図13に示すように、丸などのオブジェクトを重畳した画像で出力されてもよい。図13の例では、図10と同様に、図7に示した「開発仕様書」のデータファイルから取り出されたテキストデータ及び画像データを、そのまま情報処理装置1に送信し、画像データも言語モデルLMに理解させた場合を示す。「開発仕様書」であるという分野と、ERPという業界分野と、対象のソフトウェアの個別知識などが共に言語モデルLMに与えられることで、言語モデルLMは、画像データの画像がGUI画面であること、そしてGUI画面における各箇所における用語と他のテキストとの対応を理解できる。そこで言語モデルLMは例えば、GUI画面内の項目名「商品名」と、「開発仕様書」にて記述される「項目名」との表記揺れを指摘できる。図13の例では、レビュー結果は、GUI画面内の項目名「商品名」の表記ゆれを、GUI画面のキャプチャ画像上の位置と関連付けて出力している。言語モデルLMは、入力された画像データのGUI画面上の「商品名」の項目名を囲うオブジェクトを描画して出力することによって、図12に示すように、キャプチャ画像に対する指摘事項を含むレビュー結果を、キャプチャ画像内の位置と関連付けて出力することも可能である。 Figure 13 shows an example of the display of review results in the second embodiment. If the review results relate to a GUI screen, the review results may be output as an image with a circle or other object superimposed on the portion of the GUI screen capture corresponding to the identified problem, as shown in Figure 13. The example in Figure 13, similar to Figure 10, shows a case in which text data and image data extracted from the "Development Specifications" data file shown in Figure 7 are sent directly to the information processing device 1, and the image data is also interpreted by the language model LM. By providing the language model LM with the "Development Specifications" field, the ERP industry field, and specific knowledge of the target software, the language model LM can recognize that the image data is a GUI screen and the correspondence between terms in each location on the GUI screen and other text. Therefore, the language model LM can, for example, identify variations in the spelling of the item name "Product Name" in the GUI screen and the "Item Name" described in the "Development Specifications." In the example of Figure 13, the review results are output by associating the spelling variations of the item name "Product Name" on the GUI screen with its position on the captured image of the GUI screen. By drawing and outputting an object that surrounds the item name "Product Name" on the GUI screen of the input image data, the language model LM can also output review results including findings about the captured image by associating them with its position on the captured image, as shown in Figure 12.
(第3実施形態)
第3実施形態では、情報処理装置1が言語モデルモジュールM1そのもの、又はナレッジデータK1を、ソフトウェア開発関連文書のオペレータからのフィードバックなどによってチューニングする。第3実施形態の開発支援システム100の構成は、以下に示す言語モデルモジュールM1と詳細な処理手順を除き、第1実施形態の開発支援システム100の構成と同様である。したがって、第3実施形態の開発支援システム100の構成のうち、第1実施形態の開発支援システム100と共通するものについては同一の符号を付して詳細な説明を省略する。
(Third embodiment)
In the third embodiment, the information processing device 1 tunes the language model module M1 itself or the knowledge data K1 based on feedback from an operator of software development-related documents, etc. The configuration of the development support system 100 of the third embodiment is the same as the configuration of the development support system 100 of the first embodiment, except for the language model module M1 and detailed processing procedures described below. Therefore, among the configuration of the development support system 100 of the third embodiment, components that are common to the development support system 100 of the first embodiment are assigned the same reference numerals and detailed description thereof will be omitted.
第3実施形態の開発支援システム100は、オペレータからのフィードバックを効率的に受け付けるため、端末装置2からのレビューリクエストの受付や情報処理装置1からオペレータにレビューの出力をWebアプリケーション経由で実行する。このため第3実施形態の情報処理装置1は、記憶部11にWebサーバとして機能するためのWebサーバプログラムと、Webアプリケーションの画面用データを記憶し、端末装置2の端末プログラムP2は、Webブラウザプログラムである。 In order to efficiently receive feedback from operators, the development support system 100 of the third embodiment receives review requests from the terminal device 2 and outputs reviews to operators from the information processing device 1 via a web application. To this end, the information processing device 1 of the third embodiment stores a web server program for functioning as a web server and screen data for the web application in the storage unit 11, and the terminal program P2 of the terminal device 2 is a web browser program.
以下に示す処理はWebアプリケーションでなく、第1実施形態又は第2実施形態と同様に、ソフトウェア開発関連文書のデータファイルと、それに対するレビュー結果のファイルと、レビュー結果に対するフィードバックを送受信する態様としてもよい。 The process described below may not be a web application, but may involve sending and receiving data files of software development-related documents, files of review results for those documents, and feedback on the review results, as in the first or second embodiment.
図14は、第3実施形態におけるレビュー出力処理手順の一例を示すフローチャートである。オペレータが用いる端末装置2にて、あるシステム開発のプロジェクトに関するソフトウェア開発関連文書に対するレビューを取得するため、端末プログラムP2を起動し、オペレータ用のアカウントでログインすると以下の処理を実行する。 Figure 14 is a flowchart showing an example of the review output processing procedure in the third embodiment. To obtain reviews of software development-related documents for a system development project, an operator launches terminal program P2 on the terminal device 2 and logs in with the operator's account, executing the following process.
端末装置2の処理部20は、端末プログラムP2に基づき、オペレータが指定したソフトウェア開発関連文書を取得する(ステップS221)。処理部20は、取得したソフトウェア開発関連文書を指定してレビューリクエストを情報処理装置1へ送信する(ステップS222)。 Based on the terminal program P2, the processing unit 20 of the terminal device 2 acquires the software development-related document specified by the operator (step S221). The processing unit 20 then specifies the acquired software development-related document and sends a review request to the information processing device 1 (step S222).
情報処理装置1の処理部10は、ソフトウェア開発関連文書を指定したレビューリクエストを受信する(ステップS121)。処理部10は、指定されたソフトウェア開発関連文書の内容をテキストデータへ変換し(ステップS122)、データファイルの内容に含まれるGUI画面などの画像からテキストデータを抽出し、整形する(ステップS123)。ステップS122、S123の処理は、第1実施形態の図6に示したステップS202、S203の処理と同様であるため、詳細な説明を省略する。 The processing unit 10 of the information processing device 1 receives a review request specifying a software development-related document (step S121). The processing unit 10 converts the contents of the specified software development-related document into text data (step S122), extracts text data from images such as GUI screens included in the contents of the data file, and formats the text data (step S123). The processing of steps S122 and S123 is similar to the processing of steps S202 and S203 shown in Figure 6 of the first embodiment, and therefore detailed description will be omitted.
処理部10は、レビューリクエストの対象のソフトウェア開発関連文書に対する知識を、ナレッジデータK1から選定する(ステップS124)。ステップS124の処理は、図6に示したステップS102の処理と同様である。 The processing unit 10 selects knowledge about the software development-related document that is the subject of the review request from the knowledge data K1 (step S124). The processing of step S124 is similar to the processing of step S102 shown in Figure 6.
処理部10は、言語モデルモジュールM1に対するプロンプトを作成する(ステップS125)。ステップS125において処理部10は、言語モデルLMの役割と、言語モデルLMに対し、出力形式などを指定する指示文とを含むテキストデータをプロンプトとして作成する。 The processing unit 10 creates a prompt for the language model module M1 (step S125). In step S125, the processing unit 10 creates text data as the prompt, including the role of the language model LM and instructions that specify the output format, etc. for the language model LM.
処理部10は、ステップS122で変換したソフトウェア開発関連文書のテキストデータと、ステップS123にて画像データから抽出したテキストデータと、ステップS124にて選定した知識に対応するデータと、ステップS125で作成したプロンプトのテキストデータとを共に言語モデルモジュールM1へ与える(ステップS126)。ステップS126において処理部10は、第1実施形態で説明した言語モデルモジュールM1に基づく処理と同様に、テキストデータをベクトルデータ化し、ナレッジデータK1から選定したデータ(ベクトルデータ)とを結合し、レビューを出力する指示と共に結合した入力データを言語モデルLMに与える。 The processing unit 10 provides the text data of the software development-related document converted in step S122, the text data extracted from the image data in step S123, the data corresponding to the knowledge selected in step S124, and the text data of the prompt created in step S125 to the language model module M1 (step S126). In step S126, similar to the processing based on the language model module M1 described in the first embodiment, the processing unit 10 converts the text data into vector data, combines it with the data (vector data) selected from the knowledge data K1, and provides the combined input data to the language model LM along with an instruction to output the review.
処理部10は、ステップS126の処理によって言語モデルモジュールM1から出力されるレビュー結果を、レビューリクエストを識別する識別データ(リクエストID、リクエスト元の端末装置2の識別データ、端末装置2のオペレータのID等)と対応付けて記憶する(ステップS127)。 The processing unit 10 stores the review results output from the language model module M1 by the processing of step S126 in association with identification data that identifies the review request (request ID, identification data of the terminal device 2 that made the request, ID of the operator of the terminal device 2, etc.) (step S127).
処理部10は、レビュー結果を含む画面のデータを端末装置2へ送信する(ステップS128)。処理部10はステップS128において、レビュー結果を表形式で表した部分と、レビュー結果に対するフィードバックの選択インタフェース(図15参照)とを含む画面の画面データを送信する。 The processing unit 10 transmits screen data including the review results to the terminal device 2 (step S128). In step S128, the processing unit 10 transmits screen data including a portion showing the review results in tabular form and a selection interface for feedback on the review results (see Figure 15).
端末装置2の処理部20は、レビューリクエストへの応答として画面のデータを受信し(ステップS223)。処理部20は、画面のデータに基づき画面を表示部23に表示し(ステップS224)、画面上でレビュー結果へのフィードバックを受け付ける(ステップS225)。フィードバックは後述するように、「正しい指摘」、「誤った指摘」、又は「わからない」などの選択肢から選択可能である。処理部20は、受け付けたフィードバックを、レビューリクエストID又は他の識別データと対応付けて情報処理装置1へ送信する(ステップS226)。 The processing unit 20 of the terminal device 2 receives the screen data in response to the review request (step S223). The processing unit 20 displays the screen on the display unit 23 based on the screen data (step S224) and accepts feedback on the review result on the screen (step S225). As described below, feedback can be selected from options such as "Correct," "Incorrect," or "Don't know." The processing unit 20 associates the accepted feedback with a review request ID or other identification data and transmits it to the information processing device 1 (step S226).
情報処理装置1の処理部10は、フィードバックを受信し(ステップS129)、言語モデルモジュールM1の言語モデルLMへの報酬として与え(ステップS130)、処理を終了する。これにより、言語モデルモジュールM1の言語モデルLMは、報酬からポリシーをチューニングし、次回のレビューをより精度よく出力できるようになる。ステップS130において処理部10は、対象のソフトウェア開発関連文書のベクトルデータ(結合後)と、レビュー結果と、フィードバックとにより、ナレッジデータK1を更新するようにしてもよい。 The processing unit 10 of the information processing device 1 receives the feedback (step S129), provides it as a reward to the language model LM of the language model module M1 (step S130), and terminates the process. This allows the language model LM of the language model module M1 to tune its policy based on the reward and output the next review with greater accuracy. In step S130, the processing unit 10 may update the knowledge data K1 using the vector data (after merging) of the target software development-related document, the review results, and the feedback.
図15は、端末装置2にて表示されるフィードバックの選択インタフェース232の一例を示す図である。図15は、端末装置2にて表示されるレビュー結果の表示画面230の一例を示す。表示画面230は、図15に示すように、レビュー結果231を表形式で、指摘箇所の文書内での位置(行)と、指摘箇所の元のテキストや図表の内容(原文)と、指摘内容と、修正案とを示す。第3実施形態において表示画面230は、フィードバックの選択肢に該当する選択インタフェース232を含む。選択インタフェース232は、図15に示すように「役に立った」(正しい指摘)、「役に立たなかった」(誤った指摘)、「分かりやすかった」(正しい指摘)、「分かりにくかった」(不明確)などの選択肢を含む。オペレータがいずれかを選択すると、選択した内容がフィードバックとして情報処理装置1へ送信される。 Figure 15 is a diagram showing an example of a feedback selection interface 232 displayed on the terminal device 2. Figure 15 shows an example of a display screen 230 of review results displayed on the terminal device 2. As shown in Figure 15, the display screen 230 displays the review results 231 in table format, showing the position (line) of the pointed-out section within the document, the original text or diagram content (original text) of the pointed-out section, the pointed-out content, and suggested revisions. In the third embodiment, the display screen 230 includes a selection interface 232 corresponding to feedback options. As shown in Figure 15, the selection interface 232 includes options such as "useful" (correct point), "not useful" (incorrect point), "easy to understand" (correct point), and "difficult to understand" (unclear). When the operator selects one of the options, the selected content is sent to the information processing device 1 as feedback.
上述した処理手順及び得られるレビュー結果のデータにより、情報処理装置1から出力されるレビュー結果は、オペレータが納得し得るより精度の高いものとなる。言語モデルLMを含む言語モデルモジュールM1のみならず、ナレッジデータK1についても、オペレータのフィードバックによって更新されるとよい。言語モデルLMの機能はそのままに、ナレッジデータK1を更新し、精度よくレビュー結果を出力させ、ナレッジデータK1がチューニングされることで専門家がコメントするようなレビューの出力が可能となる。処理部10は、ナレッジデータK1として、入力されたソフトウェア開発関連文書と出力されたレビュー結果との組を記憶して更新してもよいし、入力されたソフトウェア開発関連文書とレビュー結果と修正後の最終的なソフトウェア開発関連文書との組が記憶されてもよい。ナレッジデータK1として、レビュー結果に対するソフトウェア開発関連文書のオペレータからのフィードバックを共に記憶してもよい。これらのナレッジデータK1により、大規模システムの開発事業者のオペレータによるソフトウェア開発関連文書の見直しやバグ修正などを更に効率化することが期待できる。高度な人材が不足した状況であっても、高品質のソフトウェア群によるシステムの提供を可能とする。 The above-described processing procedure and the resulting review result data enable the review results output from the information processing device 1 to be more accurate and satisfactory to the operator. It is preferable to update not only the language model module M1, including the language model LM, but also the knowledge data K1 based on operator feedback. By updating the knowledge data K1 and outputting accurate review results while maintaining the functionality of the language model LM, and tuning the knowledge data K1, it becomes possible to output reviews that sound like expert comments. The processing unit 10 may store and update pairs of input software development-related documents and output review results as knowledge data K1, or may store pairs of input software development-related documents, review results, and final software development-related documents after correction. Feedback from the operator of the software development-related documents regarding the review results may also be stored as knowledge data K1. This knowledge data K1 is expected to further improve the efficiency of software development document review and bug correction by operators of large-scale system developers. This makes it possible to provide systems with high-quality software suites, even in situations where there is a shortage of highly skilled personnel.
上述の第1実施形態及び第2実施形態では、情報処理装置1と端末装置2とを区別し、オペレータが端末装置2を用いて情報処理装置1にレビュー依頼を行なう構成とした。開発支援システム100は、上述のような態様に限らず、オペレータは情報処理装置1に表示部及び操作部を接続して使用するものとし、端末装置2と情報処理装置1との間のデータの送受信は実行されなくてよい。 In the first and second embodiments described above, the information processing device 1 and the terminal device 2 are distinguished, and the operator uses the terminal device 2 to make a review request to the information processing device 1. The development support system 100 is not limited to the above-mentioned configuration, and the operator may use the information processing device 1 by connecting a display unit and an operation unit, and data transmission and reception between the terminal device 2 and the information processing device 1 may not be performed.
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。 The embodiments disclosed above are illustrative in all respects and are not restrictive. The scope of the present invention is defined by the claims, and includes all modifications that are equivalent in meaning to and within the scope of the claims.
1 情報処理装置
10 処理部
11 記憶部
P1 情報処理プログラム(コンピュータプログラム)
LM 言語モデル
K1 ナレッジデータ
2 端末装置
23 表示部
24 操作部
P2 端末プログラム
1 Information processing device 10 Processing unit 11 Storage unit P1 Information processing program (computer program)
LM: Language model K1: Knowledge data 2: Terminal device 23: Display unit 24: Operation unit P2: Terminal program
Claims (13)
ソフトウェア開発関連文書の文書データを取得し、
言語モデルに、前記ソフトウェア開発関連文書に関するレビュー結果を出力させるように前記文書データを与え、
前記言語モデルからの出力に基づき、レビュー結果を出力する
処理を実行させるコンピュータプログラム。 On the computer,
Acquire document data related to software development,
providing the document data to a language model so as to cause the language model to output a review result regarding the software development-related document;
A computer program that executes a process of outputting a review result based on the output from the language model.
前記レビュー結果を、前記ソフトウェア開発関連文書の中の指摘箇所と、前記指摘箇所に対する指摘事項と、前記指摘箇所に対する修正案とを含む所定の形式で出力する
処理を実行させる請求項1に記載のコンピュータプログラム。 The computer,
2. The computer program according to claim 1, wherein the computer program executes a process of outputting the review results in a predetermined format including pointed out portions in the software development-related documents, pointed out matters for the pointed out portions, and suggested modifications for the pointed out portions.
前記言語モデルに対する役割及び指示文を含むプロンプトを作成し、
作成したプロンプトを、前記文書データと共に前記言語モデルに与える
処理を実行させる請求項1に記載のコンピュータプログラム。 The computer,
creating a prompt including a role and instructions for the language model;
The computer program according to claim 1 , further comprising: providing the generated prompt together with the document data to the language model.
前記ソフトウェア開発関連文書に関するナレッジデータを選定し、
選定したナレッジデータを、前記文書データと共に前記言語モデルに与える
処理を実行させる請求項1又は3に記載のコンピュータプログラム。 The computer,
selecting knowledge data relating to the software development related documents;
The computer program according to claim 1 or 3, which causes the computer to execute a process of providing the selected knowledge data together with the document data to the language model.
請求項4に記載のコンピュータプログラム。 The computer program according to claim 4 , wherein the knowledge data is reference information prepared for each target software or field of the software development related document.
前記コンピュータに、
前記ソフトウェア開発関連文書の業務分野及び文書の種類を特定し、
特定した業務分野及び文書に対応するナレッジデータを、前記文書データと共に前記言語モデルに与えることによりレビュー結果を出力させる
処理を実行させる請求項4に記載のコンピュータプログラム。 The knowledge data is stored according to a plurality of document types for each business field of software development related documents,
The computer,
Identifying the business field and document type of the software development-related documents;
5. The computer program according to claim 4, wherein the computer program executes a process of outputting a review result by providing knowledge data corresponding to the identified business field and document to the language model together with the document data.
前記コンピュータに、
前記図表又は前記キャプチャ画像からテキストを抽出し、
抽出したテキストを、前記文書データに含まれるテキストと共に言語モデルに与える
処理を実行させる請求項1に記載のコンピュータプログラム。 the document data includes a captured image of a diagram or a GUI screen;
The computer,
Extracting text from the diagram or the captured image;
The computer program according to claim 1 , further comprising: providing the extracted text together with text included in the document data to a language model.
抽出されるテキストと、該テキストの前記図表又は前記キャプチャ画像における位置とを示すデータとを含むテキストデータを作成し、
作成した前記テキストデータを前記言語モデルに与え、
前記言語モデルからの出力に基づき、前記図表又は前記キャプチャ画像に対する指摘事項を含むレビュー結果を、前記図表又は前記キャプチャ画像内の位置と関連付けて出力する
処理を実行させる請求項7に記載のコンピュータプログラム。 The computer,
creating text data including extracted text and data indicating the position of the text in the diagram or the captured image;
providing the created text data to the language model;
The computer program according to claim 7 , which causes the computer to execute a process of outputting a review result including findings on the diagram or the captured image in association with a position within the diagram or the captured image based on an output from the language model.
前記図表又は前記キャプチャ画像に対する指摘事項を特定する情報を、前記図表又は前記キャプチャ画像に重畳した画像データを、前記レビュー結果に含めて出力する
処理を実行させる請求項8に記載のコンピュータプログラム。 The computer,
The computer program according to claim 8 , which causes the computer to execute a process of outputting image data in which information specifying an issue pointed out about the diagram or the captured image is superimposed on the diagram or the captured image, the image data being included in the review result.
出力したレビュー結果に対する評価を受け付け、
受け付けた評価に基づいて前記言語モデルを学習する
処理を実行させる請求項1に記載のコンピュータプログラム。 The computer,
Accept evaluations of the output review results,
The computer program product of claim 1 , further comprising: training the language model based on received evaluations.
前記ソフトウェア開発関連文書に対して出力したレビュー結果を、前記ナレッジデータとして記憶する
処理を実行させる請求項4に記載のコンピュータプログラム。 The computer,
The computer program according to claim 4 , wherein the computer program executes a process of storing review results outputted for the software development related documents as the knowledge data.
言語モデルに、前記ソフトウェア開発関連文書に関するレビュー結果を出力させるように前記文書データを与え、
前記言語モデルからの出力に基づき、レビュー結果を出力する
処理を実行する処理部を備える情報処理装置。 Acquire document data related to software development,
providing the document data to a language model so as to cause the language model to output a review result regarding the software development-related document;
An information processing device comprising: a processing unit that executes a process of outputting a review result based on an output from the language model.
言語モデルに、前記ソフトウェア開発関連文書に関するレビュー結果を出力させるように前記文書データを与え、
前記言語モデルからの出力に基づき、レビュー結果を出力する
情報処理方法。 Acquire document data related to software development,
providing the document data to a language model so as to cause the language model to output a review result regarding the software development-related document;
and outputting a review result based on the output from the language model.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024076698A JP2025171397A (en) | 2024-05-09 | 2024-05-09 | Computer program, information processing device, and information processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2024076698A JP2025171397A (en) | 2024-05-09 | 2024-05-09 | Computer program, information processing device, and information processing method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2025171397A true JP2025171397A (en) | 2025-11-20 |
Family
ID=97734891
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2024076698A Pending JP2025171397A (en) | 2024-05-09 | 2024-05-09 | Computer program, information processing device, and information processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2025171397A (en) |
-
2024
- 2024-05-09 JP JP2024076698A patent/JP2025171397A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11907107B2 (en) | Auto test generator | |
| US11593592B2 (en) | Intelligent payment processing platform system and method | |
| US10747651B1 (en) | System for optimizing system resources and runtime during a testing procedure | |
| US11954461B2 (en) | Autonomously delivering software features | |
| US9465793B2 (en) | Systems and methods for advanced grammar checking | |
| US10430180B2 (en) | System and method for resilient automation upgrade | |
| US11301643B2 (en) | String extraction and translation service | |
| CN1457041B (en) | System for automatically annotating training data for natural language understanding system | |
| CN103098051A (en) | Search engine optmization assistant | |
| US12394232B2 (en) | Systems and methods for automated text labeling | |
| US20250103471A1 (en) | Automation of software test case generation and implementation | |
| CN111679851A (en) | Requirements code management method, apparatus, system and computer-readable storage medium | |
| CN118586849A (en) | Data processing methods | |
| CN115291887B (en) | Code generation method, device, equipment and storage medium | |
| CN119088449B (en) | Method, device, equipment and medium for dynamically updating system demand document in real time | |
| KR102467096B1 (en) | Method and apparatus for checking dataset to learn extraction model for metadata of thesis | |
| CN120029604A (en) | Training data generation method, device, equipment and medium | |
| JP2013037580A (en) | Information processor | |
| JP2025171397A (en) | Computer program, information processing device, and information processing method | |
| US8839097B2 (en) | System and method for information encapsulation for providing multiple deliverable formats from one information source | |
| US12493398B2 (en) | Cross channel digital data structures integration and controls | |
| JP6062735B2 (en) | Software development support device, software development support method, software development support program | |
| Ynion | Using ai in automated ui localization testing of a mobile app | |
| JP7753428B1 (en) | Business support system, business support method, and program | |
| JP7687604B1 (en) | Program, method, information processing device, and system |