(57)【特許請求の範囲】
【請求項１】
キーワードに対応して参考名称を記録した辞書記憶手段と、
入出力手段に接続される制御手段とを備えた開発支援システムであって、
前記制御手段が、
前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する手段と、
前記説明文からキーワードを抽出する手段と、
前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する手段と、
前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する手段と
を備えたことを特徴とする開発支援システム。
【請求項２】
前記辞書記憶手段において、参考名称は分野に関連付けられて記録されており、
前記制御手段が、前記開発対象プログラムが用いられる分野を特定し、前記特定した分野に関連付けられた参考名称を検索することを特徴とする請求項１に記載の開発支援システム。
【請求項３】
前記開発対象プログラムが含まれるシステムの属性情報を取得し、
前記属性情報に基づいて、名称候補の長さ基準を決定し、
前記辞書記憶手段において、前記長さ基準に基づいた優先順位で参考名称を名称候補として出力することを特徴とする請求項１又は２に記載の開発支援システム。
【請求項４】
前記属性情報として、前記開発対象プログラムが含まれるシステムの規模を取得し、
前記規模に基づいて、名称候補の長さ基準を決定することを特徴とする請求項３に記載の開発支援システム。
【請求項５】
前記属性情報として、前記開発対象プログラムが含まれるシステムの設計書ファイルを取得し、
前記設計書ファイルにおいて、前記辞書記憶手段に記録された各キーワードの利用回数を算出し、前記利用回数に基づいて、名称候補の長さ基準を決定することを特徴とする請求項３又は４に記載の開発支援システム。
【請求項６】
キーワードに対応して参考名称を記録した辞書記憶手段と、
入出力手段に接続される制御手段とを備えた開発支援システムを用いて、開発を支援するための方法であって、
前記制御手段が、
前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する段階と、
前記説明文からキーワードを抽出する段階と、
前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する段階と、
前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する段階と
を備えたことを特徴とする開発支援方法。
【請求項７】
キーワードに対応して参考名称を記録した辞書記憶手段と、
入出力手段に接続される制御手段とを備えた開発支援システムを用いて、開発を支援するためのプログラムであって、
前記制御手段を、
前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する手段、
前記説明文からキーワードを抽出する手段、
前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する手段、
前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する手段
として機能させることを特徴とする開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムで用いるプログラムの設計や開発を支援するための開発支援システム、開発支援方法及び開発支援プログラムに関する。
【背景技術】
【０００２】
プログラムの設計や開発において変数やメソッドを作成する場合、その名称を決める必要がある。この場合、名称の決め方について、統一性を確保するために、命名規則が設定されていることもある。しかしながら、プログラムの設計時や開発時に命名規則を意識する必要があり、作業負担が大きくなる。後から各種名称を命名規則に従って名称の修正を行なう場合も負担が大きく、予期しない問題が発生することもある。そこで、ユーザのプログラムを作成作業にリアルタイムに同期しながら現在のスコープやデータ型に応じた変数名を自動生成するプログラム作成支援システムが検討されている（例えば、特許文献１を参照。）。この文献に記載されたプログラム作成支援システムにおいては、プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段とを備える。そして、任意の入力情報と一致するデータ型情報がデータ型情報記憶手段に記憶されているかを検索する。そして、データ型情報に基づいてスコープを判定し、スコープに対応した命名規則を命名規則記憶手段から取得する。更に、命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２５８８４８号公報（第１頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、設計・開発対象のすべてのプログラムについて、統一的に命名規則を適用したのでは、プログラム設計・開発の担当者や確認者において煩雑になる場合がある。例えば、誤記の抑制や一覧性の向上のためには、できるだけ短い名称が望ましい。一方、短い名称を用いた場合、多くの変数を利用する必要性があるシステムにおいては、変数の自由度が少なくなってしまうという問題がある。
【０００５】
本発明は、上記問題点を解決するためになされたものであり、その目的は、システム開発において用いる変数やメソッドの名称について、効率的なプログラムの設計や開発及びソースコードの確認の容易化を支援するための開発支援システム、開発支援方法及び開発支援プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記問題点を解決するために、請求項１に記載の発明は、キーワードに対応して参考名称を記録した辞書記憶手段と、入出力手段に接続される制御手段とを備えた開発支援システムであって、前記制御手段が、前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する手段と、前記説明文からキーワードを抽出する手段と、前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する手段と、前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する手段とを備えたことを要旨とする。
【０００７】
請求項２に記載の発明は、請求項１に記載の開発支援システムにおいて、前記辞書記憶手段において、参考名称は分野に関連付けられて記録されており、前記制御手段が、前記開発対象プログラムが用いられる分野を特定し、前記特定した分野に関連付けられた参考名称を検索することを要旨とする。
【０００８】
請求項３に記載の発明は、請求項１又は２に記載の開発支援システムにおいて、前記開発対象プログラムが含まれるシステムの属性情報を取得し、前記属性情報に基づいて、名称候補の長さ基準を決定し、前記辞書記憶手段において、前記長さ基準に基づいた優先順位で参考名称基準に基づいて特定した参考名称を名称候補として出力することを要旨とする。
【０００９】
請求項４に記載の発明は、請求項３に記載の開発支援システムにおいて、前記属性情報として、前記開発対象プログラムが含まれるシステムの規模を取得し、前記規模に基づいて、名称候補の長さ基準を決定することを要旨とする。
【００１０】
請求項５に記載の発明は、請求項３又は４に記載の開発支援システムにおいて、前記属性情報として、前記開発対象プログラムが含まれるシステムの設計書ファイルを取得し、前記設計書ファイルにおいて、前記辞書記憶手段に記録された各キーワードの利用回数を算出し、前記利用回数に基づいて、名称候補の長さ基準を決定することを要旨とする。
【００１１】
請求項６に記載の発明は、キーワードに対応して参考名称を記録した辞書記憶手段と、入出力手段に接続される制御手段とを備えた開発支援システムを用いて、開発を支援するための方法であって、前記制御手段が、前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する段階と、前記説明文からキーワードを抽出する段階と、前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する段階と、前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する段階とを備えたことを要旨とする。
【００１２】
請求項７に記載の発明は、キーワードに対応して参考名称を記録した辞書記憶手段と、入出力手段に接続される制御手段とを備えた開発支援システムを用いて、開発を支援するためのプログラムであって、前記制御手段を、前記入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する手段、前記説明文からキーワードを抽出する手段、前記抽出したキーワードに対応する参考名称を前記辞書記憶手段において検索し、取得した参考名称を名称候補として前記入出力手段に出力する手段、前記入出力手段に出力された名称候補を利用して決定された名称を参考名称として、前記キーワードに対応させて前記辞書記憶手段に登録する手段として機能させることを要旨とする。
【００１３】
（作用）
請求項１、６、７に記載の発明によれば、制御手段が、入出力手段から、開発対象プログラムのソースコードに用いる変数、メソッド又はクラスについての説明文を取得する。次に、説明文からキーワードを抽出し、抽出したキーワードに対応する参考名称を辞書記憶手段において検索し、取得した参考名称を名称候補として入出力手段に出力する。そして、入出力手段に出力された名称候補を利用して決定された名称を参考名称として、キーワードに対応させて辞書記憶手段に登録する。これにより、説明文に基づいて、利用実績がある名称を候補として特定して、出力することができる。
【００１４】
請求項２に記載の発明によれば、制御手段が、開発対象プログラムが用いられる分野を特定し、この分野に関連付けられた参考名称を検索する。これにより、プログラムの適用分野に応じて名称候補を出力することができる。
【００１５】
請求項３に記載の発明によれば、開発対象プログラムが含まれるシステムの属性情報を取得し、属性情報に基づいて、名称候補の長さ基準を決定し、辞書記憶手段において、長さ基準に基づいた優先順位で参考名称を名称候補として出力する。名称は短い方が使いやすいが、短いと名称選択の幅が狭くなる。そこで、開発対象プログラムの組込先のシステムの属性に応じて、名称の長さを決定することができる。
【００１６】
請求項４に記載の発明によれば、属性情報として、開発対象プログラムが含まれるシステムの規模を取得する。規模が大きい場合、多様な名称を使う必要がある可能性があり、開発対象プログラムの組込先のシステムの規模に基づいて、名称候補の長さ基準を決定することができる。
【００１７】
請求項５に記載の発明によれば、属性情報として、開発対象プログラムが含まれるシステムの設計書ファイルを取得し、設計書ファイルにおいて、辞書記憶手段に記録された各キーワードの利用回数を算出する。キーワードの利用回数が大きい場合、このキーワードに関して多様な名称を使う必要がある可能性があり、利用回数に基づいて、名称候補の長さ基準を決定することができる。
【発明の効果】
【００１８】
本発明によれば、システム開発において用いる変数やメソッドの名称について、効率的なプログラムの設計や開発及びソースコードの確認の容易化を支援するための開発支援システム、開発支援方法及び開発支援プログラムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態のシステム概略図。
【図２】本発明の第１の実施形態のデータ記憶部に記録されたデータの説明図であって、（ａ）は利用者データ記憶部、（ｂ）は名称辞書データ記憶部、（ｃ）は翻訳辞書データ記憶部に記録されたデータの説明図。
【図３】本発明の第１の実施形態における処理手順の説明図。
【図４】本発明の第１の実施形態における処理手順の説明図。
【図５】本発明の第２の実施形態における処理手順の説明図。
【発明を実施するための形態】
【００２０】
＜第１の実施形態＞
以下、本発明を具体化した一実施形態を、図１〜図４を用いて説明する。本実施形態では、開発対象システムにおいて用いられるモジュールにおけるプログラムの設計や開発を支援するための開発支援システムを想定する。ここでは、本発明の開発支援方法を、プログラムの開発（コーディング）時に利用する場合を想定するが、プログラムの設計時に利用することも可能である。本実施形態の開発支援システムでは、図１に示すように、クライアント端末１０に接続されたコーディング支援サーバ２０を用いる。
【００２１】
クライアント端末１０は、システム開発において、モジュールのコーディング（ソースコードの作成）を行なう担当者や、作成されたソースコードを確認する担当者が使用するコンピュータ端末（入出力手段）である。このクライアント端末１０は、ネットワークを介してデータを送信する機能や、受信したデータを表示する機能等を有する。このため、クライアント端末１０は、図示しない制御部、キーボード、マウス等の入力手段、ディスプレイ等の出力手段、通信手段等を備えている。
【００２２】
コーディング支援サーバ２０は、制御部２１、利用者データ記憶部２２、名称辞書データ記憶部２３、翻訳辞書データ記憶部２４、プログラムリソース記憶部２５、ＡＰＩ仕様書記憶部２６を備えている。本実施形態では、名称辞書データ記憶部２３、翻訳辞書データ記憶部２４が辞書記憶手段として機能する。
【００２３】
この制御部２１は、図示しないＣＰＵ等の制御手段、ＲＡＭ及びＲＯＭ等のメモリを有し、開発支援処理を実行する。具体的には、後述する各処理（属性取得段階、辞書特定段階、コーディング段階、候補検索段階、翻訳段階、辞書更新段階、仕様書生成段階、コード表示段階等の各処理）を実行する。このための開発支援プログラムを実行することにより、コーディング支援サーバ２０の制御部２１は、図１に示すように、属性取得手段２１１、辞書特定手段２１２、コーディング手段２１３、候補検索手段２１４、翻訳手段２１５、辞書更新手段２１６、仕様書生成手段２１７、コード表示手段２１８として機能する。
【００２４】
属性取得手段２１１は、クライアント端末１０から、コーディング対象のシステムの属性情報を取得する処理を実行する。
辞書特定手段２１２は、取得した属性情報に用いて、コーディング時に用いる辞書を特定する処理を実行する。
【００２５】
コーディング手段２１３は、クライアント端末１０において入力されたコーディング内容を取得する処理を実行する。そして、コーディング手段２１３は、作成されたソースコードを逐次、プログラムリソース記憶部２５に記録する。
【００２６】
候補検索手段２１４は、コーディングにおいて設定される変数、メソッド、クラスについての参考名称を検索する処理を実行する。
翻訳手段２１５は、説明文に含まれるキーワードを翻訳する処理を実行する。
辞書更新手段２１６は、変数、メソッド、クラスについて決定された名称を名称辞書データ記憶部２３に登録する処理を実行する。
【００２７】
仕様書生成手段２１７は、作成されたプログラムのソースコードからアプリケーションインターフェース（ＡＰＩ）仕様書を生成する処理を実行する。この仕様書生成手段２１７としては、公知のＪａｖａｄｏｃ（登録商標）機能を用いることが可能である。この仕様書生成手段２１７は、ソースコードに含まれるコメント文から所定のタグ（仕様タグ）を読み出し、このタグに対応する記述内容を取得する。例えば、タグ「＠param 」を読み出した場合には、メソッドの引数や総称型のパラメータの名称や概要を取得する。
コード表示手段２１８は、クライアント端末１０において、モジュールのソースコードを表示するとともに、このソースコードを翻訳した結果を出力する処理を実行する。
【００２８】
利用者データ記憶部２２には、図２（ａ）に示すように、本システムを利用する担当者を管理するための利用者管理レコード２２０が記録されている。この利用者管理レコード２２０は、担当者情報が登録された場合に記録される。利用者管理レコード２２０は、利用者ＩＤ、スキルレベルに関するデータを含んで構成される。
【００２９】
利用者ＩＤデータ領域には、各担当者を特定するための識別子に関するデータが記録されている。
スキルレベルデータ領域には、この担当者のスキルを評価したレベルに関するデータが記録されている。
【００３０】
名称辞書データ記憶部２３には、図２（ｂ）に示すように、変数、メソッド、クラスについての名称の候補を出力するための名称事例レコード２３０が記録されている。この名称事例レコード２３０は、ソースコードに含まれる単語が登録された場合に記録される。名称事例レコード２３０は、分野、名称事例、システム名、クラス名、パッケージ名、種別、関連語に関するデータを含んで構成される。
【００３１】
分野データ領域には、コーディング対象のシステムの利用分野を特定するための識別子に関するデータが記録されている。
名称事例データ領域には、この分野において用いられた名称の事例に関するデータが記録されている。本実施形態では、この名称事例は、ソースコードに用いる名称を決めるための参考名称として利用される。
【００３２】
システム名データ領域、クラス名データ領域、パッケージ名データ領域には、それぞれ名称事例が利用されたシステム、クラス、パッケージを特定するための識別子に関するデータが記録されている。
【００３３】
種別データ領域には、この名称事例が利用された対象（変数、メソッド、クラス）を特定するための識別子に関するデータが記録されている。
関連語データ領域には、名称事例について、ソースコードのコメント文に用いられるキーワードに関するデータが記録されている。コメント文から複数のキーワードを抽出した場合には、このデータ領域に、抽出したすべてのキーワードを関連語として記録する。
【００３４】
翻訳辞書データ記憶部２４には、図２（ｃ）に示すように、ソースコードを翻訳するための単語レコード２４０が記録されている。この単語レコード２４０は、ソースコードに含まれる単語が登録された場合に記録される。単語レコード２４０は、見出し語、スキルレベル、翻訳語に関するデータを含んで構成される。
【００３５】
見出し語データ領域には、ソースコードに用いられるキーワード（コマンド名や変数名等）に関するデータが記録されている。
スキルレベルデータ領域には、利用者のスキルを評価したレベルを特定するための識別子に関するデータが記録されている。
翻訳語データ領域には、この見出し語を、スキルレベルに応じて翻訳した内容に関するデータが記録されている。本実施形態では、この翻訳語も、ソースコードに用いる名称を決めるための参考名称として利用される。
【００３６】
プログラムリソース記憶部２５には、開発対象システムにおいて用いられているモジュールのプログラムリソース（ソースコード）が記録されている。このプログラムリソースは、クライアント端末１０においてコーディングが行なわれた場合に記録される。このプログラムリソースには、ＨＴＭＬによって作成された画面制御モジュール、Ｊａｖａ（登録商標）によって作成されたプログラムモジュール、データベースに対する一連の処理手順を一つのＤＢ処理プログラムにまとめたストアドプロシージャ（ＳＰ）モジュール等が含まれる。
【００３７】
ＡＰＩ仕様書記憶部２６には、仕様書生成手段２１７において生成されたＡＰＩ仕様書ファイルが記録される。このＡＰＩ仕様書は、ソースコードを確認するための仕様書生成処理が行なわれた場合に記録される。このＡＰＩ仕様書ファイルには、アプリケーションプログラミングインターフェースに関する仕様が記録される。具体的には、変数、メソッド又はクラスの名称に対して仕様情報が記録される。
【００３８】
上記のように構成された開発支援システムを用いて、コーディング及びソースコード解析を支援するための処理手順を、図３〜図４に従って説明する。ここでは、コーディング支援処理（図３）、仕様書生成処理（図４）、ソースコード表示処理（図４）の順番に説明する。
【００３９】
（コーディング支援処理）
まず、コーディング支援処理を、図３に従って説明する。このコーディング支援処理においては、ソースコードにおける変数、メソッド、クラスの名称を決定する。ここでは、変数やメソッドを決定する場合を想定する。コーディングを行なう場合、担当者は、クライアント端末１０を用いて、コーディング支援サーバ２０にアクセスする。
【００４０】
まず、コーディング支援サーバ２０の制御部２１は、開発対象情報の設定処理を実行する（ステップＳ１−１）。具体的には、制御部２１の属性取得手段２１１は、クライアント端末１０のディスプレイに属性選択画面を出力する。この属性選択画面には、開発対象システム（開発対象プログラム）の分野、システム名、パッケージ名、クラス名を入力する入力欄が設けられている。そして、属性取得手段２１１は、クライアント端末１０から、この属性選択画面において入力された分野、システム名、パッケージ名、クラス名を取得する。
【００４１】
次に、コーディング支援サーバ２０の制御部２１は、辞書の特定処理を実行する（ステップＳ１−２）。具体的には、制御部２１の辞書特定手段２１２は、名称辞書データ記憶部２３において、クライアント端末１０から取得した分野が設定されている名称事例レコード２３０を抽出する。
【００４２】
次に、コーディング支援サーバ２０の制御部２１は、コメント入力処理を実行する（ステップＳ１−３）。具体的には、コーディング担当者は、クライアント端末１０においてソースコードの作成を行なう。この場合、ソースコードにおいて変数、メソッド、クラスを使用する場合、これらについての説明をコメント文として入力する。このコメント文には、予め定められた内容については予め定められた形式で、所定の仕様タグを関連付けて記述する。クライアント端末１０においてコメント文の入力を検知した場合、制御部２１のコーディング手段２１３は、入力されたコメント文をクライアント端末１０から取得する。
【００４３】
次に、コーディング支援サーバ２０の制御部２１は、コメントに含まれるキーワードの取得処理を実行する（ステップＳ１−４）。具体的には、制御部２１の候補検索手段２１４は、コメント文の形態素解析を行ない、出現頻度が高い名詞をキーワードとして抽出する。
【００４４】
次に、コーディング支援サーバ２０の制御部２１は、アクセス修飾子の取得処理を実行する（ステップＳ１−５）。具体的には、制御部２１の候補検索手段２１４は、コーディングされる変数、メソッド、クラスにおいて設定されたアクセス修飾子を取得する。このアクセス修飾子は、他のクラス又は他のパッケージからの参照を制御するための修飾子であり、「public」、「protected 」、「private 」がある。ここで、「public」はすべてのクラスからのアクセスを許容し、「protected 」は同一パッケージからのアクセスを許容し、「private 」は同一クラス内だけのアクセスを許容する。また、アクセス修飾子がない場合には、同一クラス内、同一パッケージからのアクセスを許容する。
【００４５】
次に、コーディング支援サーバ２０の制御部２１は、アクセス修飾子が「private 」かどうかについての判定処理を実行する（ステップＳ１−６）。具体的には、制御部２１の候補検索手段２１４は、クライアント端末１０から取得したアクセス修飾子に基づいて判定する。ここで、アクセス修飾子が「public」、「protected 」の場合や、アクセス修飾子がない場合は、「private 」でないことになる。
【００４６】
アクセス修飾子が「private 」でない場合（ステップＳ１−６において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、アクセス修飾子に応じて検索範囲の特定処理を実行する（ステップＳ１−７）。具体的には、制御部２１の候補検索手段２１４は、アクセス修飾子の種類（「public」、「protected 」）に応じて、検索範囲を特定する。具体的には、候補検索手段２１４は、アクセス修飾子が「public」の場合には、同一システムに使用されている名称事例（使用済範囲）と、同一システム以外に使用されている名称事例（使用可能範囲）とを分けて検索範囲とする。アクセス修飾子が「protected 」の場合には、同一パッケージに使用されている名称事例（使用済範囲）と、同一パッケージ以外に使用されている名称事例（使用可能範囲）とを分けて検索範囲とする。
なお、アクセス修飾子が「private 」の場合（ステップＳ１−６において「ＹＥＳ」の場合）、アクセス修飾子に応じて検索範囲の特定処理（ステップＳ１−７）をスキップする。
【００４７】
次に、コーディング支援サーバ２０の制御部２１は、名称事例の検索処理を実行する（ステップＳ１−８）。具体的には、制御部２１の候補検索手段２１４は、コメント文から取得したキーワードを、名称辞書データ記憶部２３において検索する。この場合、候補検索手段２１４は、ステップＳ１−４において取得したキーワードが関連語データ領域に記録されたすべての名称事例レコード２３０を検索する。本実施形態では、キーワードを含む関連語や、キーワードを構成する文字列と所定割合以上で部分一致している関連語を検索する曖昧検索を行なう。また、ステップＳ１−４において複数のキーワードを取得した場合には、少なくとも１以上のキーワードが記録された関連語データ領域に記録された名称事例レコード２３０を検索する。そして、候補検索手段２１４は、アクセス修飾子が「public」、「protected 」の場合には、使用済範囲の名称事例レコード２３０と、使用可能範囲の名称事例レコード２３０とを分けて検索する。一方、アクセス修飾子が「private 」の場合には、すべての名称事例レコード２３０を使用可能範囲として検索する。
【００４８】
次に、コーディング支援サーバ２０の制御部２１は、登録があるかどうかについて判定処理を実行する（ステップＳ１−９）。具体的には、制御部２１の候補検索手段２１４は、名称辞書データ記憶部２３において、キーワードに対応する名称事例レコード２３０を抽出できた場合には、登録があることになる。
【００４９】
名称事例の登録がない場合（ステップＳ１−９において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、翻訳処理を実行する（ステップＳ１−１０）。具体的には、制御部２１の翻訳手段２１５は、翻訳辞書データ記憶部２４を用いて、キーワードが見出し語として記録された単語レコード２４０を検索し、この単語レコード２４０に記録された翻訳語を取得する。
【００５０】
なお、名称事例の登録がある場合（ステップＳ１−９において「ＹＥＳ」の場合）、コーディング支援サーバ２０の制御部２１は、翻訳処理（ステップＳ１−１０）をスキップする。
【００５１】
そして、コーディング支援サーバ２０の制御部２１は、名称候補の出力処理を実行する（ステップＳ１−１１）。具体的には、制御部２１のコーディング手段２１３は、ステップＳ１−８において抽出した名称事例又はステップＳ１−１０において抽出した翻訳語を名称候補として、クライアント端末１０のディスプレイに出力する。ここで、ステップＳ１−８において抽出した名称事例については、使用済範囲の名称事例レコード２３０に記録された名称事例は同一名称の利用を禁止する候補として、使用可能範囲の名称事例レコード２３０に記録された名称事例は同一名称の利用を許容する候補として出力する。
【００５２】
次に、コーディング支援サーバ２０の制御部２１は、名称の決定処理を実行する（ステップＳ１−１２）。具体的には、コーディング担当者は、出力された名称候補を参照して、コーディングに用いる名称を決定する。この場合、制御部２１のコーディング手段２１３は、クライアント端末１０において設定された名称を取得する。
【００５３】
次に、コーディング支援サーバ２０の制御部２１は、名称事例の登録処理を実行する（ステップＳ１−１３）。具体的には、制御部２１の辞書更新手段２１６は、決定した名称を記録した名称事例レコード２３０を生成し、名称辞書データ記憶部２３に記録する。この名称事例レコード２３０には、クライアント端末１０から取得した分野、システム名、パッケージ名、クラス名を記録する。
【００５４】
（仕様書生成処理）
次に、仕様書生成処理を、図４に従って説明する。この場合、担当者は、クライアント端末１０を用いて、コーディング支援サーバ２０にアクセスする。
【００５５】
まず、コーディング支援サーバ２０の制御部２１は、ソースコードの指定処理を実行する（ステップＳ２−１）。具体的には、制御部２１の仕様書生成手段２１７は、プログラムリソース記憶部２５に記録されているプログラム名の一覧を、クライアント端末１０のディスプレイに出力する。そして、担当者は、クライアント端末１０において、確認対象のプログラム名のソースコードを、プログラムリソース記憶部２５において指定する。この場合、仕様書生成手段２１７は、指定されたプログラムのソースコードをプログラムリソース記憶部２５から取得する。
【００５６】
次に、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の生成処理を実行する（ステップＳ２−２）。具体的には、制御部２１の仕様書生成手段２１７は、取得したソースコードにおいて、仕様タグを特定して、この仕様タグに関連付けられた記述内容を特定する。そして、この記述内容を記録したＡＰＩ仕様書ファイルを生成する。
【００５７】
次に、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の登録処理を実行する（ステップＳ２−３）。具体的には、制御部２１の仕様書生成手段２１７は、作成したＡＰＩ仕様書ファイルを、プログラム名に関連付けてＡＰＩ仕様書記憶部２６に記録する。
【００５８】
（ソースコード表示処理）
次に、ソースコード表示処理を、図４に従って説明する。各ソースコードを確認する場合、担当者は、クライアント端末１０を用いて、コーディング支援サーバ２０にアクセスする。この場合、担当者を特定するためのログイン認証が行なわれる。
【００５９】
ここでは、まず、コーディング支援サーバ２０の制御部２１は、第１フレーム表示処理を実行する（ステップＳ３−１）。具体的には、制御部２１のコード表示手段２１８は、クライアント端末１０のディスプレイに、コード翻訳画面を出力する。このコード翻訳画面は、コードを表示する左フレーム（第１フレーム）と、このソースコードの翻訳語を表示する右フレーム（第２フレーム）とから構成される。ここで、コード表示手段２１８は、プログラムリソース記憶部２５から取得したソースコードを、コード翻訳画面の左フレームに出力する。
【００６０】
次に、コーディング支援サーバ２０の制御部２１は、ネスト構造毎に表示変更処理を実行する（ステップＳ３−２）。具体的には、制御部２１のコード表示手段２１８は、左フレームに表示されたソースコードにおいて、ネスト構造を特定する。そして、コード表示手段２１８は、ネスト構造毎に、ソースコードの表示色を変更する。
【００６１】
また、コーディング支援サーバ２０の制御部２１は、第２フレーム表示処理を実行する（ステップＳ３−３）。具体的には、制御部２１のコード表示手段２１８は、プログラムリソース記憶部２５から取得したソースコードを、第１フレームのソースコードの表示行と一致するように、第２フレームに表示する。
【００６２】
次に、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の検索処理を実行する（ステップＳ３−４）。具体的には、制御部２１のコード表示手段２１８は、ＡＰＩ仕様書記憶部２６において、確認対象のソースコードのプログラム名が記録されたＡＰＩ仕様書ファイルを検索する。
【００６３】
次に、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書が登録されているかどうかについての判定処理を実行する（ステップＳ３−５）。具体的には、制御部２１のコード表示手段２１８は、ＡＰＩ仕様書記憶部２６からＡＰＩ仕様書ファイルを抽出できた場合には、ＡＰＩ仕様書が登録されていることになる。
【００６４】
ＡＰＩ仕様書が登録されている場合（ステップＳ３−５において「ＹＥＳ」の場合）、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の表示処理を実行する（ステップＳ３−６）。具体的には、制御部２１のコード表示手段２１８は、第２フレームに表示された変数、メソッド又はクラスの名称を抽出する。次に、コード表示手段２１８は、ＡＰＩ仕様書ファイルにおいて、第２フレームから抽出した変数、メソッド又はクラスの仕様情報が記録された場所を特定する。そして、コード表示手段２１８は、第２フレームに表示された変数、メソッド又はクラスの名称に対して、ＡＰＩ仕様書ファイルの仕様情報を表示できるように、各仕様情報が記録された場所に特定したリンク情報を設定する。
【００６５】
ＡＰＩ仕様書が登録されていない場合（ステップＳ３−５において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の表示処理（ステップＳ３−６）をスキップする。
次に、コーディング支援サーバ２０の制御部２１は、スキルレベルの特定処理を実行する（ステップＳ３−７）。具体的には、制御部２１のコード表示手段２１８は、アクセス時のログイン認証において特定した利用者管理レコード２２０に記録されたスキルレベルを取得する。
【００６６】
次に、コーディング支援サーバ２０の制御部２１は、翻訳対象語の特定処理を実行する（ステップＳ３−８）。具体的には、制御部２１のコード表示手段２１８は、第２フレームに表示されたソースコードに含まれる単語を、順次、翻訳対象語として抽出する。
【００６７】
次に、コーディング支援サーバ２０の制御部２１は、翻訳処理を実行する（ステップＳ３−９）。具体的には、制御部２１のコード表示手段２１８は、抽出した翻訳対象語と、名称辞書データ記憶部２３に記録された単語レコード２４０に記録された見出し語とを比較する。翻訳対象語が見出し語として登録されている場合、コード表示手段２１８は、ステップＳ３−７において特定したスキルレベルに応じた翻訳語を単語レコード２４０から抽出する。そして、コード表示手段２１８は、第２フレームに表示された翻訳対象語を翻訳語に置換して表示する。なお、翻訳対象語が見出し語として登録されていない場合や、スキルレベルに応じた翻訳語が登録されていない場合には、そのままソースコードを残しておく。
【００６８】
本実施形態によれば、以下のような効果を得ることができる。
（１）本実施形態においては、コーディング支援サーバ２０の制御部２１は、入力されたコメントに含まれるキーワードを取得する（ステップＳ１−４）。そして、制御部２１は、名称事例の検索処理を実行し（ステップＳ１−８）、名称候補を出力する（ステップＳ１−１１）。これにより、コメント文に基づいて、利用実績がある名称候補を出力することができる。
【００６９】
（２）本実施形態においては、名称事例の登録がない場合（ステップＳ１−９において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、翻訳処理を実行し（ステップＳ１−１０）、名称候補の出力処理を実行する（ステップＳ１−１１）。これにより、利用実績がない場合にも、翻訳語による名称候補を出力することができる。
【００７０】
（３）本実施形態においては、コーディング支援サーバ２０の制御部２１は、アクセス修飾子を取得する（ステップＳ１−５）。そして、アクセス修飾子が「private 」でない場合（ステップＳ１−６において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、アクセス修飾子に応じて検索範囲の特定処理を実行する（ステップＳ１−７）。アクセス修飾子により、変数やメソッドの利用が許容される範囲は変化するが、この範囲を考慮して、名称候補を出力することができる。
【００７１】
（４）本実施形態においては、コーディング支援サーバ２０の制御部２１は、名称の決定処理（ステップＳ１−１２）、名称事例の登録処理を実行する（ステップＳ１−１３）。これにより、決定した名称を辞書に反映させて、後続のコーディングにおいて名称候補として利用することができる。
【００７２】
（５）本実施形態においては、コーディング支援サーバ２０の制御部２１は、第１フレーム表示処理を実行し（ステップＳ３−１）、ネスト構造毎に表示変更処理を実行する（ステップＳ３−２）。更に、制御部２１は、第２フレーム表示処理を実行する（ステップＳ３−３）。ここで、ＡＰＩ仕様書が登録されている場合（ステップＳ３−５において「ＹＥＳ」の場合）、コーディング支援サーバ２０の制御部２１は、ＡＰＩ仕様書の表示処理を実行する（ステップＳ３−６）。これにより、ＡＰＩ仕様書を参照して、コーディング内容を確認することができる。
【００７３】
（６）本実施形態においては、コーディング支援サーバ２０の制御部２１は、スキルレベルの取得処理を実行する（ステップＳ３−７）。これにより、スキルレベルに応じて、理解しやすい翻訳文を提供することができる。
【００７４】
＜第２の実施形態＞
本発明を具体化した第２の実施形態を図５に従って説明する。第２の実施形態は、第１の実施形態のコーディング支援処理において、システム規模や設計書を利用する構成であり、同様の部分については詳細な説明を省略する。この場合、コーディング支援サーバ２０は、設計書データ記憶部に接続できるようにしておく。この設計書データ記憶部には、システム開発時における基本設計や詳細設計において作成された設計書に関するファイルが記録されている。更に、候補検索手段２１４に、システム規模、利用頻度に対応させて、名称長さの基準文字数を決定するための長さ決定テーブルを保持させておく。この長さ決定テーブルにおいては、システム規模が大きい場合や利用頻度が高い場合に、名称の構成文字数が多くなるように設定された基準文字数が記録されている。
【００７５】
まず、コーディング支援サーバ２０の制御部２１は、開発対象情報の設定処理を実行する（ステップＳ４−１）。具体的には、制御部２１の属性取得手段２１１は、クライアント端末１０のディスプレイに属性選択画面を出力する。この属性選択画面には、開発対象プログラムの分野、システム名、パッケージ名、クラス名を入力する入力欄が設けられている。
【００７６】
更に、この属性選択画面には、システムの規模を入力する入力欄が設けられている。この入力欄には、システム規模において想定されるコーディング行数やモジュール数を設定する。そして、属性取得手段２１１は、この属性選択画面において入力された分野、システム名、パッケージ名、クラス名及びシステム規模を取得する。
【００７７】
次に、コーディング支援サーバ２０の制御部２１は、ステップＳ１−２と同様に、辞書の特定処理を実行する（ステップＳ４−２）。
次に、コーディング支援サーバ２０の制御部２１は、設計書の取得処理を実行する（ステップＳ４−３）。具体的には、制御部２１の候補検索手段２１４は、設計書データ記憶部から開発対象プログラムの設計書ファイルを取得する。
【００７８】
次に、コーディング支援サーバ２０の制御部２１は、設計書からキーワードの取得処理を実行する（ステップＳ４−４）。具体的には、制御部２１の候補検索手段２１４は、変数、メソッド、クラスにおいて使用されるキーワードを抽出する。
【００７９】
次に、コーディング支援サーバ２０の制御部２１は、各キーワードの利用頻度の算出処理を実行する（ステップＳ４−５）。具体的には、制御部２１の候補検索手段２１４は、各キーワードの利用回数を算出し、キーワード総数で除算することにより利用頻度を算出する。
【００８０】
次に、コーディング支援サーバ２０の制御部２１は、システム規模、利用頻度に応じて名称の長さの基準文字数の決定処理を実行する（ステップＳ４−６）。具体的には、制御部２１の候補検索手段２１４は、取得したシステム規模、利用頻度に応じた基準文字数を、長さ決定テーブルを用いて決定する。
【００８１】
次に、コーディング支援サーバ２０の制御部２１は、ステップＳ１−３〜Ｓ１−５と同様に、コメント入力処理（ステップＳ４−７）、コメントに含まれるキーワードの取得処理（ステップＳ４−８）、アクセス修飾子の取得処理（ステップＳ４−９）を実行する。
【００８２】
次に、コーディング支援サーバ２０の制御部２１は、ステップＳ１−６と同様に、「private 」かどうかについての判定処理を実行する（ステップＳ４−１０）。そして、「private 」でない場合（ステップＳ４−１０において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、ステップＳ１−７と同様に、アクセス修飾子に応じて検索範囲の特定処理を実行する（ステップＳ４−１１）。
【００８３】
そして、コーディング支援サーバ２０の制御部２１は、ステップＳ１−８と同様に、名称事例の検索処理（ステップＳ４−１２）を実行し、ステップＳ１−９と同様に、登録があるかどうかについての判定処理（ステップＳ４−１３）を実行する。
【００８４】
名称事例の登録がない場合（ステップＳ４−１３において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、ステップＳ１−１０と同様に、翻訳処理を実行する（ステップＳ４−１４）。なお、名称事例の登録がある場合（ステップＳ４−１３において「ＹＥＳ」の場合）、コーディング支援サーバ２０の制御部２１は、翻訳処理（ステップＳ４−１４）をスキップする。
【００８５】
次に、コーディング支援サーバ２０の制御部２１は、基準文字数に応じて優先順位の決定処理を実行する（ステップＳ４−１５）。具体的には、制御部２１の候補検索手段２１４は、名称候補の文字数が基準文字数に近い順番に、名称候補を出力する優先順位を決定する。
【００８６】
次に、コーディング支援サーバ２０の制御部２１は、ステップＳ１−１１と同様に、名称候補の出力処理を実行する（ステップＳ４−１６）。この場合、制御部２１のコーディング手段２１３は、ステップＳ４−１５において決定した優先順位の順番で名称候補をクライアント端末１０のディスプレイに出力する。そして、コーディング支援サーバ２０の制御部２１は、ステップＳ１−１２、Ｓ１−１３と同様に、名称の決定処理（ステップＳ４−１７）、名称事例の登録処理（ステップＳ４−１８）を実行する。
【００８７】
本実施形態によれば、以下のような効果を得ることができる。
（７）本実施形態においては、候補検索手段２１４に、システム規模、利用頻度に対応させて、名称長さの基準文字数を決定するための長さ決定テーブルを保持させておく。この長さ決定テーブルにおいては、システム規模が大きい程、利用頻度が高い程、名称の構成文字数が多くなるように設定された基準文字数が記録されている。そして、コーディング支援サーバ２０の制御部２１は、開発対象情報の設定処理を実行する（ステップＳ４−１）。ここでは、システム規模を取得する。更に、コーディング支援サーバ２０の制御部２１は、各キーワードの利用頻度の算出処理を実行する（ステップＳ４−５）。そして、コーディング支援サーバ２０の制御部２１は、システム規模、利用頻度に応じて名称の長さ基準の基準文字数の決定処理を実行する（ステップＳ４−６）。具体的には、制御部２１の候補検索手段２１４は、取得したシステム規模、利用頻度に応じた基準文字数を、長さ決定テーブルを用いて決定する。そして、コーディング支援サーバ２０の制御部２１は、基準文字数に応じて優先順位の決定処理を実行する（ステップＳ４−１５）。
【００８８】
これにより、システム規模が大きい場合には、構成文字数が多い名称候補を選択することにより、名称決定の自由度を向上させることができる。また、キーワードの利用頻度が高い場合にも、文字数が多い名称候補を選択することにより、名称決定の自由度を向上させることができる。
【００８９】
なお、上記各実施形態は以下のように変更してもよい。
・  上記各実施形態では、名称事例の登録がない場合（ステップＳ１−９、Ｓ４−１３において「ＮＯ」の場合）、コーディング支援サーバ２０の制御部２１は、翻訳処理を実行する（ステップＳ１−１０、Ｓ４−１４）。これに代えて、名称事例の登録がある場合にも翻訳処理を行なうようにしてもよい。
【００９０】
・  上記各実施形態では、コーディング支援サーバ２０の制御部２１は、翻訳処理を実行する（ステップＳ３−９、Ｓ４−１４）。ここでは、翻訳辞書データ記憶部２４を用いて、翻訳対象語を翻訳する。この場合、ソースコードの構造に応じて、意訳するようにしてもよい。この場合には、翻訳辞書データ記憶部２４には、見出し語を含む構文に応じて、意訳する翻訳パターンを記録しておく。例えば、翻訳語の品詞を特定して、日本語として読みやすい順番に並び替える。
【００９１】
・  上記各実施形態では、名称辞書データ記憶部２３の名称事例レコード２３０は、分野、名称事例、システム名、クラス名、パッケージ名、種別、関連語に関するデータを含んで構成される。そして、コーディング支援サーバ２０の制御部２１は、名称事例の検索処理を実行する（ステップＳ１−８、Ｓ４−１２）。ここでは、候補検索手段２１４は、コメント文から取得したキーワードが関連語データ領域に記録された名称事例レコード２３０を検索する。名称事例の検索方法は、これに限定されるものではない。例えば、コメント文から取得したキーワードを翻訳し、この翻訳語を用いて、名称事例レコード２３０に記録された名称事例を曖昧検索するようにしてもよい。この場合には、翻訳語の一部一致や子音配列が一致する名称事例レコード２３０を検索する。
【００９２】
・  上記各実施形態では、コーディング支援サーバ２０の制御部２１は、アクセス修飾子に応じて検索範囲の特定処理を実行する（ステップＳ１−７、Ｓ４−１１）。ここで、アクセス修飾子が設定されていない場合には、継承元クラスの構成によって決定するようにしてもよい。具体的には、継承元クラスを特定し、この継承元クラスにおいて規定されたアクセス修飾子を用いて、検索範囲を決定する。
【００９３】
・  上記第２の実施形態では、この長さ決定テーブルにおいて、利用頻度が高い場合に、名称の構成文字数が多くなるように設定された基準文字数を記録した。そして、基準文字数に応じて優先順位の決定処理（ステップＳ４−１５）において、名称候補の文字数が基準文字数に近い順番に、名称候補を出力する優先順位を決定する。優先順位の決定方法は、基準文字数に近い順番に限定されるものではない。名称を付与する変数、メソッド又はクラスの使用頻度予測値を予め登録しておき、この使用頻度予測値に応じて、文字数を制御するようにしてもよい。例えば、使用頻度予測値が大きく、よく使用される可能性がある変数、メソッド又はクラスについては、基準文字数に対して所定範囲内で短くしたものを許容し、これらの優先順位を高くする制御を行なう。
【符号の説明】
【００９４】
１０…クライアント端末、２０…コーディング支援サーバ、２１…制御部、２１１…属性取得手段、２１２…辞書特定手段、２１３…コーディング手段、２１４…候補検索手段、２１５…翻訳手段、２１６…辞書更新手段、２１７…仕様書生成手段、２１８…コード表示手段、２２…利用者データ記憶部、２３…名称辞書データ記憶部、２４…翻訳辞書データ記憶部、２５…プログラムリソース記憶部、２６…ＡＰＩ仕様書記憶部。
【図１】
0005389857.tif 000002
【図２】
0005389857.tif 000003
【図３】
0005389857.tif 000004
【図４】
0005389857.tif 000005
【図５】
0005389857.tif 000006