(57)【要約】【課題】  テンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供する。【解決手段】  テンプレートを用いてソフトウェアの開発を行う情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記テンプレートを取得するテンプレート取得手段と、前記テンプレート取得手段により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付手段と、前記テンプレート取得手段により取得されたテンプレートに含まれる変数を前記値受付手段により受け付けた値に置換した当該テンプレートを前記ソフトウェアの所定の位置に挿入するテンプレート挿入手段として機能させるためのプログラム。【選択図】  図８
2020119053.tif 000002
【特許請求の範囲】
【請求項１】
テンプレートを用いてソフトウェアの開発を行う情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記テンプレートを取得するテンプレート取得手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を前記値受付手段により受け付けた値に置換した当該テンプレートを前記ソフトウェアの所定の位置に挿入するテンプレート挿入手段
として機能させるためのプログラム。
【請求項２】
前記テンプレート取得手段により取得されたテンプレートを、前記変数を含めた形式で表示するテンプレート表示手段として更に機能させ、
前記値受付手段は、前記変数毎に当該変数を置換する値の入力を受け付けること
を特徴とする請求項１に記載のプログラム。
【請求項３】
前記変数を含む前記テンプレートの作成を受け付けるテンプレート作成受付手段と、
前記テンプレート作成受付手段により受け付けたテンプレートを作成するテンプレート作成手段として更に機能させること
を特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記ソフトウェアで用いるデータモデルを取得するデータモデル取得手段として更に機能させ、
前記変数は、データモデルを表すデータモデル変数を含み、
前記値受付手段は、
前記データモデル変数を置換する値として、前記データモデル取得手段により取得されたデータモデルから選択を受け付けること
を特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
テンプレートを用いてアプリケーションを構築する情報処理装置で実行可能なプログラムであって、
前記情報処理装置を、
前記テンプレートを取得するテンプレート取得手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を前記値受付手段により受け付けた値に置換した当該テンプレートを、前記アプリケーションを構築するための定義情報の所定の位置に挿入するテンプレート挿入手段と、
前記テンプレート挿入手段により挿入されたテンプレートを含む前記定義情報に基づき、前記アプリケーションを構築するアプリケーション構築手段
として機能させるためのプログラム。
【請求項６】
テンプレートを用いてソフトウェアの開発を行う情報処理装置であって、
前記テンプレートを取得するテンプレート取得手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付手段と、
前記テンプレート取得手段により取得されたテンプレートに含まれる変数を前記値受付手段により受け付けた値に置換した当該テンプレートを前記ソフトウェアの所定の位置に挿入するテンプレート挿入手段と
を備えることを特徴とする情報処理装置。
【請求項７】
テンプレートを用いてソフトウェアの開発を行う情報処理装置における処理方法であって、
前記情報処理装置が、
前記テンプレートを取得するテンプレート取得ステップと、
前記テンプレート取得ステップにより取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付ステップと、
前記テンプレート取得ステップにより取得されたテンプレートに含まれる変数を前記値受付ステップにより受け付けた値に置換した当該テンプレートを前記ソフトウェアの所定の位置に挿入するテンプレート挿入ステップと
を実行することを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを構築するためのプログラム、情報処理装置及び処理方法に関する。
【背景技術】
【０００２】
従来、ソフトウェア（例：ＯＳ（オペレーティングシステム）、アプリケーション等）の開発を支援するツール（例：統合開発環境（ＩＤＥ））が存在する。
【０００３】
ソフトウェア開発者は、ソフトウェア開発支援ツールを用いて、ソフトウェアプログラムのコーディングを行う。
【０００４】
特許文献１には、開発中のソフトウェアにテンプレート（雛型）を挿入して開発を行う仕組みが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３２７８８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１では、テンプレートを変更し、その変更をテンプレートに反映することはできるが、テンプレートの変更及びソフトウェアへの反映という手間がかかってしまうため、テンプレートを用いた効率的なソフトウェア開発ができているとは言い難い。
【０００７】
そこで、本発明の目的は、テンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することである。
【課題を解決するための手段】
【０００８】
テンプレートを用いてソフトウェアの開発を行う情報処理装置で実行可能なプログラムであって、前記情報処理装置を、前記テンプレートを取得するテンプレート取得手段と、前記テンプレート取得手段により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける値受付手段と、前記テンプレート取得手段により取得されたテンプレートに含まれる変数を前記値受付手段により受け付けた値に置換した当該テンプレートを前記ソフトウェアの所定の位置に挿入するテンプレート挿入手段として機能させるためのプログラム。
【発明の効果】
【０００９】
本発明によれば、テンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム構成図である。
【図２】本発明に係る情報処理装置、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントとして適用可能な各ハードウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態のソフトウェア構成を示すブロック図の一例である。
【図４】本発明に係る情報処理装置１０１及びアプリケーションサーバ１０２の構成図である。
【図５】ビジネスプロセス定義生成処理のフローチャートの一例を示す図である。
【図６】ビジネスプロセステンプレート挿入処理のフローチャートの一例を示す図である。
【図７】ビジネスプロセス定義入力画面の一例を示す図である。
【図８】プレースホルダーへの値入力を受け付ける画面の一例を示す図である。
【図９】テンプレートを挿入したビジネスプロセス定義入力画面の一例を示す図である。
【図１０】新規ビジネスプロセステンプレートを作成するフローチャートの一例を示す図である。
【図１１】新規ビジネスプロセステンプレート作成受付画面の一例を示す図である。
【図１２】新規ビジネスプロセステンプレート作成画面の一例を示す図である。
【図１３】新規ビジネスプロセステンプレート作成画面で作成した新規ビジネスプロセステンプレートの一例を示す図である。
【図１４】アプリケーション構築のフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００１２】
図１は、本発明に係る情報処理装置（ソフトウェア開発者がソフトウェア開発のために操作するソフトウェア開発装置）、アプリケーションサーバ、データベースサーバ、アプリケーションクライアントの構成の一例を示すシステム（情報処理システム）構成図である。なお、本実施形態においては、情報処理装置にて開発されたソフトウェアをアプリケーションと呼ぶが、アプリケーションに限定するものではなく、アプリケーション以外のソフトウェア（例：ＯＳ）であってもよい。
【００１３】
情報処理装置１０１は、ソフトウェア開発者の操作に従って画面レイアウト及びデータベース検索指示などを定義する。情報処理装置１０１は、プログラム生成、アプリケーション生成を行う。
【００１４】
なお、本実施形態においては、情報処理装置１０１で生成するアプリケーションはＷｅｂアプリケーションとしたが、これに限定するものではなく、携帯電話・スマートフォン・タブレットなどの情報処理装置で動作するアプリケーションや組込みソフトウェアなど、Ｗｅｂ技術による通信を利用するアプリケーション以外のアプリケーションであってもよい。
【００１５】
また、本実施形態においては、情報処理装置１０１はアプリケーションのプログラムを生成するとしたが、この方法に限定するものではなく、プログラムを生成することなく、アプリケーションサーバ１０２やクラウド環境等でアプリケーションが動作する様にデータやファイル等を生成することにより、アプリケーション（の動作環境）を構築する等であってもよい。
【００１６】
アプリケーションサーバ１０２は、情報処理装置１０１で開発されたアプリケーションを実行する。また、データベースサーバ１０３と接続して動作することが可能である。
【００１７】
データベースサーバ１０３は、開発されたアプリケーションが使用するデータベースであり、また本発明では開発時にも動作確認などのために利用してもよい。例えば、ソフトウェア開発者が利用するためにデータベースサーバ１０３は、情報処理装置１０１や、アプリケーションサーバ１０２と同一の装置で構成されていてもよいし、ＬＡＮなどのネットワーク１０５内に配置されてもよい。
【００１８】
アプリケーションクライアント１０４（情報処理装置）は、アプリケーションサーバ１０２と協調して情報処理装置１０１で開発したアプリケーションプログラムを動作させる、エンドユーザの入力端末である。この、アプリケーションクライアント１０４は、携帯端末などの情報処理装置であってもよいこととする。
【００１９】
なお、情報処理装置１０１、アプリケーションサーバ１０２、データベースサーバ１０３、および、アプリケーションクライアント１０４の何れかを、クラウドなどのインターネット上に配置してもよい。
【００２０】
以上で、図１の説明を終了する。
【００２１】
図２は、本発明に係る情報処理装置１０１、アプリケーションサーバ１０２、データベースサーバ１０３、アプリケーションクライアント１０４として適用可能な各ハードウェア構成の一例を示すブロック図である。
【００２２】
図２において、ＣＰＵ２０１は、システムバス２０４に接続される各デバイスを統括的に制御する。
【００２３】
また、ＲＯＭ２０３あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）や、各サーバ、クライアント、装置など情報処理装置の後述する各種機能を実現するためのプログラムが記憶されている。
【００２４】
ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア、一時待避領域等として機能する。
【００２５】
入力コントローラ２０５は、入力部２０９からの入力を制御する。この入力部２０９としては、情報処理装置では、キーボード、マウス等のポインティングデバイス、タッチパネルが挙げられる。
【００２６】
なお、入力部２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。
【００２７】
また、タッチパネルは、マルチタッチスクリーン等の、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよい。
【００２８】
出力コントローラ２０６は、出力部２１０の表示を制御する。この出力部２１０としては、例えば、ＣＲＴや液晶ディスプレイ等が挙げられる。尚、本体と一体になったノート型パソコンのディスプレイも含まれるものとする。また、プロジェクタであってもよいこととする。
【００２９】
外部メモリコントローラ２０７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザーファイル、編集ファイル、プリンタドライバ等を記憶する外部メモリ２１１へのアクセスを制御する。外部メモリ２１１には、各サーバ、クライアント、装置等の各種機能を実現するための各種テーブル、パラメータが記憶されている。この外部メモリ２１１としては、ハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）、ＰＣＭＣＩＡカードスロットにアダプタを介して接続されるコンパクトフラッシュ（登録商標）、スマートメディア等が挙げられる。
【００３０】
なお、ＣＰＵ２０１は、例えばＲＡＭ２０２内の表示情報用領域へアウトラインフォント展開（ラスタライズ）処理を実行することにより、出力部２１０上での表示を可能としている。また、ＣＰＵ２０１は、出力部２１０上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
通信Ｉ／Ｆコントローラ２０８は、ネットワークを介して外部機器との通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いた通信等が可能である。
【００３２】
本発明を実現するためのプログラム２１２は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０２にロードされることによりＣＰＵ２０１によって実行されるものである。
【００３３】
以上で、図２の説明を終了する。
【００３４】
図３は、本発明の実施形態のソフトウェア構成を示すブロック図の一例である。
【００３５】
情報処理装置１０１は、以下の機能部を備える。
【００３６】
テンプレート取得部３０１は、テンプレートを取得する機能部である。
【００３７】
値受付部３０２は、テンプレート取得部３０１により取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける機能部である。
【００３８】
テンプレート挿入部３０３は、テンプレート取得部３０１により取得されたテンプレートに含まれる変数を値受付部３０２により受け付けた値に置換した当該テンプレートをソフトウェアの所定の位置に挿入する機能部である。
【００３９】
テンプレート表示部３０４は、テンプレート取得手段により取得されたテンプレートを、変数を含めた形式で表示する機能部である。
【００４０】
値受付部３０２は、変数毎に当該変数を置換する値の入力を受け付ける機能部である。
【００４１】
テンプレート作成受付部３０５は、変数を含むテンプレートの作成を受け付ける機能部である。
【００４２】
テンプレート作成部３０６は、テンプレート作成受付部３０５により受け付けたテンプレートを作成する機能部である。
【００４３】
データモデル取得部３０７は、ソフトウェアで用いるデータモデルを取得する機能部である。
【００４４】
値受付部３０２は、データモデル変数を置換する値として、データモデル取得部３０７により取得されたデータモデルから選択を受け付ける機能部である。
【００４５】
テンプレート挿入部３０３は、テンプレート取得部３０１により取得されたテンプレートに含まれる変数を値受付部３０２により受け付けた値に置換した当該テンプレートを、アプリケーションを構築するための定義情報の所定の位置に挿入する機能部である。
【００４６】
アプリケーション構築部３０８は、テンプレート挿入部３０３により挿入されたテンプレートを含む定義情報に基づき、アプリケーションを構築する機能部である。
【００４７】
以上で、図３の説明を終了する。
【００４８】
図４は、情報処理装置１０１及びアプリケーションサーバ１０２の構成図である。
【００４９】
情報処理装置１０１は、リポジトリ定義部４０１及びアプリケーション生成部４１０を備える。
【００５０】
情報処理装置１０１は、アプリケーションを開発するソフトウェア開発者により設定されたリポジトリ定義部４０１の各定義を用いて、アプリケーション生成部４１０によりアプリケーションを生成する。
【００５１】
リポジトリ定義部４０１には、アプリケーション定義４０２、入出力定義４０３、データモデル定義４０４、ビジネスプロセス定義４０５、データベース定義４０６が記憶されている。これら４０２〜４０６の定義は、アプリケーション構築ツールを介して、ソフトウェア開発者によって入力設定または配置される。
【００５２】
入出力定義４０３は、アプリケーション画面に配置される各種項目のレイアウトの定義情報を保持する。入出力定義４０３は、入力項目定義情報及び出力項目定義情報を含む。入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報である。出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報である。以降、「入力項目定義情報」及び「出力項目定義情報」をまとめて「入出力項目定義情報」と呼ぶ。
【００５３】
なお、本実施形態においては、「入力項目定義情報は、生成されたアプリケーションの画面を介して当該アプリケーションのエンドユーザが入力する入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションの画面に出力する出力項目を定義した情報」としたが、これらに限定するものではなく、例えば、画面を有さないバッチやＷｅｂサービス等のように、「入力項目定義情報は、生成されたアプリケーションに入力される入力項目を定義した情報」「出力項目定義情報は、生成されたアプリケーションが出力する出力項目を定義した情報」であってもよい。
【００５４】
データモデル定義４０４は、データベースのテーブルの項目の定義情報を保持する。入出力定義４０３の各項目には、データモデル定義４０４の項目を対応づけることができる。生成されたアプリケーションは、データモデル定義４０４を用いてテーブルのレコード操作（例：登録、検索、更新、削除等）を行う。
【００５５】
ビジネスプロセス定義４０５は、アプリケーションにおけるデータを処理するためのロジックの定義情報を保持する。
【００５６】
データベース定義４０６は、アプリケーションが接続するデータベースに係る情報（データベースサーバ１０３のＩＰアドレス、接続ユーザ、接続パスワード等）を定義する。
【００５７】
ビジネスプロセステンプレート＜ユーザ定義＞４０７は、ソフトウェア開発者が独自に作成したビジネスプロセステンプレートである。
【００５８】
ビジネスプロセステンプレートとは、ビジネスプロセス定義４０５の一部として利用可能なテンプレートである。
【００５９】
ビジネスプロセステンプレートは、プレースホルダー（ビジネスプロセス定義４０５に必要な各項目の値を抽象化し、再利用可能にするための変数）を含み、ソフトウェア開発者がプレースホルダーに対して値を入力することによって、プレースホルダーを当該値に置換した状態でビジネスプロセス定義４０５の一部として利用することができる。
【００６０】
ビジネスプロセステンプレート管理部４２０は、外部メモリ２１１に記憶されたビジネスプロセステンプレート＜組み込み＞４２１を管理する。
【００６１】
ビジネスプロセステンプレート＜組み込み＞４２１は、ソフトウェア開発支援ツールに組み込まれたビジネスプロセステンプレートである。なお、ビジネスプロセステンプレート＜組み込み＞４２１は、ソフトウェア開発支援ツール導入時から組み込まれたテンプレートに限定するものではなく、ソフトウェア開発支援ツール導入後にソフトウェア開発支援ツール開発元や第三者（ビジネスプロセステンプレート提供者等）から取得したテンプレート等であってもよい。
【００６２】
以下では、「ビジネスプロセステンプレート＜ユーザ定義＞４０７」及び「ビジネスプロセステンプレート＜組み込み＞４２１」を総称して、「ビジネスプロセステンプレート」又は単に「テンプレート」と呼ぶ。「ビジネスプロセステンプレート」は、ソフトウェア開発支援ツールの画面（例：ビジネスプロセスエディタ部４３０）において、「スニペット」と呼ばれる部品として、ビジネスプロセス定義４０５の作成及び編集に用いることができる。
【００６３】
ビジネスプロセスエディタ部４３０は、ビジネスプロセステンプレート要求受信部４３１及びビジネスプロセス定義入力部４３２を用いて、ビジネスプロセス定義４０５の作成、編集及び参照をする。
【００６４】
ビジネスプロセステンプレート編集ダイアログ４５０は、ビジネスプロセステンプレート表示部４５１、プレースホルダー値入力部４５２を用いて、ユーザからのプレースホルダーに対する値入力を受け付け、ビジネスプロセスデータ作成部４５３を用いて、ビジネスプロセスデータを作成する。
【００６５】
ビジネスプロセスデータ作成部４５３は、作成したビジネスプロセスデータをビジネスプロセスエディタ部に渡す。
【００６６】
アプリケーション生成部４１０は、アプリケーション生成用のリポジトリ定義解析部４１１を用いてリポジトリ定義部４０１に記憶されている各定義を解析し、アプリケーションコード生成部４１２及びソースコードコンパイル部４１３を介し、コンパイル済Ｊａｖａ（登録商標）コード４４１及びＨＴＭＬ／ＪＳＰ／ＪａｖａＳｃｒｉｐｔ（登録商標）４４２を含むアプリケーションコード４４０を生成する。すなわち、アプリケーション生成部４１０は、設定された定義を用いて、アプリケーションとして用いられるソフトウェアを生成する手段の一例である。
【００６７】
以上で、図４の説明を終了する。
【００６８】
図５は、ビジネスプロセス定義生成処理のフローチャートの一例を示す図である。なお、以下のフローチャートの各ステップは、各装置のＣＰＵ２０１が実行する。
【００６９】
ステップＳ５０１において、情報処理装置１０１は、ビジネスプロセス定義入力画面７００（図７）を用いて、ビジネスプロセス定義４０５に含まれる各項目（「制御コード」「データモデルコード」「機能コード」「パラメータ」及び「作業コード」）の入力を受け付ける。ビジネスプロセス定義入力画面７００は、ビジネスプロセス定義入力部４３２の一例である。
【００７０】
ここで、ビジネスプロセス定義４０５に含まれる各項目について、簡単に説明をしておく。
【００７１】
「制御コード」は、ビジネスプロセスにおける命令を表すコードである。具体的には、制御コード“ＩＮ”は、画面からバインドされたデータモデルのレコード集合を変数に代入する命令である。また、制御コード“ＣＡＬＬ”は、データモデル操作（例：レコードの登録、検索、更新、削除等）を行う命令である。また、制御コード“ＩＦ／ＥＬＳＥＩＦ／ＥＬＳＥ／ＥＮＤ”は、ビジネスプロセスにおける処理の分岐を行う命令である。また、制御コード“ＥＸＥＣ”は、定義済のビジネスプロセスを実行する命令である。なお、本実施形態においては、上記の「制御コード」を挙げたが、これらの制御コードに限定するものではなく、その他の命令を表す「制御コード」であってもよい。
【００７２】
「機能コード」は、実行する処理を示すコードである。具体的には、データモデル操作コード、定義済のビジネスプロセスのコード、拡張的に定義されたコード等が該当する。
【００７３】
「パラメータ」は、「機能コード」で指定した処理に渡す引数である。次に説明する「作業コード」の変数を指定することで、変数に格納された値を「機能コード」で指定した処理に渡すことができる。
【００７４】
「作業コード」には、呼出元の入出力定義４０３から受け取る値、「機能コード」で指定した処理が返す戻り値を格納するための変数を指定する。
【００７５】
なお、本実施形態においては、ビジネスプロセス定義４０５に含まれる項目として、「制御コード」「データモデルコード」「機能コード」「パラメータ」及び「作業コード」を挙げたが、これらの項目に限定するものではなく、その他の項目があってもよい。
【００７６】
ステップＳ５０２において、情報処理装置１０１は、ビジネスプロセステンプレート要求受信部４３１を用いて、ビジネスプロセステンプレート７０１の挿入操作を受け付けたか否かを判定し、受け付けた場合はステップＳ５０３に進み、受け付けなかった場合はステップＳ５０４に進む。
【００７７】
ビジネスプロセステンプレート７０１の挿入操作とは、例えば、ビジネスプロセステンプレート７０１をドラッグし、ビジネスプロセスエディタ部４３０内の挿入したい位置にドロップする（図７の７０２）操作である。なお、本実施形態においては、挿入操作をドラッグ＆ドロップ操作としたが、この操作方法に限定するものではなく、挿入するビジネスプロセステンプレート７０１及び挿入する位置が特定できる操作であれば、キーボードによる操作、画面のタッチ操作、その他の操作等であってもよい。
【００７８】
なお、本実施形態においては、挿入するビジネスプロセステンプレート７０１及び挿入する位置は、ソフトウェアの開発者が操作により指示するとしたが、この方法に限定するものではなく、情報処理装置１０１が、ビジネスプロセス定義４０５の定義内容に基づき、挿入するビジネスプロセステンプレート７０１又は挿入する位置を自動的に（例えば、別途定義されたルール、過去に開発したソフトウェアの解析結果、及び／又は、人工知能等を用いて）特定するとしてもよい。
【００７９】
なお、本実施形態においては、挿入するテンプレートをビジネスプロセステンプレート７０１としたが、これに限定するものではなく、入出力定義４０３、データモデル定義４０４等、その他の種類のテンプレート（例：レイアウトやデザインのテンプレート、メッセージのテンプレート、汎用的なデータやロジックのテンプレート等）であってもよい。
【００８０】
ステップＳ５０３において、情報処理装置１０１は、ビジネスプロセステンプレートの挿入処理を行う。この処理については、図６にて後述する。
【００８１】
ステップＳ５０４において、情報処理装置１０１は、ソフトウェア開発者からのビジネスプロセス定義４０５の保存要求を受け付ける。
【００８２】
ステップＳ５０５において、情報処理装置１０１は、ソフトウェア開発者からのビジネスプロセス定義４０５の保存要求の有無を判定する。
【００８３】
ステップＳ５０５において、情報処理装置１０１は、ステップＳ５０１〜Ｓ５０３にて作成されたビジネスプロセスに基づき、ビジネスプロセス定義４０５を生成し、外部メモリ２１１に記憶する。
【００８４】
以上で、図６の説明を終了する。
【００８５】
図６は、ステップＳ５０３にて実行されるビジネスプロセステンプレート挿入処理のフローチャートの一例を示す図である。
【００８６】
ステップＳ６０１において、情報処理装置１０１は、ビジネスプロセス定義に挿入するビジネスプロセステンプレート７０１の情報を取得し、ＲＡＭ２０２へ記憶する。すなわち、ステップＳ６０１は、テンプレートを取得する処理の一例を示すステップである。挿入するビジネスプロセステンプレート７０１とは、ステップＳ５０２にて特定された（例：ソフトウェア開発者がドラッグ＆ドロップした）ビジネスプロセステンプレート７０１である。
【００８７】
ステップＳ６０２において、情報処理装置１０１は、ステップＳ６０１にて取得したビジネスプロセステンプレート内のプレースホルダーの情報を取得する。
【００８８】
ステップＳ６０３において、情報処理装置１０１は、ステップＳ６０２にて取得したプレースホルダーの数を判定し、０個の場合はステップＳ６０７に進み、１個以上の場合はステップＳ６０４に進む。
【００８９】
ステップＳ６０４において、情報処理装置１０１は、ステップＳ６０１にて取得したビジネスプロセステンプレート及びステップＳ６０２にて取得したプレースホルダーを表示する。すなわち、ステップＳ６０４は、取得されたテンプレートを、変数を含めた形式で表示する処理の一例を示すステップである。具体的には、ビジネスプロセステンプレート編集ダイアログ４５０（図８の８００）を表示する。
【００９０】
ステップＳ６０５において、情報処理装置１０１は、プレースホルダー値入力部４５２を用いて、プレースホルダーを置換する値の入力を受け付ける。すなわち、ステップＳ６０５は、取得されたテンプレートに含まれる変数を置換する値の入力を受け付ける処理の一例を示すステップである。具体的には、プレースホルダー一覧をプレースホルダー値エディタ８０１に表示し、ソフトウェア開発者による入力を受け付ける。
【００９１】
図８の８０２は、プレースホルダー値エディタ８０１にてプレースホルダーを置換する値の入力を受け付けた例である。ここでは、プレースホルダー｛ＤＭ＿ＣＯＤＥ｝に“ＥＭＰ＿ＭＳＴ”（顧客マスタ）を、プレースホルダー｛ＷＫ＿ＣＯＤＥ｝に値「ＷＫ＿ＩＤ」の入力を受け付けたとする。
【００９２】
なお、「データモデルコード」のプレースホルダーに対して値の入力をする場合は、既存のデータモデル（データモデル定義４０４）から選択することができるとしてもよい（不図示）。また、「パラメータ」等のプレースホルダーに対して値の入力をする場合は、呼出元の入出力定義４０３から受け取ると予想される値、「機能コード」で指定した処理が返すと予想される戻り値等から選択ができるとしてもよい（不図示）。これにより、プレースホルダーを置換する値の入力を効率化することができるようになる。
【００９３】
すなわち、ステップＳ６０５は、ソフトウェアで用いるデータモデルを取得する処理の一例を示すステップであり、データモデル変数を置換する値として、取得されたデータモデルから選択を受け付ける処理の一例を示すステップである。
【００９４】
ステップＳ６０６において、情報処理装置１０１は、ＯＫボタン８０３の押下を受け付けると、ステップＳ６０１にてＲＡＭ２０２に記憶したビジネスプロセステンプレート７０１の各プレースホルダーをステップＳ６０５にて受け付けた値に置換する。
【００９５】
ステップＳ６０７において、情報処理装置１０１は、ＲＡＭ２０２内のビジネスプロセステンプレート７０１を、ステップＳ５０２にて特定された挿入位置に挿入する。すなわち、ステップＳ６０７は、テンプレートに含まれる変数を受け付けた値に置換した当該テンプレートをソフトウェアの所定の位置に挿入する処理の一例を示すステップである。すなわち、ステップＳ６０７は、取得されたテンプレートに含まれる変数を受け付けた値に置換した当該テンプレートを、アプリケーションを構築するための定義情報の所定の位置に挿入する処理の一例を示すステップである。
【００９６】
具体的には、ステップＳ６０４にて表示されていたビジネスプロセステンプレートのプレースホルダー｛ＤＭ＿ＣＯＤＥ｝が“ＥＭＰ＿ＭＳＴ”（顧客マスタ）に、プレースホルダー｛ＷＫ＿ＣＯＤＥ｝が値「ＷＫ＿ＩＤ」に置換した状態で、ステップＳ５０２にて特定された挿入位置に挿入する（図９の９０１）。
【００９７】
以上で、図６の説明を終了する。
【００９８】
図１０は、新規のビジネスプロセステンプレートを作成するフローチャートの一例を示す図である。
【００９９】
ステップＳ１００１において、情報処理装置１０１は、新規のビジネスプロセステンプレートを作成する要求を受け付ける（図１１）。図１１では、ビジネスプロセステンプレートを識別するためのコード１１０１及びその名前１１０２の入力、並びに、Ｆｉｎｉｓｈボタン１１０３の押下を受け付け、それらの値をＲＡＭ２０２に記憶しておく。ここでは、コード１１０１に“ＴＥＭＰＬＡＴＥ＿ＳＡＭＰＬＥ”、名前１１０２に“サンプルテンプレート”の値がそれぞれ入力されたとする。
【０１００】
ステップＳ１００２において、情報処理装置１０１は、新規ビジネスプロセステンプレート作成画面（図１２）を表示し、ロジック一覧部１２０１（図１２）にて、新たなビジネスプロセステンプレート＜ユーザ定義＞４０７を構成する「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力を受け付ける。すなわち、ステップＳ１００２は、変数を含むテンプレートの作成を受け付ける処理の一例を示すステップである。
【０１０１】
図１３は、新規ビジネスプロセステンプレート作成画面で作成した新規ビジネスプロセステンプレートの一例を示す図である。１３０１〜１３０３のように、「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」に中括弧｛｝を用いることで、新規ビジネスプロセステンプレート内にプレースホルダーを作成することができる。
【０１０２】
また、中括弧に囲まれた文字列を同じ文字列（例：１３０１及び１３０２）にすることにより、同一のプレースホルダーとして扱うことができる。つまり、この画面を用いて生成された新規ビジネスプロセステンプレートをビジネスプロセス定義に挿入する場合、プレースホルダー｛ＤＭ＿ＣＯＤＥ｝に対して設定した値を、プレースホルダー｛ＤＭ＿ＣＯＤＥ｝が定義されているすべての箇所に置換することができる。
【０１０３】
これにより、ソフトウェア開発者が独自に作成する新規ビジネスプロセステンプレートにおいても、プレースホルダーを用いることができる。つまり、ソフトウェア開発者自身がプレースホルダーを含むテンプレートを自由に作成することができるようになるため、そのソフトウェア開発に適した柔軟なテンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができるようになる。
【０１０４】
ステップＳ１００３において、情報処理装置１０１は、新たなビジネスプロセステンプレート＜ユーザ定義＞４０７に既存のビジネスプロセステンプレートを挿入する操作を受け付けたか否かを判定する。挿入操作を受け付けた場合はステップＳ１００４に進み、受け付けなかった場合はステップＳ１００５に進む。ビジネスプロセス部品１２０２（図１２）には、「スニペット」と呼ばれる部品としてビジネスプロセステンプレート（４２１及び既存の４０７）が表示されており、既存のビジネスプロセステンプレートの挿入操作とは、ビジネスプロセス部品１２０２のビジネスプロセステンプレートをロジック一覧部１２０１にドラッグ＆ドロップすることで、ビジネスプロセステンプレートを利用して新たなビジネスプロセステンプレート＜ユーザ定義＞４０７を作成することができる。
【０１０５】
なお、本実施形態においては、図１０のフローチャートにより作成された新たな「ビジネスプロセステンプレート＜ユーザ定義＞４０７は、ビジネスプロセス部品１２０２（図１２）の「スニペット」に表示され選択できるようになるとしたが、この方法に限定するものではなく、ビジネスプロセステンプレート＜組み込み＞４２１とビジネスプロセステンプレート＜ユーザ定義＞４０７とを分けて表示するとしてもよいし、ビジネスプロセステンプレートが持つ設定に基づき、新たなビジネスプロセステンプレート＜組み込み＞４２１を作成するときにスニペットとして用いることができないビジネスプロセステンプレートがあってもよい。
【０１０６】
ステップＳ１００４において、情報処理装置１０１は、新たなビジネスプロセステンプレート＜ユーザ定義＞４０７に既存のビジネスプロセステンプレートを挿入する。
【０１０７】
これにより、「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力を容易にすることができる。また、ビジネスプロセステンプレートの部品（スニペット）を組み合わせて、複雑かつ高品質なビジネスプロセステンプレートを容易に作成することができるようになる。
【０１０８】
既存のビジネスプロセステンプレートを挿入した後は、ステップＳ１００２と同様に新たなビジネスプロセステンプレート＜ユーザ定義＞４０７の「制御コード」「データモデルコード」「機能コード」「パラメータ」「作業コード」の入力及び修正を受け付けることができる。
【０１０９】
ステップＳ１００５において、情報処理装置１０１は、ステップＳ１００１〜Ｓ１００４にて作成した新たなビジネスプロセステンプレート＜ユーザ定義＞４０７を外部メモリ２１１に記憶する。すなわち、ステップＳ１００５は、受け付けたテンプレートを作成する処理の一例を示すステップである。
【０１１０】
以上により、ソフトウェア開発者自身がテンプレートを自由に作成することができるようになるため、そのソフトウェア開発に適した柔軟なテンプレートを用いてソフトウェア開発を効率的に行う仕組みを提供することができるようになる。
【０１１１】
図１４は、アプリケーション構築のフローチャートの一例を示す図である。
【０１１２】
ステップＳ１４０１において、情報処理装置１０１は、ユーザによるアプリケーション構築の指示（不図示）を受け付けると、外部メモリ２１１に記憶されているリポジトリ定義のアプリケーション定義をＲＡＭ２０２に読み込む。なお、リポジトリ定義には、アプリケーションの構築に用いる、データベース定義、データモデル定義、入出力（画面）定義、ビジネスプロセス定義等が含まれる。これらの詳細については、既知の技術であるため、その説明は省略する。
【０１１３】
すなわち、ステップＳ１４０１は、アプリケーションの構築指示を受け付ける処理の一例を示すステップである。また、リポジトリ定義は、アプリケーションの定義を記憶する手段の一例である。
【０１１４】
ステップＳ１４０２において、情報処理装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部のデータモデル定義をＲＡＭ２０２に読み込む。
【０１１５】
ステップＳ１４０３において、情報処理装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部の入出力（画面）定義をＲＡＭ２０２に読み込む。
【０１１６】
ステップＳ１４０４において、情報処理装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部のビジネスプロセス定義をＲＡＭ２０２に読み込む。
【０１１７】
ステップＳ１４０５において、情報処理装置１０１は、外部メモリ２１１に記憶されているリポジトリ定義部のデータベース定義をＲＡＭ２０２に読み込む。
【０１１８】
ステップＳ１４０６において、情報処理装置１０１は、ＲＡＭ２０２に読み込んだリポジトリ定義部の各定義に基づき、アプリケーションのソースコードを生成する。
【０１１９】
なお、生成されたソースコードにはプログラミング言語で記載されたファイルに加え、ＨＴＭＬ、ＪＳＰ、ＪａｖａＳｃｒｉｐｔ（登録商標）等のアプリケーションやサービスの提供に利用されるファイルも含まれる。なお、本実施形態においては、プログラミング言語をＪａｖａ（登録商標）としたが、これに限定に限定するものではなく、その他のプログラミング言語を用いるとしてもよい。なお、本実施形態においては、ＨＴＭＬ、ＪＳＰ、ＪａｖａＳｃｒｉｐｔ（登録商標）等のファイルを生成するとしたが、当然ながら、そのアプリケーションやサービスの提供に利用するファイルであれば、その他の形式のファイルであってもよい。
【０１２０】
ステップＳ１４０７において、情報処理装置１０１は、ステップＳ１４０６にて生成したソースコードをアプリケーションサーバ１０２に配置（デプロイ）する。すなわち、ステップＳ１４０７は、挿入されたテンプレートを含む定義情報に基づき、アプリケーションを構築する処理の一例を示すステップである。これにより、アプリケーションサーバ１０２上でアプリケーションが動作するようになる。
【０１２１】
以上により、テンプレートを用いて効率的にアプリケーションを構築することができるようになる。
以上で、図１４の説明を終了する。
【０１２２】
以上により、テンプレートを用いてソフトウェア開発を効率的に行うことができるようになる。
【０１２３】
なお、本実施形態においては、テンプレートを用いてソフトウェアの開発を行うとしたが、ソフトウェアの開発に限定するものではなく、入出力定義４０３、データモデル定義４０４等、その他の種類のテンプレート（例：レイアウトやデザインのテンプレート、メッセージのテンプレート、汎用的なデータやロジックのテンプレート等）にも本願発明を適用すれば、デザイン、メッセージ、文書、データ、ロジック等に係る開発や作業を効率的にすることができるようになる。
【０１２４】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
【０１２５】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
【０１２６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク等を用いることが出来る。
【０１２７】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２８】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２９】
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１３０】
上記プログラムの形態は、オブジェクトコード、インタプリタにより実行されるプログラムコード、ＯＳ（オペレーティングシステム）に供給されるスクリプトデータ等の形態から成ってもよい。
【０１３１】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１３２】
１０１  情報処理装置
１０２  プログラム生成サーバ
１０３  データベースサーバ
１０４  アプリケーションクライアント
１０５  アプリケーションサーバ
１０６  ネットワーク
【図１】
2020119053.tif 000003
【図２】
2020119053.tif 000004
【図３】
2020119053.tif 000005
【図４】
2020119053.tif 000006
【図５】
2020119053.tif 000007
【図６】
2020119053.tif 000008
【図７】
2020119053.tif 000009
【図８】
2020119053.tif 000010
【図９】
2020119053.tif 000011
【図１０】
2020119053.tif 000012
【図１１】
2020119053.tif 000013
【図１２】
2020119053.tif 000014
【図１３】
2020119053.tif 000015
【図１４】
2020119053.tif 000016