(57)【要約】【課題】命名規約に沿わないファイルの登録を抑制する技術を提供する。【解決手段】構成管理サーバ１０の資産登録判定制御部１５において，受付部１５１は，利用者端末２０から，資産記憶部１１の指定されたフォルダに対するファイルの登録要求を受け付ける。分割部１５２は，登録要求されたファイルの名称を，所定のデリミタ文字を境に文字列のブロックに分割する。判定部１５３は，登録要求されたファイルの名称から得られた文字列のブロック数が，指定されたフォルダの配下にあるファイルの名称を分割して得られる文字列のブロック数のいずれとも不一致である場合に，登録要求されたファイルを登録しないと判定する。【選択図】図１
2013050777.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに，
フォルダ内への格納を要求されたファイルのファイル名に含まれる所定の文字の数が，前記フォルダ内に格納された他のいずれのファイルのファイル名に含まれる前記所定の文字の数とも異なる場合に，前記ファイルの前記フォルダへの格納を抑止する
処理を実行させるための管理プログラム。
【請求項２】
前記所定の文字は，前記フォルダの命名規約において，ファイル名に含まれる複数の文字列間の区切り文字に用いられることを定められた文字または記号である
ことを特徴とする請求項１に記載の管理プログラム。
【請求項３】
コンピュータに，
指定されたフォルダに対するファイルの登録要求を受け付け，
前記登録要求されたファイルの名称を所定文字を境に文字列のブロックに分割し，
前記登録要求されたファイルの名称から得られた文字列のブロック数が，前記指定されたフォルダの配下にあるファイルの名称を前記所定文字を境に分割して得られる文字列のブロック数のいずれとも不一致である場合に，前記登録要求されたファイルを登録しないと判定する
処理を実行させるための管理プログラム。
【請求項４】
前記コンピュータに，さらに，
ファイルの名称を前記所定文字を境に分割して得られる文字列のブロックのうち，先頭ブロックまたは末尾ブロックの文字列が，前記登録要求されたファイルと一致する，前記指定されたフォルダの配下にあるファイルが存在しない場合に，前記登録要求されたファイルを登録しないと判定する
処理を実行させるための請求項３に記載の管理プログラム。
【請求項５】
前記コンピュータに，さらに，
前記ファイルの登録要求が，特定の権限による登録要求である場合に，前記登録しないとの判定に関わらず，前記登録要求されたファイルを登録すると判定する
処理を実行させるための請求項３または請求項４に記載の管理プログラム。
【請求項６】
フォルダ内への格納を要求されたファイルのファイル名に含まれる所定の文字の数が，前記フォルダ内に格納された他のいずれのファイルのファイル名に含まれる前記所定の文字の数とも異なる場合に，前記ファイルの前記フォルダへの格納を抑止する登録判定制御部を備える
ことを特徴とする管理システム。
【請求項７】
コンピュータが，
フォルダ内への格納を要求されたファイルのファイル名に含まれる所定の文字の数が，前記フォルダ内に格納された他のいずれのファイルのファイル名に含まれる前記所定の文字の数とも異なる場合に，前記ファイルの前記フォルダへの格納を抑止する過程を実行する
ことを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データを管理する管理プログラム，管理システムおよび管理方法に関する。
【背景技術】
【０００２】
複数の開発者から構成されるチームでソフトウェア開発を行うプロジェクト等において，開発資産を一元管理する技術がある。このような技術は，一般に，ソフトウェア構成管理や，単に構成管理などと呼ばれる。構成管理によって管理される開発資産は，例えば，ソースコードや仕様書などのファイルである。
【０００３】
構成管理では，例えば，プロジェクトで制定された資産管理の規約に従って，開発資産が管理される。資産管理の規約としては，例えば，構成管理システムで管理するファイルの命名規約や，フォルダの命名規約，権限者の指定，削除規約などがある。ここで，構成管理システムは，開発資産であるファイルを登録管理するファイルシステムなどを含む，コンピュータシステムである。
【０００４】
なお，タグ番号の文字列パターンを分類し，フィルタ文字列とパターンマッチするタグ番号だけを表示することでタグ番号の検索性を向上させる技術が知られている。また，フォルダごとに設定された文書名の命名規約を保持しておき，文書の登録時に，登録先のフォルダに設定された命名規約に従って文書名を変換してユーザに提示する技術が知られている。また，ファイル名称を可視化する際に，ファイル名称を分割した項目ごとに先頭位置を揃えて，一覧形式で可視化する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１９９３４２号公報
【特許文献２】特開２００６−０７２５６０号公報
【特許文献３】特開平１０−３０１８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のように，構成管理システムで管理される開発資産のファイルには，開発者などのユーザによって，プロジェクトで制定された命名規約に沿ったファイル名が付与される。しかし，ユーザが，命名規約に沿わないファイル名を誤って付与したファイルを，構成管理システムに対して登録する可能性がある。
【０００７】
一側面では，本発明は，命名規約に沿わないファイル名でファイルが登録されることを抑制することを目的とする。
【課題を解決するための手段】
【０００８】
１態様では，開示するプログラムは，コンピュータを，次のように機能させる。すなわち，前記プログラムは，前記プログラムがインストールされて実行されるコンピュータに，フォルダ内への格納を要求されたファイルのファイル名に含まれる所定の文字の数が，当該フォルダ内に格納された他のいずれのファイルのファイル名に含まれる当該所定の文字の数とも異なる場合に，当該ファイルの当該フォルダへの格納を抑止する処理を実行させる。
【発明の効果】
【０００９】
１態様では，命名規約に沿わないファイル名でファイルが登録されることを抑制することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態による構成管理システムの構成例を示す図である。
【図２】本実施の形態による構成管理サーバを実現するコンピュータのハードウェア構成例を示す図である。
【図３】本実施の形態によるルール情報のデータ構成例を示す図である。
【図４】開発資産のファイルを格納するフォルダの例を示す図である。
【図５】本実施の形態のフォルダ解析部による処理後のルール情報の例を示す図である。
【図６】本実施の形態のフォルダ解析部による処理後のルール情報の例を示す図である。
【図７】本実施の形態のルール導出部による処理後のルール情報の例を示す図である。
【図８】本実施の形態のルール導出部による処理後のルール情報の例を示す図である。
【図９】本実施の形態のルール情報更新部による処理後のルール情報の例を示す図である。
【図１０】本実施の形態のルール生成部によるルール生成処理フローチャートである。
【図１１】本実施の形態のフォルダ解析部によるフォルダ解析処理フローチャートである。
【図１２】本実施の形態のフォルダ解析部による要素名分析処理フローチャートである。
【図１３】本実施の形態のルール導出部によるルール導出処理フローチャートである。
【図１４】本実施の形態のルール導出部によるルール導出処理フローチャートである。
【図１５】本実施の形態の資産登録判定制御部による資産登録判定処理フローチャートである。
【図１６】本実施の形態の資産登録判定制御部によるルールチェック処理フローチャートである。
【図１７】本実施の形態の判定部による既存ルール検索処理フローチャートである。
【図１８】本実施の形態のファイル登録によるデータ変遷の例を示す図である。
【発明を実施するための形態】
【００１１】
以下，本実施の形態について，図を用いて説明する。
【００１２】
図１は，本実施の形態による構成管理システムの構成例を示す図である。
【００１３】
図１に示す構成管理システムにおいて，構成管理サーバ１０は，ソフトウェア開発の資産であるファイルを一元管理するコンピュータである。構成管理サーバ１０では，制定された命名規約に従ったファイル管理が行われる。利用者端末２０は，ソフトウェアの開発者や構成管理システムの管理者などの各ユーザが使用するコンピュータである。各利用者端末２０は，ＬＡＮ等のネットワーク３０を介して構成管理サーバ１０にアクセス可能である。
【００１４】
構成管理サーバ１０は，資産記憶部１１，構成管理制御部１２，ルール生成部１３，ルール情報記憶部１４，資産登録判定制御部１５を備える。
【００１５】
資産記憶部１１は，本実施の形態の構成管理システムによる管理対象である開発資産のファイルを記憶する記憶部である。資産記憶部１１では，フォルダを用いた階層構造で，ファイルが管理されている。なお，本実施の形態のフォルダには，ディレクトリも含まれるものとする。
【００１６】
構成管理制御部１２は，開発資産の管理制御を行う。例えば，構成管理制御部１２は，登録が依頼されたファイルを，資産記憶部１１における指定されたフォルダの配下に，開発資産として登録するなどの処理を行う。
【００１７】
ルール生成部１３は，指定されたフォルダ配下にすでに存在するファイルを解析し，該当フォルダ配下におけるファイルの名称の規則性を示すルール情報を自動生成する。本実施の形態による構成管理サーバ１０では，制定された命名規約に従ったファイル管理が行われていることが前提となっている。したがって，ルール生成部１３により自動生成されるルール情報は，制定された命名規約に準じた，該当フォルダ配下のファイルに対する命名ルールの情報となる。
【００１８】
ルール生成部１３は，フォルダ解析部１３１，ルール導出部１３２を備える。フォルダ解析部１３１は，ルール情報の生成が指定されたフォルダ配下のファイルの名称を解析する。ルール導出部１３２は，フォルダ解析部１３１による解析の結果に基づいて，ルール情報の生成が指定されたフォルダ配下のファイルに対する命名ルールを導出する。
【００１９】
本実施の形態では，フォルダ解析部１３１による解析結果の情報と，ルール導出部１３２により導出された命名ルールを示す情報とを含めた情報が，ルール生成部１３により生成されたルール情報となる。ルール生成部１３により生成されるルール情報は，ルール情報記憶部１４に記憶される。ルール情報記憶部１４は，ルール情報を記憶する記憶部である。
【００２０】
資産登録判定制御部１５は，本実施の形態の構成管理システムに対する開発資産の登録可否を判定する制御を行う。すなわち，資産登録判定制御部１５は，利用者端末２０から資産記憶部１１へのファイル登録が要求された際に，登録が要求されたファイルの資産記憶部１１への登録可否を判定する制御を行う。
【００２１】
例えば，資産登録判定制御部１５は，フォルダ内への格納を要求されたファイルのファイル名に含まれる所定の文字の数が，そのフォルダ内に格納された他のいずれのファイルのファイル名に含まれる所定の文字の数とも異なる場合に，要求されたファイルの該当フォルダへの格納を抑止する制御を行う。所定の文字は，該当フォルダの命名規約において，ファイル名に含まれる複数の文字列間の区切り文字に用いられることを定められた文字または記号である。
【００２２】
本実施の形態による資産登録判定制御部１５の具体的な動作の例を説明する。資産登録判定制御部１５は，受付部１５１，分割部１５２，判定部１５３，登録部１５４，強制登録部１５５，ルール情報更新部１５６を備える。
【００２３】
受付部１５１は，利用者端末２０から，指定されたフォルダに対するファイルの登録要求を受け付ける。例えば，ソフトウェアの開発者であるユーザが，自身の利用者端末２０で作成，編集した開発資産のファイルを，構成管理サーバ１０のファイルシステム，すなわち資産記憶部１１に登録する作業を行う。このとき，ユーザは，ファイルの登録先のフォルダを指定する。ユーザが操作する利用者端末２０は，登録先のフォルダを指定したファイルの登録要求を構成管理サーバ１０に送る。受付部１５１は，利用者端末２０から送られたファイルの登録要求を受け付ける。
【００２４】
分割部１５２は，登録要求されたファイルの名称を，所定文字を境に文字列のブロックに分割する。開発資産であるファイルの名称は，複数の文字列のブロックを組み合わせて生成されることが多い。このとき，各ブロックの文字列の連結に，デリミタ文字と呼ばれる区切り文字が用いられることが多い。分割部１５２がファイルの名称を分割する際に用いる所定文字は，例えばデリミタ文字として定義された，記号を含む文字である。デリミタ文字として使用される文字には，例えば，“＿”，“−”，“＃”などの文字がある。図１では図示省略されているが，本実施の形態による構成管理サーバ１０では，デリミタ文字が定義された設定情報が保持されている。
【００２５】
例えば，登録要求されたファイルの名称が“構造設計書＿情報系２次改修＿表示制御部.doc”であったものとする。また，所定のデリミタ文字として，“＿”が定義されているものとする。このとき，分割部１５２は，登録要求されたファイルの名称が“構造設計書＿情報系２次改修＿表示制御部.doc”を所定のデリミタ文字“＿”を境に分割し，３つの文字列のブロック“構造設計書”，“情報系２次改修”，“表示制御部”を得る。
【００２６】
なお，本実施の形態では，後述のファイルの登録可否判定で拡張子の文字列を使用しないので，分割部１５２により得られる文字列のブロックに，拡張子の文字列のブロックは含まれない。ファイルの命名規約において，拡張子の文字列が重要な意味をなすようなケースでは，拡張子の文字列のブロックを含めたファイルの登録可否判定を行うようにしてもよい。
【００２７】
判定部１５３は，登録要求されたファイルの名称と，登録先として指定されたフォルダの配下にすでに格納されているファイルの名称とに基づいて，登録要求されたファイルの指定されたフォルダへの登録可否を判定する。上述したように，本実施の形態による構成管理サーバ１０では，制定された命名規約に従ったファイル管理が行われることが前提となっている。すなわち，資産記憶部１１において，フォルダの配下にすでに格納されているファイルの名称は，制定された命名規約に沿って命名された名称であることになる。判定部１５３は，登録要求されたファイルの名称と，指定されたフォルダの配下にすでに格納されているファイルの名称との間で，共通する命名ルールがあるかを判断することで，登録要求されたファイルの登録可否の判定を行う。
【００２８】
例えば，判定部１５３は，登録要求されたファイルの名称から得られた文字列のブロック数と，指定されたフォルダの配下にある各ファイルの名称を所定文字を境に分割して得られる文字列のブロック数とを比較する。判定部１５３は，登録要求されたファイルの名称から得られた文字列のブロック数が，指定されたフォルダの配下にある各ファイルの名称から得られる文字列のブロック数のいずれとも不一致である場合に，登録要求されたファイルを登録しないと判定する。
【００２９】
一般に，同じ種類の開発資産として一緒に管理するファイルであれば，そのファイルの名称に含まれる文字列のブロック数は，同じブロック数となる。本実施の形態では，同じ種類の開発資産として一緒に管理するファイルに対しては，同じブロック数の文字列がデリミタ文字で連結された名称が付与されるように，命名規約によって定められているものとする。一般に，開発資産の管理を行うファイルシステムでは，同じ種類の開発資産として管理するファイルを，同じフォルダ配下に一緒に格納することが行われる。すなわち，登録要求されたファイルと同じ文字列のブロック数の名称を持つファイルが，登録先として指定されたフォルダの配下にない場合には，登録要求されたファイルの名称が，該当フォルダにおけるファイルに対する命名ルールに従っていない可能性が高い。
【００３０】
このようなファイルの名称に含まれる文字列のブロック数を用いた判定によって，本実施の形態による構成管理システムでは，命名規約に沿わないファイルの登録を抑制することが可能となる。
【００３１】
なお，本実施の形態では，開発資源であるファイルの登録先として指定される可能性があるフォルダについては，判定部１５３によるファイルの登録可否判定で必要な情報を含むルール情報が，ルール生成部１３によってあらかじめ生成され，ルール情報記憶部１４に記憶されている。本実施の形態では，上述の指定されたフォルダの配下にあるファイルの名称を所定文字を境に分割して得られる文字列のブロック数の情報は，ルール情報記憶部１４に記憶されたルール情報に含まれている。判定部１５３は，ルール情報記憶部１４に記憶された該当フォルダのルール情報から，判定に必要な情報を取得する。
【００３２】
また，例えば，判定部１５３は，ファイルの名称を所定文字を境に分割して得られる文字列のブロックのうち，先頭ブロックまたは末尾ブロックの文字列が，登録要求されたファイルと一致する，指定されたフォルダの配下にあるファイルが存在するかを確認する。判定部１５３は，先頭ブロックまたは末尾ブロックの文字列が登録要求されたファイルと一致する，指定されたフォルダの配下にあるファイルが存在しない場合に，登録要求されたファイルを登録しないと判定する。
【００３３】
一般に，同じ種類の開発資産として一緒に管理するファイルであれば，そのファイルの名称における先頭ブロックの文字列または末尾ブロックの文字列のいずれかに，同じ文字列が使用される。本実施の形態では，同じ種類の開発資産として一緒に管理するファイルに対しては，そのファイルの名称における先頭ブロックの文字列または末尾ブロックの文字列のいずれかに同じ文字列が使用されるように，命名規約によって定められているものとする。すなわち，先頭ブロックまたは末尾ブロックの文字列が登録要求されたファイルと一致する，指定されたフォルダの配下にあるファイルが存在しない場合には，登録要求されたファイルの名称が，該当フォルダにおけるファイルに対する命名ルールに従っていない可能性が高い。
【００３４】
このようなファイルの名称に含まれる先頭ブロックの文字列または末尾ブロックの文字列を用いた判定によって，本実施の形態による構成管理システムでは，命名規約に沿わないファイルの登録を抑制することが可能となる。
【００３５】
なお，本実施の形態では，指定されたフォルダの配下にあるファイルの名称における先頭ブロックの文字列や末尾ブロックの文字列の情報は，ルール情報記憶部１４に記憶されたルール情報に含まれている。判定部１５３は，ルール情報記憶部１４に記憶された該当フォルダのルール情報から，判定に必要な情報を取得する。
【００３６】
登録部１５４は，判定部１５３によって登録可能と判定された，登録要求されたファイルを，登録先として指定されたフォルダに登録する処理を行う。例えば，登録部１５４は，登録要求されたファイルの，資産記憶部１１における指定先フォルダの領域への格納を，構成管理制御部１２に依頼する。
【００３７】
強制登録部１５５は，ファイルの登録要求が，特定の権限による登録要求である場合に，判定部１５３による登録しないとの判定に関わらず，登録要求されたファイルを登録すると判定する。特定の権限によるファイルの登録要求は，例えば，特定の権限を持つユーザが操作する利用者端末２０からのファイルの登録要求である。
【００３８】
判定部１５３により登録できないと判定されたファイルが従う命名ルールは，登録先として指定されたフォルダ配下にすでに格納されているファイルが従う命名ルールとは異なる。特定の権限を持たないユーザは，このようなファイルを，当該フォルダ配下に登録することができない。
【００３９】
ただし，例えばプロジェクトの管理者など，特定の権限を持つユーザは，登録先として指定したフォルダ配下のファイルが従う命名ルールとは異なる命名ルールに従ったファイルを，強制的に登録することが可能である。例えば，強制登録部１５５は，ファイルの登録要求を行った利用者端末２０の操作者が，特定の権限を持つユーザである場合に，判定部１５３の判定では登録できないとされた登録要求のファイルを，指定されたフォルダ配下に登録するように，構成管理制御部１２に依頼する。
【００４０】
強制登録部１５５によってフォルダ配下に新たなファイルが登録されると，以後当該フォルダには，特定の権限を持たないユーザによる登録要求であっても，新たなファイルと同じ命名ルールに従ったファイルの登録が可能となる。すなわち，特定の権限を持つユーザは，命名規約の設定変更などのわずらわしい作業を行わずに，新たな命名ルールに従ったファイルを強制登録するだけで，構成管理システムにおける命名規約の変更を行うことが可能となる。
【００４１】
ルール情報更新部１５６は，登録要求されたファイルが指定されたフォルダ配下に登録される際に，ルール情報記憶部１４に記憶されたルール情報の更新を行う。例えば，ルール情報更新部１５６は，フォルダ配下に新たなファイルが追加されたときに，ルール情報における当該フォルダ配下のファイルの名称の解析結果の情報に，新たなファイルの名称の解析結果の情報を追加する。また，ルール情報更新部１５６は，フォルダ配下への新たなファイルの追加で，当該フォルダ配下のファイルから新たな命名ルールが導出可能となった場合に，ルール情報における導出された命名ルールを示す情報を更新する。
【００４２】
なお，利用者端末２０が構成管理サーバ１０の機能を備えて，単一の装置で本発明を実現する実施形態としても良い。
【００４３】
図２は，本実施の形態による構成管理サーバを実現するコンピュータのハードウェア構成例を示す図である。
【００４４】
図１に示す本実施の形態の構成管理サーバ１０を実現するコンピュータ１は，例えば，ＣＰＵ（Central Processing Unit ）２，主記憶となるメモリ３，記憶装置４，通信装置５，媒体読取・書込装置６，入力装置７，出力装置８等を備える。記憶装置４は，例えばＨＤＤ（Hard Disk Drive ）などである。媒体読取・書込装置６は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置７は，例えばキーボード・マウスなどである。出力装置８は，例えばディスプレイ等の表示装置などである。
【００４５】
図１に示す構成管理サーバ１０および構成管理サーバ１０が備える各機能部は，コンピュータ１が備えるＣＰＵ２，メモリ３等のハードウェアと，ソフトウェアプログラムとによって実現することが可能である。コンピュータ１が実行可能なプログラムは，記憶装置４に記憶され，その実行時にメモリ３に読み出され，ＣＰＵ２により実行される。
【００４６】
コンピュータ１は，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータ１は，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータ１で読み取り可能な記録媒体に記録しておくことができる。
【００４７】
なお，図１に示す構成管理システムにおける利用者端末２０についても，構成管理サーバ１０と同様に，図２に示すようなハードウェア構成を有するコンピュータ１によって実現可能である。
【００４８】
以下では，ルール情報記憶部１４に記憶されるルール情報について，より具体的な例を示しながら説明を行う。
【００４９】
図３は，本実施の形態によるルール情報のデータ構成例を示す図である。
【００５０】
図３（Ａ）は，フォルダ管理テーブル１４１のデータ構成例を示す。図３（Ｂ）は，要素管理テーブル１４２のデータ構成例を示す。図３（Ｃ）は，サブ要素管理テーブル１４３のデータ構成例を示す。図３（Ｄ）は，ルール管理テーブル１４４のデータ構成例を示す。図３（Ｅ）は，ルールサブ要素管理テーブル１４５のデータ構成例を示す。図３に示す各テーブルは，ルール情報記憶部１４に記憶されるルール情報を構成するデータの一例である。
【００５１】
図３（Ａ）に示すフォルダ管理テーブル１４１は，開発資産のファイルを格納するフォルダの状況を管理するデータである。フォルダ管理テーブル１４１は，要素管理テーブルリスト，ルール導出保留要素管理テーブルリスト，ルール管理テーブルリスト，子フォルダ管理テーブルリストの情報を持つ。
【００５２】
要素管理テーブルリストは，当該フォルダ管理テーブル１４１が管理するフォルダ配下の各要素についての要素管理テーブル１４２のリストデータである。例えば，要素管理テーブルリストは，該当する要素管理テーブル１４２に対するポインタのリストとなる。フォルダ配下の要素は，ファイルやサブフォルダである。
【００５３】
ルール導出保留要素管理テーブルリストは，当該フォルダ管理テーブル１４１が管理するフォルダ配下の各要素のうち，まだ命名ルールの導出ができない要素についての要素管理テーブル１４２のリストデータである。例えば，ルール導出保留要素管理テーブルリストは，該当する要素管理テーブル１４２に対するポインタのリストとなる。
【００５４】
ルール管理テーブルリストは，当該フォルダ管理テーブル１４１が管理するフォルダ配下の各要素から導出された命名ルールについてのルール管理テーブル１４４のリストデータである。例えば，ルール管理テーブルリストは，該当するルール管理テーブル１４４に対するポインタのリストとなる。
【００５５】
子フォルダ管理テーブルリストは，当該フォルダ管理テーブル１４１が管理するフォルダ配下のサブフォルダについてのフォルダ管理テーブル１４１のリストデータである。例えば，子フォルダ管理テーブルリストは，該当するフォルダ管理テーブル１４１に対するポインタのリストとなる。
【００５６】
図３（Ｂ）に示す要素管理テーブル１４２は，開発資産のファイルを格納するフォルダ配下の要素に対する要素名の解析結果等を管理するデータである。上述したように，フォルダ配下の要素には，ファイルとサブフォルダとがあるが，本実施の形態では，ファイルについての要素管理テーブル１４２のみが生成されるものとする。フォルダの命名規約に沿ったフォルダの登録制御を行う場合には，サブフォルダについても要素管理テーブル１４２を生成する。要素管理テーブル１４２は，要素名，ルール導出済みフラグ，サブ要素数，サブ要素管理テーブルリストの情報を持つ。
【００５７】
要素名は，当該要素管理テーブル１４２が管理する要素の名称を示す。本実施の形態では，ファイルについての要素管理テーブル１４２のみが生成されるので，要素管理テーブル１４２の要素名は，ファイルの名称となる。
【００５８】
ルール導出済みフラグは，当該要素管理テーブル１４２が管理する要素から，命名ルールが導出されたかを示す。命名ルールが導出された場合には，ルール導出済みフラグにｔｒｕｅが記録され，まだ命名ルールが導出されていない場合には，ルール導出済みフラグにｆａｌｓｅが記録される。
【００５９】
サブ要素数は，当該要素管理テーブル１４２が管理する要素の名称すなわちファイルの名称を，所定のデリミタ文字を境に分割して得られる文字列のブロックの数を示す。以下では，ファイルの名称を所定のデリミタ文字を境に分割して得られる文字列のブロックをサブ要素とも呼ぶ。なお，本実施の形態のサブ要素には，拡張子は含まれない。
【００６０】
サブ要素管理テーブルリストは，当該要素管理テーブル１４２が管理する要素の要素名を分割して得られる各サブ要素についてのサブ要素管理テーブル１４３のリストデータである。例えば，サブ要素管理テーブルリストは，該当するサブ要素管理テーブル１４３に対するポインタのリストとなる。
【００６１】
図３（Ｃ）に示すサブ要素管理テーブル１４３は，開発資産のファイルを格納するフォルダ配下の要素の要素名を分割して得られる各サブ要素を管理するデータである。サブ要素管理テーブル１４３は，部分文字列，デリミタ文字の情報を持つ。
【００６２】
部分文字列は，当該サブ要素管理テーブル１４３が管理するサブ要素の文字列である。デリミタ文字は，要素名において，当該サブ要素管理テーブル１４３が管理するサブ要素の後ろにあるデリミタ文字である。なお，要素名における最後のサブ要素など，後ろにデリミタ文字がない場合には，サブ要素管理テーブル１４３のデリミタ文字の項目に，例えばｎｕｌｌが記録される。
【００６３】
図３（Ｄ）に示すルール管理テーブル１４４は，開発資産のファイルを格納するフォルダ配下の要素から導出された命名ルールを管理するデータである。ルール管理テーブル１４４は，サブ要素数，ルールサブ要素管理テーブルリストの情報を持つ。
【００６４】
サブ要素数は，当該ルール管理テーブル１４４が管理する命名ルールにおけるサブ要素のルールの数を示す。すなわち，サブ要素数は，当該ルール管理テーブル１４４が管理する命名ルールが導出された各要素の要素名から得られるサブ要素の数となる。
【００６５】
ルールサブ要素管理テーブルリストは，当該ルール管理テーブル１４４が管理する命名ルールにおける各サブ要素についてのルールサブ要素管理テーブル１４５のリストデータである。例えば，ルールサブ要素管理テーブルリストは，該当するルールサブ要素管理テーブル１４５に対するポインタのリストとなる。
【００６６】
図３（Ｅ）に示すルールサブ要素管理テーブル１４５は，命名ルールにおける各サブ要素のルールを管理するデータである。ルールサブ要素管理テーブル１４５は，文字列の情報を持つ。
【００６７】
文字列は，命名ルールにおけるサブ要素の文字列のルールである。例えば，命名ルールにおいて，文字列の一致が要求されるサブ要素についてのルールサブ要素管理テーブル１４５の文字列の項目には，一致が要求される文字列が記録される。また，例えば，命名ルールにおいて，自由な文字列が許可されるサブ要素についてのルールサブ要素管理テーブル１４５の文字列の項目には，ｎｕｌｌが記録される。
【００６８】
図４は，開発資産のファイルを格納するフォルダの例を示す図である。
【００６９】
ここでは，図４に示すフォルダについてのルール情報の生成を説明する。なお，図４において，フォルダを示すマークの右に記載された文字列は，フォルダの名称を示し，ファイルを示すマークの右に記載された文字列は，ファイルの名称を示す。
【００７０】
例えば，開発資産の管理者であるユーザから，ルール情報を生成する対象のフォルダとして，フォルダ“ＡＡＡＡ”が指定されたものとする。このとき，ルール生成部１３のフォルダ解析部１３１は，フォルダ“ＡＡＡＡ”配下の各要素の解析を行う。本実施の形態のフォルダ解析部１３１による解析では，ファイルの要素については，その要素名を解析し，サブフォルダについては，さらにそのサブフォルダ配下の各要素の解析を行う。
【００７１】
図５，図６は，本実施の形態のフォルダ解析部による処理後のルール情報の例を示す図である。
【００７２】
図５に示すように，フォルダ“ＡＡＡＡ”のフォルダ管理テーブル１４１ａにおける要素管理テーブルリストの項目には，フォルダ“ＡＡＡＡ”配下の各ファイルの要素管理テーブル１４２ａ〜ｅに対するポインタが記録される。また，図５に示すように，フォルダ“ＡＡＡＡ”のフォルダ管理テーブル１４１ａにおける子フォルダ管理テーブルリストの項目には，フォルダ“ＡＡＡＡ”配下のサブフォルダ“ＣＣＣＣ”のフォルダ管理テーブル１４１ｂに対するポインタが記録される。
【００７３】
さらに，図５に示すように，フォルダ“ＣＣＣＣ”のフォルダ管理テーブル１４１ｂにおける要素管理テーブルリストの項目には，フォルダ“ＣＣＣＣ”配下の各ファイルの要素管理テーブル１４２ｆ〜ｈに対するポインタが記録される。
【００７４】
各要素管理テーブル１４２ａ〜ｈには，各ファイルの名称の解析結果が記録される。図６に示す例は，フォルダ“ＡＡＡＡ”配下のファイル“ffff＿gggg＿hhhh.doc”の解析結果が記録された要素管理テーブル１４２ｃの例である。
【００７５】
図６に示すように，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃにおける要素名の項目には，ファイルの名称“ffff＿gggg＿hhhh.doc”が記録される。また，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃにおけるルール導出済みフラグの項目には，デフォルトとしてｆａｌｓｅが記憶される。また，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃにおけるサブ要素数の項目には，要素名“ffff＿gggg＿hhhh.doc”から拡張子“.doc”を切り取ってデリミタ文字“＿”を境に分割して得られるサブ要素の数“３”が記録される。また，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃにおけるサブ要素管理テーブルリストの項目には，要素名から得られる各サブ要素のサブ要素管理テーブル１４３ａ〜ｃに対するポインタが記録される。なお，サブ要素管理テーブルリストでは，要素名におけるサブ要素の登場順で，各サブ要素管理テーブル１４３ａ〜ｃに対するポインタが記録されている。
【００７６】
図６に示すように，各サブ要素管理テーブル１４３ａ〜ｃにおける部分文字列の項目には，それぞれ各サブ要素の文字列“ffff”，“gggg”，“hhhh”が記録される。各サブ要素管理テーブル１４３ａ，ｂにおけるデリミタ文字の項目には，要素名において，それぞれサブ要素の後ろにあるデリミタ文字“＿”が記録される。なお，末尾のサブ要素“hhhh”のサブ要素管理テーブル１４３ｃにおけるデリミタ文字の項目には，ｎｕｌｌが記録される。
【００７７】
他の要素管理テーブルａ，ｂ，ｄ〜ｈについても，図６に示すファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃと同様なデータ構成となる。
【００７８】
例えば，ルール生成部１３のルール導出部１３２は，図５，図６に示すフォルダ“ＡＡＡＡ”配下の各ファイルに対する解析結果の情報から，フォルダ“ＡＡＡＡ”配下のファイルに対する命名ルールを導出する。
【００７９】
まず，ルール導出部１３２は，サブ要素数が同じ要素をグルーピングする。例えば，フォルダ“ＡＡＡＡ”配下のファイルにおいて，サブ要素数が２つであるファイル“bbbb＿bbbb.doc”と，ファイル“bbbb＿yyyy.doc”がグルーピングされる。また，フォルダ“ＡＡＡＡ”配下のファイルにおいて，サブ要素数が３つであるファイル“bbbb＿bbbb＿zzzz.doc”と，ファイル“ffff＿gggg＿hhhh.doc”と，ファイル“gggg＿yyyy＿zzzz.doc”がグルーピングされる。
【００８０】
さらに，ルール導出部１３２は，同じサブ要素数のグループごとに，さらに先頭サブ要素の文字列が一致する要素をグルーピングする。例えば，サブ要素数が２つのグループでは，ファイル“bbbb＿bbbb.doc”と，ファイル“bbbb＿yyyy.doc”の先頭サブ要素の文字列“bbbb”が一致する。グルーピングされたファイル“bbbb＿bbbb.doc”と，ファイル“bbbb＿yyyy.doc”との間では，先頭サブ要素の文字列“bbbb”以外で文字列が一致するサブ要素はない。このグループから導出される命名ルールは，（bbbb  null）となる。命名ルール（bbbb  null）は，サブ要素数が２つで，先頭のサブ要素の文字列が“bbbb”であり，末尾のサブ要素の文字列は任意であることを示している。
【００８１】
ルール導出部１３２は，先頭サブ要素の文字列が他のファイルと一致しなかったファイルについて，同じサブ要素数のグループごとに，さらに末尾サブ要素の文字列が一致する要素をグルーピングする。例えば，サブ要素数が３つのグループでは，ファイル“bbbb＿bbbb＿zzzz.doc”と，ファイル“gggg＿yyyy＿zzzz.doc”の末尾サブ要素の文字列“zzzz”が一致する。グルーピングされたファイル“bbbb＿bbbb＿zzzz.doc”と，ファイル“gggg＿yyyy＿zzzz.doc”との間では，末尾サブ要素の文字列“zzzz”以外で文字列が一致するサブ要素はない。このグループから導出される命名ルールは，（null  null  zzzz）となる。
【００８２】
なお，先に末尾サブ要素の文字列の一致を見てから，先頭サブ要素の文字列の一致を見るなどの設計は，任意である。
【００８３】
フォルダ“ＣＣＣＣ”配下のファイルに対する命名ルールについても，同様に導出される。
【００８４】
図７，図８は，本実施の形態のルール導出部による処理後のルール情報の例を示す図である。
【００８５】
図７に示すように，フォルダ“ＡＡＡＡ”のフォルダ管理テーブル１４１ａにおけるルール管理テーブルリストの項目には，フォルダ“ＡＡＡＡ”配下のファイルから導出された命名ルールのルール管理テーブル１４４ａ，ｂに対するポインタが記録される。同様に，図７に示すように，フォルダ“ＣＣＣＣ”のフォルダ管理テーブル１４１ｂにおけるルール管理テーブルリストの項目には，フォルダ“ＣＣＣＣ”配下のファイルから導出された命名ルールのルール管理テーブル１４４ｃに対するポインタが記録される。
【００８６】
各ルール管理テーブル１４４ａ〜ｃには，それぞれ導出された命名ルールを示す情報が記録される。図８に示す例は，フォルダ“ＡＡＡＡ”配下のファイル“bbbb＿bbbb.doc”とファイル“bbbb＿yyyy.doc”とから導出された命名ルール（bbbb  null）のルール管理テーブル１４４ａの例である。
【００８７】
図８に示すように，命名ルール（bbbb  null）のルール管理テーブル１４４ａにおけるサブ要素数の項目には，ファイルに対する命名ルールにおけるサブ要素のルールの数“２”が記録される。また，命名ルール（bbbb  null）のルール管理テーブル１４４ａにおけるルールサブ要素管理テーブルリストの項目には，ファイルに対する命名ルールにおける各サブ要素のルールのルールサブ要素管理テーブル１４５ａ，ｂに対するポインタが記録される。なお，ルールサブ要素管理テーブルリストでは，ファイルの名称におけるサブ要素の登場順で，各ルールサブ要素管理テーブル１４５ａ，ｂに対するポインタが記録されている。
【００８８】
図８に示すように，各ルールサブ要素管理テーブル１４５ａ，ｂにおける文字列の項目には，それぞれ各サブ要素の文字列のルールを示す“bbbb”，ｎｕｌｌが記録される。文字列“bbbb”は，そのサブ要素の文字列が“bbbb”であることを示し，ｎｕｌｌは，そのサブ要素の文字列が任意であることを示す。
【００８９】
他のルール管理テーブルｂ，ｃについても，図８に示す命名ルール（bbbb  null）のルール管理テーブル１４４ａと同様なデータ構成となる。
【００９０】
なお，図７では省略されているが，各フォルダ管理テーブル１４１ａ，ｂの要素管理テーブルリストの項目には，それぞれ該当するフォルダ配下のファイルの要素管理テーブル１４２ａ〜ｈに対するポインタが記録されている。
【００９１】
ここで，図７に示すように，フォルダ“ＡＡＡＡ”のフォルダ管理テーブル１４１ａにおけるルール導出保留要素管理テーブルリストの項目には，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃに対するポインタが記録されている。これは，ファイル“ffff＿gggg＿hhhh.doc”から，命名ルールが導出されなかったことを意味する。同様に，フォルダ“ＣＣＣＣ”のフォルダ管理テーブル１４１ｂにおけるルール導出保留要素管理テーブルリストの項目には，ファイル“eeee.doc”の要素管理テーブル１４２ｈに対するポインタが記録されている。これは，ファイル“eeee.doc”から，命名ルールが導出されなかったことを意味する。
【００９２】
ルール導出部１３２は，命名ルールが導出されたファイルの要素管理テーブル１４２のルール導出済みフラグにｔｒｕｅを設定する。命名ルールが導出されなかったファイルの要素管理テーブル１４２では，ルール導出済みフラグはデフォルトのｆａｌｓｅのままである。フォルダ管理テーブル１４１のルール導出保留要素管理テーブルリストには，ルール導出済みフラグがｆａｌｓｅである要素管理テーブル１４２に対するポインタが記録される。
【００９３】
ここで，受付部１５１が，登録先としてフォルダ“ＡＡＡＡ”を指定した，ファイル“ffff＿gggg＿iiii.doc”の登録要求を受け付けたものとする。
【００９４】
図７に示すように，登録要求されたファイル“ffff＿gggg＿iiii.doc”にマッチする命名ルールを管理するルール管理テーブル１４４はない。しかし，ルール導出済みフラグがｆａｌｓｅである要素管理テーブル１４２ｃのファイル“ffff＿gggg＿hhhh.doc”は，登録要求されたファイル“ffff＿gggg＿iiii.doc”とサブ要素数が同じで，先頭サブ要素の文字列が一致する。判定部１５３は，登録要求されたファイル“ffff＿gggg＿iiii.doc”を登録可と判定する。
【００９５】
ファイル“ffff＿gggg＿iiii.doc”が，フォルダ“ＡＡＡＡ”配下に新たに登録されることで，新たなファイル“ffff＿gggg＿iiii.doc”と，ルール導出が保留されたファイル“ffff＿gggg＿hhhh.doc”とから，新たな命名ルールを導出することが可能となる。ルール情報更新部１５６は，新たなファイル“ffff＿gggg＿iiii.doc”と，ルール導出が保留されたファイル“ffff＿gggg＿hhhh.doc”とから，新たな命名ルール（ffff  gggg  null）を生成し，ルール情報記憶部１４に記憶されたフォルダ“ＡＡＡＡ”のルール情報を更新する。
【００９６】
図９は，本実施の形態のルール情報更新部による処理後のルール情報の例を示す図である。
【００９７】
図７に示すルール情報と比較して，新たに命名ルール（ffff  gggg  null）のルール管理テーブル１４４ｄに対するポインタが，フォルダ“ＡＡＡＡ”のフォルダ管理テーブル１４１ａのルール管理テーブルリストに追加されている。また，図９では，ルール導出保留要素管理テーブルリストから，ファイル“ffff＿gggg＿hhhh.doc”の要素管理テーブル１４２ｃに対するポインタが削除されている。
【００９８】
このように，新たに登録されたファイルと，当初命名ルールが導出できなかったファイルとから，命名規約に沿った新たな命名ルールを自動で導出することができる。
【００９９】
以下では，図１０〜図１７に示すフローチャートを用いて，本実施の形態のルール生成部１３によるルール生成処理や，資産登録判定制御部１５による資産登録判定処理の流れを説明する。
【０１００】
図１０は，本実施の形態のルール生成部によるルール生成処理フローチャートである。
【０１０１】
フォルダを指定したルール情報生成の指示を受けると，ルール生成部１３のフォルダ解析部１３１は，指定されたフォルダを解析対象としたフォルダ解析処理を実行する（ステップＳ１０）。フォルダ解析処理の詳細については，後述する。
【０１０２】
ルール生成部１３のルール導出部１３２は，フォルダ解析部１３１によるフォルダ解析処理の結果を用いて，ルール導出処理を実行する（ステップＳ１１）。なお，指定されたフォルダを対象としたルール導出処理だけではなく，指定されたフォルダ以下の各階層におけるフォルダを対象としたルール導出処理も行われる。ルール導出処理の詳細については，後述する。
【０１０３】
図１１は，本実施の形態のフォルダ解析部によるフォルダ解析処理フローチャートである。
【０１０４】
フォルダ解析部１３１は，解析対象のフォルダのフォルダ管理テーブル１４１を生成する（ステップＳ２０）。ルール情報記憶部１４に，フォルダ管理テーブル１４１の領域が確保される。
【０１０５】
フォルダ解析部１３１は，解析対象のフォルダ配下の要素を並べた要素リストを生成する（ステップＳ２１）。要素には，フォルダ配下のファイルとサブフォルダが含まれる。
【０１０６】
フォルダ解析部１３１は，要素リストが空であるかを判定する（ステップＳ２２）。要素リストが空であれば（ステップＳ２２のＹＥＳ），フォルダ解析部１３１は，解析対象のフォルダに対するフォルダ解析処理を終了する。
【０１０７】
要素リストが空でなければ（ステップＳ２２のＮＯ），フォルダ解析部１３１は，要素リストの先頭から要素を１つ取得する（ステップＳ２３）。フォルダ解析部１３１は，取得した要素がファイルであるかを判定する（ステップＳ２４）。
【０１０８】
取得した要素がファイルであれば（ステップＳ２４のＹＥＳ），フォルダ解析部１３１は，取得した要素に対する要素名分析処理を実行する（ステップＳ２５）。要素名分析処理の詳細については，後述する。フォルダ解析部１３１は，本処理における解析対象フォルダのフォルダ管理テーブル１４１の要素管理テーブルリストに，取得した要素の要素管理テーブル１４２を登録する（ステップＳ２６）。
【０１０９】
取得した要素がファイルでなければ（ステップＳ２４のＮＯ），すなわち取得した要素がサブフォルダであれば，フォルダ解析部１３１は，取得した要素のサブフォルダを解析対象としたフォルダ解析処理を実行する（ステップＳ２７）。フォルダ解析部１３１は，本処理における解析対象フォルダのフォルダ管理テーブル１４１の子フォルダ管理テーブルリストに，ステップＳ２７の処理で得られたサブフォルダのフォルダ管理テーブル１４１を登録する（ステップＳ２８）。
【０１１０】
フォルダ解析部１３１は，処理した要素を要素リストから削除し（ステップＳ２９），ステップＳ２２の処理に戻る。
【０１１１】
図１２は，本実施の形態のフォルダ解析部による要素名分析処理フローチャートである。
【０１１２】
フォルダ解析部１３１は，要素管理テーブル１４２を生成する（ステップＳ３０）。ルール情報記憶部１４に，要素管理テーブル１４２の領域が確保される。
【０１１３】
フォルダ解析部１３１は，要素管理テーブル１４２の要素名に，要素であるファイルの名称を記録する（ステップＳ３１）。フォルダ解析部１３１は，要素管理テーブル１４２のルール導出済みフラグに，デフォルトでｆａｌｓｅを記録する（ステップＳ３２）。
【０１１４】
フォルダ解析部１３１は，作業要素名に要素名を入力する（ステップＳ３３）。フォルダ解析部１３１は，作業要素名から拡張子を切り取る（ステップＳ３４）。このとき，拡張子の前の“．”も含めて切り取られる。
【０１１５】
フォルダ解析部１３１は，作業要素名を所定のデリミタ文字を境にサブ要素に分割する（ステップＳ３５）。フォルダ解析部１３１は，サブ要素の数だけ，サブ要素管理テーブル１４３を生成する（ステップＳ３６）。各サブ要素管理テーブル１４３には，サブ要素の文字列と，デリミタ文字が記録される。
【０１１６】
フォルダ解析部１３１は，要素管理テーブル１４２のサブ要素数に，サブ要素の数を記録する（ステップＳ３７）。フォルダ解析部１３１は，要素管理テーブル１４２のサブ要素管理テーブルリストに，各サブ要素管理テーブル１４３を登録し（ステップＳ３８），要素名分析処理を終了する。
【０１１７】
図１３，図１４は，本実施の形態のルール導出部によるルール導出処理フローチャートである。
【０１１８】
ルール導出部１３２は，処理対象のファイルをサブ要素数が同じファイルごとにグルーピングし，同一要素数グループリストを生成する（ステップＳ４０）。ここでは，サブ要素数が同じファイルをまとめたグループを，同一要素数グループと呼ぶ。また，同一要素数グループを並べたリストを，同一要素数グループリストと呼ぶ。
【０１１９】
ルール導出部１３２は，同一要素数グループリストが空であるかを判定する（ステップＳ４１）。
【０１２０】
同一要素数グループリストが空でなければ（ステップ４１のＮＯ），ルール導出部１３２は，同一要素数グループリストから，同一要素数グループを１つ取得する（ステップＳ４２）。
【０１２１】
ルール導出部１３２は，取得した同一要素数グループ内のファイルを，さらに先頭サブ要素の文字列が同じファイル同士でグルーピングし，同一先頭文字列グループリストを生成する（ステップＳ４３）。ここでは，同一要素数グループ内で，先頭サブ要素の文字列が同じファイルをまとめたグループを，同一先頭文字列グループと呼ぶ。また，同一先頭文字列グループを並べたリストを，同一先頭文字列グループリストと呼ぶ。なお，同一先頭文字列グループリストには，他のどのファイルとも先頭サブ要素の文字列が一致しないファイルは含まれない。
【０１２２】
ルール導出部１３２は，同一先頭文字列グループリストが空であるかを判定する（ステップＳ４４）。
【０１２３】
同一先頭文字列グループリストが空でなければ（ステップＳ４４のＮＯ），ルール導出部１３２は，同一先頭文字列グループリストから，同一先頭文字列グループを１つ取得する（ステップＳ４５）。
【０１２４】
ルール導出部１３２は，ルール管理テーブル１４４を生成する（ステップＳ４６）。ルール情報記憶部１４に，ルール管理テーブル１４４の領域が確保される。ルール導出部１３２は，ルール管理テーブル１４４のサブ要素数に，取得した同一先頭文字列グループ内のファイルのサブ要素数を記録する（ステップＳ４７）。
【０１２５】
ルール導出部１３２は，サブ要素数分のルールサブ要素管理テーブル１４５を生成する（ステップＳ４８）。ルール導出部１３２は，各ルールサブ要素管理テーブル１４５に，文字列またはｎｕｌｌを記録する（ステップＳ４９）。ルール導出部１３２は，取得した同一先頭文字列グループ内のすべてのファイルで文字列が一致するサブ要素については，該当サブ要素のルールサブ要素管理テーブル１４５に，すべてのファイルで一致する文字列を記録する。また，ルール導出部１３２は，取得した同一先頭文字列グループ内のファイルで１つでも文字列が一致しないサブ要素については，該当サブ要素のルールサブ要素管理テーブル１４５にｎｕｌｌを記録する。
【０１２６】
ルール導出部１３２は，ルール管理テーブル１４４のルールサブ要素管理テーブルリストに，各ルールサブ要素管理テーブル１４５を登録する（ステップＳ５０）。ルール導出部１３２は，処理対象フォルダのフォルダ管理テーブル１４１のルール管理テーブルリストに，ルール管理テーブル１４４を登録する（ステップＳ５１）。ルール導出部１３２は，取得した同一先頭文字列グループ内の各ファイルの要素管理テーブル１４２のルール導出済みフラグにｔｒｕｅを設定し（ステップＳ５２），ステップＳ４４の処理に戻る。
【０１２７】
同一先頭文字列グループリストが空であれば（ステップＳ４４のＹＥＳ），ルール導出部１３２は，同一末尾文字列グループリストを生成する（ステップＳ５３）。すなわち，ルール導出部１３２は，ステップＳ４２で取得した同一要素数グループ内で先頭サブ要素の文字列が他と一致しなかったファイルを，さらに末尾サブ要素の文字列が同じファイル同士でグルーピングする。ここでは，同一要素数グループ内で，末尾サブ要素の文字列が同じファイルをまとめたグループを，同一末尾文字列グループと呼ぶ。また，同一末尾文字列グループを並べたリストを，同一末尾文字列グループリストと呼ぶ。なお，同一末尾文字列グループリストには，他のどのファイルとも末尾サブ要素の文字列が一致しないファイルは含まれない。
【０１２８】
ルール導出部１３２は，同一末尾文字列グループリストが空であるかを判定する（ステップＳ５４）。同一末尾文字列グループリストが空であれば（ステップＳ５４のＹＥＳ），ルール導出部１３２は，ステップＳ４１の処理に戻る。
【０１２９】
同一末尾文字列グループリストが空でなければ（ステップＳ５４のＮＯ），ルール導出部１３２は，同一末尾文字列グループリストから，同一末尾文字列グループを１つ取得する（ステップＳ５５）。
【０１３０】
ルール導出部１３２は，ルール管理テーブル１４４を生成する（ステップＳ５６）。ルール情報記憶部１４に，ルール管理テーブル１４４の領域が確保される。ルール導出部１３２は，ルール管理テーブル１４４のサブ要素数に，取得した同一末尾文字列グループ内のファイルのサブ要素数を記録する（ステップＳ５７）。
【０１３１】
ルール導出部１３２は，サブ要素数分のルールサブ要素管理テーブル１４５を生成する（ステップＳ５８）。ルール導出部１３２は，各ルールサブ要素管理テーブル１４５に，文字列またはｎｕｌｌを記録する（ステップＳ５９）。ルール導出部１３２は，取得した同一末尾文字列グループ内のすべてのファイルで文字列が一致するサブ要素については，該当サブ要素のルールサブ要素管理テーブル１４５に，すべてのファイルで一致する文字列を記録する。また，ルール導出部１３２は，取得した同一末尾文字列グループ内のファイルで１つでも文字列が一致しないサブ要素については，該当サブ要素のルールサブ要素管理テーブル１４５にｎｕｌｌを記録する。
【０１３２】
ルール導出部１３２は，ルール管理テーブル１４４のルールサブ要素管理テーブルリストに，各ルールサブ要素管理テーブル１４５を登録する（ステップＳ６０）。ルール導出部１３２は，処理対象フォルダのフォルダ管理テーブル１４１のルール管理テーブルリストに，ルール管理テーブル１４４を登録する（ステップＳ６１）。ルール導出部１３２は，取得した同一末尾文字列グループ内の各ファイルの要素管理テーブル１４２のルール導出済みフラグにｔｒｕｅを設定し（ステップＳ６２），ステップＳ５４の処理に戻る。
【０１３３】
同一要素数グループリストが空であれば（ステップＳ４１のＹＥＳ），ルール導出部１３２は，処理対象フォルダのフォルダ管理テーブル１４１のルール導出保留要素管理テーブルリストに，ルール導出済みフラグがｆａｌｓｅである要素管理テーブル１４２を記録する（ステップＳ６３）。ルール導出部１３２は，ルール導出処理を終了する。
【０１３４】
図１５は，本実施の形態の資産登録判定制御部による資産登録判定処理フローチャートである。
【０１３５】
資産登録判定制御部１５において，受付部１５１は，指定されたフォルダに対するファイルの登録要求を受け付ける（ステップＳ７０）。
【０１３６】
資産登録判定制御部１５は，登録要求されたファイルについてのルールチェック処理を実行する（ステップＳ７１）。ルールチェック処理についての詳細は，後述する。資産登録判定制御部１５の判定部１５３は，登録要求されたファイルが，指定されたフォルダにおける命名ルールに適合するかを判定する（ステップＳ７２）。
【０１３７】
登録要求されたファイルが命名ルールに適合する場合には（ステップＳ７２のＹＥＳ），登録部１５４は，登録要求されたファイルを資産として指定されたフォルダに登録する処理を行う（ステップＳ７６）。
【０１３８】
登録要求されたファイルが命名ルールに適合しない場合には（ステップＳ７２のＮＯ），強制登録部１５５は，ファイルの登録要求を行ったユーザに命名ルールを更新する権限があるかを判定する（ステップＳ７３）。なお，ここでは，利用者端末２０から構成管理サーバ１０へのアクセス時に，すでにユーザ認証が行われているものとする。
【０１３９】
ユーザに権限があれば（ステップＳ７３のＹＥＳ），登録要求されたファイルを強制登録するかを判定する（ステップＳ７４）。ここでは，例えばユーザに対して強制登録するかを問合せ，その回答が強制登録であったかを判定する。
【０１４０】
登録要求されたファイルを強制登録する場合には（ステップＳ７４のＹＥＳ），ルール情報更新部１５６は，指定フォルダのフォルダ管理テーブル１４１のルール導出保留要素管理テーブルリストに，登録要求されたファイルの要素管理テーブル１４２を登録する（ステップＳ７５）。登録部１５４は，登録要求されたファイルを資産として指定されたフォルダに登録する処理を行う（ステップＳ７６）。
【０１４１】
ユーザに権限がなければ（ステップＳ７３のＮＯ），または登録要求されたファイルを強制登録しない場合には（ステップＳ７４のＮＯ），資産登録判定制御部１５は，登録要求されたファイルを登録できないと判定する（ステップＳ７７）。
【０１４２】
図１６は，本実施の形態の資産登録判定制御部によるルールチェック処理フローチャートである。
【０１４３】
資産登録判定制御部１５は，登録要求されたファイルを対象として，要素名分析処理を行う（ステップＳ８０）。資産登録判定制御部１５による要素名分析処理は，例えば上述のフォルダ解析部１３１による要素名分析処理と同様の処理であるため，ここでは詳細な説明は省略する。
【０１４４】
資産登録判定制御部１５の判定部１５３は，既存ルール検索処理を行う（ステップＳ８１）。既存ルール検索処理の詳細については，後述する。判定部１５３は，登録要求されたファイルの名称に適合する既存の命名ルールがあるかを判定する（ステップＳ８２）。適合する既存の命名ルールがあれば（ステップＳ８２のＹＥＳ），資産登録判定制御部１５は，ＯＫ復帰でルールチェック処理を終了する。
【０１４５】
適合する既存の命名ルールがなければ（ステップＳ８２のＮＯ），ルール情報更新部１５６は，指定フォルダのフォルダ管理テーブル１４１のルール導出保留要素管理テーブルリストに，登録要求されたファイルの要素管理テーブルをマージしたリストを生成する（ステップＳ８３）。ルール情報更新部１５６は，生成されたリストを対象としたルール導出処理を実行する（ステップＳ８４）。ルール情報更新部１５６によるルール導出処理は，例えば上述のルール導出部１３２によるルール導出処理と同様の処理であるため，ここでは詳細な説明は省略する。なお，ルール情報更新部１５６によるルール導出処理では，図１３のステップＳ６３の処理は行わない。
【０１４６】
判定部１５３は，ルール情報更新部１５６によるルール導出処理で新たな命名ルールが導出されたかを判定する（ステップＳ８５）。新たな命名ルールが導出されなければ（ステップＳ８５のＮＯ），資産登録判定制御部１５は，ＮＧ復帰でルールチェック処理を終了する。
【０１４７】
新たな命名ルールが導出されれば（ステップＳ８５のＹＥＳ），ルール情報更新部１５６は，指定フォルダのフォルダ管理テーブル１４１のルール導出保留要素管理テーブルリストから，ルール導出済みフラグがｔｒｕｅである要素管理テーブル１４２を削除する（ステップＳ８６）。資産登録判定制御部１５は，ＯＫ復帰でルールチェック処理を終了する。
【０１４８】
図１７は，本実施の形態の判定部による既存ルール検索処理フローチャートである。
【０１４９】
判定部１５３は，指定フォルダのフォルダ管理テーブル１４１のルール管理テーブルリストから，サブ要素数が登録要求されたファイルの名称のサブ要素数と一致するルール管理テーブル１４４を抽出する（ステップＳ９０）。判定部１５３は，サブ要素ごとに，登録要求されたファイルの名称と，抽出された各ルール管理テーブル１４４の命名ルールとの適合をチェックする（ステップＳ９１）。
【０１５０】
判定部１５３は，登録要求されたファイルの名称が，いずれかのルール管理テーブル１４４の命名ルールと，すべてのサブ要素について適合したかを判定する（ステップＳ９２）。いずれかの命名ルールとすべてのサブ要素について適合していれば（ステップＳ９２のＹＥＳ），判定部１５３は，ＯＫ復帰で既存ルール検索処理を終了する。いずれの命名ルールともすべてのサブ要素について適合していなければ（ステップＳ９２のＮＯ），判定部１５３は，ＮＧ復帰で既存ルール検索処理を終了する。
【０１５１】
図１８は，本実施の形態のファイル登録によるデータ変遷の例を示す図である。
【０１５２】
図１８において，開発資産は，あるフォルダに格納されたファイルを示す。命名ルールは，開発資産のファイルから導出された命名ルールを示す。ルール導出保留資産は，その時点で命名ルールが導出できないファイルを示す。
【０１５３】
図１８（Ａ）は，初期の開発資産を示す。図１８（Ａ）に示す初期の開発資産からは，（機能仕様書  null），（構造設計書  情報系２次改修  null）の２つの命名ルールが導出される。ルール導出保留資産は，ファイル“管理＿社内＿体制.xls”のみである。
【０１５４】
ここで，開発資産として，新たにファイル“機能仕様書＿入力仕様.doc”が登録されるものとする。ファイル“機能仕様書＿入力仕様.doc”は，命名ルール（機能仕様書  null）に適合するので，問題なく登録される。このとき，命名ルールや，ルール導出保留資産にも変化はない。図１８（Ｂ）は，図１８（Ａ）の開発資産に，新たにファイル“機能仕様書＿入力仕様.doc”が登録された状態を示す。
【０１５５】
次に，開発資産として，新たにファイル“管理＿社内＿トレーニング.doc”が登録されるものとする。ファイル“管理＿社内＿トレーニング.doc”は，既存の命名ルールには適合しない。しかし，ファイル“管理＿社内＿トレーニング.doc”と，ルール導出保留資産であるファイル“管理＿社内＿体制.xls”とは，サブ要素数がともに３つであり，先頭サブ要素の文字列“管理”が一致する。ファイル“管理＿社内＿トレーニング.doc”は開発資産として登録される。
【０１５６】
このとき，登録されるファイル“管理＿社内＿トレーニング.doc”と，ルール導出保留資産であるファイル“管理＿社内＿体制.xls”とから，新たな命名ルール（管理  社内  null）が導出される。ルール導出保留資産から，ファイル“管理＿社内＿体制.xls”が削除される。図１８（Ｃ）は，図１８（Ｂ）の開発資産に，新たにファイル“管理＿社内＿トレーニング.doc”が登録された状態を示す。
【０１５７】
さらに，開発資産として，新たにファイル“試験＿ＩＴ＿シナリオ１.doc”が，特定の権限を持つユーザにより強制登録されるものとする。ファイル“試験＿ＩＴ＿シナリオ１.doc”は，既存の命名ルールには適合しない。また，ルール導出保留資産もない。そのため，ファイル“試験＿ＩＴ＿シナリオ１.doc”は，特定の権限を持つユーザによる強制登録で，開発資産に登録される。
【０１５８】
このとき，ルール導出保留資産に，ファイル“試験＿ＩＴ＿シナリオ１.doc”が登録される。図１８（Ｄ）は，図１８（Ｃ）の開発資産に，新たにファイル“試験＿ＩＴ＿シナリオ１.doc”が登録された状態を示す。
【０１５９】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０１６０】
例えば，本実施の形態による構成管理システムでは，構成管理サーバ１０が資産登録判定制御部１５を備えているが，各利用者端末２０が資産登録判定制御部１５を備えるようにしてもよい。このとき，利用者端末２０は，資産登録判定制御部１５によりファイルの登録が可と判定された場合にのみ，構成管理サーバ１０に対して登録するファイルを送る。
【０１６１】
また，例えば，本実施の形態では，ファイルの命名規約に沿ったファイルの登録制御を行う技術を説明したが，この技術を，フォルダの命名規約に沿ったフォルダの登録制御に適用することも可能である。
【符号の説明】
【０１６２】
１０  構成管理サーバ
１１  資産記憶部
１２  構成管理制御部
１３  ルール生成部
１３１  フォルダ解析部
１３２  ルール導出部
１４  ルール情報記憶部
１５  資産登録判定制御部
１５１  受付部
１５２  分割部
１５３  判定部
１５４  登録部
１５５  強制登録部
１５６  ルール情報更新部
２０  利用者端末
３０  ネットワーク
【図１】
2013050777.tif 000003
【図２】
2013050777.tif 000004
【図３】
2013050777.tif 000005
【図４】
2013050777.tif 000006
【図５】
2013050777.tif 000007
【図６】
2013050777.tif 000008
【図７】
2013050777.tif 000009
【図８】
2013050777.tif 000010
【図９】
2013050777.tif 000011
【図１０】
2013050777.tif 000012
【図１１】
2013050777.tif 000013
【図１２】
2013050777.tif 000014
【図１３】
2013050777.tif 000015
【図１４】
2013050777.tif 000016
【図１５】
2013050777.tif 000017
【図１６】
2013050777.tif 000018
【図１７】
2013050777.tif 000019
【図１８】
2013050777.tif 000020