(57)【要約】【課題】複数の開発者によるソフトウエアの開発において、ある開発者が更新しようとするソースコードが他の開発者の更新と競合するか確認する方法が知られているが、開発者の作業項目における作業が他の開発者の作業項目に与える影響を判定する方法は知られていない。【解決手段】それぞれが少なくとも１つのファイルを変更する作業を表す複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する取得部と、複数のファイル間の依存関係を検出する依存関係検出部と、ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する判定部とを備える情報処理装置、プログラム、及びこれらを用いた方法を提供する。【選択図】図１
2014123249.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが少なくとも１つのファイルを変更する作業を表す複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する取得部と、
複数のファイル間の依存関係を検出する依存関係検出部と、
ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する判定部と、
を備える情報処理装置。
【請求項２】
前記依存関係検出部は、複数のファイルから実行可能プログラムをビルドしたことに応じて、ファイル間の依存関係を検出する請求項１に記載の情報処理装置。
【請求項３】
少なくとも１つの作業項目には、当該作業項目に対応する作業に含まれる少なくとも一部の作業を表す下位階層の作業項目を有し、
前記判定部は、一の作業項目および当該一の作業項目の下位階層の作業項目に関連付けられたファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する請求項１または２に記載の情報処理装置。
【請求項４】
少なくとも１つの作業項目に対して関連する作業項目をユーザの指定に応じて対応付ける対応入力部を更に備え、
前記判定部は、一の作業項目および当該一の作業項目に対してユーザにより関連付けられた作業項目に関連するファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記取得部は、複数の作業項目のそれぞれについて関連するファイルおよびファイルの変更箇所が記述された設計ドキュメントを読み込んで、複数の作業項目のそれぞれに関連するファイルを特定する請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記取得部は、少なくとも１つの作業項目に関連するファイルをユーザから取得し、
前記判定部は、一の作業項目に対してユーザにより関連付けられたファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する
請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
一の作業項目に対応するファイルの変更作業があったことに応じて、当該一の作業項目と依存関係がある他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する通知部を更に備える請求項１から６のいずれか一項に記載の情報処理装置。
【請求項８】
ファイルが変更されたことに応じて当該ファイルに対応付けて変更があった旨を記録する変更記録部を更に備え、
前記通知部は、予め定められたタイミングにおいて、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する請求項７に記載の情報処理装置。
【請求項９】
一の作業項目に関連付けられたファイルの変更に応じて当該一の作業項目に対して依存関係を有する他の作業項目による変更結果に問題が生じないか否かを確認するための確認用作業項目を、当該他の作業項目に基づき生成する生成部を更に備える請求項１から８のいずれか一項に記載の情報処理装置。
【請求項１０】
情報処理装置としてコンピュータを機能させるプログラムであって、
当該プログラムは、前記コンピュータを、
それぞれが少なくとも１つのファイルを変更する作業を表す複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する取得部と、
複数のファイル間の依存関係を検出する依存関係検出部と、
ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する判定部として機能させる、
プログラム。
【請求項１１】
それぞれが少なくとも１つのファイルを変更する作業を表す複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する取得段階と、
複数のファイル間の依存関係を検出する依存関係検出段階と、
ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する判定段階と、
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム、及び情報処理方法に関する。
【背景技術】
【０００２】
複数の開発者によるソフトウエアの開発において、ある開発者が更新しようとするソースコードが他の開発者の更新と競合するか確認する方法が知られている（例えば、特許文献１参照）。
［特許文献１］  特開２００９−２２３８２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、ある作業項目におけるファイルの変更が、他の作業項目に与える影響は考慮されていなかった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、それぞれが少なくとも１つのファイルを変更する作業を表す複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する取得部と、複数のファイル間の依存関係を検出する依存関係検出部と、ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する判定部とを備える情報処理装置、プログラム、及びこれらを用いた方法を提供する。
【０００５】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態の情報処理装置１０の構成を示す。
【図２】本実施形態の情報処理装置１０の処理フローを示す。
【図３】作業項目記録部１１０が記録する作業項目に関する情報の一例を示す。
【図４】依存関係記録部１１６が記録するファイル間の依存関係情報の一例を示す。
【図５】一の作業項目に依存する他の作業項目の判定の第１の例を示す。
【図６】一の作業項目に依存する他の作業項目の判定の第２の例を示す。
【図７】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態の情報処理装置１０の構成を示す。情報処理装置１０は、複数の作業項目からなるプロジェクトを管理してユーザのソフトウエアの開発を支援し、作業項目間の依存関係の存在を判定することにより、ある作業項目によるファイルの修正が他の作業項目に影響を与える可能性がある場合に、他の作業項目で作業をするユーザに通知する。
【０００９】
作業項目は、プロジェクトに含まれるそれぞれの作業を表し、例えば、開発対象のソフトウエアに含まれる、少なくとも１つのファイルを作成する作業、少なくとも１つのファイルを変更する作業、及び、少なくとも１つのファイルを確認する作業等を含む。
【００１０】
情報処理装置１０は、編集部１０２、変更記録部１０４、取得部１０６、対応入力部１０８、作業項目記録部１１０、依存関係検出部１１４、依存関係記録部１１６、判定部１１８、通知部１２０、及び、生成部１２２を備える。
【００１１】
編集部１０２は、ソフトウエアに含まれるファイルの編集を管理する。編集部１０２は、変更前のファイルを変更記録部１０４から読み出してユーザに提供し、ユーザから変更後のファイル、及び、ファイルの変更がなされた作業項目名を受け取り、変更があったファイルと、ファイルの変更がなされた作業項目名とを変更記録部１０４に記録する。この際、編集部１０２は、ファイルのバージョン管理を行い、ユーザの指示に応じて変更対象のファイルをチェックアウトし、編集済みのファイルをチェックインして新たなバージョンとして管理してもよい。
【００１２】
編集部１０２は、変更されたファイルのファイル名及び変更がなされた作業項目名を取得部１０６に供給する。また、編集部１０２は、変更がなされた作業項目名を判定部１１８に供給する。
【００１３】
変更記録部１０４は、複数のファイルを記録し、ファイルが変更されたことに応じて、当該ファイルに対応付けて変更があった旨を記録する。例えば、変更記録部１０４は、編集部１０２から変更があったファイル及びファイルの変更の履歴を変更セットとして記録する。変更記録部１０４は、記録しているファイルを依存関係検出部１１４に供給する。
【００１４】
取得部１０６は、複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する。例えば、取得部１０６は、編集部１０２から変更されたファイルのファイル名及び変更がなされた作業項目を取得し、これらを関連付けることにより、作業項目に関連付けたファイルを指定する。取得部１０６は、ファイル名と作業項目との関連付けの情報を作業項目記録部１１０に記録する。
【００１５】
対応入力部１０８は、少なくとも１つの作業項目に対して関連する他の作業項目をユーザの指定に応じて対応付ける。対応入力部１０８は、複数の作業項目の関連付けの情報を作業項目記録部１１０に記録する。
【００１６】
作業項目記録部１１０は、複数の作業項目に関する情報を記録する。例えば、作業項目記録部１１０は、作業項目ごとに、作業項目に関連するファイル、及び、作業項目に関連する他の作業項目の情報を記録する。作業項目記録部１１０は、作業項目に関する情報を判定部１１８に供給する。
【００１７】
依存関係検出部１１４は、複数のファイル間の依存関係を検出する。例えば、依存関係検出部１１４は、変更記録部１０４に記録された複数のファイルから実行可能プログラムをビルドしたことに応じて、複数のファイル間の依存関係を検出する。依存関係検出部１１４は、検出した複数のファイル間の依存関係を依存関係記録部１１６に記録する。
【００１８】
依存関係記録部１１６は、依存関係検出部１１４が検出した複数のファイル間の依存関係を記録する。依存関係記録部１１６は、複数のファイル間の依存関係を判定部１１８に供給する。
【００１９】
判定部１１８は、ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する。例えば、判定部１１８は、変更があったファイルについての変更作業を表す一の作業項目名を編集部１０２から受け取ったときは、作業項目記録部１１０から一の作業項目に関連するファイルの情報を読み出して、一の作業項目に関連付けられたファイルを特定する。
【００２０】
次に、判定部１１８は、依存関係記録部１１６から複数のファイル間の依存関係を読み出し、当該特定された一の作業項目に関連付けられたファイルに対して依存関係があるファイルを特定する。判定部１１８は、特定された依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。判定部１１８は、一の作業項目に依存関係がある他の作業項目の情報を通知部１２０及び生成部１２２に供給する。
【００２１】
通知部１２０は、判定部１１８から、一の作業項目と依存関係がある他の作業項目の情報を受け取り、予め定められたタイミングにおいて他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する。
【００２２】
生成部１２２は、判定部１１８から、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、当該他の作業項目に基づき確認用作業項目を生成する。
【００２３】
このように、本実施形態の情報処理装置１０は、ファイル間の依存関係に基づいて作業項目間の依存関係を判定し、一の作業項目においてファイルの変更を行った場合に、他の作業項目のユーザに対して通知等により注意を喚起する。これにより、情報処理装置１０によれば、複数の作業項目において修正した複数のファイルから作成された実行モジュールを正しく動作させることができる。
【００２４】
図２は、本実施形態の情報処理装置１０の処理フローを示す。本実施形態において、情報処理装置１０は、処理Ｓ１０２からＳ１２２までの処理を実行することにより、変更するファイルと関連する作業項目と依存関係のある他の作業項目のユーザに、変更があった旨を通知等する。
【００２５】
まず、Ｓ１０２において、依存関係検出部１１４は、変更記録部１０４に予め記録された複数のファイルから実行可能プログラムをビルドしたことに応じて、複数のファイル間の依存関係を検出する。依存関係検出部１１４は、ビルドを実行せずにファイル間の依存関係を検出するＭａｋｅｄｅｐ等の静的解析ユーティリティプログラムを利用することにより、ビルド時のファイル間の依存関係を検出してもよい。また、依存関係検出部１１４は、ファイル間の依存関係をユーザの指定によるマニュアル入力で取得してもよい。依存関係検出部１１４は、検出した依存関係がある複数のファイルの情報を依存関係記録部１１６に記録する。依存関係検出部１１４は、複数のファイル間の依存関係の方向を合わせて依存関係記録部１１６に記録してもよい。
【００２６】
次に、Ｓ１０４において、対応入力部１０８は、少なくとも１つの作業項目に対して関連する作業項目をユーザの指定に応じて対応付けて入力する。例えば、対応入力部１０８は、クライアント側ソフトウエアの変更等のクライアント側の作業項目と、当該クライアント側の作業項目と対応するサーバ側ソフトウエアの修正等のサーバ側の作業項目とを、ユーザからの指定により対応付ける。
【００２７】
対応入力部１０８は、ユーザからの要求に応じて、複数の作業項目間の包含関係の情報を取得し、直接的又は間接的な包含関係にある作業項目同士、及び／又は、同一の作業項目に包含される複数の作業項目を関連する作業項目としてよい。例えば、対応入力部１０８は、一の作業項目の直下の下位階層に存在する作業項目、及び、一の作業項目の複数階層分下位階層に存在する作業項目を、一の作業項目に対応付けてよい。
【００２８】
また、対応入力部１０８は、ユーザからの要求に応じて、ユーザが予め関連する作業項目間で作成した関連リンクの情報を取得し、関連リンクが作成された作業項目同士を関連する作業項目としてよい。対応入力部１０８は、作業項目ごとに当該作業項目に関連付けられた他の作業項目の情報を作業項目記録部１１０に記録する。
【００２９】
次に、Ｓ１０６において、取得部１０６は、複数の作業項目のそれぞれについて、当該作業項目に関連付けられたファイルの指定を取得する。例えば、取得部１０６は、編集部１０２が変更されたファイル及び変更がなされた作業項目を受け取った場合に、編集部１０２から変更されたファイルのファイル名及び変更がなされた一の作業項目の情報を受け取り、これらを関連付ける。
【００３０】
具体的には、まず、編集部１０２が、変更の対象となるファイルを特定するファイル名等の情報をユーザから受け取り、変更記録部１０４から対象となるファイルを読み込む。編集部１０２は、読み込んだ変更の対象となるファイルをユーザのローカルコンピュータに供給する（チェックアウト）。
【００３１】
次に、編集部１０２は、変更されたファイルをユーザから受け取り、ユーザの変更作業に係る一の作業項目の名称等の作業項目情報を受け取る。編集部１０２は、変更されたファイルを変更セットとして変更記録部１０４に記録する（チェックイン）。編集部１０２は、変更されるファイルのファイル名と作業項目情報を取得部１０６に供給する。
【００３２】
次に、取得部１０６は、編集部１０２から変更されたファイル及び作業項目情報を取得し、一の作業項目と変更されたファイルとを関連付けることにより、一の作業項目に関連付けたファイルの指定を取得する。
【００３３】
また、情報処理装置１０により、ファイルに関する作業（例えば、ファイルの生成、又は、ファイルの確認等）がなされた場合にも、取得部１０６は、生成又は確認されたファイル及び対応する一の作業項目の作業項目情報を取得し、ファイル及び一の作業項目を関連付けることにより、一の作業項目に関連付けたファイルの指定を取得してよい。
【００３４】
また、例えば、取得部１０６は、設計ドキュメントを読み込んで、複数の作業項目のそれぞれに関連するファイルを特定してもよい。一例として、取得部１０６は、ソフトウエアの開発工程全体について作業項目ごとに記述し、複数の作業項目のそれぞれについて関連するファイル及びファイルの変更箇所が記述された、ＷＢＳ（Ｗｏｒｋ  Ｂｒｅａｋｄｏｗｎ  Ｓｔｒｕｃｔｕｒｅ）等の設計ドキュメントを読みこんでよい。取得部１０６は、設計ドキュメントに記載された作業項目ごとに、関連するファイル及び変更箇所が記載されたファイルを関連付けることにより、作業項目にファイルを関連付けてよい。
【００３５】
また、例えば、取得部１０６は、少なくとも１つの作業項目に関連するファイルを、ユーザからのマニュアル入力により取得してもよい。一例として、編集部１０２は、ファイルをチェックアウトするときに、作業項目名とチェックアウトの対象となるファイル名をユーザから入力し、取得部１０６は編集部１０２からこれらの情報を取得して、入力されたファイル名のファイルと作業項目とを関連付けてよい。取得部１０６は、作業項目とファイルとの関連付けの情報を作業項目記録部１１０に記録する。
【００３６】
次にＳ１０８において、編集部１０２は、ユーザにより一の作業項目と関連付けられたファイルの変更があったか否かを判断する。例えば、編集部１０２は、一の作業項目において、ユーザから変更したファイル等を受け取って、変更記録部１０４に記録したか否かを判断する。
【００３７】
ファイルの変更があったと判断した場合には、編集部１０２は、ファイルの変更がなされた一の作業項目名を判定部１１８に供給して、処理をＳ１１２に進める。ファイルの変更がなかった場合には、編集部１０２は、Ｓ１０８の処理で待機する。
【００３８】
次にＳ１１２において、判定部１１８は、ファイル間の依存関係に基づいて、一の作業項目と依存関係のある他の作業項目を検出する。例えば、判定部１１８は、編集部１０２から受け取った一の作業項目名を受け取る。判定部１１８は、作業項目記録部１１０の作業項目に関連するファイルの情報に基づいて、一の作業項目に対して関連付けられたファイルを特定する。これにより、判定部１１８は、Ｓ１０６において一の作業項目に対して編集部１０２からの情報、設計ドキュメント、又はユーザにより関連付けられたファイルを特定する。
【００３９】
次に、判定部１１８は、依存関係記録部１１６から複数のファイル間の依存関係を読み出し、当該特定された一の作業項目に関連付けられたファイルに対して依存関係があるファイルを特定する。判定部１１８は、読出された作業項目に関連するファイルの情報から、特定された依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【００４０】
このように、判定部１１８は、ファイル間の依存関係に基づいて、少なくとも２つの作業項目の間に関連するファイル間の依存関係を通じた作業項目間の依存関係が存在するか否かを判定する。
【００４１】
また、判定部１１８は、一の作業項目に対してユーザにより関連付けられた作業項目に関連するファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【００４２】
例えば、判定部１１８は、作業項目記録部１１０を読み出し、一の作業項目に関連する作業項目を特定する。次に判定部１１８は、当該関連する作業項目に関連するファイルを特定し、特定したファイルに依存関係があるファイルを特定し、さらに当該依存関係があるファイルに関連する作業項目を特定する。
【００４３】
一例として、判定部１１８は、一の作業項目に対応する作業に含まれる少なくとも一部の作業を表す下位階層の作業項目を、一の作業項目に関連する作業項目と特定する。判定部１１８は、下位階層の作業項目に関連付けられたファイルに対して依存関係があるファイルに関連付けられた他の作業項目を、当該一の作業項目に対して依存関係があると判定する。
【００４４】
判定部１１８は、一の作業項目に依存関係がある他の作業項目の情報を通知部１２０及び生成部１２２に供給する。判定部１１８は、さらに、一の作業項目と他の作業項目間の依存関係を判定するために用いられた、それぞれの作業項目に関連付けられたファイルの情報を通知部１２０に供給してよい。
【００４５】
次にＳ１１４において、判定部１１８は、Ｓ１１２において一の作業項目と依存関係がある他の作業項目が存在するか否かを判断し、他の作業項目が存在する場合には処理をＳ１１６に進める。他の作業項目が存在しなかった場合には処理を終了する。
【００４６】
次にＳ１１６において、変更記録部１０４は、変更があったファイル及び変更されたファイルのファイル名を編集部１０２から受け取り、変更があったファイル及び当該ファイルに対応付けて変更があった旨を記録する。変更記録部１０４は、変更があったファイルの情報を通知部１２０に供給する。
【００４７】
次にＳ１１８において、通知部１２０は、現在時刻が予め定められたタイミングを経過したか否かを判断する。通知部１２０は、予め定められたタイミングを、固定された時刻としてよく、例えば、毎日の特定の時間帯（例えば、午前０時等）、毎週の特定の曜日（例えば、土曜日等）、又は、毎月の特定の日付（例えば、月末等）としてよい。これに代えて、通知部１２０は、ファイルに変更があった時刻から所定の時間が経過した時刻（例えば、３時間）を予め定められたタイミングとしてもよい。
【００４８】
通知部１２０は、現在時刻が予め定められたタイミングを経過したと判断した場合は処理をＳ１２０に進め、そうでない場合はＳ１１８の処理で待機する。
【００４９】
次にＳ１２０において、通知部１２０は、判定部１１８から、一の作業項目に対応するファイルの変更作業があったことに応じて、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、他の作業項目に対応付けられたユーザに対して変更作業の発生を通知する。
【００５０】
例えば、通知部１２０は、他の作業項目に対応付けられたユーザとして、他の作業項目の作成者、作業担当者、レビュー担当者、及び／又は、プロジェクトマネージャに変更作業の発生を通知してよい。また、通知部１２０は、他の作業項目に対応付けられたユーザをマニュアル入力により取得してもよい。通知部１２０は、Ｅメールの送信により通知を実行してもよく、各ユーザの作業用ウインドウに通知を表示してもよい。
【００５１】
また、通知部１２０は、一の作業項目と他の作業項目間の依存関係を判定するために用いられた、それぞれの作業項目に関連付けられたファイルの情報を判定部１１８から受け取り、どのファイル間の依存関係に基づいて他の作業項目が一の作業項目に依存関係があると判定されたかを通知してよい。
【００５２】
次にＳ１２２において、生成部１２２は、判定部１１８から、変更があったファイルについての変更作業を表す一の作業項目と依存関係がある他の作業項目の情報を受け取り、当該他の作業項目に基づき新しい確認用作業項目を生成する。これにより、判定部１１８は、一の作業項目に関連付けられたファイルの変更に応じて当該一の作業項目に対して依存関係を有する他の作業項目による変更結果に問題が生じないか否かを、生成した確認用作業項目により確認する。
【００５３】
Ｓ１２２において、生成部１２２が確認用作業項目を生成することに代えて、情報処理装置１０は、他の作業項目の状態を要確認状態に変更してもよい。また、情報処理装置１０は、一の作業項目と他の作業項目との間に関連リンクを生成してもよい。
【００５４】
このように、本実施形態の情報処理装置１０は、Ｓ１０２からＳ１２２までの処理を実行することにより、ユーザがファイルを変更した一の作業項目に依存関係がある他の作業項目を検出し、これにより当該他の作業項目に関連するユーザに注意を喚起することができる。
【００５５】
なお、図２のフローに示す処理に代えて、Ｓ１１２及びＳ１１４の一の作業項目と依存関係がある他の作業項目が存在するか判定する処理、及び、Ｓ１１６の変更があったファイルの情報を記録する処理を、Ｓ１１８とＳ１２０の間に実行してもよい。
【００５６】
これにより、情報処理装置１０は、予め定められた、例えば午前０〜５時の深夜時間帯に他の作業項目を探す処理を実行するので、当該処理が他の処理に与える負荷を低減することができる。
【００５７】
図３は、作業項目記録部１１０が記録する作業項目に関する情報の一例を示す。図示するように、作業項目記録部１１０は、３つの作業項目Ａ〜Ｃごとに各作業項目に関連するファイル、及び、関連する他の作業項目の情報を記録する。例えば、作業項目記録部１１０は、作業項目Ａについて、ファイルa1.hとa1.cとを関連するファイルとして記録し、作業項目Ｘを作業項目Ａに関連付けられた他の作業項目として記録する。
【００５８】
図４は、依存関係記録部１１６が記録するファイル間の依存関係情報の一例を示す。図示するように、依存関係記録部１１６は、ビルドによって生成される実行可能プログラム（オブジェクトファイル）ごとに、依存関係が検出されたファイルの情報を記録する。例えば、依存関係記録部１１６は、オブジェクトファイルc1.objに含まれるファイルc1.c、c1.h、及びcmm.hを互いに依存関係があるファイルとして記録する。
【００５９】
図５は、本実施形態の情報処理装置１０による、一の作業項目に依存する他の作業項目の判定の第１の例を示す。本例において、作業項目記録部１１０は、作業項目Ａにおいてファイルa1.h@ver.1及びal.c@ver.1が変更され、作業項目Ｂにおいてファイルb1.h@ver.2及びb1.c@ver.4が変更され、作業項目Ｃにおいてファイルcmm.h@ver.25、c1.h@ver.10、c2.h@ver.2、c1.c@ver.13、及びc2.c@ver.6が変更されたことに応じて、これらの変更されたファイルを予め作業項目Ａ、Ｂ及びＣに関連付けて記録している。「@ver.X（Xは数字）」は、ファイルのバージョン番号を表す。
【００６０】
また、依存関係検出部１１４は、オブジェクトファイル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間の依存関係とを検出し、これらの依存関係を依存関係記録部１１６に予め記録している。
【００６１】
ここで、作業項目Ｃにおいて、編集部１０２がファイルの変更をチェックインすると、判定部１１８は、図３に示す作業項目記録部１１０が記録する作業項目情報を参照し、作業項目Ｃと関連付けられたファイルcmm.h、c1.h、c2.h、c1.c及びc2.cを特定する。次に、判定部１１８は、図４に示す依存関係記録部１１６が記録するファイル間の依存関係情報を参照し、ファイルcmm.h及びc1.h等と依存関係があるファイルc1.c、c1.h、cmm.h、c2.c、c2.h、a1.c、a1.h、b1.c及びb1.hを特定する。
【００６２】
判定部１１８は、図３に示す作業項目記録部１１０が記録する作業項目情報を再度参照し、ファイルc1.c、c1.h、cmm.h、c2.c、c2.h、a1.c、a1.h、b1.c及びb1.hと関連付けられた作業項目Ａ及び作業項目Ｂを検出する。これにより、判定部１１８は、作業項目Ｃと依存関係がある作業項目Ａ及びＢを検出する。
【００６３】
図６は、本実施形態の情報処理装置１０による、一の作業項目に依存する他の作業項目の判定の第２の例を示す。本例において、作業項目記録部１１０は、作業項目Ｄにおいてファイルcmm.h@ver.25、c1.h@ver.10、c2.h@ver.2、c1.c@ver.13、及びc2.c@ver.6が変更され、作業項目Ｅにおいてファイルc1.h@ver.2及びc1.c@ver.4が変更され、作業項目Ｆにおいてファイルc2.h@ver.2及びc2.c@ver.4が変更され、作業項目Ｇにおいてファイルcmm.java@ver.1、A1.java@ver.1及びA2.java@ver.1が変更されたことに応じて、これらの変更されたファイルを予め作業項目Ｄ〜Ｇに関連付けて記録している。
【００６４】
また、依存関係検出部１１４は、ファイルcmm.h、c1.h、c2.h、c1.c、c2.c、及びcmm.java間の依存関係と、A1.java及びA2.java間の依存関係とを検出し、これらの依存関係を依存関係記録部１１６に予め記録している。また、作業項目記録部１１０は、対応入力部１０８に対応付けられた作業項目Ｄと作業項目Ｇとの対応付けを記憶している。
【００６５】
ここで、作業項目Ｇにおいて、編集部１０２がファイルの変更をチェックインすると、判定部１１８は、作業項目記録部１１０を参照して作業項目Ｇと関連付けられた作業項目Ｄを特定し、作業項目Ｄ及びＧに関連付けられたファイルcmm.h、c1.h、c2.h、c1.c、c2.c、cmm.java、A1.java、及びA2.javaを特定する。
【００６６】
次に、判定部１１８は、依存関係記録部１１６を参照して、作業項目Ｄ及びＧに関連付けられたファイルcmm.h、c1.h、c2.h、c1.c、c2.c、cmm.java、A1.java及びA2.javaと依存関係があるファイルc1.h、c2.h、c1.c及びc2.c等を特定する。判定部１１８は、作業項目記録部１１０を参照して、ファイルc1.h、c2.h、c1.c及びc2.cと関連付けられた作業項目Ｅ及びＦを検出する。
【００６７】
これにより、対応入力部１０８が作業項目Ｄと作業項目Ｇの対応付けを予め入力することにより、判定部１１８が作業項目Ｄを通じて間接的に依存関係がある作業項目Ｅ及びＦを、作業項目Ｇと依存関係がある作業項目として検出することができる。このように、情報処理装置１０は、サーバ側ソフトウエアと、サーバ側ソフトウエアと対応するがアーキテクチャが異なるクライアント側ソフトウエアを開発する場合等において、ファイルの変更があった作業項目と依存関係がある作業項目を判定することができる。
【００６８】
図７は、情報処理装置１０として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部とを備える。
【００６９】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００７０】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００７１】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００７２】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００７３】
コンピュータ１９００にインストールされ、コンピュータ１９００を情報処理装置１０として機能させるプログラムは、編集モジュール、変更記録モジュール、取得モジュール、対応入力モジュール、作業項目記録モジュール、ビルドモジュール、依存関係検出モジュール、依存関係記録モジュール、判定モジュール、通知モジュール、及び、生成モジュールとを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、編集部１０２、変更記録部１０４、取得部１０６、対応入力部１０８、作業項目記録部１１０、依存関係検出部１１４、依存関係記録部１１６、判定部１１８、通知部１２０、及び、生成部１２２としてそれぞれ機能させてよい。
【００７４】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウエアと上述した各種のハードウェア資源とが協働した具体的手段である編集部１０２、変更記録部１０４、取得部１０６、対応入力部１０８、作業項目記録部１１０、依存関係検出部１１４、依存関係記録部１１６、判定部１１８、通知部１２０、及び、生成部１２２として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の情報処理装置１０が構築される。
【００７５】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００７６】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００７７】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【００７８】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【００７９】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【００８０】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８１】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００８２】
１０  情報処理装置、１０２  編集部、１０４  変更記録部、１０６  取得部、１０８  対応入力部、１１０  作業項目記録部、１１４  依存関係検出部、１１６  依存関係記録部、１１８  判定部、１２０  通知部、１２２  生成部、１９００  コンピュータ、２０００  ＣＰＵ、２０１０  ＲＯＭ、２０２０  ＲＡＭ、２０３０  通信インターフェイス、２０４０  ハードディスクドライブ、２０５０  フレキシブルディスク・ドライブ、２０６０  ＣＤ−ＲＯＭドライブ、２０７０  入出力チップ、２０７５  グラフィック・コントローラ、２０８０  表示装置、２０８２  ホスト・コントローラ、２０８４  入出力コントローラ、２０９０  フレキシブルディスク、２０９５  ＣＤ−ＲＯＭ
【図１】
2014123249.tif 000003
【図２】
2014123249.tif 000004
【図３】
2014123249.tif 000005
【図４】
2014123249.tif 000006
【図５】
2014123249.tif 000007
【図６】
2014123249.tif 000008
【図７】
2014123249.tif 000009