(57)【要約】      （修正有）【課題】ソースコードの調査目的情報に適した設計文書を容易に検索できるソフトウェア開発文書検索装置を提供する。【解決手段】ソフトウェア開発文書検索装置１Ａは、調査対象となるソースコード２を特徴付けるソースコード用語と、ソースコード用語の各々のソースコード用語分類とをソフトウェア資産から取得するソースコード情報取得部５と、設計文書から文書用語を抽出する文書解析部６と、ソースコードの調査目的情報を取得する調査目的情報取得部１１と、調査目的情報４とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、調査目的情報に対応するソースコード用語分類毎の重要度を取得し、設計文書３の各々について、ソースコード用語と文書用語とのうち、共通する用語に対応したソースコード用語分類の重要度に基づいて関連スコアを算出する関連スコア算出部７と、関連スコアに基づく設計文書３を出力する表示部９と、を備える。【選択図】図１
2020194238.tif 000002
【特許請求の範囲】
【請求項１】
調査対象となるソースコードを特徴付ける１以上のソースコード用語と１以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得するソースコード情報取得部と、
１以上の設計文書から１以上の文書用語を抽出する文書解析部と、
前記ソースコードの調査目的情報を取得する調査目的情報取得部と、
調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得し、前記１以上の設計文書の各々について、取得した前記１以上のソースコード用語と前記設計文書から抽出した前記１以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出する関連スコア算出部と、
前記関連スコアに基づいて前記１以上の設計文書の少なくとも一つを出力する表示部と、
を備えたソフトウェア開発文書検索装置。
【請求項２】
前記ソフトウェア資産は、前記ソースコードであり、
前記ソースコード情報取得部は、前記調査対象となる前記ソースコードから前記ソースコード用語と該ソースコード用語の分類とを抽出する、
請求項１に記載のソフトウェア開発文書検索装置。
【請求項３】
前記設計文書の記載内容における構成要素の中から、１以上の前記ソースコードに対して調査目的情報に適合する構成要素を選定し、前記調査目的情報に適合する構成要素の単語組成を前記調査目的情報毎に集計する、
請求項１に記載のソフトウェア開発文書検索装置。
【請求項４】
前記重要度情報生成部は、
検索の結果に対するフィードバック情報に基づいて重要度情報を生成する、
請求項３に記載のソフトウェア開発文書検索装置。
【請求項５】
前記フィードバック情報は、前記検索の結果に対する利用者の評価値が集計された情報である、
請求項４に記載のソフトウェア開発文書検索装置。
【請求項６】
ソースコード調査に必要なソフトウェア開発文書を提示するソフトウェア開発文書検索方法であって、
文書解析部が、１以上の設計文書から１以上の文書用語を抽出するステップと、
調査目的情報取得部が、前記ソースコード調査する目的についての調査目的情報を取得するステップと、
関連スコア算出部が、前記調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得するステップと、
関連スコア算出部が、前記１以上の設計文書の各々について、取得した１以上のソースコード用語と前記設計文書から抽出した前記１以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出するステップと、
表示部が、前記関連スコアに基づいて前記１以上の設計文書の少なくとも一つを出力するステップと、
を有するソフトウェア開発文書検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア開発文書検索装置及び方法に関する。
【背景技術】
【０００２】
ソフトウェア製品の保守業務において、顧客からの問合せに対応するため、ソフトウェア保守担当者（以下、「保守担当者」）は、ソースコードをはじめ、既存ソフトウェア資産を参照して、当該ソフトウェアを調査する。一般的に、ソースコードの設計思想や処理説明等に関し、ソースコードと設計文書の双方を一意に紐づける識別子は存在しない。保守担当者は、この条件下で設計文書の検索を余儀なくされ、検索に相当の困難を伴う。例えば、保守担当者は、調査対象のソースコード周辺の変数やコメント文から読み取れる用語などを手掛かりに設計文書を検索する必要があり、ソースコードと設計文書間のトレースの難易度は高いのが実情である。
【０００３】
このような課題に対し、特許文献１には、要求仕様書、基本設計書、詳細設計書等の文書に記載された項目の説明内容を解析して、項目間で共通する用語群の類似度に基づいて関連付けを行い、その関連付けの結果をトレーサビリティマトリクスとして出力する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2014-232505号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ソフトウェア製品の保守業務においては、バグ修正等の保守作業を実施したいソースコード行とその周辺（以下、「ソースコード片」ともいう）についての設計思想、処理の説明、制限事項等を把握するために、関連する設計文書を調査する必要がある。しかしながら、特許文献１には、類似する項目を持った文書間で関連付けがされるにすぎず、調査目的情報に適した関連する設計文書を検索する技術は開示も示唆もされていない。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ソースコードの調査目的情報に適した設計文書を容易に検索できるソフトウェア開発文書検索装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するための本発明は、調査対象となるソースコードを特徴付ける１以上のソースコード用語と１以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得するソースコード情報取得部と、１以上の設計文書から１以上の文書用語を抽出する文書解析部と、前記ソースコードの調査目的情報を取得する調査目的情報取得部と、調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得し、前記１以上の設計文書の各々について、取得した前記１以上のソースコード用語と前記設計文書から抽出した前記１以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出する関連スコア算出部と、前記関連スコアに基づいて前記１以上の設計文書の少なくとも一つを出力する表示部と、を備えた、ものである。
【発明の効果】
【０００８】
本発明によれば、ソースコードの調査目的情報に適した設計文書を容易に検索できるソフトウェア開発文書検索装置を提供できる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係るソフトウェア開発文書検索装置の構成図である。
【図２】ソースコードの一例を示す図である。
【図３】図１の本装置におけるソースコード情報取得部のソースコード用語抽出処理を示すフローチャートである。
【図４】図３の第１ステップの詳細を示すフローチャートである。
【図５】図３の第２ステップの詳細を示すフローチャートである。
【図６】図１に示した文書解析部の処理結果の一例を示す図である。
【図７】図１の重要度情報記憶部に記憶された重要度情報の一例を示す表である。
【図８】図１の本装置における関連スコア算出部の処理を示すフローチャートである。
【図９】図１の本装置において、表示部により表示する表示画面（図１２の出力装置）を例示する図である。
【図１０】本発明の実施例２に係るソフトウェア開発文書検索装置の構成図である。
【図１１】図１０の本装置における重要度情報生成部の処理を示すフローチャートである。
【図１２】ソフトウェア開発文書検索装置の実施例１，２に共通するハードウェア構成図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例１，２に係るソフトウェア開発文書検索装置について図面を用いて説明する。実施例１は、図１〜図９、及び図１２を用いて説明する。実施例２は、図１０及び図１１を用いて説明する。以下、ソフトウェア開発文書検索装置を「本装置」と略すことがある。また、以下の実施例において、「ソフトウェア開発文書」とは、ソフトウェア開発に関わる文書の総称であり、例えば、設計文書、仕様書、技術文書等がソフトウェア開発文書に該当する。
【実施例１】
【００１１】
図１は、実施例１に係るソフトウェア開発文書検索装置（本装置）の構成図である。本装置１Ａは、ソースコード情報取得部５と、文書解析部６と、関連スコア算出部７と、重要度情報記憶部８と、表示部９と、を備える。なお、実施例１に係る本装置１Ａと、図１０及び図１１を用いて後述する実施例２に係る本装置１Ｂとを総称する場合には「本装置１」という。
【００１２】
ソースコード情報取得部５は、ソフトウェア資産を入力し、ソースコード用語に関する情報を取得する。文書解析部６は、設計文書３に含まれる文書用語を、設計文書３の構成要素毎に抽出する。関連スコア算出部７は、調査目的に対応するソースコード用語分類の重要度に基づいて関連スコアを算出する。
【００１３】
重要度情報記憶部８は、ソースコード用語の分類について、重要度情報を記憶するとともに、本装置１Ａの利用者が指定したソフトウェア調査の調査目的情報４を予め記憶する。表示部９は、関連スコアに基づいて関連する設計文書名を表示する。調査目的情報取得部１１は、ソースコード調査の調査目的情報４を取得して、重要度情報記憶部８へ入力する。以下、本装置１Ａの全体的な機能、作用及び効果の概要を説明する。
【００１４】
ソースコード情報取得部５は、ソフトウェア調査の対象となるソースコード２を特徴付けるソースコード用語と、それに対するソースコード用語分類とをソフトウェア資産から取得する。なお、「ソフトウェア資産」とは、ソフトウェアを定義する資産であって、図１によれば、ソフトウェア資産として、ソースコード２のみが例示されている。
【００１５】
しかし、ソフトウェア資産は、それに限定するものではない。例えば、ソフトウェア資産は、ソースコード２に関連する情報として、ソースコード２の変更内容を記載したソースコード変更票、マニュアル、及びログ（例えば、ソフトウェアの稼働履歴情報）等を含んでも良い。
【００１６】
関連スコア算出部７は、ソースコード用語の群と、文書用語の群と、を対照し共通する用語に対し、両者の関連性を数値化した関連スコアを算出する。関連スコアの算出は、ソフトウェア調査の調査目的情報４と、ソースコード用語分類の重要度と、に基づいて行う。
【００１７】
ソースコード用語の群は、ソースコード情報取得部５により取得する。文書用語の群は、設計文書３に含まれる文書用語を文書解析部６から取得する。ソフトウェア調査の調査目的情報４は、本装置１Ａの利用者が指定する。
【００１８】
その利用者が指定した調査目的情報４は、調査目的情報取得部１１によって取得される。取得された調査目的情報４は、重要度情報記憶部８に記憶される。調査目的に対応するソースコード用語分類の重要度も、重要度情報記憶部８に予め記憶されている。
【００１９】
上述のように、関連スコア算出部７は、本装置１Ａの利用者が指定したソフトウェア調査の調査目的情報４と、その調査目的に対応づけて重要度情報記憶部８に予め記憶されているソースコード用語分類の重要度と、に基づいて、ソースコード情報取得部５で取得したソースコード用語の群と、文書解析部６から取得した文書用語の群と、を対照し、共通する用語について、関連スコアを算出する。
【００２０】
このように算出された関連スコアは、利用者の調査目的情報４に適合するように算出されている。この関連スコアに基づいて、ソースコード２に関連する設計文書名が表示部９に表示される。その結果、表示部９により表示された設計文書名は、利用者の調査目的情報４に適合したものである。したがって、本装置１Ａは、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く提示できる。
【００２１】
以下、図１の本装置１Ａの動作について、より詳細に説明する。ソースコード情報取得部５は、本装置１Ａの利用者がソースコード２からソフトウェア調査の対象として範囲を指定した部分をソースコード片情報として取得し、本装置１Ａに具備された主記憶装置２２（図１２）等の記憶媒体に記憶する。
【００２２】
図２は、ソースコード２の一例を示す図である。本装置１Ａの利用者がソースコード片２Ａを調査対象の範囲に指定した場合、ソースコード情報取得部５は、ソースコード２における00101000行から00119000行までのソースコード行を取得する。
【００２３】
次に、ソースコード情報取得部５は、ソースコード片２Ａの情報から、３つの用語群、つまり変数名群、専門用語群、及び修正識別子群を抽出する。変数名群は、変数名を要素とする。専門用語群は、コメント文に記載された専門用語を要素とする。修正識別子群は、コメント文に記載された修正識別子を要素とする。
【００２４】
なお、本装置１Ａでは、３つの用語群、つまり変数名群、専門用語群、及び修正識別子群を抽出するが、これらに限定するものではない。これら３つ以外に、例えば、関数名、モジュール名、ソースファイルのファイル名等を用語群として追加しても良い。
【００２５】
図３は、図１の本装置１Ａにおけるソースコード情報取得部５のソースコード用語抽出処理を示すフローチャートである。ソースコード情報取得部５は、ソースコード用語抽出処理を実行することによって、変数名群、専門用語群、修正識別子群を抽出する。このソースコード用語抽出処理は、本装置１Ａの利用者がソースコード２からソフトウェア調査の対象として範囲を指定する操作の完了を受けて開始する。
【００２６】
ソースコード情報取得部５は、図３に示すように、まず、第１ステップＳ１として、ソースコード情報取得部５で取得したソースコード片情報から変数名用語分類に属する用語を抽出する。次に、第２ステップＳ２として、ソースコード片情報から専門用語分類と修正識別子分類に属する用語をそれぞれ抽出する。なお、第１ステップＳ１と第２ステップＳ２とは、必ずしもこの順番どおりに実行される必要はなく、逆の順番にしても良いし、両方の処理を並列に実行しても良い。
【００２７】
図４は、図３の第１ステップＳ１の詳細を示すフローチャートである。ソースコード情報取得部５は、まずソースコード片情報に含まれるソースコード各行からコメント文に相当する部分を除外する（Ｓ１１）。
【００２８】
次に、ソースコード情報取得部５は、ソースコード各行を連結し複文化する（Ｓ１２）。次に、ソースコード情報取得部５は、ソースコード２を記述したプログラム言語で定義された区切り文字（例えば、セミコロン“；”、空白、丸括弧“（）”、イコール“＝”等）で複文化したソースコード２を分割する（Ｓ１３）。
【００２９】
次に、ソースコード情報取得部５は、ステップＳ１３で分割して得た用語からプログラム言語で定義された予約語（ＩＦ、ＥＬＳＥ、ＬＥＦＴ、ＭＩＤ、ＩＮＳＥＲＴ等）、及び数字のみからなる用語を除く（Ｓ１４）。以上の処理を経て得られた用語を変数名用語分類に属するものとして、本装置１Ａの主記憶装置２２（図１２）、その他不図示の記憶装置に記憶する。
【００３０】
ソースコード片２Ａを例にすると、FLAG_SFX_IN_MSG、FALSE、TRANID、Tran、TRANCLASS、USERID、DATE、System、MsgSfx、SRV_ADDR、SRV_STATUS、Msg等が変数名用語分類として取得される。なお、第１ステップＳ１について、プログラム言語によっては、コンパイル時に生成可能なコンパイルリストを利用して変数名を抽出する等の工夫をしても良い。
【００３１】
図５は、図３の第２ステップＳ２の詳細を示すフローチャートである。ソースコード情報取得部５は、まずソースコード片情報のソースコード各行からコメント文に相当する部分を取得する（Ｓ２１）。次に、ソースコード情報取得部５は、コメント文を、空白、コロン等を区切りと見なして用語に分割する（Ｓ２２）。なお、分割した用語が名詞であり、かつ前（後）にも名詞が続く場合には、それらを連結する等の処理を加えても良い。
【００３２】
次に、ソースコード情報取得部５は、ステップＳ２２で取得した用語から、図３の第１ステップＳ１で取得した変数名用語類を参照して変数名を除外する（Ｓ２３）。次に、ソースコード情報取得部５は、ステップＳ２３で取得した用語群のうち、修正識別子のコード規約に適合するものは修正識別子分類の用語として分類し（本実施例では、修正識別子のコード規約はシャープ“#”で始まる単語）、それ以外は専門用語分類の用語に分類する（Ｓ２４）。
【００３３】
ソースコード片２Ａを例にすると、ソースコード情報取得部５は、第２ステップＳ２によって、“#Ｘ＿Ｖ１３０６＿０２＿１０１９”が修正識別子分類の用語、“SFX参照フラグ”、“トランザクション識別子”、“トランザクション分類”、“担当者ＩＤ”、“メッセージサフィックス情報”、“第１セグメント”等を専門用語分類の用語として取得する。
【００３４】
図６は、図１に示した文書解析部６の処理結果の一例を示す図である。文書解析部６は、設計文書３に含まれる文書用語を、設計文書３の構成要素、例えば章や節毎に抽出し、本装置１Ａの主記憶装置２２（図１２）に記憶する。なお、文書解析部６の処理は、形態素解析等の自然言語解析処理技術を用いて実現することが可能である。
【００３５】
図７は、図１の重要度情報記憶部８に記憶されたソースコード用語分類に関する重要度情報の一例を示す表である。重要度情報記憶部８は、ソースコード用語分類の重要度と、ソフトウェア調査の調査目的情報４と、に関するそれぞれの情報を記憶する。
【００３６】
関連スコア算出部７は、調査目的に対応するソースコード用語分類ごとの重要度を重要度情報記憶部８より取得する。この重要度情報は、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く、一覧して提示するための優先順位として作用する。
【００３７】
また、関連スコア算出部７は、ソースコード用語取得部５で取得した変数名用語の群、専門用語の群、及び修正識別子の群に対し、文書解析部６で取得した文書用語を比較する。その際に、関連スコア算出部７は、重要度情報を加味して関連スコアを算出する。
【００３８】
図８は、図１の本装置１Ａにおける関連スコア算出部７の処理を示すフローチャートである。まず、関連度スコア算出部７は、利用者から本装置１Ａに入力された調査目的情報４に基づいて、それに対応する用語分類ごとの重要度情報の組合せを重要度情報記憶部８より取得する（Ｓ３１）。
【００３９】
次に、関連度スコア算出部７は、文書解析部６で取得した設計文書内用語群の１つを選択する（Ｓ３２）。次に、関連度スコア算出部７は、設計文書内用語群と変数名用語群との類似度を算出し、専門用語群と修正識別子群との類似度も算出し、ステップＳ３１で取得した重要度情報を加味して関連スコアを算出する（Ｓ３３）。
【００４０】
なお、関連度スコア算出部７は、設計文書内用語群と変数名用語群との類似度をＳ{variable}、設計文書内用語群と専門用語群との類似度をＳ{term}、設計文書内用語群と修正識別子群の類似度をＳ{repair}、また各用語群に対応する重要情報をＷ{・}とすれば、関連スコアを次の算出式に従って算出しても良い。
【００４１】
関連スコア：
＝Ｗ{variable}*Ｓ{variable} + Ｗ{term}*Ｓ{term} + Ｗ{repair}*Ｓ{repair}.
【００４２】
また、集合の類似度を算出する方法として、Jaccard係数、Dice係数、Simpson係数等が知られており、その何れか、もしくは改良したものを採用することで実現可能である。次に、別の設計書内用語群があればステップＳ３２とステップＳ３３を繰り返し、なければ処理を終了する。表示部９は、関連スコア算出部７で算出した関連スコアに基づいて、例えば、関連スコアの降順で、関連する設計文書名を表示する。
【００４３】
図９は、図１の本装置１Ａにおいて、表示部９により表示する表示画面として、図１２の出力装置２５その他の表示画面３を例示する図である。本装置１Ａの利用者は、表示画面３を用いて本装置１Ａに対して処理を指示する。表示画面３は、表示されたボタンを利用者がマウスクリックする等により指示を受け付ける。
【００４４】
表示画面３において、画面コンポーネント１４上に、ソースコード２が表示されている。これに対し、利用者は、調査したいソースコード２Ａ（図２参照）を選択する。同様に、利用者は、画面コンポーネント１７のボタン等に対し、該当する調査目的情報４を選択し、本装置１Ａに対して処理を指示する。本装置１Ａは、処理の結果を、例えば表形式１５等で表示する。また、利用者は、検索結果の１つ選んで、文書ビュー１６で該当する文書を閲覧する等しても良い。
【００４５】
表示部９は、関連スコアに基づいて、多数の設計文書３のうち、少なくとも一つを出力する。一例として下記の表示態様が好ましい。
・最も関連スコアが高い設計文書が表示されても良い。すなわち、図９の表形式１５において、＃第１行に示すFile01、第２章、第２０節、関連スコア20.2、文書ビュー１６で該当する文書を表示する表示態様である。
・関連スコアの降順（高い順）に設計文書３のリスト（例えば、上位Ｎ個の設計文書のリスト）が文書ビュー１６に表示（不図示）されても良い。
【００４６】
本装置１Ａの利用者は、調査対象のソースコード２について、ソフトウェア資産であるソースコード２から対象範囲を選択し、その調査目的情報４を選択することで、関連する設計文書３を検索できるため、ソフトウェア調査を効率的に実施できる。
【実施例２】
【００４７】
図１の本装置における重要度情報記憶部８に記憶された重要度情報は、本来は検索対象の設計文書３の性質に応じて決められるものである。実施例２では、検索対象となる設計文書群の性質に応じた本装置１Ｂについて説明する。
【００４８】
図１０は、本発明の実施例２に係るソフトウェア開発文書検索装置（これは本装置１Ｂ）の構成図である。本装置１Ｂの構成要素のうち、ソースコード情報取得部５、文書解析部６、関連スコア算出部７、表示部９、及び調査目的情報取得部１１については、実施例１に係る本装置１Ａと同様である。そのため、重複する説明は割愛し、重要度情報生成部１０について説明する。
【００４９】
重要度情報生成部１０は、設計文書３を入力に、設計文書３の構成要素（例えば、章・節等）で述べられている内容を判定するとともに、構成要素内の単語組成を元に重要度情報を生成する。
【００５０】
図１１は、図１０の本装置１Ｂにおける重要度情報生成部１０の処理を示すフローチャートである。重要度情報生成部１０は、設計文書３が新規登録された時、又は、設計文書３が修正された時、ほか適時を起点にして処理を開始する。
【００５１】
重要度情報生成部１０は、まず、設計文書３を、構成要素（章、節等）に分割する（Ｓ４１）。次に、ステップＳ４１で分割された構成要素内で述べられている内容を判定する（Ｓ４２）。判定結果は、調査目的情報４のバリエーションに対応し、本装置１Ｂでは、「設計思想」、「処理説明」、又は「修正履歴」に判定される。
【００５２】
判定方法は、文章の特徴に基づく方法がある。例えば、章・節のタイトルに“設計方針”を含み、文章内に“概念を導入する”と記載されている場合は、“設計思想”と判定する。また、文章内にフローチャートやＰＡＤ（Program Analysis Diagram）等の図を含んでいる場合は、“処理説明”と判定する。また、文章内に“下記のような修正を行う”と記載されている場合は、“修正履歴”と判定する。
【００５３】
次に、ステップＳ４１で分割された構成要素の単語組成を算出する（Ｓ４３）。構成要素の単語組成とは、構成要素に含まれる単語のうち、ソースコード用語分類に該当する単語の割合のことをいう。本装置１Ｂにおける構成要素の単語組成は、「変数」、「専門用語」、又は「修正識別子」に該当する単語数n_{変数}、n_{専門用語}、n_{修正識別子}を、全単語数で割ったものとする。
【００５４】
次に、重要度情報生成部１０は、ステップＳ４２で得た設計文書３の構成要素の内容判定毎に、ステップＳ４３で得た構成要素の単語組成を集計し、重要度情報を生成する（Ｓ４４）。集計の方法は、例えば、単語組成の調和平均、最頻値等を採用しても良い。
【００５５】
図１２は、ソフトウェア開発文書検索装置（本装置）１のハードウェア構成図である。ハードウェア構成は、実施例１，２に共通する。本装置１は、１以上の計算機であり、例えば、プロセッサ２１、主記憶装置２２、補助記憶装置２３、入力装置２４、出力装置２５、及び、通信装置２６を備えた情報処理装置２０で良い。上述のように、本装置１は、実施例１に係る本装置１Ａと、実施例２に係る本装置１Ｂと、を総称するものである。
【００５６】
これらは図示しないが、バス等の通信手段を介して互いに通信可能に接続されている。なお、本装置１は、１以上の計算機に代えて、仮想サーバやクラウドシステムにおけるクラウドサーバのように仮想的なリソースを用いて実現された仮想的な装置でも良い。
【００５７】
プロセッサ２１は、例えば、ＣＰＵ（Central Processing Unit）や、ＭＰＵ（Micro Processing Unit）を用いて構成される。プロセッサ２１が、主記憶装置２２に格納されているプログラムを読み出して実行することにより、本装置１の様々な機能が実現される。
【００５８】
主記憶装置２２は、プログラムやデータを記憶する装置であり、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、不揮発性半導体メモリ（ＮＶＲＡＭ（Non Volatile RAM））等である。
【００５９】
補助記憶装置２３は、例えば、ハードディスクドライブ、ＳＳＤ（Solid State Drive）、光学式記憶装置（ＣＤ（Compact Disc）、ＤＶＤ(Digital Versatile Disc)等）、ストレージシステム、ＩＣカード、ＳＤメモリカードや光学式記録媒体等で、読取と書込が可能な記録媒体、又は、クラウドサーバの記憶領域等が例示列挙される。
【００６０】
補助記憶装置２３に格納されているプログラムやデータは、主記憶装置２２に随時ロードされる。補助記憶装置２３は、例えば、ネットワークストレージのように通信手段を介して接続するものであっても良い。入力装置２４は、外部入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、タッチパネル、可搬型記録媒体の読取装置等である。
【００６１】
出力装置２５は、処理経過や処理結果等の各種情報を提供するユーザインタフェースであり、例えば、画面表示装置（ＬＣＤ（Liquid Crystal Display）、グラフィックカード等）、印字装置、可搬型記録媒体の書込装置等である。
【００６２】
なお、例えば、通信装置２６を介して他の本装置との間で情報の入力や出力を行う構成、即ち、通信装置２６が、入力装置２４や出力装置２５として機能するようにしても良い。通信装置２６は、装置間の通信を実現する有線方式又は無線方式の通信インタフェースであり、例えば、ＮＩＣ（Network Interface Card）や無線通信モジュール等である。
【００６３】
上述した実施例１，２は、本発明の説明のための例示であり、本発明の範囲を実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、画面応答情分析装置を、単体の計算機で構築しても良いし、クライアント−サーバシステムとして構築しても良い。
【００６４】
クライアント−サーバシステムで構築する場合、サーバ側で画面応答情分析装置の主な処理を実行し、クライアント側で表示処理のみを実行しても良い。また、上述した実施形態に係る具体的な値は、あくまで説明のための例であり、本発明はこれらの値に限定されるものではない。
【００６５】
また、上述した実施形態に係る機能の一部又は全ては、集積回路等のハードウェアで実現されても良いし、ソフトウェアで実現してされても良い。また、各機能を実行するコンピュータプログラム、データ、ファイル等の情報は、メモリ、ハードディスク、ＳＳＤ等の記憶装置又はＣＤ、ＤＶＤ等の記憶媒体に格納されて良い。
【００６６】
［補足］
本装置１を以下のように総括できる。
［１］本装置１は、ソースコード調査に必要なソフトウェア開発文書を提示するための検索装置である。本装置１は、ソースコード情報取得部５と、文書解析部６と、調査目的情報取得部１１と、関連スコア算出部７と、重要度情報記憶部８と、表示部９と、を備える。
【００６７】
ソースコード情報取得部５は、調査対象となるソースコード２を特徴付ける１以上のソースコード用語と１以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得する。文書解析部６は、１以上の設計文書から１以上の文書用語を抽出する。調査目的情報取得部１１は、ソースコードの調査目的情報を取得する。
【００６８】
関連スコア算出部７は、調査目的情報４とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得する。さらに、関連スコア算出部７は、１以上の設計文書３の各々について、取得した１以上のソースコード用語と、その設計文書３から抽出した１以上の文書用語と、のうちの共通する用語に対応したソースコード用語分類の重要度に基づいて関連スコアを算出する。
【００６９】
重要度情報記憶部８は、取得された調査目的情報４及び、調査目的に対応してソースコード用語分類の重要度を記憶する。関連スコア算出部７は、ソースコード情報取得部５で取得したソースコード用語の群と、文書解析部６で抽出した文書用語の群と、で共通する用語について、重要度に基づいて関連スコアを算出する。表示部９は、関連スコアに基づいて１以上の設計文書３の少なくとも一つを出力する。すなわち、表示部９は、設計文書３を関連スコアの高い順に、見易く一覧表示して出力する。
【００７０】
上述のように、関連スコア算出部７は、本装置１の利用者が指定したソフトウェア調査の調査目的情報４と、その調査目的に対応づけて重要度情報記憶部８に予め記憶されているソースコード用語分類の重要度と、に基づいて、ソースコード情報取得部５で取得したソースコード用語の群と、文書解析部６から取得した文書用語の群と、を対照し、共通する用語について、関連スコアを算出する。
【００７１】
このように算出された関連スコアは、利用者の調査目的情報４に適合するように算出されている。この関連スコアに基づいて、ソースコード２に関連する設計文書名が表示部９に表示される。すなわち、表示部９に表示された設計文書名は、利用者の調査目的情報４に適合したものである。その結果、本装置１Ａは、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く提示できる。
【００７２】
［２］上記［１］に記載の本装置１において、ソフトウェア資産は、ソースコード２そのものであると考えてよい。また、ソースコード情報取得部５は、調査対象となるソースコード２からソースコード用語とソースコード用語の分類とを抽出する。抽出されたソースコード用語、及びその分類を用い、文書解析部６から取得した文書用語を検索し、共通する用語をサーチすれば、利用者の調査目的情報４に適合するような、ソースコード２に関連する設計文書名を容易に検索ヒットできる。
【００７３】
［３］実施例２に係る本装置１Ｂ（図１０）は、以下の処理を行う重要度情報生成部１０をさらに備える。
・文書の記載内容における構成要素の中から、１以上のソースコード２に対して調査目的情報４に適合するものを選定する。
・構成要素の単語組成を算出する。
・調査目的情報４毎に単語組成を集計する。
【００７４】
このような本装置１Ｂによれば、重要度情報生成部１０が、設計文書３を構成要素（章、節等）に分割し（Ｓ４１）、そのように分割された構成要素内で述べられている内容を判定する（Ｓ４２）。その結果、利用者の調査目的情報４のバリエーションに適合するように、設計文書３を「設計思想」、「処理説明」、又は「修正履歴」といった内容にまで判定できる。
【００７５】
［４］上記［３］に記載の本装置１において、重要度情報記憶部８は、検索の結果に対するフィードバック情報に基づいて重要度情報を生成する。フィードバック情報は、本装置１Ａが使い込まれる程に検索精度を高める作用効果がある。
【００７６】
［５］フィードバック情報は、検索の結果に対する利用者の評価値が集計された情報である。このフィードバック情報として、例えば、「いいね！」ボタン等による反響の程度を用いることもできる。すなわち、「いいね！」ボタンの押された数に比例して反響の程度を数値化できる。これ利用者の評価値が集計された情報と考えられる。
【００７７】
また、本方法を以下のように総括できる。
［６］本方法は、ソースコード調査に必要なソフトウェア開発文書を提示するソフトウェア開発文書検索方法であり、以下のステップを有する。まず、文書解析部６が、１以上の設計文書３から１以上の文書用語を抽出するステップを実行する。次に、調査目的情報取得部１１が、ソースコード調査の調査目的情報４を取得する調査目的情報取得ステップを実行する。
【００７８】
次に、関連スコア算出部７が、ソースコード用語分類毎の重要度を取得するステップを実行する。その重要度は、取得した調査目的情報４に対応する。すなわち、関連スコア算出部７は、調査目的情報４と、ソースコード用語分類毎の重要度と、の対応関係を示す重要度情報から、ソースコード用語分類毎の重要度を取得する。
【００７９】
次に、関連スコア算出部７が、重要度に基づいて関連スコアを算出するステップを実行する。この重要度は、設計文書３それぞれについて、取得したソースコード用語と、その設計文書３から抽出した文書用語と、を対照して、それらの共通する用語に対応したソースコード用語分類についての重要度である。
【００８０】
この重要度について、より詳しくは、関連スコア算出部７が、１以上の設計文書３の各々について、取得した１以上のソースコード用語と、その設計文書３から抽出した１以上の文書用語と、のうちの共通する用語に対応したソースコード用語分類についての重要度である。
【００８１】
最後に、表示部９が、関連スコアに基づいて１以上の設計文書３の少なくとも一つを出力するステップを実行する。なお、最終段階で関連スコア算出部７が関連スコアを算出するステップと、表示部９が設計文書３出力するステップと、を実行する以外の順番は、何れでも構わない。
【符号の説明】
【００８２】
１，１Ａ，１Ｂ  ソフトウェア開発文書検索装置（本装置）
【図１】
2020194238.tif 000003
【図２】
2020194238.tif 000004
【図３】
2020194238.tif 000005
【図４】
2020194238.tif 000006
【図５】
2020194238.tif 000007
【図６】
2020194238.tif 000008
【図７】
2020194238.tif 000009
【図８】
2020194238.tif 000010
【図９】
2020194238.tif 000011
【図１０】
2020194238.tif 000012
【図１１】
2020194238.tif 000013
【図１２】
2020194238.tif 000014