説明

コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラム

【課題】設計書及びコンピュータプログラムに施される修正を適切に管理する。
【解決手段】設計書に基づいてコンピュータプログラムを生成するプログラム生成部と、設計書と、設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理する設計書制御部と、バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、バージョン番号に対応する前記コンピュータプログラムを、ターゲット機器にインストールするターゲット機器制御部とを有し、設計書制御部は、バージョン番号が指定されると、指定されたバージョン番号に対応する設計書をチェックアウトし、設計書が修正されてチェックインされると、修正された設計書にバージョン番号とは異なる新たなバージョン番号を付与するプログラム管理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータプログラム管理装置、コンピュータプログラム管理方法、及びコンピュータプログラムを管理するコンピュータプログラムの技術に関する。
【背景技術】
【0002】
従来、設計書等からコンピュータプログラム(以下「プログラム」という)を半自動的に生成する技術が存在する。これにより、プログラムを効率的に開発できる。
【0003】
また、鉄道運行システム又は電力系統システム等のように社会的影響力の大きいシステムで用いられるプログラムは、一般的に、設計書を作成し、その設計書に基づいてプログラムを作成する、という手順で開発される。したがって、設計書とプログラムとの対応関係(例えば、修正内容等)を正しく管理する必要がある。
【0004】
特許文献1には、設計情報とテンプレートとに基づいて複数のソースコードを生成するソースコード自動生成装置について記載されている。
【0005】
特許文献2には、システム開発作業からシステムインテグレーション(以下「SI(System Integration)」という)作業までの工程において、SIの対象となるファイル及びその関連ファイルを管理するシステムについて記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−107025号公報
【特許文献2】特開2006−99452号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般的に、同じ機器では同じプログラムが実行される。しかしながら、同じ機器であっても、機器の納入先が異なる場合、又は機器の用途が多少異なる場合、それに対応するために、機器毎にプログラムを修正(又はカスタマイズ)することがある。このとき、各機器と修正内容を正しく把握していないと、その機器を使用した時に大きな問題が発生してしまう。
【0008】
本発明の目的は、設計書及びプログラムと、そのプログラムが実行される機器との対応関係とを管理するプログラム管理装置を提供することにある。
【0009】
本発明の別の目的は、設計書及びプログラムに施された修正と、そのプログラムが実行される機器との対応関係とを、適切に管理するプログラム管理装置を提供することにある。
【課題を解決するための手段】
【0010】
本発明の一つの実施態様に従うプログラム管理装置は、設計書に基づいてコンピュータプログラムを生成するプログラム生成部と、設計書と、設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理する設計書制御部と、バージョン番号と、コンピュータプログラムが実行されるターゲット機器とが特定されると、バージョン番号に対応する前記コンピュータプログラムを、ターゲット機器にインストールするターゲット機器制御部とを有し、設計書制御部は、バージョン番号が指定されると、指定されたバージョン番号に対応する設計書をチェックアウトし、設計書が修正されてチェックインされると、修正された設計書にバージョン番号とは異なる新たなバージョン番号を付与する。
【0011】
好適な実施形態では、前記設計書制御部は、ターゲット機器が指定されると、指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトしてもよい。
【図面の簡単な説明】
【0012】
【図1】図1は、本発明の一実施形態に係るプログラム管理システムの模式図である。
【図2】図2は、プログラム管理装置の物理構成を示すブロック図である。
【図3】図3は、プログラム管理装置の機能構成を示すブロック図である。
【図4】図4は、信号機のオブジェクト設計書41の一例である。
【図5】図5は、信号機のデータ設計書42の一例である。
【図6】図6は、動作設計書43の一例である。
【図7】図7は、各設計書から生成される中間情報の一例である。
【図8】図8は、中間情報から生成されるプログラムの一例である。
【図9】図9は、設計書管理テーブル26の一例である。
【図10】図10は、ターゲット機器管理テーブル27の一例である。
【図11】図11は、アクセス管理テーブル28の一例である。
【図12】図12は、第1ユーザ装置に表示されるメニュー画面71の一例である。
【図13】図13は、チェックアウト画面72の一例である。
【図14】図14は、チェックアウト画面72の別の一例である。
【図15】図15は、第1ユーザ装置に表示されるインストール確認画面73の一例である。
【図16】図16は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートである。
【図17】図17は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートの変形例である。
【図18】図18は、チェックアウト又はチェックインに係る処理のフローチャートである。
【発明を実施するための形態】
【0013】
本実施形態では、以下に述べるように、設計書と、プログラムと、そのプログラムが実行される機器との対応関係とを、適切に管理及び提示する。
【0014】
図1は、本発明の一実施形態に係るプログラム管理システムの模式図である。
【0015】
プログラム管理システム1は、ユーザが操作可能な第1ユーザ機器2及び第2ユーザ機器3と、プログラムを管理するプログラム管理装置5と、プログラムが実行されるターゲット機器4とを備える。ユーザ機器2,3と、プログラム管理装置5と、ターゲット機器4は、データを双方向に伝送可能な通信ネットワーク(以下「ネットワーク」という)で接続されている。例えば、ユーザ機器2,3とプログラム管理装置5は、第1ネットワーク6aで接続されている。ターゲット機器4とプログラム管理装置5は、第2ネットワーク6bで接続されている。ユーザ機器2,3及びターゲット機器4は、1台であっても複数台であってもよい。第1ネットワーク6aと第2ネットワーク6bは、1つのネットワークであってもよい。
【0016】
第1ユーザ機器2は、例えば、プログラムの開発者が、設計書及びプログラム等を作成したり、カスタマイズしたり、デバッグしたりする際に使用する計算機である。第2ユーザ機器3は、例えば、プログラムの開発責任者が、プログラム開発者等から受ける各種要求(例えば、後述するチェックイン要求、又はチェックアウト要求)に対して、許可又は拒否等の回答を返す際に使用する計算機である。
【0017】
チェックアウトとは、例えば、プログラムの開発者が、修正したい設計書又はプログラム等を、プログラム管理装置5から取得することを意味する。チェックインとは、例えば、プログラムの開発者が、修正(又は作成)した設計書又はプログラム等を、プログラム管理装置5に登録することを意味する。或るプログラム開発者がチェックアウト中の設計書又はプログラムはロックされ、他のプログラム開発者がチェックアウトできないようにしてもよい。
【0018】
ユーザ機器2,3は、例えば、CPU(Central Processing Unit)、メモリ、記憶装置、及び通信インタフェース(以下「I/F」という)等を備える一般的な計算機から構成される。
【0019】
ターゲット機器4は、開発されたプログラムを実行して、各種機能を実現する。本実施例におけるターゲット機器4は、鉄道用信号機(以下「信号機」という)とする。なお、同じ種類のターゲット機器4であっても、必ずしも同じプログラムがインストールされるとは限らない。例えば、同じ信号機であっても、納品する鉄道会社、又は信号機を設置する場所等によって、プログラムが部分的に異なる場合がある。
【0020】
プログラム管理装置5は、設計書とプログラムとターゲット機器4との対応関係を管理する。プログラム管理装置5は、設計書とプログラムに、対応関係を有するバージョン番号を付与して管理する。プログラム管理装置5は、設計書から半自動的にプログラムを生成する。プログラム管理装置5は、その生成したプログラムを、インストール先のターゲット機器4向けにビルド(コンパイル)する。プログラム管理装置5は、そのビルドしたプログラムをターゲット機器4にインストールする。プログラム管理装置5は、自装置が管理する設計書及びプログラム等にアクセス可能なユーザを管理する。プログラム管理装置5は、設計書又はプログラムのチェックイン又はチェックアウト等を処理する。プログラム管理装置5の詳細については後述する。
【0021】
図2は、プログラム管理装置の物理構成を示すブロック図である。プログラム管理装置5は、例えば、CPU11と、メモリ12と、記憶装置13と、第1通信I/F14と、第2通信I/F15とを備え、各要素11〜15は、双方向にデータ通信可能なバス16で接続されている。
【0022】
CPU11は、プログラムに含まれる処理を実行し、後述する各種機能を実現する。CPU11は、記憶装置13からプログラムを読み出して実行する。
【0023】
メモリ12は、CPU11によってプログラムが実行される際に必要なデータを一時的に保持する。メモリ12は、例えばDRAM(Dynamic Random Access Memory)等で構成される。
【0024】
記憶装置13は、プログラム、及び、プログラムが実行される際に必要なデータ等を永続的に保持する。記憶装置13は、例えば、HDD(Hard Disk Drive)、又はフラッシュメモリ12等で構成される。
【0025】
第1通信I/F14は、第1ネットワーク6aに接続され、ユーザ機器2,3とのデータの送受信を制御する。第1通信I/F14は、例えば、Ethernet(登録商標)用NIC(Network Interface Card)等で構成される。
【0026】
第2通信I/F15は、第2ネットワーク6bに接続され、ターゲット機器4とのデータの送受信を制御する。第2通信I/F15は、例えば、Ethernet(登録商標)用NIC、又はシリアルバス通信用ボード等で構成される。
【0027】
図3は、プログラム管理装置の機能構成を示すブロック図である。プログラム管理装置5は、例えば、プログラム生成部21と、設計書制御部22と、ターゲット機器制御部23と、アクセス制御部24と、ビルド部25と、設計書管理部26と、ターゲット機器管理部27と、アクセス管理テーブル28とを有する。
【0028】
プログラム生成部21は、開発者によって作成された設計書に基づき、所定のフォーマットに基づいて記述される中間情報を生成する。そして、プログラム生成部21は、その中間情報に基づいて、対応するプログラムを半自動的に生成する。以下、図4〜図8を用いて、上記の設計書、中間情報、及びプログラムについて具体的に説明する。
【0029】
図4は、信号機のオブジェクト設計書41の一例である。オブジェクト設計書41は、データ設計書42の項目を定義する。オブジェクト設計書41は、例えば、オブジェクト番号と、オブジェクト名と、設計書レベルと、属性番号と、属性名と、識別キーと、必須キーと、データ型と、データサイズとを有する。
【0030】
オブジェクト番号は、当該オブジェクト設計書41を一意に識別可能な番号である。オブジェクト名は、当該オブジェクト設計書41の名称である。
【0031】
設計書レベルは、当該オブジェクト設計書41の重要度を示す。重要度は、この設計書を変更した場合に、プログラム全体又は社会全体に与える影響の大きさ等に基づいて設定される。本実施例では、この値が大きいほど、この設計書の重要度が大きいとする。
【0032】
属性番号は、当該オブジェクト設計書41に基づいて生成されるデータのとり得る各属性を一意に識別可能な番号である。
【0033】
属性名は、当該オブジェクト設計書41に基づいて生成されるデータのとり得る各属性の名称である。
【0034】
識別キーは、当該オブジェクト設計書41に基づいて生成されるデータにおいて、各データを識別するために用いられる属性を示すキーである。例えば、オブジェクト設計書41において、識別キーの「○」印は、「駅名」と「設備名」なので、各データは「駅名」と「設備名」の属性値によって識別される。
【0035】
必須キーは、当該オブジェクト設計書41に基づいて生成されるデータにおいて、必須の属性を示す。例えば、オブジェクト設計書41において、必須キーの「○」印は、「駅名」と「設備名」と「表示状態」と「故障有無」なので、各データは全ての属性を必須とする。
【0036】
データ型は、属性値がとり得るデータの型を示す。例えば、オブジェクト設計書41において、「駅名」及び「設備名」のデータ型は「文字列」であるので、「駅名」及び「設備名」の属性がとり得る属性値は「文字列」である。同様に、「表示状態」の属性がとり得る属性値は「選択値」であり、「故障有無」の属性がとり得る属性値は「真偽値」である。
【0037】
データサイズは、属性値がとり得るデータのサイズを示す。例えば、オブジェクト設計書41において、「駅名」及び「設備名」の属性がとり得る属性値のデータサイズは「8文字」である。
【0038】
図5は、信号機のデータ設計書42の一例である。データ設計書42は、データの項目を定義する。データ設計書42は、オブジェクト設計書41よって定義される。データ設計書42は、例えば、オブジェクト番号と、オブジェクト名と、データ設計書レベルと、データ番号と、駅名と、設備名と、表示状態と、故障有無を有する。
【0039】
オブジェクト番号とオブジェクト名には、当該データ設計書42の項目を定義するオブジェクト設計書41のオブジェクト番号とオブジェクト名と同じ値が設定される。設計書レベルは、当該データ設計書42の重要度を示す。データ番号は、当該データ設計書42に基づいて生成される各データを一意に識別可能な番号である。
【0040】
駅名、設備名、表示状態、及び故障有無は、オブジェクト設計書41の属性名と対応する。駅名は、各データが使用される信号機が設置される駅の名称である。設備名は、当該データが使用される信号機が設置される方向(上り方面か下り方面か)を示す名称である。表示状態は、当該データが使用される信号機における、或る時点の信号の表示の状態を示す。或る時点の信号の表示はその時々で異なり得るので、表示状態の属性値は「可変」とする。故障有無は、当該データが使用される信号機において、或る時点の故障の有無の状態を示す。或る時点の故障の有無の状態はその時々で異なり得るので、故障有無の属性値は「可変」とする。
【0041】
図5のデータ設計書42に基づいて生成されるデータ番号「1」のデータは、属性名「駅名」に対する属性値「東京」、属性名「設備名」に対する属性値「上り」を有する。オブジェクト設計書41によって「駅名」と「設備名」は識別キーと定義されているので、データ番号「1」のデータは、「東京駅」と「上り」の2つの属性値の組み合わせによって識別される。
【0042】
図6は、動作設計書43の一例である。動作設計書43は、データ設計書42の或る属性における動作条件を定義する。動作設計書43は、アクター番号と、アクター名称と、条件番号と、設計書レベルと、条件名と、条件内容と、実行内容とを有する。
【0043】
アクター番号は、当該動作設計書43を一意に識別可能な番号である。アクター名は、当該動作設計書43の名称である。設計書レベルは、当該動作設計書43の重要度を示す。
【0044】
条件番号は、当該動作設計書43に基づいて生成される各動作条件を一意に識別可能な番号である。条件内容は、各動作条件が有する条件の内容である。実行内容は、各動作条件において、条件内容が満たされた場合に実行される内容である。
【0045】
例えば、条件番号「1」の動作条件は、条件名が「先行列車有」であり、保護区間に先行列車が「在線」しており、且つ、故障有無が「無」の場合、信号機の表示状態を「注意」とすることを示す。ここで、保護区間とは、路線において所定の間隔で区切られた区間である。一般的に、保護区間に存在し得る列車の数は予め決められている。列車の追突事故を防止するためである。
【0046】
図7は、各設計書から生成される中間情報の一例である。プログラム生成部21は、オブジェクト設計書41からオブジェクト中間情報51を生成する。プログラム生成部21は、データ設計書42からデータ中間情報52を生成する。プログラム生成部21は、動作設計書43から動作中間情報53を生成する。中間情報は、所定のフォーマットで記載される。所定のフォーマットとは、例えば、XML(eXtensible Markup Language)等である。
【0047】
図8は、中間情報から生成されるプログラムの一例である。プログラム生成部21は、オブジェクト中間情報51、データ中間情報52、及び動作中間情報53に基づいて、プログラム(ソースコード)を半自動的に生成する。プログラムは、例えば、C言語又はJava(登録商標)言語等のプログラム言語で記述される。図3の説明に戻る。
【0048】
設計書制御部22は、各設計書と、それら設計書から生成されるプログラムとに、対応関係を有するバージョン番号を付与し、設計書管理テーブル26に登録する。設計書制御部22は、設計書が修正された場合、その修正された設計書(以下「修正設計書」という)と、その修正設計書から生成されるプログラム(以下「修正プログラム」という)とに対して、新たなバージョン番号を付与し、設計書管理テーブル26に登録する。
【0049】
図9は、設計書管理テーブル26の一例である。設計書管理テーブル26は、修正番号と、設計書名と、修正前バージョン番号と、修正後バージョン番号と、修正差分と、修正内容とを有する。
【0050】
修正番号は、設計書の修正を一意に識別可能な番号である。複数の設計書が同じ目的で修正された場合は、同じ修正番号が付与される。例えば、或る1つの不具合を修正するために複数の設計書が修正された場合、同じ修正番号が付与される(修正番号「1」参照)。
【0051】
設計書名は、修正された設計書の名称である。修正前バージョン番号は、修正される前の設計書のバージョン番号である。修正後バージョン番号は、修正後の設計書に付与されたバージョン番号である。修正差分は、修正前の設計書と修正後の設計書との差分である。すなわち、設計書において修正された部分を示す。修正目的には、修正の目的が登録される。
【0052】
例えば、設計書管理テーブル26の修正番号「2」は、「保護区間オブジェクト設計書」と「信号機オブジェクト設計書」が修正されたことを示す。そして、「信号機オブジェクト設計書」のバージョン番号が「1.1」から「1.2」に更新されたことを示す。そして、「信号機オブジェクト設計書」は、属性番号「3」の内容が「変更」されたことを示す。図3の説明に戻る。
【0053】
ターゲット機器制御部23は、ターゲット機器管理テーブル27によって、ターゲット機器4を管理する。ターゲット機器制御部23は、指定されたターゲット機器4に、プログラムをインストールする。ターゲット機器制御部23は、指定されたターゲット機器4から、そのターゲット機器4にインストールされているプログラムの情報を取得する。以下、ターゲット機器管理テーブル27について説明する。
【0054】
図10は、ターゲット機器管理テーブル27の一例である。ターゲット機器管理テーブル27は、機器番号と、機器名と、機器アドレスとを有する。
【0055】
機器番号は、ターゲット機器管理テーブル27において、ターゲット機器4を一意に識別可能な番号である。機器名は、ターゲット機器4を識別する名称である。機器アドレスは、ターゲット機器4に設定されたアドレスである。機器アドレスは、例えば、IPアドレス等である。修正番号は、ターゲット機器4にインストールされているプログラムに対して施された修正の修正番号を示す。この修正番号は、バージョン管理テーブルの修正番号に対応する。
【0056】
例えば、ターゲット機器管理テーブル27において、機器番号「1」のターゲット機器4の名称は「A社向けC装置」であり、「192.168.0.1」のIPアドレスが設定されていることを示す。図3の説明に戻る。
【0057】
アクセス制御部24は、アクセス管理テーブル28によって、ユーザのプログラム管理装置5へのアクセス権を管理する。アクセス制御部24は、ユーザがある設計書等のチェックイン又はチェックアウト等を要求してきた場合、そのユーザのアクセスレベルに基づいて、アクセス可否を決定する。その際、アクセス制御部24は、その設計書の設計書レベルを考慮してアクセス可否を決定してもよい。さらに、アクセス制御部24は、その設計書レベルに満たないユーザからアクセス要求があった場合、その設計書の管理者又は開発責任者等にアクセス可否を問い合わせてもよい。
【0058】
図11は、アクセス管理テーブル28の一例である。アクセス管理テーブル28は、ユーザ番号と、ユーザ名と、アクセスレベルと、担当機器番号を有する。
【0059】
ユーザ番号は、アクセス管理テーブル28において、ユーザを一意に識別可能な番号である。ユーザ名は、ユーザの名称である。例えば、ユーザ名を、設計書等にアクセスする際のログイン名としてもよい。アクセスレベルは、当該ユーザがアクセス可能なレベルを示す。本実施例では、アクセスレベルが大きいユーザの方が、上位のアクセス権を有する。アクセスレベルは、設計書レベルと比較される。アクセスレベルが設計書レベル以上のユーザは、その設計書にアクセス(チェックイン又はチェックアウト)できる。また、アクセスレベルが設計書レベル未満のユーザは、その設計書レベル以上のユーザにアクセス許可を求めることができる。担当機器番号は、当該ユーザが担当しているターゲット機器4の機器番号である。この機器番号は、ターゲット機器管理テーブル27の機器番号に対応する。
【0060】
例えば、ユーザ番号「1」の「Aさん」は「A社向けC装置」の開発メンバーであるとする。この場合、「Aさん」のアクセスレベルは「1」、機器番号は「1」(すなわち「A社向けC装置」)となる。そして、ユーザ番号「2」の「Bさん」は「A社向けC装置」の開発リーダであるとする。この場合、「Bさん」のアクセスレベルは「4」、機器番号は「1」となる。この場合、アクセスレベル「1」の「Aさん」は、設計書レベル「3」の設計書をチェックアウトできない。そこで、同じ「A社向けC装置」を担当しており、且つ、設計書レベルより大きいアクセスレベルを有する「Bさん」にチェックアウトの許可を求める。ここで、「Bさん」が許可した場合、「Aさん」はその設計書をチェックアウトできる。この処理の詳細については後述する。
【0061】
図12は、第1ユーザ装置に表示されるメニュー画面71の一例である。メニュー画面71は、例えば、第1ユーザ機器2に表示され、ユーザによって操作される。メニュー画面71は、「新規作成」ボタン、「チェックアウト」ボタン、「チェックイン」ボタン、「プログラム生成」ボタン、「ビルド&インストール」ボタン、「インストール確認ボタン」等を有する。
【0062】
「新規作成」ボタンが押下されると、設計書の新規作成画面が表示される。「チェックアウト」ボタンが押下されると、チェックアウト可能な設計書が表示される(図13参照)。「チェックイン」ボタンが押下されると、チェックイン可能な設計書が表示される。「プログラム生成」ボタンが押下されると、設計書に基づいて、プログラム(ソースコード)が生成される。ビルドボタンが押下されると、指定されたターゲット機器4に合わせてプログラムがビルド(コンパイル)される。そして、ビルドされたプログラムが、指定されたターゲット機器4にインストールされる。インストール確認ボタンが押下されると、指定されたターゲット機器4にインストールされているプログラムと、それに対応する設計書及び修正履歴等が表示される(図15参照)。
【0063】
図13は、チェックアウト画面72の一例である。チェックアウト画面72は、メニューから「チェックアウト」ボタンが押下されると表示される。チェックアウト画面72は、例えば、第1ユーザ装置2に表示される。チェックアウト画面72には、選択欄と、設計書と、プログラムと、バージョン番号と、ターゲット機器とが対応付けて表示される。
【0064】
ユーザは、選択欄101にチェックを入れてチェックアウトしたい設計書を選択する。そして、実行ボタン102を押下すると、ユーザは、その選択した設計書を、第1ユーザ機器2に取得(チェックアウト)できる。
【0065】
ユーザは、例えば、バージョン番号の項目に表示されるバージョン番号選択ボタン103を押下し、バージョン番号を選択できる。この場合、ユーザは、ここで選択したバージョン番号の設計書をチェックアウトできる。変更後のバージョン番号に対応付けられているターゲット機器が変更前とは異なる場合、バージョン番号の変更に伴って、ターゲット機器104も変更される。
【0066】
一方、ユーザは、例えば、ターゲット機器名に表示されるターゲット機器選択ボタン105を押下し、ターゲット機器を選択できる。この場合、ユーザは、ここで選択したターゲット機器にインストールされているバージョン番号の設計書をチェックアウトできる。変更後のターゲット機器に対応付けられているバージョン番号が変更前とは異なる場合、ターゲット機器の変更に伴って、バージョン番号106も変更される。変更後のチェックアウト画面72を図14に示す。
【0067】
図14は、チェックアウト画面72の別の一例である。例えば、バージョン番号変更ボタン103を操作してバージョン番号111を「1.2」を「1.3」に変更する。すると、ターゲット機器112も「A社向けC装置」から「B社向けC装置」に変更される。
【0068】
例えば、ターゲット機器選択ボタン105を操作してターゲット機器113を「A社向けC装置」から「E社向けC装置」に変更する。すると、バージョン番号114も「1.4」から「1.5」に変更される。
【0069】
これにより、ユーザは、設計書のバージョン番号とターゲット機器4との対応関係を確認しながら、所望の設計書をチェックアウトできる。よって、ユーザが間違った設計書をチェックアウトするというミスを防止できる。
【0070】
図15は、第1ユーザ装置に表示されるインストール確認画面73の一例である。インストール確認画面73は、メニュー画面71から「インストール確認」ボタンが押下されると表示される。
【0071】
インストール確認画面73では、各ターゲット機器4にインストールされているプログラムのバージョン番号及び修正履歴等を一覧できる。例えば、インストール確認画面73では、「A社向けC装置」のプログラムには、修正番号「1」と「3」の修正が反映されていることがわかる。そして、それらの修正の内容も一目で確認できる。
【0072】
これにより、ユーザは、各ターゲット機器4に対する修正漏れ又は間違った修正等を容易に確認できる。
【0073】
インストール確認画面73には、各ターゲット機器4に対応するチェックアウトボタン121が表示されている。ユーザは、このチェックアウトボタン121を押下することにより、該当するターゲット機器4のプログラムをチェックアウトできる。これにより、誤ったターゲット機器のプログラムをチェックアウトするというミスを防止できる。
【0074】
図16は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートである。
【0075】
ユーザは、第1ユーザ機器2に表示されたチェックアウト画面72を操作して、チェックアウトしたい設計書を選択し、プログラム管理装置5にチェックアウトを要求する(S101)。
【0076】
アクセス制御部24は、第1ユーザ機器2からチェックアウトの要求を受けると、その要求元のユーザのアクセス権に基づいて、各設計書のチェックアウトを許可するか否かを判断する。この判断方法については後述する。そして、アクセス制御部24によってチェックアウトが許可された場合、設計書制御部22は、チェックアウトが要求された設計書を第1ユーザ機器2に提供する(S102)。
【0077】
ユーザは、第1ユーザ機器2を操作して、チェックアウトした設計書を修正する。そして、ユーザは、修正した設計書のチェックインを要求する(S103)。
【0078】
アクセス制御部24は、第1ユーザ機器2から修正設計書のチェックインの要求を受けると、その要求元のユーザのアクセス権に基づいて、各設計書のチェックインを許可するか否かを判断する。この判断方法については後述する。そして、アクセス制御部24によってチェックインが許可された場合、設計書制御部22は、チェックインが要求された設計書を設計書管理テーブル26に登録する。その際、設計書制御部22は、修正された設計書に新たなバージョン番号を付与する(S104)。
【0079】
プログラム生成部21は、第1ユーザ機器2からプログラム生成の要求を受けると、まず中間情報を生成する。そして、プログラム生成部21は、その生成した中間情報に基づいて、プログラム(ソースコード)を生成する(S105)。
【0080】
ユーザは、プログラム及びバージョン番号を選択し、そのバージョン番号のプログラムを実行させたいターゲット機器4を選択し、ビルド及びインストールを要求する(S106)。
【0081】
ビルド部25は、ステップS106で指定されたバージョン番号のプログラムを、同じくステップS106で指定されたターゲット機器4において動作するようにビルド(コンパイル)する。そして、ビルド部25は、そのビルドしたプログラムを、同じくステップS106で指定されたターゲット機器4にインストールする(S107)。
【0082】
ターゲット機器制御部23は、各ターゲット機器4にインストールされているプログラムの修正に関する情報を、第1ユーザ機器2の画面に表示する(S108)。
【0083】
以上の処理によれば、ユーザは、修正内容とターゲット機器4とバージョン番号との対応関係を確認しながら、設計書又はプログラムをチェックイン又はチェックアウトできる。また、各ターゲット機器4に反映された修正内容も一覧で確認できる。これにより、ユーザが設計書を修正する際に生じやすいミスを防止できる。
【0084】
図17は、設計書の修正からプログラムのインストールまでの手順を示すフローチャートの変形例である。図17に示すフローチャートは、まず修正したいターゲット機器4を選択して、そのターゲット機器4にインストールされているプログラムに対応する設計書をチェックアウトする点において、図16に示すフローチャートと異なる。
【0085】
ユーザは、表示されたインストール確認画面73において(S201)、修正したいターゲット機器4を選択し(S202)、チェックアウトを要求する(S203)。
【0086】
ステップS204〜S207の処理は、図16のステップS102〜S105の処理と同じなので説明を省略する(S204〜S207)。
【0087】
そして、ビルド部25は、ステップS207で生成されたプログラムを、ステップS202で指定されたターゲット機器4において動作するようにビルド(コンパイル)する。そして、ビルド部25は、ステップS202で指定されたターゲット機器4に、そのビルドしたプログラムをインストールする(S208)。
【0088】
ステップS209の処理は、図16のステップS108の処理と同じなので説明を省略する。
【0089】
以上の処理によれば、図16のフローチャートと比較して、所望のターゲット機器のプログラムをチェックアウト及びチェックインできる。よって、ユーザが設計書を修正する際に発生し得るミスをさらに防止できる。
【0090】
図18は、チェックアウト又はチェックインに係る処理のフローチャートである。当該フローチャートは、図16及び図17のフローチャートのチェックイン又はチェックアウトの際に実行される。
【0091】
アクセス制御部24は、アクセス管理テーブル28から、アクセス要求元のユーザのアクセスレベルを取得する(S301)。
【0092】
アクセス制御部24は、ユーザからのアクセス要求がチェックアウト又はチェックインのいずれであるかを判定する(S302)。
【0093】
ユーザからのアクセス要求がチェックアウトの場合(S302:チェックアウト)、アクセス制御部24は、チェックアウト要求された設計書の設計書レベルはそのままとして(S303)、ステップS305の処理に進む。
【0094】
ユーザからのアクセスがチェックインの場合(S302:チェックイン)、アクセス制御部24は、チェックイン要求された設計書の設計書レベルを調整(例えば、元の設計書レベルに「2」を加算)して(S304)、ステップS305の処理に進む。
【0095】
アクセス制御部24は、ユーザのアクセスレベルが、調整した設計書レベル以下であるか否かを判定する(S305)。
【0096】
ユーザのアクセスレベルが、調整した設計書レベルよりも大きい場合(S305:NO)、アクセス制御部24は、ステップS309の処理に進む。
【0097】
ユーザのアクセスレベルが、調整した設計書レベル以下の場合(S305:YES)、アクセス制御部24は、調整した設計書レベルよりも大きいアクセスレベルを有するユーザに、チェックアウト又はチェックインの許可を求める(S306)。
【0098】
許可が得られなかった場合(S307:NO)、アクセス制御部24は、ユーザからのチェックイン又はチェックアウトを拒否し(S308)、当該処理を終了する(END)
【0099】
許可が得られた場合(S307:YES)、アクセス制御部24は、ユーザにチェックイン又はチェックアウトを許可し(S309)、当該処理を終了する(END)。
【0100】
以上の処理によれば、設計書の重要度に基づいて、アクセスをコントロールできる。すなわち、修正された場合に影響度の大きい設計書は、アクセスレベルの高いユーザ、若しくはアクセスレベルの高いユーザから許可を得たユーザのみが、チェックイン又はチェックアウトできる。また、チェックアウトよりもチェックインの調整後の設計書レベルを大きくすることによって、チェックアウトはできても、チェックインはアクセスレベルの高いユーザ(例えば、開発責任者等)の許可を得なければできないようにできる。これにより、重要度の大きい設計書に誤った修正が施され、大きな問題が発生することを防止できる。
【0101】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【0102】
上述のアクセスレベルの判定を、チェックイン及びチェックアウト時に限られない。例えば、プログラムをビルドする時、又はビルドしたプログラムをターゲット機器にインストールする時等にアクセスレベルの判定を行ってもよい。
【0103】
プログラム管理装置が対応付けて管理する対象は、設計書と、プログラムと、修正内容と、ターゲット機器に限られない。プログラム管理装置は、例えばターゲット機器の開発スケジュール、及びターゲット機器の取扱説明書等とを合わせて対応付けて管理してもよい。
【符号の説明】
【0104】
1…プログラム管理システム、2…第1ユーザ機器、3…第2ユーザ機器、4…ターゲット機器、5…プログラム管理装置、6a…第1ネットワーク、6b…第2ネットワーク


