(57)【要約】【課題】ユーザのプログラムを作成作業にリアルタイムに同期しながら現在のスコープやデータ型に応じた変数名を自動生成し、業務プログラムを効率良く作成することができるプログラム作成支援システム及び方法並びにプログラムを提供すること。【解決手段】プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段と、任意の入力情報に対し当該入力情報と一致するデータ型情報が前記データ型情報記憶手段に記憶されているかを検索し、記憶されていれば、スコープを判定し、当該スコープに対応した命名規則を命名規則記憶手段から取得する第１の手段と、取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第２の手段とを備える。【選択図】        図１
2004258848.tif 000002
【特許請求の範囲】
【請求項１】
プログラム作成作業における変数名の命名規則に従った変数名を自動的に生成するプログラム作成支援システムであって、
プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段と、任意の入力情報に対し当該入力情報と一致するデータ型情報が前記データ型情報記憶手段に記憶されているかを検索し、記憶されていれば、スコープを判定し、当該スコープに対応した命名規則を前記命名規則記憶手段から取得する第１の手段と、取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第２の手段とを備えることを特徴とするプログラム作成支援システム。
【請求項２】
前記第２の手段が、前記命名規則情報記憶手段に記憶された変数名の自動入力後におけるカーソル位置の定義情報に従い、変数名の自動入力後にカーソル位置を移動させる手段をさらに備えることを特徴とする請求項１に記載のプログラム作成支援システム。
【請求項３】
前記データ型情報記憶部に記憶させるデータ型、データ名、変数名を任意に編集するデータ型情報編集手段をさらに備えることを特徴とする請求項１または２に記載のプログラム作成支援システム。
【請求項４】
プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段とを備え、プログラム作成作業における変数名の命名規則に従った変数名を自動的に生成するプログラム作成支援方法であって、
任意の入力情報に対し当該入力情報と一致するデータ型情報が前記データ型情報記憶手段に記憶されているかを検索し、記憶されていれば、スコープを判定する第１のステップと、
判定結果のスコープに対応した命名規則を前記命名規則記憶手段から取得する第２のステップと、
取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第３のステップと
を備えることを特徴とするプログラム作成支援方法。
【請求項５】
前記第３のステップにおいて、前記命名規則情報記憶手段に記憶された変数名の自動入力後におけるカーソル位置の定義情報に従い、変数名の自動入力後にカーソル位置を自動移動させるステップをさらに備えることを特徴とする請求項４に記載のプログラム作成支援方法。
【請求項６】
プログラム作成作業における変数名の命名規則に従った変数名を自動的に生成するソフトウェア作成支援プログラムであって、
任意の入力情報に対し当該入力情報と一致するデータ型情報がデータ型に対応したデータ名および変数名を記憶したデータに記憶されているかを検索し、記憶されていれば、スコープを判定する第１の処理ステップと、
判定結果のスコープに対応した命名規則を、プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段から取得する第２の処理ステップと、
取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第３の処理ステップと
を備えることを特徴とするプログラム作成支援プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種の業務プログラムの作成に係るコーディング工程においてプログラムの編集作業を支援するプログラム作成支援システムおよび方法並びにプログラムに関するものである。
【０００２】
【従来の技術】
従来、次の特許文献１で開示されているように、業務プログラム開発の編集作業を支援するシステムでは、文字数の多い仕様上の日本語名から、プログラムコード中で記述する英数字名を特定の変換規則によって生成するものがある。
【０００３】
【特許文献１】
特開平６−３３２６８２号公報
【０００４】
この特許文献１で開示されているシステムは、変数名（定義情報）の変換規則が登録されたデータベースを備えている。変数名の変換規則は、基本となる文字列の中から複数の部分文字列を抽出する位置情報と、位置情報によって抽出されたそれぞれの部分文字列を英語名に変換する対応辞書、英数字の断片を最終的に結合する規則である。すなわち、仕様書に記述される長い日本語名を短縮された英語名に変換するものである。
また、完成またはある程度完成したプログラムコードに対して、変数名称が命名規則を満たしているかを検査及び訂正する支援システムがある。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記の従来の技術で生成される短縮された変数名は、テーブルの列名やプログラムコードでの関数名や変数名の一部に使用できるだけであり、プログラムコード中で記述する名称そのものにはならない。すなわち、一般的に業務プログラムを作成する場合には、コードを記述するスコープやデータ型などに応じた各種名称の命名規則がコーディング基準として設けられているため、従来の技術で生成される英数字名称だけでは不十分である。
また、完成またはある程度完成したプログラムコードに対して、変数名称が命名規則を満たしているかを検査及び訂正する後者の従来の技術では、ユーザが作成したプログラムコードに対して一括した修正を行なうために、整形されていたプログラムコードが乱れることや、意図せぬ不具合が発生することがあった。
すなわち、従来の技術にあっては、ユーザが業務プログラムを作成するという作業にリアルタイムに同期しながら現在のスコープ（変数の適用範囲）やデータ型に応じた変数名を生成することができず、業務プログラムを効率良く作成することができないという問題があった。
【０００６】
本発明の目的は、ユーザのプログラムを作成作業にリアルタイムに同期しながら現在のスコープやデータ型に応じた変数名を自動生成し、業務プログラムを効率良く作成することができるプログラム作成支援システム及び方法並びにプログラムを提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るプログラム作成支援システムは、プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段と、任意の入力情報に対し当該入力情報と一致するデータ型情報が前記データ型情報記憶手段に記憶されているかを検索し、記憶されていれば、スコープを判定し、当該スコープに対応した命名規則を前記命名規則記憶手段から取得する第１の手段と、取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第２の手段とを備えることを特徴とする。
また、前記第２の手段が、前記命名規則情報記憶手段に記憶された変数名の自動入力後におけるカーソル位置の定義情報に従い、変数名の自動入力後にカーソル位置を移動させる手段をさらに備えることを特徴とする。
また、前記データ型情報記憶部に記憶させるデータ型、データ名、変数名を任意に編集するデータ型情報編集手段をさらに備えることを特徴とする。
【０００８】
本発明に係るプログラム作成支援方法は、プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段と、データ型に対応したデータ名および変数名を記憶したデータ型情報記憶手段とを備え、プログラム作成作業における変数名の命名規則に従った変数名を自動的に生成する方法であって、任意の入力情報に対し当該入力情報と一致するデータ型情報が前記データ型情報記憶手段に記憶されているかを検索し、記憶されていれば、スコープを判定する第１のステップと、判定結果のスコープに対応した命名規則を前記命名規則記憶手段から取得する第２のステップと、取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第３のステップとを備えることを特徴とする。
また、前記第３のステップにおいて、前記命名規則情報記憶手段に記憶された変数名の自動入力後におけるカーソル位置の定義情報に従い、変数名の自動入力後にカーソル位置を自動移動させるステップをさらに備えることを特徴とする。
【０００９】
本発明に係るプログラム作成支援プログラムは、任意の入力情報に対し当該入力情報と一致するデータ型情報がデータ型に対応したデータ名および変数名を記憶したデータに記憶されているかを検索し、記憶されていれば、スコープを判定する第１の処理ステップと、判定結果のスコープに対応した命名規則を、プログラムコードの入力位置のスコープに応じた命名規則を記憶した命名規則記憶手段から取得する第２の処理ステップと、取得した命名規則に従いデータ型情報に対応した変数名およびデータ名とを生成して自動入力する第３の処理ステップとを備えることを特徴とする。
【００１０】
【発明の実施の形態】
以下、本発明を図面に示す実施形態に基づいて詳細に説明する。
図１は、本発明を適用したプログラム作成支援システムの実施形態を示すブロック図である。
本実施形態のプログラム作成支援システム１０１は、キーボードやマウスからの入力を受け付ける入力部１０２と、画面にプログラムコードを表示する表示部１０３を持つテキストエディタなどのプログラム編集装置１０４、開発している業務プログラムのプログラムコード１１４で宣言されているユーザ定義のデータ型及び開発言語で宣言されているシステム定義のデータ型に関する情報が格納されているデータ型情報記憶部１１２、プログラム編集装置１０４に対するユーザの編集操作が発生した場合にユーザがデータ型情報１１２に格納されているデータ型を入力したかを検出するデータ型検索部１０５、ユーザが編集しているプログラムコードの位置からスコープを判定するスコープ判定部１０６、データ型とスコープなどに応じた命名規則が格納されている命名規則情報記憶部１１３、データ型とスコープなどを条件に命名規則情報記憶部１１３に記憶された命名規則を検索する命名規則検索部１０７、命名規則検索部１０７の検索結果に応じた変数名称をプログラム編集装置１０４に返し表示させる名称出力部１０８、プログラムコード１１４からユーザ定義とシステム定義のデータ型を抽出してデータ型情報記憶部１１２に格納するデータ型抽出部１１０、データ型抽出部１１０によって格納されたデータ型情報をユーザが編集するデータ型情報編集部１１１、ユーザが命名規則を命名規則情報記憶部１１３に登録する命名規則登録部１０９で構成される。
【００１１】
この実施形態の動作について説明する。なお、以下の説明で用いるプログラム言語は、Ｃ＋＋であるが、データ型検索部１０５やスコープ判定部１０６、データ型抽出部１１０などのプログラムコードにアクセスしている部分を言語に応じて修正することで複数の言語に対応することが可能である。
図２は、本発明における処理の概要を示したフローチャートである。
まず、ユーザ（プログラム開発者）がプログラム編集装置１０４に対して処理の開始を意味する操作を行なうことにより、データ型検出処理（ステップ２０１）が実行される。処理の開始を意味する操作とは、例えばスペースキーの押下やあるメニューのクリックなどである。ステップ２０１のデータ型検出処理は、プログラム編集装置１０４の表示部１０３に表示されているカーソル位置（次のプログラムコードの入力位置）の直前にある単語を取得し、データ型情報記憶部１１２にその単語と一致するデータ型が記憶されているかどうか検索する。
そして、一致するデータ型が記憶されていたかどうかを判定し（ステップ２０２）、記憶されていた場合には次のスコープ判定処理（ステップ２０３）へ進む。しかし、一致するデータ型が記憶されていなかった場合には処理の終了へ進む条件分岐を行なう。
ステップ２０３のスコープ判定処理では、プログラム編集装置１０４の表示部１０３に表示されている現在のカーソル位置が、プログラムコード中のどのスコープに該当するかを前後のプログラムコードを解析して判定する。
次に、ステップ２０４の命名規則検索処理でスコープ判定処理によって得られたスコープに該当する命名規則が命名規則情報記憶部１１３に記憶されているかを検索する。
最後に、ステップ２０５の名称出力処理では、ステップ２０１のデータ型検出処理で得られたデータ型に関する情報と、ステップ２０４の命名規則検索処理で得られた命名規則を用いて、データ型とスコープに適した変数名称を生成し、その生成結果をプログラム編集装置１０４に渡し、表示部１０３に表示させる。
【００１２】
図３は、データ型情報記憶部１１２に格納されるデータ型情報の例を示すものである。
データ型情報は、１つのデータ型に関して、プログラムコードにおけるデータ型３０１と、仕様書などのドキュメント上で用いられる日本語であるデータ名３０２と、データ型が対象言語の型として定義されたものかユーザのプログラム中で定義されたものかを区別する定義区分３０３と、変数名称に記述する短縮された名称である生成文字列３０４の４つの情報で構成される。
データ型３０１と定義区分３０３の２つは、データ型抽出部１１０がプログラムコード１１４及びプログラムコード１１４が使用しているシステムヘッダファイルで宣言されているデータ型を抽出し、データ型情報記憶部１１２に格納する情報である。一方、データ名３０２と生成文字列３０４は、ユーザがコーディング基準に合わせてデータ型情報編集部１１１で入力するものである。
【００１３】
図４は、データ型情報編集部１１１のデータ型情報編集画面４０１の例を示す図である。データ型情報編集画面４０１では、データ型情報記憶部１１２に格納されているデータ型に関する情報を一覧表示する。ユーザは表示されたデータ型情報の一覧から、プログラム中で使用するデータ型に関してデータ名４０２と生成文字列４０３を編集することができる。ユーザによって編集された内容は、データ型情報記憶部１１２に格納される。
図４の例では、データ型「ＣＣｕｓｔｏｍｅｒ」に対して、データ名「顧客」、生成文字列「Ｃｓｔｍ」を定義したことを示している。
【００１４】
図５は、命名規則情報記憶部１１３に格納される命名規則情報の例を示すものである。命名規則情報は、１つのスコープ５０１に１つの命名規則文字列５０２を対応付けて構成される。スコープ５０１は、対象とするプログラム言語によって異なるが、本実施例ではＣ＋＋を例にしているので、グローバル変数を示すグローバル５０３と、クラス宣言でのメンバ変数を示すクラス５０４、関数定義内でのローカル変数を示すローカル５０５、関数宣言または関数定義内の引数を示す引数５０６の４種類である。そして、それぞれのスコープには、データ型情報１１２に記憶されたデータ型情報の変換方法を定義した命名規則文字列５０２が対応付けて格納される。
【００１５】
次に、命名規則文字列５０２について詳細に説明する。
図６は、命名規則文字列５０２で記述できる記号とその意味の一覧である。
命名規則文字列５０２は、図２のステップ２０５の名称出力処理がデータ型検出処理（ステップ２０１）で得られたデータ型に関する情報と特定のスコープ用の命名規則文字列５０２から変数名称を生成するための変換規則である。
命名規則文字列５０２には、図６に示す４つの記号が定義できる。
データ型６０１はデータ型情報のデータ型３０１に対応し、命名規則文字列５０２の「％ｄ」がデータ型情報のデータ型３０１に変換される。
生成文字列６０２はデータ型情報の生成文字列３０４に対応し、命名規則文字列５０２の「％ｇ」がデータ型情報の生成文字列３０４に変換される。
データ名６０４はデータ型情報のデータ名３０２に対応し、命名規則文字列５０２の「％ｍ」がデータ型情報のデータ名３０２に変換される。
カーソル位置６０３は、名称出力処理（図２のステップ２０５）が生成された変数名称を表示部１０３に表示させた後にカーソルを移動させる位置を示している。ユーザは自動的に移動したカーソル位置から入力を継続することで変数名称を完成させることができる。
【００１６】
図７は、これまでに説明した処理や各種情報を用いて実際に変数名称を生成する例を説明する図である。
生成前７０１は、クラス宣言内でこれからメンバ変数を定義しようとしている状態で、図中の三角マークは表示部１０３でのカーソル位置を示している。この状態で、図２で説明した処理が実行されると、カーソル前にある単語「Ｃａｃｃｏｕｎｔ」は、図３の例で取り上げたデータ型情報に一致することがデータ型検索部１０５で検索される。また、スコープは前述したようにクラスであることがスコープ判定部１０６で判定される。そして、図５の例で挙げた命名規則情報からスコープがクラスに該当する命名規則文字列５０２として「％ｄ  ｍ＿％ｇ％ｃ；    ／＊  ％ｍ  ＊／」が得られる。最後に名称出力部１０８において、得られた命名規則文字列「％ｄ  ｍ＿％ｇ％ｃ；    ／＊  ％ｍ  ＊／  」に対して生成処理が行われる。生成処理では、「％ｄ」が「Ｃａｃｃｏｕｎｔ」に、「％ｇ」が「Ａｃｎｔ」に、「％ｍ」が「口座」に変換され、生成結果の「ＣＡｃｃｏｕｎｔ  ｍ＿Ａｃｎｔ；  ／＊  口座  ＊／  」が得られる。
名称出力部１０８は、この生成結果を表示部１０３に表示させ、カーソル位置を示す「％ｃ」に対応する位置にカーソルを移動させて、最後に、そのカーソル位置を示す「％ｃ」を削除する。これにより、生成後７０２で示すような生成結果が得られる。
【００１７】
なお、図３のデータ型情報の例において、生成文字列３０４には変数名を記憶させるようにしているが、変数名に代えてコメント文を登録しておけば、コメント文を自動的に入力することも可能である。
また、プログラム作成支援システム１０１は、開発作業を行うコンピュータ内で実行可能な支援プログラムとして提供することが可能である。
【００１８】
【発明の効果】
以上の説明から明らかなように、本発明によれば、ユーザはデータ型情報記憶手段に記憶されたデータ型の入力情報を入力すれば、現在の入力位置のスコープに応じた命名規則に従い、変数名やデータ名あるいはコメント文が自動的に生成されて自動入力される。すなわち、現在のスコープに応じた変数名やデータ名あるいはコメント文がリアルタイムに同期しながら生成されて自動入力される。
これにより、プログラム作成作業を中断することなく、効率良く行うことが可能になる。
さらに、自動生成して自動入力した変数名などの次の入力位置にカーソル位置を自動的に移動させることによって、ユーザの操作を中断させることなく、コーディング基準に準じたプログラム作成作業の効率を向上させることが可能になるなどの効果が得られる。
【図面の簡単な説明】
【図１】本発明を適用したプログラム作成支援システムの実施の形態を示すシステム構成図である。
【図２】本発明における処理の概要を示すフローチャートである。
【図３】データ型情報の例を示す図である。
【図４】データ型情報の編集画面の例を示す図である。
【図５】命名規則情報の例を示す図である。
【図６】命名規則情報中の記号の意味を示す図である。
【図７】変数名等の自動入力前の入力状態と自動入力後の状態を示す図である。
【符号の説明】
１０１…プログラム作成支援システム、１０２…入力部、１０３…表示部、１０４…プログラム編集装置、１０５…データ型検索部、１０６…スコープ判定部、１０７…命名規則検索部、１０８…名称出力部、１０９…命名規則登録部、１１０…データ型抽出部、１１１…データ型情報編集部、１１２…データ型情報記憶部、１１３…命名規則情報記憶部、１１４…プログラムコード。
【図１】
2004258848.tif 000003
【図２】
2004258848.tif 000004
【図３】
2004258848.tif 000005
【図４】
2004258848.tif 000006
【図５】
2004258848.tif 000007
【図６】
2004258848.tif 000008
【図７】
2004258848.tif 000009