(57)【要約】【課題】設計情報に基づいて、ソフトウェア作業成果物の管理を行うことを可能とした、ソフトウェア構成管理装置を提供する。【解決手段】変更された作業成果物のバージョン間に不整合を生じることなく、ソフトウェア構成管理を確実に実施するために、設計情報に関連づけた仮想フォルダを表現するためのデータ構造体を設け、さらに記憶装置内に仮想フォルダを管理するための仮想フォルダ管理部を備えることにより、仮想フォルダを通じて変更対象である設計文書やソースプログラムのデータにアクセスし変更作業を行うようにした。【選択図】        図１
2004252719.tif 000002
【特許請求の範囲】
【請求項１】
任意の仮想の階層構造を持つ複数の仮想フォルダを登録し、登録した複数の仮想フォルダの各仮想フォルダ内に所定の機能を実現するモジュールと前記モジュールに対応する対応データとを記憶する仮想フォルダ記憶部と、
上記仮想フォルダ記憶部が複数の仮想フォルダのいずれかの仮想フォルダ内に記憶したモジュールを編集してモジュールの機能を変更するとともに、機能を変更したモジュールに対応する対応データを編集して対応データの内容をモジュールの機能変更に対応させるデータ編集部とを備えるデータ管理装置。
【請求項２】
上記データ管理装置は、さらに、
上記データ編集部が編集したモジュールを上記仮想フォルダ記憶部に登録されている空の仮想フォルダ内に登録するとともに、編集前のモジュールと編集後のモジュールとをリンクするためにモジュールの更新履歴情報を仮想フォルダ内に登録し、さらに、編集前のモジュールを記憶した仮想フォルダと編集後のモジュールを記憶した仮想フォルダとをリンクするために仮想フォルダ内に仮想フォルダの更新履歴情報を登録するデータ登録部を備える請求項１に記載されたデータ管理装置。
【請求項３】
上記データ登録部は、上記データ編集部が編集したモジュールを登録した仮想フォルダ内に上記データ編集部が編集した対応データを登録するとともに、編集前の対応データと編集後の対応データとをリンクするために対応データの更新履歴情報を仮想フォルダ内に登録する請求項２に記載されたデータ管理装置。
【請求項４】
上記データ登録部は、任意の機能を追加するために、任意の機能を実現するモジュールと前記モジュールに対応する対応データとを仮想フォルダ内に追加登録する請求項２に記載されたデータ管理装置。
【請求項５】
上記データ管理装置は、さらに、
上記データ編集部が編集する対象となっているモジュールと他の仮想フォルダに登録された編集対象と同一のモジュールとの整合性を担保するために仮想フォルダの排他制御を行う仮想フォルダ管理部を備える請求項１に記載されたデータ管理装置。
【請求項６】
上記データ管理装置は、さらに、
上記仮想フォルダ記憶部の複数の仮想フォルダに登録された更新履歴情報から不具合のあるモジュールの更新履歴情報を取得し、不具合のあるモジュールに対応する対応データの更新履歴情報を取得し、取得したモジュールの更新履歴情報と対応データの更新履歴情報とから不具合のあるモジュールの更新前のモジュールと更新後のモジュールと対応する更新前の対応データと更新後の対応データとを特定し、特定したモジュールと対応データとの少なくともいずれかを記憶した１以上の仮想フォルダを上記仮想フォルダ記憶部から取得し、取得した１以上の仮想フォルダを不具合の影響範囲として特定するデータ影響範囲検出部を備える請求項３に記載されたデータ管理装置。
【請求項７】
上記データ管理装置は、さらに、
上記仮想フォルダ記憶装置の複数の仮想フォルダに登録された更新履歴情報から所定のモジュールに対して更新前のモジュールと更新前の対応データと更新後のモジュールと更新後の対応データとを特定し、特定したモジュールと対応データとの内容を検証し、検証した結果、検証したモジュールと対応データの内容と検証したモジュールと対応データとが持つ更新履歴情報とに矛盾がある場合には、矛盾があるモジュールと対応データとが登録されている仮想フォルダと仮想フォルダの更新履歴情報とを警告として記録するデータ適合性検証部を備えた請求項３に記載されたデータ管理装置。
【請求項８】
上記データ管理装置は、さらに、
上記仮想フォルダ記憶部に登録された複数の仮想フォルダを参照するデータ参照部を備える請求項１記載されたデータ管理装置。
【請求項９】
上記仮想フォルダ記憶部は、前記モジュールとしてプログラムを記憶し、前記モジュールに対応する対応データとして前記プログラムに対応する文書データを記憶し、
上記データ編集部は、上記仮想フォルダ記憶部が複数の仮想フォルダのいずれかの仮想フォルダ内に記憶したプログラムを編集してプログラムの機能を変更するとともに、対応する文書データを編集して文書データの内容をプログラムの機能変更に対応させる請求項１に記載されたデータ管理装置。
【請求項１０】
任意の仮想の階層構造を持つ複数の仮想フォルダを登録し、登録した複数の仮想フォルダの各仮想フォルダ内に所定の機能を実現するモジュールと前記モジュールに対応する対応データとを仮想フォルダ記憶部に記憶し、
上記仮想フォルダ記憶部に記憶した複数の仮想フォルダのいずれかの仮想フォルダ内に記憶したモジュールを編集してモジュールの機能を変更するとともに、機能を変更したモジュールに対応する対応データを編集して対応データの内容をモジュールの機能変更に対応させるデータ管理方法。
【請求項１１】
任意の仮想の階層構造を持つ複数の仮想フォルダを登録し、登録した複数の仮想フォルダの各仮想フォルダ内に所定の機能を実現するモジュールと前記モジュールに対応する対応データとを仮想フォルダ記憶部に記憶する処理と、
上記仮想フォルダ記憶部に記憶した複数の仮想フォルダのいずれかの仮想フォルダ内に記憶したモジュールを編集してモジュールの機能を変更するとともに、機能を変更したモジュールに対応する対応データを編集して対応データの内容をモジュールの機能変更に対応させる処理とをコンピュータに実行させるデータ管理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計文書やソースプログラムなどのソフトウェアの作業成果物を管理するソフトウェア構成管理装置に関するものである。
【０００２】
【従来の技術】
ソフトウェア作業成果物の管理作業として、まず、製品ソフトウェアのバージョンと各ソースファイルやドキュメントのバージョンを紐付けるバージョン管理、そして仕様変更や不具合管理などを含むより広い範囲の管理作業を行う変更管理である。これら２つを組み合わせて、開発プロセスの生産性を高め、品質確保を目的とする開発管理のことを「ソフトウェア構成管理」という。
【０００３】
汎用コンピュータや情報家電装置に組み込まれることにより所定の機能を果たすソフトウェアシステムは、一般に複数のソースプログラムから構成され、個々のソースプログラムは所定のプログラミング言語で記述されている。実行時には実行可能なオブジェクト形式に変換されて実行される。
ある機能を果たすソフトウェアシステムの開発では、同種のソフトウェアを、多少機能を相違させてそれぞれ異なった機種に適用することが広く行われている。このため、ソフトウェアの開発過程では、多くのバージョンが作成される。
【０００４】
仕様変更、不具合修正などによりソフトウェアの機能に変更を加える必要が生じると、機能変更が必要となるソースプログラムなどの開発担当者に変更要求が伝えられ、変更作業が実施される。
一般に、ソフトウェアに対して加えられる機能変更は複数の設計文書やソースプログラムに渡ることが多いため、複数の対象物間において変更の同期がとれていないとソフトウェアに不具合を生じることがある。例えば、１つの変更要求において変更すべき対象物が３つあり、そのうち２つだけが正しく登録されても、残りの１つが正しく登録されなかった場合、ソフトウェアに不具合を生じる。
変更されたバージョン間に不整合を生じることなく、ソフトウェア構成管理を確実に実施するためには、個々のバージョンの管理をするだけでなく、特定の機能に関連する設計文書やソースプログラムのバージョンを関連づけて管理を行う必要がある。
【０００５】
従来、このような数多くのバージョンからなるソフトウェア成果物を管理する技術として、例えば、特開２００２−１４０２２０にみられるように、複数のファイルを複数のカテゴリに分類して、複数のカテゴリ別にそれぞれ分類・整理を行う技術が知られているが、設計文書とソースプログラムのバージョンの整合を保ってソフトウェア作業成果物を管理するものは存在しなかった。
【０００６】
【特許文献１】
特開２００２−１４０２２０号公報
【０００７】
【発明が解決しようとする課題】
ソフトウェア作業成果物の管理を行う上で下記のような課題がある。
設計文書とソフトウェアプログラムを一体管理する標準的な手段がない。このため、ソースプログラムの特定のバージョンに対応する設計文書の所在がわからなくなる。
【０００８】
また、不具合修正や仕様変更のためにソースプログラムの改定が行われても、対応する設計文書の改定が完全に実施できていないことがある。このため、設計文書とソフトウェアプログラムの各バージョン間の変更情報に整合性がとれなくなり、ソースプログラムの改修やテスト作業時に手戻りが発生し易くなる。
【０００９】
さらに、ソフトウェアの開発過程では、不具合修正や仕様変更に対応して多くの変更要求が発生し設計文書やソースプログラムに多くのバージョンが生じる。ソースプログラムに不具合が見つかり、改修が行われると、改修の履歴を作成する。また、仕様変更が行われると、対応するソースプログラムにも変更が必要となる。
一般に一つの機能に関連する変更は単一のソースプログラム、または単一の設計文書だけではなく、複数の作業成果物にわたることが多い。また、同一のソースプログラムに対して、一方では、不具合改修、他方では、仕様変更による機能追加を行い、加えられた変更をあとでマージするといった作業もよく行われるため、作業内容が煩雑で実施漏れが生じ易い。したがって、不具合のあるプログラムを正しく修正したにもかかわらず、誤って未修正のバージョンを含めてしまうなどのエラーが発生することがある。
【００１０】
また、個々のプログラムや設計文書は正しく管理されていても、特定の成果物のバージョンだけが先行してしまい、一方他の成果物は古いバージョンのまま放置されてしまうことがあるなど、あとで整合がとれなくなることがある。汎用的な処理は再利用もできるが、製品モデルによって少しずつ機能が異なるため、それに応じて処理内容やファイル構成も少しずつ変えることになる。誤ったバージョンが正式出荷時に混入することのないよう、開発過程の各時点での変更履歴を蓄積しながら変更項目を明確にし、確実な管理作業を行えるようにする必要がある。
【００１１】
本発明は、ソフトウェア作業成果物の管理を行うことを可能とした、データ管理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明に係るデータ管理装置は、
任意の仮想の階層構造を持つ複数の仮想フォルダを登録し、登録した複数の仮想フォルダの各仮想フォルダ内に所定の機能を実現するモジュールと前記モジュールに対応する対応データとを記憶する仮想フォルダ記憶部と、
上記仮想フォルダ記憶部が複数の仮想フォルダのいずれかの仮想フォルダ内に記憶したモジュールを編集してモジュールの機能を変更するとともに、機能を変更したモジュールに対応する対応データを編集して対応データの内容をモジュールの機能変更に対応させるデータ編集部とを備える。
【００１３】
【発明の実施の形態】
実施の形態１．
本実施の形態は、設計情報の蓄積及び設計情報の再利用を支援する支援システムについて述べる。
本実施の形態に示す支援システムでは、仮想フォルダを表現するためのデータ構造体を設け、さらに記憶装置内に仮想フォルダを記憶するための仮想フォルダ記憶部と仮想フォルダを管理するための仮想フォルダ管理部を備えることにより、仮想フォルダを通じて変更対象であるソースプログラムや設計文書のデータにアクセスし改定作業を行うようにする。
【００１４】
以下、実施の形態１について説明する。
図１に本実施の形態の支援システムの全体構成図を示す。
支援システムは、表示装置１００、入力装置２００、データ管理装置３００、記憶装置４００から構成される。
データ管理装置３００は、データ登録部３１０とデータ参照部３２０とデータ編集部３３０とデータ影響範囲抽出部３４０とデータ適合性検証部３５０とを備える。
記憶装置４００は、複数の仮想フォルダを記憶した仮想フォルダ記憶部４１０と仮想フォルダを管理する仮想フォルダ管理部４２０とを備える。
表示装置１００は、これらの情報を作業者に表示し、入力装置２００は、キーボード２１０やマウス２２０等のポインティングデバイスを備え、データ入力を行うことができる。
【００１５】
次に、支援システムの内部構成について説明する。
まず、記憶装置４００の内部構成について説明する。
仮想フォルダ記憶部４１０は、同種のソフトウェアシステムについて、各リリース先毎に、現在までの全ての仮想フォルダを記録しつつ、各システム・リビジョン毎にその機能変更に関与するソースプログラム、設計文書のバージョンを記録する。すなわち、仮想フォルダ記憶部４１０は、任意の仮想の階層構造を持つ複数の仮想フォルダを登録し、登録した複数の仮想フォルダの各仮想フォルダ内に所定の機能を実現するソースプログラムとそのソースプログラムに対応する設計文書とを記憶する。
ここで、所定の機能を実現するソースプログラムは、所定の機能を実現するモジュールの一例であり、モジュールの他の例としてはオブジェクトプログラム、中間プログラム、静止画、動画などが挙げられる。
また、ソースプログラムに対応する設計文書は、モジュールに対応する対応データの一例であり、対応データの他の例としては、モジュールに対する認証データなどが挙げられる。言い換えれば、ソフトウェアやハードウェアの開発の作業成果物のうち、電子データとして記憶できるすべてのデータは、モジュールまたは対応データのいずれかに分類されて仮想フォルダ記憶部４１０に登録することができる。
この作業成果物の変更はすべて仮想フォルダを作成して行う。仮想フォルダとは、機能の名称や、作業成果物をまとめたデータ構造体であり、作業成果物の変更と同期的に扱う。
仮想フォルダ管理部４２０は、各ソースプログラム、設計文書等の作業成果物の名前と存在する全てのバージョン、ラベルなどの構成情報を記録する。
【００１６】
次に、データ管理装置３００の内部構成について説明する。
データ登録部３１０は、入力装置２００からの入力情報に従って、仮想フォルダ記憶部４１０及び仮想フォルダ管理部４２０にデータを登録する部である。
仮想フォルダ上で、変更が加えられたバージョンを参照することができる。
データ参照部３２０は、入力装置２００からのデータ参照要求に従って、仮想フォルダ記憶部４１０及び仮想フォルダ管理部４２０の内容を表示装置１００に表示する部である。すなわち、ユーザは、データ参照部３２０によって仮想フォルダ記憶部４１０に登録された複数の仮想フォルダを参照することができ、仮想フォルダ上で、変更が加えられたバージョンを参照することができる。
なお、データ参照部３２０は、仮想フォルダ記憶部４１０及び仮想フォルダ管理部４２０の内容を出力装置（図示していない）に出力してもよい。
【００１７】
データ編集部３３０は、データ参照部３２０によって参照された結果を表示した出力結果から、直ちに仮想フォルダ記憶部４１０及び仮想フォルダ管理部４２０の内容に編集作業を行えるようにする。具体的には、下記（１）及び（２）のことを行う。
（１）設計文書やソースプログラムなどの作業成果物のチェックインおよびチェックアウト動作を起動する。
（２）仮想フォルダの開始・完了、および仮想フォルダの編集・保存を行うための処理を行う。
【００１８】
データ影響範囲抽出部３４０は、入力装置２００からのデータ参照要求によって、特定の設計文書またはソースプログラム等の作業成果物に対して、機能変更による影響範囲を検索し、結果を表示する。
データ適合性検証部３５０は、仮想フォルダ記憶部４１０及び仮想フォルダ管理部４２０の内容を検証する部である。
【００１９】
次に、支援システムの各部の動作について説明する。
なお、以下の説明では、ソフトウェア開発の作業成果物として設計文書とソースプログラムを例に挙げて説明する。しかし、本実施の形態の発明は、ソフトウェア開発の作業成果物としては、上述した他のデータを用いてもかまわない。
【００２０】
まず、入出力の基本動作について説明する。
ソフトウェア開発の作業成果物である、設計文書やソースプログラムのファイルの名前、バージョンを入力装置２００から入力して登録を要求すると、データ登録部３１０が、ファイル、ファイルの名前、バージョンを仮想フォルダ管理部４２０に登録する。
その後、入力装置２００からのデータ参照要求に従って、仮想フォルダ管理部４２０の情報を表示装置１００に出力する。
仮想フォルダ管理部４２０にバージョンとともに登録されたファイルは、データ編集部３３０からの仮想フォルダ管理部４２０に対するチェックアウト要求によって編集可能な状態となり、チェックイン要求によって、チェックアウト前よりも１つバージョンを上げて仮想フォルダ管理部４２０に登録される。
【００２１】
次に、ソースプログラム等、作業成果物を機能毎に分類管理するための仮想フォルダの作成動作について説明する。
ユーザの指示入力により、入力装置２００は、仮想フォルダの名前、ソフトウェア作業成果物（設計文書やソースプログラム）の名前、バージョン指定して仮想フォルダの作成を要求する。
【００２２】
データ編集部３３０は、これを受けて、仮想フォルダの定義情報を作成する。
入力装置２００から仮想フォルダの定義情報確定の指示が入力されると、データ登録部３１０は、仮想フォルダの定義情報を仮想フォルダ記憶部４１０に保存する。このようにして、仮想フォルダの作成後に、特定の作業成果物の事後登録を可能とする。
もし、作業成果物の実体が存在していない場合は、事後登録用のフラグをＯＮに設定する。
【００２３】
仮想フォルダに登録される定義情報の一例を図２に示す。
仮想フォルダ内には、各フィールドの名前と対応するフィールドの値が記憶されている。
仮想フォルダの名称４１１は「ｌｍＤｉｒ１」、機能の名称４１２は「直線補完」、仮想フォルダのバージョン４１３は「バージョン１」、親となる仮想フォルダ４１４の存在するディレクトリは「ｌｍＤｉｒ０」、親となる仮想フォルダ４１４のバージョンは「バージョン３」、子となる仮想フォルダ４１５の存在するディレクトリは「ｌｍＤｉｒ２」、親となる仮想フォルダ４１５のバージョンは「バージョン１」であり、他に機能の説明を記載してもよい。
また、仮想フォルダ４１１には、作業成果物としてファイルとそのバージョン（ファイルバージョン４１６）が記憶される。ファイルバージョン４１６には、例えば、モジュールの一例としてソースプログラム「ＭｙＡｐｐ．ｃｘｘ」が記憶され、また、上記モジュールに対応する対応データの一例として設計文書「ＧＡ００１．ｄｏｃ」と「ＮＡ００３．ｄｏｃ」とが記憶されている。また各ファイル「ＧＡ００１．ｄｏｃ」、「ＮＡ００３．ｄｏｃ」、「ＭｙＡｐｐ．ｃｘｘ」の各々のバージョンは、「バージョン１」「バージョン４」「バージョン３」である。
モジュールの識別情報と対応する対応データの識別情報のみを仮想フォルダに記憶し、モジュールの識別情報から識別されるモジュールや対応データの識別情報から識別される対応データは、他の記憶領域に記憶されていてもよい。この場合には、仮想フォルダ記憶部４１０の各仮想フォルダ内は、所定の機能を実現するモジュールの識別情報と前記モジュールに対応する対応データの識別情報とを記憶し、データ編集部３３０は、いずれかの仮想フォルダ内に記憶したモジュールの識別情報から識別される、他の記憶領域に記憶されたモジュールを編集してモジュールの機能を変更するとともに、対応データの識別情報から識別される、他の記憶領域に記憶された対応データを編集して対応データの内容をモジュールの機能変更に対応させる動作によって仮想フォルダ内に記憶したデータを管理する。
【００２４】
また、上記ソースプログラムや文書データのバージョンは、ソースプログラムや文書データの更新履歴を表す更新履歴情報の一例であり、ソースプログラムや文書データの更新履歴を示す情報であれば、更新履歴情報はバージョンでなくても、例えば、更新前のソースプログラムと更新後のソースプログラムとを結ぶポインタの役割を示すものであってもよい。
また、上記仮想フォルダのバージョンは、仮想フォルダの更新履歴を表す更新履歴情報の一例であり、仮想フォルダの更新履歴を示す情報であれば、更新履歴情報はバージョンでなくても、例えば、更新前のソースプログラムや文書データを記録した仮想フォルダと更新後のソースプログラムや文書データを記録した仮想フォルダとを結ぶポインタの役割を示すものであってもよい。
【００２５】
このように、モジュール（ソースプログラム）に機能変更が生じ、データ編集部３３０によってモジュール（ソースプログラム）が編集された場合にも、データ登録部３１０は編集されたモジュール（ソースプログラム）を上記仮想フォルダ記憶部４１０に登録されている空の仮想フォルダ内に登録するとともに、モジュール（ソースプログラム）の更新履歴情報（上記の例ではソースプログラムのバージョン）を仮想フォルダ内に登録することによって編集前のモジュール（ソースプログラム）と編集後のモジュール（ソースプログラム）とをリンクさせることができる。
【００２６】
また、上記のように仮想フォルダ内に仮想フォルダの更新履歴情報（仮想フォルダのバージョン）を登録することで、編集前のモジュール（ソースプログラム）を記憶した仮想フォルダと編集後のモジュール（ソースプログラム）を記憶した仮想フォルダとをリンクさせることができる。
【００２７】
また、データ登録部３１０は、データ編集部３３０が編集したモジュール（ソースプログラム）を登録した仮想フォルダ内に上記データ編集部３３０が編集した対応データ（文書データ）を登録するとともに、対応データ（文書データ）の更新履歴情報（上記の例では文書データのバージョン）を仮想フォルダ内に登録することで、編集前の対応データ（文書データ）と編集後の対応データ（文書データ）とをリンクさせることができる。
【００２８】
上述のように仮想フォルダを作成し、任意の仮想の階層構造を持つ複数の仮想フォルダを使用してソースプログラムとソースプログラムに対応する設計文書（文書データ）とを管理することにより、図３のように実際のディレクトリ構造を変更することなく、任意の仮想的なフォルダ階層を実現することができる。
すなわち、図３の左側には実際のディレクトリ構造によって複数のファイルが管理されているが、図３の右側には、実際のディレクトリ構造を変更することなく、仮想フォルダ１０及び仮想フォルダ２０を用いて仮想のディレクトリ構造によって複数の仮想フォルダに記憶されたファイルが管理されている。なお、右側の仮想のディレクトリでは、仮想フォルダ２０と仮想フォルダ１０とは親子の階層関係にある。
【００２９】
次に、ソフトウェア開発作業中の管理動作について説明する。
機能変更の作業は、データ編集部３３０によって行う。
入力装置２００が、仮想フォルダの名前を指定して機能変更作業の開始を指示すると、データ編集部３３０は、仮想フォルダ記憶部４１０に問い合わせを行い、仮想フォルダの定義情報を取得する。
次に、データ編集部３３０は、仮想フォルダ管理部４２０に対してチェックアウト要求を発行し、仮想フォルダをチェックアウトするとともに、仮想フォルダに登録されたファイル（ソースプログラム及び文書データ）をすべてチェックアウトする。
チェックアウトされたことによって、仮想フォルダと仮想フォルダ内の上記ファイル（ソースプログラム及び文書データ）は編集可能な状態となる。
表示装置１００は、チェックアウトされた仮想フォルダとファイル（ソースプログラム及び文書データ）を表示する。
データ編集部３３０は、仮想フォルダから編集作業を開始する際、デフォルトでは、関連ファイルを予約してチェックアウトするが、予約なしてチェックアウトされるようにすることも可能とする。この場合、同一のファイルが他の仮想フォルダで変更されていれば、そこからマージを実行して解決する必要がある。
このように、仮想フォルダ管理部４２０は、データ編集部３３０が編集する対象となっているモジュール（ソースプログラム）と、他の仮想フォルダに登録されたモジュール（ソースプログラム）であって編集対象と同一のモジュール（ソースプログラム）との整合性を担保するために仮想フォルダの排他制御を行い、仮想フォルダ間での衝突が回避されれば、各仮想フォルダの編集作業を完了できるようになる。
【００３０】
次に、仮想フォルダの保存動作について説明する。
データ編集部３３０は、チェックアウトされた仮想フォルダに所属する各登録ファイルを適当なエディタやワープロなどで編集し、全ての編集作業を完了した時点で、入力装置２００からの指示入力により、仮想フォルダを指定してチェックインを実行する。
仮想フォルダのチェックイン処理では、まず、データ登録部３１０が仮想フォルダ管理部４２０に対してチェックイン要求を発行し、仮想フォルダ管理部４２０が仮想フォルダ内の各ファイルから順次チェックインを行う。
仮想フォルダ管理部４２０は、仮想フォルダ内のすべてのファイルのチェックインを完了すると、最後に仮想フォルダ自身もチェックインを行い、仮想フォルダの定義情報を仮想フォルダ記憶部４１０に保存する。
これにより、各ファイルのバージョンと仮想フォルダのバージョンは１つ上がる。
ただし、ここで、もし、仮想フォルダ内のファイルのうち、一つでもチェックインできなかったものがある場合は、データ登録部３１０は、そのチェックイン処理を取り消し、各ファイルをチェックイン前の状態に戻す。
【００３１】
このように、仮想フォルダの編集を行うことにより、仮想フォルダと、仮想フォルダ内のファイルは順次バージョンが上がる。この動作を図４に示す。
図４では、更新後の最新データの内容は仮想フォルダ１２に登録されている。つまり、仮想フォルダ１２は更新後のソースプログラムと更新後の文書データとを記憶し、仮想フォルダ１０と仮想フォルダ１１とは更新前のソースプログラムと更新前の文書データとを記憶している。各仮想フォルダ内には、各ファイルが更新される毎にそのバージョンが順次バージョンアップされていることを示している。
【００３２】
仮に、チェックアウトされた仮想フォルダ１０のファイル「ＧＡ００１．ｄｏｃ」がデータ編集部３３０によって編集され、「ＧＡ００１．ｄｏｃ」のバージョン１にのみ変更が加えられて「ＧＡ００１．ｄｏｃ」のバージョンがバージョン２となり、その他のファイルには、変更が加えられていない場合を想定する。このような場合の仮想フォルダ内の状態を図５に示す。
このとき、更新後の仮想フォルダである仮想フォルダ１１をチェックインしようとすると、表示装置１００は警告を表示する。
ここで、操作者が、仮想フォルダ１１内に登録された定義情報に対し変更の必要がないと判断した場合には、そのまま仮想フォルダをチェックインさせることもできるようにする。
【００３３】
次に、仮想フォルダを編集する場合の動作について説明する。
機能変更の必要が生じて、当該機能に関連するファイルが増加した場合は、仮想フォルダに新しくファイルとそのバージョンを追加することが必要となる。
その場合には、まず、データ参照部３２０によって、仮想フォルダ記憶部４１０に登録されている仮想フォルダを、表示装置１００に表示する。
次に、編集が必要となる仮想フォルダの名前を入力装置２００から指定されて、変更作業の開始が指示されると、データ編集部３３０は、仮想フォルダ管理部４２０に対して仮想フォルダのチェックアウト要求を発行し、該仮想フォルダをチェックアウトする。このようにして、仮想フォルダがチェックアウトされたことによって、仮想フォルダの定義情報は編集可能な状態となる。また、仮想フォルダ上で、変更が加えられたバージョンを取出すことができる。
【００３４】
入力装置２００から、ソフトウェア作業成果物である設計文書等の文書データやソースプログラムの名前、バージョンが指定され、仮想フォルダに追加されると、指定されたファイルを仮想フォルダの定義情報に追加される。
データ登録部３１０は、仮想フォルダ管理部４２０に対してチェックイン要求を発行し、仮想フォルダと仮想フォルダ内の各ファイルを全てチェックインするとともに、仮想フォルダ記憶部４１０に仮想フォルダの定義情報を保存する。
指定された作業成果物設計（文書データやソースプログラム）に、既に登録済みのファイルが含まれた場合は、該ファイルについての定義情報は変更しないが、事後登録用フラグがセットされているファイルが指定されている場合は、ファイルの存在を確認し、存在する場合には該フラグをリセットする。
【００３５】
図６に上述した仮想フォルダを編集した状態を示す。
まず、データ登録部３１０は、仮想フォルダをチェックアウトし、任意の機能を追加するために、任意の機能を実現するモジュール（ソースプログラム）と前記モジュール（ソースプログラム）に対応する対応データ（文書データ）とを仮想フォルダ内に追加登録する。具体的には、図６に示すように、仮想フォルダ３０にファイルバージョン４２２とファイルバージョン４２１を追加する。このようにして、仮想フォルダの作成後に、特定の作業成果物（ソースプログラム等）の事後登録を可能とする。
データ登録部３１０は、仮想フォルダをチェックインする。このとき、仮想フォルダのバージョンは、図６に示すように、バージョン１からバージョン２へ１つ上がる。
【００３６】
次に、不具合のあるファイル（ソースプログラムまたは文書データ）に対し、影響が及ぼされる範囲を検出するデータ影響範囲抽出部３４０の動作について説明する。
ある機能を果たすソフトウェアシステムの開発では、同種のソフトウェアを多少機能を相違させてそれぞれ異なった機種に適用することが広く行われているので、特定のファイルバージョン（ソースプログラムまたは文書データ）に不具合がみつかるなどして修正が必要となった場合、他機種についても不具合の影響範囲を調査する必要がある。
入力装置２００からの指示入力として、不具合のあったファイルバージョン（ソースプログラムまたは文書データ）が指定されて、データ影響範囲抽出部３４０が起動されると、データ影響範囲抽出部３４０はまず、データ参照部３２０によって、仮想フォルダ管理部４２０に問い合わせを行い、当該バージョンの祖先となるファイルバージョン（ソースプログラムまたは文書データ）のリストを取得する。
次に、データ影響範囲抽出部３４０は、仮想フォルダ記憶部４１０に問い合わせを行うことにより、仮想フォルダのデータ構造体を走査し、前記リスト中に含まれるファイルバージョン（ソースプログラムまたは文書データ）をファイルフィールド中にもつ仮想フォルダを全て取得し、対応する機能名称の一覧を、不具合のあったファイルバージョン（ソースプログラムまたは文書データ）から影響を受ける範囲の一覧として表示装置１００に表示する。
【００３７】
このように、データ影響範囲抽出部３４０は、仮想フォルダ記憶部４１０の複数の仮想フォルダに登録された更新履歴情報（バージョン）から不具合のあるモジュール（ソースプログラム）に対応した更新履歴情報（バージョン）を取得し、不具合のあるモジュール（ソースプログラム）に対応する対応データ（文書データ）の更新履歴情報（バージョン）を取得し、取得したモジュール（ソースプログラム）の更新履歴情報（バージョン）と対応データ（文書データ）の更新履歴情報（バージョン）とから不具合のあるモジュール（ソースプログラム）の更新前のモジュール（ソースプログラム）と更新後のモジュール（ソースプログラム）と対応する更新前の対応データ（文書データ）と更新後の対応データ（文書データ）とを特定し、特定したモジュール（ソースプログラム）と対応データ（文書データ）との少なくともいずれかを記憶した１以上の仮想フォルダを仮想フォルダ記憶部４１０から取得し、取得した１以上の仮想フォルダを不具合の影響範囲として特定する。このようにして、仮想フォルダ上で加えられた変更によって不具合が生じた場合に、不具合が生じた影響範囲を特定することができる。
【００３８】
次に、仮想フォルダの内容を検証するデータ適合性検証部３５０の動作について説明する。
入力装置２００からのユーザの指示入力により、データ適合性検証部３５０が起動されると、データ適合性検証部３５０はまず、データ参照部３２０によって、仮想フォルダ記憶部４１０に登録されている仮想フォルダの定義情報を検索する。
次に、検索によって得られた、仮想フォルダ定義情報について、同一仮想フォルダの異なるバージョン間において、ファイルバージョンのフィールドを比較する。ここでもし、前バージョンからバージョンが上がっていないファイルバージョンを含む仮想フォルダバージョンが存在する場合、および事後登録用フラグが１つ以上セットされている場合には、その仮想フォルダの名前とバージョンを含む検索結果を警告として記録し、表示装置１００に表示する。
【００３９】
このように、データ適合性検証部３５０は、仮想フォルダ記憶部４１０の複数の仮想フォルダに登録された更新履歴情報（バージョン）から所定のモジュール（ソースプログラム）に対して更新前のモジュール（ソースプログラム）と更新前の対応データ（文書データ）と更新後のモジュール（ソースプログラム）と更新後の対応データ（文書データ）とを特定し、特定したモジュール（ソースプログラム）と対応データ（文書データ）との内容を検証し、検証した結果、検証したモジュール（ソースプログラム）と対応データ（文書データ）の内容と検証したモジュール（ソースプログラム）と対応データ（文書データ）とが持つ更新履歴情報（バージョン）とに矛盾がある場合には、矛盾があるモジュールと（ソースプログラム）対応データ（文書データ）とが登録されている仮想フォルダと仮想フォルダの更新履歴情報（バージョン）とを警告として記録するので、仮想フォルダ上の作業成果物の整合性を検証することができる。
【００４０】
以上、説明した本実施の形態の発明のデータ管理装置３００によれば、まず、設計文書（文書データ）とソフトウェアプログラム（ソースプログラム）を一体管理する標準的な手段を提供し、不具合修正や仕様変更のためにソースプログラムの改定が繰り返されても、複数の作業成果物の間での整合性を損なうことなく、変更情報を正しく維持管理できるようになる。
また、本実施の形態の発明のデータ管理装置３００によれば、開発過程の各時点での更新履歴情報を蓄積しながら変更項目を明確にし、確実な管理作業を行える。
【００４１】
図７は、データ管理装置３００のコンピュータ基本構成図である。
図７において、プログラムを実行するＣＰＵ４０は、バス３８を介してモニタ４１、キーボード４２、マウス４３、通信ポート４４、磁気ディスク装置４６等と接続されている。キーボード４２、マウス４３は入力装置２００の一例である。
また、磁気ディスク装置４６には、ＯＳ４７、プログラム群４９、ファイル群５０が記憶されている。磁気ディスク装置４６は記憶装置４００の一例である。
プログラム群４９には、データ登録部３１０、データ参照部３２０、データ編集部３３０、データ影響範囲抽出部３４０、データ適合性検証部３５０などの機能を実現するプログラムが記憶され、ＣＰＵ４０、ＯＳ４７により実行される。
上記各実施の形態では、データ管理装置３００は、通信ポート４４の機能を使用して他の機器と接続される。
【００４２】
以上に記載した「蓄積する」、「登録する」、「記憶する」、「表示する」という用語は、記録媒体に保存することを意味する。
【００４３】
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このように置き換えることにより、方法の発明の実施形態とすることができる。
また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、プログラムの実施の形態とすることができる。
また、プログラムを、プログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで、プログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【００４４】
プログラムの実施の形態及びプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
プログラムの実施の形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置（ＣＰＵ）に読み込まれ、中央処理装置によって、各フローチャートが実行されることになる。
また、各実施の形態のソフトウェアやプログラムは、ＲＯＭ（ＲＥＡＤ  ＯＮＬＹ  ＭＥＭＯＲＹ）に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアとファームウェアとハードウェアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
【００４５】
【発明の効果】
本発明のデータ管理装置によれば、複数の作業成果物を機能毎に分類管理することができる。
【図面の簡単な説明】
【図１】システム構成図である。
【図２】仮想フォルダの定義情報を示す図である。
【図３】仮想ディレクトリを示す図である。
【図４】仮想フォルダの更新を示す図である。
【図５】仮想フォルダの更新を示す他の図である。
【図６】仮想フォルダの追加登録を示す図である。
【図７】データ管理装置３００のコンピュータ基本構成図である。
【符号の説明】
３８  バス、４０  ＣＰＵ、４１  モニタ、４２，２１０  キーボード、４３，２２０  マウス、４４  通信ポート、４６  磁気ディスク装置、４７  ＯＳ、４９  プログラム群、５０  ファイル群、１００  表示装置、２００  入力装置、３００  データ管理装置、３１０  データ登録部、３２０  データ参照部、３３０  データ編集部、３４０  データ影響範囲抽出部、３５０  データ適合性検証部、４００  記憶装置、４１０  仮想フォルダ記憶部、４２０  仮想フォルダ管理部。
【図１】
2004252719.tif 000003
【図２】
2004252719.tif 000004
【図３】
2004252719.tif 000005
【図４】
2004252719.tif 000006
【図５】
2004252719.tif 000007
【図６】
2004252719.tif 000008
【図７】
2004252719.tif 000009