JP7240252B2 - ソフトウェア開発文書検索装置及び方法 - Google Patents

ソフトウェア開発文書検索装置及び方法 Download PDF

Info

Publication number
JP7240252B2
JP7240252B2 JP2019098042A JP2019098042A JP7240252B2 JP 7240252 B2 JP7240252 B2 JP 7240252B2 JP 2019098042 A JP2019098042 A JP 2019098042A JP 2019098042 A JP2019098042 A JP 2019098042A JP 7240252 B2 JP7240252 B2 JP 7240252B2
Authority
JP
Japan
Prior art keywords
source code
information
document
importance
terms
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.)
Active
Application number
JP2019098042A
Other languages
English (en)
Other versions
JP2020194238A (ja
Inventor
秀朗 伊藤
岐勇 飯島
裕一郎 鈴木
信治 伊藤
周平 野尻
良太 三部
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019098042A priority Critical patent/JP7240252B2/ja
Publication of JP2020194238A publication Critical patent/JP2020194238A/ja
Application granted granted Critical
Publication of JP7240252B2 publication Critical patent/JP7240252B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ソフトウェア開発文書検索装置及び方法に関する。
ソフトウェア製品の保守業務において、顧客からの問合せに対応するため、ソフトウェア保守担当者(以下、「保守担当者」)は、ソースコードをはじめ、既存ソフトウェア資産を参照して、当該ソフトウェアを調査する。一般的に、ソースコードの設計思想や処理説明等に関し、ソースコードと設計文書の双方を一意に紐づける識別子は存在しない。保守担当者は、この条件下で設計文書の検索を余儀なくされ、検索に相当の困難を伴う。例えば、保守担当者は、調査対象のソースコード周辺の変数やコメント文から読み取れる用語などを手掛かりに設計文書を検索する必要があり、ソースコードと設計文書間のトレースの難易度は高いのが実情である。
このような課題に対し、特許文献1には、要求仕様書、基本設計書、詳細設計書等の文書に記載された項目の説明内容を解析して、項目間で共通する用語群の類似度に基づいて関連付けを行い、その関連付けの結果をトレーサビリティマトリクスとして出力する技術が開示されている。
特開2014-232505号公報
ソフトウェア製品の保守業務においては、バグ修正等の保守作業を実施したいソースコード行とその周辺(以下、「ソースコード片」ともいう)についての設計思想、処理の説明、制限事項等を把握するために、関連する設計文書を調査する必要がある。しかしながら、特許文献1には、類似する項目を持った文書間で関連付けがされるにすぎず、調査目的情報に適した関連する設計文書を検索する技術は開示も示唆もされていない。
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ソースコードの調査目的情報に適した設計文書を容易に検索できるソフトウェア開発文書検索装置を提供することにある。
上記課題を解決するための本発明は、調査対象となるソースコードを特徴付ける1以上のソースコード用語と1以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得するソースコード情報取得部と、1以上の設計文書から1以上の文書用語を抽出する文書解析部と、前記ソースコードの調査目的情報を取得する調査目的情報取得部と、調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得し、前記1以上の設計文書の各々について、取得した前記1以上のソースコード用語と前記設計文書から抽出した前記1以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出する関連スコア算出部と、前記関連スコアに基づいて前記1以上の設計文書の少なくとも一つを出力する表示部と、を備えた、ものである。
本発明によれば、ソースコードの調査目的情報に適した設計文書を容易に検索できるソフトウェア開発文書検索装置を提供できる。
実施例1に係るソフトウェア開発文書検索装置の構成図である。 ソースコードの一例を示す図である。 図1の本装置におけるソースコード情報取得部のソースコード用語抽出処理を示すフローチャートである。 図3の第1ステップの詳細を示すフローチャートである。 図3の第2ステップの詳細を示すフローチャートである。 図1に示した文書解析部の処理結果の一例を示す図である。 図1の重要度情報記憶部に記憶された重要度情報の一例を示す表である。 図1の本装置における関連スコア算出部の処理を示すフローチャートである。 図1の本装置において、表示部により表示する表示画面(図12の出力装置)を例示する図である。 本発明の実施例2に係るソフトウェア開発文書検索装置の構成図である。 図10の本装置における重要度情報生成部の処理を示すフローチャートである。 ソフトウェア開発文書検索装置の実施例1,2に共通するハードウェア構成図である。
以下、本発明の実施例1,2に係るソフトウェア開発文書検索装置について図面を用いて説明する。実施例1は、図1~図9、及び図12を用いて説明する。実施例2は、図10及び図11を用いて説明する。以下、ソフトウェア開発文書検索装置を「本装置」と略すことがある。また、以下の実施例において、「ソフトウェア開発文書」とは、ソフトウェア開発に関わる文書の総称であり、例えば、設計文書、仕様書、技術文書等がソフトウェア開発文書に該当する。
図1は、実施例1に係るソフトウェア開発文書検索装置(本装置)の構成図である。本装置1Aは、ソースコード情報取得部5と、文書解析部6と、関連スコア算出部7と、重要度情報記憶部8と、表示部9と、を備える。なお、実施例1に係る本装置1Aと、図10及び図11を用いて後述する実施例2に係る本装置1Bとを総称する場合には「本装置1」という。
ソースコード情報取得部5は、ソフトウェア資産を入力し、ソースコード用語に関する情報を取得する。文書解析部6は、設計文書3に含まれる文書用語を、設計文書3の構成要素毎に抽出する。関連スコア算出部7は、調査目的に対応するソースコード用語分類の重要度に基づいて関連スコアを算出する。
重要度情報記憶部8は、ソースコード用語の分類について、重要度情報を記憶するとともに、本装置1Aの利用者が指定したソフトウェア調査の調査目的情報4を予め記憶する。表示部9は、関連スコアに基づいて関連する設計文書名を表示する。調査目的情報取得部11は、ソースコード調査の調査目的情報4を取得して、重要度情報記憶部8へ入力する。以下、本装置1Aの全体的な機能、作用及び効果の概要を説明する。
ソースコード情報取得部5は、ソフトウェア調査の対象となるソースコード2を特徴付けるソースコード用語と、それに対するソースコード用語分類とをソフトウェア資産から取得する。なお、「ソフトウェア資産」とは、ソフトウェアを定義する資産であって、図1によれば、ソフトウェア資産として、ソースコード2のみが例示されている。
しかし、ソフトウェア資産は、それに限定するものではない。例えば、ソフトウェア資産は、ソースコード2に関連する情報として、ソースコード2の変更内容を記載したソースコード変更票、マニュアル、及びログ(例えば、ソフトウェアの稼働履歴情報)等を含んでも良い。
関連スコア算出部7は、ソースコード用語の群と、文書用語の群と、を対照し共通する用語に対し、両者の関連性を数値化した関連スコアを算出する。関連スコアの算出は、ソフトウェア調査の調査目的情報4と、ソースコード用語分類の重要度と、に基づいて行う。
ソースコード用語の群は、ソースコード情報取得部5により取得する。文書用語の群は、設計文書3に含まれる文書用語を文書解析部6から取得する。ソフトウェア調査の調査目的情報4は、本装置1Aの利用者が指定する。
その利用者が指定した調査目的情報4は、調査目的情報取得部11によって取得される。取得された調査目的情報4は、重要度情報記憶部8に記憶される。調査目的に対応するソースコード用語分類の重要度も、重要度情報記憶部8に予め記憶されている。
上述のように、関連スコア算出部7は、本装置1Aの利用者が指定したソフトウェア調査の調査目的情報4と、その調査目的に対応づけて重要度情報記憶部8に予め記憶されているソースコード用語分類の重要度と、に基づいて、ソースコード情報取得部5で取得したソースコード用語の群と、文書解析部6から取得した文書用語の群と、を対照し、共通する用語について、関連スコアを算出する。
このように算出された関連スコアは、利用者の調査目的情報4に適合するように算出されている。この関連スコアに基づいて、ソースコード2に関連する設計文書名が表示部9に表示される。その結果、表示部9により表示された設計文書名は、利用者の調査目的情報4に適合したものである。したがって、本装置1Aは、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く提示できる。
以下、図1の本装置1Aの動作について、より詳細に説明する。ソースコード情報取得部5は、本装置1Aの利用者がソースコード2からソフトウェア調査の対象として範囲を指定した部分をソースコード片情報として取得し、本装置1Aに具備された主記憶装置22(図12)等の記憶媒体に記憶する。
図2は、ソースコード2の一例を示す図である。本装置1Aの利用者がソースコード片2Aを調査対象の範囲に指定した場合、ソースコード情報取得部5は、ソースコード2における00101000行から00119000行までのソースコード行を取得する。
次に、ソースコード情報取得部5は、ソースコード片2Aの情報から、3つの用語群、つまり変数名群、専門用語群、及び修正識別子群を抽出する。変数名群は、変数名を要素とする。専門用語群は、コメント文に記載された専門用語を要素とする。修正識別子群は、コメント文に記載された修正識別子を要素とする。
なお、本装置1Aでは、3つの用語群、つまり変数名群、専門用語群、及び修正識別子群を抽出するが、これらに限定するものではない。これら3つ以外に、例えば、関数名、モジュール名、ソースファイルのファイル名等を用語群として追加しても良い。
図3は、図1の本装置1Aにおけるソースコード情報取得部5のソースコード用語抽出処理を示すフローチャートである。ソースコード情報取得部5は、ソースコード用語抽出処理を実行することによって、変数名群、専門用語群、修正識別子群を抽出する。このソースコード用語抽出処理は、本装置1Aの利用者がソースコード2からソフトウェア調査の対象として範囲を指定する操作の完了を受けて開始する。
ソースコード情報取得部5は、図3に示すように、まず、第1ステップS1として、ソースコード情報取得部5で取得したソースコード片情報から変数名用語分類に属する用語を抽出する。次に、第2ステップS2として、ソースコード片情報から専門用語分類と修正識別子分類に属する用語をそれぞれ抽出する。なお、第1ステップS1と第2ステップS2とは、必ずしもこの順番どおりに実行される必要はなく、逆の順番にしても良いし、両方の処理を並列に実行しても良い。
図4は、図3の第1ステップS1の詳細を示すフローチャートである。ソースコード情報取得部5は、まずソースコード片情報に含まれるソースコード各行からコメント文に相当する部分を除外する(S11)。
次に、ソースコード情報取得部5は、ソースコード各行を連結し複文化する(S12)。次に、ソースコード情報取得部5は、ソースコード2を記述したプログラム言語で定義された区切り文字(例えば、セミコロン“;”、空白、丸括弧“()”、イコール“=”等)で複文化したソースコード2を分割する(S13)。
次に、ソースコード情報取得部5は、ステップS13で分割して得た用語からプログラム言語で定義された予約語(IF、ELSE、LEFT、MID、INSERT等)、及び数字のみからなる用語を除く(S14)。以上の処理を経て得られた用語を変数名用語分類に属するものとして、本装置1Aの主記憶装置22(図12)、その他不図示の記憶装置に記憶する。
ソースコード片2Aを例にすると、FLAG_SFX_IN_MSG、FALSE、TRANID、Tran、TRANCLASS、USERID、DATE、System、MsgSfx、SRV_ADDR、SRV_STATUS、Msg等が変数名用語分類として取得される。なお、第1ステップS1について、プログラム言語によっては、コンパイル時に生成可能なコンパイルリストを利用して変数名を抽出する等の工夫をしても良い。
図5は、図3の第2ステップS2の詳細を示すフローチャートである。ソースコード情報取得部5は、まずソースコード片情報のソースコード各行からコメント文に相当する部分を取得する(S21)。次に、ソースコード情報取得部5は、コメント文を、空白、コロン等を区切りと見なして用語に分割する(S22)。なお、分割した用語が名詞であり、かつ前(後)にも名詞が続く場合には、それらを連結する等の処理を加えても良い。
次に、ソースコード情報取得部5は、ステップS22で取得した用語から、図3の第1ステップS1で取得した変数名用語類を参照して変数名を除外する(S23)。次に、ソースコード情報取得部5は、ステップS23で取得した用語群のうち、修正識別子のコード規約に適合するものは修正識別子分類の用語として分類し(本実施例では、修正識別子のコード規約はシャープ“#”で始まる単語)、それ以外は専門用語分類の用語に分類する(S24)。
ソースコード片2Aを例にすると、ソースコード情報取得部5は、第2ステップS2によって、“#X_V1306_02_1019”が修正識別子分類の用語、“SFX参照フラグ”、“トランザクション識別子”、“トランザクション分類”、“担当者ID”、“メッセージサフィックス情報”、“第1セグメント”等を専門用語分類の用語として取得する。
図6は、図1に示した文書解析部6の処理結果の一例を示す図である。文書解析部6は、設計文書3に含まれる文書用語を、設計文書3の構成要素、例えば章や節毎に抽出し、本装置1Aの主記憶装置22(図12)に記憶する。なお、文書解析部6の処理は、形態素解析等の自然言語解析処理技術を用いて実現することが可能である。
図7は、図1の重要度情報記憶部8に記憶されたソースコード用語分類に関する重要度情報の一例を示す表である。重要度情報記憶部8は、ソースコード用語分類の重要度と、ソフトウェア調査の調査目的情報4と、に関するそれぞれの情報を記憶する。
関連スコア算出部7は、調査目的に対応するソースコード用語分類ごとの重要度を重要度情報記憶部8より取得する。この重要度情報は、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く、一覧して提示するための優先順位として作用する。
また、関連スコア算出部7は、ソースコード用語取得部5で取得した変数名用語の群、専門用語の群、及び修正識別子の群に対し、文書解析部6で取得した文書用語を比較する。その際に、関連スコア算出部7は、重要度情報を加味して関連スコアを算出する。
図8は、図1の本装置1Aにおける関連スコア算出部7の処理を示すフローチャートである。まず、関連度スコア算出部7は、利用者から本装置1Aに入力された調査目的情報4に基づいて、それに対応する用語分類ごとの重要度情報の組合せを重要度情報記憶部8より取得する(S31)。
次に、関連度スコア算出部7は、文書解析部6で取得した設計文書内用語群の1つを選択する(S32)。次に、関連度スコア算出部7は、設計文書内用語群と変数名用語群との類似度を算出し、専門用語群と修正識別子群との類似度も算出し、ステップS31で取得した重要度情報を加味して関連スコアを算出する(S33)。
なお、関連度スコア算出部7は、設計文書内用語群と変数名用語群との類似度をS{variable}、設計文書内用語群と専門用語群との類似度をS{term}、設計文書内用語群と修正識別子群の類似度をS{repair}、また各用語群に対応する重要情報をW{・}とすれば、関連スコアを次の算出式に従って算出しても良い。
関連スコア:
=W{variable}*S{variable} + W{term}*S{term} + W{repair}*S{repair}.
また、集合の類似度を算出する方法として、Jaccard係数、Dice係数、Simpson係数等が知られており、その何れか、もしくは改良したものを採用することで実現可能である。次に、別の設計書内用語群があればステップS32とステップS33を繰り返し、なければ処理を終了する。表示部9は、関連スコア算出部7で算出した関連スコアに基づいて、例えば、関連スコアの降順で、関連する設計文書名を表示する。
図9は、図1の本装置1Aにおいて、表示部9により表示する表示画面として、図12の出力装置25その他の表示画面3を例示する図である。本装置1Aの利用者は、表示画面3を用いて本装置1Aに対して処理を指示する。表示画面3は、表示されたボタンを利用者がマウスクリックする等により指示を受け付ける。
表示画面3において、画面コンポーネント14上に、ソースコード2が表示されている。これに対し、利用者は、調査したいソースコード2A(図2参照)を選択する。同様に、利用者は、画面コンポーネント17のボタン等に対し、該当する調査目的情報4を選択し、本装置1Aに対して処理を指示する。本装置1Aは、処理の結果を、例えば表形式15等で表示する。また、利用者は、検索結果の1つ選んで、文書ビュー16で該当する文書を閲覧する等しても良い。
表示部9は、関連スコアに基づいて、多数の設計文書3のうち、少なくとも一つを出力する。一例として下記の表示態様が好ましい。
・最も関連スコアが高い設計文書が表示されても良い。すなわち、図9の表形式15において、#第1行に示すFile01、第2章、第20節、関連スコア20.2、文書ビュー16で該当する文書を表示する表示態様である。
・関連スコアの降順(高い順)に設計文書3のリスト(例えば、上位N個の設計文書のリスト)が文書ビュー16に表示(不図示)されても良い。
本装置1Aの利用者は、調査対象のソースコード2について、ソフトウェア資産であるソースコード2から対象範囲を選択し、その調査目的情報4を選択することで、関連する設計文書3を検索できるため、ソフトウェア調査を効率的に実施できる。
図1の本装置における重要度情報記憶部8に記憶された重要度情報は、本来は検索対象の設計文書3の性質に応じて決められるものである。実施例2では、検索対象となる設計文書群の性質に応じた本装置1Bについて説明する。
図10は、本発明の実施例2に係るソフトウェア開発文書検索装置(これは本装置1B)の構成図である。本装置1Bの構成要素のうち、ソースコード情報取得部5、文書解析部6、関連スコア算出部7、表示部9、及び調査目的情報取得部11については、実施例1に係る本装置1Aと同様である。そのため、重複する説明は割愛し、重要度情報生成部10について説明する。
重要度情報生成部10は、設計文書3を入力に、設計文書3の構成要素(例えば、章・節等)で述べられている内容を判定するとともに、構成要素内の単語組成を元に重要度情報を生成する。
図11は、図10の本装置1Bにおける重要度情報生成部10の処理を示すフローチャートである。重要度情報生成部10は、設計文書3が新規登録された時、又は、設計文書3が修正された時、ほか適時を起点にして処理を開始する。
重要度情報生成部10は、まず、設計文書3を、構成要素(章、節等)に分割する(S41)。次に、ステップS41で分割された構成要素内で述べられている内容を判定する(S42)。判定結果は、調査目的情報4のバリエーションに対応し、本装置1Bでは、「設計思想」、「処理説明」、又は「修正履歴」に判定される。
判定方法は、文章の特徴に基づく方法がある。例えば、章・節のタイトルに“設計方針”を含み、文章内に“概念を導入する”と記載されている場合は、“設計思想”と判定する。また、文章内にフローチャートやPAD(Program Analysis Diagram)等の図を含んでいる場合は、“処理説明”と判定する。また、文章内に“下記のような修正を行う”と記載されている場合は、“修正履歴”と判定する。
次に、ステップS41で分割された構成要素の単語組成を算出する(S43)。構成要素の単語組成とは、構成要素に含まれる単語のうち、ソースコード用語分類に該当する単語の割合のことをいう。本装置1Bにおける構成要素の単語組成は、「変数」、「専門用語」、又は「修正識別子」に該当する単語数n_{変数}、n_{専門用語}、n_{修正識別子}を、全単語数で割ったものとする。
次に、重要度情報生成部10は、ステップS42で得た設計文書3の構成要素の内容判定毎に、ステップS43で得た構成要素の単語組成を集計し、重要度情報を生成する(S44)。集計の方法は、例えば、単語組成の調和平均、最頻値等を採用しても良い。
図12は、ソフトウェア開発文書検索装置(本装置)1のハードウェア構成図である。ハードウェア構成は、実施例1,2に共通する。本装置1は、1以上の計算機であり、例えば、プロセッサ21、主記憶装置22、補助記憶装置23、入力装置24、出力装置25、及び、通信装置26を備えた情報処理装置20で良い。上述のように、本装置1は、実施例1に係る本装置1Aと、実施例2に係る本装置1Bと、を総称するものである。
これらは図示しないが、バス等の通信手段を介して互いに通信可能に接続されている。なお、本装置1は、1以上の計算機に代えて、仮想サーバやクラウドシステムにおけるクラウドサーバのように仮想的なリソースを用いて実現された仮想的な装置でも良い。
プロセッサ21は、例えば、CPU(Central Processing Unit)や、MPU(Micro Processing Unit)を用いて構成される。プロセッサ21が、主記憶装置22に格納されているプログラムを読み出して実行することにより、本装置1の様々な機能が実現される。
主記憶装置22は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(NVRAM(Non Volatile RAM))等である。
補助記憶装置23は、例えば、ハードディスクドライブ、SSD(Solid State Drive)、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDメモリカードや光学式記録媒体等で、読取と書込が可能な記録媒体、又は、クラウドサーバの記憶領域等が例示列挙される。
補助記憶装置23に格納されているプログラムやデータは、主記憶装置22に随時ロードされる。補助記憶装置23は、例えば、ネットワークストレージのように通信手段を介して接続するものであっても良い。入力装置24は、外部入力を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、タッチパネル、可搬型記録媒体の読取装置等である。
出力装置25は、処理経過や処理結果等の各種情報を提供するユーザインタフェースであり、例えば、画面表示装置(LCD(Liquid Crystal Display)、グラフィックカード等)、印字装置、可搬型記録媒体の書込装置等である。
なお、例えば、通信装置26を介して他の本装置との間で情報の入力や出力を行う構成、即ち、通信装置26が、入力装置24や出力装置25として機能するようにしても良い。通信装置26は、装置間の通信を実現する有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)や無線通信モジュール等である。
上述した実施例1,2は、本発明の説明のための例示であり、本発明の範囲を実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。例えば、画面応答情分析装置を、単体の計算機で構築しても良いし、クライアント-サーバシステムとして構築しても良い。
クライアント-サーバシステムで構築する場合、サーバ側で画面応答情分析装置の主な処理を実行し、クライアント側で表示処理のみを実行しても良い。また、上述した実施形態に係る具体的な値は、あくまで説明のための例であり、本発明はこれらの値に限定されるものではない。
また、上述した実施形態に係る機能の一部又は全ては、集積回路等のハードウェアで実現されても良いし、ソフトウェアで実現してされても良い。また、各機能を実行するコンピュータプログラム、データ、ファイル等の情報は、メモリ、ハードディスク、SSD等の記憶装置又はCD、DVD等の記憶媒体に格納されて良い。
[補足]
本装置1を以下のように総括できる。
[1]本装置1は、ソースコード調査に必要なソフトウェア開発文書を提示するための検索装置である。本装置1は、ソースコード情報取得部5と、文書解析部6と、調査目的情報取得部11と、関連スコア算出部7と、重要度情報記憶部8と、表示部9と、を備える。
ソースコード情報取得部5は、調査対象となるソースコード2を特徴付ける1以上のソースコード用語と1以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得する。文書解析部6は、1以上の設計文書から1以上の文書用語を抽出する。調査目的情報取得部11は、ソースコードの調査目的情報を取得する。
関連スコア算出部7は、調査目的情報4とソースコード用語分類毎の重要度との対応関係を示す重要度情報から、取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得する。さらに、関連スコア算出部7は、1以上の設計文書3の各々について、取得した1以上のソースコード用語と、その設計文書3から抽出した1以上の文書用語と、のうちの共通する用語に対応したソースコード用語分類の重要度に基づいて関連スコアを算出する。
重要度情報記憶部8は、取得された調査目的情報4及び、調査目的に対応してソースコード用語分類の重要度を記憶する。関連スコア算出部7は、ソースコード情報取得部5で取得したソースコード用語の群と、文書解析部6で抽出した文書用語の群と、で共通する用語について、重要度に基づいて関連スコアを算出する。表示部9は、関連スコアに基づいて1以上の設計文書3の少なくとも一つを出力する。すなわち、表示部9は、設計文書3を関連スコアの高い順に、見易く一覧表示して出力する。
上述のように、関連スコア算出部7は、本装置1の利用者が指定したソフトウェア調査の調査目的情報4と、その調査目的に対応づけて重要度情報記憶部8に予め記憶されているソースコード用語分類の重要度と、に基づいて、ソースコード情報取得部5で取得したソースコード用語の群と、文書解析部6から取得した文書用語の群と、を対照し、共通する用語について、関連スコアを算出する。
このように算出された関連スコアは、利用者の調査目的情報4に適合するように算出されている。この関連スコアに基づいて、ソースコード2に関連する設計文書名が表示部9に表示される。すなわち、表示部9に表示された設計文書名は、利用者の調査目的情報4に適合したものである。その結果、本装置1Aは、ソフトウェア保守業務において、ソースコード調査に必要なソフトウェア開発文書を保守担当者に都合良く提示できる。
[2]上記[1]に記載の本装置1において、ソフトウェア資産は、ソースコード2そのものであると考えてよい。また、ソースコード情報取得部5は、調査対象となるソースコード2からソースコード用語とソースコード用語の分類とを抽出する。抽出されたソースコード用語、及びその分類を用い、文書解析部6から取得した文書用語を検索し、共通する用語をサーチすれば、利用者の調査目的情報4に適合するような、ソースコード2に関連する設計文書名を容易に検索ヒットできる。
[3]実施例2に係る本装置1B(図10)は、以下の処理を行う重要度情報生成部10をさらに備える。
・文書の記載内容における構成要素の中から、1以上のソースコード2に対して調査目的情報4に適合するものを選定する。
・構成要素の単語組成を算出する。
・調査目的情報4毎に単語組成を集計する。
このような本装置1Bによれば、重要度情報生成部10が、設計文書3を構成要素(章、節等)に分割し(S41)、そのように分割された構成要素内で述べられている内容を判定する(S42)。その結果、利用者の調査目的情報4のバリエーションに適合するように、設計文書3を「設計思想」、「処理説明」、又は「修正履歴」といった内容にまで判定できる。
[4]上記[3]に記載の本装置1において、重要度情報記憶部8は、検索の結果に対するフィードバック情報に基づいて重要度情報を生成する。フィードバック情報は、本装置1Aが使い込まれる程に検索精度を高める作用効果がある。
[5]フィードバック情報は、検索の結果に対する利用者の評価値が集計された情報である。このフィードバック情報として、例えば、「いいね!」ボタン等による反響の程度を用いることもできる。すなわち、「いいね!」ボタンの押された数に比例して反響の程度を数値化できる。これ利用者の評価値が集計された情報と考えられる。
また、本方法を以下のように総括できる。
[6]本方法は、ソースコード調査に必要なソフトウェア開発文書を提示するソフトウェア開発文書検索方法であり、以下のステップを有する。まず、文書解析部6が、1以上の設計文書3から1以上の文書用語を抽出するステップを実行する。次に、調査目的情報取得部11が、ソースコード調査の調査目的情報4を取得する調査目的情報取得ステップを実行する。
次に、関連スコア算出部7が、ソースコード用語分類毎の重要度を取得するステップを実行する。その重要度は、取得した調査目的情報4に対応する。すなわち、関連スコア算出部7は、調査目的情報4と、ソースコード用語分類毎の重要度と、の対応関係を示す重要度情報から、ソースコード用語分類毎の重要度を取得する。
次に、関連スコア算出部7が、重要度に基づいて関連スコアを算出するステップを実行する。この重要度は、設計文書3それぞれについて、取得したソースコード用語と、その設計文書3から抽出した文書用語と、を対照して、それらの共通する用語に対応したソースコード用語分類についての重要度である。
この重要度について、より詳しくは、関連スコア算出部7が、1以上の設計文書3の各々について、取得した1以上のソースコード用語と、その設計文書3から抽出した1以上の文書用語と、のうちの共通する用語に対応したソースコード用語分類についての重要度である。
最後に、表示部9が、関連スコアに基づいて1以上の設計文書3の少なくとも一つを出力するステップを実行する。なお、最終段階で関連スコア算出部7が関連スコアを算出するステップと、表示部9が設計文書3出力するステップと、を実行する以外の順番は、何れでも構わない。
1,1A,1B ソフトウェア開発文書検索装置(本装置)

Claims (5)

  1. 調査対象となるソースコードを特徴付ける1以上のソースコード用語と1以上のソースコード用語の各々のソースコード用語分類とを、ソフトウェア資産から取得するソースコード情報取得部と、
    1以上の設計文書から1以上の文書用語を抽出する文書解析部と、
    前記ソースコードの調査目的情報を取得する調査目的情報取得部と、
    前記設計文書の記載内容における構成要素の中から、1以上の前記ソースコードに対して調査目的情報に適合する構成要素を選定し、前記調査目的情報に適合する構成要素の単語組成を前記調査目的情報毎に集計し、調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報を生成する重要度情報生成部と、
    前記重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得し、前記1以上の設計文書の各々について、取得した前記1以上のソースコード用語と前記設計文書から抽出した前記1以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出する関連スコア算出部と、
    前記関連スコアに基づいて前記1以上の設計文書の少なくとも一つを出力する表示部と、
    を備えた
    ソフトウェア開発文書検索装置。
  2. 前記ソフトウェア資産は、前記ソースコードであり、
    前記ソースコード情報取得部は、前記調査対象となる前記ソースコードから前記ソースコード用語と該ソースコード用語の分類とを抽出する、
    請求項1に記載のソフトウェア開発文書検索装置。
  3. 前記重要度情報生成部は、
    検索の結果に対するフィードバック情報に基づいて重要度情報を生成する、
    請求項に記載のソフトウェア開発文書検索装置。
  4. 前記フィードバック情報は、前記検索の結果に対する利用者の評価値が集計された情報である、
    請求項に記載のソフトウェア開発文書検索装置。
  5. ソースコード調査に必要なソフトウェア開発文書を提示するソフトウェア開発文書検索方法であって、
    文書解析部が、1以上の設計文書から1以上の文書用語を抽出するステップと、
    調査目的情報取得部が、前記ソースコード調査する目的についての調査目的情報を取得するステップと、
    重要度情報生成部が、前記設計文書の記載内容における構成要素の中から、1以上のソースコードに対して調査目的情報に適合する構成要素を選定し、前記調査目的情報に適合する構成要素の単語組成を前記調査目的情報毎に集計し、調査目的情報とソースコード用語分類毎の重要度との対応関係を示す重要度情報を生成するステップと、
    関連スコア算出部が、前記重要度情報から、前記取得した調査目的情報に対応する、ソースコード用語分類毎の重要度を取得するステップと、
    関連スコア算出部が、前記1以上の設計文書の各々について、取得した1以上のソースコード用語と前記設計文書から抽出した前記1以上の文書用語とのうちの共通する用語に対応したソースコード用語分類の前記重要度に基づいて関連スコアを算出するステップと、
    表示部が、前記関連スコアに基づいて前記1以上の設計文書の少なくとも一つを出力するステップと、
    を有するソフトウェア開発文書検索方法。
JP2019098042A 2019-05-24 2019-05-24 ソフトウェア開発文書検索装置及び方法 Active JP7240252B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019098042A JP7240252B2 (ja) 2019-05-24 2019-05-24 ソフトウェア開発文書検索装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019098042A JP7240252B2 (ja) 2019-05-24 2019-05-24 ソフトウェア開発文書検索装置及び方法

Publications (2)

Publication Number Publication Date
JP2020194238A JP2020194238A (ja) 2020-12-03
JP7240252B2 true JP7240252B2 (ja) 2023-03-15

Family

ID=73548634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019098042A Active JP7240252B2 (ja) 2019-05-24 2019-05-24 ソフトウェア開発文書検索装置及び方法

Country Status (1)

Country Link
JP (1) JP7240252B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155092A (ja) 2004-11-26 2006-06-15 Hitachi Software Eng Co Ltd カバレッジ取得システム
JP2006235970A (ja) 2005-02-24 2006-09-07 Sharp Corp ソースコード検索装置、ソースコード検索方法、ソースコード検索プログラム、およびソースコード検索プログラムを記録する記録媒体
JP2014232505A (ja) 2013-05-30 2014-12-11 株式会社東芝 項目間関連生成支援装置
JP2018097709A (ja) 2016-12-15 2018-06-21 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2018128978A (ja) 2017-02-10 2018-08-16 株式会社日立システムズ 設計書評価装置、設計書評価方法、及びプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006155092A (ja) 2004-11-26 2006-06-15 Hitachi Software Eng Co Ltd カバレッジ取得システム
JP2006235970A (ja) 2005-02-24 2006-09-07 Sharp Corp ソースコード検索装置、ソースコード検索方法、ソースコード検索プログラム、およびソースコード検索プログラムを記録する記録媒体
JP2014232505A (ja) 2013-05-30 2014-12-11 株式会社東芝 項目間関連生成支援装置
JP2018097709A (ja) 2016-12-15 2018-06-21 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP2018128978A (ja) 2017-02-10 2018-08-16 株式会社日立システムズ 設計書評価装置、設計書評価方法、及びプログラム

Also Published As

Publication number Publication date
JP2020194238A (ja) 2020-12-03

Similar Documents

Publication Publication Date Title
US9754207B2 (en) Corpus quality analysis
Cruz Díaz et al. A machine‐learning approach to negation and speculation detection in clinical texts
EP2523126A2 (en) Information processing apparatus, information processing method, program, and information processing system
US10970324B2 (en) System for generation of automated response follow-up
JP2013537326A (ja) 医療情報ナビゲーションエンジン(mine)システム
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
US10229187B2 (en) System for determination of automated response follow-up
EP2722783A2 (en) License verification method and apparatus
US11244109B2 (en) Information processing device and information processing method
JP2013200592A (ja) 医療情報検索装置、方法およびプログラム
JP6662637B2 (ja) 情報処理システム、情報処理方法およびプログラムを記憶する記録媒体
JP6120607B2 (ja) 要件検出装置及び要件検出プログラム
JP7240252B2 (ja) ソフトウェア開発文書検索装置及び方法
JP2021500639A (ja) 多段階パターン発見およびビジュアル分析推奨のための予測エンジン
JP7282014B2 (ja) ワークショップ支援システム及びワークショップ支援方法
JP5439235B2 (ja) 文書分類方法、文書分類装置、およびプログラム
Khawla et al. A Blast implementation in Hadoop MapReduce using low cost commodity hardware
JP5334901B2 (ja) チェックリスト自動生成装置、チェックリスト自動生成方法およびチェックリスト自動生成プログラム
JP7364512B2 (ja) ラベル付与モデル生成装置、及びラベル付与モデル生成方法
JP5276819B2 (ja) 電子カルテシステムおよび検索プログラム
JP7314089B2 (ja) 検索支援システム、及び検索支援方法
JP5417359B2 (ja) 文書評価支援システム、及び文書評価支援方法
JP6621432B2 (ja) 計算機及び解析データの分類方法
JP7295463B2 (ja) 業務フロー作成支援装置、業務フロー作成支援方法、および、業務フロー作成支援プログラム
JP5768009B2 (ja) 情報処理装置、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230214

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230303

R150 Certificate of patent or registration of utility model

Ref document number: 7240252

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150