(57)【特許請求の範囲】
【請求項１】
複数のプログラム開発担当者が共有可能なソースコードやドキュメント等の生産物を使用してプログラム開発を行なう場合の管理を支援するプログラム開発管理支援装置において、
前記生産物をディレクトリ構造で格納した生産物格納手段と、各プログラム開発担当者が使用するクライアントコンピュータによって前記生産物格納手段から取り出した生産物を格納する担当者別の作業用格納手段と、各プログラム開発担当者が前記生産物格納手段から取り出した生産物のディレクトリと取り出し先および取り出し先での生産物の状態を生産物単位に格納する状態テーブルと、管理者から指示された時または所定時刻間隔で前記担当者別の作業用格納手段に取り出された生産物の作業状態を収集し、前記状態テーブルに登録する処理と、前記生産物格納手段内の全ての生産物または管理者から指定された生産物について、その取り出し先と作業状態とをディレクトリ構造で表示装置画面に表示させる処理とを行なう生産物管理手段とを備え、
前記生産物管理手段は、前記表示装置画面に表示された生産物のディレクトリのうち任意のディレクトリの選択操作に対し、その下位に属するディレクトリの生産物の作業状態を解析し、最新状態のものと最新状態でないものとを識別可能に表示する処理を行なうことを特徴とするプログラム開発管理支援装置。
【請求項２】
前記生産物管理手段は、最新状態でない生産物の選択操作と詳細情報表示指示操作に対し、現在の状態を一覧形式で表示する処理を行なうことを特徴とする請求項１に記載のプログラム開発管理支援装置。
【請求項３】
各プログラム開発担当者が前記担当者別の作業用格納手段に格納した生産物の状態と当該生産物に対するプログラム開発担当者の現在の作業状況とを生産物単位に格納する作業状況管理テーブルと、各プログラム開発担当者が使用するクライアントコンピュータからの作業状況通知を受け、該当生産物の状態と作業状況を前記作業状況管理テーブルに登録する処理と、各プログラム開発担当者からの問い合わせ要求に対し、要求された生産物の状態を要求元のプログラム開発担当者が使用するクライアントコンピュータに返信して表示させる処理とを行なう作業状況管理手段とをさらに備えることを特徴とする請求項１または２に記載のプログラム開発管理支援装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータのソフトウェア開発における作業の管理及びソースコードやドキュメント等の生産物の管理を支援するプログラム開発管理支援装置に関するものである。
【０００２】
【従来の技術】
従来よりプログラム開発においては、特開平９−１６３９１号公報（発明の名称：ソフトウェア開発支援・保守支援システム）や特開平９−２５８９６６号公報（発明の名称：ソフトウェア提供システム，ソフトウェア提供装置及びソフトウェア提供装置）に開示されているように、プログラム開発を行なうプロジェクト内の複数の開発担当者が生産物を共有して利用するための構成管理装置がある。
【０００３】
これらは、共有される生産物（ソースコードやドキュメント等）の各バージョン間の差分情報をリポジトリと呼ばれるディレクトリ階層に一元管理するものであり、各開発担当者の作業領域に、リポジトリから指定バージョンの生産物の内容を取り出して、取り出し先とリポジトリを対応付けた排他制御に基づいて生産物の変更や配布、リポジトリの更新を行うものである。
【０００４】
これらの技術の主な課題は、各開発担当者によって更新された生産物を他の担当者の作業領域に配布・提供することであり、各開発担当者の作業領域に配布・提供される生産物は管理者がリポジトリを一元管理することによって常に最新の状態に維持管理される。
【０００５】
一方、これらの技術とは異なり、各開発担当者の作業領域に取り出された生産物の状態を担当者の側から作業領域の生産物とリポジトリを対比させることで把握する技術がある。
また、プログラム開発において作業の進捗を管理する装置がある。この装置は、各開発担当者の作業内容単位での予定と実績を管理するものである。
また、プログラム開発において、作業の指示や報告をメール機能を用いて支援する装置（特開平９−１６３９１号）がある。
【０００６】
【発明が解決しようとする課題】
ところで、上記公報で開示された構成管理装置を用いたプログラム開発では、複数の開発担当者の作業領域に取り出された生産物は、修正や取り出しを繰り返した結果、それぞれの作業領域でのバージョンが一様でなくなる可能性がある。
【０００７】
また、修正の目的と作業状況が生産物のバージョンに一概に対応しないために、チェックインされた生産物が開発担当者の個人的なバックアップであったり、テスト中のものである場合などがあるため、非開発担当者（管理者）が安全に利用できる状態の生産物であるかをバージョン情報から把握することは困難である。
【０００８】
そのため、自分とは異なった作業領域や全作業領域での生産物の状態と作業状況を把握でき、また作業状況に同期した生産物管理を行えるようにすることが求められている。
【０００９】
例えば、プロジェクト管理者は、全ての開発担当者の使用している生産物のバージョンと状態を把握して、「古いバージョンの生産物を使用していないか」、「不必要な生産物を取り出していないか、また逆に取り出すべき生産物を取り出しているか」、「リリース前の修正中の生産物の有無」の確認などができることにより、分散して存在している生産物の正当性や一貫性を維持することができる。
【００１０】
また、開発担当者側では、他の開発担当者の修正の有無の確認と作業状況と作業目的を確認することができることにより、テストの完了した安全な生産物をリポジトリから取り出し利用することができる。
【００１１】
しかしながら、上記の従来技術にあっては、管理者は各開発担当者がリポジトリを更新するまで各開発担当者の作業領域の状態を把握できないため、管理者は各開発担当者が何の生産物を修正しているか否かを把握することができないという問題がある。
また、各開発担当者の作業領域に取り出された生産物の状態を担当者の側から作業領域の生産物とリポジトリを対比させることで把握する従来技術にあっては、自分の生産物の状態のみが把握できるだけで、特開平９−１６３９１号公報や特開平９−２５８９６６号公報に開示された従来技術と同様、他の開発担当者の作業領域での生産物の状態を把握することができないという問題がある。
【００１２】
一方、大規模なプログラム開発では、管理者から各開発担当者に対する作業指示が膨大になる。そのため、管理者とその指示を受ける開発担当者は、指示の把握、実施、報告を効率的に行わなければならない。また、プログラム開発において、作業と生産物は密接な関係があり、作業内容と生産物の状態を対応させた管理を行う必要がある。
【００１３】
しかしながら、作業の進捗を管理する従来装置や作業の指示や報告をメール機能を用いて支援する従来装置にあっては、作業内容と生産物の状態を対応させた管理や作業の指示や報告を生産物に対応付けて管理することはできないという問題がある。
【００１４】
本発明は、これらの問題を解決するためになされたものであり、その第１の目的は、全ての取り出し先とリポジトリを対比させることで、各開発担当者の作業領域での生産物の状態を一括して把握することができるプログラム開発管理支援装置を提供することである。
【００１５】
本発明の第２の目的は、各開発担当者の生産物に対する作業状況を一元管理されたデータベースに格納し、格納した作業状況の情報とリポジトリ内に格納されている生産物のバージョン情報を利用することによって、生産物のバージョンを管理する生産物管理と生産物に対して行なわれている作業の状況を管理する作業状況管理を融合させたプログラム開発管理を実現できるプログラム開発管理支援装置を提供することである。
【００１６】
本発明の第３の目的は、管理者から各開発担当者に対する作業の指示を、管理者側と開発担当者側で同時に管理し、管理者は作業指示の有無で残作業指示数と作業指示を抱えてる人の状況を把握することができ、資源配分を有効に行うことが可能なプログラム開発管理支援装置を提供することである。
【００１７】
【課題を解決するための手段】
本発明は、上記目的を達成するために、複数のプログラム開発担当者が共有可能なソースコードやドキュメント等の生産物を使用してプログラム開発を行なう場合の管理を支援するプログラム開発管理支援装置において、
前記生産物をディレクトリ構造で格納した生産物格納手段と、各プログラム開発担当者が使用するクライアントコンピュータによって前記生産物格納手段から取り出した生産物を格納する担当者別の作業用格納手段と、各プログラム開発担当者が前記生産物格納手段から取り出した生産物のディレクトリと取り出し先および取り出し先での生産物の状態を生産物単位に格納する状態テーブルと、管理者から指示された時または所定時刻間隔で前記担当者別の作業用格納手段に取り出された生産物の作業状態を収集し、前記状態テーブルに登録する処理と、前記生産物格納手段内の全ての生産物または管理者から指定された生産物について、その取り出し先と作業状態とをディレクトリ構造で表示装置画面に表示させる処理とを行なう生産物管理手段とを備えることを特徴とする。
【００１８】
また、各プログラム開発担当者が前記担当者別の作業用格納手段に格納した生産物の状態と当該生産物に対するプログラム開発担当者の現在の作業状況とを生産物単位に格納する作業状況管理テーブルと、各プログラム開発担当者が使用するクライアントコンピュータからの作業状況通知を受け、該当生産物の状態と作業状況を前記作業状況管理テーブルに登録する処理と、各プログラム開発担当者からの問い合わせ要求に対し、要求された生産物の状態を要求元のプログラム開発担当者が使用するクライアントコンピュータに返信して表示させる処理とを行なう作業状況管理手段とを備えることを特徴とする。
【００１９】
また、管理者のクライアントコンピュータから入力された各プログラム開発担当者宛の作業指示を格納する作業指示格納手段と、この作業指示格納手段に格納された作業指示を該当するプログラム開発担当者が使用するクライアントコンピュータに送信する処理と、管理者またはプログラム開発担当者のクライアントコンピュータからの要求に応じて、前記作業指示格納手段に格納された作業指示の全てまたは指定されたプログラム開発担当者宛の作業指示の内容と現在の残作業数を含む情報を要求元に返信して表示させる処理とを行なう作業指示管理手段とを備えることを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明の一実施の形態を図を用いて詳細に説明する。
図１は、本発明を適用したプログラム開発管理支援システムの一実施の形態を示すシステム構成図である。
【００２１】
この実施形態のプログラム開発管理支援システムは、管理者が管理するサーバ１０１と、管理者が使用するクライアントコンピュータ１０２と、プロジェクトの開発担当者であるユーザＡ〜Ｃが使用するクライアントコンピュータ１０３〜１０５とから構成されている。但し、ユーザＣが使用するクライアントコンピュータ１０５は、サーバ１０１にネットワーク１０６で接続されたサーバ１０７に接続されている。
【００２２】
管理者が管理するサーバ１０１には、メモリ１０８上に、プログラム開発管理支援装置１０９を構成するプログラムが組み込まれ、また、データとしてリポジトリ１１０、履歴管理情報１１１、作業状況管理情報１１２が格納されるようになっている。ネットワーク１０６で接続されたサーバ１０７のメモリ１１９内にもサーバ１０１と同様のプログラム開発管理支援装置１２０が組み込まれている。
【００２３】
プログラム開発管理支援装置１０９は、生産物管理部１１３、作業状況管理部１１４、作業指示管理部１１５で構成されている。これらの生産物管理部１１３、作業状況管理部１１４、作業指示管理部１１５は、詳しくはプログラムで構成されるものである。サーバ１０７内のプログラム開発管理支援装置１２０も同様に構成されている。
【００２４】
ユーザＡとユーザＢは、サーバ１０１にクライアントコンピュータ１０３，１０４からアクセスできるプロジェクトの開発担当者であり、サーバ１０１の記憶装置内にユーザＡの作業領域１１６とユーザＢの作業領域１１７を有し、リポジトリ１１０から取り出した生産物の格納が可能になっている。また、ユーザＣはネットワーク１０６で接続されたサーバ１０７の記憶装置内にユーザＣの作業領域１１８を有し、リポジトリ１１０から取り出した生産物の格納が可能になっている。ここで、サーバ１０７のようにリポジトリ１１０に直接アクセスできないネットワーク上のコンピュータ（ここではサーバ１０７）が、リポジトリ１１０などのデータへアクセスする場合、または逆に、リポジトリ１１０を持つコンピュータ（ここではサーバ１０１）がネットワーク上のコンピュータ（ここではサーバ１０７）の作業領域をアクセスする場合には、それぞれのコンピュータに組み込まれたプログラム開発管理支援装置１０９、１２０から相手のコンピュータのプログラム開発管理支援装置１２０、１０９にリモート処理を要求して結果を受け取るようになっている。
【００２５】
以上の構成において、まず、生産物管理部１１３の処理の流れを図２〜図９を用いて説明する。
【００２６】
図２は、生産物管理部１１３の処理の流れを示すフローチャート、図３は生産物の取り出し先情報テーブル３０１の構成例、図４は状態データベーステーブル４０１の構成例、図５は作業環境の具体例、図６は本実施形態で用いるステータス記号の意味、図７は生産物の分布状況の表示画面例、図８は生産物の分布状況の解析内容の詳細画面例、図９は生産物の分布状況の詳細画面例を示す図である。
【００２７】
図５に示した作業環境では、サーバ「ｃｅｔ」１０１にローカルなユーザＡ，Ｂである２名の開発担当者「ｎｉｓｈｉ」と「ｓｈｉｎ」、ネットワーク１０６を介してサーバ「ｃｅｔ」１０１にアクセスできるサーバ「ｃｙｇｎｕｓ」１０７上の開発担当者「ｓｕｇａ」が、リポジトリ１１０の「Ｄｏｃ／ｐａｔｅｎｔ／ｖｗ．９２１」から生産物としての「ｎｉｓｉｈｉ．ｍｅｍ」５１０，５１１，５１２を現在時点で取り出している状態を示している。
【００２８】
このような作業環境において、サーバ１０１内のプログラム開発管理支援装置１０９の生産物管理部１１３は、管理者から指示があった時、または予め定めた所定時間間隔毎に、リポジトリ１１０からプロジェクトの各開発担当者「ｎｉｓｈｉ」と「ｓｈｉｎ」および「ｓｕｇａ」の各作業領域１１６、１１７、１１８に取り出された生産物５１０〜５１２の状態を把握するために、履歴管理情報１１１から取り出し先情報を抽出し（ステップ２０１）、図３に示す取り出し先情報テーブル３０１に登録する。ここで、生産物の状態とは、後述の図６で説明するが、例えば、最新、修正中、登録予定、削除予定、古いなど状態のことである。
【００２９】
この取り出し先情報テーブル３０１は、生産物管理部１１３内に設けられるものであり、図３に示すように、生産物の取り出し先サーバ名３０２とそのサーバでのディレクトリ３０３の情報が含まれている。図５の作業環境の例では、取り出し先サーバ名３０２として「ｃｅｔ」と「ｃｙｇｎｕｓ」があり、取り出し先サーバでのディレクトリ３０３にそれぞれ、「／ｐｊ／ｏｏｐｌｕｓ／ｕｓ．ｓｈｉｎ」、「／ｐｊ／ｏｏｐｌｕｓ／ｕｓ．ｎｉｓｈｉ」、「  ／ｐｊ／ｏｏｐｌｕｓ／ｕｓ．ｓｕｇａ」が登録されている。
【００３０】
次に、リポジトリ１１０の全てのディレクトリ構造を解析し、図４に示す状態データベーステーブル４０１に登録する（ステップ２０２）。
【００３１】
状態データベーステーブル４０１は、１テーブルが１ディレクトリおよび１生産物に対応し、ディレクトリの場合にサブディレクトリへのポインタ４０５のデータを持つリポジトリ構造に類似した木構造のデータである。各状態データベーステーブル４０１には、該テーブルがファイル（ｆｉｌｅ）またはディレクトリであるかを示すタイプ４０２、生産物名４０３、リポジトリパス４０４、タイプ４０２がディレクトリの場合にサブディレクトリのテーブルを指すポインタ４０５（複数可）、各取り出し先での生産物のステータス記号４０６、各取り出し先での生産物の詳細ステータス４０７といったデータが含まれる。
【００３２】
図５の例では、タイプ４０２が「ｆｉｌｅ」、生産物名４０３が「ｎｉｓｈｉ．ｍｅｍ」で、リポジトリパス４０４が「Ｄｏｃ／ｐａｔｅｎｔ／ＶＷ．Ｈ９２１」で、ステータス記号４０６が「＝」，「ＬＭ」，「ＮＣ」の３つあり、各ステータスの詳細ステータス４０７にリビジョンが「１．３」で、基準分岐が主系列であることを示す情報が格納されている。ここで、基準分岐とは、リビジョンの推移の流れを枝分かれさせた場合、新しい推移の基準となるリビジョンのことである。また、主系列とは、最初に作られるリビジョンの推移の流れのことである。
この例では、サブディレクトリがないため、サブディレクトリへのポインタ４０５の情報は登録されていない。
【００３３】
なお、ステップ２０２では、状態データベーステーブル４０１の初期化を行なった後、リポジトリ構造の解析を行ない、その解析結果に基づい状態データベーステーブル４０１への登録を行なうが、このステップ２０２の終了段階では、ステータス記号４０６と詳細ステータス４０７は設定されていない。
【００３４】
状態データベーステーブル４０１の初期化とリポジトリ構造の解析とが終了する（ステップ２０２）と、取り出し先情報テーブル３０１を用いて、各取り出し先１．．．ｎでの生産物のステータスを解析する。生産物のステータスとしては、図６に示すような意味６２を持つものがあり、それぞれ対応するコード６１が割当てられている。例えば、「＝」は生産物が最新の状態であること、「ＬＭ」は修正中の状態、「ＬＡ」は登録予定の状態、「ＬＲ」は削除予定の状態、「ＮＰ」は古い状態であることを示すステータスがある。
【００３５】
次に、取り出し先情報テーブル３０１のサーバ名３０２がネットワーク１０６を介してアクセスされるコンピュータであるか否かを判定し（ステップ２０４）、ネットワーク１０６を介してアクセスされるサーバ１０７であった場合、そのサーバ１０７に組み込まれているプログラム開発管理支援装置１２０に対してステータス取得のリモート処理要求を行い、ユーザＣの作業領域１１８に格納されている生産物のステータスを取得する（ステップ２０５）。
【００３６】
次に、取得したステータスを解析する。解析は、処理速度を考慮して、詳細解析を行う場合と行わない場合に分かれる（ステップ２０６）。高速処理を目的とするステータスの解析処理（ステップ２０７）では、取り出し先での生産物のステータスのみを解析し、状態データベーステーブル４０１に登録する（ステップ２０８）。これに対し、高速処理を必要としないステータスの解析処理（ステップ２０９）では、リビジョン番号、基準分岐名などの詳細なデータも解析し、状態データベーステーブル４０１に登録する（ステップ２１０）。ステップ２０７のステータス解析処理では、生産物のステータスを図６で示したコード６１に置き換えてステータス記号４０６へ追加登録する。
【００３７】
なお、図６のステータスコード６１のうち、「最新」というステータスコード「＝」、「“  ”」は、取り出している生産物の状態がリポジトリと全く同じであるという意味である。
また、「修正中」というステータスコード「ＬＭ」は、取り出している生産物のリビジョンはリポジトリに登録されているものと同じだが、生産物の内容が修正されているという意味である。
また、「登録予定」というステータスコード「ＬＡ」は、生産物をリポジトリに登録する予定であるという意味である。
また、「削除予定」というステータスコード「ＬＲ」は、取り出している生産物をリポジトリがら削除する予定であるという意味である。
また、「ここにはない」というステータスコード「ＮＣ」は、その生産物はリポジトリに登録されているが、作業領域に取り出されていないという意味である。
また、「古い＆修正中」というステータスコード「ＮＭ」は、取り出されている生産物のリビジョンは既にリポジトリに登録されているものよりも古く、かつ取り出し先で内容が修正されているという意味である。
また、「古い＆重複修正中」というステータスコード「ＵＣ」は、「古い＆修正中」の状態の生産物をチェックインした結果、取り出されている生産物が、リポジトリに登録されていた最新の内容との差分情報が埋め込まれたものに変更されているという意味である。
また、「削除」というステータスコード「ＡＴ」は、取り出されている生産物が、既にリポジトリと取り出し先から削除されているという意味である。
また、「異常登録」というステータスコード「ＥＩ」は、リポジトリと取り出し先の状態に矛盾があり正しく生産物が登録されていないという意味である。
また、「未登録」というステータスコード「？」は、生産物がまだリポジトリに登録されてなくバージョン管理下に置かれていないでないという意味である。
また、「無関係」というステータスコード「？？」、「−」は、取り出し先のディレクトリが異なるリポジトリと対応している、または取り出し先のディレクトリが存在しないという意味である。
また、「無視」というステータスコード「Ｉ」は、生産物のバージョン管理とは無関係なファイル（リンクファイルやバイナリーファイル等）であるという意味である。
また、「エラー」というステータスコード「ＥＲＲ」は、何らかの原因で解析に失敗したという意味である。
また、「登録」というステータスコード「Ｒ」は、そのディレクトリが、生産物を取り出す時に指定した取り出し先ディレクトリであるという意味である。
また、「削除＆最新」というステータスコード「Ａ＆＝」は、取り出されている生産物が、取り出し先には「最新」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆修正中」というステータスコード「Ａ＆ＬＭ」は、取り出されている生産物が、取り出し先には「修正中」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆登録予定」というステータスコード「Ａ＆ＬＡ」は、取り出されている生産物が、取り出し先には「登録予定」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆削除予定」というステータスコード「Ａ＆ＬＲ」は、取り出されている生産物が、取り出し先には「削除予定」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆古い」というステータスコード「Ａ＆ＮＰ」は、取り出されている生産物が、取り出し先には「最新」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆古い＆修正中」というステータスコード「Ａ＆ＮＭ」は、取り出されている生産物が、取り出し先には「古い＆修正中」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆古い＆重複修正中」というステータスコード「Ａ＆ＵＣ」は、取り出されている生産物が、取り出し先には「古い＆重複修正中」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆異常登録」というステータスコード「Ａ＆ＥＩ」は、取り出されている生産物が、取り出し先には「異常登録」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
また、「削除＆未登録」というステータスコード「Ａ＆？」は、取り出されている生産物が、取り出し先には「未登録」の状態で存在するが、他のユーザによって既にリポジトリからは削除されているという意味である。
図７は、図５で例示した作業環境において、ステータスの解析処理（ステップ２０７）によって得られるデータを用いて表された生産物の分布状況の表示画面７０１の例を示す図であり、リポジトリ１１０の構造が、状態データベーステーブル４０１を用いて視覚的に表現され、リポジトリ１１０に登録されている生産物名の下に各取り出し先でのステータスが一括して表示されている。
【００３８】
図７の例では、４個の生産物「ｎｉｓｈｉ．ｍｅｍ」７０２、「ｓｕｇａ．ｍｅｍ」７０３、「ｔｏｋ．ｍｅｍ」７０４、「ｔｏｋ  ｍｅｉｓａｉ．ｆｍｔ」７０５が取り出し先でのステータスと共に表示されている。すなわち、生産物「ｎｉｓｈｉ．ｍｅｍ」７０２については、「＝  ＬＭ  ＮＣ」の３つのステータスが表示されている。３つのステータスが表示されているということは、３つの取り出し先に取り出されていることを意味している。そして、それぞれの取り出し先での状態は、最新（＝）、修正中（ＬＭ）、ここにはない（ＮＣ）であることを示している。また、生産物「ｓｕｇａ．ｍｅｍ」７０３については、「＝  ＝  ＮＣ」の３つのステータスが表示され、３つの取り出し先に取り出されていることを示している。そして、それぞれの取り出し先での状態は、最新（＝）、最新（＝）、ここにはない（ＮＣ）であることを示している。また、生産物「ｔｏｋ．ｍｅｍ」７０４については、「＝  ＝  ＮＰ」の３つのステータスが表示され、３つの取り出し先に取り出されていることを示している。そして、それぞれの取り出し先での状態は、最新（＝）、最新（＝）、古い（ＮＰ）であることを示している。この「ｔｏｋ．ｍｅｍ」７０４の３番目の取り出し先では、ステータスが「古い」になっていることから、古いバージョンの生産物が使用されていることが分かる。また、生産物「ｔｏｋ  ｍｅｉｓａｉ．ｆｍｔ」７０５については、「＝  ＝  ＝」の３つのステータスが表示され、３つの取り出し先に取り出されていることを示している。そして、それぞれの取り出し先での状態は、最新（＝）、最新（＝）、最新（＝）であることを示している。
【００３９】
以上の表示状態において、各生産物についての詳細な解析情報を知りたい場合は、詳細解析情報を知りたいファイルをマウスクリック操作によって選択すると、選択した生産物に関する詳細解析が行われる。例えば、生産物「ｎｉｓｈｉ．ｍｅｍ」７０２の詳細解析情報を知りたい場合は、生産物「ｎｉｓｈｉ．ｍｅｍ」７０２の表示位置をマウスクリック操作によって選択すると、生産物管理部１１３は、その指定生産物「ｎｉｓｈｉ．ｍｅｍ」７０２についてリビジョン番号、基準分岐名などの解析を行なう（ステップ２０９）。そして、その詳細解析処理によって得られた情報を一つの文字列として状態データベーステーブル４０１の詳細ステータス４０７に追加登録した後、図８に示すような生産物分布状況（詳細）画面８０１に生産物の詳細解析結果を表示する。
【００４０】
図８の生産物分布状況（詳細）画面８０１では、指定生産物「ｎｉｓｈｉ．ｍｅｍ」７０２の各取り出し先でのステータス記号（＝，ＬＭ，ＮＣ）と共に、リビジョン番号（１．３）、サイズ、分岐名、修正日時が表示されている。
【００４１】
また、図７で示した生産物分布状況表示画面７０１において、例えばディレクトリ名「Ｄｏｃ／」をマウスクリック操作によって選択して解析ボタン７０６が操作されると、生産物管理部１１３は、選択されたディレクトリ「Ｄｏｃ／」下に属する全ての生産物のステータスを再帰的に解析し、ステータスが「最新」でない取り出し先があれば、ディレクトリの単位にディレクトリ名の右に「×」マーク７１１を付け、全て最新なら「○」マーク７１０を付けて表示する。さらに、「×」マーク７１１が付けられたディレクトリ名を選択して詳細ボタン７０７が操作されると、解析内容詳細表示画面７０８を開き、指定されたディレクトリ下の全ての生産物のステータス記号毎の個数と、ステータスが「最新」でない生産物の一覧を表示する。解析内容詳細表示画面７０８の拡大図を図９に示す。
【００４２】
このように、ステータスが「最新」でない生産物について、「×」マーク７１１をディレクトリ名の近傍に表示することにより、「最新」でない生産物がどれであるかを極めて容易に把握することができる。
【００４３】
なお、図８の生産物の分布状況詳細画面８０１において、生産物参照ボタン８０２をマウスクリック操作によって操作すると、指定生産物のそれぞれの取り出し先での内容を参照することができる。
また、ステータス参照ボタン８０３をマウスクリック操作によって操作すると、指定生産物のステータス情報を参照することができる。
また、ログ参照ボタン８０４をマウスクリック操作によって操作すると、指定生産物のログ情報を参照することができる。
また、差分参照ボタン８０５をマウスクリック操作によって操作すると、指定生産物のそれぞれの取り出し先での内容を比較した差分情報を参照することができる。
また、分岐参照ボタン８０６をマウスクリック操作によって操作すると、指定生産物の現在のリビジョンの推移の分岐状態を参照することができる。
【００４４】
図１０は、作業状況管理部１０６の処理と開発担当者の作業の流れを示すフローチャートである。
開発担当者（ユーザＡ，Ｂ）は、クライアントコンピュータ１０３、１０４を使用し、それぞれの作業領域１１６、１１７に取り出した生産物を修正する前やテストする前に、プログラム開発管理支援装置１０９に対し、これから実施する作業状況について記録するための通知を行う（ステップ１００１）。
【００４５】
この作業状況の通知を受け取った作業状況管理部１１４は、図１１に示すように構成された作業状況管理テーブル１１０１の作業状況管理情報１１２を更新する（ステップ１００２）。作業状況テーブル１１０１には、テーブルの通し番号であるＩＤ番号１１０２、作業状況を記録する生産物名１１０３があり、新しく作業状況が通知されて該テーブル１１０１が更新される度に、通知した担当者名１１０４、通知日時１１０５、作業状況を表した作業状況コード１１０６、作業に関するコメント１１０６が追記される。このステップ１００２の更新処理については、後で詳細に説明する。
【００４６】
ここで、作業状況コード１１０６は、図１２に示すように、「コーディング中」、「テスト中」、「テスト完了」、「バグ修正中」などの作業状況単位に「１」、「２」、「３」、「４」…といった数値コードが割当てられている。作業状況とは、作業中に発生する状態のことである。
【００４７】
ステップ１００１で作業状況通知を行った開発担当者は、作業状況管理テーブル１００１の更新処理（ステップ１００２）が完了したことを確認した後、通知した作業を実施する（ステップ１００３）。そして、開発担当者は通知した作業が完了すると、作業状況管理テーブル１１０１に作業が完了したことを記録するための作業完了通知を行なう（ステップ１００４）。作業完了通知を受け取った作業状況管理部１１４は、作業が完了したことを示すデータを含んだレコードを作業状況管理テーブル１１０１に追加登録する。
【００４８】
作業が完了した生産物を共有して使用している他の開発担当者は、作業状況管理テーブル１１０１を参照し（ステップ１００５）、使用予定の生産物に対するテストが完了していて、安全に使用できることを確認してから、各自の作業領域に生産物を取り出す（ステップ１００６）。
【００４９】
図１３は、図１０の作業状況管理テーブル１１０１の更新処理（ステップ１００２）の詳細を示すフローチャートである。
作業状況管理部１１４は、各開発担当者（ユーザＡ，Ｂ，Ｃ）によって通知された生産物の作業状況管理テーブル１１０１が作業状況管理情報１１２の記憶装置内に存在するかを調べるためにテーブル検索を行う（ステップ１３０１）。作業状況テーブル１１０１が存在する場合（ステップ１３０２）、作業状況テーブル１１０１の最終レコードの作業状況コード１１０６と担当者名１１０４からその生産物を他の開発担当者が使っているか否かを調べる（ステップ１３０３）。他の開発担当者が作業中の場合（ステップ１３０３）は、通知した開発担当者は作業を行えないので、作業状況の更新を失敗とする（ステップ１３０４）。しかし、他の開発担当者が作業中でない場合は、作業状況管理テーブル１１０１に対し、通知した開発担当者名１１０４、通知日時１１０５、作業状況コード１１０６、コメント１１０７を追加登録する（ステップ１３０６）。
【００５０】
ステップ１３０２で作業状況テーブル１１０１が存在しない場合、作業状況管理情報１１０の記憶装置内に新規に作業状況テーブル１１０１を作成し（ステップ１３０５）して、ＩＤ番号１１０２と生産物名１１０３を、新規に作成した作業状況テーブル１１０１に記録する。そして、通知した開発担当者名１１０４と通知日時１１０５、作業状況コード１１０６、コメント１１０７を追加記録し（ステップ１３０６）、更新を完了する。
【００５１】
図１４は、作業状況表示画面１４０１の例を示す図であり、「バグ修正中」などの作業状況、担当者、通知日、ファイル名、サイズ、属性、最終変更日時等の項目が表示される。
【００５２】
次に、作業指示管理部１１５の処理について説明する。
図１５は、作業指示管理部１１５の処理と管理者および開発担当者の作業の流れを示すフローチャート、図１６は作業指示状況表示画面１６０１、図１７は作業指示詳細表示画面１７０１の例を示した図である。
【００５３】
図１６の作業指示状況表示画面１６０１には、作業指示コード１６０２、作業担当者１６０３、作業指示日１６０４、作業状況１６０５、完了作業指示数１６０６、未完了作業指示数１６０７が表示されるようになっている。
【００５４】
また、図１７の作業指示詳細画面１７０１には、作業指示欄１７１０中に、作業指示コード１７０２、作業指示日１７０３、指示を受ける作業担当者１７０４、指示内容１７０５、関連事項の記述欄１７０６、作業完了日の記入欄１７０７が表示されるようになっている。  図１５において、まず管理者は、クライアントコンピュータ１０２を使用して図１７に示したような内容の項目を有する作業指示欄１７１０を作成して、リポジトリ１１０内の作業指示格納領域に格納する（ステップ１５０１）。作業指示がリポジトリ１１０内の作業指示格納領域に格納されると、作業指示管理部１１５は、作業指示内の「指示担当者」１７０４で指定された開発担当者に対しメールによって作業指示を送付する（ステップ１５０２）。この送付された作業指示は各開発担当者の作業領域１１６，１１７，１１８に格納される（ステップ１５０３）。図１７の例では、指示担当者として「ｎｉｓｈｉ」が指定されているので、ユーザＡである「ｎｉｓｈｉ」の作業領域１１６に格納される。
【００５５】
この状態で、必要があれば、管理者または開発担当者は、リポジトリ１１０内の作業指示格納領域に格納された全ての開発担当者または指定した開発担当者への作業指示の内容を図１６に示す作業指示状況表示画面１６０１に表示させ、未完了作業指示数１６０７により、残作業指示数を把握する（ステップ１５０４）。なお、作業指示状況表示画面１６０１中の詳細ボタン１６０８をマウス操作によって選択すると、図１７に示す作業指示詳細画面１７０１が表示され、作業指示の詳細内容を確認することができる。更に、必要があれば、プロジェクトのメンバを指定して、指定のメンバの抱えている作業指示の状況のみを表示することもできるようになっている。
【００５６】
開発担当者は、管理者からの作業指示に従ってソース・ドキュメント等の生産物を新規作成または変更するなどの作業を実施する（ステップ１５０５）。作業が完了して、生産物をリポジトリ１１０にチェックインする際に、ログ記入欄への入力を、表示された作業指示状況表示画面１６０１から参照して行う（ステップ１５０６）。
【００５７】
図１８は、作業指示状況表示画面１６０１から作業指示を選択してログ記入欄に記入する例を示した図である。
図１６に示した作業指示状況表示画面１６０１の中で該当する作業指示コード１６０２を選択すると、図１８に示す生産物のチェックイン画面１８０１が表示され、その作業指示内容がログ記入欄１８０２に設定される。管理者は、生産物が更新されている場合に、そのログ記入欄１８０２のログ情報を参照することにより、何のために新規作成または変更されたかを把握することができる。
【００５８】
開発担当者側の作業領域に格納されていた作業指示は、作業指示に対応する生産物をチェックインした段階で削除される（ステップ１５０７）。作業指示の削除の後、管理者側に作業が完了したことが通知させる（ステップ１５０８）。
【００５９】
作業完了が通知されると、管理者側の作業指示格納領域の該当する作業指示に作業が完了したことが記録される（ステップ１５０９）。そして、残作業件数が１件減算される。
なお、図１８の指示参照ボタン１８０３をマウス操作によって選択すると、図１９（ａ）に示すような作業指示一覧１９０１が表示される。そして、この作業指示一覧１９０１中の作業指示コード１９０３をマウス操作によって選択すると、図１９（ｂ）に示すような作業指示の詳細内容が表示される。
【００６０】
以上のように本実施形態によれば、分散した作業領域での生産物の状態と作業状況を一括して把握できる作業状況に対応させた生産物管理を行うことができるため、管理者には開発担当者の作業の進捗状況の効率的な管理を支援することができ、開発担当者には安全性が保証されたファイルを容易に識別できる。
【００６１】
また、作業の指示と報告を生産物に対応させて管理できるため、管理者と開発担当者のそれぞれで、作業指示の実施状況の効率的な管理を支援し、資源の有効活用を支援することができる。
【００６２】
【発明の効果】
以上の説明のように、本発明によれば、全ての取り出し先とリポジトリを対比させることで、各開発担当者の作業領域での生産物の状態を一括して把握することができる。
【００６３】
また、各開発担当者の生産物に対する作業状況を一元管理されたテーブルに格納し、その格納した作業状況の情報とリポジトリ内に格納されている生産物のバージョン情報を利用することによって、生産物のバージョンを管理する生産物管理と生産物に対して行なわれている作業の状況を管理する作業状況管理を融合させたプログラム開発管理を実現することができる。
【００６４】
さらに、管理者から各開発担当者に対する作業の指示を、管理者側と開発担当者側で同時に管理し、管理者は作業指示の有無で残作業指示数と作業指示を抱えてる人の状況を把握することができ、資源配分を有効に行うことが可能に成るなどの効果がある。
【図面の簡単な説明】
【図１】本発明を適用したプログラム開発管理支援システムの一実施の形態を示すシステム構成図である。
【図２】生産物管理部の処理を示すフローチャートである。
【図３】生産物の取り出し先情報テーブルの構成図である。
【図４】状態データベーステーブルの構成図である。
【図５】作業環境の具体例を示す図である。
【図６】図１の実施形態で用いるステータス記号の意味を示す説明図である
【図７】生産物の分布状況の表示画面例を示す図である。
【図８】生産物の分布状況の解析内容の詳細画面例を示す図である。
【図９】生産物の分布状況の詳細画面例を示す図である。
【図１０】作業状況管理部の処理と開発担当者の作業の流れを示すフローチャートである。
【図１１】作業状況管理テーブルの構成例を示す図である。
【図１２】作業状況コードの例を示す説明図である。
【図１３】作業状況管理テーブルの更新処理の詳細を示すフローチャートである。
【図１４】作業状況表示画面の一例を示す図である。
【図１５】作業指示管理部の処理と管理者および開発担当者の作業の流れを示すフローチャートである。
【図１６】作業指示状況表示画面の一例を示す図である。
【図１７】作業指示詳細画面の一例を示す図である。
【図１８】作業指示状況表示画面にログを記入する例を示す図である。
【図１９】作業指示一覧画面の一例を示す図である。
【符号の説明】
１０１，１０７…サーバ、１０２〜１０５…クライアントコンピュータ、１０６…ネットワーク、１０８…メモリ、１０９…プログラム開発管理装置、１１０…リポジトリ、１１１…履歴管理情報、１１２…作業状況管理情報、１１３…生産物管理部、１１４…作業状況管理部、１１５…作業指示管理部、３０１…生産物の取り出し先情報テーブル、４０１…状態データベーステーブル、７０１…生産物の分布状況表示画面、１６０１…作業指示状況表示画面。
【図１】
0003611178.tif 000002
【図２】
0003611178.tif 000003
【図３】
0003611178.tif 000004
【図４】
0003611178.tif 000005
【図５】
0003611178.tif 000006
【図６】
0003611178.tif 000007
【図７】
0003611178.tif 000008
【図８】
0003611178.tif 000009
【図９】
0003611178.tif 000010
【図１０】
0003611178.tif 000011
【図１１】
0003611178.tif 000012
【図１２】
0003611178.tif 000013
【図１３】
0003611178.tif 000014
【図１４】
0003611178.tif 000015
【図１５】
0003611178.tif 000016
【図１６】
0003611178.tif 000017
【図１７】
0003611178.tif 000018
【図１８】
0003611178.tif 000019
【図１９】
0003611178.tif 000020