JP3697274B2 - ソフトウェア開発支援装置 - Google Patents
ソフトウェア開発支援装置 Download PDFInfo
- Publication number
- JP3697274B2 JP3697274B2 JP21976094A JP21976094A JP3697274B2 JP 3697274 B2 JP3697274 B2 JP 3697274B2 JP 21976094 A JP21976094 A JP 21976094A JP 21976094 A JP21976094 A JP 21976094A JP 3697274 B2 JP3697274 B2 JP 3697274B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- software
- component
- display
- parts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
Description
【産業上の利用分野】
本発明は、GUIソフトウェアの開発を効率的に行なうソフトウェア開発支援装置に関するものである。
【0002】
【従来の技術】
近年のコンピュータのソフトウェアでは、その操作性の向上、認識の容易性を考慮してGraphical User Interface(以下GUIという)が使用されている。GUIは、コンピュータとユーザ間の対話的入出力の形式であり、情報出力を表示画面上の図形シンボルで行ない、また、情報入力を図形シンボルに対する操作によって行なうものである。
【0003】
このようなGUIを用いたソフトウェアすなわちアプリケーションプログラム(以下図面又は本明細書において「アプリ」と略することがある)は、ソフトウェアの部品として、異なった画面であっても同様な形状をした操作ボタン、アイコン、プルダウンメニューなどの表示が使用され、どのような画面であってもマウスなどを使用することにより共通の操作性が得られるようにしていることが多い。そのため、この種のGUIソフトウェアを開発するときには、プログラムの各画面において共通に使用される表示などを部品化して取り扱うことにより、プログラム開発を容易に実施できるようにしている。
【0004】
たとえば、GUIを用いたソフトウェアの開発手順の一例を示すと、次の通りである。まず、ソフトウェア実行上の各過程における画面の表示状態、特に、ソフトウェアの起動時から位置や表示内容が固定的である静的部品と、前記静的部品に対応する画面操作処理手順を開発する。次いで、画面上の表示を例えばマウス等により操作したときの処理すなわち部品への操作に対する及び部品間の視覚的振舞が開発される。
【0005】
また、ソフトウェアで利用されるデータ構造が決定され、データ処理手順あるいはルーチンが開発される。最後に、生成された部品が、又はユーザから入力される処理を含めて部品及び処理が結合されてソフトウェアが開発される。
【0006】
このようなソフトウェア開発を支援する装置としてはソフトウェア開発支援装置が知られている。ソフトウェア開発支援装置とは、ソフトウェアを構成するデータや処理手順の編集を行なうためのもので、多くの場合ソースコードジェネレータやシミュレータのようにソフトウェアの動作を実現する手段を備えている。
【0007】
GUIを用いたソフトウェアの開発を従来のソフトウェア開発支援装置において行なう場合、上記の各段階における画面の表示状態と画面操作処理のうち、GUI部品単体の動作を規定する処理の開発はGUI開発支援装置を用いてなされていた。
【0008】
【発明が解決しようとする課題】
しかし、従来のソフトウェア開発支援装置では、部品間や部品とデータ及び処理との関連についてはプログラマの手による作成や修正を要したため、ソフトウェア開発の効率向上が困難という問題点が存在していた。
【0009】
すなわち、従来では、画面操作に関して、あるGUI部品が他のGUI部品を操作するといったGUI同士の関連付けについては、ソフトウェアを自動的に実現することができなかった。特に、対話的操作部品のようにGUI特有のグラフィック表示ライブラリを利用しても、ライブラリ同士の組み合わせは手作業で行なう必要があった。このため、部品間の関係についてはプログラム言語を用いて直接所望の動作を記述せざるを得ず、この作業がソフトウェア開発における多くの工数を要した。
【0010】
また、従来では、表示用GUI部品と部品に表示するデータもしくは部品とデータ処理手順との対応、及び、入力用GUI部品と部品からの入力データの処理手順、など部品と他の要素の関連についてもソフトウェアの自動合成ができなかった。このため、このような関連付けについてもプログラマが追加修正する必要があった。
【0011】
さらに、ソフトウェア開発支援装置上で表示用GUI部品を変更する場合、変更する部品に関連する部品や表示データなどすべての他の要素との関連性も変更せざるを得ず、この作業もプログラマが手作業で行なっていた。このため、ソフトウェアの保守性や再利用性も向上が困難であった。
【0012】
本発明は、上記のような従来技術の問題点を解決するために提案されたもので、その目的は、ユーザが開発すべき部分や開発時に用意すべき部分を削減し、部品間の関連付けが容易で、ソフトウェア開発を効率的に行なうソフトウェア開発支援装置を提供することである。また、本発明の他の目的は、ソフトウェアの修正変更が容易なソフトウェア開発支援装置を提供することである。
【0013】
【課題を解決するための手段】
上記の目的を達成するため、本発明の一つの態様におけるソフトウェア開発支援装置は、コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置において、前記部品は、少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品を含み、各部品に対応する内部データとして、処理手順を示す手順データと、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分して格納する部品格納手段と、表示画面上で前記部品格納手段に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する選択手段と、選択された部品の内部データを前記表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する編集手段と、部品の内部データの編集結果を格納する編集結果格納手段と、部品に結合する要素を他の部品及びデータのいずれかとして、部品又は要素の一覧表示を行い、この一覧表示に対するユーザの操作に応じて、結合させる部品と要素との組合せを選択し、操作を及ぼす当該部品と操作の影響を受ける当該要素との結合関係を設定する結合手段と、部品と要素との結合関係の設定結果を格納する設定結果格納手段と、前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとに、当該要素のデータを当該部品で処理可能なデータ形式に変換するルーチンを含み、当該部品と当該要素との結合を実現するための複数の仲介ルーチンを予め格納する仲介ルーチン格納手段と、選択された部品とその内部データの編集結果を用いると共に、前記結合関係が設定された場合に、当該結合関係の設定結果及び特定された前記仲介ルーチンに基づいてソフトウェアの動作を実現するソースコード又はプログラムコードを生成する実現手段を有し、前記結合手段は、選択された部品と要素との組合せに基づき、前記編集手段を用いて対応する内部データを表示し、当該部品と要素間で必要な仲介ルーチンを結合関係としてユーザが指定する手段と、当該指定された仲介ルーチンを示すデータを前記設定結果格納手段に記憶する手段とを有することを特徴としている。
【0014】
また、本発明の上記ソフトウェア開発支援装置は、一つの態様において、さらに次のような構成を有する。すなわち、前記表示画面上で前記図形の操作を行うポインティングデバイスを有し、前記各部品は所定の図形によって前記表示画面に表示され、前記選択手段は、前記ポインティングデバイスによって前記図形をポイントするユーザの操作が行われた場合に前記選択を行なうように構成され、前記結合手段は、選択された各部品の前記図形に対してユーザによる第1の所定の操作が行われた場合に前記結合関係を設定するように構成され、選択された各部品の前記図形に対して前記ポインティングデバイスによってユーザによる第2の所定の操作が行われた場合に当該図形を前記表示画面上の当該操作内容に応じた位置に配置する配置手段を有する。
【0015】
【作用】
上記のような構成を有する本発明は、次のような作用を有する。すなわち、データや処理内容が部品ごとに用意され、所望の部品を選択するだけでその部品に関するデータや処理内容を編集することができ、選択された部品及びその内部データに基づいてソフトウェアの動作が実現される。このため、部品とデータや処理内容の結合関係を手作業でプログラミングする繁雑な手順が不要となり、ソフトウェア開発が効率化される。また、同様に、部品の入れ替えや部品に対応するデータや処理手順の変更も効率的に行なうことができるので、ソフトウェアの拡張性、保守性が向上する。
【0016】
また、部品の内部データのうち、部品が組み込まれるソフトウェアに依存しない非依存データについては編集や入力が不要なので、ソフトウェア開発が効率化される。
【0017】
また、部品と、他の部品・ソフトウェアの内部データなどといった他の要素との間に結合関係を設定し、この結合関係に基づいて前記ソフトウェアの動作が実現される。このため、部品間の関係を手作業でプログラミングする手順が不要となり、ソフトウェア開発が効率化される。
【0018】
また、異なった型のデータやイベントに基づいて構成された部品同士及び部品と要素でも、データの型変換など必要な処理は、結合関係の対象となり得る各部品と各要素との組合せごとに予め格納されている仲介ルーチンが行うので、このような仲介ルーチンをユーザが開発の際に用意する必要がない。
【0019】
また、静的部品によってメニュー欄や背景模様のような表示画面の基本的な内容が提供され、表示用部品と入力用部品によって入出力の機能が提供されるので、新たなソフトウェア開発においてデータ処理部分のみを新たに開発すればよく、ソフトウェア開発が効率化される。
【0020】
また、表示画面上に各部品を所定の図形で表示し、ポインティングデバイスで操作する構成によれば、図形による部品の表示が部品の認識を容易にし、また、図形に対する視覚的操作が選択・結合関係の設定・画面上での部品の配置を容易にするので、ソフトウェア開発が効率化される。
【0025】
【実施例】
次に、本発明の実施例について、図面に従って具体的に説明する。なお、後述する実施例はコンピュータ上に実現され、実施例の各機能は、所定の手順(プログラム)がこのコンピュータを制御することで実現される。
【0026】
本明細書における各「手段」は、実施例の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウェア・ルーチンに1対1には対応しない。同一のハードウェア要素が、場合によって異なった手段を構成する。例えば、コンピュータは、ある命令を実行するときにある手段となり、別の命令を実行するときは別の手段となりうる。また、一つの手段が、わずか1命令によって実現される場合もあれば、多数の命令によって実現される場合もある。
【0027】
したがって、本明細書では、以下、実施例の各機能を有する仮想的回路ブロック(「手段」又は「部」)を想定して実施例を説明する。但し、コンピュータの使用は一例であり、本発明の機能の全部又は一部は、可能ならば、カスタムチップ(専用の集積回路)のような電子回路上に実現してもよい。
【0028】
実施例に用いられるコンピュータは、一般には、CPU(中央演算処理装置)と、RAM(随時書込読出型記憶素子)からなる主記憶装置とを有する。また、前記コンピュータの規模は自由であり、マイクロコンピュータ・パーソナルコンピュータ・スモールコンピュータ・ワークステーション・メインフレームなど、いかなる規模のものを用いてもよい。
【0029】
また、前記コンピュータのハードウェアは、典型的には、キーボードやマウスなどの入力装置と、ハードディスク装置などの外部記憶装置と、CRT表示装置やプリンタ印字装置などの出力装置と、必要な入出力制御回路を含む。
【0030】
但し、前記コンピュータのハードウェア構成は自由であり、本発明が実施できる限り、上記の構成要素の一部を追加・変更・除外してもよい。例えば、CPUの種類は自由であり、CPUを複数同時に用いたり、単一のCPUをタイムシェアリング(時分割)で使用し、複数の処理を同時平行的に行ってもよい。また、他の入力装置(例えば、タッチパネル・ライトペン・トラックボールなどのポインティングデバイスや、デジタイザ・イメージ読取装置やビデオカメラなどの画像入力装置・音声識別装置・各種センサなど)を用いてもよい。また、他の外部記憶装置(例えば、フロッピーディスク装置・RAMカード装置・磁気テープ装置・光学ディスク装置・光磁気ディスク装置・バブルメモリ装置・フラッシュメモリなど)を用いてもよい。また、他の出力装置(例えば、液晶表示装置・プラズマディスプレイ装置・ビデオプロジェクター・LED表示装置・音響発生回路・音声合成回路など)を用いてもよい。
【0031】
また、前記コンピュータにおいて実施例を実現するためのソフトウェアの構成としては、典型的には、実施例の各機能を実現するためのアプリケーションプログラムが、OS(オペレーティングシステム)上で実行される態様が考えられる。また、実施例を実現するためのプログラムの態様としては、典型的には、高級言語やアセンブラからコンパイル(翻訳)された機械語が考えられる。但し、前記コンピュータのソフトウェア構成も自由であり、本発明が実施できる限り、ソフトウェア構成を変更してもよい。例えば、必ずしもOSを用いる必要はなく、また、プログラムの表現形式も自由であり、BASICのようなインタプリタ(逐次解釈実行型)言語を用いてもよい。
【0032】
また、プログラムの格納態様も自由であり、ROM(読出し専用メモリ)に格納しておいてもよく、また、ハードディスク装置のような外部記憶装置に格納しておき、コンピュータの起動時や処理の開始時に主メモリ上にロード(読み込み)してもよい。また、プログラムを複数の部分に分割して外部記憶装置に格納しておき、処理内容に応じて必要なモジュールのみを随時主メモリ上にロード(読み込み)してもよい。さらに、プログラムの部分ごとに異なった態様で格納してもよい。
【0033】
また、本実施例における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、また、実行ごとに異なった順序で実行してもよい。このような順序の変更は、例えば、ユーザが実行可能な処理を選択するなどメニュー形式のインターフェース手法によって実現することができる。
【0034】
また、本明細書における「入力」は、本来の情報の入力のみならず、情報の入力と密接に関連する他の処理を含む。このような処理は、例えば、入力内容のエコーバックや修正・編集である。また、本明細書における「出力」は、本来の情報の出力のみならず、情報の出力と密接に関連する他の処理を含む。このような処理は、例えば、出力すべき範囲の入力や、画面スクロールの指示である。なお、対話的入出力手順によって入力と出力を一体的操作によって実現してもよく、このような一体的操作によって、選択・指定・特定などの処理を行ってもよい。
【0035】
また、本明細書におけるデータ(情報)やデータの格納手段は前記コンピュータ上においていかなる態様で存在してもよい。例えば、データのハードウェア上の所在部分は、主記憶装置・外部記憶装置・CPUのレジスタやキャッシュメモリなどいかなる部分でもよい。また、データの保持態様も自由である。例えば、データは、ファイル形式で保持されるのみならず、メモリやディスクなどの記憶装置を物理的アドレスで直接アクセスすることによって実現してもよい。また、データの表現形式も自由で、例えば、文字列を表すコードの単位は、文字単位でも単語単位でもよい。また、データは必要とされる一定時間だけ保持されれば十分で、その後消滅してもよく、保持時間の長短は自由である。また、辞書データのように当面変更されない情報は、ROMに格納してもよい。
【0036】
また、本明細書において、特定の情報への言及は確認的で、言及されない情報の存在を否定するものではない。すなわち、本発明の動作では、動作に必要な一般的な情報、例えば、各種ポインタ、カウンタ、フラグ、パラメータ、バッファなどが適宜用いられる。
【0037】
実施例の各部分が処理に要する情報は、特に記載がない場合、当該情報を保持している他の部分から獲得される。このような情報の獲得は、例えば、当該情報を格納している変数やメモリをアクセスすることによって実現することができる。なお、情報の消去・抹消は、当該情報の内容自体を必ずしも記憶領域から現実に削除せず、消去を表すフラグを設定するなど、情報の意味付けの変更によって行うことができる。
【0038】
[1.実施例の構成]
本実施例は、コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置である。本実施例の目的は、ユーザが開発すべき部分や開発時に用意すべき部分を削減し、部品間の関連付けが容易で、ソフトウェア開発を効率的に行なうソフトウェア開発支援装置を提供することである。また、本実施例の他の目的は、ソフトウェアの修正変更が容易なソフトウェア開発支援装置を提供することである。
【0039】
図1は、本実施例のソフトウェア開発支援装置の概念的構成を示す機能ブロック図である。本実施例のソフトウェア開発支援装置は、各部品に関するデータ及び処理内容を部品に付属する内部データとして格納する部品格納手段1と、所望の部品を選択する選択手段2と、選択した部品の内部データを編集する編集手段3と、選択された部品及び選択された部品の内部データに基づいてソフトウェアの動作を実現する実現手段であるソースコードジェネレータ4を有する。
【0040】
また、本実施例のソフトウェア開発支援装置は、部品と他の要素との結合関係を設定する結合手段5と、前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとの仲介ルーチンを格納する仲介ルーチン格納手段6と、前記結合関係が設定された場合に、必要な前記仲介ルーチンを特定する特定手段7と、を有する。
【0041】
また、本実施例のソフトウェア開発支援装置は、図示しない表示画面とポインティングデバイスを有し、また、前記ポインティングデバイスによって所定の操作を行なうことによって前記図形を前記表示画面上の所望の位置に配置する配置手段8を有する。
【0042】
また、前記部品は少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品と、を含む。
【0043】
[2.実施例の作用及び効果]
本実施例におけるソフトウェア開発では、まず、部品格納手段1に各部品に関するデータ及び処理内容を部品に付属する内部データとして格納しておく。そして、選択手段2によって、表示画面上で部品格納手段1に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する。このとき、ユーザは、ポインティングデバイスによって図形をポイントすることによって所望の部品の選択を行なうことができる。
【0044】
また、選択された各部品の図形に対してポインティングデバイスによってユーザによる所定の操作が行われた場合には、配置手段8によって、当該図形を表示画面上の当該操作内容に応じた位置に配置する。このとき、ユーザは、ポインティングデバイスによって所定の操作を行なうことによって図形を表示画面上の所望の位置に配置することができる。
【0045】
さらに、編集手段3によって、選択された部品の内部データを表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する。このとき、部品の内部データは、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分され、編集手段は、この依存データを編集するように構成されている。このため、部品が組み込まれるソフトウェアによって異ならない非依存データについては編集や入力が不要なので、ソフトウェア開発が効率化される。
【0046】
次に、部品の種類ごとの開発、結合関係の設定及びソフトウェアの動作の実現について説明する。
【0047】
[2−1.静的部品の開発]
静的GUI部品は、ソフトウェアの動作中、画面上の固定位置に表示され続ける部品である。図2は、静的GUI部品のデータ構造である。静的GUI部品は、図2に示すように、描画及び初期化などの処理手順データa1と、図形の基本的な特徴を表現しソフトウェアに依存しない非依存データa2と、ソフトウェアごとに異なる個々の図形の位置/サイズなどを表す依存データa3を含む。
【0048】
ここで非依存データa2の例としては、図形の種類(例えば円/直線/矩形の種別)、ストローク(例えば線の数=4、折れ点の座標={(34,13),(50,34),...} のように表す)、ベクトル(例えば図形の向き(0.4,0.7) のように表す)などが挙げられる。
【0049】
また、依存データa3の例としては表示画面上での位置データ(例えば絶対座標(200,130),相対座標(20,3)のように表す)、色データ(例えば表面=赤色、背景=黄色のように表す)、サイズデータ(例えばwidth=30,height=40,depth=15 のように表す)などが挙げられる。
【0050】
次に、図3は静的GUI部品の開発の手順を示すフローチャートである。なお、本明細書のフローチャートにおいて左側は主にソフトウェア開発支援装置による動作を、右側は主にユーザによる操作を示す。この手順では、図3に示すように、画面に一覧表示される部品から(ステップ31)部品を選択し(ステップ32)、視覚的な操作によって部品を配置する(ステップ33)。ここで図4は、部品の一覧表示及び選択のためのウインドウ(Select Panel)及び部品の配置のためのウインドウ(Palette) の表示例である。
【0051】
続いて、選択された部品の内部データのうち編集可能な依存データa3が一覧表示され(ステップ34)、内部データの編集を終了すると(ステップ35)、選択された部品データは、その位置データを含む内部データの編集結果と共に、ソフトウェアを構成する部品の情報として図2に示すような格納手段に格納され、ソースコード生成時に参照される。ここで図5は、内部データ編集のためのウインドウの表示例である。
【0052】
[2−2.表示用部品の開発]
図6は、表示用GUI部品の編集に関するデータを示す概念図である。すなわち、表示用GUI部品b2は、ソフトウェア内部のデータb1をユーザに画面表示するためのものである。そして、部品b2のデータ構造b3は、表示データを格納するための内部可変データ格納領域と、表示処理ルーチンと、ワークエリアである内部データ格納領域を持つ。
【0053】
各部品b2がどのデータを表示するかは、結合手段5により、ユーザの操作に応じて、各部品が表示するデータを決定し、部品とデータとの結合関係を設定する。そして、設定された結合関係は、結合情報b5の形式を持つデータ構造体b4として結合情報テーブルb9に格納され、ソースコード生成時に参照される。
【0054】
なお、構造体b5は、データ名(例えばturbineRotation のような名称で表す)、データの型(例えば整数型int/文字型str/実数型float...のような種別で表す)、ID(例えばID=12345 のようなコードで表す)を含む。なお、IDは自動発番され同一ソフトウェア内では重複しない。また、図7はマトリクスb7の例である。
【0055】
なお、部品b2が処理できるデータ型とデータb1のデータ型が異なる場合が考えられ得るが、そのための処理モジュール(前記仲介ルーチンに相当するもの)は処理モジュールライブラリb8(前記仲介ルーチン格納手段の一部に相当するもの)に格納されている。
【0056】
そして、部品とデータ型との組み合わせごとの処理は結合処理モジュールb6が行う。このモジュールb6は、一辺がソフトウェア内部のデータの型、他辺が表示GUI部品の種類となっているマトリクスb7から参照され、特定の型と特定の部品の交点には、その型のデータをその部品で表示する際に必要となる処理モジュールが名称などで特定され、選択される。そしてこれが結合情報テーブルb9に記録される。そして、結合情報テーブルb9に記録された結合関係に応じたモジュールb6がソースコード生成時に用いられる。
【0057】
例えば、いくつかの実数からなるデータ群が存在し、一方、データを棒グラフで表示するという機能を持つ表示用部品が存在するが、この部品は入力値として整数しか受け付けないと仮定する。この場合、仲介ルーチンたる処理モジュールが実数のデータ群を整数に変換してから部品に渡すことになる。
【0058】
そして、図8は、表示用部品の選択と処理の開発の手順を示すフローチャートである。この手順では、一覧表示されたデータ型を(ステップ81)選択すると(ステップ82)、部品IDがインクリメント(1加算)され(ステップ83)、一覧表示された部品から(ステップ84)部品を選択し画面上に配置する(ステップ85)。インクリメントされた部品IDは選択された部品ごとに割り当てられる。
【0059】
次に、選択された部品のデータのうち編集可能な内部データb3が一覧表示され(ステップ86)、このデータを編集すると(ステップ87)、マトリクスb7を通じてから処理モジュールが読み込まれ(ステップ88)、登録が終了すると(ステップ89)編集結果が結合情報テーブルb9に記録される(ステップ810)。
【0060】
ここで図9はデータ型の一覧表示のためのウインドウの表示例、図10は部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例、図11は部品のデータ編集のためのウインドウの表示例である。
【0061】
[2−3.入力用部品の開発]
図12は、入力用GUI部品の編集に関するデータを示す概念図である。すなわち、入力用部品c1は、ユーザによる所定の入力があったときに、この入力に対応するソフトウェア内の所定の処理ルーチンc7を起動する部品である。そして、部品c1のデータ構造c2は、初期値、現在値、表示処理ルーチン、内部データ格納領域を含む。
【0062】
各部品c1がどの処理ルーチンc7を起動するかは、結合手段5により、ユーザの操作に応じて、各部品が起動する処理ルーチンを決定し、部品と処理ルーチンとの結合関係を設定する。そして、設定された結合関係は、結合情報c4の形式を持つデータ構造体c3として結合情報テーブルc8に格納され、ソースコード生成時に参照される。
【0063】
なお、構造体c3のデータ構造c4は、初期値/現在値(例えば0〜1で正規化する)、入力用のGUI部品のID(ID=12345のようなコードで表す)、ソフトウェア内の処理ルーチン名を保持している。なお、部品のIDと処理ルーチン名はリスト構造(例えば関数1,関数2,...関数nのように特定する)で表せば、1つのデータ構造体によって複数のGUI部品及び処理ルーチンを表すことができる。
【0064】
ここで、各処理ルーチンc7は内部処理で必要とする値と必要とするデータ型を持ち、一方、GUI部品が保持する現在値は、各GUI部品ごとに異なったデータ型、例えば、2値情報、整数情報、文字列情報等で保持されている場合がしばしばである。そのための処理モジュール(前記仲介ルーチンに相当するもの)は処理モジュールライブラリc9(前記仲介ルーチン格納手段の一部に相当する)に格納されている。
【0065】
そして、部品とデータ型との組み合わせごとの処理モジュールは結合処理モジュールc5が行う。このモジュールc5は、一辺がGUI部品の種類、他辺がデータの型となっているマトリクスc6を参照する。マトリクスc6では、特定の型と特定の部品の交点で、その表示用GUI部品で得られる値(状態変化情報)を処理ルーチンが必要とするデータの型へ変換するための手順を記述した処理モジュールが名称などで特定されている。これによって処理モジュールが選択され、選択されたモジュールが結合情報テーブルc8に記録され、結合関係に応じた処理モジュールがソースコード生成時に用いられる。
【0066】
図13は、入力用部品の選択及びデータ編集の手順を示すフローチャートである。この手順では、一覧表示されるデータ型から(ステップ131)データ型を選択すると(ステップ132)部品IDがインクリメントされる(ステップ133)。そして、一覧表示される部品から(ステップ134)部品を選択して配置すると(ステップ135)、当該部品の編集可能な内部データc3が表示され(ステップ136)、内部データを編集する(ステップ137)。その後、マトリクスc6を用いてから処理モジュールが読み込まれ(ステップ138)、この処理モジュールが結合情報テーブルc8に格納される(ステップ139)。
【0067】
ここで図14はデータ型の一覧表示及び選択のためのウインドウの表示例、図15は部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例、図16は部品のデータ編集のためのウインドウの表示例である。
【0068】
[2−4.部品の結合関係の設定]
以上のように各部品を開発した後、選択された各部品の図形に対するユーザの操作に応じて、結合手段5により、当該部品に結合する他の要素(他の部品又はデータ)を決定し、当該部品と当該要素との結合関係を設定する。
【0069】
ここで、図17は、部品間の関連付けに関するデータを示す概念図である。すなわち、ユーザが設定した部品間の関連は関連記述テーブルd4に格納される。
また、部品間の結合に必要な処理モジュール(前記仲介ルーチンに相当するもの)は関連処理モジュールd1を用いて特定される。モジュールd1は、GUI部品間の各関連及び各関連に対応する処理ルーチン(前記仲介ルーチンに相当するもの)を記述したデータ構造を持つマトリクスd2を参照する。
【0070】
このマトリクスd2では、一辺が、操作(関連)を及ぼすGUI部品名、他辺が、この部品に関連し操作を受ける被操作GUI部品名であり、両者の交点には処理ルーチンが名称などで特定されている。具体的な処理ルーチンは処理ルーチンライブラリd3(前記仲介ルーチン格納手段の一部に相当するもの)に格納されている。
【0071】
関連(結合)が設定されるとこの結合に対応した処理ルーチンは、マトリクスd2を用いてライブラリd3から読み出され、テーブルd4に格納される。テーブルd4のデータ構造d5には、操作を及ぼすGUI部品のIDとこの部品に関連し操作を受ける各部品のIDが含まれ、また、各関連ごとに仲介ルーチンたる処理ルーチン名がリスト形式で格納される。
【0072】
なお、マトリクスd2において該当する交点が発見されなかった関連については、ユーザ独自の処理ルーチンであるとし、ユーザが指定した処理ルーチン名が格納される。
【0073】
テーブルd4によって、あるGUI部品上でイベントが発生した場合に、影響を及ぼすべき他の部品と、その場合に必要な処理ルーチンを特定することができる。なお、図18はマトリクスd2の例、図19はテーブルd5の例である。
【0074】
また、図20は、部品間の関連付け処理の手順を示すフローチャートである。
この手順では、操作を及ぼす部品が一覧表示され(ステップ201)ユーザが部品を選択し画面上に配置する(ステップ202)。続いて操作の影響を受ける部品が一覧表示され(ステップ203)、ユーザがこれら部品を選択し画面上に配置する(ステップ204)。
【0075】
次に操作を及ぼす部品の発火点となるイベントが一覧表示され(ステップ205)、ユーザがイベントを選択する(ステップ206)。さらに、選択した関連にユーザによる処理ルーチンを対応させる場合はこれを作成し設定した関連の部品に関連付ける(ステップ207)。その後、マトリクスd2を用いて各関連に対応した処理ルーチンが取り出され(ステップ208)、設定された関連とともにテーブルd4に格納される(ステップ209)。
【0076】
ソフトウェア実行時には、定義されたイベントが発行されるたびにモジュールd1がテーブルd4を参照し、データ構造d5で示される処理ルーチンが呼び出される。
【0077】
ここで図21は操作を及ぼす部品の一覧表示のためのウインドウの表示例、図22は操作の影響を受ける部品の一覧表示のためのウインドウの表示例、図23はイベントの一覧表示のためのウインドウの表示例、図24は処理ルーチンの記述のためのウインドウの表示例、図25は部品と処理ルーチンの関連付けのためのウインドウの表示例である。
【0078】
[2−5.ソフトウェアの動作の実現]
以上の開発が終了すると、ソースコードジェネレータ4が、選択された部品、選択された部品の内部データ、結合関係(関連)に基づいてソフトウェアのソースコードを生成・出力する。なお、結合関係が設定されている部品については、特定手段7が必要な前記仲介ルーチンを特定し、ソースコードジェネレータ4は特定された仲介ルーチンに基づいてソースコードを生成する。
【0079】
そして、生成されたソフトウェアのソースコードに、プログラマが開発したユーザソースコードを結合しコンパイル等の作業を行うことで、GUIソフトウェア開発が完了する。
【0080】
なお、請求項1にいう実現手段はソースコードジェネレータには限定されず、ソフトウェアの動作を実現できる手段を広く意味するので、例えば、コンパイラのように機械語による実行モジュールを直接生成したり、インタプリタのように実行してもよい。
【0081】
以上のように、本実施例のソフトウェア開発支援装置では、データや処理内容が部品ごとに用意され、所望の部品を選択するだけでその部品に関するデータや処理内容を編集することができ、選択された部品及びその内部データに基づいてソフトウェアの動作が実現される。このため、部品とデータや処理内容との関係を手作業でプログラミングする繁雑な手順が不要となり、ソフトウェア開発が効率化される。また、同様に、部品の入れ替えや部品に対応するデータや処理手順の変更も効率的に行なうことができるので、ソフトウェアの拡張性、保守性が向上する。
【0082】
また、本実施例のソフトウェア開発支援装置では、部品と、他の要素例えば他の部品・ソフトウェアの内部データなどとの間に結合関係を設定し、この結合関係に基づいて前記ソフトウェアの動作が実現される。このため、部品と他の要素間の関係についても手作業でプログラミングする手順が不要となり、ソフトウェア開発が効率化される。
【0083】
特に、本実施例では、異なった型のデータやイベントに基づいて構成された部品と要素でも、仲介ルーチンがデータの型変換など必要な処理を行なうので、このような仲介ルーチンをユーザが開発の際に用意する必要がない。
【0084】
さらに、本実施例では、静的部品によってメニュー欄や背景模様のような表示画面の基本的な内容が提供され、表示要部品と入力用部品によって入出力の機能が提供されるので、新たなソフトウェア開発においてデータ処理部分のみを新たに開発すればよく、ソフトウェア開発が効率化される。
【0085】
また、本実施例では、図形による部品の表示が部品の認識を容易にし、また、図形に対する視覚的操作が選択・結合関係の設定・画面上での部品の配置を容易にするので、ソフトウェア開発が効率化される。
【0086】
[3.他の実施例]
なお、本発明は上記実施例に限定されるものではなく、実施態様の変更は自由であるから、次のような他の実施例をも包含するものである。例えば、本発明のソフトウェア開発支援装置によって開発対象とされるソフトウェアはGUIソフトウェアには必ずしも限定されず、他のソフトウェアを開発対象としてもよい。
【0087】
また、本発明における部品は、必ずしも画面に表示されるものには限定されず、ソフトウェアを構成する要素であって所望のものを部品として扱うこともできる。また、部品の内部データのうち非依存データについて編集できるようにしてもよい。また、結合手段は必ずしも必要ではなく、開発された部品の結合のみを手作業で行なってもよい。
【0088】
また、仲介ルーチンは必ずしもすべての結合関係について必要なものではなく、例えば、部品間の結合であって各部品の取り扱うデータ形式が同一であれば仲介ルーチンは必要ない。この場合、マトリクスのうち当該部品間の関係に相当する部分は空欄とすればよい。
【0089】
また、本発明における部品は静的部品・表示用部品・入力用部品には限定されず、コンピュータ外部との通信用部品など所望の種類の部品を設定することができる。また、部品の選択や結合関係の設定はポインティングデバイスによらず、部品の番号をキーボードから入力するなど他の態様で行なってもよい。
【0090】
【発明の効果】
以上説明したように、本発明によれば、GUIソフトウェアの開発を効率的に行なうソフトウェア開発支援装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施例のソフトウェア開発支援装置の概念的構成を示す機能ブロック図
【図2】本発明の実施例のソフトウェア開発支援装置における静的GUI部品のデータ構造
【図3】本発明の実施例のソフトウェア開発支援装置における静的GUI部品の開発の手順を示すフローチャート
【図4】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び部品の配置のためのウインドウ(Palette) の表示例
【図5】本発明の実施例のソフトウェア開発支援装置における内部データ編集のためのウインドウの表示例
【図6】本発明の実施例のソフトウェア開発支援装置における表示用GUI部品の編集に関するデータを示す概念図
【図7】本発明の実施例のソフトウェア開発支援装置におけるマトリクスb7の例
【図8】本発明の実施例のソフトウェア開発支援装置における表示用部品の開発の手順を示すフローチャート
【図9】本発明の実施例のソフトウェア開発支援装置におけるデータ型の一覧表示のためのウインドウの表示例
【図10】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例
【図11】本発明の実施例のソフトウェア開発支援装置における部品のデータ編集のためのウインドウの表示例
【図12】本発明の実施例のソフトウェア開発支援装置における入力用GUI部品の編集に関するデータを示す概念図
【図13】本発明の実施例のソフトウェア開発支援装置における入力用部品の開発の手順を示すフローチャート
【図14】本発明の実施例のソフトウェア開発支援装置におけるデータ型の一覧表示及び選択のためのウインドウの表示例
【図15】本発明の実施例のソフトウェア開発支援装置における部品の一覧表示及び選択のためのウインドウ(Select Panel)及び配置のためのウインドウ(Palette) の表示例
【図16】本発明の実施例のソフトウェア開発支援装置における部品のデータ編集のためのウインドウの表示例
【図17】本発明の実施例のソフトウェア開発支援装置における部品間の関連付けに関するデータを示す概念図
【図18】本発明の実施例のソフトウェア開発支援装置におけるマトリクスd2の例
【図19】本発明の実施例のソフトウェア開発支援装置におけるテーブルd5の例
【図20】本発明の実施例のソフトウェア開発支援装置における部品間の関連付け処理の手順を示すフローチャート
【図21】本発明の実施例のソフトウェア開発支援装置における操作を及ぼす部品の一覧表示のためのウインドウの表示例
【図22】本発明の実施例のソフトウェア開発支援装置における操作の影響を受ける部品の一覧表示を表すウインドウの表示例
【図23】本発明の実施例のソフトウェア開発支援装置におけるイベントの一覧表示のためのウインドウの表示例
【図24】本発明の実施例のソフトウェア開発支援装置における処理ルーチンの記述のためのウインドウの表示例
【図25】本発明の実施例のソフトウェア開発支援装置における部品と処理ルーチンの関連付けのためのウインドウの表示例
【符号の説明】
1:部品格納手段
2:選択関係
3:編集手段
4:ソースコードジェネレータ
5:結合手段
6:仲介ルーチン格納手段
7:特定手段
8:配置手段
Claims (2)
- コンピュータのソフトウェアを構成する部品を組合せてソフトウェアを開発するソフトウェア開発支援装置において、
前記部品は、少なくとも、表示画面上の所定の位置に表示され続ける静的部品と、ソフトウェア内の情報を表示するための表示用部品と、ソフトウェアに対して情報を入力するための入力用部品を含み、各部品に対応する内部データとして、処理手順を示す手順データと、当該部品が組み込まれるソフトウェアに依存しない非依存データと、当該部品が組み込まれるソフトウェアによって異なる依存データに区分して格納する部品格納手段と、
表示画面上で前記部品格納手段に格納された部品の一覧表示を行ない、この一覧表示に対するユーザの操作に応じて部品を選択する選択手段と、
選択された部品の内部データを前記表示画面上に表示して、この内部データ表示に対するユーザの操作に応じて当該内部データ中の依存データを編集する編集手段と、
部品の内部データの編集結果を格納する編集結果格納手段と、
部品に結合する要素を他の部品及びデータのいずれかとして、部品又は要素の一覧表示を行い、この一覧表示に対するユーザの操作に応じて、結合させる部品と要素との組合せを選択し、操作を及ぼす当該部品と操作の影響を受ける当該要素との結合関係を設定する結合手段と、
部品と要素との結合関係の設定結果を格納する設定結果格納手段と、
前記結合関係の対象となり得る前記各部品と前記各要素との組合せごとに、当該要素のデータを当該部品で処理可能なデータ形式に変換するルーチンを含み、当該部品と当該要素との結合を実現するための複数の仲介ルーチンを予め格納する仲介ルーチン格納手段と、
選択された部品とその内部データの編集結果を用いると共に、前記結合関係が設定された場合に、当該結合関係の設定結果及び特定された前記仲介ルーチンに基づいてソフトウェアの動作を実現するソースコード又はプログラムコードを生成する実現手段を有し、
前記結合手段は、選択された部品と要素との組合せに基づき、前記編集手段を用いて対応する内部データを表示し、当該部品と要素間で必要な仲介ルーチンを結合関係としてユーザが指定する手段と、当該指定された仲介ルーチンを示すデータを前記設定結果格納手段に記憶する手段とを有する
ことを特徴とするソフトウェア開発支援装置。 - 前記表示画面上で前記図形の操作を行うポインティングデバイスを有し、
前記各部品は所定の図形によって前記表示画面に表示され、
前記選択手段は、前記ポインティングデバイスによって前記図形をポイントするユーザの操作が行われた場合に前記選択を行なうように構成され、
前記結合手段は、選択された各部品の前記図形に対してユーザによる第1の所定の操作が行われた場合に前記結合関係を設定するように構成され、
選択された各部品の前記図形に対して前記ポインティングデバイスによってユーザによる第2の所定の操作が行われた場合に当該図形を前記表示画面上の当該操作内容に応じた位置に配置する配置手段を有する
ことを特徴とする請求項1記載のソフトウェア開発支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21976094A JP3697274B2 (ja) | 1994-09-14 | 1994-09-14 | ソフトウェア開発支援装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21976094A JP3697274B2 (ja) | 1994-09-14 | 1994-09-14 | ソフトウェア開発支援装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0883172A JPH0883172A (ja) | 1996-03-26 |
JP3697274B2 true JP3697274B2 (ja) | 2005-09-21 |
Family
ID=16740578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21976094A Expired - Fee Related JP3697274B2 (ja) | 1994-09-14 | 1994-09-14 | ソフトウェア開発支援装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3697274B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1139145A (ja) * | 1997-07-24 | 1999-02-12 | Casio Comput Co Ltd | プログラム構築支援装置及び記憶媒体 |
JP2000259400A (ja) * | 1999-03-09 | 2000-09-22 | Nippon Steel Corp | ソフトウェアの自動生成装置、その自動生成方法、及び記録媒体 |
JP5140950B2 (ja) * | 2006-06-20 | 2013-02-13 | 富士ゼロックス株式会社 | 操作画面生成方法、操作画面生成装置、電子機器、プログラム |
JP4808558B2 (ja) * | 2006-07-12 | 2011-11-02 | 日本電信電話株式会社 | 連携シナリオ作成支援システム及びその方法並びにプログラム |
JP7017766B1 (ja) * | 2021-06-02 | 2022-02-09 | シンメトリー・ディメンションズ・インク | 情報処理装置及びソフトウェア生成支援方法 |
-
1994
- 1994-09-14 JP JP21976094A patent/JP3697274B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0883172A (ja) | 1996-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7216334B2 (en) | Self-determining behavior node for use in creating a graphical program | |
US6715132B1 (en) | Datasheet browsing and creation with data-driven datasheet tabs within a microcontroller design tool | |
JPH09222977A (ja) | アプリケーション用ユーザ・インタフェース設計の規則に基づく方法及び装置 | |
US7120877B2 (en) | System and method for creating a graphical program including a plurality of portions to be executed sequentially | |
JPH08328795A (ja) | ツールボタンの設定のための方法及び編集装置 | |
US20060107220A1 (en) | Method and system for displaying an annotated file | |
US6070006A (en) | Object oriented software development tool for creation of new class(es) | |
JP3697274B2 (ja) | ソフトウェア開発支援装置 | |
JP3254793B2 (ja) | 対話処理システムの制御方法 | |
JPH0635987A (ja) | 回路図作成装置および回路図作成方法 | |
JP7447574B2 (ja) | サポート装置、サポートプログラムおよびサポート方法 | |
JP4563551B2 (ja) | プログラム編集装置及びプログラム編集方法 | |
JPH0954688A (ja) | Gui設計支援方法 | |
JPH07334358A (ja) | 手順編集装置 | |
JP3100463B2 (ja) | エミュレータ | |
JP2004078375A (ja) | 情報処理装置および帳票処理方法およびコンピュータが読み取り可能な記憶媒体およびプログラム | |
JP3376950B2 (ja) | 画面生成装置 | |
EP1407351A2 (en) | Control display unit page builder software tool | |
JPH0317741A (ja) | プログラム作成支援装置 | |
JP2976323B2 (ja) | グラフィックス編集装置におけるコマンド作成方式 | |
JPH09185499A (ja) | 対話的プログラム生成方法および装置 | |
Krause | Creating Custom Widgets | |
JP3135638B2 (ja) | 電子タッチパネル定義体作成処理装置 | |
JPH10269068A (ja) | グラフィカルなドキュメントを自動生成するソフトウェア開発の方法 | |
JPH07200611A (ja) | データ処理装置及びデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050204 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050308 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050428 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050704 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090708 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |