(58)【調査した分野】(Int.Cl.,DB名)
システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶する依存関係記憶手段と、
前記複数の操作の各々の実行順序を示す手順シーケンスを記憶する操作手順記憶手段と、
前記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する操作手順生成手段と
を含むシステム構築手順生成装置。
前記依存関係は、操作の対の一方を依存元、他方を依存先としたときに、依存先操作に係るプログラムモジュールの状態が当該操作を完了した状態である場合に依存元操作を実行することを示す前提状態依存、依存元操作に係るプログラムモジュールの状態が当該操作を完了した状態である場合に依存先操作を実行することを示す逆前提状態依存、依存元操作の実行後に依存先操作を実行することを示す通知依存、依存先操作の実行後に依存元操作を実行することを示す逆通知依存の内の少なくとも1つにより指定される
請求項2に記載のシステム構築手順生成装置。
システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係を示す依存関係情報を記憶し、
前記複数の操作の各々の実行順序を示す手順シーケンスを記憶し、
前記依存関係情報で示される前記1以上の依存関係の各々が満たされるように、前記手順シーケンスを更新し、出力する
システム構築手順生成方法。
【発明を実施するための形態】
【0014】
(第1の実施の形態)
次に、本発明の第1の実施の形態について説明する。
【0015】
はじめに、本発明の第1の実施の形態におけるシステム構築で実行される操作と、操作間に設定される依存関係123について説明する。
【0016】
本発明の第1の実施の形態における構築対象のコンピュータシステムは、複数のプログラムモジュール(以下、モジュールとする)により構成され、複数のモジュールの各々に対して、複数種別の操作の内の1以上が実行される。
【0017】
図6は、本発明の第1の実施の形態における、モジュールに対する操作と、操作によるモジュールの状態遷移を示す図である。
【0018】
本発明の第1の実施の形態では、操作の種別として、「install(インストール)」、「uninstall(アンインストール)」、「load(起動)」、「unload(停止)」、及び、「reload(再起動)」が用いられる。
【0019】
ここで、「install」は、システムを構築するコンピュータの外部記憶部等にモジュールを起動可能となるように配置する操作を示す。
図6に示すように、「install」が完了するとモジュールの状態は「installed(インストール済み)」に遷移する。
【0020】
「uninstall」は、外部記憶部等から、インストール済みのモジュールを削除する操作を示す。「uninstall」が完了するとモジュールの状態は「none(なし)」に遷移する。
【0021】
「load」は、インストールされたモジュールをコンピュータのメモリ等に展開し、当該モジュールの処理を起動する操作を示す。「load」が完了するとモジュールの状態は「loaded(起動済み)」に遷移する。
【0022】
「unload」は、モジュールを停止する操作を示す。「unload」が完了するとモジュールの状態は「installed」に遷移する。
【0023】
「reload」は、モジュールを再起動する操作を示す。モジュールの状態が「loaded」であれば、上述の「unload」と「load」を順に実行する。モジュールの状態が「installed」であれば、「load」を実行する。「reload」が完了するとモジュールの状態は、「loaded」に遷移する。
【0024】
図7は、本発明の第1の実施の形態における、依存関係123の種別の例を示す図である。
【0025】
本発明の第1の実施の形態では、依存関係123の種別として、前提状態依存、逆前提状態依存、通知依存、逆通知依存が用いられると仮定する。
【0026】
図7において、2つの操作間の矢印が依存関係123を示し、矢印の元が依存元、先が依存先、矢印に添付された<>内が、依存関係123の種別を示す。
【0027】
ここで、「前提状態依存」は、依存元の操作を実行するためには、依存先の操作に対応するモジュールの状態が、当該操作が完了した状態である必要があることを示す。例えば、
図7のように、「Module A : install」を依存元、「Module B : install」を依存先とした前提状態依存が設定されている場合、モジュールAの「install」を実行するためには、モジュールBの状態が「installed」である必要がある。
【0028】
「逆前提状態依存」は、前提状態依存とは逆の依存関係123で、依存先の操作を実行するためには、依存元の操作に対応するモジュールの状態が、当該操作が完了した状態である必要があることを示す。例えば、「Module A : install」を依存元、「Module B : install」を依存先とした逆前提状態依存が設定されている場合、モジュールBの「install」を実行するためには、モジュールAの状態が「installed」である必要がある。
【0029】
「通知依存」は、依存元の操作を実行後、依存先の操作を実行することを示す。例えば、「Module A : install」を依存元、「Module B : reload」を依存先とした通知依存が設定されている場合、モジュールAの「install」を実行後、モジュールBの「reload」を実行する。
【0030】
「逆通知依存」は、通知依存とは逆の依存関係123で、依存先の操作を実行後、依存元の操作を実行することを示す。例えば、「Module A : reload」を依存元、「Module B : install」を依存先とした逆通知依存が設定されている場合、モジュールBの「install」を実行後、モジュールAの「reload」を実行する。
【0031】
次に、本発明の第1の実施の形態の構成について説明する。
図2は、本発明の第1の実施の形態における、システム構築手順生成装置100の構成を示すブロック図である。
【0032】
図2を参照すると、本発明の第1の実施の形態のシステム構築手順生成装置100は、入力部101、操作手順生成部102、出力部103、依存関係記憶部111、及び、操作手順記憶部112を含む。
【0033】
ここで、依存関係記憶部111は、依存関係情報121を記憶する。また、操作手順記憶部112は、手順シーケンス122を記憶する。
【0034】
依存関係情報121は、システムの構築に必要な複数の操作の内の1以上の対の各々の依存関係123を示す。
【0035】
図8、9は、本発明の第1の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。
図8、9の手順シーケンス122は、それぞれ、
図8、9の依存関係情報121に対して設定された手順シーケンス122である。
【0036】
ここで、
図7と同様に、依存関係情報121の2つの操作間の矢印が依存関係123を示し、矢印の元が依存元、先が依存先、矢印に添付された<>内が、依存関係123の種別を示す。
図8の依存関係情報121では、システムの構築に必要な5つの操作の内の2つの対に依存関係123(123a、b)が設定されている。
【0037】
手順シーケンス122は、システムの構築に必要な複数の操作の各々の実行順序を示す。
図8の手順シーケンス122は、モジュールBの「install」、モジュールCの「install」、モジュールCの「load」、…の順番に、操作が実行されることを示している。
【0038】
なお、システムの構築に必要な複数の操作は、予めユーザにより入力され、依存関係情報121と手順シーケンス122に設定されていると仮定する。また、初期状態では、依存関係情報121に依存関係123は設定されておらず、手順シーケンス122における各操作は、例えば、入力された順に配置されていると仮定する。
【0039】
入力部101は、ユーザから依存関係123の追加または削除の入力を受け付け、依存関係情報121を更新する。依存関係123の入力は、例えば、ユーザによる、後述する依存性定義画面201上での図示しないマウスやタッチスクリーン等の入力デバイスの操作により行われる。
【0040】
操作手順生成部102は、依存関係情報121が更新された場合、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、手順シーケンス122を更新する。
【0041】
出力部103は、更新された依存関係情報121、及び、手順シーケンス122を出力する。ここで、出力部103は、例えば、図示しない表示デバイスにより、出力画面200を生成し、表示する。
【0042】
図10は、本発明の第1の実施の形態における、出力画面200の例を示す図である。出力画面200は、依存性定義画面201(依存関係画面)と手順画面202を含む。
【0043】
ここで、依存性定義画面201は、依存関係情報121を示す。
図10の依存性定義画面201は、
図9の依存関係情報121を示している。依存性定義画面201では、システムを構成する複数のモジュールが配置され、各モジュールには、システム構築時に当該モジュールに対して実行される操作が配置される。また、依存関係123は、依存元操作から依存先操作への矢印で示される。
【0044】
手順画面202は、手順シーケンス122を示す。
図10の手順画面202は、
図9の手順シーケンス122を示している。
【0045】
ユーザは、入力部101を介して、依存性定義画面201上で、依存元操作と依存先操作を接続し、依存関係123の種別を指定することにより、依存関係123を追加する。また、ユーザは、入力部101を介して、依存性定義画面201上で、設定済みの依存元操作と依存先操作間の接続を削除することにより、依存関係123を削除する。
【0046】
なお、システム構築手順生成装置100はCPU(Central Processing Unit)とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、依存関係記憶部111と操作手順記憶部112とは、それぞれ個別の記憶媒体でも、1つの記憶媒体によって構成されていてもよい。
【0047】
次に、本発明の第1の実施の形態におけるシステム構築手順生成装置100の動作について説明する。
図3は、本発明の第1の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
【0048】
ここでは、
図8のように、依存関係情報121、手順シーケンス122が設定されていると仮定する。
【0049】
はじめに、入力部101は、ユーザから依存関係123の追加または削除の入力を受け付ける(ステップS101)。
【0050】
例えば、入力部101は、依存元操作「Module B : install」、依存先操作「Module A : install」、依存関係種別「前提状態依存」である依存関係123cの追加を受け付ける。
【0051】
入力部101は、入力内容に従って依存関係情報121を更新する(ステップS102)。
【0052】
例えば、入力部101は、
図9のように、依存関係情報121を更新(依存関係123cを追加)する。
【0053】
出力部103は、依存関係情報121の更新内容に従って、依存性定義画面201を更新する(ステップS103)。
【0054】
例えば、出力部103は、
図10のように、依存性定義画面201を更新(Module B : installからModule A : installへ前提状態依存を示す矢印を追加)する。
【0055】
次に、操作手順生成部102は、入力内容が依存関係123の追加か削除かを判定する(ステップS104)。ステップS104において、依存関係123の追加の場合、操作手順生成部102は、後述する手順シーケンス更新処理(ステップS301〜S332)に従って、依存関係情報121で示される依存関係123が満たされるように、手順シーケンス122を更新する(ステップS105)。
【0056】
例えば、操作手順生成部102は、
図9のように、手順シーケンス122を更新する。
【0057】
最後に、出力部103は、手順シーケンス122の更新内容に従って、手順画面202を更新する(ステップS106)。
【0058】
例えば、出力部103は、
図10のように、手順画面202を更新(
図9の手順シーケンス122を表示)する。
【0059】
なお、ステップS104において、入力内容が依存関係123の削除の場合、操作手順生成部102は、現在の手順シーケンス122を保持する。
【0060】
ユーザ等は、出力された手順シーケンス122に従って、各操作を実行することにより、システムを構築することができる。
【0061】
図4、5は、本発明の第1の実施の形態における、手順シーケンス更新処理(ステップS105)の詳細を示すフローチャートである。
【0062】
はじめに、操作手順生成部102は、追加された依存関係123の種別が、「前提状態依存または逆通知依存」、もしくは、「逆前提状態依存または通知依存」のいずれであるかを判定する(ステップS301)。
【0063】
ステップS301で、依存関係123の種別が前提状態依存または逆通知依存の場合、操作手順生成部102は、現在の手順シーケンス122において、追加された依存関係123の依存元操作が依存先操作より先に実行されるかどうかを判定する(ステップS302)。
【0064】
ステップS302で、追加された依存関係123の依存元操作が依存先操作より先に実行される場合(ステップS302/Yes)、操作手順生成部102は、現在の手順シーケンス122における、依存元操作から依存先操作までのシーケンスを部分シーケンス131として抽出する(ステップS303)。
【0065】
図11、12は、本発明の第1の実施の形態における、手順シーケンス122の更新例を示す図である。例えば、
図11の状態1のように依存関係情報121、及び、手順シーケンス122(
図8の依存関係情報121、及び、手順シーケンス122)が設定されているときに、依存関係123cが追加されたと仮定する。この場合、追加された依存関係123(前提状態依存)の依存元操作(Module B : install)は依存先操作(Module A : install)より先に実行される。従って、操作手順生成部102は、
図11の状態2のように、依存元操作(Module B : install)から依存先操作(Module A : install)までのシーケンスを部分シーケンス131として抽出する。
【0066】
また、操作手順生成部102は、移動した操作を格納するための空のリストを移動リスト132として生成する(ステップS304)。
【0067】
操作手順生成部102は、部分シーケンス131の先頭の操作(依存元操作)を末尾に移動するとともに(ステップS305)、移動リスト132に追加する(ステップS306)。
【0068】
例えば、操作手順生成部102は、
図11の状態3のように、依存元操作(Module B : install)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0069】
次に、操作手順生成部102は、対象操作に、部分シーケンス131の先頭の操作から依存先操作の前の操作までを順番に設定して、ステップS308からS311までを繰り返す(ステップS307)。
【0070】
操作手順生成部102は、依存関係情報121に含まれる前提状態依存または逆通知依存の依存関係123の内、対象操作を依存元、移動リスト132内の操作を依存先とする依存関係123があるかどうかを判定する(ステップS308)。
【0071】
ステップS308で、依存関係123が無い場合(ステップS308/No)、操作手順生成部102は、依存関係情報121に含まれる逆前提状態依存または通知依存の依存関係123の内、対象操作を依存先、移動リスト132内の操作を依存元とする依存関係123があるかどうかを判定する(ステップS309)。
【0072】
ステップS308、S309で依存関係123がある場合(ステップS308/Yes、ステップS309/Yes)、操作手順生成部102は、対象操作を部分シーケンス131の末尾に移動するとともに(ステップS310)、移動リスト132に追加する(ステップS311)。
【0073】
例えば、
図11の状態3において、部分シーケンス131における操作「Module C : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module B : install」を依存先とした前提状態依存(依存関係123b)がある。従って、操作手順生成部102は、
図11の状態4のように、対象操作(Module C : install)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0074】
また、
図11の状態4において、部分シーケンス131における操作「Module C : load」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module C : install」を依存先とした逆通知依存(依存関係123a)がある。従って、操作手順生成部102は、
図11の状態5のように、対象操作(Module C : load)を、部分シーケンス131の末尾に移動し、移動リスト132に追加する。
【0075】
また、
図11の状態5において、部分シーケンス131における操作「Module D : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、または、依存先とした依存関係123は無い。従って、操作手順生成部102は、
図11の状態5の部分シーケンス131を保持する。
【0076】
次に、操作手順生成部102は、現在の手順シーケンス122における、追加された依存関係123の依存元操作から依存先操作までのシーケンスを、更新された部分シーケンス131で置換する(ステップS312)。
【0077】
例えば、操作手順生成部102は、
図11の状態5の部分シーケンス131をもとに、状態6のような手順シーケンス122(
図9の手順シーケンス122)を得る。
【0078】
一方、ステップS301で、依存関係123の種別が逆前提状態依存または通知依存の場合、操作手順生成部102は、現在の手順シーケンス122において、追加された依存関係123の依存元操作が依存先操作より後に実行されるかどうかを判定する(ステップS322)。
【0079】
ステップS322で、追加された依存関係123の依存元操作が依存先操作より後に実行される場合(ステップS322/Yes)、操作手順生成部102は、現在の手順シーケンス122における、依存先操作から依存元操作までのシーケンスを部分シーケンス131として抽出する(ステップS323)。
【0080】
例えば、
図12の状態1のように依存関係情報121、及び、手順シーケンス122が設定されているときに、依存関係123fが追加されたと仮定する。この場合、追加された依存関係123(逆前提状態依存)の依存元操作(Module B : install)は依存先操作(Module A : install)より後に実行される。従って、操作手順生成部102は、
図12の状態2のように、依存先操作(Module A : install)から依存元操作(Module B : install)までのシーケンスを部分シーケンス131として抽出する。
【0081】
また、操作手順生成部102は、移動した操作を格納するための空のリストを移動リスト132として生成する(ステップS324)。
【0082】
操作手順生成部102は、部分シーケンス131の末尾の操作(依存元操作)を先頭に移動するとともに(ステップS325)、移動リスト132に追加する(ステップS326)。
【0083】
例えば、操作手順生成部102は、
図12の状態3のように、依存元操作(Module B : install)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0084】
次に、操作手順生成部102は、対象操作に、部分シーケンス131の末尾の操作から依存先操作の次の操作までを逆順に設定して、ステップS328からS331までを繰り返す(ステップS327)。
【0085】
操作手順生成部102は、依存関係情報121に含まれる逆前提状態依存または通知依存の依存関係123の内、対象操作を依存元、移動リスト132内の操作を依存先とする依存関係123があるかどうかを判定する(ステップS328)。
【0086】
ステップS328で、依存関係123が無い場合(ステップS328/No)、操作手順生成部102は、依存関係情報121に含まれる前提状態依存または逆通知依存の依存関係123の内、対象操作を依存先、移動リスト132内の操作を依存元とする依存関係123があるかどうかを判定する(ステップS329)。
【0087】
ステップS328、S329で依存関係123がある場合(ステップS328/Yes、ステップS329/Yes)、操作手順生成部102は、対象操作を部分シーケンス131の先頭に移動するとともに(ステップS330)、移動リスト132に追加する(ステップS331)。
【0088】
例えば、
図12の状態3において、部分シーケンス131における操作「Module C : load」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module B : install」を依存先とした逆前提状態依存(依存関係123e)がある。従って、操作手順生成部102は、
図12の状態4のように、対象操作(Module C : load)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0089】
また、
図12の状態4において、部分シーケンス131における操作「Module C : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、移動リスト132内の操作「Module C : load」を依存先とした通知依存(依存関係123d)がある。従って、操作手順生成部102は、
図12の状態5のように、対象操作(Module C : install)を、部分シーケンス131の先頭に移動し、移動リスト132に追加する。
【0090】
また、
図12の状態5において、部分シーケンス131における操作「Module D : install」を対象操作とした場合、依存関係情報121には、対象操作を依存元、または、依存先とした依存関係123は無い。従って、操作手順生成部102は、
図12の状態5の部分シーケンス131を保持する。
【0091】
次に、操作手順生成部102は、現在の手順シーケンス122における、追加された依存関係123の依存先操作から依存元操作までのシーケンスを、更新された部分シーケンス131で置換する(ステップS332)。
【0092】
例えば、操作手順生成部102は、
図12の状態5の部分シーケンス131をもとに、状態6のような手順シーケンス122を得る。
【0093】
以上により、本発明の第1の実施の形態の動作が完了する。
【0094】
なお、本発明の第1の実施の形態においては、出力部103が、更新された手順シーケンス122を出力画面200により出力しているが、操作手順生成部102、または、出力部103が、更新された手順シーケンス122を、ファイル等により出力してもよい。
【0095】
また、操作手順生成部102、または、出力部103は、更新された手順シーケンス122に、操作間の依存関係123に関する情報(依存先、依存元、依存関係123の種別等)を含めて出力してもよい。
【0096】
次に、本発明の第1の実施の形態の特徴的な構成を説明する。
図1は、本発明の第1の実施の形態の特徴的な構成を示すブロック図である。
【0097】
図1を参照すると、システム構築手順生成装置100は、依存関係記憶部111、操作手順記憶部112、及び、操作手順生成部102を含む。
【0098】
ここで、依存関係記憶部111は、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係123を示す依存関係情報121を記憶する。操作手順記憶部112は、複数の操作の各々の実行順序を示す手順シーケンス122を記憶する。操作手順生成部102は、依存関係情報121が更新された場合、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、手順シーケンス122を更新し、出力する。
【0099】
本発明の第1の実施の形態によれば、複数のプログラムモジュールの各々に対して複数種別の操作を実行することにより構築されるシステムの構築手順を生成できる。その理由は、依存関係記憶部111が、システムの構築に必要な、複数のプログラムモジュールのいずれかと複数の操作種別のいずれかの組で示される複数の操作の内の、1以上の対の各々の依存関係123を示す依存関係情報121を記憶し、操作手順生成部102が、依存関係情報121が更新された場合に、依存関係情報121で示される1以上の依存関係123の各々が満たされるように、複数の操作の各々の実行順序を示す手順シーケンス122を更新するためである。これにより、手順シーケンス122の生成が自動化され、手順シーケンス122の設計コストを削減、設計ミスを低減できる。
【0100】
また、本発明の第1の実施の形態によれば、依存元操作と依存先操作の実行順序が異なる複数種別(双方向)の依存関係を用いて、システムの構築手順を生成できる。その理由は、操作手順生成部102が、依存関係123の種別に応じて、依存元操作、依存先操作のどちらを先に実行するかを決定して、手順シーケンス122を更新するためである。
【0101】
また、本発明の第1の実施の形態によれば、依存関係の追加や削除による、システム構築手順への影響を容易に把握できる。その理由は、入力部101が、依存性定義画面201上で、依存関係123の追加または削除の入力を受け付けて、依存関係情報121を更新し、出力部103が、依存関係情報121と手順シーケンス122が更新された場合に、依存性定義画面201と手順画面202とを生成し、出力するためである。
【0102】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
【0103】
本発明の第2の実施の形態は、並列に実行可能な複数の手順シーケンス122を生成する点において、本発明の第1の実施の形態と異なる。
【0104】
本発明の第2の実施の形態の構成は、本発明の第1の実施の形態の構成(
図2)と同様となる。
【0105】
本発明の第2の実施の形態においては、操作手順記憶部112は、1以上の操作集合の各々対応に、手順シーケンス122を記憶する。ここで、操作集合とは、システムの構築に必要な複数の操作の内、依存関係123の連鎖により辿ることのできる全ての操作を要素とする集合である。異なる操作集合間には、依存関係123が無いため、異なる操作集合に含まれる操作は並列に実行可能である。
【0106】
図14、15、17、18は、本発明の第2の実施の形態における、依存関係情報121と手順シーケンス122の例を示す図である。
【0107】
図14の依存関係情報121では、システムの構築に必要な5つの操作の内の3つの対に依存関係123(123i、j、h)が設定されている。そして、「Module A : install」、「Module D : install」を要素とする操作集合aと、「Module B : install」、「Module C : install」、「Module C : load」を要素とする操作集合bの2つの操作集合が形成され、それぞれの操作集合に対して、手順シーケンス122(122a、b)が設定されている。
【0108】
操作手順生成部102は、依存関係123が追加された場合、手順シーケンス122の統合を行う。また、操作手順生成部102は、依存関係123が削除された場合、手順シーケンス122の分割を行う。
【0109】
図16、19は、本発明の第2の実施の形態における、出力画面200の例を示す図である。本発明の第2の実施の形態においては、手順画面202に、1以上の手順シーケンス122が、並列実行可能な操作のシーケンスとして示される。
図16の依存性定義画面201と手順画面202は、
図15の依存関係情報121と手順シーケンス122cを示している。
図19の依存性定義画面201と手順画面202は、
図18の依存関係情報121と手順シーケンス122a、bを示している。
【0110】
次に、本発明の第2の実施の形態におけるシステム構築手順生成装置100の動作について説明する。
図13は、本発明の第2の実施の形態における、システム構築手順生成装置100の処理を示すフローチャートである。
【0111】
ここでは、
図14のように、依存関係情報121、手順シーケンス122が設定されていると仮定する。
【0112】
はじめに、入力部101は、ユーザから依存関係123の追加または削除の入力を受け付ける(ステップS201)。
【0113】
例えば、入力部101は、依存元操作「Module C : load」、依存先操作「Module A : install」、依存関係種別「前提状態依存」である依存関係123kの追加を受け付ける。
【0114】
入力部101は、入力内容に従って依存関係情報121を更新する(ステップS202)。
【0115】
例えば、入力部101は、
図15のように、依存関係情報121を更新(依存関係123kを追加)する。
【0116】
出力部103は、依存関係情報121の更新内容に従って、依存性定義画面201を更新する(ステップS203)。
【0117】
例えば、出力部103は、
図16のように、依存性定義画面201を更新(Module C : loadからModule A : installへ前提状態依存を示す矢印を追加)する。
【0118】
次に、操作手順生成部102は、入力内容が依存関係123の追加か削除かを判定する(ステップS204)。
【0119】
ステップS204において、依存関係123の追加の場合、操作手順生成部102は、追加前の依存関係情報121において、追加された依存関係123の依存元操作と依存先操作を含む操作集合が異なるかどうか(追加された依存関係123が操作集合を跨ぐかどうか)を判定する(ステップS205)。ステップS205において、異なる場合(ステップS205/Yes)、操作手順生成部102は、追加された依存関係123の種別が、「前提状態依存または逆通知依存」、もしくは、「逆前提状態依存または通知依存」のいずれであるかを判定する(ステップS206)。
【0120】
ステップS206において、前提状態依存または逆通知依存の場合、操作手順生成部102は、追加された依存関係123の依存元操作を含む手順シーケンス122を、依存先操作を含む手順シーケンス122の後に移動することにより、手順シーケンス122を統合する(ステップS207)。
【0121】
例えば、
図14の依存関係情報121において、追加された依存関係123kの依存元操作と依存先操作とは、異なる操作集合a、bに含まれる。また、追加された依存関係123kの種別は、前提状態依存である。従って、操作手順生成部102は、
図15のように、手順シーケンス122bを、手順シーケンス122aの後に移動することにより、手順シーケンス122cを生成する。
【0122】
ステップS206において、逆前提状態依存または通知依存の場合、操作手順生成部102は、追加された依存関係123の依存先操作を含む手順シーケンス122を、依存元操作を含む手順シーケンス122の後に移動することにより、手順シーケンス122を統合する(ステップS208)。
【0123】
また、ステップS205において、追加された依存関係123の依存元操作と依存先操作を含む操作集合が同じ場合(ステップS205/No)、上述の手順ステップ更新処理(ステップS301〜S322)に従って、依存元操作、及び、依存先操作を含む手順シーケンス122を更新する(ステップS209)。
【0124】
最後に、出力部103は、手順シーケンス122の更新内容に従って、手順画面202を更新する(ステップS212)。
【0125】
例えば、出力部103は、
図16のように、手順画面202を更新(
図15の手順シーケンス122cを表示)する。
【0126】
一方、ステップS204において、依存関係123の削除の場合、操作手順生成部102は、削除後の依存関係情報121において、削除された依存関係123の依存元操作と依存先操作を含む操作集合が異なるかどうか(依存関係123の削除により操作集合が分割されるかどうか)を判断する(ステップS210)。
【0127】
ステップS210で異なる場合(ステップS210/Yes)、操作手順生成部102は、依存元操作、及び、依存先操作を含む手順シーケンス122から、分割されたそれぞれの操作集合に対応する手順シーケンス122を抽出することにより、手順シーケンス122を、依存先操作を含む手順シーケンス122と依存元操作を含む手順シーケンス122とに分割する(ステップS211)。
【0128】
例えば、
図17のように、依存関係情報121、手順シーケンス122cが設定されているときに、入力部101が、依存関係123kの削除を受け付けたと仮定する。この場合、入力部101は、
図18のように、依存関係情報121を更新(依存関係123kを削除)する。
図18の依存関係情報121において、追加された依存関係123kの依存元操作と依存先操作とは、異なる操作集合a、bに含まれる。従って、操作手順生成部102は、手順シーケンス122cを、依存先操作を含む手順シーケンス122aと依存元操作を含む手順シーケンス122bとに分割する。そして、出力部103は、
図19のように、手順画面202を更新(
図18の手順シーケンス122a、bを表示)する。
【0129】
なお、操作手順生成部102は、分割した結果得られた手順シーケンス122のいずれかを、操作の数が少ない手順シーケンス122等、他の手順シーケンス122に統合してもよい。
【0130】
以上により、本発明の第2の実施の形態の動作が完了する。
【0131】
本発明の第2の実施の形態によれば、複数のシステム構築処理を並列実行可能な場合でも、システムの構築手順が生成できる。その理由は、操作手順生成部102が、依存関係123の追加、削除に伴う操作集合の統合、分割に応じて、手順シーケンス122の統合、分割を行うためである。
【0132】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0133】
この出願は、2012年3月1日に出願された日本出願特願2012−045761を基礎とする優先権を主張し、その開示の全てをここに取り込む。