【特許請求の範囲】
【請求項1】
設計書に基づいてコンピュータプログラムを生成するプログラム生成部と、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理する設計書制御部と、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールするターゲット機器制御部と、
を有し、
前記設計書制御部は、
バージョン番号が指定されると、前記指定されたバージョン番号に対応する設計書をチェックアウトし、
前記設計書が修正されてチェックインされると、前記修正された設計書に前記バージョン番号とは異なる新たなバージョン番号を付与する
プログラム管理装置。

【請求項2】
前記設計書制御部は、
ターゲット機器が指定されると、前記指定されたターゲット機器にインストールされているコンピュータプログラムのバージョン番号に対応する設計書をチェックアウトする
ことを特徴とする請求項1記載のプログラム管理装置。

【請求項3】
前記設計書は、当該設計書の重要度を示す設計書レベルを有し、
当該プログラム管理装置にアクセス可能なユーザのアクセスレベルを管理するアクセス制御部を更に備え、
前記設計書制御部は、第1のユーザから設計書のチェックアウト又はチェックインの指示を受けると、前記第1のユーザのアクセスレベルと、前記指示された設計書の設計書レベルとを比較し、前記第1のユーザのアクセスレベルが前記設計書レベル以下である場合、前記設計書レベルよりも大きいアクセスレベルを有する第2のユーザへの問い合わせ結果に基づき、前記第1のユーザに対してチェックイン又はチェックアウトを実行する
ことを特徴とする請求項2記載のプログラム管理装置。

【請求項4】
前記設計書制御部は、前記設計書レベルと前記アクセスレベルとの比較において、前記設計書レベルに重み付けを行うことができ、前記チェックインが指示された設計書の設計書レベルに対する重み付けを、前記チェックアウトが指示された前記設計書の設計レベルに対する重み付けよりも大きくする
ことを特徴とする請求項3記載のプログラム管理装置。

【請求項5】
コンピュータプログラムを管理するプログラム管理方法において、
設計書に基づいてコンピュータプログラムを生成し、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理し、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールする
プログラム管理方法。

【請求項6】
コンピュータプログラムを管理するコンピュータプログラムであって、コンピュータに実行されると、
設計書に基づいてコンピュータプログラムを生成し、
前記設計書と、前記設計書から生成されるコンピュータプログラムとにバージョン番号を付与して対応付けて管理し、
前記バージョン番号と、前記コンピュータプログラムが実行されるターゲット機器とが特定されると、前記バージョン番号に対応する前記コンピュータプログラムを、前記ターゲット機器にインストールする
コンピュータプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate


【公開番号】特開2013−105399(P2013−105399A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−250085(P2011−250085)
【出願日】平成23年11月15日(2011.11.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】