(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024032617
(43)【公開日】2024-03-12
(54)【発明の名称】ファイル検索プログラムおよびファイル検索方法
(51)【国際特許分類】
G06F 16/14 20190101AFI20240305BHJP
【FI】
G06F16/14
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022136362
(22)【出願日】2022-08-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】原田 義之
(72)【発明者】
【氏名】松田 貴弘
(72)【発明者】
【氏名】荒関 良征
(72)【発明者】
【氏名】浅野 貴美子
(72)【発明者】
【氏名】太田 順
(57)【要約】
【課題】元ファイルから改訂が繰り返された類似ファイルを抽出する。
【解決手段】実施形態のファイル検索プログラムは、受け付ける処理と、抽出する処理と、検索する処理と、をコンピュータに実行させる。受け付ける処理は、検索の始点と、終点の指定を受け付ける。抽出する処理は、指定された始点および終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から抽出する。検索する処理は、抽出した検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索する。検索は、始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、検索した類似ファイルの1つを次の検索の起点とする検索を繰り返す。
【選択図】
図9
【特許請求の範囲】
【請求項1】
検索の始点と、終点の指定を受け付け、
指定された前記始点および前記終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から抽出し、
抽出した前記検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索し、
前記検索は、前記始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、検索した前記類似ファイルの1つを次の検索の起点とする検索を繰り返す、
処理をコンピュータに実行させることを特徴とするファイル検索プログラム。
【請求項2】
前記検索は、互いのファイル形式における類似度が所定値以上のファイルを検索する、
ことを特徴とする請求項1に記載のファイル検索プログラム。
【請求項3】
前記ファイル形式は、ファイル名、拡張子、ファイルサイズの少なくとも1である、
ことを特徴とする請求項2に記載のファイル検索プログラム。
【請求項4】
前記検索は、互いのファイル内容における類似度が所定値以上のファイルを検索する、
ことを特徴とする請求項1に記載のファイル検索プログラム。
【請求項5】
前記検索は、前記検索対象ファイルの中から検索の起点とするファイルに対するファイル形式における第1の類似度が所定値以上のファイルを検索した上で、当該第1の類似度が所定値以上のファイルの中から互いのファイル内容における第2の類似度が所定値以上のファイルを類似ファイルとして検索する、
ことを特徴とする請求項1に記載のファイル検索プログラム。
【請求項6】
前記抽出する処理は、前記始点に対応する日付から前記終点に対応する日付までの間のファイルを前記検索対象ファイルと抽出する、
ことを特徴とする請求項1に記載のファイル検索プログラム。
【請求項7】
前記検索は、検索した前記類似ファイルの全てを検索の起点とした後に検索を終了する、
ことを特徴とする請求項1に記載のファイル検索プログラム。
【請求項8】
検索の始点と、終点の指定を受け付け、
指定された前記始点および前記終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から抽出し、
抽出した前記検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索し、
前記検索は、前記始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、前記類似ファイルの1つを次の検索の起点とする検索を繰り返す、
処理をコンピュータが実行することを特徴とするファイル検索方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ファイル検索プログラムおよびファイル検索方法に関する。
【背景技術】
【0002】
1980年代から開発を続けているようなソフトウェア製品の場合、開発資産(ソースコード、設計書など)の管理は、開発担当者任せになっていることが多い。このように、開発資産が担当者任せになっている場合には、ソフトウェア製品の改訂を繰り返していくと、例えばソースコードなどの正本となるファイルに対し、ファイル名は似ているが中身が同一、ファイル名も中身も類似する等の雑多な類似ファイルが開発資産に多く含まれるようになる。
【0003】
このような類似ファイルが開発資産に多く含まれるようになると、次版の開発等に支障をきたすようになることから、正本となるファイルをもとに類似ファイルを検索して削除する作業が行われる。
【0004】
類似ファイルを検索して削除するための従来技術としては、互いのハッシュ値を比較して値が同じであれば、ファイル名が異なっていても同一ファイルとして特定するものがある。また、削除候補の類似ファイルを検出し、変化率が基準変化率以上の類似ファイルを削除候補とする従来技術がある。また、コンテンツ群毎に適する類似度基準を決定し、その類似度基準に基づいて類似度を算出した上で類似するコンテンツデータを抽出する従来技術がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013-206280号公報
【特許文献2】特開2014-92955号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ソースコードなどの正本となるファイルの改訂が繰り返された場合、正本に対して変更差分が積み重ねられた類似ファイルが生じることがある。このように元ファイルから改訂が繰り返されて生じた類似ファイルは正本に対する類似度が小さくなる。このため、上記の従来技術では、類似ファイルを特定することが困難になるという問題がある。
【0007】
1つの側面では、元ファイルから改訂が繰り返された類似ファイルを特定できるファイル検索プログラムおよびファイル検索方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
一態様では、ファイル検索プログラムは、受け付ける処理と、抽出する処理と、検索する処理と、をコンピュータに実行させる。受け付ける処理は、検索の始点と、終点の指定を受け付ける。抽出する処理は、指定された始点および終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から特定する。検索する処理は、抽出した検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索する。検索は、始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、検索した類似ファイルの1つを次の検索の起点とする検索を繰り返す。
【発明の効果】
【0009】
元ファイルから改訂が繰り返された類似ファイルを特定できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施形態にかかるシステム構成の一例を示す説明図である。
【
図2】
図2は、類似度パターンDBの一例を示す説明図である。
【
図3】
図3は、実施形態にかかるシステムの機能構成例を示すブロック図である。
【
図4】
図4は、クライアント装置の動作例を示すフローチャートである。
【
図6】
図6は、クライアント装置の動作例を示すフローチャートである。
【
図7】
図7は、内容比較の一例を説明する説明図である。
【
図8A】
図8Aは、類似ファイル確定に至る流れの一例を説明する説明図である。
【
図8B】
図8Bは、類似ファイル確定に至る流れの一例を説明する説明図である。
【
図8C】
図8Cは、類似ファイル確定に至る流れの一例を説明する説明図である。
【
図9】
図9は、従来例と実施形態にかかるシステムとの比較を説明する説明図である。
【
図10】
図10は、開発時における資産の一例を説明する説明図である。
【
図11】
図11は、開発時におけるフローの一例を示すフローチャートである。
【
図13】
図13は、コンピュータ構成の一例を説明する説明図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態にかかるファイル検索プログラムおよびファイル検索方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するファイル検索プログラムおよびファイル検索方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0012】
図1は、実施形態にかかるシステム構成の一例を示す説明図である。
図1に示すように、システム1は、管理装置10と、クライアント装置11と、サーバ装置20とを有する。管理装置10は、例えば管理者H1が利用するPC(Personal Computer)などである。管理者H1は、管理装置10を介して類似ファイルを検索する際に用いる類似度判定条件(類似度パターン)をサーバ装置20が管理する類似度パターンDB21に設定(登録)する。
【0013】
図2は、類似度パターンDB21の一例を示す説明図である。
図2に示すように、類似度パターンDB21は、「ファイル名」、「拡張子」、「サイズ」などの類似度の判定条件(類似度パターン)ごとの設定内容が登録されたデータテーブル21a、21b、21cを有する。
【0014】
なお、類似度パターンDB21において、「#」で括られた文字列「all」「英字」「数値」「記号」は、予約語である。「all」は、すべての拡張子、または、すべてのファイル名を指す。「英字」「数値」「記号」は文字種である。「&&」は文字列結合、「||」はいずれかという意味合いである。
【0015】
例えば、データテーブル21aには、「ファイル名」に関する類似度の判定条件が登録される。図示例では、ファイル名が完全一致する場合の類似度の減点を「0」とし、減点方式で判定条件が登録されている。一例として、ファイル名の後に「-コピー」が付与された場合、類似度の減点は「-10」となる。また、ファイル名の後に「記号、バックアップ」、「英字」、「数値」、「記号」または「版」が付与された場合、類似度の減点は「-20」となる。
【0016】
また、データテーブル21bには、「拡張子」に関する類似度の判定条件が登録される。図示例では、拡張子が完全一致する場合の類似度の減点を「0」とし、減点方式で判定条件が登録されている。一例として、拡張子が「doc」、「docx」に変更されている場合、サイズは対象外として類似度の減点は「-10」となる。また、拡張子に「org」、「bak」が追加されている場合、類似度の減点は「-20」となる。
【0017】
また、データテーブル21cには、「サイズ」に関する類似度の判定条件が登録される。図示例では、ファイルサイズが完全一致の場合の類似度の減点を「0」とし、減点方式で判定条件が登録されている。一例として、誤差95%でファイルサイズが一致する場合の類似度の減点は「-5」、誤差90%でファイルサイズが一致する場合の類似度の減点は「-10」、誤差80%以下でファイルサイズが一致する場合の類似度の減点は「-50」となる。
【0018】
図1に戻り、クライアント装置11は、例えば利用者H2が利用するPC(Personal Computer)などである。利用者H2は、クライアント装置11を用いて、正本となるファイルに対して類似する類似ファイルを検索して削除する作業を行う。
【0019】
具体的には、クライアント装置11は、利用者H2より検索条件の指定を受け付けるとともに、サーバ装置20が管理する類似度パターンDB21を参照して類似度パターンを取得する。ついで、クライアント装置11は、検索対象のファイル群より指定された検索条件とマッチするファイルを特定(抽出)する。なお、以下の説明において特定は抽出と読み替えてもよい。ついで、クライアント装置11は、類似度パターンが示す判定条件と照らし合わせて、正本となるファイルに対して特定した各ファイルとのファイル形式の類似度(形式類似度)を求める。また、クライアント装置11は、ファイル同士の内容を比較してファイル内容の類似度(内容類似度)を求める。
【0020】
クライアント装置11は、求めた類似度に基づいて、正本となるファイルに対して類似する類似ファイルの検索結果を得る。利用者H2は、検索結果として得られた類似ファイルを確認した上で、必要に応じて類似ファイルの削除を行う。
【0021】
図3は、実施形態にかかるシステム1の機能構成例を示すブロック図である。
図3に示すように、クライアント装置11は、検索条件受信格納部101、検索条件解析部102、対象ファイルパス決定部103、対象ファイル一覧作成部104、改版遷移解析部105、類似度解析部106および処理結果表示部107を有する。
【0022】
検索条件受信格納部101は、キーボード、マウスなどの入力装置12を介してクライアント装置11に入力された検索条件を受信し、受信した検索条件を検索条件情報111に格納する。この検索条件には、検索の始点および終点と、検索対象と、類似度(形式)と、類似度閾値とが含まれる。
【0023】
検索の始点および終点は、例えば検索の範囲を指定する始点ファイルおよび終点ファイルなどである。一例として、改訂前の正本(例えばソースコード)から改訂後の正本が確定するまでに作成された類似ファイルを検索する場合は、改訂前の正本を始点ファイル、改定後の正本を終点ファイルとして設定する。なお、検索の終点については、上記の終点ファイルの指定に限定するものではなく、例えば改訂前の正本(始点ファイル)からの開発期間に応じた開発終了日の指定であってもよい。
【0024】
検索対象は、各種ファイルを格納するファイル記憶部112において検索対象となるファイルの格納場所(ファイルパス)を示す。なお、ファイル記憶部112は、開発資産(ソースコード、設計書など)となるファイルをフォルダごとに格納する記憶装置であり、記憶部の一例である。類似度(形式)は、検索条件として用いるファイル形式に関する類似度パターンを示す。類似度閾値は、算出した類似度に基づいて類似ファイルを判定する際の閾値を示す。
【0025】
検索条件解析部102は、検索条件情報111を解析する処理部である。具体的は、検索条件解析部102は、検索条件情報111に含まれる、検索の始点および終点と、検索対象と、類似度(形式)と、類似度閾値と取得する。
【0026】
対象ファイルパス決定部103は、検索条件解析部102の解析結果をもとに検索対象のファイルパスを決定する処理部である。具体的には、対象ファイルパス決定部103は、検索条件情報111を解析して得られた検索対象に基づいてファイルパスを決定する。
【0027】
対象ファイル一覧作成部104は、検索条件解析部102が解析した検索条件に該当する検索対象ファイルをファイル記憶部112より特定し、検索対象ファイルの一覧を生成する処理部である。具体的には、対象ファイル一覧作成部104は、決定されたファイルパスに格納されたファイルの中から検索条件に含まれる検索の始点および終点の間に該当するファイルを特定する。
【0028】
例えば、対象ファイル一覧作成部104は、検索の始点および終点による期間が指定された場合、その期間内に作成(更新も含む)されたファイルを特定する。また、対象ファイル一覧作成部104は、検索の始点および終点として始点ファイルおよび終点ファイルが指定された場合には始点ファイルの作成日を始点、終点ファイルの作成日を終点とする期間内に作成(更新も含む)されたファイルを特定する。
【0029】
改版遷移解析部105は、対象ファイル一覧作成部104が作成した検索対象ファイルの一覧をもとに、検索の起点(検索元)とするファイルに対する類似度が所定値以上の類似ファイルを検索する処理部である。改版遷移解析部105は、検索条件の始点に対応する、始点に対して時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、検索対象ファイルの一覧から類似ファイルを検索する。ついで、改版遷移解析部105は、検索した類似ファイルの1つを次の検索の起点とし、検索対象ファイルの一覧から類似ファイルを検索する。以後、改版遷移解析部105は、類似ファイルの1つを次の検索の起点として類似ファイルを検索する処理を繰り返す。改版遷移解析部105は、上記の検索により得られた類似ファイル、類似度結果を類似ファイル候補一覧113に格納する。
【0030】
具体的には、改版遷移解析部105は、起点設定部105aと、近傍特定部105bとを有する。
【0031】
起点設定部105aは、検索の起点とするファイルを設定する処理部である。起点設定部105aは、最初の検索時には、始点に対応する、始点に時間的にもっとも近い始点ファイルを検索の起点として設定する。以後の検索において、起点設定部105aは、類似ファイル候補一覧113に格納された類似ファイルの1つを検索の起点として設定し、設定した類似ファイルについては検索済みを類似ファイル候補一覧113に記録する。
【0032】
近傍特定部105bは、起点設定部105aが設定した検索の起点とするファイルに対する各検索対象ファイルの類似度の解析結果をもとに、類似度が所定値以上の類似ファイルを特定する処理部である。具体的には、近傍特定部105bは、検索の起点とするファイルと、各検索対象ファイルとを類似度解析部106に送り、類似度の解析結果を得る。ついで、近傍特定部105bは、得られた解析結果(類似度)が類似度閾値以上のファイルを類似ファイルとして特定する。ついで、近傍特定部105bは、特定した類似ファイルと、類似度結果とを類似ファイル候補一覧113に格納する。
【0033】
類似度解析部106は、ファイル間(検索の起点とするファイルに対する検索対象ファイル)の類似度を解析する処理部である。具体的には、類似度解析部106は、形式類似度解析部106aと、内容類似度解析部106bとを有する。
【0034】
形式類似度解析部106aは、ファイル間のファイル形式(「ファイル名」、「拡張子」、「サイズ」)に関する形式類似度を解析する処理部である。具体的には、形式類似度解析部106aは、サーバ装置20の類似度パターンDB21を参照し、検索条件の類似度(形式)に対応する類似度パターンを取得する。ついで、類似度解析部106は、取得した類似度パターンをもとに、ファイル間のファイル形式に関する形式類似度を算出する。
【0035】
内容類似度解析部106bは、ファイル間のファイル内容に関する内容類似度を解析する処理部である。具体的には、内容類似度解析部106bは、比較を行うファイルのデータをdiffなどの既存のファイル内容比較ツール114に渡す。ついで、内容類似度解析部106bは、ファイル内容比較ツール114から返された比較結果(例えば一致する行数、不一致の行数)をもとに、例えば一致する行数の割合から内容類似度を算出する。
【0036】
処理結果表示部107は、改版遷移解析部105による検索結果を表示出力する処理部である。具体的には、処理結果表示部107は、改版遷移解析部105の検索により得られた類似ファイル候補一覧113を読み出し、類似ファイルの一覧などを液晶ディスプレイ等の表示装置13に表示させる。
【0037】
図4は、クライアント装置11の動作例を示すフローチャートである。
図4に示すように、処理が開始されると、検索条件受信格納部101は、利用者H2より検索条件の設定を受け付けて検索条件情報111に格納する検索条件設定処理(S1)を行う。
【0038】
具体的には、検索条件受信格納部101は、GUI(Graphical User Interface)による設定画面を介して、始点ファイルおよび終点ファイルと、検索対象の設定を受け付ける(S11)。同様に、検索条件受信格納部101は、設定画面を介して類似度(形式)の設定(S12)および類似度閾値の設定(S13)を受け付ける。
【0039】
図5A~5Cは、設定画面の一例を説明する説明図である。
図5A~5Cに示すように、設定画面30は、タブ301、302、303の切り替えにより各種設定の切り替えが可能となっている。
【0040】
図5Aに示すように、タブ301を指定することで、設定画面30には、始点ファイルの設定を受け付ける始点設定領域311と、終点ファイルの設定を受け付ける終点設定領域312と、検索対象の設定を受け付ける検索対象設定領域313とが表示される。利用者H2は、各設定領域のボタン操作により、始点ファイル、終点ファイル、検索対象のファイルパスなどを設定する。例えば、始点設定領域311の「参照」ボタンの操作により、検索条件受信格納部101は、始点ファイルに関する設定画面31を表示させる。利用者H2は、設定画面31に表示されたファイルの中から所定のファイルを選択することで、始点ファイルを設定する。
【0041】
図5Bに示すように、タブ302を指定することで、設定画面30には、「拡張子」に関する類似度パターンの設定を受け付ける拡張子設定領域321と、「ファイル名」に関する類似度パターンの設定を受け付けるファイル名設定領域322と、「サイズ」に関する類似度パターンの設定を受け付けるファイルサイズ設定領域323とが表示される。利用者H2は、各設定領域の操作により、類似度パターンの採用の有無(チェックボックス)、類似度パターンの内容設定などを行う。なお、ファイル形式の設定は、「ファイル名」、「拡張子」、「サイズ」の全て行う必要はなく、少なくとも1つ設定されていればよい。
【0042】
図5Cに示すように、タブ303を指定することで、設定画面30には、類似度閾値の設定を受け付ける閾値設定領域331が表示される。利用者H2は、閾値設定領域331における操作により、形式類似度に関する閾値(類似度(形式))、内容類似度に関する閾値(類似度(内容))などを設定する。
【0043】
図4に戻り、S1についで、対象ファイル一覧作成部104は、設定された検索条件に基づいて、ファイル記憶部112に格納されたファイルの中から検索対象ファイルの一覧(対象ファイル一覧)を作成する対象ファイル一覧作成処理(S2)を行う。具体的には、対象ファイル一覧作成部104は、検索対象のファイルパスに該当するファイルの中で、始点に対応する始点ファイルの作成日付から検索条件の終点に対応する終点ファイルの作成日付までを近傍範囲(対象範囲)とする。ついで、対象ファイル一覧作成部104は、この近傍範囲に該当するファイルをもとに対象ファイル一覧を作成する(S21)。
【0044】
ついで、クライアント装置11では、設定された始点ファイルと、作成された対象ファイル一覧とをもとに、ファイル間の類似度を算出(S31)する類似度解析処理(S3)が類似度解析部106で行わる。また、クライアント装置11では、算出した類似度に基づき、類似ファイル候補一覧113を提示(S41)、すなわち算出した類似度に対して事前に指定した閾値以上の類似ファイルを提示する類似ファイル確定処理(S4)が改版遷移解析部105で行われる。
【0045】
ここで、S3、S4の処理の詳細を説明する。
図6は、クライアント装置11の動作例を示すフローチャートである。より具体的には、
図6のフローチャートでは、上述したS3、S4における動作の詳細を例示している。
【0046】
図6に示すように、処理が開始されると、起点設定部105aは、始点として設定されたファイル(始点ファイル)を「検索の起点」に設定する(S101)。
【0047】
ついで、形式類似度解析部106aは、「検索の起点」に設定されたファイルと、対象ファイル一覧のファイルとの間の形式類似度を算出する形式類似度算出処理を行う(S102)。
【0048】
具体的には、形式類似度解析部106aは、「検索の起点」に設定されたファイルの「ファイル名」、「拡張子」、「サイズ」を取得する(S102a)。ついで、形式類似度解析部106aは、「検索の起点」の「ファイル名」、「拡張子」、「サイズ」と、対象ファイル一覧のファイルの「ファイル名」、「拡張子」、「サイズ」とを比較する。ついで、形式類似度解析部106aは、検索条件において設定された類似度(形式)に対応する類似度パターンを類似度パターンDB21より取得し、比較結果に該当する類似度パターンの点数(減点)をもとに、形式類似度を算出する(S102b)。
【0049】
ついで、内容類似度解析部106bは、「検索の起点」に設定されたファイルと、対象ファイル一覧のファイルとの間の内容類似度を算出する内容類似度算出処理を行う(S103)。
【0050】
具体的には、類似度解析部106では、対象ファイル一覧について、S102で求めた形式類似度が閾値(類似度(形式))以上のファイルに絞り込む(S103a)。ついで、内容類似度解析部106bは、「検索の起点」に設定されたファイルと、絞り込んだ対象ファイル一覧のファイルとの内容類似度をファイル内容比較ツール114を用いて算出する(S103b)。
【0051】
図7は、内容比較の一例を説明する説明図である。
図7に示すように、ファイルの内容比較では、ファイルの中身を行ごとに比較して、一致行数と不一致行数とを算出する。
図7の例では、比較先の3行目、7行目が不一致の行とされ、総行数:8行、一致行数:6行、不一致行数:2行となる。内容類似度は、これらの行数に基づいて、例えば6行(一致行数)÷8行(総行数)=75%と算出される。
【0052】
図6に戻り、近傍特定部105bは、内容類似度が閾値(類似度(内容))以上のファイルについて、類似ファイル候補一覧113にファイルパス・類似度・検索状況を出力する(S103c)。
【0053】
ついで、改版遷移解析部105は、類似ファイル候補一覧113に含まれる類似ファイルの中に「検索の起点」としていない(「起点設定済」でない)、検索対象の類似ファイルがあるか否かを判定する(S104)。検索対象の類似ファイルがない場合(S104:Yes)、改版遷移解析部105は、処理を終了する。
【0054】
検索対象の類似ファイルがある場合(S104:No)、起点設定部105aは、類似ファイル候補一覧113の類似ファイルの1つを「検索の起点」に設定する(S105)。ついで、起点設定部105aは、「検索の起点」に設定した類似ファイル候補一覧113の類似ファイルのフラグを、検索の起点としていない「未」から検索の起点済みの「起点設定済」に更新し(S106)、S102へ処理を戻す。
【0055】
図8A~
図8Cは、類似ファイル確定に至る流れの一例を説明する説明図である。
図8Aの上段に示すように、ステップT1では、作成日が7月1日の正本ファイルF1(例えば改訂前のソースコード)を始点とし、作成日が9月1日の正本ファイルF2(例えば改訂後のソースコード)を終点として指定している。これにより、クライアント装置11は、検索対象のファイルパス(例えばYドライブ)に格納されたファイルの中で、始点に対応する7月1日から終点に対応する9月1日までのファイルを対象ファイル一覧に加える。
【0056】
ついで、
図8Aの下段に示すように、クライアント装置11は、正本ファイルF1を「検索の起点」として対象ファイル一覧の中から類似ファイル(例えば閾値75%以上)を検索する。これにより、ステップT2では、類似度が80%の類似ファイルF11(7月26日作成)が検索され、検索された類似ファイルF11が類似ファイル候補一覧113に追加される。
【0057】
ついで、
図8Bの上段に示すように、クライアント装置11は、類似ファイルF11を「検索の起点」として対象ファイル一覧の中から類似ファイルを検索する。これにより、ステップT3では、類似ファイルF11に対して類似度が90%の類似ファイルF12(7月10日作成)と、類似ファイルF13(7月28日作成)が検索され、検索された類似ファイルF12が類似ファイル候補一覧113に追加される。
【0058】
ついで、
図8Bの下段に示すように、クライアント装置11は、検索の起点としていない類似ファイルF12を「検索の起点」として対象ファイル一覧の中から類似ファイルを検索する。これにより、ステップT4では、類似ファイルF11が検索されるが、類似ファイルF11は類似ファイル候補一覧113に既に含まれることから、新たな類似ファイルの追加はない。
【0059】
ついで、
図8Cの上段に示すように、クライアント装置11は、検索の起点としていない類似ファイルF13を「検索の起点」として対象ファイル一覧の中から類似ファイルを検索する。これにより、ステップT5では、類似ファイルF11、正本ファイルF2が検索されるが、類似ファイルF11は類似ファイル候補一覧113に既に含まれており、正本ファイルF2は終点であることから、新たな類似ファイルの追加はない。
【0060】
ここで、クライアント装置11は、類似ファイル候補一覧113の中に検索対象の類似ファイルがなくなることから、処理を終了する。これにより、クライアント装置11の処理結果表示部107は、類似ファイル候補一覧113に含まれている類似ファイルF11、F12、F13を表示装置13に表示して利用者H2に提示する。これにより、利用者H2は、ソースコードなどの正本ファイルF1に対し、ファイル名は似ているが中身が同一、ファイル名も中身も類似する等の雑多な類似ファイルF11、F12、F13を選んで削除することができる。
【0061】
図9は、従来例と実施形態にかかるシステムとの比較を説明する説明図である。
図9において、ケースC1は、従来例による類似ファイル検索の結果を示している。また、ケースC2は、実施形態にかかるシステムでの類似ファイル検索の結果を示している。
【0062】
図9に示すように、従来例のケースC1では、正本ファイルF1から改訂が繰り返されて生じた類似ファイルF11、F13のうち、変更差分の積み重ねにより類似度が小さくなってしまった類似ファイルF13は検索されていない。
【0063】
これに対し、実施形態にかかるシステムのケースC2では、正本ファイルF1から検索された類似ファイルF11を次の「検索の起点」とすることから、類似ファイルF11に対する類似ファイルF13の類似度は高いまま(類似度90%)となる。このため、ケースC2では、類似ファイルF13も漏れずに検索されている。このように、実施形態にかかるシステムでは、元ファイル(正本ファイルF1)から改訂が繰り返されて生成された類似ファイルF13を漏らさずに特定することができる。
【0064】
ここで、ソフトウェア製品の開発現場への適用例を説明する。
図10は、開発時における資産の一例を説明する説明図である。
図10に示すように、ソフトウェア製品の開発現場において、開発資産を格納するフォルダには、開発中資産40と正本資産41がある。
【0065】
ソフトウェア製品の開発には、設計・プログラミング・テストの工程があり、設計では、仕様・システム構成などを決めるために設計書を作成する。例えば、基本設計工程では成果物として「業務フロー」「機能一覧表」「基本設計書」などを作成する。具体的には、
図10上段に示すように、「開発中資産」では、工程名を付けたフォルダを用意して格納する。
【0066】
図10下段に示すように、開発完了後は、「正本資産」のフォルダに正本として資産を格納する。製品リリース後も、新規顧客の獲得・継続利用を促すための機能追加を行い、新たな製品をリリースする。「正本資産」のフォルダ内には、「開発中資産」に含まれる改訂途上のファイルなどの不要資産は存在しない。そこで、開発時には、正本となるファイルをもとに「開発中資産」に含まれる類似ファイルを検索して削除する作業が行われる。
【0067】
図11は、開発時におけるフローの一例を示すフローチャートである。
図12A~12Dは、開発時におけるフローの具体例を説明する説明図である。
【0068】
図11に示すように、開発時には、ソフトウェアの開発(S200)と、改版遷移を考慮した類似ファイルの削除(S201)とが行われる。
【0069】
開発段階(S200)では、まず、開発準備(S200a)が行われる。この開発準備では、
図12Aに示すように、開発資産を格納するサーバをYドライブに割り当て、「製品名称」フォルダを作成するなどの作業が行われる(S210)。
【0070】
この開発準備の後、開発段階(S200)では、新たな製品(バージョン:V01L10)のリリースを行う(S200b)。具体的には、
図12Aに示すように、開発者は、「開発中資産」に新たな設計書を作成する(S211)。ついで、開発の管理者は、開発完了後、最新設計書を正本に移動する(S212)。図示例では、[正本資産]を格納するサーバをZドライブに割り当てたうえで、この[正本資産]に最新設計書を移動している。
【0071】
この新たな製品(バージョン:V01L10)のリリースの後、開発段階(S200)では、機能追加を行い、バージョンアップ(バージョン:V01L10→V02L10)して製品のリリースを行う(S200c)。
【0072】
具体的には、
図12Aに示すように、開発者は、製品リリースに向け、直近の設計書を複写して新たな設計書を作成する(S213)。ここで、開発者は、「work」フォルダを作成し、作成中の設計書を「Yドライブ」に複写(バックアップ)している(S214)。
【0073】
このバックアップ(複写時)において、開発者は、ファイル名を元ファイルとは異なる(類似した)ものに変える。例えば、開発を進める中で、レビュー指摘により設計書を修正するが、修正前に開発中の最新設計書を複写して保存することがある。これは、修正ミス、仕様の見直しが起きたときに、修正前の設計書をもとに書き直した方がはやく、工数がかからないためである。
【0074】
図12Bに示すように、開発者は、命名規約とは異なるファイル名、所定の格納先とは異なる場所にバックアップを保存している(S215)。また、組み合わせで保存する場合もある。
【0075】
また、開発者は、仕様変更により、最新設計書を修正する。完了後、設計書を「Yドライブ」に複写する(S216)。また、開発者は、レビュー指摘結果を受け、最新設計書を修正する。修正後、設計書を「Yドライブ」に複写する(S217)。
【0076】
また、
図12Cに示すように、開発者は、レビュー指摘結果を、最新設計書に反映する(S218)。開発の管理者は、開発完了後、最新設計書を正本に移動する(S219)。このとき、開発の管理者は、複写した設計書の削除を忘れたものとする(S220)。このような削除のし忘れにより、[開発中資産]内には、雑多な類似ファイルが増えていくこととなる。
【0077】
図11に戻り、開発完了後、ディスク容量が不足したことから、開発の管理者が不要ファイル(類似ファイル)の削除を行う(S201)と仮定する。
【0078】
類似ファイル削除を行う場合、開発の管理者は管理装置10を介して類似度パターンDB21の登録を行う(S201a)。具体的には、開発の管理者は、類似度パターンDB21のデータテーブル21a、21b、21cのそれぞれに「ファイル名」「拡張子」「サイズ」の条件を登録する。
【0079】
ついで、開発の管理者は、クライアント装置11を介して類似ファイルの検索条件を指定した上で、検索を実行する(S201b)。例えば、
図12Dに示すように、開発の管理者は、検索対象、類似度(形式)、類似度閾値を検索条件として指定する(S221)。この指定をもとに上述した検索を行うことで、
図12Dに示すように、類似ファイルの一覧が開発の管理者に対して提示される(S222)。このように提示された類似ファイルは、指定した閾値以上の類似度に該当するファイルで、かつ、正本(始点)から正本(終点)までを繋ぐファイルであるため、不要ファイルの対象である。したがって、開発の管理者は、提示されたファイルの中から不要なファイルを選択して削除する。
【0080】
以上のように、クライアント装置11の検索条件受信格納部101は、検索の始点と、終点の指定を受け付ける。クライアント装置11の対象ファイル一覧作成部104は、指定された始点および終点間に該当する検索対象ファイルをファイル記憶部112に格納された複数のファイルの中から特定する。クライアント装置11の改版遷移解析部105は、特定した検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索する。改版遷移解析部105は、始点に対応する始点ファイルを最初の検索の起点とした上で、検索した類似ファイルの1つを次の検索の起点とする検索を繰り返す。これにより、クライアント装置11は、ソースコードなどの正本となる始点ファイルに対して変更差分が積み重ねられた類似ファイルを特定できる。
【0081】
また、改版遷移解析部105は、形式類似度解析部106aの解析結果をもとに、互いのファイル形式における類似度が所定値以上のファイルを検索する。これにより、クライアント装置11は、ソースコードなどの正本となる始点ファイルに対してファイル形式に関する変更が積み重ねられ、ファイル形式が変遷するような場合であっても、類似ファイルを特定できる。
【0082】
また、改版遷移解析部105は、内容類似度解析部106bの解析結果をもとに、互いのファイル内容における類似度が所定値以上のファイルを検索する。これにより、クライアント装置11は、ソースコードなどの正本となる始点ファイルに対してファイル内容に関する変更が積み重ねられ、ファイル内容が変遷するような場合であっても、類似ファイルを特定できる。
【0083】
また、改版遷移解析部105は、検索対象ファイルの中から検索の起点とするファイルに対するファイル形式における形式類似度が所定値以上のファイルを検索した上で、形式類似度が所定値以上のファイルの中から互いのファイル内容における内容類似度が所定値以上のファイルを類似ファイルとして検索する。このように、クライアント装置11は、予めファイル形式で類似するファイルを絞り込んだ上で、互いのファイルの内容類似度を求めてもよい。形式類似度を検証する場合と比較して内容類似度の検証には、計算量が多く必要となることから、クライアント装置11は、このような絞り込みを行うことで、計算資源を節約できる。
【0084】
また、対象ファイル一覧作成部104は、始点に対応する日付から終点に対応する日付までの間のファイルを検索対象ファイルと特定する。これにより、クライアント装置11は、例えば、開発期間内に作成されたファイルを検索対象ファイルとすることができる。
【0085】
また、改版遷移解析部105は、検索した類似ファイルの全てを検索の起点とした場合に検索を終了する。これにより、クライアント装置11は、検索された類似ファイルの全てを検索の起点として、条件を満たす類似ファイルの探索を行うことができる。
【0086】
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0087】
例えば、上記の実施形態では、サーバ装置20とクライアント装置11とを有するシステム1による構成を例示したが、クライアント装置11内の記憶装置に類似度パターンDB21を格納することでクライアント装置11単体とする構成であってもよい。
【0088】
また、クライアント装置11で行われる検索条件受信格納部101、検索条件解析部102、対象ファイルパス決定部103、対象ファイル一覧作成部104、改版遷移解析部105、類似度解析部106および処理結果表示部107の各種処理部は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、上記の各種処理部は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、上記の各種処理部は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0089】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。
図13は、コンピュータ構成の一例を説明位する説明図である。
【0090】
図13に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、システム1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0091】
ハードディスク装置209には、上記の各種処理部(例えば検索条件受信格納部101、検索条件解析部102、対象ファイルパス決定部103、対象ファイル一覧作成部104、改版遷移解析部105、類似度解析部106および処理結果表示部107)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0092】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の各種処理部(例えば検索条件受信格納部101、検索条件解析部102、対象ファイルパス決定部103、対象ファイル一覧作成部104、改版遷移解析部105、類似度解析部106および処理結果表示部107)に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0093】
以上の実施形態に関し、さらに以下の付記を開示する。
【0094】
(付記1)検索の始点と、終点の指定を受け付け、
指定された前記始点および前記終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から抽出し、
抽出した前記検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索し、
前記検索は、前記始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、検索した前記類似ファイルの1つを次の検索の起点とする検索を繰り返す、
処理をコンピュータに実行させることを特徴とするファイル検索プログラム。
【0095】
(付記2)前記検索は、互いのファイル形式における類似度が所定値以上のファイルを検索する、
ことを特徴とする付記1に記載のファイル検索プログラム。
【0096】
(付記3)前記ファイル形式は、ファイル名、拡張子、ファイルサイズの少なくとも1である、
ことを特徴とする付記2に記載のファイル検索プログラム。
【0097】
(付記4)前記検索は、互いのファイル内容における類似度が所定値以上のファイルを検索する、
ことを特徴とする付記1に記載のファイル検索プログラム。
【0098】
(付記5)前記検索は、前記検索対象ファイルの中から検索の起点とするファイルに対するファイル形式における第1の類似度が所定値以上のファイルを検索した上で、当該第1の類似度が所定値以上のファイルの中から互いのファイル内容における第2の類似度が所定値以上のファイルを類似ファイルとして検索する、
ことを特徴とする付記1に記載のファイル検索プログラム。
【0099】
(付記6)前記抽出する処理は、前記始点に対応する日付から前記終点に対応する日付までの間のファイルを前記検索対象ファイルと特定する、
ことを特徴とする付記1に記載のファイル検索プログラム。
【0100】
(付記7)前記検索は、検索した前記類似ファイルの全てを検索の起点とした後に検索を終了する、
ことを特徴とする付記1に記載のファイル検索プログラム。
【0101】
(付記8)検索の始点と、終点の指定を受け付け、
指定された前記始点および前記終点間に該当する検索対象ファイルを記憶部に格納された複数のファイルの中から抽出し、
抽出した前記検索対象ファイルの中から検索の起点とするファイルに対する類似度が所定値以上の類似ファイルを検索し、
前記検索は、前記始点に時間的にもっとも近い始点ファイルを最初の検索の起点とした上で、前記類似ファイルの1つを次の検索の起点とする検索を繰り返す、
処理をコンピュータが実行することを特徴とするファイル検索方法。
【0102】
(付記9)前記検索は、互いのファイル形式における類似度が所定値以上のファイルを検索する、
ことを特徴とする付記8に記載のファイル検索方法。
【0103】
(付記10)前記ファイル形式は、ファイル名、拡張子、ファイルサイズの少なくとも1である、
ことを特徴とする付記9に記載のファイル検索方法。
【0104】
(付記11)前記検索は、互いのファイル内容における類似度が所定値以上のファイルを検索する、
ことを特徴とする付記8に記載のファイル検索方法。
【0105】
(付記12)前記検索は、前記検索対象ファイルの中から検索の起点とするファイルに対するファイル形式における第1の類似度が所定値以上のファイルを検索した上で、当該第1の類似度が所定値以上のファイルの中から互いのファイル内容における第2の類似度が所定値以上のファイルを類似ファイルとして検索する、
ことを特徴とする付記8に記載のファイル検索方法。
【0106】
(付記13)前記抽出する処理は、前記始点に対応する日付から前記終点に対応する日付までの間のファイルを前記検索対象ファイルと特定する、
ことを特徴とする付記8に記載のファイル検索方法。
【0107】
(付記14)前記検索は、検索した前記類似ファイルの全てを検索の起点とした後に検索を終了する、
ことを特徴とする付記8に記載のファイル検索方法。
【符号の説明】
【0108】
1…システム
10…管理装置
11…クライアント装置
12…入力装置
13…表示装置
20…サーバ装置
21…類似度パターンDB
21a~21c…データテーブル
30…設定画面
31…設定画面
40…開発中資産
41…正本資産
101…検索条件受信格納部
102…検索条件解析部
103…対象ファイルパス決定部
104…対象ファイル一覧作成部
105…改版遷移解析部
105a…起点設定部
105b…近傍特定部
106…類似度解析部
106a…形式類似度解析部
106b…内容類似度解析部
107…処理結果表示部
111…検索条件情報
112…ファイル記憶部
113…類似ファイル候補一覧
114…ファイル内容比較ツール
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカ
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
301~303…タブ
311…始点設定領域
312…終点設定領域
313…検索対象設定領域
321…拡張子設定領域
322…ファイル名設定領域
323…ファイルサイズ設定領域
331…閾値設定領域
C1、C2…ケース
F1、F2…正本ファイル
F11~F13…類似ファイル
H1…管理者
H2…利用者
T1~T6…ステップ