以下、図面を参照して、本発明の実施形態を詳細に説明する。
図1は、本実施形態におけるWebアプリケーション自動生成システム(以下、情報処理システムとも称する)のシステム構成を示す図である。本発明のWebアプリケーション自動生成システムは、開発用端末101、サーバ102(サーバ装置)、利用者用端末103が、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワーク105を介して相互にデータ通信可能に接続されている。
Webアプリケーションとは、企業内で用いられる業務用アプリケーションをWeb上で実施することができるアプリケーションのことであり、クライアント端末上に特別なアプリケーションをインストールすることなく業務を行うことができるため、近年広く用いられている。本発明のWebアプリケーションシステムは、このようなWebアプリケーションを指定した要件定義情報からプログラミングレスで自動生成することができるシステムである。このようなシステムを用いることにより、開発スキルが不足していたしても各企業内で容易にWeb上の業務アプリケーションを開発することができる。
図1に示す開発用端末101には、Webアプリケーション(プログラム)を自動生成する際に開発者が使用する端末でありプログラムを自動生成する開発ツールがインストールされている。この端末で予め要件定義を行い、開発ツールに読み込ませて自動生成処理を行うことでWebアプリケーション130(プログラム)が生成される。
サーバ102は、開発用端末101で生成されたWebアプリケーション(プログラム)を保持運用し、業務アプリケーションを本番環境として提供するために用いられる。そして、利用者用端末103を介してWebアプリケーション130(プログラム)へのアクセスを受け付ける。そして、Webアプリケーションを用いて生成されたデータをデータベース140内に記憶している。
利用者用端末103は、一般に本番環境において業務アプリケーションを利用するユーザが利用する端末であり、本端末を用いてサーバ102に接続することで、Web化されたアプリケーションを利用することができる。
図2は、開発用端末101、サーバ102、利用者用端末103のハードウェア構成を示す図である。
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
また、ROM202あるいは外部メモリ211(記憶手段)には、CPU201の制御プログラムであるBIOS(Basic Input / OutputSystem)やオペレーティングシステムプログラム(以下、OS)や、開発用端末101、サーバ102、利用者用端末103の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM203は、CPU201の主メモリ、ワークエリア等として機能する。
CPU201は、処理の実行に際して必要なプログラム等をRAM203にロードして、プログラムを実行することで各種動作を実現するものである。
また、入力コントローラ(入力C)205は、キーボードや不図示のマウス等のポインティングデバイス等の入力デバイス209からの入力を制御する。
ビデオコントローラ(VC)206は、ディスプレイ210等の表示器への表示を制御する。表示器の種類はCRTや、液晶ディスプレイを想定するが、これに限らない。
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフレキシブルディスク(FD)或いはPCMCIAカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ211へのアクセスを制御する。
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上での表示を可能としている。また、CPU201は、ディスプレイ210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明の開発用端末101、サーバ102、利用者用端末103が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行可能となるものである。
さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
図3は、Webアプリケーション自動生成システムの構成図および生成されたアプリケーション等の機能構成を説明するための図である。
開発用端末101は、リポジトリ定義部(Webアプリケーション定義部)1000と、ソースコード保持部121と生成処理部122を含むWebアプリケーション生成部120と、画面遷移生成部1100とを有している。
リポジトリ定義部1000は、データベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114と、Webアプリケーションを生成する際にこれらの定義ファイルのうちいずれの定義ファイルを用いるかを設定するアプリケーション定義110と、画面遷移図を描画する際に用いる画面遷移図フィルタ情報1006とを有している。
画面遷移生成部1100は、リポジトリ定義部1000のデータから画面データ1102を抽出する画面データ抽出部1101と、リポジトリ定義部1000のデータから遷移データ1104を抽出する遷移データ抽出部1103とを有している。さらに、画面遷移生成部1100は、画面データ1102と遷移データ1104とが含まれる遷移情報を部品データ1109に変換するデータ-部品変換部1108を有しており、ここで変換された部品データを用いて画面遷移描画部1110が遷移画面を生成して画面遷移キャンバスに描画(表示)させる。また、画面遷移生成部1100は、ユーザが画面遷移キャンバスに任意に外部画面を追加するための外部画面データ1106(アイコン)や付箋的にユーザが画面遷移キャンバスに添付する付箋データ1107を記憶する部品パレット部1105を有しており、ユーザが画面遷移図パレット1202に表示された外部画面アイコンや付箋アイコンのドラッグ&ドロップ等の指定を受け付けると、画面遷移描画部1110は、外部画面データ1106や付箋データ1107も画面描画キャンバスに描画する。なお、ここでいう画面遷移キャンバスとは、ディスプレイ210等に表示される遷移画面図を描画する図12の描画エリア1201を指す。
サーバ102は、開発用端末101の生成処理部122で生成されたWebアプリケーション130を保持し、利用者用端末103からの要求に応じた処理を行ったり、利用者用端末103から入力された入力データ等をデータベース140に記憶させたりする。
(Webアプリケーションの自動生成処理)
次に、図3乃至図10を用いて、開発者がWebアプリケーションを開発用端末101で自動生成する際の流れを説明する。図4乃至8は、図3のリポジトリ定義部1000に記憶されるデータベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114、アプリケーション定義110等の開発者によって予め設定した定義の一例を示したものである。
図4はWebアプリケーションがアクセスするサーバの設定を記憶したデータベース定義111である。図4に示すように、データベース定義には、サーバ102のコード401、サーバの名前402、接続URL情報403、サーバの種類404、データベース名405、アプリケーションがデータベースにアクセスする際に必要となるユーザ名406及びパスワード407が定義されている。
図5は、スキーマ情報として定義されるデータモデル定義112である。図5(a)に示すように各データモデル定義は、コード501と名前502を付与して管理されており、詳細定義もそれぞれ定義されている。例えばコード『PRODUCT』では、図5(b)に示す項目510と図5(c)に示す操作コード520が詳細定義されている。
図5(b)は、データベース上で受け付ける項目として、項目コード511、項目の名前512、NULLを許可するか否かを設定する項目513、桁数514、データタイプ515を定義している。
項目コード511はデータモデル内のデータモデル項目を一意に特定するコードである。名前512はデータモデル項目に対して、ユーザが任意に設定する名前である。ユーザがデータモデル項目を特定しやすくするために設定するものである。項目513はデータモデル項目に登録するデータに対して空を許容するかどうかを設定する項目である。桁数514はデータモデル項目に登録できるデータの桁数を設定する。データタイプ515はデータモデル項目のデータ型を設定する項目である。文字、数値、日付等、データの型を指定する。この例では、データモデル「PRODUCT」に対して、「PRODUCT_ID」から「PRODUCT_STOCK」までのデータモデル項目を定義している。ここで定義する各項目はWebアプリケーションが接続するデータベースのテーブルのカラム名と一致する。
図5(c)は、データモデルに対する操作をどのように受け付けるかを設定した操作コードであり、操作コード521、当該操作の名前522、操作タイプ523が定義されている。すなわち、データモデルが関連するテーブルに対して操作内容を定義するものである。ここでは、操作コード『REGIST』というコードを有する商品データ登録操作は、操作タイプ『INSERT』であると定義されており、つまりユーザ登録操作で入力されたデータがデータベースに挿入されるというように定義されている。
図6は、Webアプリケーションの業務フローを定義するためのビジネスプロセス定義113である。図6(a)に示すように、各ビジネスプロセス定義は、コード601と名前602を付与して管理されており、詳細なロジック定義もそれぞれ定義されている。なお、ビジネスプロセスのコード601は、後述する入出力定義からの呼び出し指定するコードとして用いられる。詳細なロジック定義としては、図6(b)に示すように、制御コード611、データモデルコード612、機能コード613、パラメータ614、作業コード615が設定されている。
制御コード611はビジネスロジックの操作タイプを示す。この例の「IN」はビジネスプロセスへの入力データの変数格納を示す。変数は作業コード615が該当する。この例の「CALL」はデータモデルコード612が保有する機能コード613の内容を呼び出すことを示す。呼び出しの際にはパラメータ614の内容を引数として渡す。
例えば図6(a)のコード『REGIST_BP』のビジネスプロセス定義では、制御コード611の設定順に以下のような処理が行われる。この例ではWeb画面の入力内容を制御コード「IN」で受け取り、受け取ったデータを作業コード「INPUT」として定義している。次に制御コード「CALL」でデータモデル「PRODUCT」に対する操作を定義している。つまり、まず(1)『IN』制御として、図5のPRODUCT(DM商品)というデータモデルコード501から、入力データを取得する。その際に、当該作業コードに『INPUT』というコードを付与する。次に、(2)『CALL』制御として、図5(c)のデータモデル定義の操作コードとして設定されており『INSERT』処理を、『IN』制御で読み込んだ入力データ(作業コード『INPUT』)に対して行うビジネスロジックが定義している。
図7は、Web画面に配置する各表示項目の入出力定義114である。ここで設定されている項目が、利用者用端末103の表示画面に表示され、本番環境時にユーザが用いる画面として用いられる。図7(a)に示すように、各入出力定義は、コード701と名前702と入出力タイプ703等を付与して管理されており、詳細な項目定義もそれぞれされている。例えば図7(a)のコード『PRODUCT_REGIST_IO』では、図7(b)に示す項目タイプ711、項目コード712、名前713、表示714、加工式715、遷移先となる次入出力716(画面情報)、データモデルコード718、データモデル項目コード719が定義されている。なお、本実施形態では入出力タイプ703として通常の入出力画面を示す「IO」とメニュー画面であることを示す「MENU」の例を示しているが、それ以外にユーザの指示を受けつけるダイアログ画面であることを示す「DIALOG」、エクスポート画面であることを示す「EXPORT」、インポート画面であることを示す「IMPORT」、マトリクス画面であることを示す「MATRIX」、帳票印刷画面であることを示す「PRINT_FILE」、携帯端末画面であることを示す「MOBILE」等様々な入出力タイプを定義することもできる。
項目コード712は入出力定義内の項目を一意に特定するコード(画面情報)である。名前713は入出力項目に対してユーザが任意に命名する名前である。入出力項目を特定しやすくする目的で設定する。表示714は定義した入出力項目を画面上に表示するかどうかの設定である。非表示とした場合は画面上には表示されず、隠しデータとして情報を保持する。次入出力716は項目タイプがアクションに設定された入出力項目について、ボタン押下された後に遷移する入出力コードを設定する。すなわち、ある画面から別の画面への遷移を定義する。次入出力パラメータ717は項目タイプがアクションに設定された入出力項目について、ボタン押下された後に画面遷移と同時に渡すパラメータ情報である。データモデルコード718は該入出力項目と関連するデータモデルコードを設定する。同様にデータモデル項目コード719は該入出力項目と関連するデータモデル項目コードを設定する。
この例では、項目タイプ「IO 入出力」と定義されている項目は入出力項目(データを入力およびデータを表示する「フィールド」)である。項目タイプ「A アクション」と定義されている項目はアクション項目(処理を呼び出し、画面を遷移する「ボタン」)である。この例における、項目コード「REGIST_ACT」はアクション項目である。アクション項目「REGIST_ACT」の加工式715には、「REGIST_BP」が定義されている。「REGIST_BP」のアクションでは、ビジネスプロセス「REGIST_BP」が呼び出されることを示す定義である。そして、次入出力先として、「PRODUCT_LIST_IO」のコードが定義されている。すなわち、アプリケーション上の商品登録画面でユーザによる「登録」アクションが行われると、「REGIST_BP」の加工式で定義されたアクションが実行された後、次入出力716として定義された「PRODUCT_LIST_IO」に画面遷移することが定義されている。すなわち、「PRODUCT_LIST_IO」が遷移先の表示画面情報となる。
さらに図7(a)のコード『MAIN_MANU』では、図7(c)に示すように、項目コード712「TO_PRODUCT_ID」の次入出力716には「PRODUCT_REGIST_IO」が対応するように定義されており、項目コード712「TO_PRODUCT_NAME」の次入出力716には「PROCUCT_LIST_IO」が対応するように定義されている。すなわち、アプリケーション上のメインメニュー画面でユーザによる「商品登録ページへ」アクションが行われると、「PRODUCT_REGIST_IO」に画面遷移し、メインメニュー画面でユーザによる「商品一覧ページへ」アクションが行われると、「PRODUCT_LIST_IO」に画面遷移することが定義されている。
図8(a)は、Webアプリケーションを生成する際に使用する入出力定義を規定するアプリケーション定義110を示す図である。各アプリケーション定義110、コード801とアプリケーション名802とが設定されており、さらに初期画面として用いられる入出力定義を初期入出力コード803として定義することができる。すなわち、初期入出力コード803として特定された入出力定義が遷移画面図のトップ階層として特定される画面となる。コード801は、リポジトリ定義部1000に保存される定義ファイル全体(プロジェクトとも称する)の中でアプリケーションを一意に特定することができるコードである。アプリケーション名802は、アプリケーションに対して、ユーザが任意に設定することができる名前である。
さらに、アプリケーション定義110は、コードごとに図8(b)の所属定義設定画面810に示すように所属する入出力定義が設定されている。所属定義設定画面810には、入出力一覧811と所属入出力一覧812と、画面遷移図を表示させるボタン813と、追加ボタン814、削除ボタン815が表示される。
入出力一覧811にはプロジェクトに保存される入出力定義1004の入出力コード全てが表示される。ユーザは任意の入出力コードを所望の数だけ選択し、追加ボタン814を押下することにより、当該アプリケーションコードに所属入出力として所属させることができる。追加処理が行われると、当該入出力コードは所属入出力一覧812に表示される。また、ユーザは所属入出力一覧812に表示されている入出力コードを選択し削除ボタン815を押下することにより、所属を外すこともできる。
図9は、図4乃至8に示すようなリポジトリ定義部1000に記憶されているデータベース定義111、データモデル定義112、ビジネスプロセス定義113、入出力定義114、アプリケーション定義110等の要件定義がされた後、Webアプリケーションを自動生成する際の流れを説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。
まず、S901では、開発用端末101のCPU201が、ユーザからWebアプリケーションを生成するアプリケーション定義110の指定を受け付ける(受付手段)。
次に、S902では、開発用端末101のCPU201が、データベース定義111をリポジトリ定義部1000から読み込む。S903では、データモデル定義112をリポジトリ定義部1000から読み込む。S904では、ビジネスプロセス定義113をリポジトリ定義部1000から読み込む。S905では、入出力定義114をリポジトリ定義部1000から読み込む。
このような定義はXML形式で記述されているため、S906では、開発用端末101のCPU201が、XMLファイルを構造解析し、必要な定義内容をメモリ上にオブジェクトデータとして保存する。
次に、S907では、生成処理は開発用端末101のCPU201が生成処理部122として機能し、予め設定されているソースコードテンプレートを、ソースコード保持部121から読み込み、S908でメモリ上に保存した定義データをソースコードテンプレートに埋め込んだ、ソースコードファイル、すなわちWebアプリケーションを生成する。
以上のように、予め定義した要件定義とソースコードを用いることにより、Webアプリケーションが自動生成される。開発者は、このように生成したWebアプリケーションを、サーバ102に保存して業務アプリケーションの開発作業を終了する。
(画面遷移図の描画処理)
<第一の実施形態>
次に、図3、図10乃至図19を用いて、Webアプリケーションの開発者等が予め定義している要件定義による画面遷移状態を確認するために行う画面遷移図の描画処理の流れを説明する。
上述したようなWebアプリケーションなどで生成される業務アプリケーションでは、複数の画面を用意し、画面から別の画面に遷移するように設計されるが、このようなアプリケーション設計途中やアプリケーション改修時には、全体の業務の流れを把握するために、画面の遷移を把握できるような画面遷移図の作成が求められることが多いが、このような画面遷移図を手作業で作成することは極めて煩雑であるため簡便に画面遷移図が作成できる仕組みが求められている。
本実施形態では、Webアプリケーションを自動生成する際に用いられる入出力定義を用いることで、自動で画面遷移図を作成する方法を説明する。
図10は、Webアプリケーション自動生成する際に用いられる開発用端末101で行われる画面遷移図の生成処理を説明するためのフローチャートである。このような画面遷移図の生成処理が行われるとリポジトリ定義部1000に現在定義されている入出力定義を用いて画面遷移図の描画処理が行われる。
このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。
まず、S1001では、開発用端末101のCPU201が、ユーザによってアプリケーションを指定した状態で図8(b)に示すような画面遷移図を表示させるボタン813を押下されると、描画指示がされたとして受け付ける。
S1002では、開発用端末101のCPU201が、リポジトリ定義部1000に定義されている全入出力定義を読み込み、以下のS1003からS1006について全入出力定義分ループさせる。
S1003では、開発用端末101のCPU201が、入出力定義は、S1001でユーザによって指定されたアプリケーションに所属するかどうかを判断する。具体的には、図8に示すようなアプリケーションに対応する所属入出力一覧812を参照することで所属するかどうかの判断を行う。S1003で所属しないアプリケーションであると判断された場合には、以降の処理は行わず次の入出力定義のループに移行する。S1003で所属すると判断された場合には、S1004に移行し、開発用端末101のCPU201が画面データ抽出部1101として機能し、入出力定義から各項目のコード701と名前702を画面データ1102として抽出し、メモリへ保存する。なお、ここで抽出する画面データはコード701と名前702に限られず、画面がユーザに識別できるような画面遷移図に表示したい情報であればそれ以外のものもあって良い。
次に、S1005では、入出力定義に所属する全アクション定義を抽出し、以下のS1006の処理を全アクション分ループさせる。具体的には、図7(b)に示すような項目タイプ711に『A アクション』と設定されているものを指す。例えば入出力定義『PRODUCT_REGIST_IO』の場合には、項目コード『REGIST_ACT』と『B』がアクション定義として抽出される。
S1006では、開発用端末101のCPU201が遷移データ抽出部1103として機能し、アクション定義のうち、アクションの入出力項目の項目コード712、名前713、次入出力716および次入出力パラメータ717の情報を遷移に関する遷移データ1104として抽出し、メモリへ格納する。遷移データとしてはこれらのデータに限らず、遷移するための条件(不図示)ならびに遷移できる権限(不図示)も含めてもよい。遷移データの設定は例えば、図11に示すような画面遷移図の表示設定画面1150を用いて行うことができる。
全ての入出力定義分のループが終了するとS1007に移行し、開発用端末101のCPU201がデータ‐部品変換部1108として機能し、メモリからS1004で保存された画面データ1102とS1006で保存された遷移データ1104(遷移情報)とを読出し、データを部品に変換する。具体的には図12を用いて説明するようなオブジェクトに変換する。
次に、S1008では、開発用端末101のCPU201が、描画元画面(遷移元画面)と遷移先画面とが同じ遷移データがあるかを判断する。ここで同じ遷移データが無いと判断された場合には、S1011に進み、ディスプレイ210等に表示される描画エリア1201に画面遷移図の描画処理を行う。
図12にこのような処理により描画される画面遷移図の一例を示す。ここで示す一例は、図7に示すような例を用いて描画処理を行った場合を用いた場合の画面遷移図である。描画エリア1201には、画面データとして抽出されたコード701の『MAINMENU_IO』と名前702の『メインメニュー』とが描画された画面のオブジェクト1203と、画面データとして抽出されたコード701の『PRODUCT_REGIST_IO』と名前702の『商品登録』とが描画された画面のオブジェクト1205と、画面データとして抽出されたコード701の『PRODUCT_LIST_IO』と名前702の『商品一覧』とが描画された画面のオブジェクト1207とが描画される。そして、遷移データとして抽出された遷移情報が矢印として示される。具体的には、図7(c)に示すように『MAIN MANU』の入出力定義で『A アクション』である「商品登録ページへ」という名前713のアクションが行われると『PROCUT REGIST_IO』に画面遷移し、『A アクション』である「商品一覧ページへ」という名前713のアクションが行われると『PROCUT_LIST_IO』に画面遷移するということが定義されていることから、オブジェクト1203からオブジェクト1205とオブジェクト1207に対して矢印が伸びるように表示される。また、矢印の付近には名前713がオブジェクト1204とオブジェクト1208として表示される。すなわちアクションの名前713がオブジェクトとして表示される(表示項目)。
なお、本実施形態ではオブジェクトを矢印でつないだ例を用いて説明するが、矢印に限られず直線、曲線、点線などでつながりがわかるように示してもよい。さらに、本実施形態では、画面のオブジェクトとして全て同じ矩形の枠で示したが、図7(a)に示す入出力タイプ703の種類ごとにオブジェクトの表示方法を異ならせることもできる。具体的には、矩形や楕円形のように形状を異ならせたり、色分けを行うことにより表示方法を異ならせることができる。このように入出力タイプに応じて表示方法を分けることにより、画面遷移図上の画面タイプが識別しやすくなる。
また、図7(b)に示すように『PRODUCT_REGIST_IO』の入出力定義で『A アクション』である「登録」という名前713のアクションが行われると『PRODUCT_LIST_IO』に画面遷移することが定義されていることから、オブジェクト1205からオブジェクト1207に向けて伸びる矢印が表示されるとともに、登録のオブジェクト1206が表示される。なお、『PRODUCT_LIST_IO』の入出力定義では、『BACK』が定義されているが、これは次入出力が規定されてはいないものの前の画面に戻ることを規定する定義である。このような画面が戻る定義がされている場合には、当該対応オブジェクト1205に接続する全ての画面データオブジェクトに対して矢印が出るように描画する。但し、当該画面に対して他の画面からも遷移先の指定を受けている場合には、複数の矢印が描画されると視認性が低下するため、共通の線とし、遷移先の指定を受けた場合の矢印とは異なる形状の矢印で描画するようなオブジェクト1204とする。
以上のように複数の画面を用いたアプリケーションを生成する際に用いる入出力定義から遷移画面を生成するために必要な情報を取得し、遷移元画面を示すオブジェクトと遷移先画面を示すオブジェクトとの繋がりがわかる一覧画面である遷移画面を生成することにより、画面遷移の状態を視覚的に容易にユーザが認識できるようになる。
ところで、描画エリア1201の付近には、画面遷移図パレット1202が設けられており、図13に示すようにアプリケーションに関係のない外部システム画面のオブジェクト1212やそこに遷移する流れを示すようなオブジェクト1213、アノテーションとして用いるような付箋のオブジェクト1222を作成することもできる。
図14を用いて、外部システム画面のオブジェクトを生成する際の流れを説明する。ユーザが画面遷移図パレット1202から外部システム画面1211の項目を描画エリア1201に対してドラッグ&ドロップすると、図14に示すような外部システム画面の新規作成画面1231が表示される。ユーザがオブジェクトとして表示させたい入力コード1232と名前1233を入力してOKボタン1234を押下すると、このような名前が反映された図13に示すオブジェクト1212が生成される。さらに、ユーザが画面遷移図パレット1202から直線1251の項目を指定した後に、オブジェクト1203とオブジェクト1212とを順に指定して矢印で結び、名前を入力すると、矢印のそばに名前の図13に示すようなオブジェクト1213が表示される。また、ユーザが画面遷移図パレット1202から付箋1212の項目を描画エリア1201に対してドラッグ&ドロップすると、付箋のオブジェクト1222が描画エリア1201に表示される。ユーザは付箋のオブジェクト1222に対しては自由に文字入力を行うことができる。
また、描画エリア1201に生成できるアクションのオブジェクトは、直線に限られず直角や重なり回避のオブジェクトを選択することもできる。
次に、図15乃至図18を用いて、図7に示すような入出力定義で定義されていない項目を描画エリア1201上(一覧画面上)に追加することで、入出力定義に新たな項目を作成する流れを説明する。ユーザが画面遷移図パレット1202から入出力領域1240の入出力項目1241やメニュー項目1245を描画エリア1201に対してドラッグ&ドロップすると図15に示すような入出力定義のオブジェクト1242と入出力定義の新規作成画面1243が表示される。
ユーザがオブジェクトとして表示させたい入出力コード1242と名前1243を入力してOKボタン1244を押下すると、このような名前がオブジェクト1242に反映される。さらに、ユーザが画面遷移図パレット1202から直線1251の項目を指定した後に、オブジェクト1203とオブジェクト1242とを順につなぐと、図16に示すようなアクション定義の新規作成画面1251が表示される。ユーザがオブジェクトとして設定したいアクションコード1252と名前1253を入力しOKボタン1254を押下すると、図17に示すようなオブジェクト1203からオブジェクト1242に向かう矢印と、名前1253として入力した「顧客登録ページへ」というオブジェクト1255が表示される。
このような図15乃至図17を用いて説明した一連の流れが行われると、リポジトリ定義部1000に記憶されている入出力定義114に定義の追加が行われる。例えば、ユーザが入出力項目1241をドラッグ&ドロップし、「CUSTOMER_REG_IO」という入出力コード1242と「顧客登録」という名前1243をつけた場合には、「CUSTOMER_REG」の画面が新たに1つ生成されたことになるため、図7(a)に示す入出力定義に1つ追加され、図18(a)に示すような入出力定義となる。なお、この例では入出力項目1241をドラッグ&ドロップしたため入出力タイプ703が「IO」となるが、メニュー項目1245をドラッグ&ドロップした場合には、入出力タイプ703は「MENU」となる。
さらに、直線1251の項目を選択した状態で「MAIN_MANU」と「CUSTOMER_REG_IO」と直線でつないだ場合には、「MAIN_MANU」画面からの遷移が行われることになるため、図7(c)に示す「MAIN_MANU」の入出力定義の項目が1つ追加される。具体的には、入出力コード1242と名前1243として入力した項目(図15)とアクションコード1252と名前1253として入力した項目(図16)が、図18(b)に示す入出力定義の『TO_CUSTOMER_REG』の項目コード712、名前713、次入出力716として追加される。
さらに、図8(b)の所属定義設定画面810に設定される所属入出力一覧812にも一項目追加され、図18(c)に示すように、『CUSTOMER_REG_IO顧客登録』という項目820が追加される。
このように、描画開発者は開発中に画面遷移図で画面遷移の状態を確認しながら、新たな画面を容易に追加させていくことができる。
図10に戻りフローチャートの説明を続ける。S1008で描画元画面と遷移先画面とが同じ遷移データがあると判断された場合には(遷移元の画面と遷移先の画面とが同じ遷移データを複数取得された場合には)、S1009に対し開発用端末101のCPU201が、同じ遷移データをグループ化し、S1010の処理をグループ分ループする。
S1010では、開発用端末101のCPU201が、遷移矢印が重ならないように、矢印を描画する位置を設定する。具体的には、等間隔で離れるような位置を設定する。このように設定しておくことで、描画元画面と遷移先画面とが同じ遷移データがあったとしても、S1011で画面遷移図の描画処理をする際に、図19に示すように矢印が重なることなく描画させることができる。図19は、商品登録のオブジェクト1205と商品一覧のオブジェクト1207とが遷移先画面(次入出力716)と指定されているアクションが「更新1901」「登録1902」「削除1903」の3つある場合を示している図である。矢印は互いに間隔をあけて配置されることで視認性が低下しないように配置される。
<第二の実施形態>
第一の実施形態ではWebアプリケーションに用いられる全ての入出力定義を用いて画面遷移図を作成する例を用いて説明したが、第二の実施形態ではWebアプリケーションに用いられる入出力定義の一部を用いて画面遷移図を作成する例を説明する。なお、本実施形態では、第一の実施形態と同様の部分の説明は省略し、第二の実施形態の特徴部を中心に説明を行う。
図20(a)は、所属入出力一覧812に9つの入出力定義が登録されている例を示したものであるが、このように多数の画面を用いたWebアプリケーションを、第一の実施形態と同様に全ての入出力定義を用いた画面遷移図を作成してしまうと、図20(b)の描画エリア1201のように、多数のオブジェクトが配置されてしまい、かえって視認性が低下してしまうことが懸念される。
そのため、本実施形態においては、初期入出力コードで設定された初期画面から予め設定した階層分描画する階層描画モードや、遷移数が所定数以上の画面を中心として描画させる遷移数描画モードを備えている。このようにユーザが所望の描画モードを用いて描画できるようにすることで用途に応じた画面遷移図の視認性を低下させることなく生成することができる。
このような階層描画モードや遷移数描画モードは、図21に示す所属定義設定画面810に設けられた階層描画ボタン821と遷移数描画ボタン822を用いて描画指示することができる。
まず、図20乃至図24を用いて階層描画モードについて説明を行う。
図20(b)に示す例では、メインメニュー画面のオブジェクト2001から商品カテゴリ編集画面のオブジェクト2006までの9つの画面が表示されているが、「メインメニュー」→「商品登録」→「商品カテゴリ一覧」→「商品カテゴリ編集」までの4段階の遷移がある。メインメニューは階層レベル1、商品カテゴリ編集は階層レベル4と呼ぶ。ユーザは画面遷移図の可視性を高めるため、ユーザが表示させたい階層となるように階層レベルを絞って表示することができる。
図22は、図21のフィルタプロパティ823を押下することで表示されるフィルタプロパティ設定画面2201である。ユーザは、階層レベルフィルタ値2202を入力し設定ボタン2204を押下することで、ユーザが表示させたい階層を画面遷移図フィルタ情報1006として設定する(メモリに記憶させておく)ことができる。具体的には階層レベルを『3』と設定することにより、3以下の階層レベルの入出力画面のオブジェクトが描画されることになる。
図21の所属入出力設定画面810の所属入出力一覧812の入力コードの横に表示される数字824がメインメニュー画面(初期入出力コードで設定された初期画面)からの階層数を示したものである。このような階層は、メモリに記憶された入出力定義から算出される。3以下の階層レベルの入出力画面のオブジェクトが描画されるように設定されている場合には、数字824が3以下のコードが描画されることになる。
図23は、階層描画を行う際の流れを説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。
まず、S2301では、開発用端末101のCPU201が、ユーザによってアプリケーションを指定した状態で図21に示すような階層描画ボタン821を押下されると、階層を指定された描画指示がされたとして受け付ける。
S2302では、開発用端末101のCPU201が、リポジトリ定義部1000に定義されている全入出力定義を読み込み、以下のS2303からS2306について全入出力定義分ループさせる。
S2303では、開発用端末101のCPU201が、入出力定義は、S2301でユーザによって指定されたアプリケーションに所属するかどうかを判断する。具体的には、図21に示すようなアプリケーションに対応する所属入出力一覧812を参照することで所属するかどうかの判断を行う。S2303で所属しないアプリケーションであると判断された場合には、以降の処理は行わず次の入出力定義のループに移行する。S2303で所属すると判断された場合には、S2304に移行し、開発用端末101のCPU201が画面データ抽出部1101として機能し、入出力定義から各項目のコード701と名前702を画面データ1102として抽出し、メモリへ保存する。
次に、S2305では、入出力定義に所属する全アクション定義を抽出し、以下のS2306の処理を全アクション分ループさせる。
S2306では、開発用端末101のCPU201が遷移データ抽出部1103として機能し、アクション定義のうち、アクションの入出力項目の項目コード712、名前713、次入出力716および次入出力パラメータ717の情報を遷移に関する遷移データ1104として抽出し、メモリへ格納する。
全ての入出力定義分のループが終了するとS2307に移行し、開発用端末101のCPU201がデータ‐部品変換部1108として機能し、メモリからS2304で保存された画面データ1102(表示項目)とS2306で保存された遷移データ1104(遷移情報)とを読出す。
S2308では、開発用端末101のCPU201は、メモリから読み出された画面データと関連する遷移データとから各画面に対する階層レベルを計算する(階層特定手段)。
S2309では、開発用端末101のCPU201は、図22のフィルタプロパティ設定画面2201等によってユーザによって設定された階層数フィルタ値をメモリ(階層数記憶手段)から取得する。
S2310では、開発用端末101のCPU201は、S2307で読みだされた画面データと遷移データとからS2309で取得した階層数フィルタ値(階層レベル)に対応する画面データと遷移データを抽出する(階層決定手段)。
S2311では、開発用端末101のCPU201は、データを部品(オブジェクト)に変換する。
S2312乃至S2315の説明は、第一の実施形態のS1008乃至S1011と同様であるため説明を省略する。
このようにして描画された画面遷移図を図24に示す。階層レベルが4以上の入出力定義の画面オブジェクトは描画されず、描画レベル3までの入出力定義である画面オブジェクトが描画されている。初期入出力コードで設定された初期画面に近い画面を中心に見たい場合には、このように描画設定することで、視認性良く画面遷移状態を確認することができる。なお、本実施形態においては初期入出力コードで設定された初期画面を主画面、すなわち階層レベル1としたが、図22に示すようなフィルタプロパティ設定画面2201において主画面を適宜設定できるようにし、設定された階層レベル画面を中心に階層描画を行えるようにしてもよい。
次に、図20、図21、図25、図26を用いて遷移数描画モードについて説明を行う。
図20(b)に示す例では、メインメニュー画面のオブジェクト2001から商品カテゴリ編集画面のオブジェクト2006までの9つの画面が表示されているが、画面毎に遷移矢印の数が異なっていることがわかる。例えば、商品登録画面2003はメインメニュー画面のオブジェクト2001からの遷移矢印、商品一覧画面のオブジェクト2004への遷移矢印、商品カテゴリ一覧画面のオブジェクト2005への遷移矢印の3本が関連している。一方、商品カテゴリ一覧画面2005の遷移矢印は5本である。このように画面に関連する(画面に接続する)遷移矢印の数を遷移数と呼ぶ。ユーザは画面遷移図の可視性を高めるため、ユーザが表示させたい遷移数の多い画面を中心として画面遷移図を描画させることができる。
図22は、図21のフィルタプロパティ823を押下することで表示されるフィルタプロパティ設定画面2201である。ユーザは、遷移数フィルタ値2203を入力し設定ボタン2204を押下することで、ユーザが表示させたい遷移数を設定することができる。具体的には遷移数フィルタ値を『6』と設定することにより画面遷移図フィルタ情報1106として記憶される。そしてこのフィルタ値を用いて描画処理がなされることで、6以上の遷移矢印が接続する画面を中心に画面遷移図が描画されることになる。
図21の所属入出力設定画面810の所属入出力一覧812の入力コードの横に表示される数字825が入出力画面に接続する遷移矢印の数である。すなわち他の画面から遷移してくるアクションの数と他の画面へと遷移するアクションの数との合計を示したものである。このような遷移数は、メモリに記憶された入出力定義のアクションから算出される。6以上の遷移数の入出力画面のオブジェクトの画面を中心として描画されるように設定されている場合には、数字825が6以上の画面を中心に描画されることになる。なお、6以上の画面が複数ある場合には、複数同時に描画してもよいし、いずれかを選択できるようにしてもよい。
図25は、遷移数描画を行う際の流れを説明するためのフローチャートである。このような処理は、開発用端末101のCPU201が記憶されている制御プログラムを読み出して実行することにより実現される。
まず、S2501では、開発用端末101のCPU201が、ユーザによってアプリケーションを指定した状態で図21に示すような遷移数描画ボタン822を押下されると、遷移数を指定した描画指示がされたとして受け付ける。
S2502では、開発用端末101のCPU201が、リポジトリ定義部1000に定義されている全入出力定義を読み込み、以下のS2503からS2506について全入出力定義分ループさせる。
S2503では、開発用端末101のCPU201が、入出力定義は、S2501でユーザによって指定されたアプリケーションに所属するかどうかを判断する。具体的には、図21に示すようなアプリケーションに対応する所属入出力一覧812を参照することで所属するかどうかの判断を行う。S2503で所属しないアプリケーションであると判断された場合には、以降の処理は行わず次の入出力定義のループに移行する。S2503で所属すると判断された場合には、S2504に移行し、開発用端末101のCPU201が画面データ抽出部1101として機能し、入出力定義から各項目のコード701と名前702を画面データ1102として抽出し、メモリへ保存する。
次に、S2505では、入出力定義に所属する全アクション定義を抽出し、以下のS2506の処理を全アクション分ループさせる。
S2506では、開発用端末101のCPU201が遷移データ抽出部1103として機能し、アクション定義のうち、アクションの入出力項目の項目コード712、名前713、次入出力716および次入出力パラメータ717の情報を遷移に関する遷移データ1104として抽出し、メモリへ格納する。
全ての入出力定義分のループが終了するとS2507に移行し、開発用端末101のCPU201がデータ‐部品変換部1108として機能し、メモリからS2504で保存された画面データ1102とS2506で保存された遷移データ1104とを読出す。
S2508では、開発用端末101のCPU201は、メモリから読み出された画面データと関連する遷移データとから各画面に対する遷移数の値を計算する(遷移数特定手段)。
S2509では、開発用端末101のCPU201が、図22のフィルタプロパティ設定画面2201等によってユーザによって設定された遷移数フィルタ値2203をメモリ(遷移数記憶手段)から取得する。
S2510では、開発用端末101のCPU201が、S2507で読みだされた画面データと遷移データとからS2509で取得した遷移数フィルタ値2203に対応する画面データと遷移データを抽出する(遷移数決定手段)。
S2511では、開発用端末101のCPU201は、データを部品(オブジェクト)に変換する。
S2512乃至S2515の説明は、第一の実施形態のS1008乃至S1011と同様であるため説明を省略する。
このようにして描画された画面遷移図を図26に示す。遷移数が6以上の画面オブジェクトを中心に描画されている。遷移数6未満の画面のオブジェクトは、自身のオブジェクトは表示されるものの、その先の遷移矢印や画面は表示されない。所望の遷移数以上の画面を中心に見たい場合には、このように描画せっていすることで視認性良く画面遷移状態を確認することができる。なお、本実施形態では、設定値以上の遷移矢印が接続する画面を描画する例を用いて説明したが設定値以下(設定値未満)の遷移矢印が接続する画面を描画できるようにしてもよい。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置の情報処理装置が前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理を情報処理装置で実現する(実行可能とする)ために、前記情報処理装置にインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理を情報処理装置で実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行して情報処理装置にインストールさせて実現することも可能である。
また、情報処理装置が、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、情報処理装置上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、情報処理装置に挿入された機能拡張ボードや情報処理装置に接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。