(57)【特許請求の範囲】
【請求項１】
設計書に基づいてコンピュータプログラムを生成するプログラム生成部と、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理する設計書制御部と、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールするターゲット機器制御部と、
を有し、
前記設計書制御部は、
ターゲット機器が指定されると、前記指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトする
プログラム管理装置。
【請求項２】
前記設計書制御部は、
バージョン番号が指定されると、前記指定されたバージョン番号に対応する設計書をチェックアウトし、
前記設計書が修正されてチェックインされると、前記修正された設計書に前記バージョン番号とは異なる新たなバージョン番号を付与する
ことを特徴とする請求項１記載のプログラム管理装置。
【請求項３】
前記設計書は、当該設計書の重要度を示す設計書レベルを有し、
当該プログラム管理装置にアクセス可能なユーザのアクセスレベルを管理するアクセス制御部を更に備え、
前記設計書制御部は、第１のユーザから設計書のチェックアウト又はチェックインの指示を受けると、前記第１のユーザのアクセスレベルと、前記指示された設計書の設計書レベルとを比較し、前記第１のユーザのアクセスレベルが前記設計書レベル以下である場合、前記設計書レベルよりも大きいアクセスレベルを有する第２のユーザへの問い合わせ結果に基づき、前記第１のユーザに対してチェックイン又はチェックアウトを実行する
ことを特徴とする請求項２記載のプログラム管理装置。
【請求項４】
前記設計書制御部は、前記設計書レベルと前記アクセスレベルとの比較において、前記設計書レベルに重み付けを行うことができ、前記チェックインが指示された設計書の設計書レベルに対する重み付けを、前記チェックアウトが指示された前記設計書の設計レベルに対する重み付けよりも大きくする
ことを特徴とする請求項３記載のプログラム管理装置。
【請求項５】
コンピュータプログラムを管理するプログラム管理方法において、
設計書に基づいてコンピュータプログラムを生成し、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理し、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールし、
ターゲット機器が指定されると、前記指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトする
プログラム管理方法。
【請求項６】
コンピュータプログラムを管理するコンピュータプログラムであって、コンピュータに実行されると、
設計書に基づいてコンピュータプログラムを生成し、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理し、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールし、
ターゲット機器が指定されると、前記指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトする
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラムの技術に関する。
【背景技術】
【０００２】
従来、設計書等からコンピュータプログラム（以下「プログラム」という）を半自動的に生成する技術が存在する。これにより、プログラムを効率的に開発できる。
【０００３】
また、鉄道運行システム又は電力系統システム等のように社会的影響力の大きいシステムで用いられるプログラムは、一般的に、設計書を作成し、その設計書に基づいてプログラムを作成する、という手順で開発される。したがって、設計書とプログラムとの対応関係（例えば、修正内容等）を正しく管理する必要がある。
【０００４】
特許文献１には、設計情報とテンプレートとに基づいて複数のソースコードを生成するソースコード自動生成装置について記載されている。
【０００５】
特許文献２には、システム開発作業からシステムインテグレーション（以下「ＳＩ（Ｓｙｓｔｅｍ  Ｉｎｔｅｇｒａｔｉｏｎ）」という）作業までの工程において、ＳＩの対象となるファイル及びその関連ファイルを管理するシステムについて記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１０７０２５号公報
【特許文献２】特開２００６−９９４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、同じ機器では同じプログラムが実行される。しかしながら、同じ機器であっても、機器の納入先が異なる場合、又は機器の用途が多少異なる場合、それに対応するために、機器毎にプログラムを修正（又はカスタマイズ）することがある。このとき、各機器と修正内容を正しく把握していないと、その機器を使用した時に大きな問題が発生してしまう。
【０００８】
本発明の目的は、設計書及びプログラムと、そのプログラムが実行される機器との対応関係とを管理するプログラム管理装置を提供することにある。
【０００９】
本発明の別の目的は、設計書及びプログラムに施された修正と、そのプログラムが実行される機器との対応関係とを、適切に管理するプログラム管理装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一つの実施態様に従うプログラム管理装置は、設計書に基づいてコンピュータプログラムを生成するプログラム生成部と、設計書と、設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理する設計書制御部と、バージョン番号と、コンピュータプログラムが実行されるターゲット機器とが特定されると、バージョン番号に対応する前記コンピュータプログラムを、ターゲット機器にインストールするターゲット機器制御部とを有し、設計書制御部は、バージョン番号が指定されると、指定されたバージョン番号に対応する設計書をチェックアウトし、設計書が修正されてチェックインされると、修正された設計書にバージョン番号とは異なる新たなバージョン番号を付与する。
【００１１】
好適な実施形態では、前記設計書制御部は、ターゲット機器が指定されると、指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトしてもよい。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態に係るプログラム管理システムの模式図である。
【図２】図２は、プログラム管理装置の物理構成を示すブロック図である。
【図３】図３は、プログラム管理装置の機能構成を示すブロック図である。
【図４】図４は、信号機のオブジェクト設計書４１の一例である。
【図５】図５は、信号機のデータ設計書４２の一例である。
【図６】図６は、動作設計書４３の一例である。
【図７】図７は、各設計書から生成される中間情報の一例である。
【図８】図８は、中間情報から生成されるプログラムの一例である。
【図９】図９は、設計書管理テーブル２６の一例である。
【図１０】図１０は、ターゲット機器管理テーブル２７の一例である。
【図１１】図１１は、アクセス管理テーブル２８の一例である。
【図１２】図１２は、第１ユーザ装置に表示されるメニュー画面７１の一例である。
【図１３】図１３は、チェックアウト画面７２の一例である。
【図１４】図１４は、チェックアウト画面７２の別の一例である。
【図１５】図１５は、第１ユーザ装置に表示されるインストール確認画面７３の一例である。
【図１６】図１６は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートである。
【図１７】図１７は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートの変形例である。
【図１８】図１８は、チェックアウト又はチェックインに係る処理のフローチャートである。
【発明を実施するための形態】
【００１３】
本実施形態では、以下に述べるように、設計書と、プログラムと、そのプログラムが実行される機器との対応関係とを、適切に管理及び提示する。
【００１４】
図１は、本発明の一実施形態に係るプログラム管理システムの模式図である。
【００１５】
プログラム管理システム１は、ユーザが操作可能な第１ユーザ機器２及び第２ユーザ機器３と、プログラムを管理するプログラム管理装置５と、プログラムが実行されるターゲット機器４とを備える。ユーザ機器２，３と、プログラム管理装置５と、ターゲット機器４は、データを双方向に伝送可能な通信ネットワーク（以下「ネットワーク」という）で接続されている。例えば、ユーザ機器２，３とプログラム管理装置５は、第１ネットワーク６ａで接続されている。ターゲット機器４とプログラム管理装置５は、第２ネットワーク６ｂで接続されている。ユーザ機器２，３及びターゲット機器４は、１台であっても複数台であってもよい。第１ネットワーク６ａと第２ネットワーク６ｂは、１つのネットワークであってもよい。
【００１６】
第１ユーザ機器２は、例えば、プログラムの開発者が、設計書及びプログラム等を作成したり、カスタマイズしたり、デバッグしたりする際に使用する計算機である。第２ユーザ機器３は、例えば、プログラムの開発責任者が、プログラム開発者等から受ける各種要求（例えば、後述するチェックイン要求、又はチェックアウト要求）に対して、許可又は拒否等の回答を返す際に使用する計算機である。
【００１７】
チェックアウトとは、例えば、プログラムの開発者が、修正したい設計書又はプログラム等を、プログラム管理装置５から取得することを意味する。チェックインとは、例えば、プログラムの開発者が、修正（又は作成）した設計書又はプログラム等を、プログラム管理装置５に登録することを意味する。或るプログラム開発者がチェックアウト中の設計書又はプログラムはロックされ、他のプログラム開発者がチェックアウトできないようにしてもよい。
【００１８】
ユーザ機器２，３は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、記憶装置、及び通信インタフェース（以下「Ｉ／Ｆ」という）等を備える一般的な計算機から構成される。
【００１９】
ターゲット機器４は、開発されたプログラムを実行して、各種機能を実現する。本実施例におけるターゲット機器４は、鉄道用信号機（以下「信号機」という）とする。なお、同じ種類のターゲット機器４であっても、必ずしも同じプログラムがインストールされるとは限らない。例えば、同じ信号機であっても、納品する鉄道会社、又は信号機を設置する場所等によって、プログラムが部分的に異なる場合がある。
【００２０】
プログラム管理装置５は、設計書とプログラムとターゲット機器４との対応関係を管理する。プログラム管理装置５は、設計書とプログラムに、対応関係を有するバージョン番号を付与して管理する。プログラム管理装置５は、設計書から半自動的にプログラムを生成する。プログラム管理装置５は、その生成したプログラムを、インストール先のターゲット機器４向けにビルド（コンパイル）する。プログラム管理装置５は、そのビルドしたプログラムをターゲット機器４にインストールする。プログラム管理装置５は、自装置が管理する設計書及びプログラム等にアクセス可能なユーザを管理する。プログラム管理装置５は、設計書又はプログラムのチェックイン又はチェックアウト等を処理する。プログラム管理装置５の詳細については後述する。
【００２１】
図２は、プログラム管理装置の物理構成を示すブロック図である。プログラム管理装置５は、例えば、ＣＰＵ１１と、メモリ１２と、記憶装置１３と、第１通信Ｉ／Ｆ１４と、第２通信Ｉ／Ｆ１５とを備え、各要素１１〜１５は、双方向にデータ通信可能なバス１６で接続されている。
【００２２】
ＣＰＵ１１は、プログラムに含まれる処理を実行し、後述する各種機能を実現する。ＣＰＵ１１は、記憶装置１３からプログラムを読み出して実行する。
【００２３】
メモリ１２は、ＣＰＵ１１によってプログラムが実行される際に必要なデータを一時的に保持する。メモリ１２は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。
【００２４】
記憶装置１３は、プログラム、及び、プログラムが実行される際に必要なデータ等を永続的に保持する。記憶装置１３は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、又はフラッシュメモリ１２等で構成される。
【００２５】
第１通信Ｉ／Ｆ１４は、第１ネットワーク６ａに接続され、ユーザ機器２，３とのデータの送受信を制御する。第１通信Ｉ／Ｆ１４は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）用ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等で構成される。
【００２６】
第２通信Ｉ／Ｆ１５は、第２ネットワーク６ｂに接続され、ターゲット機器４とのデータの送受信を制御する。第２通信Ｉ／Ｆ１５は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）用ＮＩＣ、又はシリアルバス通信用ボード等で構成される。
【００２７】
図３は、プログラム管理装置の機能構成を示すブロック図である。プログラム管理装置５は、例えば、プログラム生成部２１と、設計書制御部２２と、ターゲット機器制御部２３と、アクセス制御部２４と、ビルド部２５と、設計書管理部２６と、ターゲット機器管理部２７と、アクセス管理テーブル２８とを有する。
【００２８】
プログラム生成部２１は、開発者によって作成された設計書に基づき、所定のフォーマットに基づいて記述される中間情報を生成する。そして、プログラム生成部２１は、その中間情報に基づいて、対応するプログラムを半自動的に生成する。以下、図４〜図８を用いて、上記の設計書、中間情報、及びプログラムについて具体的に説明する。
【００２９】
図４は、信号機のオブジェクト設計書４１の一例である。オブジェクト設計書４１は、データ設計書４２の項目を定義する。オブジェクト設計書４１は、例えば、オブジェクト番号と、オブジェクト名と、設計書レベルと、属性番号と、属性名と、識別キーと、必須キーと、データ型と、データサイズとを有する。
【００３０】
オブジェクト番号は、当該オブジェクト設計書４１を一意に識別可能な番号である。オブジェクト名は、当該オブジェクト設計書４１の名称である。
【００３１】
設計書レベルは、当該オブジェクト設計書４１の重要度を示す。重要度は、この設計書を変更した場合に、プログラム全体又は社会全体に与える影響の大きさ等に基づいて設定される。本実施例では、この値が大きいほど、この設計書の重要度が大きいとする。
【００３２】
属性番号は、当該オブジェクト設計書４１に基づいて生成されるデータのとり得る各属性を一意に識別可能な番号である。
【００３３】
属性名は、当該オブジェクト設計書４１に基づいて生成されるデータのとり得る各属性の名称である。
【００３４】
識別キーは、当該オブジェクト設計書４１に基づいて生成されるデータにおいて、各データを識別するために用いられる属性を示すキーである。例えば、オブジェクト設計書４１において、識別キーの「○」印は、「駅名」と「設備名」なので、各データは「駅名」と「設備名」の属性値によって識別される。
【００３５】
必須キーは、当該オブジェクト設計書４１に基づいて生成されるデータにおいて、必須の属性を示す。例えば、オブジェクト設計書４１において、必須キーの「○」印は、「駅名」と「設備名」と「表示状態」と「故障有無」なので、各データは全ての属性を必須とする。
【００３６】
データ型は、属性値がとり得るデータの型を示す。例えば、オブジェクト設計書４１において、「駅名」及び「設備名」のデータ型は「文字列」であるので、「駅名」及び「設備名」の属性がとり得る属性値は「文字列」である。同様に、「表示状態」の属性がとり得る属性値は「選択値」であり、「故障有無」の属性がとり得る属性値は「真偽値」である。
【００３７】
データサイズは、属性値がとり得るデータのサイズを示す。例えば、オブジェクト設計書４１において、「駅名」及び「設備名」の属性がとり得る属性値のデータサイズは「８文字」である。
【００３８】
図５は、信号機のデータ設計書４２の一例である。データ設計書４２は、データの項目を定義する。データ設計書４２は、オブジェクト設計書４１よって定義される。データ設計書４２は、例えば、オブジェクト番号と、オブジェクト名と、データ設計書レベルと、データ番号と、駅名と、設備名と、表示状態と、故障有無を有する。
【００３９】
オブジェクト番号とオブジェクト名には、当該データ設計書４２の項目を定義するオブジェクト設計書４１のオブジェクト番号とオブジェクト名と同じ値が設定される。設計書レベルは、当該データ設計書４２の重要度を示す。データ番号は、当該データ設計書４２に基づいて生成される各データを一意に識別可能な番号である。
【００４０】
駅名、設備名、表示状態、及び故障有無は、オブジェクト設計書４１の属性名と対応する。駅名は、各データが使用される信号機が設置される駅の名称である。設備名は、当該データが使用される信号機が設置される方向（上り方面か下り方面か）を示す名称である。表示状態は、当該データが使用される信号機における、或る時点の信号の表示の状態を示す。或る時点の信号の表示はその時々で異なり得るので、表示状態の属性値は「可変」とする。故障有無は、当該データが使用される信号機において、或る時点の故障の有無の状態を示す。或る時点の故障の有無の状態はその時々で異なり得るので、故障有無の属性値は「可変」とする。
【００４１】
図５のデータ設計書４２に基づいて生成されるデータ番号「１」のデータは、属性名「駅名」に対する属性値「東京」、属性名「設備名」に対する属性値「上り」を有する。オブジェクト設計書４１によって「駅名」と「設備名」は識別キーと定義されているので、データ番号「１」のデータは、「東京駅」と「上り」の２つの属性値の組み合わせによって識別される。
【００４２】
図６は、動作設計書４３の一例である。動作設計書４３は、データ設計書４２の或る属性における動作条件を定義する。動作設計書４３は、アクター番号と、アクター名称と、条件番号と、設計書レベルと、条件名と、条件内容と、実行内容とを有する。
【００４３】
アクター番号は、当該動作設計書４３を一意に識別可能な番号である。アクター名は、当該動作設計書４３の名称である。設計書レベルは、当該動作設計書４３の重要度を示す。
【００４４】
条件番号は、当該動作設計書４３に基づいて生成される各動作条件を一意に識別可能な番号である。条件内容は、各動作条件が有する条件の内容である。実行内容は、各動作条件において、条件内容が満たされた場合に実行される内容である。
【００４５】
例えば、条件番号「１」の動作条件は、条件名が「先行列車有」であり、保護区間に先行列車が「在線」しており、且つ、故障有無が「無」の場合、信号機の表示状態を「注意」とすることを示す。ここで、保護区間とは、路線において所定の間隔で区切られた区間である。一般的に、保護区間に存在し得る列車の数は予め決められている。列車の追突事故を防止するためである。
【００４６】
図７は、各設計書から生成される中間情報の一例である。プログラム生成部２１は、オブジェクト設計書４１からオブジェクト中間情報５１を生成する。プログラム生成部２１は、データ設計書４２からデータ中間情報５２を生成する。プログラム生成部２１は、動作設計書４３から動作中間情報５３を生成する。中間情報は、所定のフォーマットで記載される。所定のフォーマットとは、例えば、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）等である。
【００４７】
図８は、中間情報から生成されるプログラムの一例である。プログラム生成部２１は、オブジェクト中間情報５１、データ中間情報５２、及び動作中間情報５３に基づいて、プログラム（ソースコード）を半自動的に生成する。プログラムは、例えば、Ｃ言語又はＪａｖａ（登録商標）言語等のプログラム言語で記述される。図３の説明に戻る。
【００４８】
設計書制御部２２は、各設計書と、それら設計書から生成されるプログラムとに、対応関係を有するバージョン番号を付与し、設計書管理テーブル２６に登録する。設計書制御部２２は、設計書が修正された場合、その修正された設計書（以下「修正設計書」という）と、その修正設計書から生成されるプログラム（以下「修正プログラム」という）とに対して、新たなバージョン番号を付与し、設計書管理テーブル２６に登録する。
【００４９】
図９は、設計書管理テーブル２６の一例である。設計書管理テーブル２６は、修正番号と、設計書名と、修正前バージョン番号と、修正後バージョン番号と、修正差分と、修正内容とを有する。
【００５０】
修正番号は、設計書の修正を一意に識別可能な番号である。複数の設計書が同じ目的で修正された場合は、同じ修正番号が付与される。例えば、或る１つの不具合を修正するために複数の設計書が修正された場合、同じ修正番号が付与される（修正番号「１」参照）。
【００５１】
設計書名は、修正された設計書の名称である。修正前バージョン番号は、修正される前の設計書のバージョン番号である。修正後バージョン番号は、修正後の設計書に付与されたバージョン番号である。修正差分は、修正前の設計書と修正後の設計書との差分である。すなわち、設計書において修正された部分を示す。修正目的には、修正の目的が登録される。
【００５２】
例えば、設計書管理テーブル２６の修正番号「２」は、「保護区間オブジェクト設計書」と「信号機オブジェクト設計書」が修正されたことを示す。そして、「信号機オブジェクト設計書」のバージョン番号が「１．１」から「１．２」に更新されたことを示す。そして、「信号機オブジェクト設計書」は、属性番号「３」の内容が「変更」されたことを示す。図３の説明に戻る。
【００５３】
ターゲット機器制御部２３は、ターゲット機器管理テーブル２７によって、ターゲット機器４を管理する。ターゲット機器制御部２３は、指定されたターゲット機器４に、プログラムをインストールする。ターゲット機器制御部２３は、指定されたターゲット機器４から、そのターゲット機器４にインストールされているプログラムの情報を取得する。以下、ターゲット機器管理テーブル２７について説明する。
【００５４】
図１０は、ターゲット機器管理テーブル２７の一例である。ターゲット機器管理テーブル２７は、機器番号と、機器名と、機器アドレスとを有する。
【００５５】
機器番号は、ターゲット機器管理テーブル２７において、ターゲット機器４を一意に識別可能な番号である。機器名は、ターゲット機器４を識別する名称である。機器アドレスは、ターゲット機器４に設定されたアドレスである。機器アドレスは、例えば、ＩＰアドレス等である。修正番号は、ターゲット機器４にインストールされているプログラムに対して施された修正の修正番号を示す。この修正番号は、バージョン管理テーブルの修正番号に対応する。
【００５６】
例えば、ターゲット機器管理テーブル２７において、機器番号「１」のターゲット機器４の名称は「Ａ社向けＣ装置」であり、「１９２．１６８．０．１」のＩＰアドレスが設定されていることを示す。図３の説明に戻る。
【００５７】
アクセス制御部２４は、アクセス管理テーブル２８によって、ユーザのプログラム管理装置５へのアクセス権を管理する。アクセス制御部２４は、ユーザがある設計書等のチェックイン又はチェックアウト等を要求してきた場合、そのユーザのアクセスレベルに基づいて、アクセス可否を決定する。その際、アクセス制御部２４は、その設計書の設計書レベルを考慮してアクセス可否を決定してもよい。さらに、アクセス制御部２４は、その設計書レベルに満たないユーザからアクセス要求があった場合、その設計書の管理者又は開発責任者等にアクセス可否を問い合わせてもよい。
【００５８】
図１１は、アクセス管理テーブル２８の一例である。アクセス管理テーブル２８は、ユーザ番号と、ユーザ名と、アクセスレベルと、担当機器番号を有する。
【００５９】
ユーザ番号は、アクセス管理テーブル２８において、ユーザを一意に識別可能な番号である。ユーザ名は、ユーザの名称である。例えば、ユーザ名を、設計書等にアクセスする際のログイン名としてもよい。アクセスレベルは、当該ユーザがアクセス可能なレベルを示す。本実施例では、アクセスレベルが大きいユーザの方が、上位のアクセス権を有する。アクセスレベルは、設計書レベルと比較される。アクセスレベルが設計書レベル以上のユーザは、その設計書にアクセス（チェックイン又はチェックアウト）できる。また、アクセスレベルが設計書レベル未満のユーザは、その設計書レベル以上のユーザにアクセス許可を求めることができる。担当機器番号は、当該ユーザが担当しているターゲット機器４の機器番号である。この機器番号は、ターゲット機器管理テーブル２７の機器番号に対応する。
【００６０】
例えば、ユーザ番号「１」の「Ａさん」は「Ａ社向けＣ装置」の開発メンバーであるとする。この場合、「Ａさん」のアクセスレベルは「１」、機器番号は「１」（すなわち「Ａ社向けＣ装置」）となる。そして、ユーザ番号「２」の「Ｂさん」は「Ａ社向けＣ装置」の開発リーダであるとする。この場合、「Ｂさん」のアクセスレベルは「４」、機器番号は「１」となる。この場合、アクセスレベル「１」の「Ａさん」は、設計書レベル「３」の設計書をチェックアウトできない。そこで、同じ「Ａ社向けＣ装置」を担当しており、且つ、設計書レベルより大きいアクセスレベルを有する「Ｂさん」にチェックアウトの許可を求める。ここで、「Ｂさん」が許可した場合、「Ａさん」はその設計書をチェックアウトできる。この処理の詳細については後述する。
【００６１】
図１２は、第１ユーザ装置に表示されるメニュー画面７１の一例である。メニュー画面７１は、例えば、第１ユーザ機器２に表示され、ユーザによって操作される。メニュー画面７１は、「新規作成」ボタン、「チェックアウト」ボタン、「チェックイン」ボタン、「プログラム生成」ボタン、「ビルド＆インストール」ボタン、「インストール確認ボタン」等を有する。
【００６２】
「新規作成」ボタンが押下されると、設計書の新規作成画面が表示される。「チェックアウト」ボタンが押下されると、チェックアウト可能な設計書が表示される（図１３参照）。「チェックイン」ボタンが押下されると、チェックイン可能な設計書が表示される。「プログラム生成」ボタンが押下されると、設計書に基づいて、プログラム（ソースコード）が生成される。ビルドボタンが押下されると、指定されたターゲット機器４に合わせてプログラムがビルド（コンパイル）される。そして、ビルドされたプログラムが、指定されたターゲット機器４にインストールされる。インストール確認ボタンが押下されると、指定されたターゲット機器４にインストールされているプログラムと、それに対応する設計書及び修正履歴等が表示される（図１５参照）。
【００６３】
図１３は、チェックアウト画面７２の一例である。チェックアウト画面７２は、メニューから「チェックアウト」ボタンが押下されると表示される。チェックアウト画面７２は、例えば、第１ユーザ装置２に表示される。チェックアウト画面７２には、選択欄と、設計書と、プログラムと、バージョン番号と、ターゲット機器とが対応付けて表示される。
【００６４】
ユーザは、選択欄１０１にチェックを入れてチェックアウトしたい設計書を選択する。そして、実行ボタン１０２を押下すると、ユーザは、その選択した設計書を、第１ユーザ機器２に取得（チェックアウト）できる。
【００６５】
ユーザは、例えば、バージョン番号の項目に表示されるバージョン番号選択ボタン１０３を押下し、バージョン番号を選択できる。この場合、ユーザは、ここで選択したバージョン番号の設計書をチェックアウトできる。変更後のバージョン番号に対応付けられているターゲット機器が変更前とは異なる場合、バージョン番号の変更に伴って、ターゲット機器１０４も変更される。
【００６６】
一方、ユーザは、例えば、ターゲット機器名に表示されるターゲット機器選択ボタン１０５を押下し、ターゲット機器を選択できる。この場合、ユーザは、ここで選択したターゲット機器にインストールされているバージョン番号の設計書をチェックアウトできる。変更後のターゲット機器に対応付けられているバージョン番号が変更前とは異なる場合、ターゲット機器の変更に伴って、バージョン番号１０６も変更される。変更後のチェックアウト画面７２を図１４に示す。
【００６７】
図１４は、チェックアウト画面７２の別の一例である。例えば、バージョン番号変更ボタン１０３を操作してバージョン番号１１１を「１．２」を「１．３」に変更する。すると、ターゲット機器１１２も「Ａ社向けＣ装置」から「Ｂ社向けＣ装置」に変更される。
【００６８】
例えば、ターゲット機器選択ボタン１０５を操作してターゲット機器１１３を「Ａ社向けＣ装置」から「Ｅ社向けＣ装置」に変更する。すると、バージョン番号１１４も「１．４」から「１．５」に変更される。
【００６９】
これにより、ユーザは、設計書のバージョン番号とターゲット機器４との対応関係を確認しながら、所望の設計書をチェックアウトできる。よって、ユーザが間違った設計書をチェックアウトするというミスを防止できる。
【００７０】
図１５は、第１ユーザ装置に表示されるインストール確認画面７３の一例である。インストール確認画面７３は、メニュー画面７１から「インストール確認」ボタンが押下されると表示される。
【００７１】
インストール確認画面７３では、各ターゲット機器４にインストールされているプログラムのバージョン番号及び修正履歴等を一覧できる。例えば、インストール確認画面７３では、「Ａ社向けＣ装置」のプログラムには、修正番号「１」と「３」の修正が反映されていることがわかる。そして、それらの修正の内容も一目で確認できる。
【００７２】
これにより、ユーザは、各ターゲット機器４に対する修正漏れ又は間違った修正等を容易に確認できる。
【００７３】
インストール確認画面７３には、各ターゲット機器４に対応するチェックアウトボタン１２１が表示されている。ユーザは、このチェックアウトボタン１２１を押下することにより、該当するターゲット機器４のプログラムをチェックアウトできる。これにより、誤ったターゲット機器のプログラムをチェックアウトするというミスを防止できる。
【００７４】
図１６は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートである。
【００７５】
ユーザは、第１ユーザ機器２に表示されたチェックアウト画面７２を操作して、チェックアウトしたい設計書を選択し、プログラム管理装置５にチェックアウトを要求する（Ｓ１０１）。
【００７６】
アクセス制御部２４は、第１ユーザ機器２からチェックアウトの要求を受けると、その要求元のユーザのアクセス権に基づいて、各設計書のチェックアウトを許可するか否かを判断する。この判断方法については後述する。そして、アクセス制御部２４によってチェックアウトが許可された場合、設計書制御部２２は、チェックアウトが要求された設計書を第１ユーザ機器２に提供する（Ｓ１０２）。
【００７７】
ユーザは、第１ユーザ機器２を操作して、チェックアウトした設計書を修正する。そして、ユーザは、修正した設計書のチェックインを要求する（Ｓ１０３）。
【００７８】
アクセス制御部２４は、第１ユーザ機器２から修正設計書のチェックインの要求を受けると、その要求元のユーザのアクセス権に基づいて、各設計書のチェックインを許可するか否かを判断する。この判断方法については後述する。そして、アクセス制御部２４によってチェックインが許可された場合、設計書制御部２２は、チェックインが要求された設計書を設計書管理テーブル２６に登録する。その際、設計書制御部２２は、修正された設計書に新たなバージョン番号を付与する（Ｓ１０４）。
【００７９】
プログラム生成部２１は、第１ユーザ機器２からプログラム生成の要求を受けると、まず中間情報を生成する。そして、プログラム生成部２１は、その生成した中間情報に基づいて、プログラム（ソースコード）を生成する（Ｓ１０５）。
【００８０】
ユーザは、プログラム及びバージョン番号を選択し、そのバージョン番号のプログラムを実行させたいターゲット機器４を選択し、ビルド及びインストールを要求する（Ｓ１０６）。
【００８１】
ビルド部２５は、ステップＳ１０６で指定されたバージョン番号のプログラムを、同じくステップＳ１０６で指定されたターゲット機器４において動作するようにビルド（コンパイル）する。そして、ビルド部２５は、そのビルドしたプログラムを、同じくステップＳ１０６で指定されたターゲット機器４にインストールする（Ｓ１０７）。
【００８２】
ターゲット機器制御部２３は、各ターゲット機器４にインストールされているプログラムの修正に関する情報を、第１ユーザ機器２の画面に表示する（Ｓ１０８）。
【００８３】
以上の処理によれば、ユーザは、修正内容とターゲット機器４とバージョン番号との対応関係を確認しながら、設計書又はプログラムをチェックイン又はチェックアウトできる。また、各ターゲット機器４に反映された修正内容も一覧で確認できる。これにより、ユーザが設計書を修正する際に生じやすいミスを防止できる。
【００８４】
図１７は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートの変形例である。図１７に示すフローチャートは、まず修正したいターゲット機器４を選択して、そのターゲット機器４にインストールされているプログラムに対応する設計書をチェックアウトする点において、図１６に示すフローチャートと異なる。
【００８５】
ユーザは、表示されたインストール確認画面７３において（Ｓ２０１）、修正したいターゲット機器４を選択し（Ｓ２０２）、チェックアウトを要求する（Ｓ２０３）。
【００８６】
ステップＳ２０４〜Ｓ２０７の処理は、図１６のステップＳ１０２〜Ｓ１０５の処理と同じなので説明を省略する（Ｓ２０４〜Ｓ２０７）。
【００８７】
そして、ビルド部２５は、ステップＳ２０７で生成されたプログラムを、ステップＳ２０２で指定されたターゲット機器４において動作するようにビルド（コンパイル）する。そして、ビルド部２５は、ステップＳ２０２で指定されたターゲット機器４に、そのビルドしたプログラムをインストールする（Ｓ２０８）。
【００８８】
ステップＳ２０９の処理は、図１６のステップＳ１０８の処理と同じなので説明を省略する。
【００８９】
以上の処理によれば、図１６のフローチャートと比較して、所望のターゲット機器のプログラムをチェックアウト及びチェックインできる。よって、ユーザが設計書を修正する際に発生し得るミスをさらに防止できる。
【００９０】
図１８は、チェックアウト又はチェックインに係る処理のフローチャートである。当該フローチャートは、図１６及び図１７のフローチャートのチェックイン又はチェックアウトの際に実行される。
【００９１】
アクセス制御部２４は、アクセス管理テーブル２８から、アクセス要求元のユーザのアクセスレベルを取得する（Ｓ３０１）。
【００９２】
アクセス制御部２４は、ユーザからのアクセス要求がチェックアウト又はチェックインのいずれであるかを判定する（Ｓ３０２）。
【００９３】
ユーザからのアクセス要求がチェックアウトの場合（Ｓ３０２：チェックアウト）、アクセス制御部２４は、チェックアウト要求された設計書の設計書レベルはそのままとして（Ｓ３０３）、ステップＳ３０５の処理に進む。
【００９４】
ユーザからのアクセスがチェックインの場合（Ｓ３０２：チェックイン）、アクセス制御部２４は、チェックイン要求された設計書の設計書レベルを調整（例えば、元の設計書レベルに「２」を加算）して（Ｓ３０４）、ステップＳ３０５の処理に進む。
【００９５】
アクセス制御部２４は、ユーザのアクセスレベルが、調整した設計書レベル以下であるか否かを判定する（Ｓ３０５）。
【００９６】
ユーザのアクセスレベルが、調整した設計書レベルよりも大きい場合（Ｓ３０５：ＮＯ）、アクセス制御部２４は、ステップＳ３０９の処理に進む。
【００９７】
ユーザのアクセスレベルが、調整した設計書レベル以下の場合（Ｓ３０５：ＹＥＳ）、アクセス制御部２４は、調整した設計書レベルよりも大きいアクセスレベルを有するユーザに、チェックアウト又はチェックインの許可を求める（Ｓ３０６）。
【００９８】
許可が得られなかった場合（Ｓ３０７：ＮＯ）、アクセス制御部２４は、ユーザからのチェックイン又はチェックアウトを拒否し（Ｓ３０８）、当該処理を終了する（ＥＮＤ）
【００９９】
許可が得られた場合（Ｓ３０７：ＹＥＳ）、アクセス制御部２４は、ユーザにチェックイン又はチェックアウトを許可し（Ｓ３０９）、当該処理を終了する（ＥＮＤ）。
【０１００】
以上の処理によれば、設計書の重要度に基づいて、アクセスをコントロールできる。すなわち、修正された場合に影響度の大きい設計書は、アクセスレベルの高いユーザ、若しくはアクセスレベルの高いユーザから許可を得たユーザのみが、チェックイン又はチェックアウトできる。また、チェックアウトよりもチェックインの調整後の設計書レベルを大きくすることによって、チェックアウトはできても、チェックインはアクセスレベルの高いユーザ（例えば、開発責任者等）の許可を得なければできないようにできる。これにより、重要度の大きい設計書に誤った修正が施され、大きな問題が発生することを防止できる。
【０１０１】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【０１０２】
上述のアクセスレベルの判定を、チェックイン及びチェックアウト時に限られない。例えば、プログラムをビルドする時、又はビルドしたプログラムをターゲット機器にインストールする時等にアクセスレベルの判定を行ってもよい。
【０１０３】
プログラム管理装置が対応付けて管理する対象は、設計書と、プログラムと、修正内容と、ターゲット機器に限られない。プログラム管理装置は、例えばターゲット機器の開発スケジュール、及びターゲット機器の取扱説明書等とを合わせて対応付けて管理してもよい。
【符号の説明】
【０１０４】
１…プログラム管理システム、２…第１ユーザ機器、３…第２ユーザ機器、４…ターゲット機器、５…プログラム管理装置、６ａ…第１ネットワーク、６ｂ…第２ネットワーク
【図１】
0005676417.tif 000002
【図２】
0005676417.tif 000003
【図３】
0005676417.tif 000004
【図４】
0005676417.tif 000005
【図５】
0005676417.tif 000006
【図６】
0005676417.tif 000007
【図７】
0005676417.tif 000008
【図８】
0005676417.tif 000009
【図９】
0005676417.tif 000010
【図１０】
0005676417.tif 000011
【図１１】
0005676417.tif 000012
【図１２】
0005676417.tif 000013
【図１３】
0005676417.tif 000014
【図１４】
0005676417.tif 000015
【図１５】
0005676417.tif 000016
【図１６】
0005676417.tif 000017
【図１７】
0005676417.tif 000018
【図１８】
0005676417.tif 000019