(57)【特許請求の範囲】
【請求項１】
コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置において、
前記部品は、少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品を含み、各部品に対応する内部データとして、処理手順を示す手順データと、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分して格納する部品格納手段と、
表示画面上で前記部品格納手段に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する選択手段と、
選択された部品の内部データを前記表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する編集手段と、
部品の内部データの編集結果を格納する編集結果格納手段と、
部品に結合する要素を他の部品及びデータのいずれかとして、部品又は要素の一覧表示を行い、この一覧表示に対するユーザの操作に応じて、結合させる部品と要素との組合せを選択し、操作を及ぼす当該部品と操作の影響を受ける当該要素との結合関係を設定する結合手段と、
部品と要素との結合関係の設定結果を格納する設定結果格納手段と、
前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとに、当該要素のデータを当該部品で処理可能なデータ形式に変換するルーチンを含み、当該部品と当該要素との結合を実現するための複数の仲介ルーチンを予め格納する仲介ルーチン格納手段と、
選択された部品とその内部データの編集結果を用いると共に、前記結合関係が設定された場合に、当該結合関係の設定結果及び特定された前記仲介ルーチンに基づいてソフトウェアの動作を実現するソースコード又はプログラムコードを生成する実現手段を有し、
前記結合手段は、選択された部品と要素との組合せに基づき、前記編集手段を用いて対応する内部データを表示し、当該部品と要素間で必要な仲介ルーチンを結合関係としてユーザが指定する手段と、当該指定された仲介ルーチンを示すデータを前記設定結果格納手段に記憶する手段とを有する
ことを特徴とするソフトウェア開発支援装置。
【請求項２】
前記表示画面上で前記図形の操作を行うポインティングデバイスを有し、
前記各部品は所定の図形によって前記表示画面に表示され、
前記選択手段は、前記ポインティングデバイスによって前記図形をポイントするユーザの操作が行われた場合に前記選択を行なうように構成され、
前記結合手段は、選択された各部品の前記図形に対してユーザによる第１の所定の操作が行われた場合に前記結合関係を設定するように構成され、
選択された各部品の前記図形に対して前記ポインティングデバイスによってユーザによる第２の所定の操作が行われた場合に当該図形を前記表示画面上の当該操作内容に応じた位置に配置する配置手段を有する
ことを特徴とする請求項１記載のソフトウェア開発支援装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ＧＵＩソフトウェアの開発を効率的に行なうソフトウェア開発支援装置に関するものである。
【０００２】
【従来の技術】
近年のコンピュータのソフトウェアでは、その操作性の向上、認識の容易性を考慮してGraphical User Interface（以下ＧＵＩという）が使用されている。ＧＵＩは、コンピュータとユーザ間の対話的入出力の形式であり、情報出力を表示画面上の図形シンボルで行ない、また、情報入力を図形シンボルに対する操作によって行なうものである。
【０００３】
このようなＧＵＩを用いたソフトウェアすなわちアプリケーションプログラム（以下図面又は本明細書において「アプリ」と略することがある）は、ソフトウェアの部品として、異なった画面であっても同様な形状をした操作ボタン、アイコン、プルダウンメニューなどの表示が使用され、どのような画面であってもマウスなどを使用することにより共通の操作性が得られるようにしていることが多い。そのため、この種のＧＵＩソフトウェアを開発するときには、プログラムの各画面において共通に使用される表示などを部品化して取り扱うことにより、プログラム開発を容易に実施できるようにしている。
【０００４】
たとえば、ＧＵＩを用いたソフトウェアの開発手順の一例を示すと、次の通りである。まず、ソフトウェア実行上の各過程における画面の表示状態、特に、ソフトウェアの起動時から位置や表示内容が固定的である静的部品と、前記静的部品に対応する画面操作処理手順を開発する。次いで、画面上の表示を例えばマウス等により操作したときの処理すなわち部品への操作に対する及び部品間の視覚的振舞が開発される。
【０００５】
また、ソフトウェアで利用されるデータ構造が決定され、データ処理手順あるいはルーチンが開発される。最後に、生成された部品が、又はユーザから入力される処理を含めて部品及び処理が結合されてソフトウェアが開発される。
【０００６】
このようなソフトウェア開発を支援する装置としてはソフトウェア開発支援装置が知られている。ソフトウェア開発支援装置とは、ソフトウェアを構成するデータや処理手順の編集を行なうためのもので、多くの場合ソースコードジェネレータやシミュレータのようにソフトウェアの動作を実現する手段を備えている。
【０００７】
ＧＵＩを用いたソフトウェアの開発を従来のソフトウェア開発支援装置において行なう場合、上記の各段階における画面の表示状態と画面操作処理のうち、ＧＵＩ部品単体の動作を規定する処理の開発はＧＵＩ開発支援装置を用いてなされていた。
【０００８】
【発明が解決しようとする課題】
しかし、従来のソフトウェア開発支援装置では、部品間や部品とデータ及び処理との関連についてはプログラマの手による作成や修正を要したため、ソフトウェア開発の効率向上が困難という問題点が存在していた。
【０００９】
すなわち、従来では、画面操作に関して、あるＧＵＩ部品が他のＧＵＩ部品を操作するといったＧＵＩ同士の関連付けについては、ソフトウェアを自動的に実現することができなかった。特に、対話的操作部品のようにＧＵＩ特有のグラフィック表示ライブラリを利用しても、ライブラリ同士の組み合わせは手作業で行なう必要があった。このため、部品間の関係についてはプログラム言語を用いて直接所望の動作を記述せざるを得ず、この作業がソフトウェア開発における多くの工数を要した。
【００１０】
また、従来では、表示用ＧＵＩ部品と部品に表示するデータもしくは部品とデータ処理手順との対応、及び、入力用ＧＵＩ部品と部品からの入力データの処理手順、など部品と他の要素の関連についてもソフトウェアの自動合成ができなかった。このため、このような関連付けについてもプログラマが追加修正する必要があった。
【００１１】
さらに、ソフトウェア開発支援装置上で表示用ＧＵＩ部品を変更する場合、変更する部品に関連する部品や表示データなどすべての他の要素との関連性も変更せざるを得ず、この作業もプログラマが手作業で行なっていた。このため、ソフトウェアの保守性や再利用性も向上が困難であった。
【００１２】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、ユーザが開発すべき部分や開発時に用意すべき部分を削減し、部品間の関連付けが容易で、ソフトウェア開発を効率的に行なうソフトウェア開発支援装置を提供することである。また、本発明の他の目的は、ソフトウェアの修正変更が容易なソフトウェア開発支援装置を提供することである。
【００１３】
【課題を解決するための手段】
上記の目的を達成するため、本発明の一つの態様におけるソフトウェア開発支援装置は、コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置において、前記部品は、少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品を含み、各部品に対応する内部データとして、処理手順を示す手順データと、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分して格納する部品格納手段と、表示画面上で前記部品格納手段に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する選択手段と、選択された部品の内部データを前記表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する編集手段と、部品の内部データの編集結果を格納する編集結果格納手段と、部品に結合する要素を他の部品及びデータのいずれかとして、部品又は要素の一覧表示を行い、この一覧表示に対するユーザの操作に応じて、結合させる部品と要素との組合せを選択し、操作を及ぼす当該部品と操作の影響を受ける当該要素との結合関係を設定する結合手段と、部品と要素との結合関係の設定結果を格納する設定結果格納手段と、前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとに、当該要素のデータを当該部品で処理可能なデータ形式に変換するルーチンを含み、当該部品と当該要素との結合を実現するための複数の仲介ルーチンを予め格納する仲介ルーチン格納手段と、選択された部品とその内部データの編集結果を用いると共に、前記結合関係が設定された場合に、当該結合関係の設定結果及び特定された前記仲介ルーチンに基づいてソフトウェアの動作を実現するソースコード又はプログラムコードを生成する実現手段を有し、前記結合手段は、選択された部品と要素との組合せに基づき、前記編集手段を用いて対応する内部データを表示し、当該部品と要素間で必要な仲介ルーチンを結合関係としてユーザが指定する手段と、当該指定された仲介ルーチンを示すデータを前記設定結果格納手段に記憶する手段とを有することを特徴としている。
【００１４】
また、本発明の上記ソフトウェア開発支援装置は、一つの態様において、さらに次のような構成を有する。すなわち、前記表示画面上で前記図形の操作を行うポインティングデバイスを有し、前記各部品は所定の図形によって前記表示画面に表示され、前記選択手段は、前記ポインティングデバイスによって前記図形をポイントするユーザの操作が行われた場合に前記選択を行なうように構成され、前記結合手段は、選択された各部品の前記図形に対してユーザによる第１の所定の操作が行われた場合に前記結合関係を設定するように構成され、選択された各部品の前記図形に対して前記ポインティングデバイスによってユーザによる第２の所定の操作が行われた場合に当該図形を前記表示画面上の当該操作内容に応じた位置に配置する配置手段を有する。
【００１５】
【作用】
上記のような構成を有する本発明は、次のような作用を有する。すなわち、データや処理内容が部品ごとに用意され、所望の部品を選択するだけでその部品に関するデータや処理内容を編集することができ、選択された部品及びその内部データに基づいてソフトウェアの動作が実現される。このため、部品とデータや処理内容の結合関係を手作業でプログラミングする繁雑な手順が不要となり、ソフトウェア開発が効率化される。また、同様に、部品の入れ替えや部品に対応するデータや処理手順の変更も効率的に行なうことができるので、ソフトウェアの拡張性、保守性が向上する。
【００１６】
また、部品の内部データのうち、部品が組み込まれるソフトウェアに依存しない非依存データについては編集や入力が不要なので、ソフトウェア開発が効率化される。
【００１７】
また、部品と、他の部品・ソフトウェアの内部データなどといった他の要素との間に結合関係を設定し、この結合関係に基づいて前記ソフトウェアの動作が実現される。このため、部品間の関係を手作業でプログラミングする手順が不要となり、ソフトウェア開発が効率化される。
【００１８】
また、異なった型のデータやイベントに基づいて構成された部品同士及び部品と要素でも、データの型変換など必要な処理は、結合関係の対象となり得る各部品と各要素との組合せごとに予め格納されている仲介ルーチンが行うので、このような仲介ルーチンをユーザが開発の際に用意する必要がない。
【００１９】
また、静的部品によってメニュー欄や背景模様のような表示画面の基本的な内容が提供され、表示用部品と入力用部品によって入出力の機能が提供されるので、新たなソフトウェア開発においてデータ処理部分のみを新たに開発すればよく、ソフトウェア開発が効率化される。
【００２０】
また、表示画面上に各部品を所定の図形で表示し、ポインティングデバイスで操作する構成によれば、図形による部品の表示が部品の認識を容易にし、また、図形に対する視覚的操作が選択・結合関係の設定・画面上での部品の配置を容易にするので、ソフトウェア開発が効率化される。
【００２５】
【実施例】
次に、本発明の実施例について、図面に従って具体的に説明する。なお、後述する実施例はコンピュータ上に実現され、実施例の各機能は、所定の手順（プログラム）がこのコンピュータを制御することで実現される。
【００２６】
本明細書における各「手段」は、実施例の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウェア・ルーチンに１対１には対応しない。同一のハードウェア要素が、場合によって異なった手段を構成する。例えば、コンピュータは、ある命令を実行するときにある手段となり、別の命令を実行するときは別の手段となりうる。また、一つの手段が、わずか１命令によって実現される場合もあれば、多数の命令によって実現される場合もある。
【００２７】
したがって、本明細書では、以下、実施例の各機能を有する仮想的回路ブロック（「手段」又は「部」）を想定して実施例を説明する。但し、コンピュータの使用は一例であり、本発明の機能の全部又は一部は、可能ならば、カスタムチップ（専用の集積回路）のような電子回路上に実現してもよい。
【００２８】
実施例に用いられるコンピュータは、一般には、ＣＰＵ（中央演算処理装置）と、ＲＡＭ（随時書込読出型記憶素子）からなる主記憶装置とを有する。また、前記コンピュータの規模は自由であり、マイクロコンピュータ・パーソナルコンピュータ・スモールコンピュータ・ワークステーション・メインフレームなど、いかなる規模のものを用いてもよい。
【００２９】
また、前記コンピュータのハードウェアは、典型的には、キーボードやマウスなどの入力装置と、ハードディスク装置などの外部記憶装置と、ＣＲＴ表示装置やプリンタ印字装置などの出力装置と、必要な入出力制御回路を含む。
【００３０】
但し、前記コンピュータのハードウェア構成は自由であり、本発明が実施できる限り、上記の構成要素の一部を追加・変更・除外してもよい。例えば、ＣＰＵの種類は自由であり、ＣＰＵを複数同時に用いたり、単一のＣＰＵをタイムシェアリング（時分割）で使用し、複数の処理を同時平行的に行ってもよい。また、他の入力装置（例えば、タッチパネル・ライトペン・トラックボールなどのポインティングデバイスや、デジタイザ・イメージ読取装置やビデオカメラなどの画像入力装置・音声識別装置・各種センサなど）を用いてもよい。また、他の外部記憶装置（例えば、フロッピーディスク装置・ＲＡＭカード装置・磁気テープ装置・光学ディスク装置・光磁気ディスク装置・バブルメモリ装置・フラッシュメモリなど）を用いてもよい。また、他の出力装置（例えば、液晶表示装置・プラズマディスプレイ装置・ビデオプロジェクター・ＬＥＤ表示装置・音響発生回路・音声合成回路など）を用いてもよい。
【００３１】
また、前記コンピュータにおいて実施例を実現するためのソフトウェアの構成としては、典型的には、実施例の各機能を実現するためのアプリケーションプログラムが、ＯＳ（オペレーティングシステム）上で実行される態様が考えられる。また、実施例を実現するためのプログラムの態様としては、典型的には、高級言語やアセンブラからコンパイル（翻訳）された機械語が考えられる。但し、前記コンピュータのソフトウェア構成も自由であり、本発明が実施できる限り、ソフトウェア構成を変更してもよい。例えば、必ずしもＯＳを用いる必要はなく、また、プログラムの表現形式も自由であり、ＢＡＳＩＣのようなインタプリタ（逐次解釈実行型）言語を用いてもよい。
【００３２】
また、プログラムの格納態様も自由であり、ＲＯＭ（読出し専用メモリ）に格納しておいてもよく、また、ハードディスク装置のような外部記憶装置に格納しておき、コンピュータの起動時や処理の開始時に主メモリ上にロード（読み込み）してもよい。また、プログラムを複数の部分に分割して外部記憶装置に格納しておき、処理内容に応じて必要なモジュールのみを随時主メモリ上にロード（読み込み）してもよい。さらに、プログラムの部分ごとに異なった態様で格納してもよい。
【００３３】
また、本実施例における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、また、実行ごとに異なった順序で実行してもよい。このような順序の変更は、例えば、ユーザが実行可能な処理を選択するなどメニュー形式のインターフェース手法によって実現することができる。
【００３４】
また、本明細書における「入力」は、本来の情報の入力のみならず、情報の入力と密接に関連する他の処理を含む。このような処理は、例えば、入力内容のエコーバックや修正・編集である。また、本明細書における「出力」は、本来の情報の出力のみならず、情報の出力と密接に関連する他の処理を含む。このような処理は、例えば、出力すべき範囲の入力や、画面スクロールの指示である。なお、対話的入出力手順によって入力と出力を一体的操作によって実現してもよく、このような一体的操作によって、選択・指定・特定などの処理を行ってもよい。
【００３５】
また、本明細書におけるデータ（情報）やデータの格納手段は前記コンピュータ上においていかなる態様で存在してもよい。例えば、データのハードウェア上の所在部分は、主記憶装置・外部記憶装置・ＣＰＵのレジスタやキャッシュメモリなどいかなる部分でもよい。また、データの保持態様も自由である。例えば、データは、ファイル形式で保持されるのみならず、メモリやディスクなどの記憶装置を物理的アドレスで直接アクセスすることによって実現してもよい。また、データの表現形式も自由で、例えば、文字列を表すコードの単位は、文字単位でも単語単位でもよい。また、データは必要とされる一定時間だけ保持されれば十分で、その後消滅してもよく、保持時間の長短は自由である。また、辞書データのように当面変更されない情報は、ＲＯＭに格納してもよい。
【００３６】
また、本明細書において、特定の情報への言及は確認的で、言及されない情報の存在を否定するものではない。すなわち、本発明の動作では、動作に必要な一般的な情報、例えば、各種ポインタ、カウンタ、フラグ、パラメータ、バッファなどが適宜用いられる。
【００３７】
実施例の各部分が処理に要する情報は、特に記載がない場合、当該情報を保持している他の部分から獲得される。このような情報の獲得は、例えば、当該情報を格納している変数やメモリをアクセスすることによって実現することができる。なお、情報の消去・抹消は、当該情報の内容自体を必ずしも記憶領域から現実に削除せず、消去を表すフラグを設定するなど、情報の意味付けの変更によって行うことができる。
【００３８】
［１．実施例の構成］
本実施例は、コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置である。本実施例の目的は、ユーザが開発すべき部分や開発時に用意すべき部分を削減し、部品間の関連付けが容易で、ソフトウェア開発を効率的に行なうソフトウェア開発支援装置を提供することである。また、本実施例の他の目的は、ソフトウェアの修正変更が容易なソフトウェア開発支援装置を提供することである。
【００３９】
図１は、本実施例のソフトウェア開発支援装置の概念的構成を示す機能ブロック図である。本実施例のソフトウェア開発支援装置は、各部品に関するデータ及び処理内容を部品に付属する内部データとして格納する部品格納手段１と、所望の部品を選択する選択手段２と、選択した部品の内部データを編集する編集手段３と、選択された部品及び選択された部品の内部データに基づいてソフトウェアの動作を実現する実現手段であるソースコードジェネレータ４を有する。
【００４０】
また、本実施例のソフトウェア開発支援装置は、部品と他の要素との結合関係を設定する結合手段５と、前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとの仲介ルーチンを格納する仲介ルーチン格納手段６と、前記結合関係が設定された場合に、必要な前記仲介ルーチンを特定する特定手段７と、を有する。
【００４１】
また、本実施例のソフトウェア開発支援装置は、図示しない表示画面とポインティングデバイスを有し、また、前記ポインティングデバイスによって所定の操作を行なうことによって前記図形を前記表示画面上の所望の位置に配置する配置手段８を有する。
【００４２】
また、前記部品は少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品と、を含む。
【００４３】
［２．実施例の作用及び効果］
本実施例におけるソフトウェア開発では、まず、部品格納手段１に各部品に関するデータ及び処理内容を部品に付属する内部データとして格納しておく。そして、選択手段２によって、表示画面上で部品格納手段１に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する。このとき、ユーザは、ポインティングデバイスによって図形をポイントすることによって所望の部品の選択を行なうことができる。
【００４４】
また、選択された各部品の図形に対してポインティングデバイスによってユーザによる所定の操作が行われた場合には、配置手段８によって、当該図形を表示画面上の当該操作内容に応じた位置に配置する。このとき、ユーザは、ポインティングデバイスによって所定の操作を行なうことによって図形を表示画面上の所望の位置に配置することができる。
【００４５】
さらに、編集手段３によって、選択された部品の内部データを表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する。このとき、部品の内部データは、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分され、編集手段は、この依存データを編集するように構成されている。このため、部品が組み込まれるソフトウェアによって異ならない非依存データについては編集や入力が不要なので、ソフトウェア開発が効率化される。
【００４６】
次に、部品の種類ごとの開発、結合関係の設定及びソフトウェアの動作の実現について説明する。
【００４７】
［２−１．静的部品の開発］
静的ＧＵＩ部品は、ソフトウェアの動作中、画面上の固定位置に表示され続ける部品である。図２は、静的ＧＵＩ部品のデータ構造である。静的ＧＵＩ部品は、図２に示すように、描画及び初期化などの処理手順データａ１と、図形の基本的な特徴を表現しソフトウェアに依存しない非依存データａ２と、ソフトウェアごとに異なる個々の図形の位置／サイズなどを表す依存データａ３を含む。
【００４８】
ここで非依存データａ２の例としては、図形の種類（例えば円／直線／矩形の種別）、ストローク（例えば線の数＝４、折れ点の座標＝{(34,13),(50,34),...} のように表す）、ベクトル（例えば図形の向き(0.4,0.7) のように表す）などが挙げられる。
【００４９】
また、依存データａ３の例としては表示画面上での位置データ（例えば絶対座標(200,130),相対座標(20,3)のように表す）、色データ（例えば表面＝赤色、背景＝黄色のように表す）、サイズデータ（例えばwidth=30,height=40,depth=15 のように表す）などが挙げられる。
【００５０】
次に、図３は静的ＧＵＩ部品の開発の手順を示すフローチャートである。なお、本明細書のフローチャートにおいて左側は主にソフトウェア開発支援装置による動作を、右側は主にユーザによる操作を示す。この手順では、図３に示すように、画面に一覧表示される部品から（ステップ３１）部品を選択し（ステップ３２）、視覚的な操作によって部品を配置する（ステップ３３）。ここで図４は、部品の一覧表示及び選択のためのウインドウ(Select Panel)及び部品の配置のためのウインドウ(Palette) の表示例である。
【００５１】
続いて、選択された部品の内部データのうち編集可能な依存データａ３が一覧表示され（ステップ３４）、内部データの編集を終了すると（ステップ３５）、選択された部品データは、その位置データを含む内部データの編集結果と共に、ソフトウェアを構成する部品の情報として図２に示すような格納手段に格納され、ソースコード生成時に参照される。ここで図５は、内部データ編集のためのウインドウの表示例である。
【００５２】
［２−２．表示用部品の開発］
図６は、表示用ＧＵＩ部品の編集に関するデータを示す概念図である。すなわち、表示用ＧＵＩ部品ｂ２は、ソフトウェア内部のデータｂ１をユーザに画面表示するためのものである。そして、部品ｂ２のデータ構造ｂ３は、表示データを格納するための内部可変データ格納領域と、表示処理ルーチンと、ワークエリアである内部データ格納領域を持つ。
【００５３】
各部品ｂ２がどのデータを表示するかは、結合手段５により、ユーザの操作に応じて、各部品が表示するデータを決定し、部品とデータとの結合関係を設定する。そして、設定された結合関係は、結合情報ｂ５の形式を持つデータ構造体ｂ４として結合情報テーブルｂ９に格納され、ソースコード生成時に参照される。
【００５４】
なお、構造体ｂ５は、データ名（例えばturbineRotation のような名称で表す）、データの型（例えば整数型ｉｎｔ／文字型ｓｔｒ／実数型ｆｌｏａｔ．．．のような種別で表す）、ＩＤ（例えばＩＤ＝12345 のようなコードで表す）を含む。なお、ＩＤは自動発番され同一ソフトウェア内では重複しない。また、図７はマトリクスｂ７の例である。
【００５５】
なお、部品ｂ２が処理できるデータ型とデータｂ１のデータ型が異なる場合が考えられ得るが、そのための処理モジュール（前記仲介ルーチンに相当するもの）は処理モジュールライブラリｂ８（前記仲介ルーチン格納手段の一部に相当するもの）に格納されている。
【００５６】
そして、部品とデータ型との組み合わせごとの処理は結合処理モジュールｂ６が行う。このモジュールｂ６は、一辺がソフトウェア内部のデータの型、他辺が表示ＧＵＩ部品の種類となっているマトリクスｂ７から参照され、特定の型と特定の部品の交点には、その型のデータをその部品で表示する際に必要となる処理モジュールが名称などで特定され、選択される。そしてこれが結合情報テーブルｂ９に記録される。そして、結合情報テーブルｂ９に記録された結合関係に応じたモジュールｂ６がソースコード生成時に用いられる。
【００５７】
例えば、いくつかの実数からなるデータ群が存在し、一方、データを棒グラフで表示するという機能を持つ表示用部品が存在するが、この部品は入力値として整数しか受け付けないと仮定する。この場合、仲介ルーチンたる処理モジュールが実数のデータ群を整数に変換してから部品に渡すことになる。
【００５８】
そして、図８は、表示用部品の選択と処理の開発の手順を示すフローチャートである。この手順では、一覧表示されたデータ型を（ステップ８１）選択すると（ステップ８２）、部品ＩＤがインクリメント（１加算）され（ステップ８３）、一覧表示された部品から（ステップ８４）部品を選択し画面上に配置する（ステップ８５）。インクリメントされた部品ＩＤは選択された部品ごとに割り当てられる。
【００５９】
次に、選択された部品のデータのうち編集可能な内部データｂ３が一覧表示され（ステップ８６）、このデータを編集すると（ステップ８７）、マトリクスｂ７を通じてから処理モジュールが読み込まれ（ステップ８８）、登録が終了すると（ステップ８９）編集結果が結合情報テーブルｂ９に記録される（ステップ８１０）。
【００６０】
ここで図９はデータ型の一覧表示のためのウインドウの表示例、図１０は部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例、図１１は部品のデータ編集のためのウインドウの表示例である。
【００６１】
［２−３．入力用部品の開発］
図１２は、入力用ＧＵＩ部品の編集に関するデータを示す概念図である。すなわち、入力用部品ｃ１は、ユーザによる所定の入力があったときに、この入力に対応するソフトウェア内の所定の処理ルーチンｃ７を起動する部品である。そして、部品ｃ１のデータ構造ｃ２は、初期値、現在値、表示処理ルーチン、内部データ格納領域を含む。
【００６２】
各部品ｃ１がどの処理ルーチンｃ７を起動するかは、結合手段５により、ユーザの操作に応じて、各部品が起動する処理ルーチンを決定し、部品と処理ルーチンとの結合関係を設定する。そして、設定された結合関係は、結合情報ｃ４の形式を持つデータ構造体ｃ３として結合情報テーブルｃ８に格納され、ソースコード生成時に参照される。
【００６３】
なお、構造体ｃ３のデータ構造ｃ４は、初期値／現在値（例えば０〜１で正規化する）、入力用のＧＵＩ部品のＩＤ（ＩＤ＝１２３４５のようなコードで表す）、ソフトウェア内の処理ルーチン名を保持している。なお、部品のＩＤと処理ルーチン名はリスト構造（例えば関数１，関数２，．．．関数ｎのように特定する）で表せば、１つのデータ構造体によって複数のＧＵＩ部品及び処理ルーチンを表すことができる。
【００６４】
ここで、各処理ルーチンｃ７は内部処理で必要とする値と必要とするデータ型を持ち、一方、ＧＵＩ部品が保持する現在値は、各ＧＵＩ部品ごとに異なったデータ型、例えば、２値情報、整数情報、文字列情報等で保持されている場合がしばしばである。そのための処理モジュール（前記仲介ルーチンに相当するもの）は処理モジュールライブラリｃ９（前記仲介ルーチン格納手段の一部に相当する）に格納されている。
【００６５】
そして、部品とデータ型との組み合わせごとの処理モジュールは結合処理モジュールｃ５が行う。このモジュールｃ５は、一辺がＧＵＩ部品の種類、他辺がデータの型となっているマトリクスｃ６を参照する。マトリクスｃ６では、特定の型と特定の部品の交点で、その表示用ＧＵＩ部品で得られる値（状態変化情報）を処理ルーチンが必要とするデータの型へ変換するための手順を記述した処理モジュールが名称などで特定されている。これによって処理モジュールが選択され、選択されたモジュールが結合情報テーブルｃ８に記録され、結合関係に応じた処理モジュールがソースコード生成時に用いられる。
【００６６】
図１３は、入力用部品の選択及びデータ編集の手順を示すフローチャートである。この手順では、一覧表示されるデータ型から（ステップ１３１）データ型を選択すると（ステップ１３２）部品ＩＤがインクリメントされる（ステップ１３３）。そして、一覧表示される部品から（ステップ１３４）部品を選択して配置すると（ステップ１３５）、当該部品の編集可能な内部データｃ３が表示され（ステップ１３６）、内部データを編集する（ステップ１３７）。その後、マトリクスｃ６を用いてから処理モジュールが読み込まれ（ステップ１３８）、この処理モジュールが結合情報テーブルｃ８に格納される（ステップ１３９）。
【００６７】
ここで図１４はデータ型の一覧表示及び選択のためのウインドウの表示例、図１５は部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例、図１６は部品のデータ編集のためのウインドウの表示例である。
【００６８】
［２−４．部品の結合関係の設定］
以上のように各部品を開発した後、選択された各部品の図形に対するユーザの操作に応じて、結合手段５により、当該部品に結合する他の要素（他の部品又はデータ）を決定し、当該部品と当該要素との結合関係を設定する。
【００６９】
ここで、図１７は、部品間の関連付けに関するデータを示す概念図である。すなわち、ユーザが設定した部品間の関連は関連記述テーブルｄ４に格納される。
また、部品間の結合に必要な処理モジュール（前記仲介ルーチンに相当するもの）は関連処理モジュールｄ１を用いて特定される。モジュールｄ１は、ＧＵＩ部品間の各関連及び各関連に対応する処理ルーチン（前記仲介ルーチンに相当するもの）を記述したデータ構造を持つマトリクスｄ２を参照する。
【００７０】
このマトリクスｄ２では、一辺が、操作（関連）を及ぼすＧＵＩ部品名、他辺が、この部品に関連し操作を受ける被操作ＧＵＩ部品名であり、両者の交点には処理ルーチンが名称などで特定されている。具体的な処理ルーチンは処理ルーチンライブラリｄ３（前記仲介ルーチン格納手段の一部に相当するもの）に格納されている。
【００７１】
関連（結合）が設定されるとこの結合に対応した処理ルーチンは、マトリクスｄ２を用いてライブラリｄ３から読み出され、テーブルｄ４に格納される。テーブルｄ４のデータ構造ｄ５には、操作を及ぼすＧＵＩ部品のＩＤとこの部品に関連し操作を受ける各部品のＩＤが含まれ、また、各関連ごとに仲介ルーチンたる処理ルーチン名がリスト形式で格納される。
【００７２】
なお、マトリクスｄ２において該当する交点が発見されなかった関連については、ユーザ独自の処理ルーチンであるとし、ユーザが指定した処理ルーチン名が格納される。
【００７３】
テーブルｄ４によって、あるＧＵＩ部品上でイベントが発生した場合に、影響を及ぼすべき他の部品と、その場合に必要な処理ルーチンを特定することができる。なお、図１８はマトリクスｄ２の例、図１９はテーブルｄ５の例である。
【００７４】
また、図２０は、部品間の関連付け処理の手順を示すフローチャートである。
この手順では、操作を及ぼす部品が一覧表示され（ステップ２０１）ユーザが部品を選択し画面上に配置する（ステップ２０２）。続いて操作の影響を受ける部品が一覧表示され（ステップ２０３）、ユーザがこれら部品を選択し画面上に配置する（ステップ２０４）。
【００７５】
次に操作を及ぼす部品の発火点となるイベントが一覧表示され（ステップ２０５）、ユーザがイベントを選択する（ステップ２０６）。さらに、選択した関連にユーザによる処理ルーチンを対応させる場合はこれを作成し設定した関連の部品に関連付ける（ステップ２０７）。その後、マトリクスｄ２を用いて各関連に対応した処理ルーチンが取り出され（ステップ２０８）、設定された関連とともにテーブルｄ４に格納される（ステップ２０９）。
【００７６】
ソフトウェア実行時には、定義されたイベントが発行されるたびにモジュールｄ１がテーブルｄ４を参照し、データ構造ｄ５で示される処理ルーチンが呼び出される。
【００７７】
ここで図２１は操作を及ぼす部品の一覧表示のためのウインドウの表示例、図２２は操作の影響を受ける部品の一覧表示のためのウインドウの表示例、図２３はイベントの一覧表示のためのウインドウの表示例、図２４は処理ルーチンの記述のためのウインドウの表示例、図２５は部品と処理ルーチンの関連付けのためのウインドウの表示例である。
【００７８】
［２−５．ソフトウェアの動作の実現］
以上の開発が終了すると、ソースコードジェネレータ４が、選択された部品、選択された部品の内部データ、結合関係（関連）に基づいてソフトウェアのソースコードを生成・出力する。なお、結合関係が設定されている部品については、特定手段７が必要な前記仲介ルーチンを特定し、ソースコードジェネレータ４は特定された仲介ルーチンに基づいてソースコードを生成する。
【００７９】
そして、生成されたソフトウェアのソースコードに、プログラマが開発したユーザソースコードを結合しコンパイル等の作業を行うことで、ＧＵＩソフトウェア開発が完了する。
【００８０】
なお、請求項１にいう実現手段はソースコードジェネレータには限定されず、ソフトウェアの動作を実現できる手段を広く意味するので、例えば、コンパイラのように機械語による実行モジュールを直接生成したり、インタプリタのように実行してもよい。
【００８１】
以上のように、本実施例のソフトウェア開発支援装置では、データや処理内容が部品ごとに用意され、所望の部品を選択するだけでその部品に関するデータや処理内容を編集することができ、選択された部品及びその内部データに基づいてソフトウェアの動作が実現される。このため、部品とデータや処理内容との関係を手作業でプログラミングする繁雑な手順が不要となり、ソフトウェア開発が効率化される。また、同様に、部品の入れ替えや部品に対応するデータや処理手順の変更も効率的に行なうことができるので、ソフトウェアの拡張性、保守性が向上する。
【００８２】
また、本実施例のソフトウェア開発支援装置では、部品と、他の要素例えば他の部品・ソフトウェアの内部データなどとの間に結合関係を設定し、この結合関係に基づいて前記ソフトウェアの動作が実現される。このため、部品と他の要素間の関係についても手作業でプログラミングする手順が不要となり、ソフトウェア開発が効率化される。
【００８３】
特に、本実施例では、異なった型のデータやイベントに基づいて構成された部品と要素でも、仲介ルーチンがデータの型変換など必要な処理を行なうので、このような仲介ルーチンをユーザが開発の際に用意する必要がない。
【００８４】
さらに、本実施例では、静的部品によってメニュー欄や背景模様のような表示画面の基本的な内容が提供され、表示要部品と入力用部品によって入出力の機能が提供されるので、新たなソフトウェア開発においてデータ処理部分のみを新たに開発すればよく、ソフトウェア開発が効率化される。
【００８５】
また、本実施例では、図形による部品の表示が部品の認識を容易にし、また、図形に対する視覚的操作が選択・結合関係の設定・画面上での部品の配置を容易にするので、ソフトウェア開発が効率化される。
【００８６】
［３．他の実施例］
なお、本発明は上記実施例に限定されるものではなく、実施態様の変更は自由であるから、次のような他の実施例をも包含するものである。例えば、本発明のソフトウェア開発支援装置によって開発対象とされるソフトウェアはＧＵＩソフトウェアには必ずしも限定されず、他のソフトウェアを開発対象としてもよい。
【００８７】
また、本発明における部品は、必ずしも画面に表示されるものには限定されず、ソフトウェアを構成する要素であって所望のものを部品として扱うこともできる。また、部品の内部データのうち非依存データについて編集できるようにしてもよい。また、結合手段は必ずしも必要ではなく、開発された部品の結合のみを手作業で行なってもよい。
【００８８】
また、仲介ルーチンは必ずしもすべての結合関係について必要なものではなく、例えば、部品間の結合であって各部品の取り扱うデータ形式が同一であれば仲介ルーチンは必要ない。この場合、マトリクスのうち当該部品間の関係に相当する部分は空欄とすればよい。
【００８９】
また、本発明における部品は静的部品・表示用部品・入力用部品には限定されず、コンピュータ外部との通信用部品など所望の種類の部品を設定することができる。また、部品の選択や結合関係の設定はポインティングデバイスによらず、部品の番号をキーボードから入力するなど他の態様で行なってもよい。
【００９０】
【発明の効果】
以上説明したように、本発明によれば、ＧＵＩソフトウェアの開発を効率的に行なうソフトウェア開発支援装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施例のソフトウェア開発支援装置の概念的構成を示す機能ブロック図
【図２】本発明の実施例のソフトウェア開発支援装置における静的ＧＵＩ部品のデータ構造
【図３】本発明の実施例のソフトウェア開発支援装置における静的ＧＵＩ部品の開発の手順を示すフローチャート
【図４】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び部品の配置のためのウインドウ(Palette) の表示例
【図５】本発明の実施例のソフトウェア開発支援装置における内部データ編集のためのウインドウの表示例
【図６】本発明の実施例のソフトウェア開発支援装置における表示用ＧＵＩ部品の編集に関するデータを示す概念図
【図７】本発明の実施例のソフトウェア開発支援装置におけるマトリクスｂ７の例
【図８】本発明の実施例のソフトウェア開発支援装置における表示用部品の開発の手順を示すフローチャート
【図９】本発明の実施例のソフトウェア開発支援装置におけるデータ型の一覧表示のためのウインドウの表示例
【図１０】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例
【図１１】本発明の実施例のソフトウェア開発支援装置における部品のデータ編集のためのウインドウの表示例
【図１２】本発明の実施例のソフトウェア開発支援装置における入力用ＧＵＩ部品の編集に関するデータを示す概念図
【図１３】本発明の実施例のソフトウェア開発支援装置における入力用部品の開発の手順を示すフローチャート
【図１４】本発明の実施例のソフトウェア開発支援装置におけるデータ型の一覧表示及び選択のためのウインドウの表示例
【図１５】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例
【図１６】本発明の実施例のソフトウェア開発支援装置における部品のデータ編集のためのウインドウの表示例
【図１７】本発明の実施例のソフトウェア開発支援装置における部品間の関連付けに関するデータを示す概念図
【図１８】本発明の実施例のソフトウェア開発支援装置におけるマトリクスｄ２の例
【図１９】本発明の実施例のソフトウェア開発支援装置におけるテーブルｄ５の例
【図２０】本発明の実施例のソフトウェア開発支援装置における部品間の関連付け処理の手順を示すフローチャート
【図２１】本発明の実施例のソフトウェア開発支援装置における操作を及ぼす部品の一覧表示のためのウインドウの表示例
【図２２】本発明の実施例のソフトウェア開発支援装置における操作の影響を受ける部品の一覧表示を表すウインドウの表示例
【図２３】本発明の実施例のソフトウェア開発支援装置におけるイベントの一覧表示のためのウインドウの表示例
【図２４】本発明の実施例のソフトウェア開発支援装置における処理ルーチンの記述のためのウインドウの表示例
【図２５】本発明の実施例のソフトウェア開発支援装置における部品と処理ルーチンの関連付けのためのウインドウの表示例
【符号の説明】
１：部品格納手段
２：選択関係
３：編集手段
４：ソースコードジェネレータ
５：結合手段
６：仲介ルーチン格納手段
７：特定手段
８：配置手段
【図１】
0003697274.tif 000002
【図２】
0003697274.tif 000003
【図３】
0003697274.tif 000004
【図４】
0003697274.tif 000005
【図５】
0003697274.tif 000006
【図６】
0003697274.tif 000007
【図７】
0003697274.tif 000008
【図８】
0003697274.tif 000009
【図９】
0003697274.tif 000010
【図１０】
0003697274.tif 000011
【図１１】
0003697274.tif 000012
【図１２】
0003697274.tif 000013
【図１３】
0003697274.tif 000014
【図１４】
0003697274.tif 000015
【図１５】
0003697274.tif 000016
【図１６】
0003697274.tif 000017
【図１７】
0003697274.tif 000018
【図１８】
0003697274.tif 000019
【図１９】
0003697274.tif 000020
【図２０】
0003697274.tif 000021
【図２１】
0003697274.tif 000022
【図２２】
0003697274.tif 000023
【図２３】
0003697274.tif 000024
【図２４】
0003697274.tif 000025
【図２５】
0003697274.tif 000026