【文献】
小谷 正行,ソフトウェア共同開発におけるワークフロー実行制御の一方式,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2006年 1月27日,第105巻, 第597号,pp.31-36
(58)【調査した分野】(Int.Cl.,DB名)
前記取得部は、複数の作業項目のそれぞれについて関連するファイルおよびファイルの変更箇所が記述された設計ドキュメントを読み込んで、複数の作業項目のそれぞれに関連するファイルを特定する請求項1及び3から6のいずれか一項に記載の情報処理装置。
一の作業項目に対応するファイルの変更作業があったことに応じて、当該一の作業項目と依存関係がある他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する通知部を更に備える請求項1から8のいずれか一項に記載の情報処理装置。
一の作業項目に関連付けられたファイルの変更に応じて当該一の作業項目に対して依存関係を有する他の作業項目による変更結果に問題が生じないか否かを確認するための確認用作業項目を、当該他の作業項目に基づき生成する生成部を更に備える請求項1、2及び4から10のいずれか一項に記載の情報処理装置。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
図1は、本実施形態の情報処理装置10の構成を示す。情報処理装置10は、複数の作業項目からなるプロジェクトを管理してユーザのソフトウエアの開発を支援し、作業項目間の依存関係の存在を判定することにより、ある作業項目によるファイルの修正が他の作業項目に影響を与える可能性がある場合に、他の作業項目で作業をするユーザに通知する。
【0009】
作業項目は、プロジェクトに含まれるそれぞれの作業を表し、例えば、開発対象のソフトウエアに含まれる、少なくとも1つのファイルを作成する作業、少なくとも1つのファイルを変更する作業、及び、少なくとも1つのファイルを確認する作業等を含む。
【0010】
情報処理装置10は、編集部102、変更記録部104、取得部106、対応入力部108、作業項目記録部110、依存関係検出部114、依存関係記録部116、判定部118、通知部120、及び、生成部122を備える。
【0011】
編集部102は、ソフトウエアに含まれるファイルの編集を管理する。編集部102は、変更前のファイルを変更記録部104から読み出してユーザに提供し、ユーザから変更後のファイル、及び、ファイルの変更がなされた作業項目名を受け取り、変更があったファイルと、ファイルの変更がなされた作業項目名とを変更記録部104に記録する。この際、編集部102は、ファイルのバージョン管理を行い、ユーザの指示に応じて変更対象のファイルをチェックアウトし、編集済みのファイルをチェックインして新たなバージョンとして管理してもよい。
【0012】
編集部102は、変更されたファイルのファイル名及び変更がなされた作業項目名を取得部106に供給する。また、編集部102は、変更がなされた作業項目名を判定部118に供給する。
【0013】
変更記録部104は、複数のファイルを記録し、ファイルが変更されたことに応じて、当該ファイルに対応付けて変更があった旨を記録する。例えば、変更記録部104は、編集部102から変更があったファイル及びファイルの変更の履歴を変更セットとして記録する。変更記録部104は、記録しているファイルを依存関係検出部114に供給する。
【0014】
取得部106は、複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する。例えば、取得部106は、編集部102から変更されたファイルのファイル名及び変更がなされた作業項目を取得し、これらを関連付けることにより、作業項目に関連付けたファイルを指定する。取得部106は、ファイル名と作業項目との関連付けの情報を作業項目記録部110に記録する。
【0015】
対応入力部108は、少なくとも1つの作業項目に対して関連する他の作業項目をユーザの指定に応じて対応付ける。対応入力部108は、複数の作業項目の関連付けの情報を作業項目記録部110に記録する。
【0016】
作業項目記録部110は、複数の作業項目に関する情報を記録する。例えば、作業項目記録部110は、作業項目ごとに、作業項目に関連するファイル、及び、作業項目に関連する他の作業項目の情報を記録する。作業項目記録部110は、作業項目に関する情報を判定部118に供給する。
【0017】
依存関係検出部114は、複数のファイル間の依存関係を検出する。例えば、依存関係検出部114は、変更記録部104に記録された複数のファイルから実行可能プログラムをビルドしたことに応じて、複数のファイル間の依存関係を検出する。依存関係検出部114は、検出した複数のファイル間の依存関係を依存関係記録部116に記録する。
【0018】
依存関係記録部116は、依存関係検出部114が検出した複数のファイル間の依存関係を記録する。依存関係記録部116は、複数のファイル間の依存関係を判定部118に供給する。
【0019】
判定部118は、ファイル間の依存関係に基づいて、少なくとも2つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する。例えば、判定部118は、変更があったファイルについての変更作業を表す一の作業項目名を編集部102から受け取ったときは、作業項目記録部110から一の作業項目に関連するファイルの情報を読み出して、一の作業項目に関連付けられたファイルを特定する。
【0020】
次に、判定部118は、依存関係記録部116から複数のファイル間の依存関係を読み出し、当該特定された一の作業項目に関連付けられたファイルに対して依存関係があるファイルを特定する。判定部118は、特定された依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。判定部118は、一の作業項目に依存関係がある他の作業項目の情報を通知部120及び生成部122に供給する。
【0021】
通知部120は、判定部118から、一の作業項目と依存関係がある他の作業項目の情報を受け取り、予め定められたタイミングにおいて他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する。
【0022】
生成部122は、判定部118から、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、当該他の作業項目に基づき確認用作業項目を生成する。
【0023】
このように、本実施形態の情報処理装置10は、ファイル間の依存関係に基づいて作業項目間の依存関係を判定し、一の作業項目においてファイルの変更を行った場合に、他の作業項目のユーザに対して通知等により注意を喚起する。これにより、情報処理装置10によれば、複数の作業項目において修正した複数のファイルから作成された実行モジュールを正しく動作させることができる。
【0024】
図2は、本実施形態の情報処理装置10の処理フローを示す。本実施形態において、情報処理装置10は、処理S102からS122までの処理を実行することにより、変更するファイルと関連する作業項目と依存関係のある他の作業項目のユーザに、変更があった旨を通知等する。
【0025】
まず、S102において、依存関係検出部114は、変更記録部104に予め記録された複数のファイルから実行可能プログラムをビルドしたことに応じて、複数のファイル間の依存関係を検出する。依存関係検出部114は、ビルドを実行せずにファイル間の依存関係を検出するMakedep等の静的解析ユーティリティプログラムを利用することにより、ビルド時のファイル間の依存関係を検出してもよい。また、依存関係検出部114は、ファイル間の依存関係をユーザの指定によるマニュアル入力で取得してもよい。依存関係検出部114は、検出した依存関係がある複数のファイルの情報を依存関係記録部116に記録する。依存関係検出部114は、複数のファイル間の依存関係の方向を合わせて依存関係記録部116に記録してもよい。
【0026】
次に、S104において、対応入力部108は、少なくとも1つの作業項目に対して関連する作業項目をユーザの指定に応じて対応付けて入力する。例えば、対応入力部108は、クライアント側ソフトウエアの変更等のクライアント側の作業項目と、当該クライアント側の作業項目と対応するサーバ側ソフトウエアの修正等のサーバ側の作業項目とを、ユーザからの指定により対応付ける。
【0027】
対応入力部108は、ユーザからの要求に応じて、複数の作業項目間の包含関係の情報を取得し、直接的又は間接的な包含関係にある作業項目同士、及び/又は、同一の作業項目に包含される複数の作業項目を関連する作業項目としてよい。例えば、対応入力部108は、一の作業項目の直下の下位階層に存在する作業項目、及び、一の作業項目の複数階層分下位階層に存在する作業項目を、一の作業項目に対応付けてよい。
【0028】
また、対応入力部108は、ユーザからの要求に応じて、ユーザが予め関連する作業項目間で作成した関連リンクの情報を取得し、関連リンクが作成された作業項目同士を関連する作業項目としてよい。対応入力部108は、作業項目ごとに当該作業項目に関連付けられた他の作業項目の情報を作業項目記録部110に記録する。
【0029】
次に、S106において、取得部106は、複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する。例えば、取得部106は、編集部102が変更されたファイル及び変更がなされた作業項目を受け取った場合に、編集部102から変更されたファイルのファイル名及び変更がなされた一の作業項目の情報を受け取り、これらを関連付ける。
【0030】
具体的には、まず、編集部102が、変更の対象となるファイルを特定するファイル名等の情報をユーザから受け取り、変更記録部104から対象となるファイルを読み込む。編集部102は、読み込んだ変更の対象となるファイルをユーザのローカルコンピュータに供給する(チェックアウト)。
【0031】
次に、編集部102は、変更されたファイルをユーザから受け取り、ユーザの変更作業に係る一の作業項目の名称等の作業項目情報を受け取る。編集部102は、変更されたファイルを変更セットとして変更記録部104に記録する(チェックイン)。編集部102は、変更されるファイルのファイル名と作業項目情報を取得部106に供給する。
【0032】
次に、取得部106は、編集部102から変更されたファイル及び作業項目情報を取得し、一の作業項目と変更されたファイルとを関連付けることにより、一の作業項目に関連付けたファイルの指定を取得する。
【0033】
また、情報処理装置10により、ファイルに関する作業(例えば、ファイルの生成、又は、ファイルの確認等)がなされた場合にも、取得部106は、生成又は確認されたファイル及び対応する一の作業項目の作業項目情報を取得し、ファイル及び一の作業項目を関連付けることにより、一の作業項目に関連付けたファイルの指定を取得してよい。
【0034】
また、例えば、取得部106は、設計ドキュメントを読み込んで、複数の作業項目のそれぞれに関連するファイルを特定してもよい。一例として、取得部106は、ソフトウエアの開発工程全体について作業項目ごとに記述し、複数の作業項目のそれぞれについて関連するファイル及びファイルの変更箇所が記述された、WBS(Work Breakdown Structure)等の設計ドキュメントを読みこんでよい。取得部106は、設計ドキュメントに記載された作業項目ごとに、関連するファイル及び変更箇所が記載されたファイルを関連付けることにより、作業項目にファイルを関連付けてよい。
【0035】
また、例えば、取得部106は、少なくとも1つの作業項目に関連するファイルを、ユーザからのマニュアル入力により取得してもよい。一例として、編集部102は、ファイルをチェックアウトするときに、作業項目名とチェックアウトの対象となるファイル名をユーザから入力し、取得部106は編集部102からこれらの情報を取得して、入力されたファイル名のファイルと作業項目とを関連付けてよい。取得部106は、作業項目とファイルとの関連付けの情報を作業項目記録部110に記録する。
【0036】
次にS108において、編集部102は、ユーザにより一の作業項目と関連付けられたファイルの変更があったか否かを判断する。例えば、編集部102は、一の作業項目において、ユーザから変更したファイル等を受け取って、変更記録部104に記録したか否かを判断する。
【0037】
ファイルの変更があったと判断した場合には、編集部102は、ファイルの変更がなされた一の作業項目名を判定部118に供給して、処理をS112に進める。ファイルの変更がなかった場合には、編集部102は、S108の処理で待機する。
【0038】
次にS112において、判定部118は、ファイル間の依存関係に基づいて、一の作業項目と依存関係のある他の作業項目を検出する。例えば、判定部118は、編集部102から受け取った一の作業項目名を受け取る。判定部118は、作業項目記録部110の作業項目に関連するファイルの情報に基づいて、一の作業項目に対して関連付けられたファイルを特定する。これにより、判定部118は、S106において一の作業項目に対して編集部102からの情報、設計ドキュメント、又はユーザにより関連付けられたファイルを特定する。
【0039】
次に、判定部118は、依存関係記録部116から複数のファイル間の依存関係を読み出し、当該特定された一の作業項目に関連付けられたファイルに対して依存関係があるファイルを特定する。判定部118は、読出された作業項目に関連するファイルの情報から、特定された依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【0040】
このように、判定部118は、ファイル間の依存関係に基づいて、少なくとも2つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する。
【0041】
また、判定部118は、一の作業項目に対してユーザにより関連付けられた作業項目に関連するファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【0042】
例えば、判定部118は、作業項目記録部110を読み出し、一の作業項目に関連する作業項目を特定する。次に判定部118は、当該関連する作業項目に関連するファイルを特定し、特定したファイルに依存関係があるファイルを特定し、さらに当該依存関係があるファイルに関連する作業項目を特定する。
【0043】
一例として、判定部118は、一の作業項目に対応する作業に含まれる少なくとも一部の作業を表す下位階層の作業項目を、一の作業項目に関連する作業項目と特定する。判定部118は、下位階層の作業項目に関連付けられたファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【0044】
判定部118は、一の作業項目に依存関係がある他の作業項目の情報を通知部120及び生成部122に供給する。判定部118は、さらに、一の作業項目と他の作業項目間の依存関係を判定するために用いられた、それぞれの作業項目に関連付けられたファイルの情報を通知部120に供給してよい。
【0045】
次にS114において、判定部118は、S112において一の作業項目と依存関係がある他の作業項目が存在するか否かを判断し、他の作業項目が存在する場合には処理をS116に進める。他の作業項目が存在しなかった場合には処理を終了する。
【0046】
次にS116において、変更記録部104は、変更があったファイル及び変更されたファイルのファイル名を編集部102から受け取り、変更があったファイル及び当該ファイルに対応付けて変更があった旨を記録する。変更記録部104は、変更があったファイルの情報を通知部120に供給する。
【0047】
次にS118において、通知部120は、現在時刻が予め定められたタイミングを経過したか否かを判断する。通知部120は、予め定められたタイミングを、固定された時刻としてよく、例えば、毎日の特定の時間帯(例えば、午前0時等)、毎週の特定の曜日(例えば、土曜日等)、又は、毎月の特定の日付(例えば、月末等)としてよい。これに代えて、通知部120は、ファイルに変更があった時刻から所定の時間が経過した時刻(例えば、3時間)を予め定められたタイミングとしてもよい。
【0048】
通知部120は、現在時刻が予め定められたタイミングを経過したと判断した場合は処理をS120に進め、そうでない場合はS118の処理で待機する。
【0049】
次にS120において、通知部120は、判定部118から、一の作業項目に対応するファイルの変更作業があったことに応じて、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する。
【0050】
例えば、通知部120は、他の作業項目に対応付けられたユーザとして、他の作業項目の作成者、作業担当者、レビュー担当者、及び/又は、プロジェクトマネージャに変更作業の発生を通知してよい。また、通知部120は、他の作業項目に対応付けられたユーザをマニュアル入力により取得してもよい。通知部120は、Eメールの送信により通知を実行してもよく、各ユーザの作業用ウインドウに通知を表示してもよい。
【0051】
また、通知部120は、一の作業項目と他の作業項目間の依存関係を判定するために用いられた、それぞれの作業項目に関連付けられたファイルの情報を判定部118から受け取り、どのファイル間の依存関係に基づいて他の作業項目が一の作業項目に依存関係があると判定されたかを通知してよい。
【0052】
次にS122において、生成部122は、判定部118から、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、当該他の作業項目に基づき新しい確認用作業項目を生成する。これにより、判定部118は、一の作業項目に関連付けられたファイルの変更に応じて当該一の作業項目に対して依存関係を有する他の作業項目による変更結果に問題が生じないか否かを、生成した確認用作業項目により確認する。
【0053】
S122において、生成部122が確認用作業項目を生成することに代えて、情報処理装置10は、他の作業項目の状態を要確認状態に変更してもよい。また、情報処理装置10は、一の作業項目と他の作業項目との間に関連リンクを生成してもよい。
【0054】
このように、本実施形態の情報処理装置10は、S102からS122までの処理を実行することにより、ユーザがファイルを変更した一の作業項目に依存関係がある他の作業項目を検出し、これにより当該他の作業項目に関連するユーザに注意を喚起することができる。
【0055】
なお、
図2のフローに示す処理に代えて、S112及びS114の一の作業項目と依存関係がある他の作業項目が存在するか判定する処理、及び、S116の変更があったファイルの情報を記録する処理を、S118とS120の間に実行してもよい。
【0056】
これにより、情報処理装置10は、予め定められた、例えば午前0〜5時の深夜時間帯に他の作業項目を探す処理を実行するので、当該処理が他の処理に与える負荷を低減することができる。
【0057】
図3は、作業項目記録部110が記録する作業項目に関する情報の一例を示す。図示するように、作業項目記録部110は、3つの作業項目A〜Cごとに各作業項目に関連するファイル、及び、関連する他の作業項目の情報を記録する。例えば、作業項目記録部110は、作業項目Aについて、ファイルa1.hとa1.cとを関連するファイルとして記録し、作業項目Xを作業項目Aに関連付けられた他の作業項目として記録する。
【0058】
図4は、依存関係記録部116が記録するファイル間の依存関係情報の一例を示す。図示するように、依存関係記録部116は、ビルドによって生成される実行可能プログラム(オブジェクトファイル)ごとに、依存関係が検出されたファイルの情報を記録する。例えば、依存関係記録部116は、オブジェクトファイルc1.objに含まれるファイルc1.c、c1.h、及びcmm.hを互いに依存関係があるファイルとして記録する。
【0059】
図5は、本実施形態の情報処理装置10による、一の作業項目に依存する他の作業項目の判定の第1の例を示す。本例において、作業項目記録部110は、作業項目Aにおいてファイルa1.h@ver.1及びal.c@ver.1が変更され、作業項目Bにおいてファイルb1.h@ver.2及びb1.c@ver.4が変更され、作業項目Cにおいてファイルcmm.h@ver.25、c1.h@ver.10、c2.h@ver.2、c1.c@ver.13、及びc2.c@ver.6が変更されたことに応じて、これらの変更されたファイルを予め作業項目A、B及びCに関連付けて記録している。「@ver.X(Xは数字)」は、ファイルのバージョン番号を表す。
【0060】
また、依存関係検出部114は、オブジェクトファイルc1.obj、c2.obj、a1.obj、及び、b1.objのそれぞれに対応して、ファイルc1.c、c1.h、及びcmm.h間の依存関係と、ファイルc2.c、c2.h、及びcmm.h間の依存関係と、ファイルa1.c、a1.h、及びcmm.h間の依存関係と、ファイルb1.c、b1.h、c1.h、c2.h間の依存関係とを検出し、これらの依存関係を依存関係記録部116に予め記録している。
【0061】
ここで、作業項目Cにおいて、編集部102がファイルの変更をチェックインすると、判定部118は、
図3に示す作業項目記録部110が記録する作業項目情報を参照し、作業項目Cと関連付けられたファイルcmm.h、c1.h、c2.h、c1.c及びc2.cを特定する。次に、判定部118は、
図4に示す依存関係記録部116が記録するファイル間の依存関係情報を参照し、ファイルcmm.h及びc1.h等と依存関係があるファイルc1.c、c1.h、cmm.h、c2.c、c2.h、a1.c、a1.h、b1.c及びb1.hを特定する。
【0062】
判定部118は、
図3に示す作業項目記録部110が記録する作業項目情報を再度参照し、ファイルc1.c、c1.h、cmm.h、c2.c、c2.h、a1.c、a1.h、b1.c及びb1.hと関連付けられた作業項目A及び作業項目Bを検出する。これにより、判定部118は、作業項目Cと依存関係がある作業項目A及びBを検出する。
【0063】
図6は、本実施形態の情報処理装置10による、一の作業項目に依存する他の作業項目の判定の第2の例を示す。本例において、作業項目記録部110は、作業項目Dにおいてファイルcmm.h@ver.25、c1.h@ver.10、c2.h@ver.2、c1.c@ver.13、及びc2.c@ver.6が変更され、作業項目Eにおいてファイルc1.h@ver.2及びc1.c@ver.4が変更され、作業項目Fにおいてファイルc2.h@ver.2及びc2.c@ver.4が変更され、作業項目Gにおいてファイルcmm.java@ver.1、A1.java@ver.1及びA2.java@ver.1が変更されたことに応じて、これらの変更されたファイルを予め作業項目D〜Gに関連付けて記録している。
【0064】
また、依存関係検出部114は、ファイルcmm.h、c1.h、c2.h、c1.c、c2.c、及びcmm.java間の依存関係と、A1.java及びA2.java間の依存関係とを検出し、これらの依存関係を依存関係記録部116に予め記録している。また、作業項目記録部110は、対応入力部108に対応付けられた作業項目Dと作業項目Gとの対応付けを記憶している。
【0065】
ここで、作業項目Gにおいて、編集部102がファイルの変更をチェックインすると、判定部118は、作業項目記録部110を参照して作業項目Gと関連付けられた作業項目Dを特定し、作業項目D及びGに関連付けられたファイルcmm.h、c1.h、c2.h、c1.c、c2.c、cmm.java、A1.java、及びA2.javaを特定する。
【0066】
次に、判定部118は、依存関係記録部116を参照して、作業項目D及びGに関連付けられたファイルcmm.h、c1.h、c2.h、c1.c、c2.c、cmm.java、A1.java及びA2.javaと依存関係があるファイルc1.h、c2.h、c1.c及びc2.c等を特定する。判定部118は、作業項目記録部110を参照して、ファイルc1.h、c2.h、c1.c及びc2.cと関連付けられた作業項目E及びFを検出する。
【0067】
これにより、対応入力部108が作業項目Dと作業項目Gの対応付けを予め入力することにより、判定部118が作業項目Dを通じて間接的に依存関係がある作業項目E及びFを、作業項目Gと依存関係がある作業項目として検出することができる。このように、情報処理装置10は、サーバ側ソフトウエアと、サーバ側ソフトウエアと対応するがアーキテクチャが異なるクライアント側ソフトウエアを開発する場合等において、ファイルの変更があった作業項目と依存関係がある作業項目を判定することができる。
【0068】
図7は、情報処理装置10として機能するコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
【0069】
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【0070】
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
【0071】
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
【0072】
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
【0073】
コンピュータ1900にインストールされ、コンピュータ1900を情報処理装置10として機能させるプログラムは、編集モジュール、変更記録モジュール、取得モジュール、対応入力モジュール、作業項目記録モジュール、ビルドモジュール、依存関係検出モジュール、依存関係記録モジュール、判定モジュール、通知モジュール、及び、生成モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、編集部102、変更記録部104、取得部106、対応入力部108、作業項目記録部110、依存関係検出部114、依存関係記録部116、判定部118、通知部120、及び、生成部122としてそれぞれ機能させてよい。
【0074】
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウエアと上述した各種のハードウェア資源とが協働した具体的手段である編集部102、変更記録部104、取得部106、対応入力部108、作業項目記録部110、依存関係検出部114、依存関係記録部116、判定部118、通知部120、及び、生成部122として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置10が構築される。
【0075】
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【0076】
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
【0077】
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【0078】
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
【0079】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
【0080】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0081】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。