以下、図面を参照して本発明の実施形態を詳細に説明する。
図1は、本発明に係る情報処理装置(開発者がWebアプリケーション構築のために操作する情報処理装置)、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム(情報処理システム)構成図である。
情報処理装置101は、開発者の操作に従って画面レイアウト及びデータベース操作指示などを定義する。情報処理装置101は、プログラム生成、アプリケーション生成(構築)を行う。
なお、本実施形態においては、情報処理装置101で構築するアプリケーションはWebアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションやその他の装置に組み込まれるソフトウェア等、Webアプリケーション以外の形式のアプリケーションであってもよい。
また、本実施形態においては、情報処理装置101はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ102やクラウド環境等でアプリケーションが動作する様にアプリケーション環境を構築する等であってもよい。
アプリケーションサーバ102は、情報処理装置101によって構築されたアプリケーションを実行する。また、データベースサーバ103と接続して動作することが可能である。
データベースサーバ103は、構築されたアプリケーションが利用するデータベースであり、また本発明ではアプリケーション構築時やアプリケーションのテスト実行時に動作確認等のために利用するとしてもよい。例えば、開発者が利用するためにデータベースサーバ103は、情報処理装置101やアプリケーションサーバ102と同一の装置として構成されていてもよいし、LANなどのネットワーク105内に配置されてもよい。
アプリケーションクライアント104(アプリケーションのエンドユーザが使用する情報処理装置)は、アプリケーションサーバ102にアクセスし、アプリケーションを動作させる。なお、このアプリケーションクライアント104は、ノートPC・携帯電話・スマートフォン・タブレットなどの携帯端末であってもよい。
また、情報処理装置101、アプリケーションサーバ102、データベースサーバ103及びアプリケーションクライアント104の何れかを、クラウドなどのインターネット環境に配置するとしてもよい。
図2は、本発明に係わる情報処理装置101、アプリケーションサーバ102、データベースサーバ103、アプリケーションクライアント104、アプリケーションサーバ102、Webサーバ106として適用可能な各ハードウェア構成の一例を示すブロック図である。
図2において、CPU201は、システムバス204に接続される各デバイスを統括的に制御する。
また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるオペレーティングシステム(OS)や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
RAM202は、CPU201の主メモリ、ワークエリア、一時待避領域等として機能する。
入力コントローラ205は、入力部209からの入力を制御する。この入力部209としては、情報処理装置では、キーボード、マウス等のポインティングデバイスが挙げられる。
出力コントローラ206は、出力部210の表示を制御する。この出力部210としては、例えば、CRTや液晶ディスプレイ等が挙げられる。
外部メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ211へのアクセスを制御する。加えて、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ211としては、ハードディスク(HD)やフレキシブルディスク(FD)、PCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)、スマートメディア等が挙げられる。
通信I/Fコントローラ208は、ネットワークを介して外部機器との通信制御処理を実行する。
本発明を実現するためのプログラム212は外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。
図3は、本発明の実施形態における情報処理装置101の機能構成を示すブロック図の一例である。
情報処理装置101は、以下の機能部を備える。なお情報処理装置101は、Webシステムで用いるアプリケーションクライアント(クライアント装置)で表示する画面に対応する入出力定義に従って、Webシステムで実行するプログラムを生成する情報処理装置と言い換えることが可能である。
管理部301は、アプリケーションの動作ロジックを定義したロジック情報を管理する。また、管理部301は、ロジック情報それぞれに対応するフローチャート部品をさらに管理する。
生成部302は、管理部301で管理するロジック情報を用いてフローチャートを生成する。また、生成部302は、受付部304で入力を受け付けたテキストを、フローチャートの対応するロジック情報に表示したフローチャートを生成する。
また、生成部302は、ロジック情報それぞれに対応するフローチャート部品を用いて、フローチャートを生成する。
また、生成部302は、ロジック情報に誤りがある場合に、フローチャートを生成しない。
出力部303(出力部210)は、生成部302で生成したフローチャートを出力する。また、出力部303は、生成部302で生成したフローチャートを含むドキュメントを出力する。
受付部304は、ロジック情報それぞれに対応するテキストの入力を受け付ける。
通知部305は、ロジック情報に誤りがある場合に、誤りがあることによりフローチャートが生成できないことをユーザに認識させるべく通知する。
なお、クラウド環境でWebアプリケーションの設定を行う場合には、アプリケーションサーバ102としての機能とすることは言うまでもない。
以上で図3の説明を終了し、次に図4について説明する。
図4は、情報処理装置101の構成図である。
情報処理装置101は、Webアプリケーションを開発する開発者が定義した定義ファイルをもとにWebアプリケーションを生成するWebアプリケーション生成部410とビジネスプロセス仕様ドキュメントを生成するビジネスプロセス仕様ドキュメント生成部414を含む。
情報処理装置101は、Webアプリケーションを開発する開発者により設定されたリポジトリ定義部401の各定義を用いて、Webアプリケーション生成部410によりWebアプリケーション428を生成する。また、情報処理装置101は、リポジトリ定義部401の各定義を用いて、ビジネスプロセス仕様ドキュメント生成部414によりビジネスプロセス仕様ドキュメントを生成する。
リポジトリ定義部401には、アプリケーション定義402、入出力定義403、データモデル定義404、ビジネスプロセス定義405、ロジック自然言語定義406、データベース定義407、ドキュメント用定義408、ドキュメントフィルタ定義409が記憶されている。
これら402〜409の定義は、Webアプリケーション開発ツールを介して、開発者によって入力設定、または配置される。
なお、入出力定義403は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたWebアプリケーションの画面を介して当該Webアプリケーションのユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたWebアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
次に、Webアプリケーション生成部410について説明する。Webアプリケーション生成用のリポジトリ定義解析部415を用いてリポジトリ定義部401に記憶されている各定義を解析し、Webアプリケーションコード生成部412及びソースコードコンパイル部413を介し、コンパイル済Java(登録商標)コード429及びHTML/JSP/JavaScript(登録商標)430を含むWebアプリケーション428を生成する。
次に、ビジネスプロセス仕様ドキュメント生成部414について説明する。ビジネスプロセス仕様ドキュメント生成部は、ビジネスプロセス仕様ドキュメント生成用のリポジトリ定義解析部415を用いてリポジトリ定義部401に記憶されている各定義を解析し、ビジネスプロセス一覧生成部416、ビジネスプロセス仕様生成部417、ロジック一覧生成部418(本発明における、アプリケーションの動作ロジックを定義したロジック情報を管理する管理手段の一例)、フローチャート生成部419を用いて、HTML/CSS/JavaScript(登録商標)434を含むビジネスプロセス仕様ドキュメント433を生成する。
その際、レイアウト構成部421は、出力フィルタ管理部422を介してドキュメントエリア設定管理部423にて管理されているエリア出力設定424、エリアサイズ設定425、及びフローチャートサイズ設定426における設定を、ビジネスプロセス一覧生成部416、ビジネスプロセス仕様生成部417、ロジック一覧生成部418、フローチャート生成部419が生成するビジネスプロセス仕様ドキュメント433のレイアウトとして用いる。以上で図4の説明を終了し、次に図5について説明する。
図5は、Webアプリケーション及びドキュメント生成のフローチャート並びにドキュメント生成のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のCPU201が実行する。
情報処理装置101は、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理する。なお、本実施形態においては、ディレクトリ構造を用いて、リポジトリ定義部401の各定義をファイルとして管理するとしたが、これに限定するものではなく、例えば、データベースを用いてリポジトリ定義部401の各定義を管理してもよいし、クラウドなどネットワーク上の記憶装置を用いて管理する等としてもよい。
本実施形態では、Webアプリケーションの生成の実行を指示する前に、情報処理装置101は、Webアプリケーションの自動生成のための定義の入力を受ける。具体的には、開発するWebアプリケーション(プロジェクト)として、アプリケーション設定でアプリケーションのコードや名前、アプリケーションタイプなどを設定する。
このWebアプリケーション(プロジェクト)に対して、データモデル定義、入出力定義、ビジネスプロセス定義を設定する。これらの定義は、Webアプリケーション自動生成する設定画面でユーザが任意に設定するものとするが、予め生成された定義を読み込む構成であってもよい。
ここで、図5の各ステップについて説明する。
Webアプリケーション及びドキュメント生成のフローチャートについて説明する。
ステップS500において、情報処理装置101は、開発者からのアプリケーション生成の実行指示を受け付けると、アプリケーション設定のダイアログを表示する。ここで、ビジネスプロセス仕様ドキュメントに関する設定の入力を受け付ける。アプリケーション設定のダイアログの一例を示す図が、図17の1700である。1701で「ドキュメントを生成する」にチェックがされると本実施形態におけるビジネスプロセス仕様ドキュメントの生成がされ、リンクが画面に埋め込まれる。
ステップS501において、情報処理装置101は、リポジトリ定義部401からアプリケーション定義402を取得する。
ステップS502において、情報処理装置101は、リポジトリ定義部401からデータモデル定義404を取得する。データモデル定義404は、リポジトリ定義部401として登録されている。データモデル定義404は、データモデル設定画面(不図示)でデータベース上の項目をマッピングして登録されるものである。一般的には、1テーブル1データモデルが作成される。データモデル定義の作成はWebアプリケーションの開発において既知の技術であるため説明を省略する。
ステップS503において、情報処理装置101は、リポジトリ定義部401から入出力定義403を取得する。入出力定義についても、Webアプリケーションの開発において既知の技術であるため説明を省略する。
ステップS504において、情報処理装置101は、リポジトリ定義部401からビジネスプロセス定義405を取得する。ビジネスプロセス定義405は、リポジトリ定義部401として登録されている。ビジネスプロセス定義405についても事前に設定されているものである。また、ビジネスプロセス定義405は、受け付けたデータの処理の流れを定義したものである。例えば、入力したデータの重複をチェックして、登録するといったロジックを定義したものである。
ここで、図12、図13を用いて、ビジネスプロセス定義405について説明しておく。上述したようにビジネスプロセス定義405の設定自体は、アプリケーションの生成を実行する前に、開発者などにより事前に行われる。
ビジネスプロセス定義画面1200(図12)は、Webアプリケーションの開発者によるビジネスプロセス定義405の設定操作を受け付ける画面である。また、ビジネスプロセス定義画面1200を用いて設定されるビジネスプロセス定義405は、ビジネスプロセス仕様ドキュメントの基となる情報である。
ロジック一覧定義1201は、Webアプリケーションの開発者が情報処理装置101により自動で生成されるロジックとは別にロジックを定義する場合に用いられるものである。
また、ロジック一覧定義1201のロジックをマウスの右クリック等により選択することで表示されるメニューから、当該ロジックの有効/無効を切り替え可能である。無効に切り替えると、無効なロジック定義1202に示す通り、「制御コード」の列の左の列に無効であることを示す印1203が表示される。
ロジック自然言語定義画面1301は、ロジック一覧定義に含まれるロジックを選択(ダブルクリック等)することにより呼び出される画面である。1303には、選択されたロジックの制御コードが表示され、当該制御コードをフローチャートで出力する際に表示するテキストをフローチャートテキスト1304にユーザが入力することで、当該制御コードとフローチャートテキスト1304に入力されたテキストが関連付けてメモリに記憶される。そして、後述する図11のステップS1108でフローチャートエリア1403を出力する際に、当該テキストがフローチャート部品内に表示される。
@NODOC定義1302(図13)は、ビジネスプロセス定義(図12の1200)及びロジック一覧定義中のロジック(図12の1201)に対して設定でき、「@NODOC」という指定をすることにより、指定されたビジネスプロセス定義、ロジック一覧定義中のロジック、および当該ロジックに対応するフローチャートを、ビジネスプロセス仕様ドキュメント433として出力しないようにすることができる(具体的には、図8のステップS802、図10のステップS1002、図11のステップS1102で「N(No)」に移行する)。
ビジネスプロセス定義(図12の1200)に「@NODOC」の指定をするためには、ビ当該ジネスプロセス定義(図12の1200)の「仕様」の欄に「@NODOC」の入力をすることで指定可能である。ロジック一覧定義中のロジック(図12の1201)に「@NODOC」の指定をするためには、当該ロジックを選択して、ロジック自然言語定義画面1301を呼び出し、ロジック自然言語定義画面1301の「仕様」の欄に「@NODOC」の入力をすることで指定可能である。
これにより、Webアプリケーションのユーザにとっては不要なロジックは、個別にビジネスプロセス仕様ドキュメント433に出力しないようにすることができるため、ユーザにとってわかりやすいドキュメントが生成することができる。
以上で、図12、図13の説明を終了し、図5の説明に戻る。
ステップS505において、情報処理装置101は、リポジトリ定義部401からデータベース定義407を取得する。データベース定義407も予め生成されているものとする。
ステップS506において、図17のドキュメントを生成する設定1701がされているか否かを判定する。設定がされている場合には、Webアプリケーションからビジネスプロセス仕様ドキュメントを呼び出せるようにするため、ステップS507へ処理を移す。設定がされていない場合には、ビジネスプロセス仕様ドキュメント自体を生成しない設定であるため、ステップS511へ処理を移す。
ステップS507では、ステップS509で生成するビジネスプロセス仕様ドキュメントをWebアプリケーション(Webアプリケーションの画面)からドキュメントを呼び出すためのリンクURL(リンク情報)を、ステップS503で取得した入出力定義のコードを用いて作成する。また、リンク情報を設定するための指定がされた場合に、リンク情報を生成するものである。
ステップS508において、情報処理装置101は、Webアプリケーション生成部410を用いて、Webアプリケーション428に用いるプログラムを生成する。情報処理装置101のWebアプリケーション生成部410が、取得した定義を用いて、Webアプリケーションのソースコードを生成する(例えば、Webアプリケーション428)。具体的には、「入出力定義」「データモデル定義」「ビジネスプロセス定義」に基づき生成する。
なお、生成されたソースコードにはプログラミング言語が記載されたファイルHTML、JSP、JavaScript(登録商標)等のWebアプリケーションの提供に利用されるファイルも含まれる。この時ステップS507で生成したリンク情報を、各入出力定義に対応する画面のHTMLに埋め込む。このリンク情報は、各画面に対応するビジネスプロセス仕様ドキュメントが表示される。
ステップS509において、情報処理装置101は、ビジネスプロセス仕様ドキュメント生成部414を用いて、ビジネスプロセス仕様ドキュメント433を生成する。ステップS507の詳細処理については、図6を用いて説明する。
リポジトリ定義解析部415は、読み込んだ定義を解析したうえでメモリに保管しておき、各生成部から適宜参照される。
レイアウト構成部421は、生成部の生成したドキュメントの各構成要素をレイアウトする。
ステップS510において、情報処理装置101は、ステップS508、または後述するステップS511にて生成したプログラムをアプリケーションサーバ102に配置(デプロイ)し、ステップS506にて生成したビジネスプロセス仕様ドキュメント433をWebサーバ106に配置する。
これにより、アプリケーションサーバ102上でWebアプリケーションが動作し、Webサーバ106からビジネスプロセス仕様ドキュメント433を配信することができるようになる。
ステップS511において、情報処理装置101は、Webアプリケーション生成部410を用いて、Webアプリケーション428に用いるプログラムを生成する。プログラムの生成方法は、ステップS508と同様であるが、ビジネスプロセス仕様ドキュメントが生成されないため、リンク情報が付与されない画面が生成される。
なお、本実施形態においては、アプリケーション生成時にドキュメントの生成する/しないを選択できるとしたが、この方法に限定するものではなく、アプリケーションを生成することなくドキュメントのみを生成する方法であってもよい。
図14は、生成されたビジネスプロセス仕様ドキュメント433の一例を示す図である。
ビジネスプロセス仕様ドキュメント433は、ビジネスプロセス定義画面1200で設定された内容に基づいて生成されるビジネスプロセス仕様エリア1401、ロジック一覧定義1201に設定された内容に基づいて生成されるロジック一覧エリア1402、ロジック一覧定義1201に設定された内容、およびロジック自然言語定義画面1301で設定された内容に基づいて生成されるフローチャートエリア1403、ビジネスプロセス一覧1404を含んでいる。
図15のフローチャート1500は、図14のビジネスプロセス仕様ドキュメント433からフローチャートエリア1403を切り出した図である。
フローチャート1500には、ロジック一覧定義1201に定義されているロジックの各制御コードと関連付けられたフローチャート部品が表示される。また、フローチャート部品の中には、ロジック自然言語定義画面1301で定義された、各制御コードに対応する自然言語が表示される。
以上で、図5の説明を終了する。次に、図6を用いて、ステップS509の処理の詳細について説明する。
図6は、ビジネスプロセス仕様ドキュメント生成のフローチャートの一例を示す図である。
ステップS601において、情報処理装置101は、ドキュメントフィルタ定義409を読み込む。
ドキュメントフィルタ定義409には、図16のようなフィルタがあり、この定義の設定値に従って。ビジネスプロセス仕様ドキュメント433として出力する情報をフィルタリング(選別)する。図16を用いて、フィルタについて説明する。
ビジネスプロセス属性フィルタ1600(図16)は、ビジネスプロセス定義405をビジネスプロセス(定義)の属性に従ってフィルタリングする。すなわち、ビジネスプロセス仕様ドキュメントに出力する要素(図12のビジネスプロセス定義画面1200に含まれる「コード」、「名前」、「独立コミット」、「有効/無効」、「説明」、「使用」等のことであり、これらを「ビジネスプロセス属性」とも呼ぶ)をフィルタリングする。
ロジック属性フィルタ1601(図16)は、ロジック一覧定義をロジック一覧(定義)の属性に従ってフィルタリングする。すなわち、ビジネスプロセス仕様ドキュメントに出力する要素をフィルタリングする。
フローチャート図形サイズ1602(図16)は、ビジネスプロセス仕様ドキュメント433のフローチャートエリア1403に表示するフローチャート部品の矩形のサイズを設定する、デフォルトは「100%」(等倍)であり、矩形内の文字サイズは本設定の影響を受けない。
エリアフィルタ1603(図16)は、ビジネスプロセス仕様ドキュメント433として出力する情報を、各表示部(図14の1401〜1403等)の出力可否の値(図16の1604〜1607)に従ってフィルタリングし、各表示部の設定されたサイズ(図16の1608〜1611)に従って表示するサイズを決定する。
出力フィルタ管理部422は、取得したドキュメントフィルタ定義409の設定値をRAM202に記憶させて管理する。なお、これらの設定値は、各生成部(416〜419)により適宜参照される。
ドキュメントエリア設定管理部423は、取得したドキュメントフィルタ定義409(特に1603)の設定値を、エリア出力設定424(特に1604〜1607)及びエリアサイズ設定425(特に1608〜1611)として、RAM202に記憶させて管理する。なお、これらの設定値は、各生成部(416〜419)により適宜参照される。
情報処理装置101はドキュメントフィルタ情報をメモリに保管し、その情報は各種生成部から適宜参照される。
以上で、図16の説明を終了し、図6の説明に戻る。
ステップS602において、情報処理装置101は、ビジネスプロセス仕様を出力するか判断し、出力する場合はステップS603に進み、出力しない場合は、処理を終了する。
ステップS603において、情報処理装置101は、ビジネスプロセス一覧の作成を行う。ビジネスプロセス一覧は、情報処理装置101の画面に表示され(図14の1404)、メニューの役割を果たし、一覧の中からビジネスプロセスが選択されると、各表示部(図14の1401〜1403)にそのビジネスプロセスの仕様が表示される。ステップS603の処理の詳細は、図8を用いて後ほど説明する。
ステップS603の処理が終了すると、情報処理装置101は、ビジネスプロセスの定義分、ステップS604からS606までの処理を繰り返す。
ステップS605において、情報処理装置101は、処理対象のビジネスプロセス定義に対してビジネスプロセス仕様ドキュメント作成詳細処理を行う。ステップS605の処理の詳細は、図7を用いて説明する。
以上で、図6の説明を終了し、次に図8を用いて、図6のステップS603の詳細について説明する。
図8は、ビジネスプロセス一覧作成処理の一例を示す図であり、図6のステップS603の詳細処理を示すフローチャートである。
情報処理装置101は、ビジネスプロセス定義分、ステップS801からステップS805までの処理を繰り返す。
ステップS802において、情報処理装置101は、処理対象のビジネスプロセス(ビジネスプロセス定義画面1200の「仕様」の欄)に、「@NODOC」の指定がされているかどうか確認する。指定がされている場合、情報処理装置101は、そのビジネスプロセスのビジネスプロセス一覧情報は作成せず、次のビジネスプロセスの処理に移る。
ステップS803において、情報処理装置101は、ビジネスプロセス定義405に問い合わせ、ビジネスプロセスが有効であるか(ビジネスプロセス定義画面1200において、「有効/無効」のラジオボタンが「有効」に設定されたか)確認する。有効でなかった場合、そのビジネスプロセスのビジネスプロセス一覧情報は作成せず、次のビジネスプロセスの処理に移る。
ステップS804で、情報処理装置101は、ビジネスプロセス一覧情報を作成する。
以上で図8の説明を終了し、次に、図7を用いて、図6のステップS605の処理の詳細について説明する。
図7は、ビジネスプロセス仕様ドキュメント作成詳細処理のフローチャートの一例を示す図である。
ステップS701において、情報処理装置101は、情報処理装置101に記憶されているリポジトリ定義部401のビジネスプロセス定義405(ビジネスプロセス定義画面1200の「仕様」の欄)に「@NODOC」が設定されていないか判定し、設定されていれば処理を終了し、設定されていなければステップS702に進む。
ステップS702において、情報処理装置101は、エリア出力設定424より、エリア出力設定情報(エリアフィルタ1603の1604で設定された情報)を取得し、ビジネスプロセス仕様エリア1401を出力するか判定し、出力する場合はS703に進み、出力しない場合はステップS706に進む。
ステップS703において、情報処理装置101は、エリアサイズ設定425より、ビジネスプロセス仕様エリアサイズ情報(エリアフィルタ1603の1608で設定された情報)を取得し、ビジネスプロセス仕様エリアサイズが指定されているか判定し、指定されている場合はステップS704に進み、指定されていない場合はステップS705に進む。
ステップS704において、情報処理装置101は、取得したビジネスプロセス仕様エリアサイズをビジネスプロセス仕様生成部417に設定する。
ステップS705において、情報処理装置101は、ビジネスプロセス仕様生成部417に設定したビジネスプロセス仕様エリアサイズを用いて、ビジネスプロセス仕様エリア1401を作成、出力し、ステップS706に進む。ステップS705の処理の詳細は、図9を用いて後ほど説明する。
ステップS706において、情報処理装置101は、エリア出力設定424より、エリア出力設定情報(エリアフィルタ1603の1605で設定された情報)を取得し、ロジック一覧エリア1402を出力するか判定し、出力する場合はS707に進み、出力しない場合はステップS709に進む。
ステップS707において、情報処理装置101は、エリアサイズ設定425より、ロジック一覧エリアサイズ情報(エリアフィルタ1603の1609で設定された情報)を取得し、ロジック一覧エリアサイズが指定されているか判定し、指定されている場合はステップS708に進み、指定されていない場合はステップS709に進む。
ステップS708において、情報処理装置101は、取得したロジック一覧エリアサイズをロジック一覧生成部418に設定する。
ステップS709において、情報処理装置101は、ロジック一覧エリア1402を作成、出力し、ステップS710に進む。ステップS709の処理の詳細は、図10を用いて後ほど説明する。
ステップS710において、情報処理装置101は、エリア出力設定424より、エリア出力設定情報(エリアフィルタ1603の1606で設定された情報)を取得し、フローチャートエリア1403を出力するか判定し、出力する場合はS707に進み、出力しない場合はステップS709に進む。
ステップS711において、情報処理装置101は、エリアサイズ設定425より、フローチャートエリアサイズ情報(エリアフィルタ1603の1610で設定された情報)を取得し、フローチャートエリアサイズが指定されているか判定し、指定されている場合はステップS708に進み、指定されていない場合はステップS709に進む。
ステップS712において、情報処理装置101は、取得したフローチャートエリアサイズをフローチャート生成部419に設定する。
ステップS713において、情報処理装置101は、フローチャートサイズ設定426より、フローチャート図形サイズ情報(1602で設定された情報)を取得し、フローチャート図形サイズが指定されているか判定し、指定されている場合はステップS714に進み、指定されていない場合はステップS715に進む。
ステップS714において、情報処理装置101は、取得したフローチャート図形サイズをフローチャート生成部419に設定する。
ステップS715において、フローチャート生成部419はフローチャートエリア1403を作成し、出力する。ステップS715の処理の詳細は、図10を用いて後ほど説明する。
以上で、図7の説明を終了し、次に図9について説明する。
図9は、ビジネスプロセス仕様エリア1401作成処理のフローチャートの一例を示す図であり、図7のステップS705の詳細処理を示すフローチャートである。
情報処理装置101は、ビジネスプロセス属性分、ステップS901からステップS904までの処理を繰り返す。
ステップS902において、情報処理装置101は、エリア出力設定424に問い合わせ、処理対象のビジネスプロセス属性が出力対象と設定されているかどうか(図16のビジネスプロセス属性フィルタ1600で出力する要素としてフィルタリングされているか)確認する。出力対象とされていなかった場合、情報処理装置101は、そのビジネスプロセス属性情報は作成せず、次のビジネスプロセス属性の処理に移る。出力対象とされていた場合、情報処理装置101は、ステップS904で、ビジネスプロセス属性情報を作成する。
ステップS905で、情報処理装置101は、ビジネスプロセス属性情報を元に、ビジネスプロセス仕様エリア1401を出力する。
以上で、図9の説明を終了し、次に図10について説明する。
図10は、ロジック一覧エリア1402作成処理のフローチャートの一例を示す図であり、図7のステップS709の詳細処理を示すフローチャートである。
情報処理装置101は、ロジック一覧定義1201に定義されているロジック数分、ステップS1001からステップS1008までの処理を繰り返す。
ステップS1002で、情報処理装置101は、処理対象のロジックに「@NODOC」指定があるかを確認する。指定がある場合、情報処理装置101は、そのロジックのロジック一覧情報は作成せず、次のロジックの処理に移る。
ステップS1003で、情報処理装置101は、処理対象のロジックが有効か(印1203が設定されているか)確認する。有効であった場合(印1203が設定されていない場合)、ステップS1004に進み、有効でなかった場合は次のロジックの処理に移る。
次に、情報処理装置101は、ロジック属性分(ロジック一覧定義1201の各列分)、ステップS1004からステップS1007までの処理を繰り返す。
ステップS1005で、情報処理装置101は、エリア出力設定424に問い合わせ、ロジック属性が出力対象であるかどうか(図16のロジック属性フィルタ1601で出力する要素としてフィルタリングされているか)確認する。
出力対象であった場合、ステップS1006に進み、出力対象でなかった場合は次のロジック属性の処理に移る。
ステップS1006において、情報処理装置101は、ロジック属性情報を作成する。
ステップS1009で、情報処理装置101は、ロジック属性情報を元に、ロジック一覧エリア1402を出力する。
以上で、図10の説明を終了し、次に図11について説明する。
図11は、フローチャートエリア1403作成処理のフローチャートの一例を示す図であり、図7のステップS715の詳細処理を示すフローチャートである。
情報処理装置101は、リポジトリ定義解析部415による解析によって得られた、ロジック一覧定義1201に定義されているロジック数文、ステップS1101からステップS1107までの処理を繰り返す。
ステップS1102において、情報処理装置101は、リポジトリ定義解析部415による解析によって得られた、ロジック一覧定義1201に定義されているロジック(図13のロジック自然言語定義画面1301の「仕様」の欄)に「@NODOC」が設定されているか判定し、設定されている場合はステップS1107に進み、設定されていない場合はステップS1103に進む。
ステップS1103において、情報処理装置101は、リポジトリ定義解析部415による解析によって得られた、ロジック一覧定義1201に定義されているロジックが無効に設定されているか(当該ロジックに印1203が設定されている)判定し、設定されている場合はステップS1107に進み、設定されていない場合はステップS1104に進む。
ステップS1104において、情報処理装置101は、リポジトリ定義解析部415による解析によって得られた、ビジネスロジックの情報(ロジック一覧定義1201に定義されているロジックの情報)を受け取り、フローチャート部品管理部420にアクセスし、フローチャート部品管理部420から、ビジネスロジックの制御コードと関連付けられたフローチャート部品を取得する。なお、ビジネスロジックの制御コードと関連付けられたフローチャート部品はあらかじめメモリに記憶されている(例えば、制御コードが「IN」であれば平行四辺形のフローチャート部品、制御コードが「CALL」であれば、長方形のフローチャート部品等)。
ステップS1105において、情報処理装置101は、リポジトリ定義解析部415による解析によって得られた、ビジネスロジックの情報(ロジック一覧定義1201に定義されているロジックの情報)を受け取り、フローチャートテキスト(図13の1301の「フローチャートテキスト」の欄)に、ロジック自然言語定義406が設定されているか判定し、設定されている場合はステップS1106に進み、設定されていない場合はステップS1107に進む。
ステップS1106において、情報処理装置101は、ロジック自然言語定義406をフローチャート部品に設定する。
図11の処理を実行することにより、アプリケーションで使われるビジネスロジックをフローチャートで表現した出力物(ドキュメント)を自動的に得ることができる。また、その内容は常にアプリケーションの動作と同期が取れているため、開発中の終盤に変更が生じても、正しいドキュメントを簡単に得ることができる。
さらに、図11のステップS1106の処理を実行することにより、ドキュメントの読み手が制御コードや変数を理解できなくても、フローチャートを理解できるため、読み手を意識した表現が可能となる。
ステップS1108において、情報処理装置101は、フローチャートエリア1403を生成・出力する。ステップS1108は、本発明における、前記管理手段で管理する前記ロジック情報を用いてフローチャートを生成する生成手段の一例であり、前記生成手段で生成したフローチャートを出力する出力手段の一例である。
なお、もしロジック一覧定義1201に定義されているロジックに誤りがある場合には、「エラーが発生したため、処理を中止します。これまでに表示されたログを確認してください。」等のロジックに誤りがあるためにフローチャートが生成できないことを開発者に認識させるためのメッセージを表示し、フローチャートエリア1403の生成を行わない。
また、本実施形態では、ステップS1106において、情報処理装置101は、ロジック自然言語定義406をフローチャート部品に設定するが、他の実施形態として、ロジック自然言語定義406をフローチャート部品に設定するか、ロジック自然言語定義406をフローチャート部品に設定することなく、制御コードをフローチャート部品に設定するかをユーザが選択可能にすることも可能である。
その場合、図17の1700の画面に、ロジック自然言語定義406をフローチャート部品に設定するかをユーザが選択ためのチェックボックスを設け、情報処理装置101は、ステップS1105の処理の前に、当該チェックボックスにチェックが入っているかを判定して、入っている場合には、ステップS1105、ステップS1106の処理を行わず、その代わりに、制御コードをフローチャート部品に設定する処理を行う。
以上で、図11の説明を終了する。
以上、本発明によると、アプリケーション構築における、フローチャート作成の手間を軽減することができる。
なお、本実施形態においては、アプリケーションのプログラムを生成するツールにおいてドキュメントを生成するとしたが、プログラム生成ツールに限定するものではなく、アプリケーションサーバ102、クラウド環境、他の装置等でアプリケーションが動作する様にアプリケーション環境を構築するツールやサービスにおいて、設定したアプリケーションの定義に基づいてドキュメントを生成するとしてもよい。
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、1つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。