(57)【要約】【課題】  プログラム開発者がオブジェクト指向プログラミングをテキストエディタで行う時、クラス・クラスメンバ定義部が散在していることが多いため、クラス・クラスメンバの定義を正確に把握してコーディングすることが難しくコーディングミスにつながることが多いという課題があった。【解決手段】  （１）入力ブロック：（１）エディタ起動時に設定ファイルと既存ソースコードを読み込む手段。（２）エディタへの入力文字列をリアルタイムで読み込む手段。（３）コマンドを読み込む手段。（２）機能実現ブロック：（４）編集手段。（５）ソースコード文字列解析手段。（６）データベース生成手段。（７）コマンド解析＆実行手段。（８）データベース検索手段。（９）ポップアップリスト生成手段。（１０）アイテムコピー手段。（１１）データベース（３）出力ブロック：（１２）編集結果表示手段。（１３）ポップアプ表示手段。【選択図】  図１
2007026182.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向プログラミング言語のコーディングにおいて、
エディタ起動時に既存ソースファイル群を、またコマンドにより自ファイルを探索し、クラスとクラスメンバの一覧をデータベースに格納する手段、
入力されたコードについて、クラス名、クラスメンバ名、各々の定義を抽出する手段、
エディタ起動時に設計ルールを読み込み、該データベースに格納する手段、
クラスとクラスメンバの定義内容についての情報を該データベースに格納する手段、
クラスの拡張／継承／実体化等の依存関係に関する情報を該データベースに格納する手段、
ソースコード上に存在している拡張クラスの、拡張された定義内容を付け足し、また
再設定された定義内容を上書きする手段、
継承先クラスの定義内容に継承元クラスの定義内容を付け足し、また継承先クラスで再設定した定義内容を上書きする手段、
テキストエディタの手段、
を具備することを特徴とする編集装置。
【請求項２】
コーディングにより新規に定義／拡張／実体化されたクラスの情報を該データベースに格納する手段、
該データベースからコマンドに応じてリストを作成し、で該リストを表示する手段、
該リストの要素を選択する手段、
を具備することを特徴とする請求項１記載の編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
オブジェクト指向ソフトウェアシステムの開発環境においてプログラムコードの作成作業を支援するソフトウェア開発及びソフトウェア開発方法に関する。
【背景技術】
【０００２】
近年、市場のニーズはアプリケーションの大型化・複雑化をもたらし、プログラムのソースコード量が非常に増大している。また、プログラムのモデルやアルゴリズムの変更も頻繁に発生する。一方、市場のニーズ変化は年々速くなる為、アプリケーションの開発期間はより短くなり、信頼性もより高いものが求められる。
【０００３】
その状況に対応する為、プログラム開発手法としてオブジェクト指向プログラミング手法が採用されることが多い。しかるに該手法よるプログラミングの生産性向上を図ることは、上記必要性にこたえる非常に意義あることである。
【０００４】
従来技術では、ソースコードを読み込みクラス・クラスメンバの仕様書を自動生成するツールがある。該ツールにより、プログラムの仕様把握が可能である。
【０００５】
また、設計ルール・文法の定義ファイルをバッファに読み込み、開発者がバッファリングされた内容の既定義文字列の一部を入力した時にその既定義文字列を補完する機能を持ったエディタがある。該エディタにより、コーディング時の文法ケアレスミス数が減り、プログラムの生産性が向上する。
【０００６】
又、従来例としては、例えば特許文献１と特許文献２をあげることが出来る。
【特許文献１】特開平９−１２８２２４号公報
【特許文献２】特開平７−１８２１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
プログラム開発者がオブジェクト指向プログラミングをテキストエディタで行う時、クラス・クラスメンバ定義部が散在していることが多いため、クラス・クラスメンバの定義を正確に把握してコーディングすることが難しくコーディングミスにつながることが多いという課題があった。
【０００８】
従来技術で挙げた、仕様書自動生成ツールは、エディタから独立しているため、編集作業から定義確認作業へのシームレスな作業移行に難があり、手間と時間がかかるものであった。もう一方の、文法ルーチン表現の自動補完機能をもったエディタについては、開発中プログラム本体のコードに記述された関数定義についての情報はなく、(同一の)関数の定義が複数あるソースファイルのコードの定義が散在していて、コーディング時に(同一の)関数定義を参照するのに時間がかかることが課題であった。
【課題を解決するための手段】
【０００９】
オブジェクト指向プログラミング言語の既存ソースファイル群と自ファイルを探索し、グローバルスコープ下のクラス・クラスメンバの定義に関するデータベースを生成し、プログラム開発者のコマンドキー入力に応じて適宜、該データベースに定義情報を格納し、また該データベースの定義情報を加工してリストを生成しポップアップ表示することで、プログラム開発者が必要なクラス・クラスメンバの定義内容を必要なときに時間を置かずに確認できる機能を有する本エディタを利用することは、ソースコードコーディングの生産性が向上する作用があるという特徴を持つ。
【発明の効果】
【００１０】
上記発明が解決しようとする課題を解決する手段として本エディタを使用することにより、プログラム開発者がソースコードのコーディングにおいて、必要な時に必要なクラス・クラスメンバの定義情報をポップアップ表示で確認することにより、クラス・クラスメンバ定義の把握が容易化し、クラス・クラスメンバの定義に関する勘違いをする可能性を低減でき、ソースコードの正確性を増す。また、本エディタを使用しない場合と比べ、クラス・クラスメンバ定義の参照確認時間が減少するため、コード製作時間を削減させることができる。それらにより、後の工程でのデバッグ時間を減少させ、ソースコードコーディングの生産性が向上する効果がある。
【発明を実施するための最良の形態】
【００１１】
図１に本発明の機能ブロック図を示し、図２に本発明の処理を示したフローチャートを示す。図１、図２を用いて、本エディタの構成を説明する。入力ブロック１１４は、エディタ起動時に設定ファイルと既存ソースコードを読み込む手段１０１とエディタへの入力文字列とコマンドにより読み込む手段１０２、１０３とコマンドを読み込む手段１１７で構成される。エディタ起動時に設定ファイルと既存ソースコードを読み込む手段１０１は設定ファイルには、読み込むべきソースファイルが置かれているディレクトリ、コ−ディングルール、コマンドキー定義等が定義される。設定ファイル読み込み後、指定された場所にあるソースファイル群を読み込み、ソースコード文字列解析手段１０５に渡す。エディタへの入力文字列とコマンドにより読み込む手段１０２、１０３は、編集モード／コマンドモードのモード切り替えキー(以下、SwitchKey)を監視する。SwitchKeyは編集モード／コマンドモードのモードを切り替えるトグルスイッチである。起動直後のデフォルトは編集モードである。編集モード時は、本エディタは既存テキストエディタと同様の編集機能を有する。SwitchKeyの入力によりコマンドモード移行後、現編集ファイル読み込みコマンドキー(以下、AppendMeKey)を入力することにより、現編集コードをソースコード文字列解析手段１０５へ渡す。コマンドを読み込む手段１１７はSwitchKeyの入力によりコマンドモード移行後、１０１で挙げられた設定ファイル中に定義されたコマンドキーの入力を監視する。
【００１２】
機能実現ブロック１１５は、編集手段１０４、ソースコード文字列解析手段１０５、データベース生成手段１０６、コマンド解析&実行手段１０７、データベース検索手段１０８、ポップアップリスト生成手段１０９、アイテムコピー手段１１０、データベース１１１で構成される。
【００１３】
編集手段１０４は、既存テキストファイル編集装置と同様の機能を有する。
ソースコード文字列解析手段１０５は入力から渡されたコードに記述された、クラス・クラスメンバと各々の定義を識別し、データベース生成手段１０６に渡す。データベース生成手段１０６は、ソースコード文字列解析手段１０５から渡されたデータを、データベース１１１の各フィールドに値として追加する。コマンド解析&実行手段１０７は、SwitchKeyを監視する。SwitchKeyは編集モード／コマンドモードのモードを切り替えるトグルスイッチである。KeySwitch入力によりコマンドモード移行後、ポップアップ表示[図３]がポップアップする。AppendMeKey、CopyKey(下記にて説明)、CloseWinKey(下記にて説明)、以外に使用できるキーコマンドについては、ポップアップ表示中下線が引かれた文字として示されるか、矢印キーでハイライトされ明示される。データベース検索手段１０８は、コマンド解析&実行手段(７)からの検索リクエストを受け検索を実行し、検索結果をポップアップリスト表示手段１０９へ渡す。ポップアップリスト生成手段１０９は、データベース検索手段１０８から渡されたリストを所定のフォーマットで表示する。アイテムコピー手段１１０は、ポップアップリスト中ハイライトしている項目を現編集画面へコピーする時に使用する。設定ファイルにて定義されたCopyKeyを入力する。データベース１１１は、予め作り込まれたテーブルにデータベース生成手段１０６より得られた値を格納する機構である。
【００１４】
出力ブロック１１６は、編集結果表示手段１１２とポップアップ表示手段１１３で構成される。
【００１５】
編集結果表示手段１１２は、編集モード時、既存テキストエディタの機能を有する本エディタの、モニタへの表示機構である。ポップアップ表示手段１１３は」、コマンドモード時、ポップアップ画面中下線部のキーを入力することにより各々定義された次ポップアップ表示を得ることができる。各ポップアップ表示はCloseWinKeyの入力により順番に閉じられる。KeySwitchによりポップアップ表示を開いたまま編集モードに移行できる。
【００１６】
コマンドモード移行時[図３]がポップアップされ、Statementについて参照する場合は「S」キー入力または矢印キーで[Statement]を選択すると、プルダウンメニュー４０２([図４])が表示される。Methodについて参照する場合は「M」キー入力または矢印キーで[Method]を選択すると、プルダウンメニュー５０２([図５])が表示される。Helpについて参照する場合は「H」キー入力または矢印キーで[Help]を選択すると、プルダウンメニュー６０２([図６])が表示される。
【００１７】
Typeについて参照する場合は「T」キー入力または矢印キーで[Type]を選択すると、プルダウンメニュー8０1([図8])が表示される。
【００１８】
Defineについて参照する場合は「D」キー入力または矢印キーで[Define]を選択すると、プルダウンメニュー9０1([図9])が表示される。
【００１９】
[図４]にてStruct系統図を参照する場合は４０２中「S」キーを入力または矢印キーで[Struct]を選択すると[図７]がポップアップされる。さらに、[図７]中で個別のStruct名を矢印キーで選択すると、[図１０]がポップアップされ、Struct単体の定義を[field]、[method] 、[subtype] 、[constraint] 、[temporal]のカテゴリごとに、定義を参照できる。各カテゴリを選択した時の図を[図１０] [図１１] [図１２] [図１３] [図１４] [図１５]に示す。
【図面の簡単な説明】
【００２０】
【図１】本発明の機能ブロック図である。
【図２】本発明の処理を示したフローチャートである。
【図３】本発明の実施例に係わる図。
【図４】本発明の実施例に係わる図。
【図５】本発明の実施例に係わる図。
【図６】本発明の実施例に係わる図。
【図７】本発明の実施例に係わる図。
【図８】本発明の実施例に係わる図。
【図９】本発明の実施例に係わる図。
【図１０】本発明の実施例に係わる図。
【図１１】本発明の実施例に係わる図。
【図１２】本発明の実施例に係わる図。
【図１３】本発明の実施例に係わる図。
【図１４】本発明の実施例に係わる図。
【図１５】本発明の実施例に係わる図。
【符号の説明】
【００２１】
１０１  設定ファイル・既存ソースコードファイル読み込み手段
１０２  入力コード(現編集コード)読み込み手段
１０３  編集手段への読み込み手段
１０４  編集手段
１０５  コード解析手段
１０６  データベース生成手段
１０７  コマンド解析＆実行手段
１０８  データベース検索手段
１０９  ポップアップリスト生成手段
１１０  アイテムコピー手段
１１１  データベース
１１２  編集結果表示手段
１１３  ポップアップ表示手段
１１４  入力ブロック
１１５  機能実現ブロック
１１６  出力ブロック
１１７  コマンド読み込み手段
２０１  エディタの起動
２０２  設定ファイルを読み込む。
２０３  既存ソースファイルをコード解析手段１０５へ読み込む。
２０４  ２０３の結果得られたテキストデータ。
２０５  ２０４のデータをデータベースへ格納する。
２０６  プログラム開発者による入力
２０７  ２０６の入力がキーコマンドかコードかの判定
２０８  ２０７の判定結果がコードであるとき、そのコードデータ
２０９  エディタのコード表示部にコードデータ２０８を出力(編集結果表示)
２１０  ２０７の判定結果がキーコマンドであるとき、そのコマンドの解析
２１１  ２０９でキーコマンドが終了コマンドであるとき、エディタを終了し他のキーコマンドであるとき、コマンド処理へ。
２１２  キーコマンド処理。
２１３  キーコマンドにより生成されたリスト
２１４  ２１３で生成されたリストを表示する。
３０１  キーコマンドにより本エディタがコマンドモードに切り替わることで
表示されるメニュー。
４０１  キーコマンドにより本エディタがコマンドモードに切り替わることで
表示されるメニュー。「S」キー入力又は矢印キーによる選択により、Statementsカテゴリの宣言が表示される。
４０２  Statementsカテゴリの宣言。
５０１  キーコマンドにより本エディタがコマンドモードに切り替わることで表示されるメニュー。「M」キー入力又は矢印キーによる選択により、Memberカテゴリの宣言が表示される。
５０２  Memberカテゴリの宣言
６０１  キーコマンドにより本エディタがコマンドモードに切り替わることで表示されるメニュー。「H」キー入力又は矢印キーによる選択により、Helpカテゴリのキーワードが表示される。
６０２  Helpカテゴリのキーワード
７０１  ４０２において、「S」キー入力又は矢印キーによる選択により、表示されるクラスの系統図。
８０１  ４０２において、「T」キー入力又は矢印キーによる選択により、表示されるタイプ定義一覧の図。
９０１  ４０２において、「D」キー入力又は矢印キーによる選択により、表示されるDefine一覧の図。
１００１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、
[temporal]のうち、[field]についての一覧の図。
１１０１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、
[temporal]のうち、[method]についての一覧の図。
１２０１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、
[temporal]のうち、[method]についての一覧の図で選択したメソッドの内容についての図。
１３０１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、[temporal]のうち、[subtype]についての一覧の図。
１４０１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、[temporal]のうち、[constraint]についての一覧の図。
１５０１  ７０１におけるクラス名の矢印キーによる選択により、ポップアップされた、クラス内メンバ：[field]、[method]、[subtype]、[constraint]、[temporal]のうち、[temporal]についての一覧の図。
【図１】
2007026182.tif 000003
【図２】
2007026182.tif 000004
【図３】
2007026182.tif 000005
【図４】
2007026182.tif 000006
【図５】
2007026182.tif 000007
【図６】
2007026182.tif 000008
【図７】
2007026182.tif 000009
【図８】
2007026182.tif 000010
【図９】
2007026182.tif 000011
【図１０】
2007026182.tif 000012
【図１１】
2007026182.tif 000013
【図１２】
2007026182.tif 000014
【図１３】
2007026182.tif 000015
【図１４】
2007026182.tif 000016
【図１５】
2007026182.tif 000017