JP2007034813A - 複数自然言語のソフトウェア説明書生成システム - Google Patents

複数自然言語のソフトウェア説明書生成システム Download PDF

Info

Publication number
JP2007034813A
JP2007034813A JP2005218993A JP2005218993A JP2007034813A JP 2007034813 A JP2007034813 A JP 2007034813A JP 2005218993 A JP2005218993 A JP 2005218993A JP 2005218993 A JP2005218993 A JP 2005218993A JP 2007034813 A JP2007034813 A JP 2007034813A
Authority
JP
Japan
Prior art keywords
comment
code
natural language
source
software
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
Application number
JP2005218993A
Other languages
English (en)
Inventor
Satoshi Hirano
平野  聡
Takeshi Okawa
猛 大川
Runtao Qu
潤涛 曲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2005218993A priority Critical patent/JP2007034813A/ja
Priority to PCT/JP2006/314607 priority patent/WO2007013418A1/ja
Priority to US11/996,809 priority patent/US20100146491A1/en
Publication of JP2007034813A publication Critical patent/JP2007034813A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Machine Translation (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】 複数の自然言語で書かれたソフトウェア説明書を生成できるソフトウェア説明書生成システムを提供する。
【解決手段】 ソフトウェア説明書生成システムは、入力手段により、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述され、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているソースファイルを入力し、ソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納し、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出し、抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する。
【選択図】 図1

Description

本発明は、複数の自然言語のソフトウェア説明書を出力することのできるソフトウェア説明書生成システムに関するものであり、更に、詳しくは、コメントが含まれているコンピュータソフトウェアのソースファイルからソフトウェアに関する説明書をテキスト処理により生成し、また、テキスト処理によりファイルを変換するソフトウェア説明書生成システムに関するものである。
本発明の説明に先立ち、誤解を招きやすいと思われる言葉の定義を説明する。本発明においては、コンピュータ・システム上で幾つかの種類の「言語」を取り扱う。このため、本明細書において、「自然言語」は、日本語、英語、中国語、韓国語など、人類が普段使っている言語のことを意味する。また、「プログラミング言語」は、アセンブリ言語,C言語,Java(登録商標)言語など、情報機器を動かすソフトウェアを記述するための言語一般を意味する。
今日、ソフトウェア製品を多くの国や地域に出荷することはソフトウェア企業にとって重要な戦略である。一般にソフトウェアを使用する際には、何らかの説明書を読んで理解を深める。その際、読者にとっての第一自然言語(すなわち母語)で書かれた説明書を読むことにより、最も効率的にソフトウェアの使用法を習得することが出来る。すなわち、ソフトウェアの使いやすさは、ソフトウェアに関連する説明書の読みやすさに大きく依存する。その為、ソフトウェアに関連する説明書、より一般的にはソフトウェアに関連するドキュメントをそれぞれの国や地域の現地語で提供することが、各出荷地域においてのソフトウェアの価値を高めることにつながる。
一方、ソフトウェア開発の国際化もまた急速に進んでいる。プログラミング言語それ自体は自然言語からはほぼ独立であり、世界のソフトウェア開発者が共有する知識体系であるため、開発の国際化は自然の流れであるといえる。しかし、ソフトウェアが複雑化した今日において、ソフトウェアのソースコードだけでは、そのソフトウェアに関する理解は非常に困難である。そのため、ソフトウェア開発に関する自然言語で書かれたドキュメント(例:○×ソフトウェア説明書、○×プログラム内部仕様書、など)をソースコードと併せて、開発者間で共有もしくは配布するのが一般的である。ドキュメントによって、そのソフトウェアの仕様についての理解を促進することが可能となる。そこで問題となるのは、どの自然言語でその開発ドキュメントが書かれるかである。
一般に、開発に関するドキュメントは、開発地の第一自然言語、もしくは事実上の国際的標準自然言語となっている英語で記述されることが多い。しかし、十分な語学能力と十分なソフトウェア開発能力を同時に併せ持つ人材は稀である。その為、読者(すなわちソフトウェア開発者)にとっての母語で記述されたソフトウェア開発用ドキュメントを読むことで開発対象のソフトウェアに対する理解を深めることが、開発期間の大幅な短縮につながる。そのため、ソフトウェア製品(もしくはソフトウェアコンポーネント製品)は世界的な共通自然言語である英語でのドキュメントのみならず、現地の自然言語で書かれたドキュメントを備えた上で出荷されることが望ましい。その結果、世界の各地域におけるソフトウェア製品の価値を高めることにつながる。
そのため、ソフトウェアの開発側としてはいくつかの自然言語で書かれたドキュメントを作成する必要がある。しかし、ソフトウェア開発にかかわるドキュメント作成は非常に時間と労力のかかるものである。特に多数の自然言語で発行する必要がある場合には、発行の度に翻訳工程、および各自然言語で書かれたドキュメント間の整合性の確認工程が必要となり、ソフトウェア製品の生産性向上の障害となっていた。
これは、ソフトウェア開発ドキュメントの作成工程を、ソフトウェア自身と関連させて考えてみると理解が容易である。一般に、ソフトウェアのソースコードと、ソフトウェア開発ドキュメント(内部仕様書)を別個に作成・維持することは、コストのかかる工程である。何故なら、内部仕様書はソフトウェアのソースコードと非常に密接に関連するドキュメントであるため、ソースコードの変更時に、ソースコードとドキュメントの内容が一致するように保つことが困難である。
そのため、ソフトウェアのソースコード中に注釈(コメント)をあわせて書き込むことにより、動作するソフトウェアとドキュメントを一体として作り上げる開発スタイルが、ソフトウェア製品の生産性向上に有用であるとの認識が広まっている。例えば、Knuthは、文献「文芸的プログラミング(Literate Programming)」において、文章の中にソフトウェアのソースコードを織り込んで、自然言語での説明文とともに書かれたプログラミング言語でのソフトウェアを示し、その有用性を示している。このような開発スタイルにおいて、ソースコード中のコメントは、コメント抽出・文書整形ソフトウェアにより自動的に抽出・整形されて、完成品のドキュメントとして即座に開発時もしくは運用時に利用可能である。
ソフトウェアおよびドキュメント双方の品質維持とコスト削減の観点から見て、ドキュメント自動生成システムの採用は非常に有効であるといえる。更には、即座に利用できることから、開発効率の向上に有用である。また、実行されるソフトウェアとドキュメントとの間の整合性の確保を行いやすい利点がある。
サンマイクロシステムズ社のJavadocは、その一例である。Java(登録商標)のプログラムソースコード中に、クラスやメソッドといったソフトウェアの構成単位に対して、説明をコメント(注釈)として書き込み、ドキュメントをHTML文書やPDF文書として出力を行う。説明を書き込む際には、その説明の意味を示す符号をあわせて書き込むことにより、出力するドキュメント中のしかるべき場所にその説明が現れるような制御が可能である。
このようなドキュメントの自動生成は、旧来、コメントが単一の自然言語で書かれたソースファイルにおいて行われてきた。何故なら、コンピュータの成立の歴史や今日の国際的な標準自然言語が英語であるという背景から、ソフトウェアは英語の文字セットを用いたプログラミング言語で記述することが一般的であり、そのソースファイルに付されるコメントも英語でかかれることが多いからである。
ソフトウェアソースコードからのドキュメント自動生成システムとして、Javadocと同様のドキュメント生成を行うオープンな実装のうち著名なものとしては、DoxygenやKDOC、DOC++が挙げられる。しかし、ここに挙げたツールは、単一の自然言語で書かれたソフトウェア説明書を生成することを目的としたものである。
複数の種類の外国語で書かれた電子ドキュメント用のコンテンツフィルタの技術としては、特許文献1が公知である。このコンテンツフィルタの技術は、主に時事的な内容のニュース記事を話題分野別に分類することを目的としている。
米国特許第6,542,888号明細書
従来、複数の自然言語のソフトウェア説明書を作成する技術として、特許文献1に記載されているように、複数の種類の外国語で書かれた電子ドキュメント用のコンテンツフィルタの技術がある。しかし、この技術は、主に時事的な内容のニュース記事を話題分野別に分類するのが目的であり、複数の自然言語で書かれた文章の分類・抽出についての方法を明示的・具体的に示しているものではない。このため、ソフトウェアのソースファイルに適用して、複数の自然言語のソフトウェア説明書を作成するシステムとすることの示唆は与えられない。
また、既存の技術であるテキストプリプロセッシング(事前処理)システムを用いる方法も考えられる。具体的に、文書プリプロセッシングシステムとは、例えば、C言語用のプリプロセッサである。想定される方法としては、例えば、生成元のソースファイル中にプリプロセッサ用の命令を埋め込んでおき、ドキュメント自動生成システムに入力する前にプリプロセスを行うことで、生成対象の自然言語以外で書かれたコメントを除去し、対象自然言語で記述されたソフトウェア説明書を作成するような構成とする。C言語プリプロセッサ用の命令の例としては、#ifdef、#endifなどがあり、これらを駆使すれば目的を達成することはできそうである。しかし、記述が煩雑であることと、本来ソフトウェアのソースコードの記述用に使用されるものであることから、特に言語を識別する記号の管理において混乱を生じやすく、複数の種類の自然言語のコメントを識別する目的には不適切である。
現在のところ、複数の自然言語で書かれたソフトウェア説明書の生成に関して、生産性の向上に有用な技術は確立されていない。したがって、本発明の目的は、複数の自然言語で書かれたソフトウェア説明書を生成することのできる複数自然言語のソフトウェア説明書生成システムを提供することにある。
上記のような目的を達成するため、本発明による複数自然言語のソフトウェア説明書生成システムは、第1の態様として、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段とを備えることを特徴とするものである。
また、第2の態様として、本発明による複数自然言語のソフトウェア説明書生成システムは、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号と更に国もしくは地域を示す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段とを備えることを特徴とするものである。
この場合に、ソフトウェア説明書生成システムは、更に、1つの自然言語の文を他の自然言語の文に翻訳処理する翻訳処理手段を備え、前記抽出手段が、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントが存在しない場合に、所定の自然言語の種類に相当する符号がつけられたコメントを前記ソースファイルから抽出し、前記出力手段は、出力対象の自然言語のコメントを、翻訳処理手段により所定の自然言語で記述されたコメントを機械翻訳し、使用者によって指定された出力対象の自然言語のソフトウェア説明書を出力するように構成される。
また、この場合に、機械翻訳の際に訳元として用いるコメントの自然言語の種類をデフォルトで示すための、主たる自然言語の種類を示す符号をソースファイル中に含むように構成されてもよい。
また、本発明によるソフトウェア説明書生成システムにおいては、コメントに付ける符号には、コメントが更新を必要とする旨の符号を含み、前記出力手段が、コメントが更新を必要とする旨の符号に基づいて、ソースファイルにおいて更新が必要な箇所もしくは更新が必要な言語についての情報を出力するように構成されても良い。本発明の別の態様では、それぞれの処理要素(手段)がプログラムとして実現される。このプログラムが情報処理装置にインストールされることにより、本発明のソフトウェア説明書生成システムとして機能する。この場合において、システムで用いられるソースファイル構造を構成するためのデータ構造に特徴を有するものとなっている。その1つのソースファイルのデータ構造は、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内において、ソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているデータ構造であり、他の1つのソースファイルのデータ構造は、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内において、ソースコード中のあるひとつの機能を説明するコメントが、機能を表す符号に続いて複数の自然言語で記述されており、前記コメントには、記述に用いられている自然言語の種類を示す符号が付加されているデータ構造である。
上記のような構成による本発明のソフトウェア説明書生成システムによれば、複数の自然言語で書かれたコメントを、ソースコードと共にソースファイル中に含むことで、ソフトウェア開発者・各国語の編集者・各国語の翻訳者がそれぞれ誤った編集を行うことを防止できる。と共に、他国語で記述されたコメントなど翻訳を行う必要のある場所を翻訳者に表示することが可能となり、編集を効率よく行うことができる。この結果として、次のような種々の課題が解決できることとなる。
(課題1):これまでソフトウェア開発者は、プログラミング言語で書かれたソースコードにコメントを付与したソースファイルを作成し、そのソースファイルを入力してソフトウェア説明書を生成するJavadocのようなツールを用いてソフトウェア説明書を生成してきた。しかし、それらのツールは単一の自然言語についてのものであった。このため、複数の自然言語で書かれたソフトウェア説明書への要求に対しては、個別に各自然言語毎のファイルそれぞれに翻訳および整合性の確認を経るプロセスが必要であって、複数の自然言語で書かれたコメントを、後に処理しやすいようにソースファイル内に保持することは行われていなかった。これに対して、本発明のソフトウェア説明書生成システムを用いることにより、ソースファイルのコメントを複数の自然言語で記述し、複数の自然言語で書かれたソフトウェア説明書を生成するシステムが実現される。
(課題2):自然言語と使用する国・地域が一対一に対応しない場合においても、使用者の要求に応じて適切なソフトウェア説明書を提供する必要があるが、そのような要求に応えるシステムは未だ実現されていなかった。このような課題についても本発明によるソフトウェア説明書生成システムを用いることにより解決される。
(課題3):プログラミング言語で書かれたソースコードと、これらに対して自然言語で書かれたコメントからなるソースファイルにおいて、翻訳が必要な箇所を適切に判断する方法は現在のところ明らかにはなっておらず、人手による翻訳が必須となっている。そのため、ソフトウェア製品の製作プロセスにおいては、ソフトウェア説明書を作成するための多大な時間とコストが必要となっていた。このような課題についても本発明によるソフトウェア説明書生成システムを用いることにより解決される。
(課題4):ソースファイル中のコメントに関する機械翻訳が適用可能であった場合においても、翻訳元のコメントを適切に選択する事は困難であり、ソフトウェア開発者の意図を反映させるための何らかの明示的な選択手段が必要である。本発明によるソフトウェア説明書生成システムを用いることにより、このような課題についても解決される。
(課題5):複数の自然言語でコメントで記述されるソースファイルの記述方法および処理方法のシステムがあったとしても、ソフトウェアの仕様変更・ソースコードの実装内容にあわせて、それぞれの自然言語で書かれたコメントの内容を適切に変更・管理していくことは、非常に困難な作業である。例えば、ある自然言語で記述されたコメントを変更した場合に、その他の自然言語で記述されたコメントとの不一致が起こるが、どのコメントを最新の情報に修正するべきであるかという情報を管理することは困難である。これまで、複数の自然言語でコメントが書かれたソースファイルを適切に変更・管理していくためのシステムは実現されていない。本発明によるソフトウェア説明書生成システムを用いることにより、このような課題についても解決される。
以下、本発明の実施する場合の形態について具体的に実施例に基づき説明する。実施例の説明において、ソフトウェア説明書生成システムは、コンピュータ(もしくはより広く言うと情報機器)上で実行されるソフトウェア(プログラム)がインストールされることにより、それぞれの処理手段として機能するシステム要素が実現されてシステムが動作する。ここでのファイルとは、コンピュータの記憶装置に格納される電子ファイルを想定している。なお、このソフトウェア説明書生成システムは、その機能を同じくしたまま大部分をハードウェアで構成した形のスタンドアローン型のソフトウェア説明書生成装置として構成されても良い。
ソフトウェア説明書作成システムに入力するソースファイルには、プログラム開発において記述されるプログラミング言語で書かれたソースコード文に加えて、そのソースコード文に対応して、これに付与されたコメントを含むソースファイルが入力される。それらのコメントは2種類以上必要とされるだけの種類の自然言語により、必要な説明が記述される。この場合に、次のようにして、ソースコードの機能を説明するコメントの意味および自然言語の種類を示す符号が付けられる。
通常のソフトウェア説明書作成システムに入力するソースファイルであれば、コメントにはコメントの意味を示す符号が付与される。通常は、入力されたソースファイルを構文解析するなどして、意味を示す符号により識別してコメントを格納手段に格納する。しかし、本発明の対象とするソースファイルにおいては、各々の自然言語で書かれた各々のコメントには複数の自然言語で記述されるため、それらのコメントの自然言語の種類を表す符号とコメントの意味を示す符号とを組み合わせた符号がつけられ、これらの符号が併せて記述されている。そのため、コメントを格納する際には、自然言語の種類を表す符号とコメントの意味を示す符号とを組み合わせた符号により識別されて格納される。
このソフトウェア説明書生成システムにおいては、上述したようにして、組み合わせた符号により識別されて格納手段に格納されたコメントから、ユーザによって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する。これにより、ソースコード文および実行可能ソフトウェアに対応するソフトウェア説明書を、指定された出力対象の自然言語で出力することができるシステム構成とされる。
また、このソフトウェア説明書生成システムにおいては、入力するソースファイル中の各々の自然言語で書かれた各々のコメントに対しては、その自然言語の種類を表す符号とコメントの意味を示す符号に加えて、更に、国もしくは地域を示す符号とを組み合わせた符号がつけられており、その符号を含むコメントを抽出してソフトウェア説明書を出力するように構成される。
また、ここでのソフトウェア説明書生成システムにおいては、指定された自然言語のコメントを、別の自然言語で記述されたコメントを元に機械翻訳により生成して、ソフトウェア説明書を出力するようなシステム構成とされるが、入力するソースファイルに主たる自然言語の種類を示す符号を含むことと、指定された自然言語のコメントを、そこで示された主たる自然言語を元にして機械翻訳することにより生成して、ソフトウェア説明書を出力するようにも構成される。
更に、入力するソースファイル中のソースコード文に付与された、コメントが更新を必要とする旨の符号と組み合わせた符号を含むことと、その符号を含むコメントを解釈して更新が必要な箇所の情報を出力するようにも構成される。
既存のソフトウェア説明書作成システムに入力可能なソースファイルを、変換により生成するシステムとすることも有用である。すなわち、目的とする自然言語で記述されたソフトウェア説明書を、複数言語で書かれたソースファイルから直接生成するのではなく、まずは、目的とする自然言語で記述されたコメントとソースコードのみを抽出することによって、目的とする自然言語のみでコメントされたソースファイルを出力する。その後、出力されたソースファイルは、既存の説明書生成システムに入力することで、最終的には目的とする自然言語で記述されたソフトウェア説明書が生成されるように構成されても有用なシステムとなる。
図中に現れるソースコードの例においては、Java(登録商標)言語による記述が例示されているが、しかし、本発明によるソフトウェア説明書作成システムは、Java(登録商標)言語で記述されたソフトウェアソースコードにおいてのみ適用されるものでなく、Java(登録商標)言語に限らず、あらゆるプログラミング言語に対しても適応可能である。
図1は、複数の自然言語で書かれたソフトウェア説明書を、単一のプログラムソースファイルから生成するシステムの構成を示した図である。このシステムにおけるソースファイル101は、第1自然言語から第n自然言語までの種類の言語で記述されたコメントおよびプログラミング言語で書かれたソフトウェアプログラムを含む処理対象ソースファイル(nは2以上の自然数)である。
本発明の実施例に係るソフトウェア説明書作成システムは、図1に示されるように、システム要素として、入力処理部11、コメント格納処理部12、コメント抽出処理部13、出力処理部14、および翻訳処理部15を備えている。説明書生成システム102は、コメント抽出処理部13、出力処理部14、翻訳処理部15、および図示されない制御処理部から構成されている。
入力処理部11は、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイルを入力する。すなわち、入力処理部11により入力されるソースファイル101のデータ構造は、プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内において、ソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されて、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているデータ構造である。コメント格納処理部12が、入力されたコメントおよびソースコード文を対応づけてソースファイルを構文解析するなどして格納する。この場合に、例えば、2種類以上の自然言語で書かれるコメントについては、各々の自然言語で書かれた各々のコメントに対して当該自然言語の種類を表す符号とコメントの意味を示す符号とを組み合わせた符号(例えば@u.jaなど)により識別して格納する。コメント抽出処理部13は、使用者によって指定された出力対象の自然言語の種類に相当する符号(例えばjaなど)がつけられたコメントのみを前記コメント格納処理部12から抽出する。出力処理部14は、前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する。また、ここでの翻訳処理部15は、後述するように、1つの自然言語の文を他の自然言語の文に機械翻訳処理する。
入力処理部11により利用者から入力されたソースファイル、またはコメント格納処理部12に格納されているコメントを含む入力ソースファイル101は、説明書生成システム102に入力される。使用者は、説明書生成システム102に対して出力したいソフトウェア説明書の自然言語の種類を指定する。そして、説明書生成システム102は、コメント抽出処理部13により、指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出することによって、出力処理部14により、ソースコード文および実行可能ソフトウェアに対応するソフトウェア説明書を、前記の出力対象の自然言語で出力する。
使用者が説明書生成システム102に対して、第1自然言語を指定した際は、第1自然言語で書かれた説明書103が、第2自然言語を指定した際は、第2自然言語で書かれた説明書104が、また、第n自然言語を指定した際は、第n自然言語で書かれた説明書105が出力される。なお、この場合に指定する自然言語の種類は一つだけでも、複数を同時に指定しても構わない。
このように、このシステムは、ソースコード中に書かれた複数種類の自然言語からなるコメントから、対象自然言語で書かれたコメントを抽出し、ソースファイルから自動的に対象自然言語のドキュメントを生成する。
図2は、処理対象となる入力ソースファイルの詳細を例示する図である。図2に示すように、ソースファイル200には、プログラムのソースコードと共に各自然言語で書かれたコメントが、単一のソースファイル上に保持される。その際、ソースファイル200においては、単一の電子ファイル上に多自然言語のテキストを格納する文字コード方式を用いる。この実施例においては、Unicode文字セット(ISO 10646)を用いた例を示している。また、文字符号化方式としてはUTF−8(RFC 3269)を用いる。しかし、多自然言語で書かれた文章を表現可能な文字セットおよび文字符号化方式を用いる限り、本発明に適用可能である。
図2においては、書かれたコメントがどの自然言語用のコメントであるかを識別する符号を、ソースファイル中に記述する方法の一例が示されている。Java(登録商標)などのプログラミング言語においては、「/*」と「*/」で囲まれた領域が、本来のプログラムソースコードではなく、コメントとして処理される。この例においてコメントは「/**」で始まるが、これはドキュメントコメントと呼ばれ、通常のコメントとは区別されて取り扱われる。ドキュメントコメントは、Javadoc等のソフトウェア文書生成システムによって解釈されて出力される。ソフトウェア文書はこのドキュメントコメントの内容に基づいて出力される。なお、この実施例における入力ソースコードの例としては、Javadocに倣ったコメント形式を用いているが、他のコメント形式・プログラムソースコード記述形式、例えば、XMLを用いたコメント・プログラムソースコードの記述であっても、本発明に適用可能である。他の記述形式の例については、図10に示されている。
図10に示される記述形式の例は、XMLファイル形式およびCSVファイル形式の一例である。図10の上部に示すソースファイル1101は、XMLファイル形式においてソースコードおよび複数の自然言語で記述されたコメントを、単一のファイル中に保持している。また、ソースファイル1102では、CSV形式(Comma Separated Values)ファイルにより同様の内容を保持している。この他にも、多数の類似する形式によって、同様に適用できる。例えば、ソースファイル1101のXML形式の適用について説明すると、<u.en>という符号は、自然言語を示す記号である「en」をXMLタグの属性として扱い、<u lang=”en”>とする記述による符号とするようにしてもよい。このような符号によっても、一つの組み合わせ符号の実施例として同様の効果を示すものとなる。
参照を図2に戻すと、図2に示すソースファイル200において、Helloクラスの定義文202に先立って示されているドキュメントコメント201には、このクラスの概要説明が書かれている。ここで符号として「@u.ja」タグが示されているが、これは符号のタグに続くテキストが、日本語で書かれたこのクラスの概要説明であることを示している。また、別の種類の符号の「@u.ko」タグが示されているが、これはこのタグに続くテキストが、韓国語で書かれたこのクラスの概要説明であることを示している。同様に別の種類の符号である「@u.zh」のタグは、同様にこのタグに続くテキストが、中国語で書かれたこのクラスの概要説明であることを示している。
ここでの符号「@u」は、コメントの概要説明を意味するタグとして定義したものであり、コメントの意味を示す符号である。そして、これに続く「.ja」「.ko」「.zh」の符号は、使用する自然言語の種類を示すための符号である。これらの符号は組み合わされて、その組み合わせ符号「@u.ja」が、「コメントの意味を示す符号」および「自然言語の種類を示すための符号」を組み合わせたものとなっており、コメントの意味と自然言語の種類を同時に表現する符号としている。
本発明においては、このような組み合わせ符号を用いることにより、複数の種類の自然言語の説明書の編集作業および生成を効率化することができるものとなっている。プログラム開発を行うプログラマがソースコードの編集中においても、これらの符号を用いることにより、異なる種類の、また複数の種類の自然言語で書かれたコメントを提示することができる。
次に、これらの符号の別の使用法の一例として、メソッドsayの定義205に対して付与されたドキュメントコメントについて説明する。前半部分203は、クラスに付与されたコメントと同様であり、メソッドの概要を説明している。ここでの符号の「@param」タグは、Javadocにおいては、メソッドの引数についての説明を行うコメントに先立って付与されるタグである。これは、この符号についても「コメントの意味を示す符号」となる。この場合においては、複数の種類の自然言語に対応するため「@param」タグに対して、自然言語の種類を示す符号を組み合わせて、その組み合わせ符号を用いる。つまり、コメント204における組み合わせ符号である「@param.ja(日本語)」タグ、「@param.ko(韓国語)」タグ、および「@param.zh(中国語)」タグにより、複数の種類の自然言語に対応した組み合わせ符号とする。これらのタグにより説明書生成システムは、それぞれのコメントが、メソッドの引数についての説明であって、更に、それぞれの自然言語用のコメントであると識別することができる。
なお、自然言語名の国際規格としてはISO639が規定されており、アルファベット2文字で示すためにはISO639−1が、3文字で示すためにはISO639−2が規定されている。この実施例においては、ISO639−1を使用しているが、適切な自然言語名を規定すればISO標準に限らずに、本発明のソフトウェア説明書生成システムに用いることができる。以上の表記法の採用により、本発明におけるソフトウェア説明書生成システムは、生成対象の自然言語に関連するコメントだけを抽出することができる。
図2のソースファイルを入力とし、出力対象言語を英語(en)とした場合の説明書出力例を、図12に示している。説明書の生成には既存の生成システムであるJavadocを用いた。また、図2のソースファイルを入力とし、出力対象言語を日本語(ja)とした場合の説明書の出力例を図13に示している。それぞれ、ソースファイル中のコメントから対応する言語の説明が抽出されて出力されたものとなっている。
図3は、複数自然言語でコメントされ更に対象の国もしくは地域を指定された入力ソースファイルの例を示す図である。図3に例示される入力ソースファイルは、複数の種類の自然言語でコメントされ、更に、対象の国もしくは地域を指定されたコメントを含む入力ソースファイルである。ここでのコメントに付加する符号として、図3に示すように、自然言語コードに加えて更に国コードが更に組み合わせられて使用される。これにより、処理の対象となる自然言語と国とを共に指定することが可能になる。
図3に示すソースファイル300において、Helloクラスの定義302に付与されたドキュメントコメント301においては、組み合わせ符号の「@u.de−be」タグおよび「@u.fr−be」タグが用いられているが、この「@u.de−be」タグは、メソッド引数の説明を行う目的であって、ベルギー王国においてドイツ語を第一自然言語とする人に向けたコメントであることを示している。また、「@u.fr−be」は対象とする自然言語の種類が、ドイツ語ではなくてフランス語であることを示している。
以上の例により、自然言語の種類を示す符号(言語コード)に加えて国の種類を示す符号(国コード)を、更に、組み合わせて使用することにより、対象となる自然言語と国とを共に指定する符号とすることができる。このため、ソースコードと対応づけるコメントに付加する符号によりキメ細やかなドキュメントの書き分けが可能となる。
図4は、入力ソースファイルからソフトウェア説明書を生成する処理を説明するフローチャートである。これまでに説明したような入力ソースファイルがあった場合に、説明書生成処理がどのように行われるかを示す図となっている。説明書生成システム102は、初めにソースファイルの読み込み(ステップ401)を行う。その読み込み処理の後に(若しくは並行して)、説明書のシステム内部モデルを生成する(ステップ402)。ここでいう説明書のシステム内部モデルとは、この処理を行うコンピュータのメモリ上に説明書の構造を表現したものである。なお、この過程は多くの説明書生成システムに共通のものであり、詳細な説明は省略するが、本発明において特徴的な点は、説明書のシステム内部モデルから指定された自然言語(国・地域)を示す符号がつけられたコメントを抽出し、抽出したコメントのみを用いて、説明書を生成する(ステップ403)ことである。これにより、各国・地域向けのドキュメントを使用者の指定に応じて出力することが可能になる。
図5は、ソースファイルからソフトウェア説明書を生成する処理の別の例を説明するフローチャートである。この場合の説明書生成処理の処理手順においては、ソースファイルを読み込み(ステップ501)、説明書のシステム内部モデルを生成する(ステップ502)時点で、既に必要な情報(ドキュメントコメント)のみを取り込む。この時点において、使用者によって指定されていない自然言語に関するドキュメントコメントはフィルタアウトされる。そのため、説明書のシステム内部モデルから出力する説明書を生成する処理(ステップ503)は、従来の説明書生成システムと全く同様の処理プロセスを用いることが可能となっている。
図6は、ソースファイルからソフトウェア説明書を生成する処理の更に別の例を説明するフローチャートである。この処理の例では、機械翻訳を含む説明書生成の処理手順を示している。説明書生成システムは、初めにソースファイルの読み込み(ステップ601)を行う。その読み込み処理の後に説明書のシステム内部モデルを作成する(ステップ602)。次に、作成したシステム内部モデルにおいて指定された自然言語(国・地域)に対応するコメントがない場合、もしくは古い場合は機械翻訳によりコメントを作成する(ステップ603)。そして、説明書のシステム内部モデルから指定された自然言語(国・地域)を示す符号が付けられたコメントのみを用いて説明書を生成する(ステップ604)。これにより、各国・地域向けのドキュメントを使用者の指定に応じて出力することができる。図6に示される処理手順は、図4の手順のステップ402がステップ602に、ステップ403がステップ604にそれぞれ対応する。ステップ602とステップ604の間に、ステップ603の処理プロセスが挿入された処理手順となっている。ステップ603の処理においては、説明書のシステム内部モデルにおいて、指定された自然言語(国・地域)に対応するコメントがない若しくは古い場合に、機械翻訳により生成する処理を行う。
このような処理を行うことによって、人手による翻訳を介さずに必要な自然言語の説明書が生成可能になるため、非常に大きい利点となる。ここでの機械翻訳とは、別の言い方では電子翻訳・コンピュータ翻訳などに相当するものを想定しており、人間の翻訳者ではない翻訳機械による処理により翻訳作業を行わせるものである。機械翻訳における訳文の正当性・妥当性に関する信頼性が十分に高くない場合には、機械翻訳による訳文については、その文が機械翻訳によるものである旨を示す符号を併せて付加することが好ましい。この符号により、後に機械翻訳文の見直しが可能になる。
また、機械翻訳の処理を行うシステム要素(機械翻訳処理モジュール)は、システム内に含有する必要は必ずしもない。内部データ表現だけで処理するのではなく、外部ファイルやクリップボードを用いて、システム外部のソフトウェア・サービスを利用する方法であっても良い。また、OLE(Object Linking and Embedding)の枠組みを用いるなどして機械翻訳の機能を追加する方法によりシステムが構成されても良い。
本発明によるソフトウェア説明書作成システムを用いて、複数の種類の自然言語で書かれたコメントを含むソースコードを用いたプログラム開発を行う際の重要な点は、ソースファイルを作成する際に、実際にはどのようにして、複数の種類の自然言語で書かれたコメントを含むソースファイルを作成していくか、ということである。
例えば、本発明によるソフトウェア説明書作成システムを用いない一般的な開発モデルにおいては、ソフトウェア設計者により設計されたソフトウェアは、ソフトウェア実装者によってソースファイルの形に具現化される。その際、ソースコードに付与されるコメントの自然言語は、該当プロジェクトにおいて規定される第1自然言語となる。当初のコメントは、その第1自然言語で記述されるのが通常である。
しかし、本発明によるソフトウェア説明書作成システムを用いると、この場合には、ソースファイル毎に主とする自然言語を設定できることと、ソースコード中に含まれる翻訳作業を完全分業化できることから、必ずしもプロジェクト単位で自然言語の統一を図る必要が無い。そのため、プロジェクトのメンバーには最も理解が容易であり、作業が効率的に進む自然言語を選択することにより、作業が効率よく進められる。
また、前述した翻訳作業において、翻訳の元となるオリジナル自然言語としてどの種類の言語を使うか、という点についても重要である。決定方法としては、1:使用者が指定する、2:使用者の作業環境の使用自然言語をオリジナル自然言語として指定する、などが考えられる。
しかし、ソースファイルもしくはクラスやメソッドという単位で開発者が違うという状況は多くの場合に起こりうる。これに対しては、そのため、ソースファイルに、主たる自然言語の種類を示す符号を含ませることで、説明書生成システムに対して情報を与える方式の採用が望ましい。
図7は主たる自然言語の種類を定めた符号を用いた機械翻訳を含む説明書生成の処理手順を示す図である。この処理では、ステップ701において、主とした自然言語を示す符号を含んだソースファイルを読み込む。次のステップ702において、内部モデルの生成を行い、ステップ703においては、内部モデルにおいて、指定された自然言語(国・地域)に対応するコメントがない若しくは古い場合は、機械翻訳によりコメントを生成する過程である。その際の訳元の自然言語としては、主たる自然言語を用いる。次のステップ704の処理においては、これまでと同様に説明書の生成を行う。
このようなソースファイルの例として、主たる自然言語を示す符号を含む入力ソースファイルの一例を、図14に示している。ソースファイル1500の冒頭部分1503において、コメント中に@mainlang.jaが含まれている。これは主たる自然言語として、日本語を用いるという意味である。例えばこのソースファイル1500のコメントとして存在しないドイツ語のソフトウェア説明書を出力したい場合を考えてみる。システムの使用者が訳元の言語を特に指定しなかった場合、仮にこの符号がない場合を考えると、訳元として複数の自然言語のコメント部分1501の日本語・韓国語・中国語のうち、どれを用いたらよいか不明である。この場合、冒頭部分1503に@mainlang.jaがあることにより、訳元のコメントとしては、デフォルトとして@u.jaで示される日本語コメントを選択すれば良いことが明らかとなる。結果として、説明書生成システムは、そこで示された主たる自然言語を元にして機械翻訳することにより適切なコメントが得られ、ソフトウェア説明書を出力する事が可能になる。これにより、翻訳割り当て作業の簡易化を図ることができる。
また、本発明によるソフトウェア説明書生成システムにおいては、入力するソースファイルにおいて、各自然言語で書かれたコメント(コメント)間での意味の一貫性を保つことが重要である。
図8は、各自然言語で書かれたコメントについて、更新が必要な箇所を示す符号を含む入力ソースファイルの例を示す図である。図8に示すソースファイルの例は、全体がHelloクラスの定義を示しており、その中のメソッドsayの定義902に対して、コメント901が付与されている。ソフトウェアの仕様変更に伴いメソッド定義902に変更が生じた際、もしくはコメント901に修正が加わる、という状況は、ソフトウェア開発の現場においては頻繁に起こり得る。図8に示すソースファイルの一例は、図2に示されたソースファイルにおいてsayメソッドの引数の名称がrepeatからlinesに変更になった状況を示している。以下に、ソースコード編集の順序を示す。
(1):「say(int repeat)」を「say(int lines)」と変更した。
(2):それに伴い、コメント中の「@param repeat Repeating number of the greeting」を、「@param lines Number of lines for the greeting」と、英語で記述されたコメントの内容を変更した。
(3):英語のコメントの内容を変更したが、編集者は英語以外の自然言語が読み書きできない。そのため、他の自然言語については、「@param.ja」などのタグの後ろに、「/update」という符号を付加し、「@param.ja/update」とした。
以上の編集作業を行うことにより、英語以外の他の自然言語について、少なくとも再度翻訳の必要があるかどうかの判断が可能となる。このような方法の採用によって、各自然言語で書かれたコメント間での意味の一貫性を保つことが容易になる。
図9は、本発明によるソフトウェア説明書生成システムにおいて更新が必要な箇所が確認可能な説明書生成の処理手順を示す図である。この処理手順においては、これまでと同様に、ステップ1001においてソースファイルを読み込み、次のステップ1002においてシステム内部モデルの生成を行う。そして、次のステップ1003において、図4の手順に加えて、システム内部モデルにおいて、指定された自然言語(国・地域)に、「更新が必要な旨の符号」があった場合に記録を行う過程が追加される。ステップ1004においては、これまでと同様に説明書の生成を行うが、次のステップ1005において、更新が必要なコメントの箇所に関する情報、もしくは更新が必要な自然言語がどれであるかを、全ステップで記録された情報を元に出力する。本発明によるソフトウェア説明書生成システムにおいては、使用者は、この情報を元に翻訳作業を完全に分業化することが可能になる。
なお、本発明のソフトウェア説明書生成システムにおいて、ここでの本質は、更新が必要な旨を示す符号を付与することにあるため、本発明の適用範囲が、この実施例で説明した例に限定されるわけではない。
また、本発明によるソフトウェア説明書生成システムは、以上で説明したそれぞれの手段により直接、目的とする自然言語で記述されたソフトウェア説明書を生成するシステム・装置・方法として実施しても良いが、必ずしも直接生成する実施形態を取る必要はない。複数の種類の自然言語を用いて記述されたコメントから、目的とする自然言語で記述されたコメントのみを抽出することによって、単一自然言語でコメントされたソースファイルを出力する電子ファイルの変換を行う実現形態も、本発明のソフトウェア説明書生成システムの有効な実装である。
その概要を図11に示す。図11において、参照符号1201は、これまで説明したソフトウェア説明書生成システム・装置・方法におけるものと同様のソースファイルである。電子ファイル変換システム1202に、その複数自然言語でコメントされたソースファイル1201が入力され、使用者が第1自然言語を選択した場合は、コメントが第1自然言語で書かれたソースファイル1203を出力し、また、使用者が第2自然言語を選択した場合は、コメントが第2自然言語で書かれたソースファイル1204を出力する。同様に第n自然言語で書かれたソースファイル1205を出力する。
出力されたソースファイル(1203、1204、…、1205)は、それぞれ既存のソフトウェア説明書生成システム(1213、1214、…、1215)に入力することで、目標とする各自然言語で書かれたソフトウェア説明書(1223、1224、…、1225)を生成することができ、目的が達成される。既存のソフトウェア説明書生成システムを利用できるということは、本発明を適用して新たにシステムを開発することなしに様々な表現形態でのソフトウェア説明書が生成可能であるため、非常に有用である。
本発明において入力対象となるソースファイルには、自然言語の種類を表す符号とコメントの意味を示す符号とを組み合わせた符号が数多く含まれることになる。従来のテキストエディタ上でこの種のファイルを編集作業する場合には、各自然言語でコメントを記述する作業に加えて、上記の組み合わせ符号を記述する作業の量が増大するため、編集作業の効率が低下するおそれがある。そのため、符号を挿入する機構を、既存のテキストエディタのようなソフトウェア開発用の編集システムに設けることにより、この問題を回避することが可能である。
さらに、多くの自然言語を用いてコメントが記述されたソースファイルをテキストエディタ上で編集作業することを考えてみると、取り扱う自然言語の種類が増加するにつれてコメントとソースコードの画面上での位置が離れてしまい、編集作業が困難になる。また、編集作業中に、編集者が自分では理解できない自然言語のコメントの一部を誤って削除もしくは変更してしまって、そのことに気づかないという危険性がある。そのため、必要とされる自然言語のみを編集画面上に提示する機構を、既存のテキストエディタのようなソフトウェア開発用の編集システムに設けることにより、この問題を回避することが可能である。
具体的には、多くの自然言語でコメントされたソースコードを編集する際には、本発明における入力ソースファイルに用いる形式で記述を行い、そのソースファイルを編集対象として用いる。テキストエディタは、自然言語の種類を表す符号とコメントの意味を示す符号とを組み合わせた符号を利用してコメントを各自然言語毎に識別可能であり、必要な自然言語で記述されたコメントのみを編集者に対して提示することが可能になる。その結果、多くの自然言語でコメントが記述されたソースコードの編集効率の向上を図り、品質の向上を行うことが出来る。
図15は、ソースファイル構造の別の例を示す図である。本発明によるソフトウェア説明書生成システムにおいて利用されるソースファイル構造としては、図15に示すような形態のソースファイル構造が利用できる。図15に示すソースファイル構造のソースファイル1600においては、クラスHelloのメソッドsayの説明としてコメント1603が、引数paramに対する説明としてコメント1604が付加されている。これらのコメント1603およびコメント1604のデータ構造は、それぞれ、機能を説明するコメント内容が機能を表す符号「@u」および「@param」に続いて複数の自然言語で記述されており、更にその記述に用いられている自然言語の種類を示す符号「@ja」、「@ko」、「@zh」が付加されているものとなっている。
本発明によるソフトウェア説明書生成システムは、図15で示されるソースファイル構造のソースファイルを入力として用いることも有用である。すなわち、ソースコード中のあるひとつの機能を説明するコメントが、機能を表す符号に続いて複数の自然言語で記述されており、前記コメントには、記述に用いられている自然言語の種類を示す符号が付加されているので、複数の自然言語によるコメントを追加して記述する場合に有効に利用できる。このようなデータ構造を入力ファイルとして用いる実現形態も、本発明のソフトウェア説明書生成システムの有効な実装となる。
このように本発明のソフトウェア説明書生成システムによれば、各自然言語で書かれたコメントおよびソースコードを単一のファイル中に含むことで、各国・地域向けのソフトウェア説明書を、単一のソースファイルから生成することができる。単一のソースファイルに、すべての自然言語のバージョンを保持するということは、情報源の分散を防ぐことを意味し、一致性を保つ効果がある。ひいては各自然言語バージョン間での不一致を削減することにつながり、説明書の作成時間の短縮、および説明書の品質向上を同時に達成することが可能となる。
また、ソフトウェア説明書をそれぞれの自然言語別に生成することに加えて、国・地域に応じて適切なソフトウェア説明書を生成することができ、更にきめ細かな顧客への対応が可能になる。更に、明示的に自然言語の種類をソースコードコメントに付与することによって、従来は全く不可能であったソースコードコメントの機械翻訳による生成が可能になる。これは、ソフトウェア製品を全世界的に展開する際の、コストおよび時間の大幅な節約につながる。
また、機械翻訳を行う際に問題となる適切な訳元文章の選択に関しても、明示的な符号の使用によって、ソフトウェアプロジェクトの意図を反映させることが可能であり、生成されるソフトウェア説明書の品質向上に貢献する。スペルチェックもしくは文法チェックは、従来、単一の自然言語に対して行われるものであったが、複数の自然言語が混在するファイルに対してスペルチェックおよび文法チェックを可能にすることで、コメントの質を向上することができる。また、複数の自然言語によりコメントが記述された際に問題となるコメントの不整合性についても、更新が必要となる符号を用いることにより効率的に修正箇所を判断することが可能になり、更に、コメントが複数の自然言語で記述されたソースファイルから、単一の自然言語で記述されたソースファイルへ変換するシステムを用いることで、既存のソフトウェア説明書生成システムの有効利用が可能になる。
本発明における説明書生成システムを示す概略図である。 複数自然言語でコメントされた入力ソースファイルを示す図である。 複数自然言語でコメントされ更に対象の国もしくは地域を指定された入力ソースファイルの例を示す図である。 説明書生成の処理手順を示す概略図である。 説明書生成のもう一つの処理手順を示す概略図である。 機械翻訳を含む説明書生成の処理手順を示す図である。 主たる自然言語の種類を定めた符号を用いた機械翻訳を含む説明書生成の処理手順を示す図である。 更新が必要な箇所を示す符号を含む入力ソースファイルを示す図である。 更新が必要な箇所を確認可能な説明書生成の処理手順を示す図である。 コメント形式の例(XMLおよびCSV)を示す図である。 電子ファイル変換システムの概要を示す図である。 英語で書かれた説明書の出力例を示す図である。 日本語で書かれた説明書の出力例を示す図である。 主たる自然言語を示す符号を含む入力ソースファイルの例を示す図である。 ソースファイル構造の別の例を示す図である。
符号の説明
11 入力処理部
12 コメント格納処理部
13 コメント抽出処理部
14 出力処理部
15 翻訳処理部
101 処理対象ソースファイル
102 説明書生成システム
103 第1自然言語で書かれた説明書
104 第2自然言語で書かれた説明書
105 第n自然言語で書かれた説明書

Claims (12)

  1. プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、
    入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、
    使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、
    前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段と、
    を備えることを特徴とするソフトウェア説明書生成システム。
  2. プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号と更に国もしくは地域を示す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、
    入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、
    使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、
    前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段と、
    を備えることを特徴とするソフトウェア説明書生成システム。
  3. 請求項1に記載のソフトウェア説明書生成システムにおいて、更に、
    1つの自然言語の文を他の自然言語の文に翻訳処理する翻訳処理手段を備え、
    前記抽出手段が、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントが存在しない場合に、所定の自然言語の種類に相当する符号がつけられたコメントを前記ソースファイルから抽出し、
    前記出力手段は、出力対象の自然言語のコメントを、翻訳処理手段により所定の自然言語で記述されたコメントを機械翻訳し、使用者によって指定された出力対象の自然言語のソフトウェア説明書を出力する、
    ことを特徴とするソフトウェア説明書生成システム。
  4. 請求項3に記載のソフトウェア説明書生成システムにおいて、
    機械翻訳の際に訳元として用いるコメントの自然言語の種類をデフォルトで示すための、主たる自然言語の種類を示す符号をソースファイル中に含む
    ことを特徴とするソフトウェア説明書生成システム。
  5. 請求項1に記載のソフトウェア説明書生成システムにおいて、
    コメントに付ける符号には、コメントが更新を必要とする旨の符号を含み、
    前記出力手段が、コメントが更新を必要とする旨の符号に基づいて、ソースファイルにおいて更新が必要な箇所もしくは更新が必要な言語についての情報を出力する
    ことを特徴とするソフトウェア説明書生成システム。
  6. 複数の自然言語のソフトウェア説明書を出力するソフトウェア説明書生成システムを構成するためのプログラムであり、
    コンピュータを、
    プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、
    入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、
    使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、
    前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段と、
    して機能させるためのプログラム。
  7. 複数の自然言語のソフトウェア説明書を出力するソフトウェア説明書生成システムを構成するためのプログラムであり、
    コンピュータを、
    プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内においてソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号と更に国もしくは地域を示す符号とを組み合わせた符号が付加されているソースファイルを入力する入力手段と、
    入力されたソースファイルを解釈し、組み合わせた符号を識別してソースコード文と対応づけてコメントをメモリ上に格納する格納手段と、
    使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントのみを抽出する抽出手段と、
    前記抽出されたコメントに基づいて前記ソースコード文に対する出力対象の自然言語のソフトウェア説明書を出力する出力手段と、
    して機能させるためのプログラム。
  8. 請求項6に記載のプログラムにおいて、
    コンピュータを、更に、
    1つの自然言語の文を他の自然言語の文に翻訳処理する翻訳処理手段として機能させるサブプログラムを備え、
    前記抽出手段として機能するサブプログラムは、コンピュータを、使用者によって指定された出力対象の自然言語の種類に相当する符号がつけられたコメントが存在しない場合に、所定の自然言語の種類に相当する符号がつけられたコメントを前記ソースファイルから抽出する手段として機能させ、
    前記出力手段として機能するサブプログラムは、出力対象の自然言語のコメントを、翻訳処理手段により所定の自然言語で記述されたコメントを機械翻訳し、使用者によって指定された出力対象の自然言語のソフトウェア説明書を出力する手段として機能させる、
    ことを特徴とするプログラム。
  9. 請求項9に記載のプログラムにおいて、
    機械翻訳の際に訳元として用いるコメントの自然言語の種類をデフォルトで示すための、主たる自然言語の種類を示す符号をソースファイル中に含む
    ことを特徴とするプログラム。
  10. 請求項6に記載のプログラムにおいて、
    コメントに付ける符号には、コメントが更新を必要とする旨の符号を含み、
    前記出力手段として機能するサブプログラムは、コンピュータを、コメントが更新を必要とする旨の符号に基づいて、ソースファイルにおいて更新が必要な箇所もしくは更新が必要な言語についての情報を出力する手段として機能させる
    ことを特徴とするプログラム。
  11. プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内において、ソースコード中のあるひとつの機能を説明するコメントが複数の自然言語で記述されており、それぞれの自然言語の記述には機能を表す符号と自然言語の種類を表す符号とを組み合わせた符号が付加されていることを特徴とするソースファイルのデータ構造。
  12. プログラミング言語で書かれたソースコード文および前記ソースコード文に対して付与されたコメントを含むソースファイル内において、ソースコード中のあるひとつの機能を説明するコメントが、機能を表す符号に続いて複数の自然言語で記述されており、前記コメントには、記述に用いられている自然言語の種類を示す符号が付加されていることを特徴とするソースファイルのデータ構造。

JP2005218993A 2005-07-28 2005-07-28 複数自然言語のソフトウェア説明書生成システム Pending JP2007034813A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005218993A JP2007034813A (ja) 2005-07-28 2005-07-28 複数自然言語のソフトウェア説明書生成システム
PCT/JP2006/314607 WO2007013418A1 (ja) 2005-07-28 2006-07-25 複数自然言語のソフトウェア説明書生成システム
US11/996,809 US20100146491A1 (en) 2005-07-28 2006-07-25 System for Preparing Software Documentation in Natural Languages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005218993A JP2007034813A (ja) 2005-07-28 2005-07-28 複数自然言語のソフトウェア説明書生成システム

Publications (1)

Publication Number Publication Date
JP2007034813A true JP2007034813A (ja) 2007-02-08

Family

ID=37683314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005218993A Pending JP2007034813A (ja) 2005-07-28 2005-07-28 複数自然言語のソフトウェア説明書生成システム

Country Status (3)

Country Link
US (1) US20100146491A1 (ja)
JP (1) JP2007034813A (ja)
WO (1) WO2007013418A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186311A (ja) * 2007-01-31 2008-08-14 National Institute Of Advanced Industrial & Technology 複数種類の自然言語でコメントが記述されたソースファイルのファイル変換システム
JP2008269517A (ja) * 2007-04-25 2008-11-06 Funai Electric Co Ltd ファイル管理方法
KR101588027B1 (ko) * 2014-10-10 2016-01-25 (주)씽크포비엘 소프트웨어 현지화를 위한 테스트 케이스 생성 장치 및 방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7742833B1 (en) 2006-09-28 2010-06-22 Rockwell Automation Technologies, Inc. Auto discovery of embedded historians in network
US7672740B1 (en) * 2006-09-28 2010-03-02 Rockwell Automation Technologies, Inc. Conditional download of data from embedded historians
US8181157B2 (en) * 2006-09-29 2012-05-15 Rockwell Automation Technologies, Inc. Custom language support for project documentation and editing
US8429626B2 (en) * 2007-02-15 2013-04-23 Microsoft Corporation Packaging content updates
US7930261B2 (en) 2007-09-26 2011-04-19 Rockwell Automation Technologies, Inc. Historians embedded in industrial units
US20110010694A1 (en) * 2008-01-09 2011-01-13 Thranx Investment B.V. Method for Creating Sub-Query Related Memory Stores
US9141393B2 (en) * 2011-11-17 2015-09-22 EnterCalo, Inc. Business content authoring and distribution
US8607193B2 (en) 2012-01-16 2013-12-10 International Business Machines Corporation Tracking stale comments in source code listings
US9468162B2 (en) 2012-08-01 2016-10-18 Rain Bird Corporation Irrigation controller wireless network adapter and networked remote service
US9135244B2 (en) 2012-08-30 2015-09-15 Arria Data2Text Limited Method and apparatus for configurable microplanning
US9405448B2 (en) 2012-08-30 2016-08-02 Arria Data2Text Limited Method and apparatus for annotating a graphical output
US8762133B2 (en) 2012-08-30 2014-06-24 Arria Data2Text Limited Method and apparatus for alert validation
US9355093B2 (en) 2012-08-30 2016-05-31 Arria Data2Text Limited Method and apparatus for referring expression generation
US9336193B2 (en) 2012-08-30 2016-05-10 Arria Data2Text Limited Method and apparatus for updating a previously generated text
US8762134B2 (en) 2012-08-30 2014-06-24 Arria Data2Text Limited Method and apparatus for situational analysis text generation
US9323736B2 (en) 2012-10-05 2016-04-26 Successfactors, Inc. Natural language metric condition alerts generation
US20140100923A1 (en) * 2012-10-05 2014-04-10 Successfactors, Inc. Natural language metric condition alerts orchestration
US9600471B2 (en) 2012-11-02 2017-03-21 Arria Data2Text Limited Method and apparatus for aggregating with information generalization
EP2730159B1 (en) 2012-11-07 2019-03-20 Rain Bird Corporation Irrigation control system
WO2014076525A1 (en) 2012-11-16 2014-05-22 Data2Text Limited Method and apparatus for expressing time in an output text
WO2014076524A1 (en) 2012-11-16 2014-05-22 Data2Text Limited Method and apparatus for spatial descriptions in an output text
WO2014102569A1 (en) 2012-12-27 2014-07-03 Arria Data2Text Limited Method and apparatus for motion description
WO2014102568A1 (en) 2012-12-27 2014-07-03 Arria Data2Text Limited Method and apparatus for motion detection
US10776561B2 (en) 2013-01-15 2020-09-15 Arria Data2Text Limited Method and apparatus for generating a linguistic representation of raw input data
US9946711B2 (en) 2013-08-29 2018-04-17 Arria Data2Text Limited Text generation from correlated alerts
US9519477B2 (en) 2013-09-16 2016-12-13 International Business Machines Corporation Automatic pre-detection of potential coding issues and recommendation for resolution actions
US9396181B1 (en) 2013-09-16 2016-07-19 Arria Data2Text Limited Method, apparatus, and computer program product for user-directed reporting
US9244894B1 (en) * 2013-09-16 2016-01-26 Arria Data2Text Limited Method and apparatus for interactive reports
US9710263B2 (en) * 2013-09-26 2017-07-18 International Business Machines Corporation Understanding computer code with human language assistance
US9038004B2 (en) 2013-10-23 2015-05-19 International Business Machines Corporation Automated integrated circuit design documentation
US9442720B2 (en) * 2014-02-26 2016-09-13 Paypal, Inc. Adding on-the-fly comments to code
US10664558B2 (en) 2014-04-18 2020-05-26 Arria Data2Text Limited Method and apparatus for document planning
US10120661B2 (en) * 2015-07-16 2018-11-06 Sugarcrm Inc. Multi-flavored software execution from a singular code base
CN107526742B (zh) * 2016-06-21 2021-10-08 伊姆西Ip控股有限责任公司 用于处理多语言文本的方法和设备
WO2018013964A1 (en) 2016-07-15 2018-01-18 Rain Bird Corporation Wireless remote irrigation control
US10445432B1 (en) 2016-08-31 2019-10-15 Arria Data2Text Limited Method and apparatus for lightweight multilingual natural language realizer
US10467347B1 (en) 2016-10-31 2019-11-05 Arria Data2Text Limited Method and apparatus for natural language document orchestrator
US10331415B2 (en) * 2016-11-08 2019-06-25 International Business Machines Corporation Formal specification generation using examples
CN108287728A (zh) * 2018-01-15 2018-07-17 武汉斗鱼网络科技有限公司 文档处理方法、文档处理装置及终端设备
US10656938B2 (en) 2018-09-25 2020-05-19 International Business Machines Corporation External comment storage and organization
US10877737B2 (en) 2018-12-26 2020-12-29 Paypal, Inc. Automatic translation of computer code
US11630655B2 (en) * 2019-06-26 2023-04-18 International Business Machines Corporation Merging data structure definitions
US11250128B2 (en) 2020-02-18 2022-02-15 Bank Of America Corporation System and method for detecting source code anomalies
US11176329B2 (en) 2020-02-18 2021-11-16 Bank Of America Corporation Source code compiler using natural language input
US11468223B2 (en) 2020-08-19 2022-10-11 Wells Fargo Bank, N.A. Model documentation generation system
US11893385B2 (en) 2021-02-17 2024-02-06 Open Weaver Inc. Methods and systems for automated software natural language documentation
US11921763B2 (en) 2021-02-24 2024-03-05 Open Weaver Inc. Methods and systems to parse a software component search query to enable multi entity search
US11960492B2 (en) 2021-02-24 2024-04-16 Open Weaver Inc. Methods and systems for display of search item scores and related information for easier search result selection
US11836202B2 (en) 2021-02-24 2023-12-05 Open Weaver Inc. Methods and systems for dynamic search listing ranking of software components
CN112925563B (zh) * 2021-02-24 2022-01-04 南通大学 一种面向代码重用的源代码推荐方法
US11836069B2 (en) 2021-02-24 2023-12-05 Open Weaver Inc. Methods and systems for assessing functional validation of software components comparing source code and feature documentation
US11947530B2 (en) 2021-02-24 2024-04-02 Open Weaver Inc. Methods and systems to automatically generate search queries from software documents to validate software component search engines
US11853745B2 (en) 2021-02-26 2023-12-26 Open Weaver Inc. Methods and systems for automated open source software reuse scoring
US11620127B2 (en) * 2021-05-11 2023-04-04 Sap Se Measuring documentation completeness in multiple languages

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03226834A (ja) * 1990-02-01 1991-10-07 Mitsubishi Electric Corp プログラム図生成ツール
JP2000020525A (ja) * 1998-07-07 2000-01-21 Toshiba Corp プログラム注釈機械翻訳装置とこの装置を動作させるプログラムを記録した記録媒体
JP2003099260A (ja) * 2001-09-26 2003-04-04 Seiko Epson Corp 対話型エキスパートシステム及びプログラム
JP2004280995A (ja) * 2003-03-18 2004-10-07 Matsushita Electric Ind Co Ltd デジタルデータ再生装置
JP2004280585A (ja) * 2003-03-17 2004-10-07 Koyo Seiko Co Ltd ラダープログラム編集装置
JP2005063121A (ja) * 2003-08-11 2005-03-10 Ricoh Co Ltd ソースコード変換装置、及びソースコード変換方法、ソースコード変換プログラム、記憶媒体

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452206A (en) * 1991-09-19 1995-09-19 Pacific Bell Method for generating documentation for computer software
JPH06242935A (ja) * 1993-02-16 1994-09-02 Nec Software Ltd 操作手順書作成システム
US5408667A (en) * 1993-07-19 1995-04-18 Motorola, Inc. Method for unified design documentation
JP3886726B2 (ja) * 1999-02-24 2007-02-28 富士通株式会社 プログラム仕様書作成装置及びプログラム仕様書作成方法並びにプログラム仕様書作成プログラムを記録した記録媒体
JP4291532B2 (ja) * 1999-11-17 2009-07-08 国際連合 言語変換システム
US6951010B2 (en) * 2000-09-19 2005-09-27 Fujitsu Limited Program specification generating system
US6674639B2 (en) * 2001-09-06 2004-01-06 High Tech Computer, Corp. Protective cover with ternary structure
JP2004192330A (ja) * 2002-12-11 2004-07-08 Fuji Photo Film Co Ltd 文字情報表示方法および装置
US20050010895A1 (en) * 2003-07-09 2005-01-13 Mr. Parama Reddappagari Software Specification Processing System

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03226834A (ja) * 1990-02-01 1991-10-07 Mitsubishi Electric Corp プログラム図生成ツール
JP2000020525A (ja) * 1998-07-07 2000-01-21 Toshiba Corp プログラム注釈機械翻訳装置とこの装置を動作させるプログラムを記録した記録媒体
JP2003099260A (ja) * 2001-09-26 2003-04-04 Seiko Epson Corp 対話型エキスパートシステム及びプログラム
JP2004280585A (ja) * 2003-03-17 2004-10-07 Koyo Seiko Co Ltd ラダープログラム編集装置
JP2004280995A (ja) * 2003-03-18 2004-10-07 Matsushita Electric Ind Co Ltd デジタルデータ再生装置
JP2005063121A (ja) * 2003-08-11 2005-03-10 Ricoh Co Ltd ソースコード変換装置、及びソースコード変換方法、ソースコード変換プログラム、記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186311A (ja) * 2007-01-31 2008-08-14 National Institute Of Advanced Industrial & Technology 複数種類の自然言語でコメントが記述されたソースファイルのファイル変換システム
JP2008269517A (ja) * 2007-04-25 2008-11-06 Funai Electric Co Ltd ファイル管理方法
KR101588027B1 (ko) * 2014-10-10 2016-01-25 (주)씽크포비엘 소프트웨어 현지화를 위한 테스트 케이스 생성 장치 및 방법

Also Published As

Publication number Publication date
US20100146491A1 (en) 2010-06-10
WO2007013418A1 (ja) 2007-02-01

Similar Documents

Publication Publication Date Title
JP2007034813A (ja) 複数自然言語のソフトウェア説明書生成システム
KR100661393B1 (ko) 웹 프로그래밍 환경을 응용한 웹사이트 관리 시스템 및방법
JP4396994B2 (ja) リソース・ファイルの翻訳検証方法、装置、およびプログラム
US7992088B2 (en) Method and system for copy and paste technology for stylesheet editing
US10002116B2 (en) System and method for citation processing presentation, and transport
US8468494B2 (en) In-line editor
US20140006913A1 (en) Visual template extraction
US9817887B2 (en) Universal text representation with import/export support for various document formats
JP2005339566A (ja) コンテンツを開始テンプレートとターゲットテンプレートとの間でマップするための方法およびシステム
US20030004704A1 (en) System and method of spreadsheet-based string localization
US20040237036A1 (en) Methods and systems for generating supporting files for commands
JP4724387B2 (ja) プログラム変換プログラム、プログラム変換装置およびプログラム変換方法
EP1783628A1 (en) Document processing method and device
EP1780645A1 (en) Document processing method and device
JP2005157720A (ja) 国際対応アプリケーションソフトウェアおよびその開発方法
JPH08221417A (ja) 構造化文書の新旧対照編集装置
JP5994150B2 (ja) 文書作成方法、文書作成装置及び文書作成プログラム
JP6121126B2 (ja) 帳票出力装置、帳票出力方法、および、プログラム
JP2008186311A (ja) 複数種類の自然言語でコメントが記述されたソースファイルのファイル変換システム
Mittelbach et al. LATEX Tagged PDF Feasibility Evaluation
JP2006285754A (ja) プログラムソースコード自動生成装置
JP2008204446A (ja) ソースファイル編集システム
JP2575665B2 (ja) 論理図概要記述変換処理方式
JP2006268777A (ja) ソースコード管理システム、ソースコード管理方法、およびソースコード管理プログラム
JP2007164289A (ja) 翻訳結果リスト出力システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070314

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101102