(57)【要約】【課題】開発者間で共通に使用するプログラムのソースコード・モジュール・ライブラリなどの機能が未実装でも、あるいは、開発中の機能をプロジェクトメンバーに公開または隠蔽後に変更したとしても、全体のプロジェクトに対し、コンパイルが不可能な状態になるなどの影響を回避することができるプログラム開発支援システムを提供する。【解決手段】動作不良が発生する機能や仕様漏れなどがあった状態で機能を作成した場合、プロトタイプ生成部９２がそれに代わる仮想の機能を生成することができるため、複数人でソフトウェア開発をする上で課題となるソースコードの管理や機能修正によるソースコードの大幅な変更、仕様の不明確な個所について仮実装が可能となり、開発の利便性の高くなる。【選択図】図３
2007213203.tif 000002
【特許請求の範囲】
【請求項１】
サーバと複数のクライアントとがネットワークを介して接続されている環境にて、複数の開発者が前記クライアントを使用して共同でプログラムの開発を行うためのプログラム開発支援システムにおいて、
前記クライアントは、別の開発者が作成して自身のプロジェクトに追加した機能を仮想的に構築する場合のプロトタイプまたは前記プロジェクトに追加した機能が隠蔽されたときに隠蔽前と同じ条件で使用できるようにするためのプロトタイプを生成するプロトタイプ生成手段と、作成した機能を他の開発者に対して公開または隠蔽する設定を行う機能公開・隠蔽手段とを有するタイムポイント機能を備え、
前記サーバは、前記クライアントからプロジェクト情報を前記ネットワークを介して収集し、収集した前記プロジェクト情報を管理し、新規に作成された公開の機能を収集した場合は前記ネットワークを介して前記クライアントへ新着情報として配信するデータ収集管理機能を備えていることを特徴とするプログラム開発支援システム。
【請求項２】
前記タイムポイント機能は、前記プロジェクトに追加された機能および仮想的に追加された未実装機能を階層的に表示するプロジェクト情報表示手段を有していることを特徴とする請求項１記載のプログラム開発支援システム。
【請求項３】
前記タイムポイント機能は、仮想的に追加された未実装機能を実機能へ置き換えたときに、前記プロジェクトに追加されている機能に対して動作テストを実行するコネクションマッチテスト手段を有していることを特徴とする請求項１記載のプログラム開発支援システム。
【請求項４】
前記機能は、前記プログラムのソースコード、モジュール、ライブラリであることを特徴とする請求項１記載のプログラム開発支援システム。
【請求項５】
前記データ収集管理機能は、前記クライアントから収集した機能に関する情報をプロジェクトマネージャで管理するようにしたことを特徴とする請求項１記載のプログラム開発支援システム。
【請求項６】
サーバのコンピュータに、
クライアントからプロジェクト情報をネットワークを介して収集し、収集した前記プロジェクト情報を管理し、新規に作成された公開の機能を収集した場合は前記ネットワークを介して前記クライアントへ新着情報として配信するデータ収集管理機能を実行させるためのプログラム。
【請求項７】
クライアントのコンピュータに、
自身のプロジェクトに追加された機能および仮想的に追加された未実装機能を階層的に表示するプロジェクト情報表示手段、
別の開発者が作成して前記プロジェクトに追加した機能を仮想的に構築する場合のプロトタイプまたは前記プロジェクトに追加した機能が隠蔽されたときに隠蔽前と同じ条件で使用できるようにするためのプロトタイプを生成するプロトタイプ生成手段、
作成した機能を他の開発者に対して公開または隠蔽する設定を行う機能公開・隠蔽手段、
前記プロジェクトに仮想的に追加された前記未実装機能を実機能へ置き換えたときに、前記プロジェクトに追加されている機能に対して動作テストを実行するコネクションマッチテスト手段、
として機能させるタイムポイント機能を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム開発支援システムに関し、特にネットワークに接続されているコンピュータを使用して複数人で行うプログラムの開発を支援するプログラム開発支援システムに関する。
【背景技術】
【０００２】
プログラムは、多くのソースコード・モジュール・ライブラリ（以下、単に機能と呼ぶことがある）によって構成され、これらはプログラムの規模が大きくなれば、一般に複数の開発者により分担して開発されることが行われている。
【０００３】
複数の開発者が共同で開発している場合、開発者間の進捗状況に差があったり、作成された機能に不具合があったりすると、開発に時間がかかってしまうことがある。それ以外にも、開発方法によっては、同じ作業を繰り返すことで無駄な時間を必要とする場合がある。
【０００４】
たとえば、複数フェーズからなるプログラムを解析する場合、通常は、これらの一連のフェーズを一度に実行するようにしている。このため、特定のフェーズのみ機能の修正を行った場合においても、解析は、最初のフェーズから同じように行われ、機能修正のないフェーズにおいても再解析が行われることになる。そこで、プログラム解析情報をフェーズ単位で管理するようにして、修正のないフェーズにおける不要な解析処理時間の無駄を無くし、効率の良い開発を支援するシステムがある（たとえば、特許文献１参照。）。
【０００５】
また、公開された機能とそれを参照する機能とがあって、公開側の機能に関する情報を別途公開情報として定義している場合、開発者はその定義を参照しながら参照側の機能の開発を行うことになる。しかし、公開された機能が変更された場合、それを参照する機能において、それぞれの処理に整合性がとれなくなることがある。このため、公開された機能とこれを参照する機能とを検索し、その参照関係を監視して、変更があれば公開情報を更新することで、両機能における処理の整合性を保持するために人が行う作業量を低減するようにしたシステムもある（たとえば、特許文献２参照。）。
【特許文献１】特開平１０−２７５０７６号公報
【特許文献２】特開２００４−３６２０４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１における開発支援システムでは、複数の開発者が作業を同時進行している状況下において、誰が、今、どのような機能を作成しているか、また、離れている場所で作業をしている場合など、リアルタイムにその情報を知る術がないため、二度手間になるなど、かえって開発者への負担が増す可能性が高くなるという問題点があった。
【０００７】
また、特許文献２に記載の開発支援システムでは、プログラムのソースコードまたはモジュールの機能に不具合や機能漏れが発生している状態で、他の開発者がその機能を参照してしまっている場合には、参照している機能の修正を待たなければいけない場合があり、開発工程に影響が出てくる可能性がある。しかも、ネットワークを使用した形態を考慮していないため、ローカル環境でしか使用できず、機能が、一度、公開されて他の機能に参照されてしまえば、公開を取り消すことができないという問題点もあった。
【０００８】
本発明はこのような点に鑑みてなされたものであり、開発者間の情報を共有でき、共通に使用するプログラムのソースコード・モジュール・ライブラリなどの機能が未実装でも、あるいは、開発中の機能をプロジェクトメンバーに公開または隠蔽した後に変更したとしても、全体のプロジェクトに対し、コンパイルが不可能な状態になるなどの影響を回避することができるプログラム開発支援システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明では上記問題を解決するために、サーバと複数のクライアントとがネットワークを介して接続されている環境にて、複数の開発者が前記クライアントを使用して共同でプログラムの開発を行うためのプログラム開発支援システムにおいて、前記クライアントは、別の開発者が作成して自身のプロジェクトに追加した機能を仮想的に構築する場合のプロトタイプまたは前記プロジェクトに追加した機能が隠蔽されたときに隠蔽前と同じ条件で使用できるようにするためのプロトタイプを生成するプロトタイプ生成手段と、作成した機能を他の開発者に対して公開または隠蔽する設定を行う機能公開・隠蔽手段とを有するタイムポイント機能を備え、前記サーバは、前記クライアントからプロジェクト情報を前記ネットワークを介して収集し、収集した前記プロジェクト情報を管理し、新規に作成された公開の機能を収集した場合は前記ネットワークを介して前記クライアントへ新着情報として配信するデータ収集管理機能を備えていることを特徴とするプログラム開発支援システムが提供される。
【００１０】
このようなプログラム開発支援システムによれば、仮想的な機能であるプロトタイプを生成するプロトタイプ生成手段を有していることにより、機能修正によるソースコードの大幅な変更、仕様の不明確な個所について仮実装が行え、動作不良が発生する機能や仕様漏れなどがあった状態でプロジェクトに追加した機能が機能公開・隠蔽手段により公開から隠蔽に変更されたとしても、全体のプロジェクトに対する影響を回避することができる。
【発明の効果】
【００１１】
本発明のプログラム開発支援システムは、複数の開発者が作業するクライアントと、各開発者の開発した機能を集中管理するサーバとの構成にしたので、開発者間の情報をリアルタイムに共有することができ、クライアントには、開発者間で共通に使用する機能に不具合や機能漏れが発生している状態でもそれに代わる仮想機能であるプロトタイプを自身のプロジェクト内に生成できるので、複数人でソフトウェア開発をする上で課題となるソースコードの管理や機能修正によるソースコードの大幅な変更、仕様の不明確な個所について仮実装を行うことができ、開発の利便性が高くなるという利点がある。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図１はプログラム開発支援システムの構成例を示すシステム構成図である。
プログラム開発支援システムは、情報の管理を行うサーバ１０と、複数の開発者がそれぞれ使用する複数のクライアント２０，３０，４０と、サーバ１０およびクライアント２０，３０，４０を接続するネットワーク５０とを備えている。また、この構成例では、クライアント２０は、別のネットワーク６０を介して複数のクライアント２１，２２に接続され、クライアント３０，４０についても、それぞれ別のネットワークを介して多くのクライアントが接続され得ることを示している。
【００１３】
サーバ１０は、複数の開発者が携わっているプロジェクト情報を管理するためのソフトウェアであるデータ収集管理機能がインストールされているコンピュータであり、クライアント２０，２１，２２，３０，４０は、そのプロジェクト情報を使用するためのソフトウェアであるタイムポイント機能がインストールされているパーソナルコンピュータである。また、サーバ１０が管理しているプロジェクト情報は、ネットワークに接続されている図示しないコンピュータより、専用のモニタやＷｅｂブラウザを利用することで閲覧をすることができる。なお、コンピュータ間の通信手段は、無線あるいは有線で接続されている。
【００１４】
図２はサーバまたはクライアントのハードウェア構成例を示す図である。
サーバ１０またはクライアント２０，２１，２２，３０，４０を構成するコンピュータ７０は、ＣＰＵ（Central Processing Unit）７１と、ＲＯＭ（Read Only Memory）７２と、ＲＡＭ（Random Access Memory）７３と、ディスプレイアダプタ７４と、ハードディスク７５と、入出力インタフェース７６と、ネットワークアダプタ７７とを有し、これらはバス７８によって相互に接続されている。ＣＰＵ７１は、このコンピュータ７０の全体の制御を司り、ＲＯＭ７２は、ハードディスク７５、ディスプレイアダプタ７４などの周辺機器を制御するプログラムなどを格納し、ＲＡＭ７３は、ＯＳ（Operating System）の一部、実行中のアプリケーションソフトウェア、演算途中のデータなどが記憶される。ディスプレイアダプタ７４は、モニタ８１に接続され、ハードディスク７５には、ＯＳ、アプリケーションソフトウェアなどが格納され、入出力インタフェース７６は、キーボード８２、マウス８３などが接続され、ネットワークアダプタ７７は、ＬＡＮ（Local Area Network）などのネットワークに接続されている。ハードディスク７５に格納されているアプリケーションソフトウェアには、プログラム開発支援のためのタイムポイント機能、データ収集管理機能などのソフトウェア、テキストエディタ、コンパイラなどのソフトウェア開発用のソフトウェアなどを含んでいる。
【００１５】
図３はクライアントの機能ブロック図である。
クライアント２０，２１，２２，３０，４０には、プログラム開発者側のプログラム開発ソフトウェアがインストールされていて、その一部のソフトウェアがタイムポイント機能９０である。このタイムポイント機能９０は、プロジェクト情報表示部９１と、プロトタイプ生成部９２と、機能公開・隠蔽部９３と、コネクションマッチテスト部９４とを有している。
【００１６】
プロジェクト情報表示部９１は、ソースコード、モジュール、ライブラリ、および、仮想機能などのプロジェクト情報を階層的に表示する機能を有し、プロトタイプ生成部９２は、開発途中で隠蔽された機能を隠蔽前と同じ条件で使用できるようにするためのプロトタイプまたはプロジェクトに追加した機能をたとえばソースコードの大幅な変更や仕様の不明確な部分について仮に実装しておく場合に未実装機能とするときのプロトタイプを生成する機能を有し、機能公開・隠蔽部９３は、ソースコード、モジュール、ライブラリなどの機能を他の開発者に対して公開または隠蔽する機能を有し、コネクションマッチテスト部９４は、仮想機能から実機能へと置き換えたときに、機能に対して自動的にテストを行う機能を有している。
【００１７】
図４はサーバの機能ブロック図である。
サーバ１０は、タイムポイント機能９０がインストールされている複数のクライアント２０，２１，２２，３０，４０からプロジェクト情報（各種データ）を定期的に収集・管理するソフトウェアであるデータ収集管理機能１００を備えている。このデータ収集管理機能１００が管理する管理データとしては、履歴情報、仮想機能情報、公開・隠蔽情報、ソースコード、モジュール、ライブラリなどのプログラム情報、パーティション情報、ネットワーク情報などである。
【００１８】
次に、クライアント２０，２１，２２，３０，４０の動作について説明する。
図５はクライアントのタイムポイント機能の処理の流れを示すフローチャート、図６は公開・隠蔽変更処理の流れを示すフローチャート、図７はクラス・メソッド関連のユーザインタフェースを示す図、図８はデータの生成関連のユーザインタフェースを示す図である。
【００１９】
まず、プログラムの開発をするとき、開発者は、ネットワーク５０，６０上に接続されているクライアント２０，２１，２２，３０，４０によりサーバ１０に対してログインを行うので、図５に示すように、タイムポイント機能９０は、サーバ１０にログイン中か否かを判断し（ステップＳ１）、ログイン中でなければ、この処理は終了する。なお、ログインが行われると、サーバ１０のデータ収集管理機能１００は、どのクライアントからのログインなのかをチェックし、その結果を情報として保持しており、その後は、タイムポイント機能９０からの作業データを周期的に取得する。
【００２０】
サーバ１０にログイン後、タイムポイント機能９０は、開発者からの指示が「新規プロジェクト作成」であるか否かを判断する（ステップＳ２）。「新規プロジェクト作成」であれば、開発者が新規に管理したいプロジェクトを作成することによってサーバ１０側で管理するプロジェクト情報を生成する（ステップＳ３）。「新規プロジェクト作成」でなければ、あらかじめ作成されたプロジェクトの編集を行う「既存プロジェクト編集」であるか否かを判断し（ステップＳ４）、「既存プロジェクト編集」でなければ、この処理は終了する。
【００２１】
次に、プロジェクトで新規に管理する機能（ソースコード）の追加があるか否かが判断され（ステップＳ５）、新規機能の追加があれば、ソースコードの追加を行い（ステップＳ６）、そのソースコードを他の開発者に対して公開するのか隠蔽するのかを設定をする（ステップＳ７）。新規機能の追加がなければ、プロジェクトに追加されている機能に対して公開・隠蔽の変更処理を行うか否かが判断される（ステップＳ８）。
【００２２】
ここで、公開・隠蔽の変更処理を行う場合（ステップＳ９）、図６に示すように、その変更処理は、公開から隠蔽への変更処理であるか否かが判断される（ステップＳ９１）。公開から隠蔽への変更処理である場合には、プロトタイプの生成処理を行ってから（ステップＳ９２）、機能の隠蔽への変更処理を行い（ステップＳ９３）、そうでなければ、直接、機能の公開への変更処理を行う（ステップＳ９４）。これは、機能の隠蔽から公開への変更に関しては、問題はないが、公開から隠蔽への逆の変更の場合、他の開発者側のプロジェクトで、その機能を使用している可能性があり、隠蔽してしまうとコンパイル・実行形式などのファイル生成ができなくなる可能性があるからである。そのため、機能の設定情報を公開から隠蔽に変更する場合には、サーバ１０側で保持しているデータを使用して、他のプロジェクトでその機能が使用されているかをチェックした後、隠蔽された機能と同等のプロトタイプを生成して、隠蔽される前と同じ条件で使用できるようにし、これによって、他のプロジェクトで使用されている環境に対して影響を与えないようにしている。
【００２３】
図５に戻って、次に、タイムポイント機能９０は、プロジェクトに追加した機能を未実装機能とする場合のプロトタイプを生成するか否かを判断し（ステップＳ１０）、プロトタイプを生成しない場合には、開発者が作成した機能がそのままプロジェクトに登録される（ステップＳ１１）。追加した機能のプロトタイプを生成する場合には、プロトタイプを自動生成するための各種データの設定を行い（ステップＳ１２）、プロトタイプ機能を自動生成する（ステップＳ１３）。ここで、プロトタイプを自動生成するための各種データの設定は、ユーザインタフェースを使用して構築する。たとえば、クラス・メソッド関連の各種データの設定は、図７に示した未実装機能を生成するためのクラス作成ダイアログ１１０を表示させ、クラス名、メソッド名、パラメータ（引数情報）、入力データおよび出力データを開発者に入力してもらい、データの生成関連の各種データの設定は、図８に示した未実装機能を生成するためのデータ設定ダイアログ１２０を表示させ、入力情報および出力情報などを開発者に入力してもらうことによって各種データの設定を行うことになる。
【００２４】
次に、新規または編集中のソースコードが存在するか否かを判断する（ステップＳ１４）。機能の新規追加または編集により既存のプロジェクトの内容に変更が生じた場合は、サーバ１０とのコネクションが確立しているか否かが判断され（ステップＳ１５）、サーバ１０とのコネクションが確認されると、サーバ１０側にすべてのデータをアップし（ステップＳ１６）、そのアップロードが成功したか否かが判断される（ステップＳ１７）。アップロード処理が成功していない場合には、再アップロードするか否かが判断され（ステップＳ１８）、再アップロードする場合には、ステップＳ１５に戻る。ステップＳ１７において、アップロードが成功した場合、およびステップＳ１８において、再アップロードしない場合には、新機能の追加をチェックするステップＳ５に戻る。また、ステップＳ１５において、サーバ１０とのコネクションを確認することができない場合は、再接続を試み（ステップＳ１９）、この再接続は、サーバ１０とのコネクションが確認されるまで、繰り返される（ステップＳ２０）。なお、ステップＳ１４において、既存のプロジェクトの内容に変更がなければ、新機能の追加をチェックするステップＳ５に戻る。
【００２５】
次に、サーバ１０の動作について説明する。
図９はサーバのデータ収集管理機能の処理の流れを示すフローチャートである。
データ収集管理機能１００は、まず、開発者のクライアント２０，２１，２２，３０，４０がログイン中か否かを判断し（ステップＳ２１）、ログイン中でなければ、この処理を終了する。ログイン中ならば、その開発者が新規プロジェクトを作成したか否かが判断され（ステップＳ２２）、新規プロジェクトを作成した場合には、新規プロジェクトが生成される（ステップＳ２３）。新規プロジェクトを作成していない場合には、あらかじめ作成されたプロジェクトの編集を行う「既存プロジェクト編集」であるか否かを判断し（ステップＳ２４）、「既存プロジェクト編集」でなければ、この処理は終了する。
【００２６】
次に、データ収集管理機能１００は、開発者のクライアント２０，２１，２２，３０，４０からプロトタイプ生成、公開・隠蔽設定、機能の追加処理などに関する情報の転送要求が来ているか否かを判断する（ステップＳ２５）。情報の転送要求が来ていれば、それに対応したデータ処理を行い（ステップＳ２６）、処理したデータを要求元のクライアントに転送する（ステップＳ２７）。
【００２７】
次に、データ収集管理機能１００は、クライアント２０，２１，２２，３０，４０より周期的にアッブロードされてくる開発者側の情報を取得し（ステップＳ２８）、取得した情報を管理データとしてファイルに保存する（ステップＳ２９）。そして、データ収集管理機能１００は、クライアント２０，２１，２２，３０，４０とのコネクションが確立しているか否かが判断され（ステップＳ３０）、クライアント２０，２１，２２，３０，４０とのコネクションが確認されると、開発者からの要求を待つステップＳ２５に戻る。クライアント２０，２１，２２，３０，４０とのコネクションが確認されない場合は、クライアント２０，２１，２２，３０，４０とのコネクションチェック処理、つまり、クライアント２０，２１，２２，３０，４０からの接続要求を待つ（ステップＳ３１）。ここで、クライアント２０，２１，２２，３０，４０からの接続要求があれば、再度、クライアント２０，２１，２２，３０，４０とのコネクションが確立しているか否かが判断され（ステップＳ３２）、クライアント２０，２１，２２，３０，４０とのコネクションが確認されると、ステップＳ２５に戻り、コネクションが確認されない場合は、ステップＳ３１に戻る。
【００２８】
次に、プログラム開発支援システムの動作例について説明する。
図１０はタイムポイント機能とデータ収集管理機能との連携を示す図である。
ここで、開発者側において、第１開発者がクライアント２０の端末を使ってプログラムを開発し、第２開発者がクライアント３０の端末を使ってプログラムを開発しているとする。これらの開発において、クライアント２０においては、プロジェクトａとしてプログラムを機能単位に分けて機能Ａ，Ｂ，・・が開発され、クライアント３０においては、プロジェクトｂとしてプログラムを機能単位に分けて機能Ｃ，Ｄ，・・が開発されているとする。なお、クライアント２０，３０におけるプログラム開発ソフトウェアのユーザインタフェースでは、図示のように、プロジェクトの配下にある機能を階層構造的に表示するようにしている。これらの機能は、ソースコード、モジュール、ライブラリなど、実行ファイルを作成するために必要なファイル群であり、１つのコンパイル単位を構成するものであって、プログラム開発ソフトウェアのタイムポイント機能９０ａ，９０ｂにより管理されている。
【００２９】
まず、第１開発者が開発を開始するとき、第１開発者は、クライアント２０からサーバ１０に対してログインを行う。これにより、クライアント２０とサーバ１０とは、通信状態になる。ログイン後、複数の開発者が共同作業を行うプロジェクトを新規に生成するか、または既存のプロジェクトを読み込む作業を行う。たとえば、新規作成の場合、タイムポイント機能９０ａはサーバ１０側で管理するプロジェクトのデータを生成する。図示の例では、サーバ１０側で、第１プロジェクトマネージャが管理するプロジェクトのデータが既に生成されていて、今回、第２プロジェクトマネージャと第１および第２開発者が作成したプロジェクトマネージャデータとが新たに生成されたと仮定する。
【００３０】
プロジェクトマネージャデータを生成してから、第１開発者のクライアント２０では、プログラム開発ソフトウェアのタイムポイント機能９０ａがクライアント２０で作業をしているプロジェクト情報、つまり、プロジェクトａの機能Ａ，Ｂ，・・をサーバ１０へ登録する。もちろん、タイムポイント機能９０ａがプロジェクト情報をプロジェクトへ登録するときには、第２プロジェクトマネージャに登録するように指定してあるとする。また、この時点で、他の開発者に対して機能を公開するのか隠蔽するのかを機能ごとに設定してある。ここでは、プロジェクトａの機能Ａ，Ｂ，・・は、すべて隠蔽状態になっているとする。
【００３１】
その後、同様な作業を第２開発者が行うことで、サーバ１０の側では、第２プロジェクトマネージャに第２開発者のプロジェクトｂに関するプロジェクトマネージャデータが登録される。このようにして、第２プロジェクトマネージャには、プロジェクトａおよびプロジェクトｂの情報が構築され、管理される。このとき、データ収集管理機能１００からは、あるプロジェクトの中にプロジェクトａおよびプロジェクトｂの機能が一緒に入っているように見える。
【００３２】
図１１は実体機能を追加した場合の動作説明図、図１２は機能を仮想的に追加する場合の動作説明図、図１３はサーバに隠蔽情報が追加された場合の動作説明図である。
第２開発者が自身のプロジェクトｂに対して「機能Ｅ」を追加した場合には、サーバ１０の側にこの情報が登録される。それに伴い、登録した機能Ｅには、「公開」・「隠蔽」の条件が設定されるが、ここでは「公開」として登録したとする。
【００３３】
サーバ１０に新しい機能の登録が「公開」で登録された場合、サーバ１０のデータ収集管理機能１００は、第１開発者のクライアント２０に新着情報を配信する。クライアント２０では、その情報に対して自身のプロジェクトａに追加するかどうかを設定することができる。この新しい「機能Ｅ」を追加する方法としては、図１１に示したように、ソースコードやモジュールなどの機能Ｅの実体をプロジェクトａにコピーして運用する形態がある。また、別の形態として、図１２に示したように、実体をコピーせずに仮想的に追加をして運用することもできる。もちろん、機能Ｅをサーバ１０に対して公開ではなく隠蔽で登録した場合には、第１開発者の側には何も通達が来ないため、図１３に示したように、第１開発者のプロジェクトａに登録されることはない。
【００３４】
以上のように、他の開発した機能が新たにサーバ１０に公開で追加登録されると、その機能を他の開発者が自身のプロジェクトに実装機能または未実装機能として追加することができる。未実装機能として仮想的に機能追加を行った場合、プロジェクトの確認を行う場合にその配下の機能に対してコンパイルが可能なようにその仮想的な機能を実体機能に置き換える必要がある。その場合には、置き換えた機能に対してコネクションマッチテスト部９４が自動的にテストを行うようにしている。次に、そのコネクションマッチテスト機能について説明する。
【００３５】
図１４はコネクションマッチテスト機能の処理の流れを示すフローチャートである。
コネクションマッチテスト部９４では、その対象の機能が仮想機能として実装されているか否かが判断される（ステップＳ４１）。仮想機能として実装されていなければ、この処理は終了する。仮想機能として実装されていれば、図８に示した未実装機能を生成するためのデータ設定ダイアログ１２０を使用して、既にデータを構築しているか否かが判断される（ステップＳ４２）。ここで、データを構築していない場合には、データを構築するか否かが判断され（ステップＳ４３）、データを構築する場合、データを構築し（ステップＳ４４）、データを構築しない場合には、この処理は終了する。
【００３６】
次に、構築されたデータに対して動作チェックを行い（ステップＳ４５）、動作チェックの結果が正常でないかどうかが判断される（ステップＳ４６）。動作チェックが正常に終了した場合は、その旨をレポート表示し（ステップＳ４７）、この処理を終了する。置き換えた実体機能の動作チェックが何らかの不具合により正常に終了しない場合には、その旨をレポート表示し（ステップＳ４８）、ここで、不具合のあった機能に対して修正作業をするか否かが判断される（ステップＳ４９）。修正を行わない場合は、この処理を終了する。修正を行う場合、レポートによりどの機能が異常であるかが報告されているので、その機能に対して修正を行い（ステップＳ５０）、最後に、再テストを行うか否かが判断される（ステップＳ５１）。再テストを行う場合は、ステップＳ４１に戻り、再テストを行わない場合は、この処理を終了する。
【００３７】
なお、上記のサーバ１０およびクライアント２０，２１，２２，３０，４０の処理機能は、コンピュータによって実現されるが、その場合、サーバ１０のデータ収集管理機能１００の処理内容を記述したプログラム、およびクライアント２０，２１，２２，３０，４０のタイムポイント機能９０の処理内容を記述したプログラムが提供される。
【図面の簡単な説明】
【００３８】
【図１】プログラム開発支援システムの構成例を示すシステム構成図である。
【図２】サーバまたはクライアントのハードウェア構成例を示す図である。
【図３】クライアントの機能ブロック図である。
【図４】サーバの機能ブロック図である。
【図５】クライアントのタイムポイント機能の処理の流れを示すフローチャートである。
【図６】公開・隠蔽変更処理の流れを示すフローチャートである。
【図７】クラス・メソッド関連のユーザインタフェースを示す図である。
【図８】データの生成関連のユーザインタフェースを示す図である。
【図９】サーバのデータ収集管理機能の処理の流れを示すフローチャートである。
【図１０】タイムポイント機能とデータ収集管理機能との連携を示す図である。
【図１１】実体機能を追加した場合の動作説明図である。
【図１２】機能を仮想的に追加する場合の動作説明図である。
【図１３】サーバに隠蔽情報が追加された場合の動作説明図である。
【図１４】コネクションマッチテスト機能の処理の流れを示すフローチャートである。
【符号の説明】
【００３９】
１０  サーバ
２０，２１，２２，３０，４０  クライアント
５０，６０  ネットワーク
９０，９０ａ，９０ｂ  タイムポイント機能
９１  プロジェクト情報表示部
９２  プロトタイプ生成部
９３  機能公開・隠蔽部
９４  コネクションマッチテスト部
１００  データ収集管理機能
【図１】
2007213203.tif 000003
【図２】
2007213203.tif 000004
【図３】
2007213203.tif 000005
【図４】
2007213203.tif 000006
【図５】
2007213203.tif 000007
【図６】
2007213203.tif 000008
【図７】
2007213203.tif 000009
【図８】
2007213203.tif 000010
【図９】
2007213203.tif 000011
【図１０】
2007213203.tif 000012
【図１１】
2007213203.tif 000013
【図１２】
2007213203.tif 000014
【図１３】
2007213203.tif 000015
【図１４】
2007213203.tif 000016