(57)【要約】【課題】ユーザにより正規の編集を行う宣言を行わずに変更が加えられたファイル（問題ファイル）に対して適切に対処するための支援を有効に行う。【解決手段】ソフト開発における製品のソースファイルおよびドキュメントを含むソフト資産のソフトウェア構成を管理するソフトウェア構成管理システムであって、ユーザにより正規の編集を行う宣言を行わずに変更が加えられたファイルを問題ファイルとして検出する手段と、問題ファイルとして検出したファイルに問題情報を対応付けてワークスペース管理情報に保存する手段とを備える。【選択図】図４
2015041114.tif 000002
【特許請求の範囲】
【請求項１】
ソフト開発における製品のソースファイルおよびドキュメントを含むソフト資産のソフトウェア構成を管理するソフトウェア構成管理システムであって、
ユーザにより正規の編集を行う宣言を行わずに変更が加えられたファイルを問題ファイルとして検出する手段と、
問題ファイルとして検出したファイルに問題情報を対応付けてワークスペース管理情報に保存する手段と
を備えたことを特徴とするソフトウェア構成管理システム。
【請求項２】
請求項１に記載のソフトウェア構成管理システムにおいて、
ユーザの指示に従い、前記ワークスペース管理情報の問題情報を検索して問題ファイルを抽出する手段
を備えたことを特徴とするソフトウェア構成管理システム。
【請求項３】
請求項２に記載のソフトウェア構成管理システムにおいて、
抽出された問題ファイルに対して解決策を提示する手段
を備えたことを特徴とするソフトウェア構成管理システム。
【請求項４】
請求項１乃至３のいずれか一項に記載のソフトウェア構成管理システムにおいて、
前記ワークスペース管理情報に問題情報が保存された問題ファイルの検出時の状態を保持する手段と、
ユーザの指示に従い、変更が加えられた問題ファイルを検出時の状態に戻す手段と
ユーザによる完了の宣言が行われた問題ファイルについて、前記ワークスペース管理情報の問題情報を解除するとともに、問題ファイルの検出時の状態を解放する手段と
を備えたことを特徴とするソフトウェア構成管理システム。
【請求項５】
請求項１乃至４のいずれか一項に記載のソフトウェア構成管理システムにおいて、
前記ワークスペース管理情報に問題情報が保存された問題ファイルについての登録要求を検出する手段と、
登録要求を拒否する手段と
を備えたことを特徴とするソフトウェア構成管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを管理する技術に関する。
【背景技術】
【０００２】
ソフト開発における製品（開発途中のものを含む）のソフト資産（ソースファイル、ドキュメント等）のディレクトリ構成やバージョン番号等のソフトウェア構成を管理するためのソフトウェア構成管理システムが存在する（例えば、特許文献１を参照。）。
【０００３】
図１は従来の構成管理システムにおける処理例を示す図である。
【０００４】
図１において、ユーザの使用するクライアントＰＣ（Personal Computer）は、ネットワークを介して構成管理サーバから最新のソフトウェア構成情報を取得し（ステップＳ１１）、ワークスペース（作業領域）上に配置する。
【０００５】
ユーザは、所望のファイルについて編集を行う場合、編集の宣言（チェックアウト）を行い（ステップＳ１２）、編集作業を行う（ステップＳ１３）。
【０００６】
その後、ワークスペースの更新を行うと（ステップＳ１４）、チェックアウトされたファイルについて他ユーザの変更が確認され、他ユーザにより変更されていないことを確認した場合には、編集により変更したファイルを登録（コミット）する（ステップＳ１５）。ソフト開発の場面では、これらの作業を繰り返していくことになる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のソフトウェア構成管理システムにおける通常のファイルの編集の流れは上述したように行われるが、チェックアウトされないで行われる「問題ファイル」の存在が指摘されている。
【０００８】
すなわち、ユーザは個人での確認作業等のために、チェックアウトを行わずにワークスペース上のファイルに変更を加える場合がある。例えば、デバッグ用のログ出力のためのコードをファイルに挿入する場合がある。図２はそのような状況を示している。
【０００９】
図２において、ユーザの使用するクライアントＰＣは、構成管理サーバから最新のソフトウェア構成情報を取得し（ステップＳ２１）、ワークスペース上に配置する。
【００１０】
ユーザは、所望のファイルについて編集を行う場合、編集の宣言（チェックアウト）を行い（ステップＳ２２）、編集作業を行う（ステップＳ２３）。この際、チェックアウトを行わなかったファイルについても編集作業を行うことがある。このようなファイルが問題ファイルとなる。
【００１１】
このような問題ファイルは、個人の確認用に編集した部分を削除した上で構成管理サーバに登録する必要があり、そのままの状態で登録（ステップＳ２４）させてしまうと不都合が生じる。
【００１２】
図３はこのような問題ファイルについての従来の対処例を示している。
【００１３】
図３において、問題ファイルの発生後に、ワークスペースと構成管理サーバの状態を同期させる更新を行うと（ステップＳ３１）、更新日付やファイルサイズの違い等により問題ファイルが検出され、問題ファイルについて対応を行うようユーザに対して通知が行われる（ステップＳ３２）。
【００１４】
ユーザはその場で問題ファイル１つずつに対しての対応を行うこととなるが、大量のファイルを編集している場合には自分がなぜその変更を行ったかを全て把握できないため、問題ファイルに対して実施すべき対応をその場で判断することが難しく、解決策を誤ってしまうことがある。
【００１５】
また、問題ファイルの確認は更新時のみしか行われないため、対応を保留したファイルを後から発見することが難しく、対応漏れがある状態で構成管理サーバに登録されてしまうことがある（ステップＳ３３）。
【００１６】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、ユーザにより正規の編集を行う宣言を行わずに変更が加えられたファイル（問題ファイル）に対して適切に対処するための支援を有効に行うことにある。
【課題を解決するための手段】
【００１７】
上記の課題を解決するため、本発明にあっては、ソフト開発における製品のソースファイルおよびドキュメントを含むソフト資産のソフトウェア構成を管理するソフトウェア構成管理システムであって、ユーザにより正規の編集を行う宣言を行わずに変更が加えられたファイルを問題ファイルとして検出する手段と、問題ファイルとして検出したファイルに問題情報を対応付けてワークスペース管理情報に保存する手段とを備えるようにしている。
【発明の効果】
【００１８】
本発明にあっては、ユーザにより正規の編集を行う宣言を行わずに変更が加えられた問題ファイルに対して適切に対処するための支援を有効に行うことができる。
【図面の簡単な説明】
【００１９】
【図１】従来の構成管理システムにおける処理例を示す図（その１）である。
【図２】従来の構成管理システムにおける処理例を示す図（その２）である。
【図３】従来の構成管理システムにおける処理例を示す図（その３）である。
【図４】本発明の一実施形態にかかるシステムの構成例を示す図である。
【図５】各種情報のデータ構造例を示す図である。
【図６】実施形態の処理例を示すフローチャート（その１）である。
【図７】問題情報の保存の例を示す図である。
【図８】問題ファイルの通知の例を示す図である。
【図９】実施形態の処理例を示すフローチャート（その２）である。
【図１０】問題ファイルの検索の例を示す図である。
【図１１】解決策の提示の例を示す図である。
【図１２】完了の宣言の例を示す図である。
【図１３】実施形態の処理例を示すフローチャート（その３）である。
【図１４】コミット拒否の例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明の好適な実施形態につき説明する。
【００２１】
＜構成＞
図４は本発明の一実施形態にかかるシステムの構成例を示す図である。
【００２２】
図４において、構成管理サーバ１にはネットワーク２を介して複数のクライアントＰＣ３が接続されている。ネットワーク２はＬＡＮ（Local Area Network）である場合が多いが、それに限られない。また、有線・無線の接続形態にも限定されない。
【００２３】
構成管理サーバ１は、構成管理部１１と記憶部１２とを備えている。構成管理部１１は、構成管理サーバ１を構成するコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。記憶部１２は、構成管理サーバ１内のＨＤＤ（Hard Disk Drive）等の記憶媒体により実現されるものである。
【００２４】
クライアントＰＣ３は、ワークスペース管理部３１と問題情報保存部３２と問題ファイル検索部３３と解決策ナビゲーション部３４と問題状態保持部３５と登録時再確認部３６とファイル作成・編集部３７と各種ツール３８と記憶部３９とを備えている。
【００２５】
ワークスペース管理部３１、問題情報保存部３２、問題ファイル検索部３３、解決策ナビゲーション部３４、問題状態保持部３５、登録時再確認部３６、ファイル作成・編集部３７、各種ツール３８は、クライアントＰＣ３を構成するコンピュータのＣＰＵ、ＲＯＭ、ＲＡＭ等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。記憶部３９は、クライアントＰＣ３内のＨＤＤ等の記憶媒体により実現されるものである。
【００２６】
構成管理サーバ１は、各クライアントＰＣ３により作成・編集されてコミットされたファイルのバージョン番号、作成日付、更新日付等を記憶部１２の構成管理情報１２１に保持して管理する機能を有している。記憶部１２は、明示的に除去される場合を除き、旧バージョンのファイルについても保持する。
【００２７】
図５（ａ）は構成管理情報１２１のデータ構造例を示しており、「ＩＤ」「親ＩＤ」「ファイル／フォルダ種別」「アイコンＩＤ」「ファイル名／フォルダ名」「バージョン番号」「作成日時・更新日時」「チェックアウト中」等の項目（フィールド）を有している。
【００２８】
「ＩＤ」は、レコードを識別する情報である。「親ＩＤ」は、当該レコードの上の階層に位置する親レコードを識別する情報である。「ファイル／フォルダ種別」は、当該レコードの対象がファイルであるかフォルダであるかを識別する情報である。「アイコンＩＤ」は、当該レコードの示すファイルもしくはフォルダを表示する場合のアイコン画像を識別する情報である。
【００２９】
「ファイル名／フォルダ名」は、当該レコードの示すファイルもしくはフォルダの名称である。「バージョン番号」は、当該レコードの示すファイルのバージョンを示す情報である。「作成日時・更新日時」は、当該レコードの示すファイルの作成もしくは更新が行われた日時を示す情報である。「チェックアウト中」は、当該レコードの示すファイルがチェックアウト中であるか否かを示す情報である。
【００３０】
図４に戻り、構成管理サーバ１の構成管理部１１は、クライアントＰＣ３のワークスペース管理部３１からの要求に応じて、管理するファイルの階層情報（構成管理情報）を提供する機能を有している。また、構成管理部１１は、従来から存在するチェックアウト管理機能を有している。
【００３１】
クライアントＰＣ３はソフト開発を行うユーザ（開発者）が操作する情報処理装置である。
【００３２】
ワークスペース管理部３１は、ファイル階層の表示機能の起動時もしくは既に起動した状態でユーザから更新の指示を受けた場合や定期的な自動更新が行われた場合に、構成管理サーバ１の構成管理部１１から最新の構成管理情報を取得し、クライアントＰＣ３上の記憶領域のディレクトリを示す、記憶部３９内のワークスペース管理情報３９１を更新して表示する機能を有している。また、ワークスペース管理部３１は、ワークスペース更新時に、構成管理サーバ１の構成情報と整合しないファイルについてユーザに通知を行う機能も有している。
【００３３】
図５（ｂ）はワークスペース管理情報３９１のデータ構造例を示しており、「ＩＤ」「親ＩＤ」「ファイル／フォルダ種別」「アイコンＩＤ」「ファイル名／フォルダ名」「バージョン番号」「作成日時・更新日時」「チェックアウト中」「問題種別」等の項目を有している。「問題種別」が加わった点が図５（ａ）に示した構成管理情報１２１と異なっている。「問題種別」は、当該レコードの示すファイルが問題ファイルとして検出されている場合の問題の種別を示す情報である。
【００３４】
図４に戻り、問題情報保存部３２は、ワークスペース更新時に、チェックアウトされずに変更が加えられたファイルを問題ファイルとして検出し、ワークスペース管理情報３９１の該当するファイルの情報に問題種別を記録する機能を有している。
【００３５】
問題ファイル検索部３３は、ユーザから問題ファイルの検索の操作が行われた場合に、ワークスペース管理情報３９１を検索し、問題ファイルの特定情報を取得して表示する機能を有している。
【００３６】
解決策ナビゲーション部３４は、問題ファイル検索部３３によって表示された問題ファイルに対して、ユーザから解決策提示の操作が行われた場合に、記憶部３９の解決策情報３９２を参照し、解決策（問題の内容、問題状態を確認する手段（各種ツール）の提示、解決策選択肢）を提示し、選択された解決策を自動実行する機能を有している。また、解決策ナビゲーション部３４は、ユーザから問題ファイルについての対策の完了の宣言を受け付けた場合に、問題種別を削除して問題ファイルでないステータスに変更する機能を有している。
【００３７】
図５（ｃ）は解決策情報３９２のデータ構造例を示しており、「問題種別」「問題内容」「問題状態を解決する手段へのリンク」「解決策選択肢」等の項目を有している。「問題種別」は、問題ファイルに付された問題の種別を示す情報である。「問題内容」は、問題の内容を示す説明文字列の情報である。「問題状態を解決する手段へのリンク」は、問題状態を解決するための各種ツール３８を起動するためのリンク情報である。「解決策選択肢」は、ユーザのとり得る選択肢の情報である。この選択肢は、解決策を自動実行するためのスクリプト等を含んでいる。
【００３８】
図４に戻り、問題状態保持部３５は、ワークスペース管理情報３９１に問題ファイルであると記録されたファイルの状態（問題ファイルとして検出された時点のファイル内容そのもの等）を問題ファイル情報３９３として記録する機能を有している。
【００３９】
図５（ｄ）は問題ファイル情報３９３のデータ構造例を示しており、「問題ファイルの内容」等の項目を有している。
【００４０】
図４に戻り、登録時再確認部３６は、ワークスペース管理情報３９１に問題ファイルであると記録されたファイルについて、ユーザからコミット（サーバへの登録）の操作が行われた場合に、コミットを拒否する機能を有している。
【００４１】
ファイル作成・編集部３７は、ワークスペース上でファイルを新規に作成し、もしくは、作成済のファイルを編集する機能を有している。
【００４２】
各種ツール３８は、２つのファイル間の相違点を解析して表示するツールや、履歴を表示するツール等である。
【００４３】
＜動作＞
図６は上記の実施形態の処理例を示すフローチャートであり、ワークスペース更新時の処理例を示したものである。
【００４４】
図６において、 クライアントＰＣ３のワークスペース管理部３１の制御のもと、ユーザの操作に応じ、もしくは定期的な処理等によりワークスペースの更新（初期表示を含む）が行われると（ステップＳ１０１）、問題情報保存部３２は問題ファイルが存在しないかどうか判断する（ステップＳ１０２）。問題ファイルかどうかは、例えば、チェックアウトされずに変更が加えられたか否かにより判断する。
【００４５】
問題ファイルが存在しないと判断した場合（ステップＳ１０２のＹｅｓ）、特に処理を行わずに終了する。その後は、必要に応じて問題ファイルの対策、ファイルの編集作業、コミット等が行われる（ステップＳ１０７）。
【００４６】
問題ファイルが存在すると判断した場合（ステップＳ１０２のＮｏ）、ワークスペース管理部３１の基本的な機能により、変更が加えられたファイルであることが通知される（ステップＳ１０３）。
【００４７】
また、問題情報保存部３２は、問題ファイルと判断されたファイルにつき、ワークスペース管理情報３９１に問題種別を保存（設定）する（ステップＳ１０４）。
【００４８】
また、そのファイルについて問題状態（問題ファイルとして検出された時点のファイル内容そのもの等）を問題ファイル情報３９３に保持し（ステップＳ１０５）、処理を終了する（ステップＳ１０６）。その後は、必要に応じて問題ファイルの対策、ファイルの編集作業、コミット等が行われる（ステップＳ１０７）。
【００４９】
図７は問題情報の保存の例を示す図であり、ワークスペース更新（ステップＳ１０１）により、変更が加えられたファイルについて通知（ステップＳ１０３）が行われ、問題情報の保存（ステップＳ１０４）と問題状態の保持（ステップＳ１０５）が行われることを示している。
【００５０】
図８は問題ファイルの通知の例を示す図であり、画面の下欄に破線で示すように、問題ファイルがワーニング（Warning）として表示されている。
【００５１】
このように、問題ファイルである旨が保存されるとともに問題の状態が保持されることにより、ユーザは変更の通知があった時点で即座に対処を行う必要はなく、その後の所望の時点で対策（図６、図７のステップＳ１０７）を行えばよくなる。
【００５２】
図９は上記の実施形態の他の処理例を示すフローチャートであり、ユーザにより解決作業が行われる場合の処理例を示したものである。
【００５３】
図９において、ユーザが解決作業を開始するものとすると（ステップＳ１１１）、ユーザの検索要求操作に応じ、クライアントＰＣ３の問題ファイル検索部３３は問題ファイルの検索を行う（ステップＳ１１２）。
【００５４】
図１０は問題ファイルの検索の例を示す図であり、画面の左下に示すようにマウスの右クリック等により表示されたポップアップメニューから「問題の検索」を選択することにより、検索が実行され、画面の上方に破線で示すように問題ファイルの検索結果を一覧表示する。
【００５５】
図９に戻り、ユーザの解決策の提示要求操作に応じ、解決策ナビゲーション部３４は解決策を提示する（ステップＳ１１３）。
【００５６】
図１１は解決策の提示の例を示す図であり、画面の左側に破線で示すように、問題種別、発生日時、問題内容等が表示される。また、画面の右側の中央上に破線で示すように、問題点の確認として、使用できる各種ツール等が表示され、それを選択することで対応するツールを起動することができる。また、画面の右側の中央下に破線で示すように、解決案の選択として、ユーザのとり得る選択肢が表示され、ラジオボタンにより選択を行ない、画面右上の「解決策の実行」ボタンを選択することで、選択した解決策を実行することができる。
【００５７】
図９に戻り、解決策ナビゲーション部３４は解決策の選択を受け付けると（ステップＳ１１４）、解決策を実行する（ステップＳ１１５）。
【００５８】
次いで、ユーザから問題ファイルについての対策の完了の宣言を受け付けると（ステップＳ１１６）、ワークスペース管理情報３９１の問題種別を削除するとともに（ステップＳ１１７）、問題ファイル情報３９３の対応する内容を解放し（ステップＳ１１７）、処理を終了する（ステップＳ１１８）。
【００５９】
図１２は完了の宣言の例を示す図であり、問題解決作業（対策）を行った場合、完了の宣言を行う前であれば、問題ファイル情報３９３に基づいて元の状態に戻すことができることを示している。これにより、誤った対策を行ってしまった場合でも、元の状態に戻して問題解決作業をはじめからやり直すことができる。
【００６０】
図１３は上記の実施形態の他の処理例を示すフローチャートであり、ユーザによりコミットが行われる場合の処理例を示したものである。
【００６１】
図１３において、ユーザがコミットの操作を行い（ステップＳ１２１）、クライアントＰＣ３のワークスペース管理部３１がコミット操作を受け付けると（ステップＳ１２２）、登録時再確認部３６は該当するファイルについてワークスペース管理情報３９１の問題種別を参照し、問題ファイルではないか判断する （ステップＳ１２３）。
【００６２】
問題ファイルでないと判断した場合 （ステップＳ１２３のＹｅｓ）はコミットを行なう（ステップＳ１２４）。問題ファイルであると判断した場合 （ステップＳ１２３のＮｏ）はコミットを拒否する（ステップＳ１２５）。そして、処理を終了する（ステップＳ１２６）。
【００６３】
図１４はコミット拒否の例を示す図であり、問題解決作業（対策）が保留されていて問題が解決していないファイル（問題ファイル）についてコミットが要求された場合に、そのコミットが拒否（ステップＳ１２５）される様子を示している。これにより、問題解決が完了していない状態ではサーバへの登録が実施できず、ユーザの対応漏れによってサーバに問題ファイルが誤って登録されることを防止することができる。
【００６４】
＜総括＞
以上説明したように、本実施形態によれば、ユーザにより正規の編集を行う宣言を行わずに変更が加えられた問題ファイルに対して適切に対処するための支援を有効に行うことができる。
【００６５】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００６６】
１          構成管理サーバ
１１        構成管理部
１２        記憶部
１２１      構成管理情報
２          ネットワーク
３          クライアントＰＣ
３１        ワークスペース管理部
３２        問題情報保存部
３３        問題ファイル検索部
３４        解決策ナビゲーション部
３５        問題状態保持部
３６        登録時再確認部
３７        ファイル作成・編集部
３８        各種ツール
３９        記憶部
３９１      ワークスペース管理情報
３９２      解決策情報
３９３      問題ファイル情報
【先行技術文献】
【特許文献】
【００６７】
【特許文献１】特許第５０７８６７９号公報
【図４】
2015041114.tif 000003
【図５】
2015041114.tif 000004
【図６】
2015041114.tif 000005
【図９】
2015041114.tif 000006
【図１３】
2015041114.tif 000007
【図１】
2015041114.tif 000008
【図２】
2015041114.tif 000009
【図３】
2015041114.tif 000010
【図７】
2015041114.tif 000011
【図８】
2015041114.tif 000012
【図１０】
2015041114.tif 000013
【図１１】
2015041114.tif 000014
【図１２】
2015041114.tif 000015
【図１４】
2015041114.tif 000016