(57)【要約】      （修正有）【課題】ソースコードの概要をユーザが的確に把握できる設計図を作成できる設計図作成支援方法、設計図作成支援装置及び設計図作成支援プログラムを提供する。【解決手段】設計図作成支援装置は、所定の情報処理を行うためのソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出部と、ソースコードに記述されている、各構成要素に対応するコメントを特定し、特定した各コメントの重要度を、コメントに対応する構成要素の重要度と、コメントの所定の属性とに基づき算出するコメント重要度算出部と、算出した各コメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及びコメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成部と、を有する。【選択図】図１
2020101898.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びメモリを有する設計図作成支援装置が、
所定の情報処理を行うためのソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出処理と、
前記ソースコードに記述されている、前記各構成要素に対応するコメントを特定し、特定した各コメントの重要度を、当該コメントに対応する構成要素の重要度と、当該コメントの所定の属性とに基づき算出するコメント重要度算出処理と、
前記算出した各コメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成処理と、
を実行する、設計図作成支援方法。
【請求項２】
前記設計図作成支援装置は、
ソースコードにより実行される処理のうち図示の必要性が高い処理の情報を特定する情報である観点情報を記憶し、
前記構成要素重要度算出処理において、前記記憶した観点情報に基づき前記構成要素の重要度を算出する、
請求項１に記載の設計図作成支援方法。
【請求項３】
前記設計図作成支援装置は、
生成する設計図が図示できる情報の種類を特定する情報である種類情報を記憶し、
前記コメント重要度算出処理において、その重要度を算出するコメントを、前記種類情報に基づき抽出し、抽出したコメントの重要度を、前記構成要素の重要度と、前記コメントの所定の属性とに基づき算出する、
請求項１に記載の設計図作成支援方法。
【請求項４】
前記設計図作成支援装置は、
前記コメントの所定の属性として、前記ソースコードにおける当該コメントの位置、当該コメントの長さ、又は当該コメントの内容のいずれかを算出し、
前記コメント重要度算出処理において、前記コメントの重要度を、前記算出したコメントの属性と、前記構成要素の重要度とに基づき算出する、
請求項１に記載の設計図作成支援方法。
【請求項５】
前記設計図作成支援装置は、
生成する設計図の規模を示す情報である規模情報を記憶し、
前記設計図生成処理において、前記ソースコードの構成要素のうち、その重要度が前記記憶した規模情報に基づく所定の閾値を超えている構成要素を特定し、特定した構成要素に対応する、前記算出したコメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する、
請求項１に記載の設計図作成支援方法。
【請求項６】
前記設計図作成支援装置は、前記生成した設計図を所定の画面に表示する、請求項１に記載の設計図作成支援方法。
【請求項７】
前記設計図作成支援装置は、
ソースコードにより実行される処理のうち図示の必要性が高い処理の情報を特定する情報である観点情報を記憶し、
生成する設計図が図示できる情報の種類を特定する情報である種類情報を記憶し、
生成する設計図の規模を示す情報である規模情報を記憶し、
前記構成要素重要度算出処理において、前記記憶した観点情報に基づき前記構成要素の重要度を算出し、
前記コメント重要度算出処理において、その重要度を算出するコメントを、前記種類情報に基づき抽出し、抽出したコメントの重要度を、前記構成要素の重要度と、前記コメントの所定の属性とに基づき算出し、
前記設計図生成処理において、前記ソースコードの構成要素のうち、その重要度が前記記憶した規模情報に基づく所定の閾値を超えている構成要素を特定し、特定した構成要素に対応する、前記算出したコメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する、
請求項１に記載の設計図作成支援方法。
【請求項８】
前記設計図作成支援装置は、前記観点情報、前記種類情報、又は前記規模情報のうち少なくともいずれかの入力をユーザから受け付ける、請求項７に記載の設計図作成支援方法。
【請求項９】
プロセッサ及びメモリを有し、
所定の情報処理を行うためのソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出部と、
前記ソースコードに記述されている、前記各構成要素に対応するコメントを特定するコメント解析部と、
前記特定した各コメントの重要度を、当該コメントに対応する構成要素の重要度と、当該コメントの所定の属性とに基づき算出するコメント重要度算出部と、
前記算出した各コメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成部と、
を備える、設計図作成支援装置。
【請求項１０】
プロセッサ及びメモリを有する情報処理装置に、
所定の情報処理を行うためのソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出処理と、
前記ソースコードに記述されている、前記各構成要素に対応するコメントを特定するコメント解析処理と、
前記特定した各コメントの重要度を、当該コメントに対応する構成要素の重要度と、当該コメントの所定の属性とに基づき算出するコメント重要度算出処理と、
前記算出した各コメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成処理と、
を実行させる、設計図作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計図作成支援方法、設計図作成支援装置、及び設計図作成支援プログラムに関する。
【背景技術】
【０００２】
業務に使用する種々の情報処理システムの開発規模は近年、ますます拡大しており、これらの管理は非常に煩雑で業務量も多くなっている。また、いったん構築した情報処理システムを再構築し、又は他の環境へと移行させる場合には、情報処理システムの情報を多数の関係者の間で共有しなければならないが、このような場合は特に、情報処理システムの情報共有は困難なものとなる。
【０００３】
そのため、情報処理システムにおける各プログラムのソースコードを解析してコメント文を抽出することで、ソースコードの概要を把握できるようにした設計図（設計書）を生成する方法が提案されている。例えば、特許文献１には、プログラム仕様書作成装置の表示装置がユーザにＧＵＩ機能を提供し、入力装置はデータ入力機能を提供し、外部記憶装置はソースプログラムその他のプロジェクト資産を保存し、印刷装置はプログラム仕様書を印刷することが記載されている。すなわち、ソースプログラムからコメントを検索するキーワードの候補を抽出し、設定し、確認して、この確認されたキーワードに基づいてファイルの違いに関するコメント、シンボルの違いに関するコメント、処理手続きの違いに関するコメントをコメント項目毎に抽出して、改版仕様書として印刷することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１９０３３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、プログラムのソースコードには様々な規模のものがあり、また、プログラムの目的、用途も業務によって異なる。したがって、ソースコードにおけるコメント文を設計書に加える必要性も、ソースコードにより行われる処理の内容及びコメント文の内容によって大きく異なる。不要なコメント文が設計書にあり、又は逆に必要なコメント文が設計書にない場合、そのような設計書ではプログラムの概要を把握することが困難となる。
【０００６】
本発明はこのような事情に鑑みてなされたものであり、その目的は、ソースコードの概要をユーザが的確に把握できる設計図を作成することが可能な設計図作成支援方法、設計図作成支援装置、及び設計図作成支援プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
以上の課題を解決するための本発明の一つは、プロセッサ及びメモリを有する設計図作成支援装置が、所定の情報処理を行うためのソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出処理と、前記ソースコードに記述されている、前記各構成要素に対応するコメントを特定し、特定した各コメントの重要度を、当該コメントに対応する構成要素の重要度と、当該コメントの所定の属性とに基づき算出するコメント重要度算出処理と、前記算出した各コメントの重要度に基づき
、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成処理と、を実行する。
【発明の効果】
【０００８】
本発明によれば、ソースコードの概要をユーザが的確に把握できる設計図を作成することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態に係る設計図自動生成装置１００（設計図作成支援装置）の構成の一例を示す図である。
【図２】図２は、設計図自動生成装置１００が備えるハードウェアの一例を示す図である。
【図３】図３は、設計図自動生成装置１００が行う、設計図を生成する処理である設計図自動生成処理の一例を説明するフロー図である。
【図４】図４は、構成要素重要度算出処理の一例を示すフロー図である。
【図５】図５は、ソースコードの解析結果の情報を記録したモジュールデータ３００の一例を示す図である。
【図６】図６は、構成要素重要度データ５００の一例を示す図である。
【図７】図７は、対応関係特定処理の一例を説明するフロー図である。
【図８】図８は、コメントデータ７００の一例を示す図である。
【図９】図９は、コメント重要度算出処理及び設計図生成処理の詳細を説明するフロー図である。
【図１０】図１０は、設計図自動生成装置１００が生成し表示するシーケンス図の一例を示す図である。
【図１１】図１１は、設計図自動生成装置１００が生成し表示するアクティビティ図の一例を示す図である。
【発明を実施するための形態】
【００１０】
本実施形態の設計図作成支援方法について図面を参照しつつ説明する。
＜＜設計図作成支援装置の構成＞＞
図１は、本実施形態に係る設計図自動生成装置１００（設計図作成支援装置）の構成の一例を示す図である。設計図自動生成装置１００は、情報処理装置（コンピュータ）であり、構成要素重要度算出部２０１、コメント重要度算出部２０３、及び設計図生成部２０５の各機能を備える。
【００１１】
構成要素重要度算出部２０１は、所定の情報処理を行うための、ソースコードを取得し、取得したソースコードを構成する各構成要素の重要度を算出する構成要素重要度算出処理を実行する。
【００１２】
ソースコードの構成要素は、所定のプログラム言語により記述されたソースコードを構成する処理の単位、パラメータの単位等であり、例えば、モジュール、クラス、メソッド、関数、変数等である。なお、算出された構成要素の重要度は、構成要素重要度データ５００に記憶される。構成要素重要度データ５００の詳細は後述する。
【００１３】
なお、構成要素重要度算出部２０１は、ソースコード解析部２０２を備える。ソースコード解析部２０２は、ソースコードを、後述する観点情報２７０に基づき、解析する。なお、解析の結果は、モジュールデータ３００に記憶される。モジュールデータ３００の詳細は後述する。
【００１４】
コメント重要度算出部２０３は、前記ソースコードに記述されている、前記各構成要素
に対応するコメントを特定し、特定した各コメントの重要度を、当該コメントに対応する構成要素の重要度と、当該コメントの所定の属性とに基づき算出するコメント重要度算出処理を実行する。
【００１５】
ここで、コメントとは、所定のユーザ（ソースコードの開発者や管理者等）がソースコードに付記した言語情報であり、例えば、文章、語句、単語、記号等のいずれであってもよい。
【００１６】
なお、コメント重要度算出部２０３は、コメント解析部２０４を備える。コメント解析部２０４は、各コメントと、各構成要素との対応付けを行う。なお、この結果は、コメントデータ７００に記憶される。コメントデータ７００の詳細は後述する。
【００１７】
また、設計図自動生成装置１００は、前記コメントの所定の属性として、前記ソースコードにおける当該コメントの位置、当該コメントの長さ、又は当該コメントの内容のいずれかを算出する。そして、設計図自動生成装置１００は、前記コメント重要度算出処理において、前記コメントの重要度を、前記算出したコメントの属性と、前記構成要素の重要度とに基づき算出する。
【００１８】
設計図生成部２０５は、コメント重要度算出部２０３が前記算出した各コメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する設計図生成処理を実行する。なお、生成した設計図のデータは、設計図データ８００に記憶される。
【００１９】
また、図１に示すように、設計図自動生成装置１００は、ソースコードにより実行される処理のうち図示の必要性が高い処理の情報を特定する情報である観点情報２７０を記憶している。
そして、設計図自動生成装置１００は、前記構成要素重要度算出処理において、前記記憶した観点情報に基づき前記構成要素の重要度を算出する。
【００２０】
なお、後述するが、観点情報２７０は、例えば、依存関係のある他の構成要素が多く存在する構成要素は設計図に図示する必要が高い、といった情報である。
【００２１】
また、設計図自動生成装置１００は、生成する設計図が図示できる情報の種類を特定する情報である種類情報２８０を記憶している。
そして、設計図自動生成装置１００は、前記コメント重要度算出処理において、その重要度を算出するコメントを、前記種類情報に基づき抽出し、抽出したコメントの重要度を、前記構成要素の重要度と、前記コメントの所定の属性とに基づき算出する。
【００２２】
なお、後述するが、種類情報２８０は、例えば、生成する設計図がシーケンス図か、アクティビティ図かといった情報である。
【００２３】
また、設計図自動生成装置１００は、生成する設計図の規模を示す情報である規模情報２９０を記憶している。
そして、設計図自動生成装置１００は、前記設計図生成処理において、前記ソースコードの構成要素のうち、その重要度が前記記憶した規模情報に基づく所定の閾値を超えている構成要素を特定し、特定した構成要素に対応する、前記算出したコメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する。
【００２４】
なお、後述するが、規模情報２９０は、例えば、生成する設計図が概略図か抽象図か、
といった情報である。
【００２５】
なお、設計図自動生成装置１００は、設計図生成部２０５が前記生成した設計図を所定の画面に表示する。
【００２６】
また、設計図自動生成装置１００は、前記観点情報、前記種類情報、又は前記規模情報のうち少なくともいずれかの入力をユーザから受け付ける。
【００２７】
なお、図２は、設計図自動生成装置１００が備えるハードウェアの一例を示す図である。設計図自動生成装置１００は、ＣＰＵ（Central Processing Unit）などのプロセッサ
１０１と、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ１０２と、キーボード、マウス、タッチパネルなどからなる入力装置１０３と、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等のストレージ１０４と、モニタ（ディスプレイ）等からなる、画面表示を行う出力装置１０５とを備える。
【００２８】
図１に示した設計図自動生成装置１００の機能は、設計図自動生成装置１００のハードウェアにより、もしくは、プロセッサ１０１が、メモリ１０２又はやストレージ１０４に記憶されている各プログラムを読み出して実行することにより実現される。
【００２９】
また、これらのプログラムは、例えば、二次記憶デバイスや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤなどの記憶デバイス、又は、ＩＣカード、ＳＤカード、ＤＶＤなどの、情報処理装置で読み取り可能な非一時的データ記憶媒体に格納される。
【００３０】
＜＜処理＞＞
次に、設計図自動生成装置１００が行う処理について説明する。
＜設計図自動生成処理＞
図３は、設計図自動生成装置１００が行う、設計図を生成する処理である設計図自動生成処理の一例を説明するフロー図である。
【００３１】
まず、設計図自動生成装置１００は、ソースコードを構成する各構成要素（モジュール、変数等）を特定し、特定した各構成要素の重要度を算出する構成要素重要度算出処理を実行する（ｓ１）。
【００３２】
また、設計図自動生成装置１００は、ソースコードにおける各構成要素と、当該ソースコードにおけるコメントとの対応関係を特定する対応関係特定処理を実行する（ｓ３）。
【００３３】
次に、設計図自動生成装置１００は、対応関係特定処理により特定されるコメントに対するコメント重要度を算出するコメント重要度算出処理を実行する（ｓ５）。そして、設計図自動生成装置１００は、ｓ１で算出した構成要件重要度及びｓ５で算出したコメント重要度に基づき設計図を生成する設計図生成処理を実行する（ｓ７）。以上で設計図自動生成処理は終了する（ｓ９）。
以下、これらの各処理の詳細を説明する。
【００３４】
まず、構成要素重要度算出処理ｓ１の詳細を説明する。
＜構成要素重要度算出処理＞
図４は、構成要素重要度算出処理の一例を示すフロー図である。まず、設計図自動生成装置１００は、ソースコードの構成要素を解析するための解析方針を設定し、これを観点情報２７０に記録する（ｓ４０２）。
【００３５】
本実施形態では、解析方針は、解析の観点及び解析ロジックであるものとする。解析の
観点とは、例えば、ソースコードにおける各構成要素が行う処理のうち重要な処理に係る構成要素であって、設計図に図示する必要が高い構成要素（以下、重要構成要素という。例えば、ＳＱＬの実行、特定処理の実行、又はファイルの入出力に係るメソッド。）の判断基準に関する情報である。
【００３６】
また、解析ロジックとは、解析の観点に基づく解析を行うための判断処理の内容であり、例えば、特定の構成要素（例えば、メソッド）から呼び出されている構成要素がある場合に、その呼び出されている構成要素を重要構成要素とするロジックである。また、特定の構成要素を呼び出している構成要素がある場合に、その両構成要素を重要構成要素とするロジックである。
【００３７】
なお、設計図自動生成装置１００は、ユーザからの入力を受け付けることにより解析方針を設定してもよいし、所定のデータベースから解析方針を読み込むことで当該解析方針を設定してもよい。なお、ここで設定される解析方針は複数の場合がある。
【００３８】
次に、設計図自動生成装置１００は、自身が記憶しているソースコード又は他の情報処理装置が記憶しているソースコードのうち、解析を実行していないソースファイルがあるか否かを判定する（ｓ４０３）。解析を実行していないソースファイルがない場合は（ｓ４０３：ＮＯ）、構成要素重要度算出処理は終了し（ｓ４０８）、解析を実行していないソースファイルがある場合は（ｓ４０３：ＹＥＳ）、そのソースファイルの一つを選択してｓ４０４の処理を実行する。
【００３９】
ｓ４０４において、設計図自動生成装置１００は、ｓ４０２で設定した解析方針に基づき、選択したソースファイルに対する解析処理を実行し、その結果をモジュールデータ３００に記憶する。
【００４０】
ここで、モジュールデータ３００の詳細を説明する。
（モジュールデータ）
図５は、ソースコードの解析結果の情報を記録したモジュールデータ３００の一例を示す図である。モジュールデータ３００は、ソースファイル毎に割り当てられた識別子であるソースＩＤが格納されるソースＩＤ項目３０１、ソースＩＤ項目３０１に係るソースファイルの記憶場所を特定する情報が格納されるソースファイルパス項目３０２、ソースＩＤ項目３０１に係るソースファイルを構成する構成要素の名称が格納されるモジュール名項目３０３、モジュール名項目３０３に係る構成要素の種類（メソッド、変数等）が格納されるモジュールタイプ項目３０４、モジュール名項目３０３に係る構成要素がソースＩＤ項目３０１に係るソースファイルにおいて定義されている位置を特定する情報（例えば、ソースファイルの行番号）が格納される定義行番号項目３０５、ソースＩＤ項目３０１に係るソースファイルにおけるモジュール名項目３０３に係る構成要素の内容の記述部分の開始位置を特定する情報（例えば、ソースファイルの行番号）が格納される開始行番号項目３０６、ソースＩＤ項目３０１に係るソースファイルにおけるモジュール名項目３０３に係る構成要素の内容の記述部分の終了位置を特定する情報（例えば、ソースファイルの行番号）が格納される終了行番号項目３０７、及び、モジュール名項目３０３に係る構成要素を呼び出している他の構成要素を特定する情報（例えば、ソースコードのソースＩＤ、ソースコードにおける行番号）が格納される呼び出し元項目３０８の各項目を有するデータベースである。
【００４１】
次に、図４のｓ４０５に示すように、設計図自動生成装置１００は、ｓ４０４で実行した解析結果に基づき、ソースコードの全構成要素から、重要構成要素を抽出する。具体的には、例えば、設計図自動生成装置１００は、モジュールデータ３００を参照することにより、特定のメソッドから呼び出されているメソッドを重要構成要素とし、又は、特定の
メソッドを呼び出しているメソッドがある場合にこれら両メソッドを重要構成要素とする。
【００４２】
設計図自動生成装置１００は、ｓ４０５で抽出した各重要構成要素の重要度を、モジュールデータ３００及び観点情報２７０に基づき算出する（ｓ４０６）。
【００４３】
具体的には、例えば、設計図自動生成装置１００は、特定のメソッドから呼び出されているメソッドを重要構成要素とした場合は、その呼び出されている回数を、当該重要構成要素の重要度とする。また、例えば、設計図自動生成装置１００は、特定のメソッドを呼び出しているメソッドがある場合にこれら両メソッドを重要構成要素とした場合は、その両メソッドの重要度を、その呼び出している回数とする。すなわち、設計図自動生成装置１００は、より多くの特定の構成要素に呼び出され、又はより多くの特定の構成要素を呼び出している重要構成要素ほど、その重要構成要素の重要度が高くなるようにする。
【００４４】
設計図自動生成装置１００は、このようにして算出した重要構成要素の重要度を、構成要素重要度データ５００に記憶する（ｓ４０７）。その後は、ｓ４０３の処理が繰り返される。
【００４５】
ここで、構成要素重要度データ５００の具体例を説明する。
（構成要素重要度データ）
図６は、構成要素重要度データ５００の一例を示す図である。構成要素重要度データ５００は、各ソースファイルにおける重要構成要素に関するデータベースであり、ソースファイルの記憶場所を特定する情報（例えば、パス情報）が格納されるソースファイルパス項目５０１、ソースファイルパス項目５０１に係るソースファイルにおける重要構成要素の名称（例えば、モジュール名）が格納されるモジュール名項目５０２、モジュール名項目５０２に係る重要構成要素の種類を特定する情報が格納されるモジュールタイプ項目５０３、ソースファイルパス項目５０１に係るソースファイルにおいてモジュール名項目５０２に係る重要構成要素が定義されている位置を特定する情報（例えば、ソースファイルの行番号）が格納される定義行番号項目５０４、モジュール名項目５０２に係る重要構成要素を特定するための解析方針（例えば、解析観点）を特定する情報が格納される解析観点項目５０５、及び、モジュール名項目５０２に係る重要構成要素の重要度（構成要素重要度）の情報が格納される重要度項目５０６の各項目を有する。
【００４６】
次に、対応関係特定処理ｓ３の詳細を説明する。
＜対応関係特定処理＞
図７は、対応関係特定処理の一例を説明するフロー図である。まず、設計図自動生成装置１００は、対応関係特定処理で未解析のソースファイルがあるか否かを判定し（ｓ６０２）、未解析のソースファイルがない場合は（ｓ６０２：ＮＯ）、対応関係特定処理を終了する（ｓ６０６）。
【００４７】
他方、未解析のソースファイルがある場合は（ｓ６０２：ＹＥＳ）、設計図自動生成装置１００はそのソースファイルを選択し（選択ソースファイル）、選択ソースファイルに記録されているコメントを全て抽出する（ｓ６０３）。具体的には、例えば、設計図自動生成装置１００は、選択ソースファイルにおける構文解析を行うことにより、選択ソースファイルにおけるコメントを全て抽出する。
【００４８】
そして、設計図自動生成装置１００は、ｓ６０３で抽出した各コメントに対応する構成要素をそれぞれ特定し、当該構成要素とコメントとを対応付けてコメントデータ７００に記憶する（ｓ６０３、ｓ６０４）。その後は、ｓ６０２の処理が繰り返される。
【００４９】
具体的には、例えば、設計図自動生成装置１００は、ｓ６０３で抽出したコメントの一つを選択し、選択ソースファイルにおける当該選択したコメントの直後の位置に、構成要素たるメソッドの記述がある場合は、その選択したコメントは、当該メソッドの定義を記述したコメント（定義コメント）であると記憶すると共に、当該メソッドと当該コメントとを対応付けてコメントデータ７００に記憶する。
【００５０】
また、例えば、設計図自動生成装置１００は、ｓ６０３で抽出したコメントの一つを選択し、選択したコメントの前後に、構成要素たるメソッドの開始及び終了を示す記述（例えば、”｛”、”｝”）がある場合は、その選択したコメントは、当該メソッドの内容を説明したコメント（内部コメント）であると記憶すると共に、当該メソッドと当該コメントとを対応付けてコメントデータ７００に記憶する。
【００５１】
ここで、コメントデータ７００の具体例を説明する。
（コメントデータ）
図８は、コメントデータ７００の一例を示す図である。コメントデータ７００は、構成要素とコメントとの対応関係を記録したデータベースであり、その項目として、ソースファイル及びその場所を特定する情報が格納されるソースファイルパス項目７０１と、ソースファイルパス項目７０１に係るソースファイルに存在する各構成要素を特定する情報（例えば、モジュール名）が格納されるモジュール名項目７０２と、モジュール名項目７０２に係る構成要素の種類を示す情報が格納されるモジュールタイプ項目７０３と、モジュール名項目７０２に係る構成要素が定義されている、ソースファイルパス項目７０１に係るソースファイルの位置を特定する情報（例えば、行番号）が格納される定義行番号項目７０４と、モジュール名項目７０２に係る構成要素に対応付けられたコメントの内容が格納される定義コメント項目７０５及び内部コメント項目７０６とを有する。
【００５２】
定義コメント項目７０５には、モジュールタイプ項目７０３に係る構成要素の種類がメソッド、変数又はその他の種類である場合に、その構成要素に対応する定義コメントの内容が格納される。
【００５３】
内部コメント項目７０６には、モジュールタイプ項目７０３に係る構成要素の種類がメソッドである場合に、その構成要素に対応する内部コメントの内容が格納される。すなわち、内部コメント項目７０６には、構成要素が変数の場合には、情報が登録されない。
【００５４】
次に、コメント重要度算出処理及び設計図生成処理の詳細を説明する。
＜コメント重要度算出処理及び設計図生成処理＞
図９は、コメント重要度算出処理ｓ５及び設計図生成処理ｓ７の詳細を説明するフロー図である。まず、設計図自動生成装置１００は、設計図の生成方針を設定する（ｓ８０２）。具体的には、例えば、設計図自動生成装置１００は、観点情報２７０、種類情報２８０、及び規模情報２９０を設定する。
【００５５】
ここでの観点情報２７０は、本実施形態では、前記の構成要素に係る観点情報２７０と同様とする。
【００５６】
種類情報２８０に設定される情報は、生成する設計図が図示できる情報を特定する情報である。種類情報２８０には、例えば、ソースファイルにおいて、構成要素を含むオブジェクト間の相互作用の情報を時系列で図示する場合は、「シーケンス図」と設定される。また、プログラムの処理の流れを示すための情報を図示する場合は、「アクティビティ図」と設定される。
【００５７】
規模情報２９０に設定される情報は、生成する設計図における情報の抽象化の程度であ
る。規模情報２９０には、例えば、生成する設計図が「概略図」か若しくは「詳細図」かといった図の種類の情報、又は設計図の寸法といった設計図の物理的な大きさの情報が設定される。
【００５８】
なお、設計図自動生成装置１００は、観点情報２７０、種類情報２８０、及び規模情報２９０を、ユーザからの入力を受け付けることにより設定してもよいし、所定のデータベースから情報を読み込むことにより設定してもよい。
【００５９】
次に、設計図自動生成装置１００は、設計図の生成方針のうち規模情報２９０に基づき、生成する設計図が図示する情報量の多寡を調節するための所定の閾値を算出する（ｓ８０３）。この閾値は、構成要素重要度及び、構成要素重要度により算出されるコメント重要度を評価するためのパラメータである。
【００６０】
例えば、規模情報２９０が、概略図又は詳細図といった図の種類で設定された場合には、設計図自動生成装置１００は、概略図のような抽象度が高い図の場合には閾値を所定の大きな値に設定し、詳細図のような抽象度が低い図の場合には閾値を所定のより小さな値に設定する。
【００６１】
また、例えば、規模情報２９０が、設計図の大きさで設定された場合には、設計図自動生成装置１００は、設計図が大きいほど閾値が小さくなるように当該閾値を設定する。
【００６２】
なお、設計図自動生成装置１００は、この閾値を、ユーザからの入力を受け付けることにより設定してもよいし、自動的に算出するようにしてもよい。
【００６３】
続いて、設計図自動生成装置１００は、全構成要素のうち、構成要素重要度がｓ８０３で設定した閾値より大きい重要構成要素を抽出する（ｓ８０４）。具体的には、例えば、設計図自動生成装置１００は、構成要素重要度データ５００の重要度項目５０６の値が前記の閾値より大きいレコードを全て特定し、それらの内容（例えば、モジュール名）を取得する。
【００６４】
そして、設計図自動生成装置１００は、ｓ８０４で抽出した各構成要素に対応するコメントを全て特定する（ｓ８０５）。具体的には、例えば、設計図自動生成装置１００は、コメントデータ７００においてモジュール名項目７０２にｓ８０４で抽出した構成要素（例えば、モジュール名）が格納されているレコードの内容（例えば、定義コメント項目７０５及び内部コメント項目７０６の内容）を全て取得する。
【００６５】
設計図自動生成装置１００は、ｓ８０５で特定した各コメントの重要度を、種類情報２８０に基づき算出する（ｓ８０６）。
【００６６】
具体的には、まず、設計図自動生成装置１００は、重要度を算出するコメントを特定する。例えば、設計図自動生成装置１００は、種類情報２８０に「シーケンス図」が設定されている場合は、定義コメントの重要度のみを算出し、その他のコメントの重要度は算出しない（又はゼロとする）。また、例えば、設計図自動生成装置１００は、種類情報２８０に「アクティビティ図」が設定されている場合は、定義コメント及び所定の内部コメント（例えば、１行のみの内部コメント）の重要度のみを算出し、その他のコメントの重要度は算出しない（又はゼロとする）。
【００６７】
そして、設計図自動生成装置１００は、算出対象のコメントに対応する構成要素（モジュール等）の構成要素重要度を取得する。具体的には、設計図自動生成装置１００は、コメントデータ７００を参照することにより構成要素重要度を取得する。
【００６８】
そして、設計図自動生成装置１００は、算出対象のコメントの有する属性（詳細は次述）に基づき、前記取得した算出対象の構成要素重要度を変化させた値を、当該コメントの重要度として算出する。
【００６９】
コメントの属性は、例えば、コメントのソースプログラムにおける位置（例えば、行番号）、コメントの長さ（例えば、文字数）、コメントの内容（所定のキーワードが含まれているか）である。例えば、設計図自動生成装置１００は、コメントの位置と、当該コメントの直近にある重要構成要素（モジュール等）の位置との間の距離（何行離れているか）に応じて構成要素重要度を下げた値を、コメント重要度とする（例えば、距離に比例してコメント重要度を下げる）。
【００７０】
また、例えば、設計図自動生成装置１００は、コメントの長さに応じて構成要素重要度を下げた値を、コメント重要度とする（例えば、コメントの長さに比例してコメント重要度を下げる）。
【００７１】
また、例えば、設計図自動生成装置１００は、コメントに予め定めたキーワードが含まれている回数に応じて構成要素重要度を上げた値を、コメント重要度として設定する（例えば、キーワードが含まれている箇所及び各キーワードに設定した所定の重要度に比例してコメント重要度を上げる）。
【００７２】
次に、設計図自動生成装置１００は、ｓ８０６で算出した当該コメントの重要度に基づき、設計図を生成する（ｓ８０７）。例えば、設計図自動生成装置１００は、その重要度がｓ８０３で設定した閾値又はその他予め設定した閾値以上の全てのコメントを特定し、特定したコメントを設計図に図示するコメントとする。また、設計図自動生成装置１００は、この特定したコメントに対応する構成要素（又は、ｓ８０４で抽出した構成要素でもよい）を、設計図に図示する構成要素とする。なお、コメントは、コメント重要度に応じた表示形式（例えば、強調表示、色付き表示）を有していてもよい。
【００７３】
設計図自動生成装置１００は、ｓ８０７で生成した設計図の大きさが適正であるか否かを判定する（ｓ８０８）。具体的には、例えば、設計図自動生成装置１００は、生成した設計図の大きさが所定の基準範囲に収まっているか否かを判定し、又は、ユーザから設計図の大きさが適正か否かの情報の入力を受け付ける。
【００７４】
設計図の大きさが適正でない場合は（ｓ８０８：ＮＯ）、設計図自動生成装置１００は、規模情報２９０に係る新たな閾値を設定し（ｓ８０３）、ｓ８０４の処理を実行する。他方、設計図の大きさが適正である場合は（ｓ８０８：ＹＥＳ）、設計図生成処理は終了する（ｓ８０９）。
【００７５】
ここで、コメント重要度算出処理ｓ５及び設計図生成処理ｓ７により生成される設計図の例を説明する。
（設計図の例（シーケンス図））
図１０は、設計図自動生成装置１００が生成し表示するシーケンス図の一例を示す図である。このシーケンス図１０００は、構成要素重要度に基づき抽出されたモジュールの名称表示１００２と、そのモジュールの呼び出し元メソッドの名称表示１００４と、そのモジュールの呼び出し先メソッドの名称表示１００６と、各モジュールに対応する、構成要素重要度及びコメント重要度に基づき抽出されたコメント表示１００８（内部コメント）とを含む。そして、モジュール、呼び出し元メソッド、及び呼び出し先メソッドの間の相互関係（相互作用）が、時間軸１０１０に沿って表示される。
【００７６】
次に、他の設計図の例を説明する。
（設計図の例（アクティビティ図））
図１１は、設計図自動生成装置１００が生成し表示するアクティビティ図の一例を示す図である。このアクティビティ図１１００には、構成要素重要度に基づき抽出された各モジュールの名称表示１１０２と、各モジュールに対応する、構成要素重要度及びコメント重要度に基づき抽出された定義コメントの定義コメント表示１１０４と、そのモジュールに対応する、構成要素重要度及びコメント重要度に基づき抽出された内部コメントの内部コメント表示１１０６とが表示される。
【００７７】
定義コメント表示１１０４は、モジュールが行う各処理に対応するコメントの表示であり、各処理の実行順序に沿って表示される。内部コメント表示１１０６は、定義コメント表示１１０４が表示する処理の内容の説明文の表示である。
【００７８】
以上のように本実施形態に係る設計図作成支援装置（設計図自動生成装置１００）は、ソースコードを構成する各構成要素の重要度を算出し、各構成要素に対応するコメントの重要度を、対応する構成要素の重要度と、コメントの所定の属性とに基づき算出し、算出した各コメントの重要度に基づき、設計図の生成に必要なコメントを抽出し、抽出したコメント及びコメントに対応する構成要素を図示したソースコードの設計図を生成するので、ソースコードにおいて重要な構成要素（モジュール等）に対応し、またコメントの属性に基づき重要と判定されたコメントを含む設計図を生成することができる。したがって、本実施形態に係る設計図自動生成装置１００によれば、ソースコードの概要をユーザが的確に把握できる設計図を作成することができる。
【００７９】
以上の実施形態の説明は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれる。
【００８０】
例えば、本実施形態では、コメント重要度算出処理において、生成する設計図の情報量の多寡を調節するためのパラメータとして閾値を設定したが、閾値以外のパラメータや関数等を設定してもよい。
【００８１】
また、本実施形態で説明した設計図自動生成装置１００の各機能の一部を、設計図自動生成装置１００と通信可能な他の情報処理装置（他のサーバ等）に設けてもよい。例えば、ソースコード解析部２０２又は設計図生成部２０５の全部又は一部を実現するプログラム、他の情報処理装置に設けてもよい。
【００８２】
以上の本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、前記設計図作成支援装置は、ソースコードにより実行される処理のうち図示の必要性が高い処理の情報を特定する情報である観点情報を記憶し、前記構成要素重要度算出処理において、前記記憶した観点情報に基づき前記構成要素の重要度を算出する、としてもよい。
【００８３】
このように、観点情報に基づき構成要素の重要度を算出し、ソースコードにより実行される処理のうち図示の必要性が高い処理に係る構成要素を優先的に設計図に表示することで、ユーザにとって可視化の必要性が高いモジュール（メソッド、変数等）のみを表示し、ソースコードの概要及び設計図の可読性を高めることができる。
【００８４】
また、前記設計図作成支援装置は、生成する設計図が図示できる情報の種類を特定する情報である種類情報を記憶し、前記コメント重要度算出処理において、その重要度を算出するコメントを、前記種類情報に基づき抽出し、抽出したコメントについてのコメント重要度を、前記構成要素の重要度と、前記コメントの所定の属性とに基づき算出する、とし
てもよい。
【００８５】
このように、コメント重要度を算出するコメントを種類情報に基づき抽出することで、生成する設計図の種類に応じて、図示可能な情報のみを設計図に表示させることができ、設計図の可読性を高めることができる。
【００８６】
また、前記設計図作成支援装置は、前記コメントの所定の属性として、前記ソースコードにおける当該コメントの位置、当該コメントの長さ、又は当該コメントの内容のいずれかを算出し、前記コメント重要度算出処理において、前記コメント重要度を、前記算出したコメントの属性と、前記構成要素の重要度とに基づき算出する、としてもよい。
【００８７】
このように、コメントの属性として、ソースコードにおけるコメントの位置、長さ、内容を考慮することで、ソースコードにおける各コメントの重要性をより正確に把握し、ソースコードの内容の特徴をより明確に表示したコメントを有する設計図を生成し、ユーザによる設計図の把握をより容易にすることができる。
【００８８】
また、前記設計図作成支援装置は、生成する設計図の規模を示す情報である規模情報を記憶し、前記設計図生成処理において、前記ソースコードの構成要素のうち、その重要度が前記記憶した規模情報に基づく所定の閾値を超えている構成要素を特定し、特定した構成要素に対応する、前記算出したコメントの重要度に基づき、設計図に示すコメントを抽出し、抽出したコメント及び当該コメントに対応する構成要素を図示した、ソースコードの設計図を生成する、としてもよい。
【００８９】
このように、生成する設計図の規模を示す情報である規模情報を利用して、設計図の生成の必要なコメントを抽出することで、ユーザが把握しやすい規模で設計図を生成し、ユーザが設計図をより把握しやすくすることができる。
【００９０】
また、前記設計図作成支援装置は、前記生成した設計図を所定の画面に表示する、としてもよい。
【００９１】
これにより、ユーザは、ソースコードの概要を迅速に把握することができる。
【符号の説明】
【００９２】
１００  設計図自動生成装置、２０１  構成要素重要度算出部、２０２  ソースコード解析部、２０３  コメント重要度算出部、２０４  コメント解析部、２０５  設計図生成部、２７０  観点情報、２８０  種類情報、２９０  規模情報
【図１】
2020101898.tif 000003
【図２】
2020101898.tif 000004
【図３】
2020101898.tif 000005
【図４】
2020101898.tif 000006
【図５】
2020101898.tif 000007
【図６】
2020101898.tif 000008
【図７】
2020101898.tif 000009
【図８】
2020101898.tif 000010
【図９】
2020101898.tif 000011
【図１０】
2020101898.tif 000012
【図１１】
2020101898.tif 000013