(57)【要約】      （修正有）【課題】統合環境生成器を提供する。【解決手段】統合環境生成器は、入力ファイルを受け取り、入力ファイルをマークアップ言語ファイルに変換する。統合環境生成器は、ルールを受け取り、マークアップ言語ファイルをルールと対照して検証する。ルールは、モジュールの依存関係を入力ファイルに含めるための統一フォーマットを規定する。統合環境生成器は、モジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースを、検証されたマークアップ言語ファイルから特定する。統合環境生成器は、特定された依存関係に対してビルド・スクリプト・テンプレートを、特定されたスケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、特定されたテスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択し、ビルド・スクリプト、スケジューリング・スクリプト、およびテスト・ケース・スクリプトを生成する。【選択図】図１
2011060277.tif 000002
【特許請求の範囲】
【請求項１】
統合環境生成器であって、
入力ファイルを受け取り、前記入力ファイルをマークアップ言語ファイルに変換するよう構成された入力変換モジュールであって、前記入力ファイルは、展開されるアプリケーションのモジュール、前記モジュール間の依存関係、前記モジュールをテストするテスト・ケース、およびスケジューリング情報を特定する、前記入力変換モジュールと、
ルールを受け取り、前記ルールと対照して前記マークアップ言語ファイルを検証するよう構成された検証モジュールであって、前記ルールは、前記モジュールの前記依存関係を前記入力ファイルに含めるための統一フォーマットを規定する、前記検証モジュールと、
前記モジュール、前記モジュール間の前記依存関係、前記スケジューリング情報、および前記テスト・ケースを、前記検証されたマークアップ言語ファイルから特定するよう構成されたトラバース・モジュールと、
前記モジュール間の前記特定された依存関係に対してビルド・スクリプト・テンプレートを、前記特定されたスケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、前記特定されたテスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択するよう構成されたテンプレート選択モジュールと、
コンピュータ・システム上で実行され、前記ビルド・スクリプト・テンプレートからビルド・スクリプトを、前記スケジューリング・スクリプト・テンプレートからスケジューリング・スクリプトを、前記テスト・ケース・スクリプト・テンプレートからテスト・ケース・スクリプトを生成するよう構成されたファイル生成モジュールと、
を含む、統合環境生成器。
【請求項２】
前記モジュール間の前記依存関係を反映するツリー構造を生成するよう構成された記録モジュールをさらに含む、請求項１に記載の統合環境生成器。
【請求項３】
前記マークアップ言語ファイルは、ＸＭＬファイルである、請求項１に記載の統合環境生成器。
【請求項４】
前記ビルド・スクリプトは、展開可能パッケージを作成するために使用される、請求項１に記載の統合環境生成器。
【請求項５】
前記入力ファイルは、統一モデリング言語（ＵＭＬ）デザインを含む、請求項１に記載の統合環境生成器。
【請求項６】
前記ルールは、種々の前記モジュール間の前記依存関係が環状であってはならないと規定するルールを含む、請求項１に記載の統合環境生成器。
【請求項７】
前記ルールは、種々の前記モジュール間の前記依存関係が、統一モデリング言語（ＵＭＬ）の＜＜ｕｓｅ＞＞ステレオタイプによって規定されなくてはならないと規定するルールを含む、請求項１に記載の統合環境生成器。
【請求項８】
ビルド・スクリプトを生成する方法であって、
入力ファイルをマークアップ言語ファイルに変換するステップであって、前記入力ファイルは、アプリケーションのモジュール、前記モジュール間の依存関係、前記モジュールをテストするテスト・ケース、およびスケジューリング情報を特定する、前記ステップと、
ルールと対照して前記マークアップ言語ファイルを検証するステップであって、前記ルールは、前記モジュールの前記依存関係を前記入力ファイルに含めるための統一フォーマットを規定する、前記ステップと、
前記モジュール、前記モジュール間の前記依存関係、前記スケジューリング情報、および前記テスト・ケースを、前記検証されたマークアップ言語ファイルから特定するステップと、
前記モジュール間の前記特定された依存関係に対してビルド・スクリプト・テンプレートを、前記特定されたスケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、前記特定されたテスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択するステップと、
前記ビルド・スクリプト・テンプレートからビルド・スクリプトを、前記スケジューリング・スクリプト・テンプレートからスケジューリング・スクリプトを、前記テスト・ケース・スクリプト・テンプレートからテスト・ケース・スクリプトを生成するステップと、
を含む、方法。
【請求項９】
前記モジュール間の前記依存関係を反映するツリー構造を生成するステップ
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記マークアップ言語ファイルは、ＸＭＬファイルである、請求項８に記載の方法。
【請求項１１】
前記ビルド・スクリプトは、展開可能パッケージを作成するために使用される、請求項８に記載の方法。
【請求項１２】
前記入力ファイルは、統一モデリング言語（ＵＭＬ）デザインを含む、請求項８に記載の方法。
【請求項１３】
前記ルールは、種々の前記モジュール間の前記依存関係が環状であってはならないと規定するルールを含む、請求項８に記載の方法。
【請求項１４】
前記ルールは、種々の前記モジュール間の前記依存関係が、統一モデリング言語（ＵＭＬ）の＜＜ｕｓｅ＞＞ステレオタイプによって規定されなくてはならないと規定するルールを含む、請求項８に記載の方法。
【請求項１５】
ビルド・スクリプトを生成するためのコンピュータ実行可能命令が、非一時的なコンピュータ可読媒体上に格納されている、前記コンピュータ可読媒体であって、前記コンピュータ実行可能命令は、実行されるとコンピュータ・システムに、
入力ファイルをマークアップ言語ファイルに変換するステップであって、前記入力ファイルは、アプリケーションのモジュール、前記モジュール間の依存関係、前記モジュールをテストするテスト・ケース、およびスケジューリング情報を特定する、前記ステップと、
ルールと対照して前記マークアップ言語ファイルを検証するステップであって、前記ルールは、前記モジュールの前記依存関係を前記入力ファイルに含めるための統一フォーマットを規定する、前記ステップと、
前記モジュール、前記モジュール間の前記依存関係、前記スケジューリング情報、および前記テスト・ケースを、前記検証されたマークアップ言語ファイルから特定するステップと、
前記モジュール間の前記特定された依存関係に対してビルド・スクリプト・テンプレートを、前記特定されたスケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、前記特定されたテスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択するステップと、
前記ビルド・スクリプト・テンプレートからビルド・スクリプトを、前記スケジューリング・スクリプト・テンプレートからスケジューリング・スクリプトを、前記テスト・ケース・スクリプト・テンプレートからテスト・ケース・スクリプトを生成するステップと、
を含む方法を実行させる、コンピュータ可読媒体。
【請求項１６】
前記方法は、前記モジュール間の前記依存関係を反映するツリー構造を生成するステップ
をさらに含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記マークアップ言語ファイルは、ＸＭＬファイルである、請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記ビルド・スクリプトは、展開可能パッケージを作成するために使用される、請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記入力ファイルは、統一モデリング言語（ＵＭＬ）デザインを含む、請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記ルールは、種々の前記モジュール間の前記依存関係が環状であってはならないと規定するルールを含む、請求項１５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、全般的に、入力ファイルを受け取り、入力ファイルをマークアップ言語ファイルに変換する統合環境生成器（ｉｎｔｅｇｒａｔｉｏｎ  ｅｎｖｉｒｏｎｍｅｎｔ  ｇｅｎｅｒａｔｏｒ）に関する。
【０００２】
優先権
本願は、２００９年８月３１日に提出された、「ビルド・スクリプト生成（Ｂｕｉｌｄ  Ｓｃｒｉｐｔ  Ｇｅｎｅｒａｔｉｏｎ）」という題の、米国特許仮出願第６１／２３８３７９号の優先権を主張するものであり、その内容全体を参照によって引用したものとする。
【背景技術】
【０００３】
インターネット・アプリケーション、ビジネス・アプリケーション、エンド・ユーザ・アプリケーションなどであり得る多数のアプリケーションは、種々の機能を実行する複数のソフトウェア・モジュールから成る。例えば、オンライン・ショッピング・アプリケーションは、ショッピング・カートの精算の機能を実行する複数のモジュールを有することもある。こうしたモジュールは、支払いモジュール、検証モジュール、およびカート・モジュールを含み得る。
【０００４】
こうしたモジュールをコンピュータ・システム上に展開するために、当該モジュールは、作成されて展開可能パッケージにまとめられる。展開可能パッケージは、アプリケーションを作成または更新するために使用されるファイルの集合を含むみ得る。ファイルの集合は、サーバまたはその他のコンピュータ・システム上に読み込まれる実行可能ファイルおよびその他の情報を含むとよい。実行可能ファイルが実行されると、モジュールを含むアプリケーションが作成または更新されるとよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーション展開段階の間、展開可能パッケージは何度もビルドおよびテストされる。展開可能パッケージのビルドは、多数のモジュールおよびその他のコンポーネントを備える大型アプリケーションの場合には特に、時間がかかり複雑な可能性がある。典型的にデベロッパーは、アプリケーション・コンポーネントの依存関係に変更があるたび、または他の変更があるたびに、ビルド・スクリプトを手動で書くか、または変更する。ビルド・スクリプトは、モジュール間の依存関係、および展開パッケージの作成のためのその他の情報などの情報を特定する。次にビルド・スクリプトは、従来のビルド・ツールによって、ビルド・スクリプトに基づき展開パッケージを生成するために使用される。モジュール間の依存関係を手動で判断すること、およびテスト用に展開パッケージの作成の必要があるたびにビルド・スクリプトを作成または変更することは、大きな労働力を要し、複雑でエラーが起きやすくなる傾向がある。
【課題を解決するための手段】
【０００６】
実施形態によれば、統合環境生成器は、入力変換モジュール、検証モジュール、トラバース・モジュール（ｔｒａｖｅｒｓａｌ  ｍｏｄｕｌｅ）、テンプレート選択モジュール、およびファイル生成モジュールを含む。入力変換モジュールは、入力ファイルを受け取り、入力ファイルをマークアップ言語ファイルに変換するよう構成されている。入力ファイルは、展開されるアプリケーションのモジュール、モジュール間の依存関係、モジュールをテストするテスト・ケース、およびスケジューリング情報を特定する。検証モジュールは、ルールを受け取り、ルールと対照してマークアップ言語ファイルを検証するよう構成されており、ルールは、モジュールの依存関係を入力ファイルに含めるための統一フォーマットを規定する。トラバース・モジュールは、モジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースを、検証されたマークアップ言語ファイルから特定するよう構成されている。テンプレート選択モジュールは、モジュール間の特定された依存関係に対しビルド・スクリプト・テンプレートを、特定されたスケジューリング情報に対しスケジューリング・スクリプト・テンプレートを、さらに特定されたテスト・ケースに対しテスト・ケース・スクリプト・テンプレートを選択するよう構成されている。ファイル生成モジュールは、ビルド・スクリプト・テンプレートからビルド・スクリプトを、スケジューリング・スクリプト・テンプレートからスケジューリング・スクリプトを、テスト・ケース・スクリプト・テンプレートからテスト・ケース・スクリプトを生成するよう構成されている。
【０００７】
実施形態によれば、ビルド・スクリプトを生成する方法は、入力ファイルを受け取ることと、入力ファイルをマークアップ言語ファイルに変換することとを含む。入力ファイルは、アプリケーションのモジュール、モジュール間の依存関係、モジュールをテストするためのテスト・ケース、およびスケジューリング情報を特定する。本方法は、ルールを受け取ることと、ルールと対照してマークアップ言語ファイルを検証することとをさらに含み、ルールは、モジュールの依存関係を入力ファイルに含めるための統一フォーマットを規定する。本方法はさらに、モジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースを、検証されたマークアップ言語ファイルから特定することと、モジュール間の特定された依存関係に対しビルド・スクリプト・テンプレートを、特定されたスケジューリング情報に対しスケジューリング・スクリプト・テンプレートを、特定されたテスト・ケースに対しテスト・ケース・スクリプト・テンプレートを選択することと、ビルド・スクリプト・テンプレートからビルド・スクリプトを、スケジューリング・スクリプト・テンプレートからスケジューリング・スクリプトを、さらにテスト・ケース・スクリプト・テンプレートからテスト・ケース・スクリプトを生成することとを含む。実施形態によれば、上述の方法は、コンピュータ・システムによって実行されると本方法を実行する、非一時的なコンピュータ可読媒体上に格納されたコンピュータ・プログラムにおいて具現化されるとよい。
【図面の簡単な説明】
【０００８】
以下の図面を参照して、本発明の実施形態について下記の説明において詳しく記載する。
【０００９】
【図１】実施形態による、統合環境生成器のシステム図を示す。
【図２】実施形態による、統合環境生成器のより詳細なシステム図を示す。
【図３】実施形態による、ＵＭＬ（Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ：統一モデリング言語）デザインの例を示す。
【図４】実施形態による、ツリー構造の例を示す。
【図５】実施形態による、展開パッケージを生成する方法を示す。
【図６】実施形態による、本願明細書に記載される統合環境生成器のハードウェア・プラットフォームとして動作するコンピュータ・システムを示す。
【発明を実施するための形態】
【００１０】
簡潔さおよび説明のために、実施形態の原理について、その例を主に参照して記載する。以下の説明では、実施形態の完全な理解をもたらすために特定の詳細事項が多数記載される。しかし、当業者であれば当然のことながら、実施形態は、こうした特定の詳細事項に制限されることなく実践可能である。いくつかの例では、実施形態を不必要に曖昧にしないよう、周知の方法および構造は詳しく記載されていない。さらに、本願明細書に記載される実施形態は、様々な組み合わせで互いに使用され得る。
【００１１】
１．概要
実施形態によれば、統合環境生成器は、コンピュータ・システム上で、アプリケーションの展開可能パッケージ用にビルド・スクリプトを生成するよう構成されている。ビルド・スクリプトは、一連のルールと対照して検証された、統一フォーマットで提示された情報を含む入力ファイルから生成される。入力ファイル内の情報は、アプリケーションのモジュール間の依存関係を特定し、展開パッケージを作成するために必要な他の情報を含む。ルールは、モジュールおよびその他の構成要素に関してアーキテクチャ情報を規定し、入力ファイルを検証するために使用される。統合環境生成器はさらに、いつどのくらいの頻度で、ビルド・スクリプトおよび展開パッケージが生成されなくてはならないかを示す、スケジューリング・スクリプトを生成するよう構成されている。
【００１２】
アプリケーション展開段階の間、多数のソフトウェア・デベロッパーが協力してアプリケーションの作成およびテストを行うこともある。デベロッパーは、種々のタスクを実行するツールを利用することで効率性を上げる。例えば、継続的統合は、デベロッパーがアプリケーション・コードを変更している間に、一定間隔をおいてシステム・ビルドを実行するプロセスである。継続的統合のプロセスによって、デベロッパーは、変更されたアプリケーション・コードが、他のデベロッパーにより開発されたコードと互換性を持つことを保証することができる。変更されたアプリケーション・コードと、他のデベロッパーにより開発されたコードとの互換性を保証するために、統合環境生成器はさらに、テスト・ケース・スクリプトを生成して、変更されたアプリケーション・コードにコード化されたモジュールの依存関係をテストする。
【００１３】
したがって、統合環境生成器は、アプリケーション・コードに加えられた変更がコンパイルされてアプリケーションの他の部分に対し定期的にテストされるよう、ビルド・スクリプトおよびスケジューリング・スクリプトを定期的に作成することによって、デベロッパーを支援する。
【００１４】
２．システム
図１は、実施形態による統合環境生成器１００を示す。統合環境生成器１００は、入力として入力ファイル１０１およびルール１０２を受領する。
【００１５】
一実施形態では、入力ファイル１０１は統一モデリング言語（ＵＭＬ）ファイルであるが、他のフォーマットまたは言語が入力ファイル１０１に使用されてもよい。ＵＭＬは、アプリケーションのビジュアル・モデルを作成するために使用されるとよい標準化されたモデリング言語である。入力ファイル１０１は、アプリケーションの作成に使用される情報を提供するＵＭＬデザインを含むとよい。ＵＭＬデザインは、アプリケーションの構成要素を特定するとよい。構成要素は、ビジネス・プロセス、ユーザ、ソフトウェア・コンポーネント、アクティビティなどを含むとよい。ＵＭＬデザインはさらに、アプリケーションのモジュール、およびモジュール間の依存関係を特定する。ＵＭＬデザインはさらに、いつどのくらいの頻度で展開パッケージを作成するかを示すスケジューリング情報、ならびにモジュール間の依存関係をテストするテスト・ケースを含む。
【００１６】
ルール１０２は、モジュールおよびその他の構成要素に関してアーキテクチャ情報を規定し、入力ファイル１０１を検証するために使用される。ルール１０２は、入力ファイル１０１に含まれる情報のフォーマットまたは構文を規定するとよい。ルール１０２は、特定のシンボル、およびシンボルをその依存関係に基づき提供するための位置を使用して、依存関係が図を用い表現されなくてはならないと規定してもよい。他のルール１０２の例には、種々のモジュール間の依存関係が環状であってはならないこと、種々のモジュール間の依存関係が一方向でなくてはならないこと、種々のモジュール間の依存関係がＵＭＬの＜＜ｕｓｅ＞＞ステレオタイプによって規定されなくてはならないこと、モジュールがＵＭＬのコンポーネント表記法を使用して規定されなくてはならないこと、アプリケーション・コンポーネントの名前の最後の２文字が予約され、アプリケーション・コンポーネントを個別のモジュールにマップする助けとなるモジュールの省略形を形成することが含まれる。ルール１０２はさらに、スケジューリング要件を規定するとよい。例えば、スケジューリング情報は、ステレオタイプ＜＜ＡｂｓｔｒａｃｔＣｏｍｍｏｎＬａｙｅｒ＞＞の属性＜＜ｓｃｈｅｄｕｌｅＴｉｍｅＰｅｒｉｏｄＩｎＨｏｕｒｓ＞＞に値を与えることによって規定される。ルール１０２は、ＵＭＬ表記法を使用してモデル化されたすべてのメソッドに関して属性＜＜ｔｅｓｔＣａｓｅＩｄ＞＞に値を与えることによってテスト・ケースが規定されなくてはならないということを含む、テスト・ケースに関する要件をさらに規定する。
【００１７】
統合環境生成器１００は、ビルド・スクリプト１０３、スケジューリング・スクリプト１０４、およびテスト・ケース・スクリプト１０５を出力する。ビルド・スクリプト１０３は、展開パッケージをビルドするのに使用されるスクリプトである。ビルド・スクリプトは、モジュール間の依存関係、および展開パッケージを作成するためのその他の情報などの情報を特定する。例えば、ビルド・スクリプト１０３は、展開パッケージ１０７を生成するためにビルド・ツール１０６によって使用される。ビルド・ツール１０６は、市販のソフトウェア・ツールであってもよい。スケジューリング・スクリプト１０４は、いつどのくらいの頻度でビルド・スクリプトおよび展開パッケージが生成されなくてはならないかを特定するために、統合環境生成器１００によって生成されるスクリプトである。例えば、スケジューリング・スクリプト１０４は、アプリケーション・コードにコード化されたモジュールに加えられる任意の変更が毎日のビルドで記憶されるように、展開パッケージが、毎日ＰＭ９時に６時間かけてビルドされなくてはならないと示してもよい。テスト・ケース・スクリプト１０５は、モジュール間の依存関係をテストするスクリプトである。テスト・ケース・スクリプト１０５は、特定のモジュールに対して実行されるべきテストを示し、さらに、どのように各テストが関連付けられるかを示してもよい。
【００１８】
図２は、統合環境生成器１００のより詳細なシステム図を示す。統合環境生成器１００は、入力変換モジュール２００、検証モジュール２０１、トラバース・モジュール２０２、記録モジュール２０３、テンプレート選択モジュール２０４、およびファイル生成モジュール２０５を含む。モジュール２００〜２０５は、ソフトウェア・モジュール、ハードウェア、またはソフトウェアとハードウェアとの組み合わせであればよい。
【００１９】
入力変換モジュール２００は、統合環境生成器１００への入力として入力ファイル１０１を受領する。上記のように、入力ファイル１０１は、アプリケーションの作成に使用される情報を提供するＵＭＬデザインを含むとよい。ＵＭＬデザインは、アプリケーションの構成要素を特定するとよい。構成要素は、ビジネス・プロセス、ユーザ、ソフトウェア・コンポーネント、アクティビティなどを含むとよい。ＵＭＬデザインはさらに、ビルド、または更新および展開されるアプリケーションのモジュール、ならびにモジュール間の依存関係を特定する。入力ファイル１０１内のＵＭＬデザインは、ＵＭＬメタモデルとして保存される。ＵＭＬメタモデルは、アプリケーションの構成要素を表現するデータ・モデルである。入力ファイル１０１のＵＭＬデザインをさらに処理するために、入力変換モジュール２００は、従来のツールおよび技術を使用して、ＵＭＬデザインのＵＭＬメタモデルをＸＭＬファイル２１０または他のマークアップ言語ファイルに変換するとよい。
【００２０】
検証モジュール２０１は、統合環境生成器１００への入力として、ルール１０２を受理する。上記のように、ルール１０２は、モジュールおよびその他の構成要素に関してアーキテクチャ情報を規定する。例えば、ルール１０２は、入力ファイル１０１に含まれる情報のフォーマットまたは構文を規定するとよい。検証モジュール２０１はさらに、入力変換モジュール２００からＸＭＬファイル２１０を受け取る。検証モジュール２０１は、ルール１０２と対照してＸＭＬファイル２１０を検証する。検証モジュール２０１は、ＸＭＬファイル２１０がルール１０２に準拠していることを確認する。ルール１０２の例には、種々のモジュール間の依存関係が環状であってはならないこと、種々のモジュール間の依存関係が一方向でなくてはならないこと、種々のモジュール間の依存関係がＵＭＬの＜＜ｕｓｅ＞＞ステレオタイプによって規定されなくてはならないこと、モジュールがＵＭＬのコンポーネント表記法を使用して規定されなくてはならないこと、アプリケーション・コンポーネントの名前の最後の２文字が予約され、アプリケーション・コンポーネントを個別のモジュールにマップする助けとなるモジュールの省略形を形成することが含まれる。ルール１０２はさらに、スケジューリング要件およびテスト・ケース要件を規定する。
【００２１】
トラバース・モジュール２０２は、ＸＭＬファイル２１０をトラバースして、モジュール、モジュール間の依存関係、およびスケジューリング情報、およびテスト・ケースを、検証されたＸＭＬファイル２１０から特定する。検証されたＸＭＬファイル２１０が構文解析されて、この情報が特定されるとよい。
【００２２】
記録モジュール２０３は、ＸＭＬファイル２１０から特定されたモジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースの指示を、抽出情報データベース２０６またはその他のデータ・ストアに格納する。モジュール間の依存関係、スケジューリング情報、およびテスト・ケースは、情報が、例えば抽出情報データベース２０６に格納されるときに、それらが特定されたＸＭＬファイル２１０に関連付けられる。
【００２３】
格納済みの、モジュール間の特定された依存関係に基づき、記録モジュール２０３はさらに、マシンに理解可能なフォーマットで、モジュールの依存関係を反映するツリー構造を生成する。ツリー構造も、モジュール間の依存関係が特定されたＸＭＬファイル２１０と関連して抽出情報データベース２０６に格納される。
【００２４】
テンプレート選択モジュール２０４は、抽出情報データベース２０６に格納されたモジュール間の依存関係、スケジューリング情報、およびテスト・ケースに対し、複数のテンプレートのうちのテンプレートを特定する。この複数のテンプレートは、カスタマイズ可能であり、ソフトウェア・アーキテクチャ特有である。複数のテンプレートは、規定の構造のプレースホルダを有する。ビルド・スクリプト・テンプレート、スケジューリング・スクリプト・テンプレート、およびテスト・ケース・スクリプト・テンプレートを含む３タイプのテンプレートが存在する。当然、より多くのタイプのテンプレートがあってもよい。ビルド・スクリプト・テンプレートは、ビルド・スクリプト１０３を作成するために使用される。スケジューリング・スクリプト・テンプレートは、スケジューリング・スクリプト１０４を作成するために使用され、テスト・ケース・スクリプト・テンプレートは、テスト・ケース・スクリプト１０５を作成するために使用される。
【００２５】
テンプレート選択モジュール２０４は、抽出情報データベース２０６からＸＭＬファイル２１０の情報を読み出す。読み出された情報に基づき、テンプレート選択モジュール２０４は、複数のテンプレートのうち、ポピュレートするテンプレートを選択する。例えば、入力ファイル１０１がＸＭＬファイル２１０に変換されると、ＸＭＬファイルに対応するモジュール間の依存関係、スケジューリング情報、およびテスト・ケースが、抽出情報データベース２０６に保存される。モジュール間の依存関係、スケジューリング情報、およびテスト・ケースが読み出されると、テンプレート選択モジュール２０４は、読み出された依存関係に対してビルド・スクリプト・テンプレートを選択する。テンプレート選択モジュール２０４はさらに、スケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、テスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択する。テンプレート選択モジュール２０４は、読み出されたモジュール間の依存関係を用いてビルド・スクリプト・テンプレートを、スケジューリング情報を用いてスケジューリング・スクリプト・テンプレートを、テスト・ケースを用いてテスト・ケース・スクリプト・テンプレートをポピュレートする。例えば、テンプレート内のプレースホルダが、実際のＵＭＬ構成要素属性に置き換えられる。
【００２６】
ファイル生成モジュール２０５は、ビルド・スクリプト・テンプレート、スケジューリング・スクリプト・テンプレート、およびテスト・ケース・スクリプト・テンプレートにそれぞれ基づき、ビルド・スクリプト１０３、スケジューリング・スクリプト１０４、およびテスト・ケース・スクリプト１０５を含む出力ファイルを生成する。
【００２７】
展開パッケージ・ビルド・ツール（図示せず）は、スクリプトを使用して展開パッケージを作成し、それが次にコンピュータ・システムに展開される。展開パッケージ・ビルド・ツールは、展開パッケージを作成するための、従来の市販のビルド・ツールとすればよい。
【００２８】
３．例
図３は、実施形態による、ＵＭＬデザインの例を示す。図１を参照して上述したように、入力ファイル１０１は統一モデリング言語（ＵＭＬ）ファイルであるとよい。入力ファイル１０１は、アプリケーションの作成に使用される情報を提供するＵＭＬデザイン３００を含むとよい。ＵＭＬデザイン３００は、アプリケーションの構成要素を特定するとよい。構成要素は、ビジネス・プロセス、ユーザ、ソフトウェア・コンポーネント、アクティビティなどを含むとよい。図３では、４つのモジュール３０１〜３０４が、ＵＭＬの＜＜ｃｏｍｐｏｎｅｎｔ＞＞ステレオタイプによって特定されている。モジュール３０１は、「ＣｒｅｄｉｔＣａｒｄＡｕｔｈｏｒｉｚａｔｉｏｎＭｏｄｕｌｅ」という名称であり、モジュール３０２は、「ＳｅｃｕｒｉｔｙＭａｎａｇｅｍｅｎｔ」という名称であり、モジュール３０３は、「ＵｓｅｒＭａｎａｇｅｍｅｎｔ」という名称であり、モジュール３０４は、「ＢａｎｋＡｃｃｏｕｎｔＭａｎａｇｅｍｅｎｔ」という名称である。
【００２９】
ＵＭＬデザイン３００はさらに、＜＜ｕｓｅ＞＞ステレオタイプによってモジュール３０１〜３０４間の依存関係を特定する。例えば、モジュール３０１は、モジュール３０２，３０３、および３０４に依存しており、＜＜ｕｓｅ＞＞ステレオタイプ３０２ａ、３０３ａ、および３０４ａおよび矢印の方向性によって示されている。さらに、モジュール３０２および３０４は、＜＜ｕｓｅ＞＞ステレオタイプ３０３ｂおよび３０３ｃ、ならびに矢印の方向性によって示されているように、モジュール３０３に依存している。
【００３０】
図４は、図３内のモジュール３０１〜３０４の依存関係を反映するツリー構造４００を示す。上記のように、格納済みの、特定されたモジュール３０１〜３０４間の依存関係に基づき、マシンに理解可能なフォーマットで、モジュールの依存関係を反映するツリー構造４００が生成される。
【００３１】
４．方法
図５は、実施形態による方法５００を示す。方法５００、ならびに本願明細書に記載される他のステップは、限定ではなく例として、図１〜２に関して記載され得る。
【００３２】
ステップ５０１にて、統合環境生成器１００が、入力ファイル１０１などの入力ファイルを受け取る。上記のように、入力ファイルは、アプリケーションの作成に使用される情報を提供するＵＭＬデザインを含むとよい。ＵＭＬデザインは、アプリケーションの構成要素を特定するとよい。構成要素は、ビジネス・プロセス、ユーザ、ソフトウェア・コンポーネント、アクティビティなどを含むとよい。ＵＭＬデザインはさらに、アプリケーションのモジュール、およびモジュール間の依存関係を特定する。入力ファイル内のＵＭＬデザインは、ＵＭＬメタモデルとして保存される。ＵＭＬメタモデルは、アプリケーションの構成要素を表現するデータ・モデルである。
【００３３】
さらにステップ５０１で、統合環境生成器１００は、ルール１０２などのルールを、統合環境生成器１００へのもう１つの入力として受け取る。上記のように、ルールは、モジュールおよびその他の構成要素に関してアーキテクチャ情報を規定する。
【００３４】
ステップ５０２にて、統合環境生成器１００は、ＵＭＬデザインをＸＭＬファイルに変換する。入力ファイル内のＵＭＬデザインは、ＵＭＬメタモデルとして保存される。ＵＭＬメタモデルは、アプリケーションの構成要素を表現するデータ・モデルである。ＵＭＬメタモデルは、従来のツールおよび技術を使用してＸＭＬファイルに変換される。ＸＭＬの代わりに、他のフォーマットが使用されてもよい。さらに、ＵＭＬの代わりに他のフォーマットが入力ファイルに使用されてもよい。入力ファイルがＸＭＬで提供されると、その結果ステップ５０２は実行されない。
【００３５】
ステップ５０３にて、統合環境生成器１００は、ステップ５０２にて作成されたＸＭＬファイルをルールと対照して検証し、ＸＭＬファイルがルールに準拠していることを確認する。
【００３６】
ステップ５０４にて統合環境生成器１００は、ＸＭＬファイルをトラバースして、モジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースを、検証されたＸＭＬファイルから特定する。例えば、検証されたＸＭＬファイルが構文解析され、モジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースが特定される。
【００３７】
ステップ５０５にて、統合環境生成器１００は、ＸＭＬファイルから特定されたモジュール、モジュール間の依存関係、スケジューリング情報、およびテスト・ケースの指示を、抽出情報データベースまたはその他のデータ・ストアに格納する。モジュール間の依存関係、スケジューリング情報、およびテスト・ケースが、それらが特定されたＸＭＬファイルと関連して格納される。
【００３８】
ステップ５０６にて、格納済みの、モジュール間の特定された依存関係に基づき、モジュールの依存関係を反映するツリー構造が生成される。ツリー構造も、モジュール間の依存関係が特定されたＸＭＬファイルと関連して抽出情報データベースに格納される。
【００３９】
ステップ５０７にて、統合環境生成器１００は、抽出情報データベースに格納されているモジュール間の依存関係、スケジューリング情報、およびテスト・ケースに対し、複数のテンプレートのうちのテンプレートを特定する。この複数のテンプレートは、ビルド・スクリプト・テンプレート、スケジューリング・スクリプト・テンプレート、およびテスト・ケース・スクリプト・テンプレートを含むとよい。ビルド・スクリプト・テンプレートは、ビルド・スクリプトを作成するために使用される。スケジューリング・スクリプト・テンプレートは、スケジューリング・スクリプトを作成するために使用される。テスト・ケース・スクリプト・テンプレートは、テスト・ケース・スクリプトを作成するために使用される。ＸＭＬファイルの情報が、抽出情報データベースから読み出される。読み出された情報に基づき、複数のテンプレートのうち、ポピュレートするテンプレートが選択される。例えば、入力ファイルがＸＭＬファイルに変換されると、ＸＭＬファイルに対応するモジュール間の依存関係、スケジューリング情報、およびテスト・ケースが、抽出情報データベースに保存される。モジュール間の依存関係、スケジューリング情報、およびテスト・ケースが読み出されると、読み出されたモジュール間の依存関係に対してビルド・スクリプト・テンプレートが選択される。統合環境生成器１００はさらに、スケジューリング情報に対してスケジューリング・スクリプト・テンプレートを、テスト・ケースに対してテスト・ケース・スクリプト・テンプレートを選択する。次に、ビルド・スクリプト・テンプレートは、読み出されたモジュール間の依存関係を用いてポピュレートされ、スケジューリング・スクリプト・テンプレートは、スケジューリング情報を用いてポピュレートされ、テスト・ケース・スクリプト・テンプレートは、テスト・ケースを用いてポピュレートされる。
【００４０】
ステップ５０８にて、統合環境生成器１００は、ビルド・スクリプト・テンプレート、スケジューリング・スクリプト・テンプレート、およびテスト・ケース・スクリプト・テンプレートにそれぞれ基づくビルド・スクリプト、スケジューリング・スクリプト、およびテスト・ケース・スクリプトを含むファイルを出力する。
【００４１】
ステップ５０９にて、展開パッケージ・ビルド・ツールは、スクリプトを使用して展開パッケージを作成し、それが次にコンピュータ・システムに展開される。展開パッケージ・ビルド・ツールは、展開パッケージを作成するための、従来の市販のビルド・ツールとすればよい。
【００４２】
５．コンピュータ・システム
図６は、統合環境生成器１００のハードウェア・プラットフォームとして使用されるとよいコンピュータ・システム６００を示す。コンピュータ・システム６００は、ストレージ・デバイスなど、１つ以上の非一時的なコンピュータ可読媒体上に格納されたソフトウェアとして具現化されるとよい、本願明細書に記載されたステップ、方法および機能のうちの１つ以上を実行するためのプラットフォームとして使用されるとよい。
【００４３】
コンピュータ・システム６００は、本願明細書に記載された方法、機能、およびその他のステップの一部または全部を実行するソフトウェア命令を実装または実行するとよいプロセッサ６０２または処理回路を含む。プロセッサ６０２からのコマンドおよびデータが、通信バス６０４上で伝達される。コンピュータ・システム６００はさらに、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）などの、非一時的なコンピュータ可読ストレージ・デバイス６０３を含み、ここに、実行時間中プロセッサ６０２のソフトウェアおよびデータがあるとよい。ストレージ・デバイス６０３はさらに、不揮発性データ・ストレージを含むとよい。コンピュータ・システム６００は、ネットワークに接続するためのネットワーク・インターフェース６０５を含むとよい。当業者であれば当然のことであるが、他の既知の電子構成要素が、コンピュータ・システム６００に追加されてもよく、またはコンピュータ・システム６００において代用されてもよい。
【００４４】
例を参照して実施形態について記載してきたが、当業者であれば、請求される実施形態の範囲から逸脱することなく、記載された実施形態に対し様々な変更を加えることができるであろう。さらに、本願明細書に記載された実施形態は、リアルタイム環境など、任意の環境のスクリプトを作成するために使用され得る。
【図１】
2011060277.tif 000003
【図２】
2011060277.tif 000004
【図３】
2011060277.tif 000005
【図４】
2011060277.tif 000006
【図５】
2011060277.tif 000007
【図６】
2011060277.tif 000008
【外国語明細書】
2011060277000001.pdf
2011060277000002.pdf
2011060277000003.pdf
2011060277000004.pdf