(57)【要約】【課題】同様多種に発生する関数を管理し関数名を知らなくても関数を容易に再利用できるようにすることである。【解決手段】標準ライブラリ１３及び業務用ライブラリ１４を用いてプログラムを開発する開発ツール１２の業務用ライブラリ１４の関数に属性を付けて予め記憶した関数マスタデータベース１８と、開発ツールで開発する開発対象プログラム内で使用する変数に属性を付けて予め記憶した変数マスタデータベース１９と、開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索し抽出する変数抽出手段２２と、変数抽出手段で抽出された変数の属性を変数マスタデータベースから抽出しその属性に関連する関数群を関数マスタデータベースから抽出し開発ツールに表示出力する関数群表示出力手段２３とを備える。【選択図】  図１
2008242613.tif 000002
【特許請求の範囲】
【請求項１】
標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールの前記業務用ライブラリの関数に属性を付けて予め記憶した関数マスタデータベースと、前記開発ツールで開発する開発対象プログラム内で使用する変数に属性を付けて予め記憶した変数マスタデータベースと、前記開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索し抽出する変数抽出手段と、前記変数抽出手段で抽出された変数の属性を前記変数マスタデータベースから抽出しその属性に関連する関数群を前記関数マスタデータベースから抽出し前記開発ツールに表示出力する関数群表示出力手段とを備えたことを特徴とするプログラム開発支援システム。
【請求項２】
前記業務用ライブラリの関数を作成する関数作成手段を設け、前記関数作成手段は、関数を変更し作成した新関数に元の関数と同じ属性を付けて前記関数マスタデータベースに記憶することを特徴とする請求項１記載のプログラム開発支援システム。
【請求項３】
変数毎に利用されたプログラム回数を利用履歴として保持する利用履歴データベースを設け、前記関数群表示出力手段は、関数群の候補表示順として、前記利用履歴データベースの利用履歴の利用回数を基に表示することを特徴とする請求項２記載のプログラム開発支援システム。
【請求項４】
前記変数マスタデータベースへの変数登録や変数登録チェックを行う変数マスタ更新プログラムを備えたことを特徴とする請求項１乃至３のいずれか１項記載のプログラム開発支援システム。
【請求項５】
標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールで作成する開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索して抽出し、抽出した変数の属性に関連する関数群を抽出し前記開発ツールに表示出力することを特徴とするプログラム開発支援方法。
【請求項６】
標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールの前記業務用ライブラリの関数を変更し新関数を作成し、作成した新関数に元の関数と同じ属性を付けて記憶し、前記開発ツールで開発する開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索して抽出し、抽出した変数の属性に関連する関数群を前記新関数も含めて抽出し前記開発ツールに表示出力することを特徴とするプログラム開発支援方法。
【請求項７】
抽出した関数群の候補表示順として、利用履歴の利用回数を基に表示することを特徴とする請求項３または４記載のプログラム開発支援方法。
【請求項８】
コンピュータに、標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールで作成する開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索して抽出する手順と、抽出した変数の属性に関連する関数群を抽出し前記開発ツールに表示出力する手順とを実行させるためのプログラム開発支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールを支援するプログラム開発支援システム、方法及びプログラムに関する。
【背景技術】
【０００２】
標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールにおいて、開発対象プログラムのプログラムコーディングで関数（部品）を使用する際の開発支援機能は、関数に関する情報の入力時に、前方のスペースからカーソル位置までの情報を取得し、前方一致検索にて一致する関数（部品名）を表示する方法で実現している。
【０００３】
例えば、printf()等の関数（部品）を入力する場合、ソースエディター上に関数の一部（例えばpri等）を入力すると、ポップアップウィンドウで前方一致検索を行い、候補文字列(printf())を表示する。そして、表示された候補文字列の中から使用するものを選択する。
【０００４】
ここで、ソースプログラムやドキュメントだけでなく担当者やプロジェクトで使用するツールといったプログラム開発に関係する情報をある一定のフォーマットでリソースという単位として管理し、それぞれの情報間に論理的な意味を有する関連付けを行い、この関連付けされた情報を利用することによって、データを一元的に管理するようにしたものがある（例えば、特許文献１参照）。
【特許文献１】特開平９−２１２３５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１のものは、ユーザは各情報間の関連を全く意識することなくプログラムの作成ができプログラム開発の効率が向上するが、ソースエディターから参照できる関数を表示して開発支援を行うものではない。
【０００６】
ソースエディターから参照できる関数を表示して開発支援を行うものでは、関数は「関数名」で一意に分類されているので、一部でも仕様が違えば、それは「別関数」となり、似た機能の関数を探すことが難しい。
【０００７】
従って、従来のものでは、「関数名」を知らないと使用することができないものであり、「関数」の再利用が難しい。すなわち、「関数」を改造して新規の関数の作成を行った場合、再利用のために新しい関数名を周知することが難しい。また、同様多種の関数が存在する場合、「関数」の選択時に関数毎の特徴が表示されないので再利用が難しく、また、同様多種（派生）プログラムを生み出した場合には、変更ポイントなどを登録できないので再利用が難しい。
【０００８】
さらには、「関数名」をキーに検索するため、機能（属性）での検索ではなく名前による検索となり、派生したプログラムを検索することは難しい。このため、業務プログラム用にチェック関数などを作成しても、利用者に周知することが難しく、作成した関数が有効活用されない。
【０００９】
このように、従来の開発支援機能（入力支援機能）では、既存の機能があったとしても「関数名」を知らないと使用できないものである。また、従来の関数（部品）管理は、ソースエディターから参照できる関数（部品）は名前で管理され、機能面でのカテゴリ分けが行われていないので、再利用が促進されない。
【００１０】
例えば、よく知られている、「Ａ」という関数を一部修正を行ったものは、別の名前、例えばＢという名前がつけられる。この「Ａ」と「Ｂ」との関連性を登録し管理することはできない。このため、必要に応じて作成した派生した関数である「Ｂ」について再利用が促進されない。
【００１１】
本発明の目的は、同様多種に発生する関数を管理し関数名を知らなくても関数を容易に再利用できるプログラム開発支援システム、方法及びプログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明に係わるプログラム開発支援システムは、標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールの前記業務用ライブラリの関数に属性を付けて予め記憶した関数マスタデータベースと、前記開発ツールで開発する開発対象プログラム内で使用する変数に属性を付けて予め記憶した変数マスタデータベースと、前記開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索し抽出する変数抽出手段と、前記変数抽出手段で抽出された変数の属性を前記変数マスタデータベースから抽出しその属性に関連する関数群を前記関数マスタデータベースから抽出し前記開発ツールに表示出力する関数群表示出力手段とを備えたことを特徴とする。
【００１３】
本発明に係わるプログラム開発支援方法は、標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールで作成する開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索して抽出し、抽出した変数の属性に関連する関数群を抽出し前記開発ツールに表示出力することを特徴とする。
【００１４】
本発明に係わるプログラム開発支援プログラムは、コンピュータに、標準ライブラリ及び業務用ライブラリを用いてプログラムを開発する開発ツールで作成する開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索して抽出する手順と、抽出した変数の属性に関連する関数群を抽出し前記開発ツールに表示出力する手順とを実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、同様多種に発生する関数を管理し関数名を知らなくても関数を容易に再利用できる。また、既存の関数を改造し、作成した派生プログラムをバリエーションの一つとして登録できるので、関数使用時の選択範囲を広げることができ、関数の再利用が促進できる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら本発明の実施の形態を説明する。図１は本発明の実施の形態に係わるプログラム開発支援システムの構成図である。プログラム開発支援システム１１はプログラムを開発する開発ツール１２のプログラム開発支援を行うものである。開発ツール１２は、標準ライブラリ１３及び業務用ライブラリ１４を用いてプログラム作成手段１５によりプログラムを開発するものである。標準ライブラリ１３にはプログラムを開発する際に使用される標準的な言語、例えばＣ言語による標準的な関数が格納されており、業務用ライブラリ１４には開発対象プログラムのプログラムコーディングを行う際に使用される、標準ライブラリ１３とは別個の各種の業務用の関数が格納されている。
【００１７】
プログラムの開発者は、プログラム開発に必要な入力装置１６から情報を入力し、プログラム作成手段１５にアクセスして表示装置１７に表示される情報に従ってプログラムを作成していく。
【００１８】
一方、プログラム開発支援システム１１は、開発ツール１２でプログラムを開発する際にその開発の支援を行うものであり、関数マスタデータベース１８、変数マスタデータベース１９、利用履歴データベース２０の３つのデータベースを有し、プログラムの作成の際に必要とする適切な関数を検索エンジン２１で検索し開発ツール１２に提供する。検索エンジン２１は、変数抽出手段２２と関数群表示出力手段２３とを備えている。また、新規の関数を作成する関数作成手段２４を備えている。
【００１９】
変数マスタデータベース１９は、開発対象プログラム内で使用する変数を予め定義しておくマスタであり、開発ツール１２で開発する開発対象プログラム内で使用する変数に属性を付けた情報が予め記憶されている。開発ツール１２が特定業種／業務用のプログラムを作成することを前提としている場合、使用する変数を事前に定義することが可能である。例えば、保険会社向けの契約情報の場合には契約書に記載されている項目を変数項目とする。この変数に属性をつけて整理する。つまり、変数マスタデータベース１９には、テーブル構造が（変数名、属性）のデータが格納されている。
【００２０】
関数マスタデータベース１８は、変数（属性）と関数（部品）とを紐付けるマスタであり、業務用ライブラリの関数に属性を付けた情報が予め記憶されている。つまり、関数マスタデータベース１８には、テーブル構造が（属性、関数名）のデータが格納されている。利用履歴データベース２０は、変数毎に利用されたプログラム回数を利用履歴として保持する。
【００２１】
検索エンジン２１の変数抽出手段２２は、開発ツール１２のプログラム作成手段１５から受信した開発対象プログラムのソフトウェアコーディングにおける１センテンスに記載された変数を検索するものであり、検索した変数を抽出して関数群表示出力手段２３に出力する。関数群表示出力手段２３は、変数抽出手段２２で抽出された変数の属性を変数マスタデータベース１９から抽出し、その属性に関連する関数群を関数マスタデータベース１８から抽出して開発ツール１２の表示装置１７に表示出力する。また、関数群表示出力手段２３では関数の候補表示順として、この利用履歴データベース２０の利用履歴の利用回数を基に表示することになる。
【００２２】
また、関数作成手段２４は新しい関数を作成するものであり、プログラム追加機能とプログラムの更新／削除機能とを有する。プログラム追加機能は、新たな関数を作成した場合は新しいプログラムとして登録するとともに、特に既存の関数を「更新／変更」する場合であっても、新しいプログラムとして登録する。新しい関数の登録時には変更ポイントを登録することとする。変更ポイントとは同様多種に派生するプログラムを識別するために記入するもので、変更点が簡潔に記載されたものとする。プログラムの更新／削除機能は、プログラムの不具合修正や削除を行い、プログラムの不具合修正を除き、基本的に上書き保存を行わないことをルールとする。削除の場合も更新用プログラムから変更を行う。
【００２３】
また、変数マスタ更新プログラム２５は、変数登録や変数登録チェックを行うものである。変数登録は開発ツール１２で使用する変数名を変数マスタデータベース１９に登録するものであり、変数登録チェックは変数の表記ゆれのチェックを行うものである。さらに、利用履歴更新プログラム２６は、それぞれの変数毎に関数の利用履歴を管理する。この場合、関数群表示出力手段２３での関数の候補表示は利用履歴の多い順とする。
【００２４】
次に、変数マスタと関数マスタとの紐付けは「属性」を用いて行う。変数と関数とはそれぞれ多対多の関連を持つ場合も含むようにする。変数Ａと関数Ｂとの属性での紐付けは、基本的には以下のようになる。
【００２５】
変数Ａ→（紐付け）→関数Ｂ
変数名「Ａ」を指定すると、利用可能な関数の候補として、関数Ｂが表示される。この場合、入力データの前方一致検索ではなく、入力行にある「変数名」を抽出し関数を検索するので、関数名を知らなくても関数を活用できる。なお、機能利用（起動）はショートカットキー等で起動することとする。
【００２６】
また、関数の再利用のための補助機能として、候補関数の表示時に関数の概要を表示できるようにする。また、元の関数を変更して別関数を作成することを可能とする。作成された関数は元の関数に上書きされることなく、別関数（派生プログラム）として保存され、元の関数に対する変更ポイントの入力が必須項目となる。さらに、変数と関数との関連付けに自由度を持たせるべく、多対多の関係にする。
【００２７】
多対多の関係にするため、データベースは、変数マスタデータベース｛テーブル構造（変数名、属性）｝と関数マスタデータベース｛テーブル構造（属性、関数名）｝との２種類としており、属性を用いて以下の関連付けを行う。図２は変数マスタデータベース１９の変数マスタと関数マスタデータベース１８の関数マスタとの関連の一例の説明図である。
【００２８】
ここで、dateという変数には、属性として日付と数字とを有するものがあり、属性として日付を有するものは関数としてdate1()、date2()が紐付き、属性として数字を有するものは関数としてnumeric()が紐付く。従って、dateという変数には、date1()、date2()、numeric()の３種類の関数が紐付き、変数dateの属性（日付、数字）でそれぞれ関数マスタを検索する。また、同様に、birthdayという変数には、date1()、date2()という２種類の関数が紐付き、変数birthdayの属性（日付）で関数マスタを検索する。
【００２９】
また、変数マスタと関数マスタとが図３に示す関連の場合であるときは、変数birthdayに対してdate_check(),nengo()の二つが選択され表示装置に表示される。
【００３０】
前述したように、表示の優先度機能を有し、関数の利用頻度に伴う表示優先度管理を行う。候補関数の表示順は利用頻度の多いものからとする。また、機能の利用の自由度を高めるために、ＡＰＩ（Application Programming Interface）を整備し、機能の呼出用にＡＰＩを準備する。
【００３１】
図４は本発明の実施の形態に係わるプログラム開発支援方法の処理内容を示すフローチャートである。まず、開発ツール１２から入力された１センテンスに含まれる変数を変数抽出手段２２により抽出し（Ｓ１）、抽出した変数の属性に基づき適用可能な関数群を関数群表示出力手段２３により表示装置１７に表示する（Ｓ２）。そして、表示された関数群の中に組み込みたい関数はあるかどうかを判断し（Ｓ３）、組み込みたい関数があるときは当該関数を入力装置１７を介して選択し（Ｓ４）、その選択した当該関数をプログラム作成手段１５により開発対象プログラムに組み込む（Ｓ５）。
【００３２】
一方、ステップＳ３の判断で、組み込みたい関数がない場合には、組み込みたい関数を関数作成手段２４により新たに作成し（Ｓ６）、作成した新関数を開発対象プログラムに組み込む（Ｓ７）。そして、作成した新関数は既存の関数の変更か否かを判断し（Ｓ８）、新関数が既存の関数の変更でないときは、属性を付けて別名で関数マスタデータベース１８に記憶する（Ｓ９）。一方、新関数が既存の関数の変更であるときは、作成した新関数に元の関数と同じ属性を付けて別名で関数マスタデータベース１８に記憶する（Ｓ１０）。以上の説明では、ステップＳ３の後段で新関数を作成するようにしたが、ステップＳ１の前段階で予め新関数を作成するようにしてもよい。
【００３３】
本発明の実施の形態によれば、変数名から関数（部品）を検索するので、関数名を知らなくても関数の再利用が可能となり、関数の再利用が促進される。また、既存の関数を改造し、作成した派生プログラムをバリエーションの一つとして登録できるので、関数使用時の選択範囲を広げることができる。
【００３４】
なお、上述した実施の形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、記憶媒体に記憶し各装置に応用したり、通信媒体により伝送して各種装置に適用することも可能である。本発明における記憶媒体としては、磁気ディスク、フレキシブルディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤなど）、光磁気ディスク（ＭＯなど）、半導体メモリなど、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式はいずれの形態であってもよい。また、ここで記憶媒体とは、コンピュータと独立した媒体に限らず、ＬＡＮやインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施の形態に係わるプログラム開発支援システムの構成図。
【図２】本発明の実施の形態における変数マスタデータベースの変数マスタと関数マスタデータベースの関数マスタとの関連の一例の説明図。
【図３】本発明の実施の形態における変数マスタデータベースの変数マスタと関数マスタデータベースの関数マスタとの関連の他の一例の説明図。
【図４】本発明の実施の形態に係わるプログラム開発支援方法の処理内容を示すフローチャート。
【符号の説明】
【００３６】
１１…プログラム開発支援システム、１２…開発ツール、１３…標準ライブラリ、１４…業務用ライブラリ、１５…プログラム作成手段、１６…入力装置、１７…表示装置、１８…関数マスタデータベース、１９…変数マスタデータベース、２０…利用履歴データベース、２１…検索エンジン、２２…変数抽出手段、２３…関数群表示出力手段、２４…関数作成手段、２５…変数マスタ更新プログラム、２６…利用履歴更新プログラム
【図１】
2008242613.tif 000003
【図２】
2008242613.tif 000004
【図３】
2008242613.tif 000005
【図４】
2008242613.tif 000006