(57)【特許請求の範囲】
【請求項１】
所定の設計者によって登録された所定のプログラムが、前記所定の設計者以外の他の設計者によって取得されることを制御するプログラム取得制御システムであって、
前記登録されたプログラムを特定するためのプログラム特定情報毎に、当該各プログラムの設計段階を示す設計段階情報を管理する設計段階管理手段と、
前記設計段階情報毎に、前記登録されたプログラムの取得可能な設計者を示す取得可能者情報を管理する取得可能者管理手段と、
前記他の設計者によって所定のプログラムを取得する要求があった場合に、当該要求されたプログラムのプログラム特定情報に基づいて前記設計段階管理手段を検索することにより、対応する設計段階情報を抽出する設計段階抽出手段と、
前記抽出された設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出する取得可能者抽出手段と、
前記抽出された取得可能者情報で示された設計者に、前記取得の要求を行った他の設計者が含まれるかを判断する判断手段と、
前記判断の結果に基づき、前記他の設計者によるプログラムの取得を制限する取得制限手段と、
前記設計者を識別するための設計者識別情報毎に、当該設計者の電子メールアドレスを管理するアドレス管理手段と、
前記所定の設計者から、前記所定のプログラムの登録を受け付けると共に当該所定のプログラムの設計段階を受け付ける受付手段と、
前記受け付けた設計段階を示す設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出し、当該抽出された取得可能者情報に基づいて前記アドレス管理手段を検索することにより、対応する電子メールアドレスを抽出するアドレス抽出手段と、
前記抽出された電子メールアドレスに対して、前記所定のプログラムが登録された旨を示す電子メールを送信する送信手段と、
を有することを特徴とするプログラム取得制御システム。
【請求項２】
前記抽出された取得可能者情報で示された設計者に、前記取得の要求を行った他の設計者が含まれていないと前記判断手段によって判断された場合には、前記取得制限手段は、前記他の設計者によるプログラムの取得を禁止することを特徴とする請求項１に記載のプログラム取得制御システム。
【請求項３】
所定の設計者によって登録された所定のプログラムが、前記所定の設計者以外の他の設計者によって取得されることを制御するプログラム取得制御システムを用いたプログラム取得制御方法であって、
前記プログラム取得制御システムは、
前記登録されたプログラムを特定するためのプログラム特定情報毎に、当該各プログラムの設計段階を示す設計段階情報を管理する設計段階管理手段と、
前記設計段階情報毎に、前記登録されたプログラムの取得可能な設計者を示す取得可能者情報を管理する取得可能者管理手段と、
前記設計者を識別するための設計者識別情報毎に、当該設計者の電子メールアドレスを管理するアドレス管理手段と、
を有し、
前記プログラム取得制御システムは、
前記他の設計者によって所定のプログラムを取得する要求があった場合に、当該要求されたプログラムのプログラム特定情報に基づいて前記設計段階管理手段を検索することにより、対応する設計段階情報を抽出する設計段階抽ステップと、
前記抽出された設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出する取得可能者抽出ステップと、
前記抽出された取得可能者情報で示された設計者に、前記取得の要求を行った他の設計者が含まれるかを判断する判断ステップと、
前記判断の結果に基づき、前記他の設計者によるプログラムの取得を制限する取得制限ステップと、
前記所定の設計者から、前記所定のプログラムの登録を受け付けると共に当該所定のプログラムの設計段階を受け付ける受付ステップと、
前記受け付けた設計段階を示す設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出し、当該抽出された取得可能者情報に基づいて前記アドレス管理手段を検索することにより、対応する電子メールアドレスを抽出するアドレス抽出ステップと、
前記抽出された電子メールアドレスに対して、前記所定のプログラムが登録された旨を示す電子メールを送信する送信ステップと、
を実行することを特徴とするプログラム取得制御方法。
【請求項４】
コンピュータに、請求項３に記載の各ステップを実行させることを特徴とするプログラム取得制御用プログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
従来から、グループ単位でのプログラム開発環境が提供されている。この手法は、ある１つのプログラムを作成する際に、例えばその中で分割可能な処理部分毎のプログラムを、複数のプログラム設計者（以下、「プログラム設計者」を「設計者」と呼ぶ）により処理分担して作成し、最終的に各設計者による個別のプログラムを組合せることで、目的とする１つのプログラムを完成するものである（特許文献１参照）。
【０００２】
このように分割してプログラムを作成する場合、例えば、ＯＳ（Operating System）としての基本プログラムは共通サーバ等で保存されることで、各アプリケーションプログラムの設計者が参照及び取得ができるようにしている。一方、各設計者により作成される個別のアプリケーションプログラムについては、設計途中では他の設計者が参照できないようにしている。 
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、プログラムの大規模設計を行う等の場合には、上記の処理分担した個別のアプリケーションプログラムを更に処理分担し、１つのアプリケーションプログラムを複数の共同設計者によって設計する必要がある。このような共同設計者がいる場合に、従来のごとく、各設計者が他の設計者に設計途中のプログラムを一律に参照及び取得できないようにすると、共同設計者もプログラムを参照及び取得できなくなるため、実質的にプログラム設計や開発が滞ってしまう。また、プログラム設計の全体を管理する立場（役職）の管理者には、たとえプログラムの設計途中であっても、参照及び取得できるようにする必要がある。更に、プログラム設計がほぼ完成すれば、他のアプリケーションプログラムの設計者に参照及び取得を認めても問題なく、むしろプログラム設計の参考のために、他のアプリケーションプログラムの設計者にも参照及び取得を積極的に認めてもよい場合がある。
【０００４】
以上のように、プログラムの設計段階と他の設計者の立場とに応じて、プログラムが取得されてもよい設計者と、プログラムを取得されては困る設計者が変化するため、プログラムの設計段階毎に各設計者のプログラムの取得権限を変更しなければならず、取得権限の変更が複雑になって煩わしいという課題が生じる。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、所定の設計者によって登録された所定のプログラムが、前記所定の設計者以外の他の設計者によって取得されることを制御するプログラム取得制御システムであって、前記登録されたプログラムを特定するためのプログラム特定情報毎に、当該各プログラムの設計段階を示す設計段階情報を管理する設計段階管理手段と、前記設計段階情報毎に、前記登録されたプログラムの取得可能な設計者を示す取得可能者情報を管理する取得可能者管理手段と、前記他の設計者によって所定のプログラムを取得する要求があった場合に、当該要求されたプログラムのプログラム特定情報に基づいて前記設計段階管理手段を検索することにより、対応する設計段階情報を抽出する設計段階抽出手段と、前記抽出された設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出する取得可能者抽出手段と、前記抽出された取得可能者情報で示された設計者に、前記取得の要求を行った他の設計者が含まれるかを判断する判断手段と、前記判断の結果に基づき、前記他の設計者によるプログラムの取得を制限する取得制限手段と、前記設計者を識別するための設計者識別情報毎に、当該設計者の電子メールアドレスを管理するアドレス管理手段と、前記所定の設計者から、前記所定のプログラムの登録を受け付けると共に当該所定のプログラムの設計段階を受け付ける受付手段と、前記受け付けた設計段階を示す設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出し、当該抽出された取得可能者情報に基づいて前記アドレス管理手段を検索することにより、対応する電子メールアドレスを抽出するアドレス抽出手段と、前記抽出された電子メールアドレスに対して、前記所定のプログラムが登録された旨を示す電子メールを送信する送信手段と、を有することを特徴とするプログラム取得制御システムである。
【０００６】
請求項３に係る発明は、所定の設計者によって登録された所定のプログラムが、前記所定の設計者以外の他の設計者によって取得されることを制御するプログラム取得制御システムを用いたプログラム取得制御方法であって、前記プログラム取得制御システムは、前記登録されたプログラムを特定するためのプログラム特定情報毎に、当該各プログラムの設計段階を示す設計段階情報を管理する設計段階管理手段と、前記設計段階情報毎に、前記登録されたプログラムの取得可能な設計者を示す取得可能者情報を管理する取得可能者管理手段と、前記設計者を識別するための設計者識別情報毎に、当該設計者の電子メールアドレスを管理するアドレス管理手段と、を有し、前記プログラム取得制御システムは、前記他の設計者によって所定のプログラムを取得する要求があった場合に、当該要求されたプログラムのプログラム特定情報に基づいて前記設計段階管理手段を検索することにより、対応する設計段階情報を抽出する設計段階抽ステップと、前記抽出された設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出する取得可能者抽出ステップと、前記抽出された取得可能者情報で示された設計者に、前記取得の要求を行った他の設計者が含まれるかを判断する判断ステップと、前記判断の結果に基づき、前記他の設計者によるプログラムの取得を制限する取得制限ステップと、前記所定の設計者から、前記所定のプログラムの登録を受け付けると共に当該所定のプログラムの設計段階を受け付ける受付ステップと、前記受け付けた設計段階を示す設計段階情報に基づいて前記取得可能者管理手段を検索することにより、対応する取得可能者情報を抽出し、当該抽出された取得可能者情報に基づいて前記アドレス管理手段を検索することにより、対応する電子メールアドレスを抽出するアドレス抽出ステップと、前記抽出された電子メールアドレスに対して、前記所定のプログラムが登録された旨を示す電子メールを送信する送信ステップと、を実行することを特徴とするプログラム取得制御方法である。
【０００７】
請求項４に係る発明は、コンピュータに、請求項３に記載の各ステップを実行させることを特徴とするプログラム取得制御用プログラム。
【発明の効果】
【０００８】
以上説明したように本発明によれば、プログラムの設計段階と他の設計者の立場に応じて、プログラムの取得の可否が自動的に決まるため、設計段階毎に各設計者のプログラムの取得権限を変更するという煩わしさを解消することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の一実施形態に係るプログラム設計システムの概略図である。である。
【図２】図２は、画像形成装置のソフトウェア構成図である。
【図３】図３は、プログラム取得制御システムを用いて、プログラム設計を行う工程を示した図である。
【図４】図４は、プログラム設計システムにおける各端末及びプログラム取得制御システムのハードウェア構成図である。
【図５】図５は、プログラム取得制御システムを構成する各端末及びプログラム管理システムの機能ブロック図である。
【図６】図６は、プログラム管理テーブルを示す概念図である。
【図７】図７は、取得可能者管理テーブルを示す概念図である。
【図８】図８は、アドレス管理テーブルを示す概念図である。
【図９】図９は、プログラム取得制御システムを用いて、プログラムの取得の制限を行う処理を示したシーケンス図である。
【発明を実施するための形態】
【００１０】
＜＜実施形態の全体構成＞＞
以下、図１乃至図９を用いて、本発明の一実施形態について説明する。図１は、本発明の一実施形態に係るプログラム設計システム１の概略図であり、まずは図１を用いて、本実施形態の概略を説明する。
【００１１】
本実施形態のプログラム設計システム４１使用する者は、一例として、ＯＳとしての基本プログラム(P)を設計する設計者Ｘと、基本プログラムを参照して新たな機能を追加するための応用プログラム(p11)を設計する設計者Ｙと、プログラム設計を統括的に管理する管理者Ａと、設計者Ｙと分担した応用プログラム(p12)を設計する設計者Ｂと、基本プログラム(P)を参照するが、設計者Ｙ、Ｂとは別の応用プログラム(p2)を設計する設計者Ｃである。
【００１２】
また、設計者Ｘ、設計者Ｙ、管理者Ａ、設計者Ｂ、及び設計者Ｃは、それぞれ、パーソナルコンピュータとしての情報通信端末（以下、「端末」という）ｘ、端末ｙ、端末ａ、端末ｂ、及び端末ｃを使用する。これら各端末は、ＬＡＮ(Local Area Network)やインターネット等の通信ネットワーク２を介して相互に通信可能である。また、通信ネットワーク２には、プログラム取得制御システム４が接続されており、各端末と相互に通信可能である。このプログラム取得制御システム４は、各設計者によって設計されたプログラムを一元管理すると共に、任意の設計者が、上記一元管理されている他の設計者のプログラムを取得しようとした場合に、取得を許可又は制限する役割を果たす。なお、各端末ｘ，ｙ，ａ，ｂ，ｃ、及びプログラム取得制御システム４によって、本実施形態のプログラム設計システム１が構築されている。
【００１３】
図２は、画像形成装置のソフトウェア構成図である。画像形成装置１０は、印刷、スキャン、コピー、及びＦＡＸ送受信等の機能を一台の筐体によって実現する複合機である。
【００１４】
このうち、応用プログラムの一例としての標準アプリケーションプログラム（以下、「アプリケーションプログラム」を「アプリ」と省略する）１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。
【００１５】
スキャンアプリ１２１１は、スキャンジョブを実行する。印刷アプリ１２１２は印刷ジョブを実行する。コピーアプリ１２１３は、コピージョブを実行する。ＦＡＸアプリ１２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。コントロールサービス１２４は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
【００１６】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、ＳＤＫアプリ１２２として、プロバイダアプリ１２２１、ＯＣＲアプリ１２２２、及び翻訳アプリ１２２３が例示されている。
【００１７】
プロバイダアプリ１２２１は、ウィジェットを画像形成装置１０より操作可能とするための処理を実行する。ＯＣＲアプリ１２２２は、ＯＣＲ処理を実行する。翻訳アプリ１２２３は、翻訳処理を実行する。
【００１８】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２の実行環境を提供する。各ＳＤＫアプリ１２２は、ＳＤＫプラットフォーム１２３が提供するＡＰＩ（Application Program Interface）を利用して開発される。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能を利用させるためのインタフェース、印刷機能を利用させるためのインタフェース、コピー機能を利用させるためのインタフェース等をＳＤＫアプリ１２２に提供する。なお、ＳＤＫプラットフォーム１２３のＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発され得る。
【００１９】
ＯＳ１２５は、基本プログラムの一例であり、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２５上においてプロセス又はスレッドとして動作する。
【００２０】
本実施形態では、例えば、設計者Ｘが基本プログラム(P)としてのＯＳ１２５を設計し、設計者Ｙと設計者Ｂが共同して応用プログラム(p1)としてのスキャンアプリ(a1)を設計し、設計者Ｃが応用プログラム(p2)としての印刷アプリ(a2)を設計する。なお、設計者Ｙは、スキャンアプリ(a1)のうち分担部分である応用プログラム(p11)としてのスキャンアプリ(a11)を設計し、設計者Ｂは、スキャンアプリ(a1)のうち分担部分である応用プログラム(p12)としてのスキャンアプリ(a12)を設計する。なお、設計者Ｘが基本プログラム(P)として、図２に示されているコントロールサービス１２４を設計するようにしてもよい。
【００２１】
図３は、プログラム取得制御システム１を用いて、プログラム設計を行う工程を示した図である。プログラム設計は様々な工程があるが、ここでは、設計者Ｙと設計者Ｂが、設計者Ｘによって設計されたＯＳ１２５を参照し、共同してスキャンアプリ１２１１としてのスキャンアプリ(a12)を設計する場合について説明する。
【００２２】
なお、図３の３つの横軸は時間軸を示している。また、未着手段階とは、旧製品の画像形成装置におけるスキャンアプリ等のように、今回の設計のための土台にするアプリそのままの状態を管理している段階である。実験(expelimental)段階とは、設計者がプログラミングを進めたが、初期段階で未完成状態であるため、共同の設計者等、特定の者に対してのみ取得を認めるような段階である。安定(stable)段階とは、設計者がプログラミング作業をほぼ完了させ、コンパイルできる段階であり、共同の設計者以外である他のアプリを設計する設計者にも取得を認める等、実験段階に比べて取得可能者を拡大させた段階である。放出(releasable)段階とは、リリース前テストが完了し、いつでもリリースできる段階であり、実験段階に比べて取得可能者を拡大させた段階である。
【００２３】
図３に示すように、本実施形態では、設計者Ｘは、端末ｘを用いて、順次、ＯＳ１２５のver.1，ver.2，ver.3，ver.4を設計する。設計者Ｙは、ＯＳ１２５のver.2を参照し、順次、スキャンアプリ１２１１の一部の一方であるスキャンアプリ(a11)として、未着手段階のスキャンアプリver.2.1.1、実験段階のスキャンアプリver2.1.2、安定段階のスキャンアプリver.2.1.3、及び、放出段階のスキャンアプリver.2.1.4を設計する。設計者Ｂは、ＯＳ１２５のver.2を参照し、順次、スキャンアプリ１２１１の一部の他方としてのスキャンアプリ(a12)として、未着手段階のスキャンアプリver.2.2.1、実験段階のスキャンアプリver2.2.2、安定段階のスキャンアプリver.2.2.3、放出段階のスキャンアプリver.2.2.4を設計する。
【００２４】
また、設計者Ｂは、設計途中で設計者Ｙが設計したアプリ(a11)を取得し、設計者Ｙが設計中のアプリ(a11)と設計者Ｂが設計中のアプリ(a12)の組合せテストを行い、スキャンアプリ(a1)全体として正常に実行されるか否かの検査を行う。図３に示すように、本実施形態では、設計者Ｂが、設計者Ｙから実験段階のアプリ(a11)を取得し、設計者Ｂが設計中の実験段階であるアプリ(a12)と組合せテストを行う場合を示している。なお、設計者Ｙが設計者Ｂからアプリ(a12)を取得し、設計者Ｙが組合せテストを行ってもよい。
【００２５】
そして、最終的に、設計者Ｙと設計者Ｂがそれぞれ設計したアプリ(a11,a12)を組み合わせて１つのスキャンアプリ(a1)を完成させ、その際にver.4まで進んでいる基本プログラム(P)としてのＯＳ１２５上で動作させることで、画像形成装置のスキャナ機能を実行させる。
＜＜実施形態のハードウェア構成＞＞
図４は、プログラム設計システムにおける各端末及びプログラム取得制御システムのハードウェア構成図である。図４に示されているように、各端末３及びプログラム取得制御システム４は、端末全体の動作を制御するＣＰＵ(Central Processing Unit)２０１、ＩＰＬ等のＣＰＵ２０１の駆動に用いられるプログラムを記憶したＲＯＭ２０２、ＣＰＵ２０１のワークエリアとして使用されるＲＡＭ(Random Access Memory)２０３、プログラム等の各種データを記憶するＨＤ(Hard Disk)２０４、ＣＰＵ２０１の制御にしたがってＨＤ２０４に対するプログラム各種データの読み出し又は書き込みを制御するＨＤＤ(Hard Disk Drive)２０５、フラッシュメモリ等の記録メディア２０６に対するデータの読み出し又は書き込み（記憶）を制御するメディアドライブ２０７、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示するディスプレイ２０８、通信ネットワーク２を利用してデータ伝送をするためのネットワークＩ／Ｆ２０９、文字、数値、各種指示などの入力のための複数のキーを備えたキーボード２１１、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行うマウス２１２、着脱可能な記録媒体の一例としてのＣＤ−ＲＯＭ(Compact Disc Read Only Memory)２１３に対する各種データの読み出し又は書き込みを制御するＣＤ−ＲＯＭドライブ２１４、及び、上記各構成要素を図３に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン２１０を備えている。
【００２６】
なお、プログラム取得制御システム４の場合には、ＨＤ２０４に記憶されているプログラムは、プログラム取得制御用プログラムとして、インストール可能な形式又は実行可能な形式のファイルで、上記記録メディア２０６やＣＤ−ＲＯＭ２１３等のコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。また、上記プログラム取得制御用プログラムは、ＨＤ２０４ではなくＲＯＭ２０２に記憶されるようにしてもよい。
＜＜実施形態の機能構成＞＞
次に、本実施形態の機能構成について説明する。図５は、本実施形態のプログラム設計システムを構成する各端末及びプログラム取得制御システムの機能ブロック図である。なお、図５では、各端末ｘ，ｙ，ａ，ｂ，ｃの総称として、端末３を示している。また、端末３及びプログラム取得制御システム４が、通信ネットワーク２を介してデータ通信することができるように接続されている。
＜端末の機能構成＞
端末３は、主に、送受信部３１、操作入力受付部３２、プログラム作成部３３、及び、記憶・読出処理部３９を有している。これら各部は、図４に示されている各構成要素のいずれかが、ＨＤ２０４からＲＡＭ２０３上に展開されたプログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能、又は機能される手段である。また、端末３は、図２に示されているＨＤ２０４によって構築される記憶部３０００を有している。
（端末の各機能構成）
次に、端末３の各機能構成について詳細に説明する。端末３の送受信部３１は、通信ネットワーク２を介して他の端末３、及びプログラム取得制御システム４と各種データ（情報）の送受信を行う。
【００２７】
操作入力受付部３２は、図４に示されているＣＰＵ２０１からの命令、並びにキーボード２１１及びマウス２１２によって実現され、利用者による各種入力を受け付ける。プログラム作成部３３は、操作入力受付部３２によって受け付けた設計者の操作入力に基づいて、プログラム作成を行う。記憶・読出処理部３９は、図４に示されているＣＰＵ２０１からの命令、及び図２に示すＨＤＤ２０５によって実行され、記憶部３０００に各種データを記憶したり、記憶部３０００に記憶された各種データを読み出す処理を行う。
＜プログラム取得制御システムの機能構成＞
プログラム取得制御システム４は、送受信部４１、取得可能者抽出部４２、アドレス抽出部４３、設計段階抽出部４４、取得可能者判断部４５、取得制限部４６、及び、記憶・読出処理部４９を有している。これら各部は、図４に示されている各構成要素のいずれかが、ＨＤ２０４からＲＡＭ２０３上に展開されたプログラム取得制御用プログラムに従ったＣＰＵ２０１からの命令によって動作することで実現される機能、又は機能される手段である。また、記憶部４０００は、図４に示されているＨＤ２０４により構築されている。この記憶部４０００は、各設計者によって設計された登録用のプログラム(P),(p11),(p12)等を一元管理するために使用される。これにより、プログラム取得制御システム４は、各設計者が設計したプログラムを登録するための共有サーバとしての役割を果たす。また、記憶部４０００には、以下に示すような各種テーブルによって構成されているＤＢが構築されている。
【００２８】
（プログラム管理テーブル）
記憶部４０００には、図６に示されているようなプログラム管理テーブルによって構成されているプログラム管理ＤＢ４００１が構築されている。このプログラム管理テーブルでは、各設計者を識別するために用いられる設計者ＩＤ毎に、各設計者によってプログラム取得制御システム４に登録されたプログラム、及び、この登録された時点でのプログラムの設計段階（ステータス）を示す設計段階情報が関連付けられて管理されている。例えば、図６に示されているプログラム管理テーブルにおいて、設計者ＩＤが「００Ｘ」の設計者Ｘは、ファイル名が「xxx.c」のプログラムｘを登録し、この登録した時点での設計段階が「実験段階」であることが示されている。なお、設計者ＩＤに限るものではなく、設計者の指名等の設計者を識別するために用いられる「設計者情報」であればよい。
【００２９】
（取得可能者管理テーブル）
また、記憶部４０００には、図７に示されているような取得可能者管理テーブルによって構成されている取得可能者管理ＤＢ４００２が構築されている。この取得可能者管理テーブルでは、登録されたプログラムの設計段階を示す設計段階情報毎に、この登録されたプログラムを取得可能な者を示す取得可能者ＩＤが関連付けられて管理されている。例えば、図７に示されている取得可能者管理テーブルにおいて、設計段階が「実験段階」の場合には、取得可能者ＩＤが「00A」である設計者Ａと、取得可能者ＩＤが「OOB」である設計者Ｂに、登録されているプログラムを取得することを認めていることが示されている。また、設計段階が「安定段階」の場合には、取得可能者ＩＤが「OOA」である管理者Ａと、取得可能者ＩＤが「OOB」である設計者Ｂだけでなく、取得可能者ＩＤが「OOC」である設計者Ｃに対しても、登録されているプログラムを取得することを認めていることが示されている。なお、取得可能者ＩＤに限るものではなく、取得可能者の氏名等の取得可能者を識別するために用いられる「取得可能者情報」であればよい。
【００３０】
（アドレス管理テーブル）
更に、記憶部４０００には、図８に示されているようなアドレス管理テーブルによって構成されているアドレス管理ＤＢ４００３が構築されている。このアドレス管理テーブルでは、各設計者を識別するための設計者ＩＤ毎に、各設計者の電子メールアドレスが関連付けられて管理されている。例えば、図８に示されているアドレス管理テーブルにおいて、設計者ＩＤが「OOX」である設計者Ｘの電子メールアドレスは「xxx@…」であることが示されている。設計者Ｃに対しても、登録されているプログラムを取得することを認めていることが示されている。なお、設計者ＩＤに限るものではなく、設計者の指名等の設計者を識別するために用いられる「設計者情報」であればよい。
【００３１】
（プログラム取得制御システムの各機能部）
次に、プログラム取得制御システム４の各機能構成について詳細に説明する。
【００３２】
図５に示されている送受信部４１は、通信ネットワーク２を介して他の端末３、及びプログラム取得制御システム４とプログラムや電子メール等の各種データ（情報）の送受信を行う。
【００３３】
取得可能者抽出部４２は、送受信部４１によって受信された各設計段階を示す設計段階情報を検索キーとして、図７に示されている取得可能者管理テーブルを検索することで、対応する取得可能者ＩＤを抽出する。また、取得可能者抽出部４２は、設計段階抽出部４４によって抽出された設計段階情報を検索キーとして、図７に示されている取得可能者管理テーブルを検索することにより、対応する取得可能者ＩＤを抽出する。
【００３４】
アドレス抽出部４３は、取得可能者抽出部４２によって抽出された取得可能者ＩＤを検索キーとして、図８に示されているアドレス管理テーブルを検索することにより、対応する電子メールアドレスを抽出する。
【００３５】
設計段階抽出部４４は、送受信部４１によって受信されたプログラムのファイル名を検索キーとして、図６に示されているプログラム管理テーブルを検索することにより、対応する設計段階を示す設計段階情報を抽出する。
【００３６】
取得可能者判断部４５は、取得可能者抽出部４２によって抽出された取得可能者ＩＤに、プログラムを取得する要求を行った設計者の設計者ＩＤが含まれているかを判断する。
【００３７】
取得制限部４６は、設計者によるプログラムの取得を制限する。具体的には、取得制限部４６は、所定の設計者によるプログラムの取得を禁止する。
【００３８】
記憶・読出処理部４９は、図４に示されているＣＰＵ２０１からの命令、及び図２に示すＨＤＤ２０５によって実行され、記憶部４０００にプログラムや各種データを記憶したり、記憶部３０００に記憶されたプログラムや各種データを読み出す処理を行う。
＜＜実施形態の処理・動作＞＞
続いて、図９を用いて、本実施形態に係るプログラム取得制御システム１における処理方法を説明する。なお、図９は、プログラム取得制御システムを用いて、プログラムの取得の制限を行う処理を示したシーケンス図である。
【００３９】
まず、操作入力受付部３２によって設計者Ｙの操作を受け付けることで、端末ｙの送受信部３１から通信ネットワーク２を介してプログラム取得制御システム４へ、操作者Ｙが設計するプログラムの取得要求を行う（ステップＳ１）。この取得要求には、要求者である設計者Ｙの設計者ＩＤ「OOY」と、要求対象であるプログラムのファイル名「yyy.c」が含まれている。これにより、プログラム取得制御システム４の送受信部４１は、操作者Ｙからプログラムの取得要求を受け付ける。そして、記憶・読出処理部４９は、設計者ＩＤ「OOY」に基づき、図６に示されているプログラム管理テーブルを検索することで、対応するプログラムのファイル名「yyy.c」から、記憶部４０００に記憶されているアプリ (a11)を読み出す（ステップＳ２）。このとき、本実施形態では、アプリ(a11)は、ver.2.1.1の未着手段階とする。
【００４０】
次に、送受信部４１は、通信ネットワーク２を介して、端末ｙにスキャンアプリ (a11)のver.2.1.1を送信する（ステップＳ３）。これによって、端末ｙでは、操作入力受付部３２によって設計者Ｙの操作を受け付けることで、プログラム作成部３３がスキャンアプリ(a11)に対するプログラミングを行い、実験段階であるver.2.1.2のアプリケーションプログラム(p11)を作成する（ステップＳ４）。
【００４１】
次に、端末ｙでは、操作入力受付部３２によって設計者Ｙの操作を受け付けることで、実験段階であるver.2.1.2のスキャンアプリ(a11)をプログラム取得制御システム４へ登録する処理と、スキャンアプリ(a11)の設計段階の設定が行われる（ステップＳ５）。ここでは、設計段階として、「実験段階」の設定が行われる。具体的には、端末ｙの送受信部３１から通信ネットワーク２を介してプログラム取得制御システム４へ、登録者である設計者Ｙの設計者ＩＤ「OOY」、実験段階であるver.2.1.2のスキャンアプリ(a11)、及び「実験段階」を示す設計段階情報が送信される。これにより、プログラム取得制御システム４では、送受信部４１で、設計者ＩＤ「OOY」、実験段階であるver.2.1.2のスキャンアプリ(a11)、及び「実験段階」を示す設計段階情報を受信する。
【００４２】
次に、記憶・読出処理部４９が、記憶部４０００にver.2.1.2のスキャンアプリ(a11)を記憶すると共に、図６に示されているプログラム管理テーブルの設計者ＩＤ「OOY」及びプログラムのファイル名「yyy.c」のレコードにおける設計段階のフィールド部分に「実験段階」である旨を上書き記憶する（ステップＳ６）。
【００４３】
また、取得可能者抽出部４２は、送受信部４１によって受信された「実験段階」を示す設計段階情報に基づいて、図７に示されている取得可能者管理テーブルを検索することで、対応する取得可能者ＩＤ「OOA」，「00B」を抽出する（ステップＳ７）。更に、アドレス抽出部４３は、取得可能者抽出部４２によって抽出された取得可能者ＩＤ「OOA」，「00B」に基づいて、図８に示されているアドレス管理テーブルを検索することにより、対応する電子メールアドレスを抽出する（ステップＳ８）。そして、送受信部４１は、アドレス抽出部４３によって抽出された電子メールアドレスに対して、実験段階であるver.2.1.2のスキャンアプリ(a11)が登録された旨を示す電子メールを送信する（ステップＳ９）。つまり、実験段階の場合には、取得可能者ＩＤ「OOA」である管理者Ａの端末ａと、取得可能者ＩＤ「OOB」である設計者Ｂの端末ｂには、上記電子メールを送信するが、取得可能者ＩＤ「OOC」である設計者Ｃの端末ｃには、上記電子メールを送信しない。これにより、管理者Ａと、設計者Ｙの共同の設計者Ｂは、実験段階であるver.2.1.2のスキャンアプリ(a11)が、プログラム取得制御システム４に登録されたことを認識することができる。この場合、設計者Ｃは、電子メールによって、実験段階であるver.2.1.2のスキャンアプリ(a11)が登録されたことを認識することができないものの、設計者Ｃが端末ｃからプログラム取得制御システムにアクセスすれば、実験段階であるver.2.1.2のスキャンアプリ(a11)が登録されたことを認識することができる。
【００４４】
続いて、設計者Ｃがプログラム取得制御システムにアクセスし、実験段階であるver.2.1.2のスキャンアプリ(a11)を取得することを試みる場合について説明する。
【００４５】
まず、設計者Ｃは、端末ｃから通信ネットワーク２を介してプログラム取得制御システムにアクセスし、実験段階であるver.2.1.2のスキャンアプリ(a11)を取得する要求を行う（ステップＳ１１）。この取得要求には、要求者である設計者Ｃの設計者ＩＤ「OOC」と、要求対象であるプログラムのファイル名「yyy.c」が含まれている。これにより、プログラム取得制御システム４の送受信部４１は、操作者Ｃからプログラムの取得要求を受け付ける。
【００４６】
次に、プログラム取得制御システム４では、設計段階抽出部４４が、送受信部４１によって受信されたプログラムのファイル名「yyy.c」に基づいて、図６に示されているプログラム管理テーブルを検索することにより、対応する設計段階を示す設計段階情報「実験段階」を抽出する（ステップＳ１２）。更に、取得可能者抽出部４２が、設計段階抽出部４４によって抽出された設計段階情報「実験段階」に基づいて、図７に示されている取得可能者管理テーブルを検索することにより、対応する取得可能者ＩＤ「00A」，「00B」を抽出する（ステップＳ１２）。そして、取得可能者判断部４５は、取得可能者抽出部４２によって抽出された取得可能者ＩＤ「00A」，「00B」に、実験段階であるver.2.1.2のスキャンアプリ(a11)を取得する要求を行った設計者Ｃの設計者ＩＤ「00C」が含まれているかを判断する（ステップＳ１２）。ここでは、取得可能者ＩＤ「00A」，「00B」に、設計者ＩＤ「00C」が含まれていないという判断結果になるため、取得制限部４６は、設計者Ｃによるプログラムの取得を制限する（ステップＳ１３）。具体的には、取得制限部４６は、設計者Ｃによるver.2.1.2のスキャンアプリ(a11)の取得を禁止する。そして、送受信部４１は、通信ネットワーク２を介して端末ｃへ電子メールなどにより、プログラムを送信できない旨の通知を行う（ステップＳ１４）。
【００４７】
よって、この場合、設計者Ｃは、設計者Ｙが設計中のver.2.1.2のスキャンアプリ(a11)を取得することができない。このように、アプリの取得を制限することで、設計者Ｃが取得して組合せテストを行っても意味が無い、又は誤ったテスト結果が出るという事態を防止することができる。
【００４８】
なお、上記ステップＳ１１において、設計者Ｙの共同の設計者Ｂがver.2.1.2のスキャンアプリ(a11)を要求した場合には、上記ステップ１２において、取得可能者ＩＤ「00A」，「00B」に、設計者ＩＤ「00B」が含まれるという判断結果になるため、取得制限部４６は、設計者Ｂによるプログラムの取得を制限しない。
＜＜実施形態の主な効果＞＞
以上説明したように本実施形態によれば、プログラムのファイル名に応じてプログラムの設計段階を管理するプログラム管理ＤＢ４００１と、プログラムの設計段階に応じてプログラムの取得可能者を管理するプログラム管理ＤＢ４００２とを有する。そして、他の設計者から要求されたプログラムのファイル名に基づいてＤＢ４００１を検索し、対応する設計段階を抽出し、この設計段階に基づいてＤＢ４００２を検索し、対応する取得可能者を抽出する。そして、この取得可能者に、上記要求してきた設計者が含まれていれば、プログラムの要求者にプログラムの取得を認め、含まれていなければプログラムの取得を認めないようにする。これにより、プログラムの設計段階と他の設計者の立場に応じて、プログラムの取得の可否が自動的に決まるため、設計段階毎に各設計者のプログラムの取得権限を変更するという煩わしさを解消することができるという効果を奏する。
＜＜実施形態の補足＞＞
なお、上記各実施形態におけるプログラム取得制御システム４は、単一のコンピュータによって構築されてもよいし、各部（機能又は手段）を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。また、上記本実施形態のプログラム取得制御用プログラムが記憶された記録媒体、並びに、プログラム取得制御用プログラムが記憶されたＨＤ、及びこのＨＤを備えたコンピュータは、いずれもプログラム製品(Program Product)として、国内又は国外へ提供される。
【００４９】
また、上記実施形態では、図６乃至図８に示されているように、３つのテーブルで各情報を管理することにしているが、これに限るものではなく、３つのテーブルのうちの何れか２つのテーブルを１つにまとめてもよく、３つのテーブルの全てを１つのテーブルにまとめてもよい。このように複数のテーブルを１つにまとめた場合には、設計段階管理ＤＢ４００１、取得可能者管理ＤＢ４００２、及びアドレス管理ＤＢ４００３は、それぞれ個別のＤＢの名称を示すのではなく、１つのＤＢの中の特定の情報と特定の情報との関連性を示すことになる。
【符号の説明】
【００５０】
１  プログラム設計システム
２  通信ネットワーク
４  プログラム取得制御システム
４１  送受信部
４２  取得可能者抽出部（取得可能者抽出手段の一例）
４３  アドレス抽出部（アドレス抽出手段の一例）
４４  設計段階抽出部（設計段階抽出手段の一例）
４５  取得可能者判断部（判断手段の一例）
４６  取得制限部（制限手段の一例）
４９  記憶・読出処理部
４０００  記憶部
４００１  設計段階管理部ＤＢ（設計段階管理手段の一例）
４００２  取得可能者管理ＤＢ（取得可能者管理手段の一例）
４００３  アドレス管理ＤＢ（アドレス管理手段の一例）
【先行技術文献】
【特許文献】
【００５１】
【特許文献１】特開平６−２７４３３１号公報
【図１】
0005577915.tif 000002
【図２】
0005577915.tif 000003
【図３】
0005577915.tif 000004
【図４】
0005577915.tif 000005
【図５】
0005577915.tif 000006
【図６】
0005577915.tif 000007
【図７】
0005577915.tif 000008
【図８】
0005577915.tif 000009
【図９】
0005577915.tif 000010