(57)【特許請求の範囲】
【請求項１】
コンピュータに，
変更前のソフトウエアに関する複数の文書それぞれを識別する識別情報と，前記ソフトウエアにおける関数の記述部分に含まれる属性情報とを関連付けた第２関連情報から，識別情報毎に全ての属性情報を抽出し，
前記属性情報の上位概念である分類情報と，前記分類情報に対応する属性情報とを関連付けた第３関連情報に基づき，前記第２関連情報から抽出した属性情報と同じ前記分類情報に対応する属性情報を識別情報毎に抽出し，
前記第３関連情報に基づき抽出した属性情報と，前記第３関連情報に基づき抽出した属性情報に対応する識別情報とを関連付けることにより第１関連情報を作成し，
変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出し，
前記第１関連情報を記憶した記憶部を参照し，抽出した前記属性情報と同じ種別の属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する，
ことを実行させることを特徴とする推定プログラム。
【請求項２】
請求項１において，
前記属性情報は，アノテーションであり，
前記関数の記述部分に含まれる属性情報を抽出する処理の前に，前記ソフトウエアの変更前のソースコードをコンパイルすることにより，前記コンパイルされたソースコードに記述された文字情報のうち，前記コンパイルされたソースコードに記述されたアノテーションと関連する文字情報を，前記記述されたアノテーションと関連付けて前記記憶部に記憶された識別情報で識別される文書として出力する，
ことをコンピュータに実行させることを特徴とする推定プログラム。
【請求項３】
請求項１において，
前記関数の記述部分に含まれる属性情報を抽出する処理は，前記第１関連情報と，前記第２関連情報との差分を抽出する，
ことを特徴とする推定プログラム。
【請求項４】
請求項３において，
前記第１関連情報を作成する処理は，所定の関連性を有する複数の分類情報を関連付けた情報に基づき，前記第２関連情報から抽出した属性情報に対応する分類情報が，前記ソフトウエアの変更に伴って前記第３関連情報に追加された分類情報と関連している場合，前記第２関連情報から抽出した属性情報に対応する分類情報と，前記追加された分類情報とに対応する前記第１関連情報を作成する，
ことを特徴とする推定プログラム。
【請求項５】
請求項１において，
前記複数の文書それぞれの識別情報と関連付けて記憶される前記属性情報のそれぞれは，前記文書の記述に対応する前記ソフトウエアの機能に基づき決定される，
ことを特徴とする推定プログラム。
【請求項６】
変更前のソフトウエアに関する複数の文書それぞれを識別する識別情報と，前記ソフトウエアにおける関数の記述部分に含まれる属性情報とを関連付けた第２関連情報から，識別情報毎に全ての属性情報を抽出し，前記属性情報の上位概念である分類情報と，前記分類情報に対応する属性情報とを関連付けた第３関連情報に基づき，前記第２関連情報から抽出した属性情報と同じ前記分類情報に対応する属性情報を識別情報毎に抽出し，前記第３関連情報に基づき抽出した属性情報と，前記第３関連情報に基づき抽出した属性情報に対応する識別情報とを関連付けることにより第１関連情報を作成し，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出する抽出部と，
前記第１関連情報を記憶した記憶部を参照し，抽出した前記属性情報と同じ種別の属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する出力部と，を有する，
ことを特徴とする推定装置。
【請求項７】
コンピュータが，変更前のソフトウエアに関する複数の文書それぞれを識別する識別情報と，前記ソフトウエアにおける関数の記述部分に含まれる属性情報とを関連付けた第２関連情報から，識別情報毎に全ての属性情報を抽出し，
コンピュータが，前記属性情報の上位概念である分類情報と，前記分類情報に対応する属性情報とを関連付けた第３関連情報に基づき，前記第２関連情報から抽出した属性情報と同じ前記分類情報に対応する属性情報を識別情報毎に抽出し，
コンピュータが，前記第３関連情報に基づき抽出した属性情報と，前記第３関連情報に基づき抽出した属性情報に対応する識別情報とを関連付けることにより第１関連情報を作成し，
コンピュータが，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出し，
コンピュータが，前記第１関連情報を記憶した記憶部を参照し，抽出した前記属性情報と同じ種別の属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する，
ことを特徴とする推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，推定プログラム，推定装置及び推定方法に関する。
【背景技術】
【０００２】
例えば，コンピュータで稼働するソフトウエア製品（以下，単にソフトウエアとも呼ぶ）を販売等により利用者に提供する場合，そのソフトウエアの説明文書（以下，マニュアルまたは文書とも呼ぶ）が併せて提供される。このマニュアルは，例えば，ソフトウエアの操作方法やインストール方法等が記載されたものであり，一般的に，ソフトウエアを利用する利用者のレベルに合わせる形で作成されている。
【０００３】
上記のようなソフトウエアにおいて，バージョンアップ（機能追加や機能拡張）等が行われた場合，マニュアル作成者は，対応するマニュアルの変更を行う。そして，変更されたマニュアルは，バージョンアップ等されたソフトウエアとともに利用者に提供される（例えば，特許文献１乃至３参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−３３４２９１号公報
【特許文献２】特開２００２−１６９６９２号公報
【特許文献３】特開２０１０−１５２６６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のようなマニュアルは，例えば，ソフトウエアを利用する利用者の立場（例えば，管理者，ユーザ等）によって，複数のマニュアルに分かれて作成される場合がある。また，このマニュアルは，利用者が行う作業の内容毎に，複数のマニュアルに分かれて作成される場合がある（例えば，操作マニュアル，インストールマニュアル等）。
【０００６】
ここで，ソフトウエアのバージョンアップ等が行われた場合，マニュアル作成者は，そのバージョンアップ等の内容に基づき，変更すべきマニュアルを特定する必要がある。しかしながら，そのソフトウエアに関するマニュアルの数が膨大である場合，マニュアル作成者は，変更すべきマニュアルを特定するために，多大な時間を要することになる。また，マニュアル作成者は，変更すべきマニュアルの一部を見落とす可能性がある。
【０００７】
そこで，一つの側面では，ソフトウエアの変更に伴うマニュアルの変更箇所の検出を支援する推定プログラム，推定装置及び推定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
実施の形態の一つの態様によれば，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出し，
前記ソフトウエアに関する複数の文書それぞれを識別する識別情報と，属性情報とを関連付けた第１関連情報を記憶した記憶部を参照し，前記抽出した属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する。
【発明の効果】
【０００９】
一つの側面によれば，ソフトウエアの変更に伴うマニュアルの変更箇所の検出を支援する。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの全体構成を示す図である。
【図２】ソースコードの構造とマニュアルの構造を説明する図である。
【図３】情報処理システムのハードウエア構成を示す図である。
【図４】図３の物理マシンの機能ブロック図である。
【図５】アノテーションの機能の具体例を説明する図である。
【図６】図３の物理マシンの機能ブロック図である。
【図７】第１の実施の形態における推定処理の概略を説明するフローチャート図である。
【図８】第１の実施の形態における推定処理の概略を説明する図である。
【図９】第１の実施の形態における推定処理の概略を説明する図である。
【図１０】第１の実施の形態における推定処理の概略を説明する図である。
【図１１】第１の実施の形態における推定処理の概略を説明する図である。
【図１２】第１の実施の形態における推定処理の概略を説明する図である。
【図１３】第１の実施の形態における推定処理の詳細を説明するフローチャート図である。
【図１４】第１の実施の形態における推定処理の詳細を説明するフローチャート図である。
【図１５】第１の実施の形態における推定処理の詳細を説明する図である。
【図１６】第１の実施の形態における推定処理の詳細を説明する図である。
【図１７】第１の実施の形態における推定処理の詳細を説明する図である。
【図１８】第１の実施の形態における推定処理の詳細を説明する図である。
【図１９】第１の実施の形態における推定処理の詳細を説明する図である。
【図２０】文書目次構造の具体例を説明する図である。
【図２１】第１の実施の形態における推定処理の変形例を説明するフローチャート図である。
【図２２】第１の実施の形態における推定処理の変形例を説明する図である。
【図２３】第１の実施の形態における推定処理の変形例を説明する図である。
【図２４】第１の実施の形態における推定処理の変形例を説明する図である。
【図２５】第１の実施の形態における推定処理の変形例を説明する図である。
【図２６】第２の実施の形態における推定処理を説明するフローチャート図である。
【図２７】第２の実施の形態における推定処理を説明する図である。
【図２８】第２の実施の形態における推定処理を説明する図である。
【図２９】第２の実施の形態における推定処理を説明する図である。
【図３０】第２の実施の形態における推定処理を説明する図である。
【図３１】第２の実施の形態における推定処理を説明する図である。
【図３２】第２の実施の形態における推定処理を説明する図である。
【発明を実施するための形態】
【００１１】
［情報処理システムの構成］
図１は，情報処理システムの全体構成を示す図である。図１に示す情報処理システム１００には，例えば，開発部門の作業者端末１（以下，単に作業者端末１とも呼ぶ）と，物理マシン２，３（以下，コンピュータ２，３とも呼ぶ）と，マニュアル部門の作業者端末４（以下，単に作業者端末４とも呼ぶ）とが設けられる。
【００１２】
作業者端末１は，例えば，開発部門に属する作業者（以下，ソースコード作成者とも呼ぶ）がソースコードの作成や変更を行うための端末である。そして，ソースコード作成者は，例えば，作成等したソースコードを物理マシン２に送信する。
【００１３】
物理マシン２は，図１に示す例では，ソースコード作成者が作業者端末１で作成等したソースコードを記憶する記憶媒体２１を有する。また，物理マシン３は，図１に示す例では，マニュアル部門に属する作業者（以下，マニュアル作成者とも呼ぶ）が作業者端末４で作成等したマニュアルを記憶する記憶媒体３１を有する。
【００１４】
作業者端末4は，例えば，マニュアル作成者がマニュアルを作成するための端末である。具体的に，マニュアル作成者は，ソースコードの作成等があった場合に，物理マシン２の記憶媒体２１にアクセスし，作成等されたソースコードの内容を確認する。そして，マニュアル作成者は，作成等されたソースコードの内容を反映させる形で，記憶媒体３１に記憶されたマニュアルの作成等を行う。これにより，マニュアル作成者は，ソースコード作成者が作成等したソースコード（例えば，記憶媒体２１に記憶されたソースコードのうち，最新のソースコード）の内容を反映させたマニュアルを作成することができる。
【００１５】
なお，図１の例において，物理マシン２及び物理マシン３は，別の物理マシンとして説明しているが，単一の物理マシンが物理マシン２及び物理マシン３の機能を担うものであってもよい。また、図1の例においては，作業者端末１が３台設けられており，作業者端末４が２台設けられているが，これ以外の数の作業者端末が設けられているものであってもよい。
【００１６】
［ソースコードの構造とマニュアルの構造］
図２は，ソースコードの構造とマニュアルの構造を説明する図である。図２（Ａ）は，ソースコードの構造を示す具体例であり，図２（Ｂ）は，図２（Ａ）に示すソースコードに関するマニュアルの構造を示す具体例である。
【００１７】
図２（Ａ）に示すソースコードは，ソースコードＡとソースコードＢから構成されている。そして，ソースコードＡは，機能Ｘに関するソースコードであり，ソースコードＡ−１及びソースコードＡ−２から構成されている。また，ソースコードＢは，機能Ｙに関するソースコードであり，ソースコードＢ−１から構成されている。さらに，ソースコードＡ−１，ソースコードＡ−２及びソースコードＢ−１は，サブコンポーネント１（以下，サブコンポ１），サブコンポーネント２（以下，サブコンポ２）及びサブコンポ２に対応付けられたサブコンポーネント３（以下，サブコンポ３）を呼び出す。
【００１８】
一方，図２（Ｂ）に示すマニュアルは，管理者マニュアルとユーザマニュアルから構成されている。そして，管理者マニュアルは，機能Ｘ及び機能Ｙに関するマニュアルから構成されている。また，ユーザマニュアルは，機能１及び機能２に関するマニュアルから構成されており，機能１及び機能２に関するマニュアルには，それぞれ機能Ｘ及び機能Ｙに関するマニュアルが含まれている。すなわち，ソースコードに関するマニュアルは，利用者の利便性等の観点から作成されるため，図２に示すように，対応するソースコードの構成と異なる形で作成される場合がある。具体的に，図２（Ａ）に示すように，サブコンポ３（図２（Ａ）の網掛け部分）に変更があった場合，マニュアル作成者は，例えば，現在の管理者マニュアル及びユーザマニュアルを参照する。そして，マニュアル作成者は，変更があったサブコンポ３の機能に対応する記述がある部分を特定する。例えば，マニュアル作成者は，図２（Ｂ）に示すように，管理者マニュアルの機能Ｙに関するマニュアル及びユーザマニュアルの機能１に含まれる機能Ｙに関するマニュアル（図２（Ｂ）の網掛け部分）を，変更すべきマニュアルとして推定する。
【００１９】
しかしながら，変更されたソフトウエアに関するマニュアルの数が膨大である場合，マニュアル作成者は，変更すべきマニュアルを特定するために多大な時間を要する場合がある。また，例えば，変更すべきマニュアルが複数存在する場合，マニュアル作成者は，変更すべきマニュアルの一部を見落とす可能性がある。
【００２０】
そこで，本実施の形態では，物理マシン２は，ソースコードの変更箇所が存在する関数に含まれる属性情報を抽出する。そして，物理マシン２は，抽出した属性情報と関連付けて記憶された識別情報で識別される文書を，変更すべき文書と推定して出力する。これにより，物理マシン２は，マニュアル作成者に対して，ソフトウエアの変更に応じて変更を要する文書の検出を支援することができる。
【００２１】
［情報処理システムのハードウエア構成］
次に，情報処理システム１００の構成について説明する。図３は，情報処理システムのハードウエア構成を示す図である。
【００２２】
物理マシン２は，プロセッサであるＣＰＵ２０１と，メモリ２０２と，作業者端末１とアクセス可能な外部インターフェース（Ｉ／Ｏユニット）２０３と，記憶媒体２０４とを有する。各部は，バス２０５を介して互いに接続される。記憶媒体２０４は，例えば，記憶媒体２０４内のプログラム格納領域（図示しない）に，ソースコードの変更に伴って変更すべきマニュアルを推定する処理（以下，推定処理とも呼ぶ）等を行うためのプログラム２１０（以下，推定プログラム２１０とも呼ぶ）を記憶する。ＣＰＵ２０１は，図３に示すように，プログラム２１０の実行時に，プログラム２１０を記憶媒体２０４からメモリ２０２にロードし，プログラム２１０と協働して推定処理等を行う。また，記憶媒体２０４は，例えば，推定処理等を行う際に用いられる情報を記憶する情報格納領域２３０を有する。なお，情報格納領域２３０は，例えば，図１における記憶媒体２１に対応する。
【００２３】
また，物理マシン３は，プロセッサであるＣＰＵ３０１と，メモリ３０２と，作業者端末４とアクセス可能な外部インターフェース（Ｉ／Ｏユニット）３０３と，記憶媒体３０４とを有する。各部は，バス３０５を介して互いに接続される。記憶媒体３０４は，例えば，記憶媒体３０４内のプログラム格納領域（図示しない）に，推定処理等を行うためのプログラム３１０を記憶する。ＣＰＵ３０１は，図３に示すように，プログラム３１０の実行時に，プログラム３１０を記憶媒体３０４からメモリ３０２にロードし，プログラム３１０と協働して推定処理を行う。また，記憶媒体３０４は，例えば，推定処理等を行う際に用いられる情報を記憶する情報格納領域３３０を有する。なお，情報格納領域３３０は，例えば，図１における記憶媒体３１に対応する。
【００２４】
[物理マシンのソフトウエア構成]
図４は，図３の物理マシンの機能ブロック図である。物理マシン２のＣＰＵ２０１は，プログラム２１０と協働することにより，例えば，情報記憶部２１１と，属性抽出部２１２（以下，抽出部２１２とも呼ぶ）と，文書推定部２１３と，情報出力部２１４（以下，出力部２１４とも呼ぶ）として動作する。また，情報格納領域２３０（以下，記憶部２３０とも呼ぶ）には，例えば，機能関連情報２３１と，文書関連情報２３２（以下，第１関連情報２３２とも呼ぶ）と，タグ関連情報２３３（以下，第３関連情報とも呼ぶ）と，推定結果情報２３４と，変換情報２３５と，関連分類情報２３６とが記憶されている。なお，以下，情報記憶部２１１，属性抽出部２１２，文書推定部２１３及び情報出力部２１４を合わせて処理部２１０とも呼ぶ。
【００２５】
情報記憶部２１１は，例えば，ソフトウエアのソースコードの変更が行われる前に，機能関連情報２３１及び文書関連情報２３２を情報格納領域２３０に記憶する。機能関連情報２３１は，例えば，ソースコードに記述されている関数の機能を示す機能情報と，ソースコードに記述されている関数の記述部分に含まれる属性情報とを関連付けた情報である。また，文書関連情報２３２は，例えば，変更後のソフトウエアに関する複数のマニュアルそれぞれを識別する識別情報（以下，文書識別情報とも呼ぶ）と，属性情報とを関連付けた情報である。すなわち，文書関連情報２３２は，マニュアルに関する情報を管理する情報である。これにより，ソースコード作成者は，ソースコードの変更を行う際に，機能関連情報２３１を参照し，変更対象のソースコード（関数）の機能に基づき決定される属性情報を，ソースコードに記述することが可能になる。また，マニュアル作成者は，マニュアルの変更を行う際に，文書関連情報２３２を参照し，作成等されたソースコードに記述された属性情報に対応する識別情報を取得することが可能になる。そして，マニュアル作成者は，取得した識別情報が識別するマニュアルが，ソースコードの変更に伴って変更すべきマニュアルとして推定することが可能になる。
【００２６】
なお，機能関連情報２３１及び文書関連情報２３２は，例えば，マニュアル作成者がソースコードの内容に基づいて人手で作成されるものであってよい。あるいは，機能関連情報２３１及び文書関連情報２３２は，ソースコードの内容や，分解（ライブラリ化）されたマニュアルの要素に基づいて，コンピュータの処理により作成されるものであってよい。機能関連情報２３１及び文書関連情報２３２の具体例については後述する。以下，ソフトウエアの変更が行われる場合において，ソフトウエアの変更前の状態に対応する文書関連情報２３２を変更前文書関連情報２３２Ａ（以下，第２関連情報とも呼ぶ）とも呼び，ソフトウエアの変更後の状態に対応する文書関連情報２３２を変更後文書関連情報２３２Ｂ（以下，第１関連情報とも呼ぶ）とも呼ぶ。また，情報格納領域２３０には，変更前文書関連情報２３２Ａ及び変更後文書関連情報２３２Ｂの両方が記憶されているものとする。以下，識別情報及び属性情報の詳細を説明する。
【００２７】
［識別情報及び属性情報の詳細］
識別情報は，ソフトウエアに関するマニュアルが複数存在する場合，これらのマニュアルそれぞれを識別する情報である。具体的に，識別情報は，例えば，マニュアルの名称（管理者マニュアル等）であってよい。また，識別情報は，例えば，マニュアル毎に割り振られた番号によるものであってもよい。
【００２８】
属性情報は，例えば，ソースコードに含まれるアノテーションからなるものであってよい。アノテーションは，プログラミング言語であるＪａｖａ(登録商標)のソースコードにおいて，ソースコードに登場する要素（クラスやメソッド）の注釈としてソースコードに記述するものである。ソースコードの開発者は，アノテーションを含むソースコードをコンパイルすることによって，アノテーションをソースコードの一部として機能させることが可能になる。具体的に，ソースコード作成者は，例えば，ソースコードの作成時において，ソースコードに含める必要がある機能をアノテーションと対応させて定義する。そして，ソースコード作成者は，ソースコード内の必要な位置にアノテーションを記述する。これにより，ソースコードに記述されたアノテーションは，ソースコードのコンパイル時において，アノテーションと対応させて予め定義された機能を発揮することが可能になる。
【００２９】
［アノテーションの具体例］
図５は，アノテーションの機能の具体例を説明する図である。ソースコード作成者は，ソースコードにアノテーションを含めることにより，例えば，コンパイル時に，アノテーションが含まれるソースコードとアノテーションに依存するソースコードとを動的に結合することができる。具体的に，図５に示す例では，予め定義されたアノテーションである「＠Ｓｙｓｔｅｍ」と「＠Ｌｏｇｉｎ」とをソースコードに記述したものである。そして，このソースコードをコンパイルした場合，ソースコードのアノテーション「＠Ｓｙｓｔｅｍ」の部分に，共通ライブラリ内に定義された，「＠Ｓｙｓｔｅｍ」に対応するライブラリＡの内容が動的に結合される。同様に，ソースコードのコンパイル時において，ソースコードのアノテーション「＠Ｌｏｇｉｎ」の部分に，共通ライブラリ内に定義された，「＠Ｌｏｇｉｎ」に対応するライブラリＢの内容が動的に結合される。すなわち，図５に示すように，ソースコード作成者は，共通ライブラリにライブラリＡ及びＢを格納した上で，各ソースコードのライブラリＡ及びＢの内容を記述する必要がある位置にアノテーションを記述する。これにより，ソースコード作成者は，各ソースコードにライブラリＡ及びＢを記述した場合と同じ効果を得ることが可能になる。そのため，ソースコード作成者は，例えば，ライブラリＡ及びＢの内容が繰り返し登場する場合であっても，ライブラリＡ及びＢの内容をソースコードに毎回記述する必要がなくなる。以下，本実施の形態におけるアノテーションは，図５で説明したアノテーションと同様の機能を発揮するものとして説明を行う。
【００３０】
図４に戻り，属性抽出部２１２は，例えば，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出する。具体的に，属性抽出部２１２は，例えば，ソフトウエアのソースコードの変更があった場合に，変更前文書関連情報２３２Ａ及び変更後文書関連情報２３２Ｂを比較して，それぞれの情報に含まれる属性情報の差分を抽出する。属性情報の抽出の具体例については後述する。また，属性抽出部２１２は，例えば，変更前のソースコードと変更後のソースコードとを比較し，それぞれのソースコードに含まれる属性情報の差分を抽出するものであってもよい。
【００３１】
文書推定部２１３は，例えば，変更後文書関連情報２３２Ｂを参照して，属性抽出部２１２が抽出した属性情報と関連付けて情報格納領域２３０に記憶された識別情報で識別される文書が，変更に応じた変更対象の文書であると推定する。
【００３２】
情報出力部２１４は，例えば，文書推定部２１３による変更対象の文書の推定結果を推定結果情報２３４として出力する。これにより，マニュアル作成者は，ソースコードの変更があった場合に，変更する必要がある文書を推定することが可能になる。そのため，マニュアル作成者は，例えば，変更を行う必要がないマニュアルを予め排除した形で，マニュアルの作成を開始することが可能になる。そして，マニュアル作成者は，例えば，出力された推定結果情報２３４に基づき，変更する必要があるマニュアル部品３３１の変更を行う。マニュアル部品３３１については後述する。なお，情報出力部２１４は，例えば，出力した推定結果情報２３４を，推定結果情報３３４として物理マシン３の情報格納領域３３０に記憶するものであってよい。これにより，マニュアル作成者は，物理マシン３にアクセスするだけで，文書推定部２１３による推定結果を取得することが可能になる。
【００３３】
タグ関連情報２３３は，例えば，属性情報と，属性情報の上位概念である分類タグ（以下，分類情報とも呼ぶ）とを関連付けた情報である。分類タグは，属性情報の機能の種別毎に，または属性情報の機能を利用する利用者の種別毎に，属性情報を分類するための情報である。具体的に，分類タグは，例えば，各属性情報に対応する機能が管理者用の機能であるかユーザ用の機能であるかによって，属性情報を分類するための情報である。タグ関連情報２３３の具体例については後述する。
【００３４】
変換情報２３５は，マニュアルに関する情報が後述する文書目次構造３３２によって管理されている場合に，文書目次構造３３２に含まれる目次情報と属性情報とを変換するための情報である。文書目次構造３３２及び変換情報２３５の具体例については後述する。
【００３５】
関連分類情報２３６は，所定の関連性を有する複数の分類タグを関連付けた情報である。所定の関連性は，例えば，タグ関連情報２３３によって分類タグに関連付けられた属性情報の機能の種別が同一であること，または分類タグに関連付けられた属性情報の機能の種別を利用する利用者の種別が同一であることである。関連分類情報２３６の具体例については後述する。
【００３６】
図６は，図３の物理マシンの機能ブロック図である。物理マシン３のＣＰＵ３０１は，プログラム３１０と協働することにより，例えば，情報記憶部３１１と，目次抽出部３１２と，文書推定部３１３と，情報出力部３１４として動作する。また，情報格納領域３３０（以下，記憶部３３０とも呼ぶ）には，例えば，マニュアル部品３３１と，文書目次構造３３２と，文書タグ関連情報３３３と，推定結果情報３３４とが記憶されている。なお，以下，情報記憶部３１１，目次抽出部３１２，文書推定部３１３及び情報出力部３１４を合わせて処理部３１０とも呼ぶ。
【００３７】
情報記憶部３１１は，例えば，ソースコードに関するマニュアルの一部を構成するマニュアル部品３３１を情報格納領域３３０に記憶する。マニュアル部品３３１は，例えば，マニュアルの作成が行われる前に，マニュアル作成部が予め作成するものであってよい。なお，マニュアル部品３３１は，例えば，マニュアル作成者が作成する文書と，ソースコードに記述されたコメント（ソースコード作成者が記述したコメント，以下，文字情報とも呼ぶ）とに基づいて作成されるものであってよい。
【００３８】
また，情報記憶部３１１は，例えば，マニュアルに含まれるマニュアル部品３３１に関する情報を管理するための文書目次構造３３２を記憶する。文書目次構造３３２は，アノテーションを利用することなく，マニュアルに関する情報を管理する情報である。すなわち，図１に示す例において，物理マシン２はソースコードを管理するためのマシンであり，物理マシン３はマニュアルを管理するためのマシンである。そのため，物理マシン３は，文書関連情報２３２によってマニュアルに関する情報を管理する物理マシン２と異なり，例えば，文書目次構造３３２によってマニュアルに関する情報を管理するものであってもよい。そして，この場合，物理マシン３は，例えば，文書目次構造３３２に含まれる情報を物理マシン２が認識できる情報に変換する。これにより，物理マシン２は，物理マシン３が文書目次構造３３２によってマニュアルに関する情報を管理する場合であっても，推定処理を実行することが可能になる。文書目次構造３３２の詳細は後述する。なお，後述する目次抽出部３１２，文書推定部３１３及び情報出力部３１４は，物理マシン３が文書目次構造３３２によってマニュアルに関する情報を管理する場合に，推定処理の一部を行うための機能である。
【００３９】
さらに，情報記憶部３１１は，例えば，マニュアル部品３３１を識別する目次情報（文書目次構造３３２に含まれる情報）と，目次情報の上位概念である文書分類タグとを関連付けた文書タグ関連情報３３３を情報格納領域３３０に記憶する。文書分類タグは，目次情報の上位概念であり，例えば，各目次情報に対応する機能が管理者用の機能であるかユーザ用の機能であるかによって，目次情報を分類するための情報である。すなわち，文書タグ関連情報３３３は，物理マシン３が文書目次構造３３２に基づいてマニュアルに関する情報を管理する場合に，タグ関連情報２３３に代えて用いられる情報である。文書タグ関連情報３３３の具体例については後述する。
【００４０】
目次抽出部３１２は，文書タグ関連情報３３３を参照して，文書目次構造３３２に含まれる目次情報を文書分類タグに変換する。
【００４１】
文書推定部３１３は，例えば，文書目次構造３３２を参照して，ソースコードの変更に伴う変更対象の文書を推定する。また，情報出力部３１４は，例えば，物理マシン２の情報出力部２１４と同様に，文書推定部３１３による変更対象の文書の推定結果を推定結果情報３３４として出力する。
【００４２】
［第１の実施の形態の概略］
次に，推定処理の概略について説明する。図７は，第１の実施の形態における推定処理の概略を説明するフローチャート図である。また，図８から図１２は，第１の実施の形態における推定処理の概略を説明する図である。図８から図１２を参照しながら図７に示す推定処理の説明を行う。なお，図８については，図１と異なる点のみ説明を行う。
【００４３】
図７及び図８に示すように，物理マシン２は，変更後のソフトウエアに関する複数のマニュアルをそれぞれ識別する識別情報と，属性情報とを関連付けた文書関連情報２３２を記憶部２３０に記憶する（Ｓ１０）。具体的に，物理マシン２は，例えば，ソースコードの変更が行われる毎に，そのソースコードの変更内容を含む変更後文書関連情報２３２Ｂを記憶部２３０に記憶する。そして，物理マシン２は，この場合，情報格納領域２３０に記憶されていた変更後文書関連情報２３２Ｂを変更前文書関連情報２３２Ａとして引き続き記憶する。
【００４４】
また，物理マシン２（処理部２１０）は，推定処理の実行タイミングになるまで待機する（Ｓ１のＮＯ）。推定処理の実行タイミングは，例えば，ソースコード作成者が変更後文書関連情報２３２Ｂの内容に基づいて，属性情報を含める形でソースコードを変更した後等，変更後のソフトウエアに関するマニュアルを変更するタイミングであってよい。そして，推定処理の実行タイミングになった場合（Ｓ１のＹＥＳ），物理マシン２（処理部２１０）は，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出する（Ｓ２）。具体的に，物理マシン２は，例えば，情報記憶部２１１が記憶した変更前文書関連情報２３２Ａと，変更後文書関連情報２３２Ｂとを比較して，それぞれの情報に含まれる属性情報の差分を抽出するものであってよい。また，物理マシン２は，例えば，変更前のソースコードと変更後のソースコードとを比較することにより，それぞれのソースコードに含まれる属性情報の差分を抽出するものであってもよい。
【００４５】
次に，物理マシン２（処理部２１０）は，例えば，変更後文書関連情報２３２Ｂを参照して，属性抽出部２１２が抽出した属性情報と関連付けて情報格納領域２３０に記憶された識別情報で識別されるマニュアルが，変更に応じた変更対象のマニュアルであると推定する（Ｓ３）。これにより，マニュアル作成者は，ソースコードの変更があった場合に，変更する必要がある文書を推定することが可能になる。そして，物理マシン２（処理部２１０）は，変更対象の文書の推定結果に関する情報を出力する（Ｓ４）。具体的に，物理マシン２は，例えば，推定結果を物理マシン３の記憶媒体３１に出力する。この場合，マニュアル作成者は，記憶媒体３１を参照することにより，物理マシン２から出力された推定結果に基づいてマニュアルの変更を行うことが可能になる。また，物理マシン２は，例えば，推定結果を記憶媒体２１に出力するものであってもよい。
【００４６】
なお，処理部２１０は，例えば，所定のタイミング（例えば，１日１回）で記憶媒体２１を確認し，ソースコードの変更があったことを検出した場合に起動するものであってよい。以下，第１の実施の形態の概略に関する具体例を説明する。
【００４７】
図９は，機能関連情報２３１の具体例を説明する図である。図９に示す機能関連情報２３１は，ソースコードに記述される関数の機能を示す「機能ＩＤ」と，属性情報を示す「アノテーション」とを項目として有する。具体的に，図９に示す例では，「識別ＩＤ」が１である情報には，「機能」として「ＳＴＡＲＴ」が設定され，「アノテーション」として「＠ＣＭＤ  ＠ＭＧＲ  ＠ＳＴＡＲＴ」が設定されている。すなわち，図９に示す機能関連情報２３１は，例えば，「機能ＩＤ」である「ＳＴＡＲＴ」の機能に対応するソースコードに，「アノテーション」である「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＳＴＡＲＴ」を記述する旨を示している。図９のその他の情報については説明を省略する。なお，この機能関連情報２３１は，例えば，ソースコードの変更を行う前に，ソースコード作成者によって設定される。すなわち，ソースコード作成者は，ソースコードに作成される各機能に対応させて記述すべきアノテーションを予め決定し，決定した情報に基づいてソースコードの作成（変更）を行う。なお，機能関連情報２３１は，ソースコードの作成後，ソースコードに記述されたアノテーションの情報に基づいて作成されるものであってもよい。
【００４８】
そして，図１０は，文書関連情報２３２の具体例を説明する図である。図１０に示す文書関連情報２３２は，図９で説明した「アノテーション」と，文書を識別する「文書識別情報」とを項目として有する。そして，図１０に示す文書関連情報２３２には，「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＡＡＡ」を含む上位概念のアノテーションに関する情報と，「＠ＳＴＡＲＴ」，「＠ＥＮＤ」及び「＠ＢＲＥＡＫ」を含む下位概念のアノテーションに関する情報とが対応する形で設定されている。
【００４９】
具体的に，図１０に示す例では，「識別ＩＤ」が１０である情報には，「アノテーション」として「＠ＣＭＤ」が設定され，「文書識別情報」として「操作マニュアル」が設定されている。そして，この「識別ＩＤ」が１０である情報には，「＠ＣＭＤ」の下位概念に該当する情報として，「識別ＩＤ」が１１，１２，１３である情報が対応している。さらに，例えば，「識別ＩＤ」が１１である情報には，「アノテーション」として「＠ＳＴＡＲＴ」が設定され，「文書識別情報」として「リファレンス」が設定されている。図１０のその他の情報についての説明は省略する。この文書関連情報２３２（変更後文書関連情報２３２Ｂ）は，例えば，ソースコードの変更に伴ってマニュアルの変更が行われる前に，ソースコード作成者等によって作成されるものである。そのため，マニュアル作成者は，文書関連情報２３２を参照することにより，ソースコード作成者によって変更されるソースコードの内容と整合性を合わせる形で，マニュアルの変更を行うことが可能になる。また，文書関連情報２３２は，図１０に示すように，上位概念のアノテーションと下位概念のアノテーションとを区別して管理している。そのため，例えば，上位概念のアノテーション（例えば，「＠ＣＭＤ」等）をマニュアル自体に対応させ，下位概念のアノテーション（例えば，「＠ＳＴＡＲＴ」等）を各マニュアルに含まれるリファレンスに対応させることが可能になる。
【００５０】
次に，図１１は，ソースコードの具体例である。図１１に示す例において，「ｐｕｂｌｉｃ  ｓｔａｒｔＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，図９における「ＳＴＡＲＴ」の機能を実現するソースコードである。また，図１１に示す例において，「ｐｕｂｌｉｃ  ｅｎｄＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，図９における「ＥＮＤ」の機能を実現するソースコードである。さらに，図１１に示す例において，「ｐｕｂｌｉｃ  ｂｒｅａｋＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，図９における「ＢＲＥＡＫ」の機能を実現するソースコードである。
【００５１】
そして，「ＳＴＡＲＴ」の機能に対応する部分には，図９に示す機能関連情報２３１に従って，アノテーションとして「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＳＴＡＲＴ」が記述されている。同様に，「ＥＮＤ」の機能に対応する部分には，アノテーションとして「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＥＮＤ」が記述され，「ＢＲＥＡＫ」の機能に対応する部分には，アノテーションとして「＠ＣＭＤ」，「＠ＭＧＲ」，「＠ＡＡＡ」及び「＠ＢＲＥＡＫ」が記述される。
【００５２】
具体的に，図１１に示すように，例えば，「ＥＮＤ」の機能に対応する部分の変更が行われた場合，物理マシン２（処理部２１０）は，図１０に示す文書関連情報２３２（変更後文書関連情報２３２Ｂ）を参照する。そして，物理マシン２は，図１２に示すように，「ＥＮＤ」の機能に対応する部分に記述された「アノテーション」である「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＥＮＤ」に対応する「文書識別情報」を特定する。すなわち，物理マシン２は，例えば，「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＥＮＤ」のうち上位概念の「アノテーション」である「＠ＣＭＤ」，「＠ＭＧＲ」に対応する「操作マニュアル」及び「管理者マニュアル」（図１２の下線部分）を特定する。これにより，マニュアル作成者は，「ＥＮＤ」の機能に対応する部分の変更に伴い，変更すべき文書が「操作マニュアル」及び「管理者マニュアル」であると推定することが可能になる。
【００５３】
このように，第１の実施の形態によれば，物理マシン２は，変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出する。そして，物理マシン２は，変更後のソフトウエアに関する複数の文書それぞれを識別する識別情報と，属性情報とを関連付けた変更後情報を記憶した記憶部２３０を参照する。さらに，物理マシン２は，抽出した属性情報と関連付けて記憶部２３０に記憶された識別情報で識別される文書が，変更に応じた変更対象の文書であるとの推定結果を出力する。これにより，マニュアル作成者は，ソースコードの変更があった場合に，文書関連情報２３２を参照することによって，変更する必要がある文書を推定することが可能になる。そのため，マニュアル作成者は，例えば，変更を行う必要がないマニュアルを予め排除した形で，マニュアルの作成を開始することが可能になる。
【００５４】
[第１の実施の形態の詳細]
次に，第１の実施の形態の詳細について説明する。図１３及び図１４は，第１の実施の形態における推定処理の詳細を説明するフローチャート図である。また，図１５から図１９は，第１の実施の形態における推定処理の詳細を説明する図である。図１５から図１９を参照しながら，図１３及び図１４の推定処理の詳細を説明する。なお，以下，図７から図１２で説明したソースコードの変更が行われた後，ソースコードに「ＳＴＯＰ」の機能に対応する記述を追加する場合について説明する。
【００５５】
[ソースコード作成前処理]
初めに，ソースコード作成者がソースコードを変更する前に実行する処理（以下，ソースコード作成前処理とも呼ぶ）を説明する。
【００５６】
物理マシン２の情報記憶部２１１は，例えば，情報記憶タイミングになるまで待機する（Ｓ１１のＮＯ）。この情報記憶タイミングは，例えば，ソースコードを変更することが決定した旨の入力を情報記憶部２１１が検出したときであってよい。そして，情報記憶タイミングになった場合（Ｓ１１のＹＥＳ），情報記憶部２１１は，例えば，機能関連情報２３１，タグ関連情報２３３を情報格納領域２３０に記憶する（Ｓ１２）。なお，変更前文書関連情報２３２Ａ（前回のソースコード変更時における変更後文書関連情報２３２Ｂ）は，予め情報格納領域２３０に記憶されているものとする。そして，変更後文書関連情報２３２Ｂは，後述するように，変更前文書関連情報２３２Ａに基づいて作成されるものとする。
【００５７】
図１５は，第１の実施の形態の詳細における機能関連情報２３１の具体例を説明する図である。図１５に示す機能関連情報２３１は，図９に示す機能関連情報２３１と同じの項目を有している。そして，図１５に示す例において，「識別ＩＤ」が４である情報には，「機能ＩＤ」として「ＳＴＯＰ」が設定され，「アノテーション」として「＠ＣＭＤ  ＠  ＭＧＲ  ＠ＳＴＯＰ」が設定されている。
【００５８】
図１６は，第１の実施の形態の詳細における変更前文書関連情報２３２Ａの具体例を説明する図である。図１６に示す変更前文書関連情報２３２Ａは，前回ソースコードの変更が行われた際に作成された変更後文書関連情報２３２Ｂと同じ内容である。したがって，図１６に示す変更前文書関連情報２３２Ａは，図１０に示す文書関連情報２３２（前回のソースコード変更時における変更後文書関連情報２３２Ｂ）と同じ内容である。そのため，図１６に示す変更前文書関連情報２３２Ａには，今回のソースコードの変更で追加される「ＳＴＯＰ」の機能に関する情報が設定されていない。
【００５９】
そして，図１７は，タグ関連情報２３３の具体例を説明する図である。図１７に示すタグ関連情報２３３は，属性情報を分類するための「分類タグ」と，属性情報を示す「アノテーション」とを項目として有する。図１７に示す「分類タグ」において，「コマンド」は，例えば，コマンドラインから入力することが可能な処理に関する属性情報を分類するものである。また，「管理者」及び「運用者」は，例えば，それぞれ管理者権限または運用者権限を有する利用者が入力することが可能な処理に関する属性情報を分類するものである。具体的に，図１７に示す例では，「識別ＩＤ」が１である情報には，「分類タグ」として「コマンド」が設定され，「アノテーション」として「＠ＳＴＡＲＴ」が設定されている。また，図１７に示す例では，「識別ＩＤ」が５である情報には，「分類タグ」として「管理者」が設定され，「アノテーション」として「＠ＥＮＤ」が設定されている。図１７のその他の情報についての説明は省略する。
【００６０】
次に，図１８は，「ＳＴＯＰ」に関する記述を追加した場合のソースコードの具体例である。具体的に，図１８に示すソースコードは，図１１に示すソースコードの状態から，「ＳＴＯＰ」の機能に関する部分を記述した場合の具体例である。図１８に示す例において，「ｐｕｂｌｉｃ  ｓｔｏｐＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，「ＳＴＯＰ」の機能を実現するソースコードである。さらに，図１８に示すソースコードのうち「ＳＴＯＰ」に対応する部分には，図１５に示す機能関連情報２３１に従って，アノテーションとして「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＳＴＯＰ」が記述されている。
【００６１】
図１３に戻り，情報記憶部２１１は，機能関連情報２３１等の記憶を行った後，次の情報記憶タイミングまで待機する（Ｓ１１のＮＯ）。
【００６２】
［推定処理］
次に，図１４を参照して，推定処理の詳細について説明する。図１４に示すように，物理マシンの属性抽出部２１２は，例えば，推定処理の実行タイミングになるまで待機する（Ｓ３１のＮＯ）。そして，推定処理の実行タイミングになった場合（Ｓ３１のＹＥＳ），属性抽出部２１２は，例えば，情報格納領域２３０に記憶された変更前文書関連情報２３２Ａから，識別情報毎に全ての属性情報を抽出する（Ｓ３２）。そして，属性抽出部２１２は，例えば，タグ関連情報２３３に基づき，Ｓ３２で抽出した属性情報と同じ分類タグに対応する属性情報を識別情報毎に抽出する（Ｓ３３）。
【００６３】
具体的に，例えば，図１６に示す変更前文書関連情報２３２Ａに含まれる「管理者マニュアル」について，Ｓ３２及びＳ３３に示す処理を行う場合を説明する。属性抽出部２１２は，図１６を参照し，「文書識別情報」が「管理者マニュアル」である情報に対応する「アノテーション」を抽出する。すなわち，属性抽出部２１２は，例えば，「識別ＩＤ」が２０である情報を参照して，「＠ＭＧＲ」を抽出する（Ｓ３２）。そして，属性抽出部２１２は，次に，図１７に示すタグ関連情報２３３を参照し，Ｓ３２で抽出した「アノテーション」に対応する「分類タグ」を抽出する。すなわち，属性抽出部２１２は，「識別ＩＤ」が９である情報を参照して，「＠ＭＧＲ」に対応する「分類タグ」である「管理者」を抽出する。さらに，属性抽出部２１２は，図１７に示すタグ関連情報２３３を参照し，「分類タグ」が「管理者」である情報に対応する「アノテーション」を全て抽出する。すなわち，属性抽出部２１２は，この場合，「識別ＩＤ」が４，５，６，９及び１２である情報を参照して，「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＢＲＥＡＫ」，「＠ＭＧＲ」及び「＠ＳＴＯＰ」を抽出する（Ｓ３３）。これにより，「管理者マニュアル」に関するＳ３２及びＳ３３の処理を完了する。
【００６４】
図１４に戻り，属性抽出部２１２は，例えば，全ての識別情報についてのＳ３２及びＳ３３の処理が完了していない場合（Ｓ３４のＮＯ），全ての識別情報についてのＳ３２及びＳ３３の処理が完了するまで処理を行う。そして，全ての識別情報についてのＳ３２及びＳ３３の処理が完了した場合（Ｓ３４のＹＥＳ），属性抽出部２１２は，例えば，変更前文書関連情報２３２Ａに基づき，Ｓ３３において識別情報毎に抽出した属性情報と，対応する識別情報とを関連付ける。これにより，属性抽出部２１２は，変更後文書関連情報２３２Ｂを作成する（Ｓ３５）。
【００６５】
具体的に，例えば，「管理者マニュアル」についてＳ３２及びＳ３３の処理を行った場合，属性抽出部２１２は，Ｓ３３で抽出した「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＢＲＥＡＫ」，「＠ＭＧＲ」及び「＠ＳＴＯＰ」と，「管理者マニュアル」を識別する識別情報とを関連付ける。すなわち，属性抽出部２１２は，図１９の変更後文書関連情報２３２Ｂに含まれる「識別ＩＤ」が２０，２１，２２，２３，２４である情報のように，「＠ＭＧＲ」，「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＢＲＥＡＫ」及び「＠ＳＴＯＰ」を「管理者マニュアル」と関連付ける。そして，属性抽出部２１２は，Ｓ３２及びＳ３３の処理を行った他のマニュアル（「操作マニュアル」及び「運用マニュアル」）について，同様の関連付けを行う。これにより，属性抽出部２１２は，図１９に示すように，変更後文書関連情報２３２Ｂを作成することが可能になる。
【００６６】
図１４に戻り，属性抽出部２１２は，例えば，変更前文書関連情報２３２Ａと，Ｓ３５で作成した変更後文書関連情報２３２Ｂとを比較し，属性情報の差分を抽出する（Ｓ３６）。例えば，「管理者マニュアル」においては，変更前文書関連情報２３２Ａに対応する属性情報と，Ｓ３５で作成した変更後文書関連情報２３２Ｂに対応する属性情報との差分は，「＠ＳＴＯＰ」である。そのため，属性抽出部２１２は，属性情報の差分として「＠ＳＴＯＰ」を抽出する。
【００６７】
続いて，文書推定部２１３は，例えば，Ｓ３６で抽出した属性情報に基づき，変更対象の文書を推定する（Ｓ３７）。すなわち，文書推定部２１３は，変更前文書関連情報２３２Ａに対応する属性情報と，Ｓ３５で作成した変更後文書関連情報２３２Ｂに対応する属性情報との間に差分が存在するマニュアルを，変更対象のマニュアルと推定する。したがって，例えば，上記の「管理者マニュアル」は，属性情報の差分である「＠ＳＴＯＰ」が存在するため，変更対象のマニュアルと推定される。そして，情報出力部２１４は，例えば，Ｓ３７において特定した変更対象のマニュアルに関する情報を出力する（Ｓ３８）。
【００６８】
すなわち，属性抽出部２１２は，予め作成されたタグ関連情報２３３を参照することにより，変更前文書関連情報２３２Ａから変更後文書関連情報２３２Ｂを作成することが可能になる。そのため，属性抽出部２１２は，ソースコードを参照することなく，属性情報の差分に関する情報を取得することが可能になる。これにより，属性抽出部２１２は，推定処理を行う場合において，ソースコードを参照するために要する処理負担を軽減することが可能になる。
【００６９】
［第１の実施の形態の変形例］
次に，第１の実施の形態の変形例として，文書目次構造３３２を利用して推定処理を行う場合を説明する。
【００７０】
物理マシン２及び物理マシン３は，それぞれにおいて実行される処理が異なるため，マニュアルに関する情報の管理方法が異なる場合がある。そして，この場合，物理マシン２は，物理マシン３が利用している文書目次構造３３２の内容を認識できず，物理マシン３は，物理マシン２が利用しているアノテーションの内容を認識できない場合がある。そのため，第１の実施の形態の変形例における物理マシン２及び物理マシン３は，推定処理を行う際に，アノテーションの内容と文書目次構造３３２の内容との関連付けを行う。そして，第１の実施の形態の変形例における物理マシン２及び物理マシン３は，互いに連携することにより推定処理を行う。以下，第１の実施の形態の変形例における推定処理の詳細を説明する。
【００７１】
初めに，文書目次構造３３２の具体例を説明する。図２０は，文書目次構造の具体例を説明する図である。図２０（Ａ）は，ソースコードに「ＳＴＯＰ」の機能に関する記述を追加する前の文書目次構造３３２の具体例であり，図２０（Ｂ）は，ソースコードに「ＳＴＯＰ」の機能に関する記述を追加した後の文書目次構造３３２の具体例である。図２０（Ａ）及び図２０（Ｂ）に示す文書目次構造３３２は，マニュアルの名称（「管理マニュアル」等）と，そのマニュアルに含められるマニュアル部品３３１を識別する目次情報とが関連付けられたツリー構造からなる。目次情報は，例えば，マニュアル作成者が作成したマニュアル部品３３１を識別するための情報である。マニュアル作成者は，文書目次構造３３２を参照することにより，マニュアルに対応するマニュアル部品３３１を特定することが可能になる。
【００７２】
図２１は，第１の実施の形態における推定処理の変形例を説明するフローチャート図である。初めに，物理マシン３の目次抽出部３１２は，例えば，推定処理の実行タイミングになるまで待機する（Ｓ４１のＮＯ）。そして，推定処理の実行タイミングになった場合（Ｓ４１のＹＥＳ），目次抽出部３１２は，例えば，文書目次構造３３２毎に，文書目次構造３３２から全ての目次情報を抽出する（Ｓ４２）。そして，目次抽出部３１２及び属性抽出部２１２は，例えば，変換情報２３５等に基づき，Ｓ４２で抽出した目次情報を属性情報に変換する（Ｓ４３）。そして，属性抽出部２１２は，例えば，Ｓ４３で変換した目次情報を文書目次構造３３２にさらに変換する（Ｓ４４）。すなわち，第１の実施の形態の変形例における物理マシン２は，文書目次構造３３２の内容を認識することができない。そのため，文書目次構造３３２に基づく目次情報の変換は，物理マシン３の目次抽出部３１２が行う。そして，物理マシン２が認識できる情報に変換された後，物理マシン２の属性抽出部２１２が引き続き推定処理を行う。これにより，物理マシン２は，文書目次構造３３２の内容を認識できない場合であっても，図１４等で説明した推定処理と同様の処理を行うことが可能になる。以下，Ｓ４２からＳ４４の処理の具体例を説明する。なお，変換情報２３５は，文書分類タグと分類タグとを関連付けたタグ変換情報２３５Ａと，属性情報と目次情報とを関連付けた属性変換情報２３５Ｂとを含むものとして説明を行う。
【００７３】
初めに，第１の実施の形態の変形例の推定処理を行うために必要な各情報の説明を行う。図２２は，文書タグ関連情報３３３の具体例を説明する図である。図２２に示す文書タグ関連情報３３３は，「目次情報」と「文書分類タグ」とを項目として有する。具体的に，図２２に示す例において，「識別ＩＤ」が１である情報には，「目次情報」として「＃ＲＥＦ−ＳＴＡＲＴ」が設定されており，「文書分類タグ」として「％コマンド」が設定されている。図２２のその他の情報についての説明は省略する。なお，上記のように，第１の実施の形態の変形例における物理マシン２は，目次情報を認識することができない。そのため，文書タグ関連情報３３３に基づく処理は，物理マシン３の目次抽出部３１２が行う。
【００７４】
次に，図２３は，タグ変換情報２３５Ａの具体例を説明する図である。図２３に示すタグ変換情報２３５Ａは，「文書分類タグ」と「分類タグ」とを項目として有する。具体的に，図２３に示す例において，「識別ＩＤ」が１である情報には，「文書分類タグ」として「％コマンド」が設定されており，「分類タグ」として「コマンド」が設定されている。図２３のその他の情報についての説明は省略する。すなわち，属性抽出部２１２は，タグ変換情報２３５Ａを参照することにより，属性抽出部２１２が内容を認識することができる情報である分類タグを取得することが可能になる。
【００７５】
そして，図２４は，タグ関連情報２３３の具体例を説明する図である。図２４に示すタグ関連情報２３３は，図１７に示すタグ関連情報２３３と同じ内容であるため説明を省略する。
【００７６】
さらに，図２５は，属性変換情報２３５Ｂの具体例を説明する図である。図２５に示す属性変換情報２３５Ｂは，「アノテーション」と「目次情報」とを項目として有する。具体的に，図２２に示す例では，「識別ＩＤ」が１である情報には，「アノテーション」として「＠ＳＴＡＲＴ」が設定され，「目次情報」として「＃ＲＥＦ−ＳＴＡＲＴ」が設定されている。また，図２１に示す例では，「識別ＩＤ」が４である情報には，「アノテーション」として「＠ＭＧＲ」及び「＠ＳＴＡＲＴ」が設定され，「目次情報」として「＃ＲＥＦ−ＭＧＲＳＴＡＲＴ」が設定されている。図２５のその他の情報についての説明は省略する。すなわち，属性抽出部２１２は，図２５を参照することにより，アノテーション（ソースコードの変更後に対応するアノテーション）を目次情報に変換することができる。これにより，物理マシン３の目次抽出部３１２は，属性抽出部２１２によって変換された目次情報に基づき，文書目次構造３３２を更新することが可能になる。以下，図２２から図２５の情報を用いた具体例を説明する。
【００７７】
図２０（Ａ）に示す「管理者マニュアル」の文書目次構造３３２の例において，初めに，物理マシン３の目次抽出部３１２は，「管理者マニュアル」に対応する「目次情報」を抽出する（Ｓ４２）。具体的に，目次抽出部３１２は，「＃ＲＥＦ−ＳＴＡＲＴ」，「＃ＲＥＦ−ＥＮＤ」，「＃ＲＥＦ−ＢＲＥＡＫ」，「＃ＲＥＦ−ＭＧＲＳＴＡＲＴ」，「＃ＲＥＦ−ＭＧＲＥＮＤ」及び「＃ＲＥＦ−ＭＧＲＢＲＥＡＫ」を抽出する。
【００７８】
そして，目次抽出部３１２は，次に，図２２に示す文書タグ関連情報３３３を参照し，Ｓ４２で抽出した「目次情報」を「文書分類タグ」に変換する（Ｓ４３）。具体的に，目次抽出部３１２は，図２２に示す文書タグ関連情報３３３のうち，「識別ＩＤ」が１，２，３，４，５，６，８及び９である情報を参照して，「％コマンド」及び「％管理者」を抽出する。すなわち，物理マシン３の目次抽出部３１２は，ここまでの処理を実行する。なお，目次抽出部３１２は，例えば，Ｓ４３において変換した文書分類タグを，物理マシン２の情報格納領域２３０に記憶するものであってもよい。そして，属性抽出部２１２は，情報格納領域２３０から文書分類タグを取得し，後続処理を行うものであってもよい。
【００７９】
その後，物理マシン２の属性抽出部２１２は，図２３に示すタグ変換情報２３５Ａを参照し，目次抽出部３１２が抽出した「文書分類タグ」を「分類タグ」に変換する。具体的に，属性抽出部２１２は，図２３に示すタグ変換情報２３５Ａのうち，「識別ＩＤ」が１及び２である情報を参照して，「コマンド」及び「管理者」を抽出する。
【００８０】
さらに，属性抽出部２１２は，図２４に示すタグ関連情報２３３を参照して，抽出した「分類タグ」を「アノテーション」に変換する。具体的に，属性抽出部２１２は，図２４に示すタグ関連情報２３３のうち，「識別ＩＤ」が１，２，３，４，５，７，８，１０及び１１である情報を参照して，「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＢＲＥＡＫ」，「＠ＣＭＤ」，「＠ＭＧＲ」及び「＠ＳＴＯＰ」を抽出する（Ｓ４３）。
【００８１】
次に，属性抽出部２１２は，例えば，図２５に示す属性変換情報２３５Ｂを参照し，Ｓ４３で抽出した「アノテーション」を，「目次情報」に変換する。すなわち，属性抽出部２１２は，図２５に示す属性変換情報２３５Ｂにうち，「識別ＩＤ」が１，２，３，４，５，６，８及び９を参照する。そして，属性抽出部２１２は，「＃ＲＥＦ−ＳＴＡＲＴ」，「＃ＲＥＦ−ＥＮＤ」，「＃ＲＥＦ−ＢＲＥＡＫ」，「＃ＲＥＦ−ＭＧＲＳＴＡＲＴ」，「＃ＲＥＦ−ＭＧＲＥＮＤ」，「＃ＲＥＦ−ＭＧＲＢＲＥＡＫ」，「＃ＲＥＦ−ＳＴＯＰ」及び「＃ＲＥＦ−ＭＧＲＳＴＯＰ」を抽出する。これにより，ソースコードの変更後における「管理者マニュアル」の文書目次構造３２２に対応するマニュアル部品３３１の抽出は完了する。
【００８２】
図２１に戻り，目次抽出部３１２及び属性抽出部２１２は，例えば，全ての文書目次構造３３２についてのＳ４２からＳ４４の処理が完了していない場合（Ｓ４５のＮＯ），全ての文書目次構造３３２についてのＳ４２からＳ４４の処理が完了するまで処理を行う。そして，全ての文書目次構造３３２についてのＳ４２からＳ４４の処理が完了した場合（Ｓ４５のＹＥＳ），目次抽出部３１２は，例えば，Ｓ４３で抽出した目次情報と，対応する文書目次構造３３２とを関連付ける（Ｓ４６）。これにより，目次抽出部３１２は，ソースコードの変更後における全てのマニュアルに関する文書目次構造３３２を作成することが可能になる。
【００８３】
具体的に，目次抽出部３１２は，図２０に示す「管理者マニュアル」の例においては，Ｓ４４で属性抽出部２１２が変換した目次情報を，「管理者マニュアル」の文書目次構造３３２に関連付ける。すなわち，目次抽出部３１２は，「＃ＲＥＦ−ＳＴＯＰ」及び「＃ＲＥＦ−ＭＧＲＳＴＯＰ」を含む目次情報（Ｓ４４で変換した目次情報）を，「管理者マニュアル」の文書目次構造３３２に関連付ける。これにより，目次抽出部３１２は，図２０（Ｂ）に示すように，ソースコードの変更後における「管理者マニュアル」に関する文書目次構造３３２を作成することが可能になる。
【００８４】
図２１に戻り，目次抽出部３１２は，例えば，変更前の文書目次構造３３２と変更後の文書目次構造３３２との差分を抽出する（Ｓ４７）。具体的に，図２０に示す「管理者マニュアル」においては，図２０（Ａ）に示す目次情報と，図２０（Ｂ）に示す目次情報との差分は，「＃ＲＥＦ−ＳＴＯＰ」及び「＃ＲＥＦ−ＭＧＲＳＴＯＰ」（図２０（Ｂ）の網掛け部分）である。
【００８５】
そして，文書推定部３１３は，例えば，Ｓ４７で抽出した目次情報に基づき，変更対象の文書を推定する（Ｓ４８）。具体的に，変更前の文書目次構造３３２に対応する目次情報と，変更後の文書目次構造３３２に対応する目次情報との差分が存在したマニュアルが変更対象のマニュアルである。したがって，文書推定部３１３は，例えば，図２０に示す「管理者マニュアル」を変更対象のマニュアルである推定する。そして，情報出力部３１４は，例えば，Ｓ４８において特定した変更対象のマニュアルに関する情報を出力する（Ｓ４９）。
【００８６】
なお，図２０に示す文書目次構造３３２は，マニュアル毎に独立した構造を有しているが，文書関連情報２３２のように全てマニュアルに関する情報を単一の構造で管理するものであってよい。
【００８７】
［第２の実施の形態］
次に，第２の実施の形態について説明する。図２６は，第２の実施の形態における推定処理を説明するフローチャート図である。また，図２７から図３２は，第２の実施の形態における推定処理を説明する図である。図２７から図３２を参照しながら，第２の実施の形態における推定処理を説明する。
【００８８】
第２の実施の形態では，第１の実施の形態における「ＳＴＯＰ」機能の追加のように機能拡張が行われる場合ではなく，コマンド機能に対するＧＵＩ機能等のように従来のソフトウエアに対して新規の機能が追加される場合の実施の形態である。具体的に，第２の実施の形態における属性抽出部２１２では，例えば，タグ関連情報２３３に新たな分類タグが追加された場合に，関連分類情報２３６を参照する。そして，属性情報の抽出を行った分類タグと，追加された新たな分類タグとが関連付けられて関連分類情報２３６として記憶されている場合，属性抽出部２１２は，新たな分類タグに関する情報を含む形で変更後文書関連情報２３２Ｂを作成する。これにより，マニュアル作成者は，変更前文書関連情報２３２Ａと変更後文書関連情報２３２Ｂとを参照することで，新たな分類タグに関するマニュアルを作成する必要がある旨を認識することが可能になる。以下，第２の実施の形態の詳細を説明する。なお，第２の実施の形態の説明において，適宜，図１３及び図１４の内容を参照する。また，以下，第１の実施の形態で説明したソースコードの変更が行われた後，ＧＵＩ機能である「ＳＴＡＲＴ＿ＧＵＩ（開始ダイアログ）」及び「ＥＮＤ＿ＧＵＩ（終了ダイアログ）」の機能に対応する記述がソースコードに追加される場合について説明する。
【００８９】
[ソースコード作成前処理]
初めに，第２の実施の形態におけるソースコード作成前処理を説明する。情報記憶部２１１は，第１の実施の形態と同様に，例えば，情報記憶タイミングになるまで待機する（図１３のＳ１１のＮＯ）。そして，情報記憶タイミングになった場合（図１３のＳ１１のＹＥＳ），情報記憶部２１１は，例えば，機能関連情報２３１，タグ関連情報２３３を情報格納領域２３０に記憶する（図１３のＳ１２）。なお，変更前文書関連情報２３２Ａは，予め情報格納領域２３０に記憶されているものとする。
【００９０】
図２７は，図１５に示す機能関連情報２３１の状態からＧＵＩ機能（新たな機能）に関する情報が設定された場合の例である。具体的に，「識別ＩＤ」が５である情報には，「機能ＩＤ」として「ＳＴＡＲＴ＿ＧＵＩ」が追加され，「アノテーション」として「＠ＵＳＲ  ＠ＧＵＩ  ＠ＳＴＡＲＴ」が設定されている。また，「識別ＩＤ」が６である情報には，「機能」として「ＥＮＤ＿ＧＵＩ」が追加され，「アノテーション」として「＠ＵＳＲ  ＠ＧＵＩ  ＠ＥＮＤ」が設定されている。図２７のその他の情報についての説明は省略する。
【００９１】
図２８は，第２の実施の形態の詳細における変更前文書関連情報２３２Ａの具体例を説明する図である。図２８に示す変更前文書関連情報２３２Ａは，図１９に示す変更後文書関連情報２３２Ｂと同じ内容であるため，その説明を省略する。
【００９２】
図２９は，図１７に示すタグ関連情報２３３の状態からＧＵＩ機能に関する情報が設定された場合の例である。具体的に，「識別ＩＤ」が１３である情報には，「分類タグ」として「＠ＧＵＩ」が追加され，「アノテーション」として「＠ＳＴＡＲＴ」が設定されている。また，「識別ＩＤ」が１８である情報には，「分類タグ」として「ユーザ」が追加され，「アノテーション」として「＠ＵＳＲ」が設定されている。図２９のその他の情報についての説明は省略する。
【００９３】
また，第２の実施の形態における情報記憶部２１１は，情報記憶タイミングになった場合（図１３のＳ１１のＹＥＳ），さらに，関連分類情報２３６を情報格納領域２３０に記憶する（図１３のＳ１２）。
【００９４】
図３０は，関連分類情報２３６の具体例である。図３０に示す関連分類情報２３６は，タグ関連情報２３３の分類タグに対応する「分類タグ１」及び「分類タグ２」を項目として有している。具体的に，図３０に示す関連分類情報２３６において，「識別ＩＤ」が１である情報には，「分類タグ１」として「コマンド」が設定され，「分類タグ２」として「ＧＵＩ」が設定されている。また，図３０に示す関連分類情報２３６において，「識別ＩＤ」が２である情報には，「分類タグ１」として「管理者」が設定され，「分類タグ２」として「ユーザ」が設定されている。すなわち，関連分類情報２３６は，分類タグである「コマンド」と「ＧＵＩ」とを関連付けており，「管理者」と「ユーザ」とを関連付けている。
【００９５】
次に，図３１は，図１８に示すソースコードの状態からＧＵＩ機能に関する記述が追加されたソースコードの具体例である。図３１に示す例において，「ｐｕｂｌｉｃ  ｓｔａｒｔＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，図２９に示す機能関連情報２３１における「ＳＴＡＲＴ＿ＧＵＩ」の機能を実現するソースコードである。また，図３１に示す例において，「ｐｕｂｌｉｃ  ｅｎｄＳｙｓｔｅｍ（）｛  ・・・  ｝」からなる部分は，図２９に示す機能関連情報２３１における「ＥＮＤ＿ＧＵＩ」の機能を実現するソースコードである。さらに，「ＳＴＡＲＴ＿ＧＵＩ」に対応する部分には，図２７に示す機能関連情報２３１に従って，アノテーションとして「＠ＵＳＲ」，「＠ＧＵＩ」及び「＠ＳＴＡＲＴ」が記述されている。同様に，「ＥＮＤ＿ＧＵＩ」に対応する部分には，アノテーションとして「＠ＵＳＲ」，「＠ＧＵＩ」及び「＠ＥＮＤ」が記述される。
【００９６】
図１３に戻り，情報記憶部２１１は，機能関連情報２３１等の記憶を行った後，次の情報記憶タイミングまで待機する（図１３のＳ１１のＮＯ）。すなわち，第２の実施の形態におけるソースコード作成前処理は，第１の実施の形態におけるソースコード作成前処理に加えて，関連分類情報２３６の記憶を行う。
【００９７】
［推定処理］
次に，図１４及び図２６を参照して，第２の実施の形態における推定処理の詳細について説明する。図１４に示すように，属性抽出部２１２は，例えば，第１の実施の形態の場合と同様に，推定処理の実行タイミングになるまで待機する（図１４のＳ３１のＮＯ）。そして，推定処理の実行タイミングになった場合（図１４のＳ３１のＹＥＳ），属性抽出部２１２は，例えば，情報格納領域２３０に記憶された変更前文書関連情報２３２Ａから，識別情報毎に全ての属性情報を抽出する（図１４のＳ３２）。そして，属性抽出部２１２は，例えば，タグ関連情報２３３に基づき，Ｓ３２で抽出した属性情報と同じ分類タグに対応する属性情報を識別情報毎に抽出する（図１４のＳ３３）。
【００９８】
具体的に，例えば，図２８に示す変更前文書関連情報２３２Ａに含まれる「管理者マニュアル」について，図１４のＳ３２及びＳ３３に示す処理を行う場合を説明する。属性抽出部２１２は，図２８を参照し，「文書識別情報」が「管理者マニュアル」である情報に対応する「アノテーション」を抽出する。すなわち，属性抽出部２１２は，「識別ＩＤ」が２０である情報を参照して，「＠ＭＧＲ」を抽出する（図１４のＳ３２）。そして，属性抽出部２１２は，次に，図２９に示すタグ関連情報２３３を参照し，図１４のＳ３２で抽出した「アノテーション」に対応する「分類タグ」を抽出する。すなわち，属性抽出部２１２は，「識別ＩＤ」が９である情報を参照して，「＠ＭＧＲ」に対応する「分類タグ」である「管理者」を抽出する。そして，属性抽出部２１２は，図２９に示すタグ関連情報２３３を参照し，「分類タグ」が「管理者」である情報に対応する「アノテーション」を全て抽出する。すなわち，属性抽出部２１２は，この場合，「識別ＩＤ」が４，５，６，９及び１２である情報を参照して，「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＢＲＥＡＫ」，「＠ＭＧＲ」及び「＠ＳＴＯＰ」を抽出する（図１４のＳ３３）。これにより，「管理者マニュアル」に関する図１４のＳ３２及びＳ３３の処理を完了する。なお，図２９に示すタグ関連情報２３３に含まれる「分類タグ」である「管理者」に関連する「アノテーション」は，図１７に示すタグ関連情報２３３の状態から更新されていない。そのため，第２の実施の形態において，属性抽出部２１２が図１４のＳ３２で抽出した属性情報と，図１４のＳ３３で抽出した属性情報とは同じである。
【００９９】
図１４に戻り，属性抽出部２１２は，全てのマニュアルについてのＳ３２及びＳ３３の処理が完了していない場合（図１４のＳ３４のＮＯ），全てのマニュアルについてのＳ３２及びＳ３３の処理が完了するまで処理を行う。一方，全てのマニュアルについてのＳ３２及びＳ３３の処理が完了した場合（図１４のＳ３４のＹＥＳ），属性抽出部２１２は，例えば，変更前文書関連情報２３２Ａに基づき，図１４のＳ３３で抽出した属性情報と，対応する識別情報とを関連付けることにより，変更後文書関連情報２３２Ｂを作成する（図１４のＳ３５）。以下，第２の実施の形態におけるＳ３５の処理の詳細を説明する。
【０１００】
図２６は，第２の実施の形態におけるＳ３５の処理を説明するフローチャートである。第２の実施の形態における属性抽出部２１２は，図１４のＳ３４の後，例えば，関連分類情報２３６を参照する。そして，属性抽出部２１２は，例えば，図１４のＳ３３において属性情報の抽出に使用した分類タグと，タグ関連情報２３３に含まれる新たな分類タグとが関連する情報が，関連分類情報２３６に設定されているか否かを判定する（Ｓ６１）。そして，関連する情報が設定されている場合（Ｓ６１のＹＥＳ），属性抽出部２１２は，例えば，タグ関連情報２３３から，新たな分類タグに関連する情報に対応する属性情報を抽出する（Ｓ６２）。その後，属性抽出部２１２は，例えば，図１４のＳ３３及びＳ６２で抽出した属性情報と，対応する識別情報とを関連付けることにより変更後文書関連情報２３２Ｂを作成する（Ｓ６３）。すなわち，新たな分類タグに関連する情報が関連分類情報２３６に存在する場合，属性抽出部２１２は，図１４のＳ３３で抽出した属性情報のみでなく，Ｓ６２で抽出した属性情報に対応する変更後文書関連情報２３２Ｂを作成する。これにより，属性抽出部２１２は，ソースコードに新たに追加された機能（ＧＵＩ機能等）に対応する情報を含む形で変更後文書関連情報２３２Ｂを作成することが可能になる。そのため，マニュアル作成者は，変更後文書関連情報２３２Ｂを参照することにより，新たな分類タグに関するマニュアルを作成する必要がある旨を認識することが可能になる。一方，関連する情報が設定されていない場合（Ｓ６１のＮＯ），属性抽出部２１２は，図１４のＳ３５と同様に，例えば，図１４のＳ３３で抽出した属性情報と，対応する識別情報とを関連付けることにより変更後文書関連情報２３２Ｂを作成する（Ｓ６４）。
【０１０１】
具体的に，図２８の変更前文書関連情報２３２Ａの「管理者マニュアル」において，属性抽出部２１２は，図１４のＳ３２からＳ３４において，「分類タグ」として「管理者」，「コマンド」及び「運用者」を利用して属性情報の抽出を行っている。また，図２９に示すタグ関連情報２３３には，新たな「分類タグ」として「ＧＵＩ」及び「ユーザ」が設定されている。そして，関連分類情報２３６には，「管理者」と「ユーザ」とが関連して設定されており，「コマンド」と「ＧＵＩ」とが関連して設定されている。したがって，属性抽出部２１２は，図１４のＳ３２からＳ３４において属性情報の抽出を行った分類タグと新たな分類タグとを関連付ける情報が，関連分類情報２３６内に存在するものと判定する（Ｓ６１のＹＥＳ）。そのため，属性抽出部２１２は，タグ関連情報２３３を参照し，「分類タグ」である「ＧＵＩ」及び「ユーザ」に対応する「アノテーション」である「＠ＳＴＡＲＴ」，「＠ＥＮＤ」，「＠ＧＵＩ」及び「＠ＵＳＲ」を抽出する（Ｓ６２）。
【０１０２】
そして，属性抽出部２１２は，図１４のＳ３２からＳ３４で抽出した「＠ＳＴＯＰ」等のアノテーション及びＳ６２で抽出した「＠ＧＵＩ」等のアノテーションと，各マニュアルに対応する識別情報とを関連付ける（Ｓ６３）。これにより，図３２に示すように，変更後文書関連情報２３２Ｂを作成する。
【０１０３】
具体的に，属性抽出部２１２は，例えば，図３２に示す変更後文書関連情報２３２Ｂに示すように，「識別ＩＤ」が４０である情報として，「アノテーション」に「＠ＧＵＩ」を設定し，「文書識別情報」に「未作成（新規）」を設定する。また，「識別ＩＤ」が５０である情報として，「アノテーション」に「＠ＵＳＲ」を設定し，「文書識別情報」に「未作成（新規）」を設定する。なお，予め作成するマニュアルの名前が決まっている場合，属性抽出部２１２は，「＠ＧＵＩ」及び「＠ＵＳＲ」と関連する「文書識別情報」に，予め決められたマニュアルの名前を設定するものであってもよい。
【０１０４】
また，図３１に示すソースコードのうち「ＳＴＡＲＴ＿ＧＵＩ」の機能に対応する記述には，アノテーションとして「＠ＵＳＲ」「＠ＧＵＩ」及び「＠ＳＴＡＲＴ」が記述されている。また，「ＥＮＤ＿ＧＵＩ」の機能に対応する記述には，アノテーションとして「＠ＵＳＲ」「＠ＧＵＩ」及び「＠ＥＮＤ」が記述されている。そのため，属性抽出部２１２は，図３２に示すように，「＠ＵＳＲ」及び「＠ＧＵＩ」の下位概念のアノテーションである「＠ＳＴＡＲＴ」及び「＠ＥＮＤ」に対応する情報（「識別情報」が４１，４２，５１，５２である情報）を設定する。これにより，マニュアル作成者は，変更後文書関連情報２３２Ｂを参照することで，新たな分類タグに関するマニュアル（「文書識別情報」が「未作成（新規）」になっているマニュアル）を，新たに作成する必要があるマニュアルであるとして認識することが可能になる。図３２のその他の情報についての説明は省略する。
【０１０５】
図１４に戻り，属性抽出部２１２は，例えば，変更前文書関連情報２３２Ａと，図１４のＳ３５で作成した変更後文書関連情報２３２Ｂとを比較し，属性情報の差分を抽出する（図１４のＳ３６）。例えば，「管理者マニュアル」においては，変更前文書関連情報２３２Ａに対応する属性情報と，Ｓ６３で作成した変更後文書関連情報２３２Ｂに対応する属性情報との差分は，「＠ＵＳＲ」及び「＠ＧＵＩ」である。
【０１０６】
続いて，文書推定部２１３は，例えば，図１４のＳ３６で抽出した属性情報に基づき，変更対象の文書を推定する（図１４のＳ３７）。具体的に，図２８に示す変更前文書関連情報２３２Ａに対応する属性情報と，図３２に示す変更後文書関連情報２３２Ｂとに対応する属性情報との差分が存在したマニュアルが変更対象のマニュアルである。したがって，この例においては，「未作成（新規）」に対応するマニュアルが変更対象（作成対象）のマニュアルである。また，「管理者マニュアル」等の他のマニュアルは，変更対象のマニュアルに該当しない。そして，情報出力部２１４は，例えば，図１４のＳ３６において特定した変更対象のマニュアルの出力を行う（図１４のＳ３８）。
【０１０７】
すなわち，第２の実施の形態における文書推定部２１３は，新たな機能（ＧＵＩ機能等）に対応する情報を含める形で，変更（作成）すべきマニュアルを推定することが可能になる。また，第２の実施の形態における情報出力部２１４は，新たな機能（ＧＵＩ機能等）に対応する情報を含める形で，ソフトウエアの変更に伴って変更すべきマニュアルの出力を行うことが可能になる。これにより，マニュアル作成者は，ソフトウエアに新たな機能が追加された場合に，新たな機能に対応するマニュアルを作成することが可能になる。
【０１０８】
以上の実施の形態をまとめると，以下の付記のとおりである。
【０１０９】
（付記１）
コンピュータに，
変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出し，
前記ソフトウエアに関する複数の文書それぞれを識別する識別情報と，属性情報とを関連付けた第１関連情報を記憶した記憶部を参照し，前記抽出した属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する，
ことを実行させることを特徴する推定プログラム。
【０１１０】
（付記２）
付記１において，
前記属性情報は，アノテーションであり，
前記関数の記述部分に含まれる属性情報を抽出する処理の前に，前記ソフトウエアの変更前のソースコードをコンパイルすることにより，前記コンパイルされたソースコードに記述された文字情報のうち，前記コンパイルされたソースコードに記述されたアノテーションと関連する文字情報を，前記記述されたアノテーションと関連付けて前記記憶部に記憶された識別情報で識別される文書として出力する，
ことをコンピュータに実行させることを特徴とする推定プログラム。
【０１１１】
（付記３）
付記１において，
前記抽出する処理の前に，変更前の前記ソフトウエアに関する識別情報と，属性情報とを関連付けた第２関連情報から，識別情報毎に全ての属性情報を抽出し，
属性情報の上位概念である分類情報と，属性情報とを関連付けた第３関連情報に基づき，前記第２関連情報から抽出した属性情報と同じ前記分類情報に対応する属性情報を識別情報毎に抽出し，
前記第３関連情報に基づき抽出した属性情報と，前記第３関連情報に基づき抽出した属性情報に対応する識別情報とを関連付けることにより第１関連情報を作成する，
ことをコンピュータに実行させることを特徴とする推定プログラム。
【０１１２】
（付記４）
付記３において，
前記関数の記述部分に含まれる属性情報を抽出する処理は，前記第１関連情報と，前記第２関連情報との差分を抽出する，
ことを特徴とする推定プログラム。
【０１１３】
（付記５）
付記４において，
前記第１関連情報を作成する処理は，所定の関連性を有する複数の分類情報を関連付けた情報に基づき，前記第２関連情報から抽出した属性情報に対応する分類情報が，前記ソフトウエアの変更に伴って前記第３関連情報に追加された分類情報と関連している場合，前記第２関連情報から抽出した属性情報に対応する分類情報と，前記追加された分類情報とに対応する前記第１関連情報を作成する，
ことを特徴とする推定プログラム。
【０１１４】
（付記６）
付記３において，
前記分類情報は，属性情報の機能の種別毎に，または属性情報の機能を利用する利用者の種別毎に，属性情報を分類する情報である，
ことを特徴とする推定プログラム。
【０１１５】
（付記７）
付記５において，
前記所定の関連性は，分類情報に関連付けられた属性情報の機能の種別が同一であること，または分類情報に関連付けられた属性情報の機能の種別を利用する利用者の種別が同一であることである，
ことを特徴とする推定プログラム。
【０１１６】
（付記８）
付記１において，
前記複数の文書それぞれの識別情報と関連付けて記憶される前記属性情報のそれぞれは，前記文書の記述に対応する前記ソフトウエアの機能に基づき決定される，
ことを特徴とする推定プログラム。
【０１１７】
（付記９）
変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出する抽出部と，
前記ソフトウエアに関する複数の文書それぞれを識別する識別情報と，属性情報とを関連付けた第１関連情報を記憶した記憶部を参照し，前記抽出した属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する出力部と，を有する，
ことを特徴する推定プログラム。
【０１１８】
（付記１０）
変更前後のソフトウエアのソースコードに基づいて，ソースコードの変更箇所が存在する関数の記述部分に含まれる属性情報を抽出し，
前記ソフトウエアに関する複数の文書それぞれを識別する識別情報と，属性情報とを関連付けた第１関連情報を記憶した記憶部を参照し，前記抽出した属性情報と関連付けて前記記憶部に記憶された識別情報で識別される文書が，前記ソフトウエアの変更に応じた変更対象の文書であるとの推定結果を出力する，
ことを特徴する推定方法。
【符号の説明】
【０１１９】
１：作業者端末              ２：物理マシン
３：作業者端末              ２１０：処理部
２１１：情報記憶部          ２１２：属性抽出部
２１３：文書推定部          ２１４：情報出力部    
【図１】
0006519137.tif 000002
【図２】
0006519137.tif 000003
【図３】
0006519137.tif 000004
【図４】
0006519137.tif 000005
【図５】
0006519137.tif 000006
【図６】
0006519137.tif 000007
【図７】
0006519137.tif 000008
【図８】
0006519137.tif 000009
【図９】
0006519137.tif 000010
【図１０】
0006519137.tif 000011
【図１１】
0006519137.tif 000012
【図１２】
0006519137.tif 000013
【図１３】
0006519137.tif 000014
【図１４】
0006519137.tif 000015
【図１５】
0006519137.tif 000016
【図１６】
0006519137.tif 000017
【図１７】
0006519137.tif 000018
【図１８】
0006519137.tif 000019
【図１９】
0006519137.tif 000020
【図２０】
0006519137.tif 000021
【図２１】
0006519137.tif 000022
【図２２】
0006519137.tif 000023
【図２３】
0006519137.tif 000024
【図２４】
0006519137.tif 000025
【図２５】
0006519137.tif 000026
【図２６】
0006519137.tif 000027
【図２７】
0006519137.tif 000028
【図２８】
0006519137.tif 000029
【図２９】
0006519137.tif 000030
【図３０】
0006519137.tif 000031
【図３１】
0006519137.tif 000032
【図３２】
0006519137.tif 000033