(57)【要約】【課題】オブジェクト指向プログラムコードの入力時に、次に入力すべき適切な処理を提示してプログラマに提示し、プログラムコードの入力を効率良く支援すること。【解決手段】入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対して次に入力すべきシーケンスパターンの一覧を格納した第１の記憶手段と、記憶されたシーケンスパターンのそれぞれに対応したプログラムコードを格納した第２の記憶手段と、入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対応するシーケンスパターンの一覧を前記第１の記憶手段から取得して表示装置画面に表示すると共に、表示されたシーケンスパターンの一覧におけるシーケンスパターンのいずれかの選択操作に応じて、対応するプログラムコードを前記第２の記憶手段から取得して入力装置から入力されたプログラムコードに補完するシーケンスパターン検索手段とを備える。【選択図】        図１
2004295557.tif 000002
【特許請求の範囲】
【請求項１】
入力装置から入力されるオブジェクト指向プログラムのコードの入力を支援する装置であって、
前記入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対して次に入力すべきシーケンスパターンの一覧を格納した第１の記憶手段と、この第１の記憶手段に記憶されたシーケンスパターンのそれぞれに対応したプログラムコードを格納した第２の記憶手段と、入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対応するシーケンスパターンの一覧を前記第１の記憶手段から取得して表示装置画面に表示すると共に、表示されたシーケンスパターンの一覧におけるシーケンスパターンのいずれかの選択操作に応じて、対応するプログラムコードを前記第２の記憶手段から取得して入力装置から入力されたプログラムコードに補完するシーケンスパターン検索手段とを備えることを特徴とするプログラムコードの入力支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力装置から入力されるオブジェクト指向プログラムのコードの入力を支援する装置に関するものである。
【０００２】
【従来の技術】
従来、シーケンスとプログラムを組み合わせることで、プログラムの作成を支援する技術として、例えば特許文献１に記載のものが知られている。
【０００３】
【特許文献１】
特開平１１−８５２３２号公報
この特開平１１−８５２３２号公報に記載のものは、例えば、既存のシーケンスプログラムを組み合わせることで新たなシーケンスプログラムを作成するものである。具体的には、複数のシーケンスプログラムを組み合わせることで、シーケンスプログラムを自動作成、再作成し、元になったシーケンスプログラムのメモリの参照情報へのクロスリファレンスを自動作成、再作成するものである。
また、従来技術として、プログラム言語で開発する際の統合開発環境を提供するツールのなかには、プログラムを記述する際の支援機能としてクラスの型を入力することにより、それに対応するメソッド名の一覧を表示し、その表示されたメソッド名の中から必要なメソッド名をプログラマに選択させるものがある。
【０００４】
【発明が解決しようとする課題】
しかしながら、特開平１１−８５２３２公報に記載の技術は、既存のシーケンスプログラムを組み合わせて、新たなシーケンスプログラムを作成できるものの、プログラマが入力したプログラムコードに対して、次に記述すべき（入力すべき）処理、すなわちシーケンスパターンを提示して補完することができない問題がある。
また、後者のクラスのメソッド名を補完するようにした従来技術においても、シーケンスパターンを補完することができないという問題がある。
【０００５】
本発明の目的は、オブジェクト指向プログラムコードの入力時に、次に入力すべき適切な処理を提示してプログラマに提示し、プログラムコードの入力を効率良く支援することができるプログラムコードの入力支援装置を提供することにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明は、入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対して次に入力すべきシーケンスパターンの一覧を格納した第１の記憶手段と、この第１の記憶手段に記憶されたシーケンスパターンのそれぞれに対応したプログラムコードを格納した第２の記憶手段と、入力装置から入力されたクラス名及びメソッド名を含むプログラムコードに対応するシーケンスパターンの一覧を前記第１の記憶手段から取得して表示装置画面に表示すると共に、表示されたシーケンスパターンの一覧におけるシーケンスパターンのいずれかの選択操作に応じて、対応するプログラムコードを前記第２の記憶手段から取得して入力装置から入力されたプログラムコードに補完するシーケンスパターン検索手段とを備えることを特徴とする。
【０００７】
【発明の実施の形態】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。
図１は、本発明に係るプログラムコードの入力支援装置の実施の形態を示すシステム構成図である。
この実施の形態のプログラムコードの入力支援装置は、図１に示すように、入出力装置１００、処理装置１１０、記憶装置１２０とから構成されている。
入出力装置１００は、キーボードやマウスなどで構成される入力装置１０００と表示装置１００１とで構成されている。
処理装置１１０には、入出力装置１００から入力されるクラス名やメソッド名などのプログラムコードを受付けるプログラム記述部１１００、入力されたプログラムコードクラス名及びメソッド名に対応するシーケンスパターンの一覧を記憶装置１２０内のシーケンスパターン一覧テーブル１２０１から取得して表示装置１００１の画面に表示すると共に、表示されたシーケンスパターンの一覧におけるシーケンスパターンのいずれかの選択操作に応じて、対応するプログラムコードを記憶装置１２０内のシーケンスパターンテーブル１２０２から取得して入出力装置１００から入力されたプログラムコードに補完するシーケンスパターン検索部１１０１を備えている。
【０００８】
記憶装置１２０は、入出力装置１００から入力されたクラス名及びメソッド名を含むプログラムコードに対して次に入力すべきシーケンスパターン名の一覧を格納したシーケンスパターン一覧テーブル１２０（第１の記憶手段）と、このシーケンスパターンテーブル１２０１に記憶されたシーケンスパターン名のそれぞれに対応したシーケンスパターンのソースコードを格納したシーケンスパターンテーブル（第２の記憶手段）とが予め用意されている。
ここで、プログラム記述部１１００はシーケンスパターン検索部１１０１から返されるシーケンスパターン名を表示装置１００１の画面にダイアログ表示すると共に、シーケンスパターン検索部１１０１から返されるシーケンスパターン名のソースコードを表示装置１００１の画面に出力する。
シーケンスパターン一覧テーブル１２０１は、入力されたプログラムコードに対して次に記述すべきシーケンスパターン名の一覧を記憶したものであり、図４で後述するように、クラス名、メソッド名、シーケンスパターン名のデータにより構成されている。シーケンスパターンテーブル１２０２は、図５及び図６で後述するように、クラス名、メソッド名、シーケンスパターン名に対応したソースコードを格納したものである。
【０００９】
図４はシーケンスパターン一覧テーブル１２０１に予め格納されたシーケンスパターン名の一覧の例を示す図であり、クラス名４１００、メソッド名４２００に対応したシーケンスパターン名４３００が格納されている。
例えば、シーケンスパターン名「ファイルを読み取る」４４１０は、入出力装置１００からプログラマが入力したプログラム中でクラス名「Ｆｉｌｅ」のメソッド「コンストラクタ」が記述されていた場合、次に記述すべき処理の名前が「ファイルを読み取る」処理であることを表している。
また、シーケンスパターン名「実際に存在するディレクトリ、ファイルの位置をフルパスで取得する。」４４５０は、プログラム中でクラス名「Ｆｉｌｅ」のメソッド「ｇｅｔＮａｍｅ」が記述されていた場合、次に記述すべき処理の名前が「実際に存在するディレクトリ、ファイルの位置をフルパスで取得する。」処理であることを表している。
シーケンスパターン名４４２０、４４３０、４４４０、４４６０、４４７０、４４８０、４４９０、４５００、４５１０についても同様である。
【００１０】
図５（ａ）〜（ｄ）は、シーケンスパターンテーブル１２０２に格納され、クラス名が「Ｆｉｌｅ」、メソッド名が「コンストラクタ」に対応するシーケンスパターン名のソースコードの例を示すものである。
同図（ａ）のシーケンスパターン５１００はシーケンスパターン名「ファイルを読み取る」４４１０、ソースコード５１１０からなる。
同図（ｂ）のシーケンスパターン５２００は、シーケンスパターン名「ファイルを書き出す」４４３０、ソースコード５３１０からなる。
同図（ｃ）のシーケンスパターン５３００はシーケンスパターン名「文字コードを指定してファイルを読み取る」４４２０、ソースコード５２１０からなる。
同図（ｄ）のシーケンスパターン５４００は、シーケンスパターン名「サブディレクトリ内のファイルを再帰的に処理」４４４０、ソースコード５４１０からなる。
【００１１】
図６は、クラス名が「ＦｉｌｅＲｅａｄｅｒ」、メソッド名が「コンストラクタ」に対応するシーケンスパターン名のソースコードの例を示すものである。
同図（ａ）のシーケンスパターン６１００は、シーケンスパターン名「ファイルを読み取る」４５００、ソースコード６１１０からなる。
同図（ｂ）のシーケンスパターン６２００はシーケンスパターン名「バッファリングしてファイルを読み取る」４５１０、ソースコード６２１０からなる。
【００１２】
図７は、プログラマがファイルを読み取るソースコードを記述する場合のプログラム記述の具体例である。
図７において、プログラム記述７１００、７２００、７３００、７４００、７５００は順に、プログラマがプログラムを記述する際のプログラム記述の遷移を表す。
プログラム記述７１００には、プログラマが入出力装置１００を用いて記述したプログラム７１１０が表示されている。
プログラム記述７２００はプログラマがプログラム記述７１００のプログラム７１１０を記述後、改行した場合（確定操作を行った場合）のプログラム記述であり、次に続く処理としてシーケンスパターン名４４１０、４４２０、４４３０、４４４０からなるダイアログ７２１０が表示される。
これは、プログラム記述７１００でクラス名＝Ｆｉｌｅのファイルをｎｅｗ  Ｆｉｌｅ（）というコンストラクタによって新しく作成することが記述されていることから、この記述に対応して次に記述すべきシーケンスパターン名として、「ファイルを読み取る」、「文字コードを指定してファイルを読み取る」、「ファイルを書き出す」、「サブディレクトリ内にファイルを再帰的に処理」といったシーケンスパターン名をシーケンスパターン一覧テーブル１２０１から取得して表示されたものである。
プログラム記述７３００は、ダイアログ７２１０において図４のシーケンスパターン名「ファイルを読み取る」４４１０をプログラマが選択した場合に、対応するシーケンスパターンのソースコード７３２０がシーケンスパターンテーブル１２０１から取得されて追加表示されたものである。ここでのソースコード７３２０は、図５（ａ）のソースコード５３１０に対応する。
プログラム記述７４００では、プログラム記述７３００にてプログラム７３２０が追加記述された場合に、次に記述すべきシーケンスパターンとしてシーケンスパターン名４５００と４５１０からなるダイアログ７４１０が表示される。
プログラム記述７５００では、プログラム記述７４００にてシーケンスパターン名４５１０を選択した場合に、対応するシーケンスパターンのソースコードが追加記述されて表示される。シーケンスパターン名４５１０のソースコードは、図６（ｂ）に示したものである。
【００１３】
このようにして、プログラマが入力したクラス名やメソッド名に対応して次に記述すべきシーケンスパターン名のソースコードが提示され、その中の１つを選択することによってさらにその次に記述すべきシーケンスパターン名のソースコードが提示され、その中の１つを選択するという操作を繰り返すことにより、プログラムコードの入力を行うことができる。
【００１４】
図２は、プログラム記述部１１００の動作を示すフローチャートである。
以下、図２のプログラム記述部１１００のフローチャートに従って、図７のプログラム記述の遷移を説明する。
プログラマはプログラム記述７１００に示すように、“Ｆｉｌｅ  ｆｉｌｅ  ＝  ｎｅｗ  Ｆｉｌｅ（）；”というようにプログラムコードを１行記述する（ステップ２１００）。
シーケンスパターン検索部１１０１は「呼び出したクラス名がＦｉｌｅ」、「メソッド名がコンストラクタ」に適合したシーケンスパターン名を図４のシーケンスパターン一覧テーブル１２０１から取得する（ステップ２２００）。
図４の例で取得できるシーケンスパターン名は「ファイルを読み取る」４４１０、「文字コードを指定してファイルを読み取る」４４２０、「ファイルを書き出す」４４３０、「サブディレクトリ内のファイルを再帰的に処理」４４４０である。
そこで取得したシーケンスパターン名の一覧を表示するダイアログ７２１０をプログラム記述７２００として表示画面に表示する（ステップ２３００）。
そこで、プログラマがシーケンスパターン名「ファイルを読み取る」４４１０を選択したとすると（ステップ２４００）、その選択したシーケンスパターン名４４１０のソースコード“ＦｉｌｅＲｅａｄｅｒ  ｆｒ  ＝  ｎｅｗ  ＦｉｌｅＲｅａｄｅｒ（ｆｒ）；”５１１０をシーケンスパターンテーブル１２０２から取得し、プログラム記述７３００として表示する（ステップ２５００）。
【００１５】
プログラマがダイアログ７２１０の中から何も選択しない場合、あるいはシーケンスパターン名をシーケンスパターン一覧テーブル１２０１から取得できなかった場合には、プログラマが自身でプログラムコードを入出力装置１００から入力して記述させる（ステップ２６００）。
その後、プログラムの作成を終了するかどうかを選択させ、処理を終了しない場合には、ステップ２２００に戻って同様の処理を繰り返す。
【００１６】
図７のプログラム記述の例では、プログラム記述７３００の“ＦｉｌｅＲｅａｄｅｒ  ｆｒ  ＝  ｎｅｗ  ＦｉｌｅＲｅａｄｅｒ（ｆｒ）；”に対し、次に記述すべき処理として「ファイルを読み取る」、「バッファリングしてファイルを読み取る」といったシーケンスパターン７４１０が存在する。そこで、処理を終了させる操作を行わなければ、ステップ２２００に戻り、同様の処理を行う。すなわち、シーケンスパターン検索部１１０１は、「呼び出したクラス名がＦｉｌｅＲｅａｄｅｒ」、「メソッド名がコンストラクタ」であった場合、これに適合したシーケンスパターン名をシーケンスパターン一覧テーブル１２０１から取得する。取得したシーケンスパターン名は「ファイルを読み取る」４５００と「バッファリングしてファイルを読み取る」４５１０である。そこで、取得したシーケンスパターン名の一覧を表示するダイアログ７４１０をプログラム記述７４００として表示する（ステップ２３００）。
そこで、プログラマがシーケンスパターン名「バッファリングしてファイルを読み取る」４５１０を選択したものとすると（ステップ２４００）、選択したシーケンスパターン名４５１０に対応するソースコード６２１０（図６（ｂ））をプログラム記述７５００に表示する（ステップ２５００）。以後、同様にして、プログラムの作成終了操作が行われるまで同様の処理を繰り返す。
【００１７】
図３は、シーケンスパターン検索部１１０１の動作を示すフローチャートである。これは、図２のステップ２２００の詳細なフローチャートに相当する。
以下、図３のフローチャートに従って、図７のダイアログ７２１０に表示されるシーケンスパターン名の一覧を取得するまでを図４を参照して説明する。
まず、プログラム“Ｆｉｌｅ  ｆｉｌｅ  ＝  ｎｅｗ  Ｆｉｌｅ（）；”７１１０を読み取る（ステップ３１００）。メソッドを呼び出しているか否かを判定し（ステップ３２００）、さらにｎｅｗ演算子によってコンストラクタを呼び出しているか否かを判定する（ステップ３３００）。
メソッドを呼び出し、かつコンストラクタを呼び出している場合、クラス名「Ｆｉｌｅ」を取得し、メソッド名に「コンストラクタ」を設定する（ステップ３４００）。そして、クラス名４１００、メソッド名４２００に該当するシーケンスパターン名４３００をシーケンスパターン一覧テーブル１２０１から取得する（ステップ３７００）。
図７のプログラム記述７１００の例では、クラス名４１００が「Ｆｉｌｅ」、メソッド名４２００が「コンストラクタ」のシーケンスパターン名４３００である「ファイルを読み取る」４４１０、「文字コードを指定してファイルを読み取る」４４２０、「ファイルを書き出す」４４３０、「サブディレクトリ内のファイルを再帰的に処理」４４４０を取得する（ステップ３７００）。
【００１８】
そこで、プログラマがシーケンスパターン名「ファイルを読み取る」４４１０を選択したとすると、その選択したシーケンスパターン名４４１０のソースコード“ＦｉｌｅＲｅａｄｅｒ  ｆｒ  ＝  ｎｅｗ  ＦｉｌｅＲｅａｄｅｒ（ｆｒ）；”５１１０をシーケンスパターンテーブル１２０２から取得し、プログラム記述７３００として表示する。
次に、クラス名４１００が「ＦｉｌｅＲｅａｄｅｒ」、メソッド名４２００が「コンストラクタ」のシーケンスパターン名４３００である「ファイルを読み取る」４５００、「バッファリングしてファイルを読み取る」４５１０をシーケンスパターン一覧テーブル１２０１から取得し、プログラム記述７４００として表示させる（ステップ３７００）。
そこで、プログラマがシーケンスパターン名「バッファリングしてファイルを読み取る」４５１０を選択したものとすると、選択したシーケンスパターン４５１０に対応するソースコード６２１０（図６（ｂ））をプログラム記述７５００に表示させる。
ステップ３２００において、メソッドを呼び出していない場合、変数名とメソッドを取得し（ステップ３５００）、変数を定義している箇所からクラス名を取得した後、ステップ３７００に進む。
【００１９】
【発明の効果】
以上説明したように、本発明によれば、入力されたプログラムコードに対して、次に記述すべき処理が順次提示されるため、プログラム作成時に既存のシーケンスパターンを使用することが容易になり、メソッドの呼び出し順序に沿ったプログラムを効率よく開発することができる。
また、ファイルを閉じる処理やデータベースとの接続を閉じる処理など、忘れがちな処理を忘れずに記述することができる。さらに、既存のノウハウをシーケンスパターンとして取り込むことにより、プログラム開発の初心者は容易にプログラムを開発することができる。さらにプログラム作成後の検査の負荷も軽減するなどの効果が得られる。
【図面の簡単な説明】
【図１】本発明の一実施の形態を示すシステム構成図である。
【図２】プログラム記述部の動作を示すフローチャートである。
【図３】シーケンスパターン検索部の処理を示すフローチャートである。
【図４】シーケンスパターン一覧の例を示す図である。
【図５】Ｆｉｌｅクラスのコンストラクタに対応するシーケンスパターンのソースコードの例を示す図である。
【図６】ＦｉｌｅＲｅａｄｅｒクラスのコンストラクタに対応するシーケンスパターンのソースコードの例を示す図である。
【図７】ファイルを読み取るソースコードを記述するプログラム記述の具体例を示す図である。
【符号の説明】
１００…入出力装置、１１０…処理装置、１２０…記憶装置、１０００…入力装置、１００１…表示装置、１１００…プログラム記述部、１１０１…シーケンスパターン検索部、１２０１…シーケンスパターン一覧テーブル、１２０２…シーケンスパターンテーブル。
【図１】
2004295557.tif 000003
【図２】
2004295557.tif 000004
【図３】
2004295557.tif 000005
【図４】
2004295557.tif 000006
【図５】
2004295557.tif 000007
【図６】
2004295557.tif 000008
【図７】
2004295557.tif 000009