(57)【特許請求の範囲】
【請求項１】
複数開発者によって開発される進路制御プログラムの生成方法であって、
前記方法は、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリとを有する計算機を含む計算機システムにおいて実行され、
前記プロセッサが前記プログラムを実行して、前記プログラムによる演算結果をメモリに格納することによって、所定の機能を提供する手段を実現し、
前記計算機システムは、線路形状及び閉そくを含む線路情報と、前記進路制御プログラムの構成要素である制御ロジックと、を格納するデータベースを有し、
前記方法は、
分割手段が、前記データベースに格納された線路情報を分割し、開発者の開示レベル及びスキルレベルに応じて、前記分割された線路情報を開発者に割り当て、前記割り当てられた線路情報を前記メモリに格納する第１のステップと、
ロジック割当手段が、前記分割された線路情報に含まれる閉そく及び幾何に、前記データベースに格納された制御ロジックを割り当て、前記割り当てられた制御ロジックを前記メモリに格納する第２のステップと、
結合手段が、前記割り当てられた制御ロジックを結合するための情報を補い、前記補われた情報を前記メモリに格納する第３のステップとを含むことを特徴とする進路制御プログラムの生成方法。
【請求項２】
前記データベースは、前記線路情報に含まれる線路形状に対応する幾何の情報と閉そくの定義の情報、及び、開発担当者の開示レベルとスキルレベルの情報を格納し、
前記第１のステップにおいて、前記分割手段は、
前記データベースに格納された線路情報に含まれる線路形状及び閉そくに基づいて前記幾何を抽出し、
前記閉そく及び前記抽出された幾何の情報から線路情報の複雑度を計算し、
前記計算された複雑度が前記開示レベル及び前記スキルレベルを満たす開発者に、前記分割された線路情報を割り当てることを特徴とする請求項１に記載の進路制御プログラムの生成方法。
【請求項３】
前記方法は、入力手段が線路情報を分割する方針を受け付けるステップを含み、
前記受け付けた方針がノウハウの秘匿を優先する場合、前記分割手段は、複雑度が高い幾何及び当該幾何に関連する閉そくを取り除いた後、線路情報を分割することを特徴とする請求項１又は２に記載の進路制御プログラムの生成方法。
【請求項４】
前記第３のステップにおいて、前記結合手段は、前記線路情報の分割箇所に対応する制御ロジックを割り当て、前記線路情報から分割時に取り除いた閉そく及び幾何に対応する制御ロジックを割り当てることによって、情報を補うことを特徴とする請求項３に記載の進路制御プログラムの生成方法。
【請求項５】
前記方法は、線路情報を分割する方針を受け付けるステップを含み、
前記受け付けた方針が開発工数削減を優先する場合、第１のステップにおいて、前記結合手段は、順方向接続のみの箇所で線路情報を分割することを特徴とする請求項１又は２に記載の進路制御プログラムの生成方法。
【請求項６】
複数開発者によって進路制御プログラム開発するための計算機システムであって、
前記計算機システムは、第１の計算機と第２の計算機とを有し、
前記第１及び第２の計算機は、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリとを有し、
前記第１の計算機は、
線路形状及び閉そくを含む線路情報と、前記進路制御プログラムの構成要素である制御ロジックと、を格納するデータベースと、
前記データベースに格納された線路情報を分割し、開発者の開示レベル及びスキルレベルに応じて、前記分割された線路情報を開発者に割り当て、前記割り当てられた線路情報及び必要な制御ロジックを前記第２の計算機に送信する分割部と、を有し、
前記第２の計算機は、前記分割された線路情報に含まれる閉そく及び幾何に、前記第１の計算機から送信された制御ロジックを割り当てる制御ロジック割当部を有し、
前記第１の計算機は、前記割り当てられた制御ロジックの情報を結合するための情報を補う結合部を有することを特徴とする計算機システム。
【請求項７】
前記データベースは、前記線路情報に含まれる線路形状に対応する幾何の情報と閉そくの定義の情報、及び、開発担当者の開示レベルとスキルレベルの情報を格納し、
前記分割部は、
前記データベースに格納された線路情報に含まれる線路形状及び閉そくに基づいて前記幾何を抽出し、
前記閉そく及び前記抽出された幾何の情報から線路情報の複雑度を計算し、
前記計算された複雑度が前記開示レベル及び前記スキルレベルを満たす開発者に、前記分割された線路情報を割り当てることを特徴とする請求項６に記載の計算機システム。
【請求項８】
前記第１の計算機は、線路情報を分割する方針を受け付ける入力部を有し、
前記分割部は、前記受け付けた方針がノウハウの秘匿を優先する場合、複雑度が高い幾何及び当該幾何に関連する閉そくを取り除いた後、線路情報を分割することを特徴とする請求項６又は７に記載の計算機システム。
【請求項９】
前記結合部は、前記線路情報の分割箇所に対応する制御ロジックを割り当て、前記線路情報から分割時に取り除いた閉そく及び幾何に対応する制御ロジックを割り当てることによって、情報を補うことを特徴とする請求項８に記載の計算機システム。
【請求項１０】
前記第１の計算機は、線路情報を分割する方針を受け付ける入力部を有し、
前記分割部は、前記受け付けた方針が開発工数削減を優先する場合、順方向接続のみの箇所で線路情報を分割することを特徴とする請求項６又は７に記載の計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの生成方法に関し、特に、鉄道運行管理システムの進路制御装置を動作させるプログラムを生成する方法に関する。
【背景技術】
【０００２】
近年、地球温暖化などの問題を受け、エネルギー効率が高い大量輸送交通システムとして鉄道が見直されている。そして、鉄道を効率的に運行するために、多くの国で鉄道運行管理システムの導入が検討されている。
【０００３】
鉄道運行管理システムは、線路配線に応じたプログラムを構築する必要がある。すなわち、駅の線路配線は多様であるため、線区や駅ごとに独自のプログラムを開発する必要がある。また、線路配線が改修された場合には、プログラムを修正する必要がある。さらに、近年の線路配線の複雑化や制御の高度化により、プログラムが大規模化してきており、線区や駅ごとに独自のプログラムを構築するための人材の確保が難しくなっている。このため、プログラムの品質の低下、開発の長期化及びコストの増大などの問題が生じている。
【０００４】
鉄道運行管理システムのサブシステムである電子連動システムにおいて、特許文献１には、線路配線および連動表から一進路単位で行なえる合理性をチェックし、電子連動システムが使用可能な連動データベースを生成する技術が開示されている。電子連動システムとは、鉄道保安装置の一種であり、互いに連動関係にある信号機及び転轍機を連動論理に従って制御するシステムである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−３２１１０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このような鉄道運行管理システムにおいて、線路配線が異なる線区や駅であっても進路制御装置を共通に開発できる方法が求められている。このような場合、通常、線路配線入力から制御制御ロジックの設定までの全ての設計作業を自社内で実施することが想定される。そのため、鉄道運行管理システムを海外に展開する場合は、自社だけではなく、現地のベンダと協力して開発する必要がある。その際、制御ロジックの取り揃えや、条件値の設定などの設計ノウハウを社外に公開する必要が生じることがある。また、分散開発をする場合には、開発拠点間で線形の情報や設計の情報を送受信する必要がある。これらの情報はネットワークを介して送受信されるため、情報を暗号化しても、通信傍受などによる情報漏えいの可能性がある。
【０００７】
そこで、本発明は、分散した開発拠点で、設計作業を分割してソフトウェアを開発する際に、社外へのノウハウの流出を防止することを目的とする。
【課題を解決するための手段】
【０００８】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数開発者によって開発される進路制御プログラムの生成方法であって、前記方法は、プログラムを実行するプロセッサと、前記プロセッサによって実行されるプログラムを格納するメモリとを有する計算機を含む計算機システムにおいて実行され、前記プロセッサが前記プログラムを実行して、前記プログラムによる演算結果をメモリに格納することによって、所定の機能を提供する手段を実現し、前記計算機システムは、線路形状及び閉そくを含む線路情報と、前記進路制御プログラムの構成要素である制御ロジックと、を格納するデータベースを有し、前記方法は、分割手段が、前記データベースに格納された線路情報を分割し、開発者の開示レベル及びスキルレベルに応じて、前記分割された線路情報を開発者に割り当て、前記割り当てられた線路情報を前記メモリに格納する第１のステップと、ロジック割当手段が、前記分割された線路情報に含まれる閉そく及び幾何に、前記データベースに格納された制御ロジックを割り当て、前記割り当てられた制御ロジックを前記メモリに格納する第２のステップと、結合手段が、前記割り当てられた制御ロジックを結合するための情報を補い、前記補われた情報を前記メモリに格納する第３のステップとを含むことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、分散環境で鉄道運行管理ソフトウェアを開発する際に、社外へのノウハウの流出を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】列車の運行を管理する鉄道運行管理システムの全体の構成を示すブロック図である。
【図２】本発明の実施形態の進路制御プログラム生成マスタ装置及び進路制御プログラム生成サブ装置のハードウェアの構成図である。
【図３】本発明の実施形態の進路制御プログラム生成マスタ装置及び進路制御プログラム生成サブ装置のソフトウェアの構成図である。
【図４】本発明の実施形態の幾何マスタテーブルの構成を説明する図である。
【図５】本発明の実施形態の制御ロジックマスタテーブルの構成を説明する図である。
【図６】本発明の実施形態の開発者マスタテーブルの構成を説明する図である。
【図７】本発明の実施形態の線路要素テーブルの構成を説明する図である。
【図８】本発明の実施形態の閉そくテーブルの構成を説明する図である。
【図９】本発明の実施形態の幾何テーブルの構成を説明する図である。
【図１０】本発明の実施形態のエリアテーブルの構成を説明する図である。
【図１１】本発明の実施形態の線路形状入力部によって実行される処理のフローチャートである。
【図１２】線路形状入力部で使用される線路形状入力画面の例を説明する図である。
【図１３】本発明の実施形態の分割部によって実行される処理のフローチャートである。
【図１４】本発明の実施形態の分割結果表示画面（開発工数削減優先時）の例を説明する図である。
【図１５】本発明の実施形態の分割結果表示画面（ノウハウ秘匿優先時）の例を説明する図である。
【図１６】本発明の実施形態の制御ロジック割当部によって実行される処理ののフローチャートである。
【図１７】本発明の実施形態の制御ロジック割当画面の例を説明する図である。
【図１８】本発明の実施形態の結合部によって実行される処理のフローチャートである。
【図１９】本発明の実施形態の分割結果表示画面の例を説明する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について図面を用いて説明する。
【００１２】
本実施形態では、一人の取纏開発者と複数のサブ開発者とによって、プログラムを開発する場合の進路制御プログラム生成システムについて説明する。取纏開発者は社内の開発者で、サブ開発者は社内又は社外の開発者である。本実施形態の進路制御プログラム生成システムは、取纏開発者が入力した線路情報を複数のエリアに分割し、サブ開発者に設計作業を割り当てる。また、本実施形態の進路制御プログラム生成システムは、サブ開発者の設計結果を結合し、進路制御プログラムを生成する。
【００１３】
なお、本実施形態において「閉そく」とは、信号機の防護区間であり、信号機の内方区間に設置された第一内方軌道回路から最終内方軌道回路までの線路領域である。幾何とは、二つの閉そく間の関係である。
【００１４】
図１は、列車の運行を管理する鉄道運行管理システムの全体の構成を示すブロック図である。
【００１５】
図１に示す鉄道運行管理システムは、計画系システム１１と、進路制御装置１２と、地上装置１３と、地上設備群１５とを有する。進路制御装置１２は、計画系システム１１によって決定された列車ダイヤ情報及び地上装置１３によって収集された地上設備群１５の状態情報を、ネットワークを介して取得する。そして、進路制御装置１２は、プロセッサが進路制御プログラムを実行することによって、軌道回路１５１によって得られる列車１４の在線位置と、列車ダイヤ情報に含まれる出発時刻及び計画進路とを参照し、列車１４の進路上に設置されている信号機１５２及び転轍機１５３を、地上設備群１５を介して制御する。
【００１６】
図２は、本発明の実施形態の進路制御プログラム生成マスタ装置１及び進路制御プログラム生成サブ装置２のハードウェアの構成図である。
【００１７】
進路制御プログラム生成マスタ装置１は、本発明の方法によって、進路制御装置１２を動作せるプログラムを生成する。
【００１８】
進路制御プログラム生成マスタ装置１は取纏開発者が使用する計算機であり、進路制御プログラム生成サブ装置２はサブ開発者が使用する計算機である。進路制御プログラム生成マスタ装置１は、プログラムを実行するプロセッサ（ＣＰＵ）２１、プログラム及びプログラムの実行時に必要なデータを格納するメモリ２２、データ及びプログラムを格納する記憶部２３、キーボードやマウスなどの入力部２４、ディスプレイ装置などの出力部２５及びネットワークを介して他の装置と通信するネットワークインターフェースである通信部２６を有する。
【００１９】
メモリ２２は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）のような高速かつ揮発性の記憶装置であり、オペレーティングシステム（ＯＳ）及びアプリケーションプログラムを格納する。プロセッサ２１が、オペレーティングシステムを実行することによって、進路制御プログラム生成マスタ装置１の基本機能が実現され、アプリケーションプログラムを実行することによって、進路制御プログラム生成マスタ装置１が提供する機能が実現される。なお、進路制御プログラム生成マスタ装置１は、記憶媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）からデータを読み込むインターフェースを備えるとよい。
【００２０】
記憶部２３は、例えば、磁気ディスク装置、フラッシュメモリ等の大容量かつ不揮発性の記憶装置であり、プロセッサ２１によって実行されるプログラム及びプログラム実行時に使用されるデータを格納する。すなわち、プロセッサ２１によって実行されるプログラムは、記憶装置２３から読み出され、メモリにロードされて、プロセッサ２１によって実行される。
【００２１】
進路制御プログラム生成マスタ装置１と進路制御プログラム生成サブ装置２とは、ネットワークによって接続されており、通信部２６を通じてデータを送受信する。
【００２２】
ここまで進路制御プログラム生成マスタ装置１の構成について説明したが、進路制御プログラム生成サブ装置２も同じ構成を有する。
【００２３】
進路制御プログラム生成マスタ装置１及び進路制御プログラム生成サブ装置２は、物理的に一つの計算機上に構築されても、物理的には一つ又は複数の計算機上に構成された論理区画上に構築されてもよい。
【００２４】
進路制御プログラム生成マスタ装置１は、進路制御装置１２とネットワークを介して接続されており、進路制御プログラム生成マスタ装置１が生成した進路制御プログラムを進路制御装置１２に転送する。なお、進路制御プログラム生成マスタ装置１と進路制御装置１２とが接続されていなくてもよく、その場合は、進路制御プログラム生成マスタ装置１が生成した進路制御プログラムを記憶媒体に格納し、該記憶媒体を介して進路制御プログラムを進路制御装置１２に提供してもよい。
【００２５】
図３は、本発明の実施形態の進路制御プログラム生成マスタ装置１及び進路制御プログラム生成サブ装置２のソフトウェアの構成図である。
【００２６】
進路制御プログラム生成マスタ装置１は、データベースとして、幾何マスタテーブル３１１（図４参照）、制御ロジックマスタテーブル３１２（図５参照）、開発者マスタテーブル３１３（図６参照）、線路要素テーブル３２１（図７参照）、閉そくテーブル３２２（図８参照）、幾何テーブル３２３（図９参照）及びエリアテーブル３２４（図１０参照）を有する。これらのデータベースは、記憶部２３に格納される。
【００２７】
また、進路制御プログラム生成マスタ装置１は、線路形状入力部３３１、分割部３３２、結合部３３３及びプログラム生成部３３４を有する。これらの各部は、プロセッサ２１による所定のプログラムの実行によって、その機能が実現される。
【００２８】
さらに、進路制御プログラム生成マスタ装置１は、進路制御装置１２に提供されるプログラム用のプログラムモジュールとして、制御ロジックモジュール３４１及び鉄道運行管理コアモジュール３４２を有する。これらのプログラムモジュールは、記憶部２３に格納される。
【００２９】
進路制御プログラム生成サブ装置２は、データベースとして、幾何マスタテーブル３１１（図４参照）、制御ロジックマスタテーブル３１２（図５参照）、線路要素テーブル３２１（図７参照）、閉そくテーブル３２２（図８参照）、幾何テーブル３２３（図９参照）を有する。これらのデータベースは、記憶部２３に格納される。
【００３０】
また、進路制御プログラム生成サブ装置２は、制御ロジック割当部３３４を有する。制御ロジック割当部３３４は、プロセッサ２１による所定のプログラムの実行によって、その機能が実現される。
【００３１】
なお、後述するサブ開発者への開示レベルに応じて、進路制御プログラム生成サブ装置２の制御ロジックマスタテーブル３１２は、進路制御プログラム生成マスタ装置１の制御ロジックマスタテーブル３１２に格納された制御ロジックのうち、ノウハウに関係する複雑な制御ロジック以外の制御ロジックを格納する。
【００３２】
図４は、本発明の実施形態の幾何マスタテーブル３１１の構成を説明する図である。
【００３３】
幾何マスタテーブル３１１は、二つの閉そく間の関係である幾何の定義情報を格納するテーブルで、二つの閉そく間の重複端点数、重複端点の種類、閉そく１が閉そく２を包含する端点の数、閉そく１が閉そく２を包含する端点の種類、閉そく２が閉そく１を包含する端点の数、閉そく２が閉そく１を包含する端点の種類、及び、閉そく１と閉そく２との方向関係の情報を含み、これらの情報によって幾何の種別を定義する。
【００３４】
図５は、本発明の実施形態の制御ロジックマスタテーブル３１２の構成を説明する図である。
【００３５】
制御ロジックマスタテーブル３１２は、閉そく又は幾何に関連付けられる制御ロジックの定義情報を格納するテーブルで、判断の種別３１２１、割当対象条件３１２２、ロジックＩＤ３１２３及び開示レベル３１２４の要素を含む。
【００３６】
判断の種別３１２１は、制御ロジックマスタテーブル３１２に定義される判断の種別である。
【００３７】
割当対象条件３１２２は、判断が割り当てられる閉そくや幾何の特徴を表す。例えば、割当対象条件３１２２は、「交差Ａ、交差Ｂ」等の幾何の種別、「出発信号機」等の閉そく種別などで表される。なお、割当対象条件３１２２は設定されない場合もある。
【００３８】
開示レベル３１２４は、制御ロジックを開示する範囲を示す。本実施形態において、開示レベルはＡ、Ｂ、Ｃで表し、Ａの機密度が最も高く、Ａ、Ｂ、Ｃの順に機密度が低くなるように定義される。
【００３９】
なお、進路制御プログラム生成サブ装置２の制御ロジックマスタテーブル３１２には、当該進路制御プログラム生成サブ装置２を使用して開発をするサブ開発者に開示してよいレベルの範囲の制御ロジックのみが格納される。
【００４０】
図６は、本発明の実施形態の開発者マスタテーブル３１３の構成を説明する図である。
【００４１】
開発者マスタテーブル３１３は、開発者の情報を格納するテーブルで、開発者を識別する開発者ＩＤ３１３１、開発者のスキルレベル３１３２及び開発者に対する開示レベル３１３３の要素を含む。
【００４２】
開発者ＩＤ３１３１は、開発者を一意に識別するための識別子である。開発者ＩＤ３１３１は、開発者ではなく、開発者が属する組織に割り当てられてもよい。
【００４３】
スキルレベル３１３２は、各開発者の能力を示す。一般に、長期間開発に従事しているベテラン開発者のスキルレベルを高く、開発への従事期間が短い新人開発者のスキルレベルを低く設定する。本実施形態において、スキルレベルは、Ａ、Ｂ、Ｃで表し、Ａのスキルレベルが最も高く、Ａ、Ｂ、Ｃの順に能力が低くなるように定義される。
【００４４】
開示レベル３１３３は、開発者に対して開示してよい情報の範囲である。一般に開発責任者の開示レベルを最も高く、ノウハウの社外等への流出を防止すべき開発者の開示レベルを低く設定する。本実施形態において、開示レベルはＡ、Ｂ、Ｃで表し、Ａの機密度が最も高く、Ａ、Ｂ、Ｃの順に機密度が低くなるように定義される。開発者は、制御ロジックマスタテーブル３１２の開示レベルが、開発者マスタテーブル３１３の開示レベル以下のものを参照することができる。例えば、開発者マスタテーブル３１３で開示レベルが「Ｂ」である開発者は、制御ロジックマスタテーブル３１２で開示レベルがＢ及びＣの制御ロジックを参照することができる。
【００４５】
図７は、本発明の実施形態の線路要素テーブル３２１の構成を説明する図である。
【００４６】
線路要素テーブル３２１は、線路形状入力部３３１に入力される線路要素の情報を保持し、線路要素ＩＤ３２１１及び座標３２１２の要素を含む。線路要素ＩＤ３２１１は、線路要素を一意に識別するための識別子である。座標３２１２は、線路要素を配置した座標の情報である。
【００４７】
図８は、本発明の実施形態の閉そくテーブル３２２の構成を説明する図である。
【００４８】
閉そくテーブル３２２は、閉そくＩＤ３２２１、閉そく種別３２２２、発点３２２３、着点３２２４、方向３２２５、線路要素ＩＤ３２２６及びロジックＩＤ３２２７の要素をを含む。
【００４９】
閉そくＩＤ３２２１は、閉そくを一意に識別するための識別子である。閉そく種別３２２２は、閉そくの種別を示す。例えば、閉そく種別３２２２は、駅への入場用の場内信号機の閉そく、駅からの出発用の出発信号機の閉そく、駅間の閉そく信号機の閉そく等である。閉そく種別３２２２は、制御ロジックマスタテーブル３１２の割当対象条件３１２２で使用される。
【００５０】
発点３２２３は、当該閉そくに侵入する列車が当該閉そく外で最後に通過する場所を表す。着点３２２４は、当該閉そくから進出する列車が当該閉そく内で最後に通過する場所を表す。方向３２２５は、閉そくの方向を示す。本実施形態では、上り又は下りのいずれかである。線路要素ＩＤ３２２６は、閉そく内に含まれる全ての線路要素の線路要素ＩＤである。
【００５１】
ロジックＩＤ３２２７は、進路制御プログラムが実行される際に、列車が閉そくに進入しても良いかを判断するための制御ロジックの識別子である。なお、一つの閉そくに対して複数の制御ロジックを設定することができる。ロジックＩＤ３２２７は、結合部３３３及び制御ロジック割当部３３４によって設定される。
【００５２】
図９は、本発明の実施形態の幾何テーブル３２３の構成を説明する図である。
【００５３】
幾何テーブル３２３は、隣接する二つの閉そく間の関係である幾何の情報を格納するテーブルで、幾何ＩＤ３２３１、幾何種別３２３２、閉そく１ＩＤ３２３３、閉そく２ＩＤ３２３４及びロジックＩＤ３２３５の要素を含む。
【００５４】
幾何ＩＤ３２３１は、幾何を一意に識別するための識別子である。幾何種別３２３２は、二つの閉そく間の関係のパタンを、幾何マスタテーブル３１１に定義された関係によって分類した種別情報である。閉そく１ＩＤ３２３３及び閉そく２ＩＤ３２３４は、幾何を構成する二つの閉そくの閉そくＩＤである。
【００５５】
ロジックＩＤ３２３５は、進路制御プログラムの動作時に、閉そくに関連付けられている幾何の情報を参照して、列車が閉そくに進入してもよいかを判定するための制御ロジックのロジックＩＤである。なお、一つの幾何に対して複数の制御ロジックを設定することができる。ロジックＩＤ３２３５は、結合部３３３及び制御ロジック割当部３３４によって設定される。
【００５６】
図１０は、本発明の実施形態のエリアテーブル３２４の構成を説明する図である。
【００５７】
エリアテーブル３２４は、開発者に割り当てる開発の単位となるエリアを定義するテーブルであり、エリアＩＤ３２４１、ノードＩＤ３２４２、複雑度３２４３及び開発者ＩＤ３２４４の要素を含む。エリアは閉そくの集合によって定義される。エリアテーブル３２４の情報は分割部３３２で作成される。
【００５８】
エリアＩＤ３２４１は、エリアを一意に識別するための識別子である。閉そくＩＤ３２４２は、エリアを構成する閉そくの閉そくＩＤである。複雑度３２４３は、エリアの開発の難易度の目安を示す。本実施形態において、複雑度はＡ、Ｂ、Ｃで表し、Ａの複雑度が最も高く、Ａ、Ｂ、Ｃの順に複雑度が低くなるように定義される。開発者ＩＤ３２４４は、エリアの開発の担当者となった開発者の開発者ＩＤである。
【００５９】
図１１は、本発明の実施形態の線路形状入力部３３１によって実行される処理のフローチャートであり、図１２は、線路形状入力部３３１で使用される線路形状入力画面４１の例を説明する図である。
【００６０】
まず、線路形状入力部３３１は、線路形状入力画面４１を表示する（ステップ１０１）。線路形状入力画面４１は、図１２に示すように、入力する情報が選択される描画制御窓４１１、線路要素、閉そくなどの情報が入力される線路形状入力窓４１２、閉そくの定義が入力される閉そく定義４１３及び幾何分析ボタン４１４を含む。
【００６１】
次に、線路形状入力部３３１は、線路形状入力画面４１において、線路形状の入力を促す（ステップ１０２）。具体的には、ユーザは、線路形状入力画面４１の描画制御窓４１１において線路４１１１を選択し、線路形状入力窓４１２に線路要素を入力する。入力された線路要素の情報は線路要素テーブル３２１に保存される。
【００６２】
また、線路形状入力部３３１は、線路形状入力画面４１において、閉そくの入力を受け付ける（ステップ１０３）。具体的には、ユーザは、線路形状入力画面４１の描画制御窓４１１において閉そく４１１２を選択し、線路形状入力窓４１２に閉そくを入力する。また、入力した閉そく毎に、閉そくの種別、発点、着点、方向、線路要素を閉そく定義４１３に入力する。閉そく定義４１３に入力された情報は、閉そくテーブル３２２に保存される。
【００６３】
その後、線路形状入力部３３１は、ユーザによる幾何分析ボタン４１４の操作を検出すると、入力された閉そく間の関係から幾何情報を生成する（ステップ１０４）。線路形状入力部３３１は、閉そくテーブル３２２に登録されている閉そくの組み合わせから、幾何マスタテーブル３１１を参照して、閉そく間の幾何関係を分析し、幾何の種別を決定する。決定された幾何の種別は、幾何テーブル３２３に保存される。
【００６４】
図１３は、本発明の実施形態の分割部３３２によって実行される処理のフローチャートであり、図１４及び図１５は、分割部３３２で使用される分割結果表示画面４２の例を説明する図である。
【００６５】
まず、分割部３３２は、分割方針の入力を受け付ける（ステップ１１１）。分割方針は「開発工数削減を優先」と「ノウハウ秘匿を優先」の２種類がある。取纏開発者はこの二つから分割方針を選択することができる。
【００６６】
その後、分割部３３２は、入力された分割方針を判定し、処理を分岐する（ステップ１１２）。
【００６７】
入力された分割方針が「開発工数削減を優先」であれば、ステップ１１３に進み、分割部３３２は、線路形状入力部３３１に入力された線路情報を順方向接続幾何部で分割する（ステップ１１３）。例えば、分割結果表示画面４２は、図１４に示すように、線路形状表示窓４２１及び線路形状グラフ表示窓４２２を含む。線路形状表示窓４２１は、線路形状入力部３３１に入力された線路情報を表示する。線路形状グラフ表示窓４２２は、線路形状入力部３３１に入力された閉そくを丸四角で、幾何を結合線で表示する。幾何のうち順方向接続で幾何接続をしている箇所を矢印で示している。「開発工数削減を優先」の場合には、図１４に示すように、順方向接続だけで接続されている箇所で、線路情報を分割して、エリアを生成する。これは、エリアの境界が順方向幾何接続であると、エリアを結合する際の工数を低減できるためである。
【００６８】
一方、入力された分割方針が「ノウハウ秘匿を優先」であれば、ステップ１１４に進み、複雑な閉そく及び幾何を除去するように分割する（ステップ１１４）。複雑であるかの判定は、一つの閉そくに関係する幾何の数が所定数以上であるか、又は、特定の幾何情報を持っているかによって判定することができる。なお、この二つの条件の両方を満たす場合に複雑であると判定してもよい。
【００６９】
例えば、「ノウハウ秘匿を優先」が選択された場合の分割結果表示画面（図１５）では、「開発工数削減を優先」が選択された場合の分割結果表示画面（図１４）と比べて、エリア＃３の下部にある閉そく４２２１、４２２２と、これらに関する幾何が取り除かれている。閉そく４２２１は閉そく間の幾何関係の数が所定数より多く、閉そく４２２２は閉そく４２２１へ進入する閉そくであることから、複雑な閉そくであるために取り除かれている。前述したように、線路形状から複雑な線形を取り除いて簡単な線形とすることによって、複雑な線形の情報や、複雑な線形に設定される制御ロジックなどのノウハウの開示を制限することができる。
【００７０】
その後、分割部３３２は、エリアの複雑度を算出する（ステップ１１５）。複雑度は、エリアを構成する閉そく及び幾何から算出する。例えば、幾何マスタテーブル３１１において幾何パタンに難易度を数値で設定した場合、「閉そくの数×定数値＋幾何の難易度の総和」によって各エリアのポイントを計算し、計算されたポイントに応じてエリアの複雑度（Ａ〜Ｃ）を割り当てる。
【００７１】
次に、分割部３３２は、エリアの類似性を判定する（ステップ１１６）。例えば、エリアを構成する閉そくと幾何との関係が、他のエリアを構成する閉そくと幾何との関係と同じかによって、類似性を判定することができる。具体的には、閉そくをノードとし、幾何をエッジとして、グラフ理論を適用する。エッジには幾何種別３２３２による種別情報を持つ。このとき、一方のエリアを構成するグラフが、他方のエリアを構成するグラフを包含していれば、類似性があると判断することができる。
【００７２】
その後、分割部３３２は、エリアの開発担当開発者を割り当てる（ステップ１１７）。具体的には、開発者マスタテーブル３１３のスキルレベル３１３２及び開示レベル３１３３を参照し、ステップ１１５で算出した複雑度がスキルレベル３１３２及び開示レベル３１３３の両者以下であれば、そのエリアをそのサブ開発者に割り当てる。１人のサブ開発者に複数のエリアを割り当てる際には、ステップ１１６で類似性があると判断されたエリアを同一のサブ開発者に割り当てるとよい。割り当てた結果は、エリアテーブル３２４の開発者ＩＤ３２４４に登録される。
【００７３】
なお、本実施形態では単純な難易度と、スキルレベル及び開示レベルとを比較した結果によって、エリアを割り当てたが、特定の幾何パタン、特定の閉そくの組合せパタン、又は、特定の幾何の組合せパタンがある場合は、開示レベルＡの開発者に割り当てるなどのルールを適用してもよい。
【００７４】
次に、分割部３３２は、割当結果を表示するための情報を生成する（ステップ１１８）。ステップ１１８において生成される割当結果表示画面４２は、図１４及び図１５に示すように、線路形状表示窓４２１、線路形状グラフ表示窓４２２及びエリア定義窓４２３を含む。
【００７５】
線路形状表示窓４２１及び線路形状グラフ表示窓４２２は、分割されたエリア情報を表示する。エリア定義窓４２３は、エリアテーブル３２４に登録されたエリアＩＤ３２４１、ノードＩＤ３２４２、複雑度３２４３及び開発者ＩＤ３２４４の情報を表示する。取纏開発者は、割当結果を確認し、エリア定義窓４２３の情報を変更することによって、必要に応じて各エリアの開発者を変更することができる。
【００７６】
分割部３３２は、割当結果に応じて、各サブ開発者に閉そく及び幾何情報を分配する（ステップ１１９）。具体的には、分割部３３２は、エリアテーブル３２４の開発者ＩＤ３２４４に登録されたサブ開発者が使用する進路制御プログラム生成サブ装置２に、担当エリアに含まれる閉そくＩＤ３２４２に関連する線路要素テーブル３２１、閉そくテーブル３２２及び幾何テーブル３２３の情報を送信する。
【００７７】
図１６は、本発明の実施形態において、サブ開発者が使用する進路制御プログラム生成サブ装置２の制御ロジック割当部３３４によって実行される処理のフローチャートであり、図１７は、制御ロジック割当部３３４で使用される制御ロジック割当画面４３の例を説明する図である。
【００７８】
まず、制御ロジック割当部３３４は、このサブ開発者に割り当てられたエリアに含まれる閉そく及び幾何を表示する（ステップ１２１）。具体的には、制御ロジック割当画面４３の線路形状表示窓４３１及び線路形状グラフ表示窓４３２に、このサブ開発者に割り当てられたエリアの線路形状、閉そく及び幾何の情報を表示する。
【００７９】
制御ロジック割当部３３４は、制御ロジック割当画面４３の自動割当ボタン４３３のサブ開発者による操作を検出すると、制御ロジックの割当対象条件に基づいて、制御ロジックを閉そく及び幾何に割り当てる（ステップ１２２）。具体的には、制御ロジック割当部３３４は、制御ロジックマスタテーブル３１２を参照して、割当対象条件３１２２が一致する閉そく及び幾何に、ロジックＩＤ３１２３を割り当てる。一つの制御ロジックの種別に複数の制御ロジックが割り当てられている場合は、自動的にはロジックを割り当てない、又は、予め定められたロジックＩＤを割り当てる。予め定められたロジックは、例えば、制御ロジックの属性として制御ロジックマスタテーブル３１２に定義することができる。
【００８０】
次に、制御ロジック割当部３３４は、制御ロジックを閉そく及び幾何に手動で割り当てるための画面を表示する（ステップ１２３）。サブ開発者が、線路形状グラフ表示窓４３２で閉そく又は幾何を選択すると、制御ロジック割当部３３４は、当該選択された閉そく及び幾何に割り当てられる制御ロジックを設定するための制御ロジック設定窓４３４を表示する。制御ロジック設定窓４３４は、ステップ１２２において閉そく又は幾何に割り当てられた制御ロジックの一覧４３４１を表示する。また、制御ロジック設定窓４３４では、制御ロジックで使用される条件値（判断を保留する時間など）を設定することができる。さらに、制御ロジック設定窓４３４で追加ボタン４３４２又は削除ボタン４２４３を操作することによって、制御ロジックマスタテーブル３１２に記録されている制御ロジックを追加し、又は、削除する。
【００８１】
その後、制御ロジック割当部３３４は、ステップ１２２及びステップ１２３において閉そく及び幾何に割り当てられた制御ロジックを保存する（ステップ１２４）。具体的には、閉そくに割り当てられた制御ロジックは閉そくテーブル３２２のロジックＩＤ３２２７に保存され、幾何に割り当てた制御ロジックは幾何テーブル３２３のロジックＩＤ３２３５に保存される。
【００８２】
図１８は、本発明の実施形態の結合部３３３によって実行される処理のフローチャートである。前述したように、結合部３３３は、サブ開発者によって設計された制御ロジック割当結果を結合して、鉄道運行管理ソフトウェアを生成する。
【００８３】
まず、結合部３３３は、各開発者による制御ロジック割当結果を保存する（ステップ１３１）。具体的には、進路制御プログラム生成サブ装置２の閉そくテーブル３２２及び幾何テーブル３２３に保存されたロジック情報を取得し、取得したロジック情報を進路制御プログラム生成マスタ装置１の閉そくテーブル３２２及び幾何テーブル３２３に格納する。
【００８４】
次に、結合部３３３は、制御ロジックが割り当てられていない閉そく及び幾何を、制御ロジックが割り当てられている閉そく及び幾何と区別可能に表示する（ステップ１３２）。
【００８５】
具体的には、分割部３３２によって実行される処理のステップ１１２において、入力された分割方針が「開発工数削減を優先」であると判定された場合は、エリアの境界の順方向接続幾何の部分のみに制御ロジックが割り当てられていない。
【００８６】
一方、入力された分割方針が「ノウハウ秘匿を優先」であると判定された場合は、図１５に示す割当結果表示画面４２のエリア＃３の下部のように、分割時に閉そく及び幾何が取り除かれているため、取り除かれた閉そく及び幾何には制御ロジックが割り当てられていない。そのため、図１９に示すように、サブ開発者に割り当てられていない閉そく４３２１、４３２２及び閉そく４３２１、４３２２に関係する幾何を強調表示する。
【００８７】
その後、結合部３３３は、制御ロジックの割当対象条件に基づいて、ロジックが割り当てられていない閉そく及び幾何に制御ロジックを割り当てる（ステップ１３３）。この処理は、制御ロジック割当部３３４によって実行される処理のステップ１２２と同様であるため、その詳細の説明は省略する。
【００８８】
次に、結合部３３３は、制御ロジックを閉そく及び幾何に手動で割り当てる画面を表示する（ステップ１３４）。この処理は、制御ロジック割当部３３４によって実行される処理のステップ１２３と同様であるため、その詳細の説明は省略する。
【００８９】
その後、結合部３３３は、閉そくテーブル３２２、幾何テーブル３２３及び鉄道運行管理コアモジュール３４２を参照し、閉そくテーブル３２２のロジックＩＤ３２２７及び幾何テーブル３２３のロジックＩＤ３２３５で指定される制御ロジックモジュール３４１を結合させ、進路制御プログラムを生成する（ステップ１３５）。
【００９０】
以上のように、本実施形態によれば、開発者への開示レベルに応じて設計担当範囲を割り当てるため、ノウハウの流出を防止し、セキュリティ上のリスクを小さくすることができる。すなわち、ノウハウが蓄積されている複雑な線形に対する制御ロジックの設定は社内で行い、簡単な線形に対する制御ロジックの設定は社外に発注するなど、ノウハウの流出を防止しつつ、作業分担によって効率的に開発作業を進めることができる。
【００９１】
また、各エリア間の関係が独立となるように、順方向接続部分で線路情報を分割して、エリアを生成することによって、ノウハウの流出を防止しつつ、取纏開発者がエリアの設計結果を結合するための作業量を小さくすることができる。
【００９２】
さらに、開発者のスキルに応じて、設計担当範囲を割り当てることができる。
【符号の説明】
【００９３】
１  進路制御プログラム生成マスタ装置
２  進路制御プログラム生成サブ装置
１１  計画系システム
１２  進路制御装置
１３  地上装置
１４  列車
１５  地上設備群
１５１  軌道回路
１５２  信号機
１５３  転轍機
２１  プロセッサ（ＣＰＵ）
２２  メモリ
２３  記憶部
２４  入力部
２５  出力部
２６  通信部
３１１  幾何マスタテーブル
３１２  制御ロジックマスタテーブル
３１３  開発者マスタテーブル
３２１  線路要素テーブル
３２２  閉そくテーブル
３２３  幾何テーブル
３２４  エリアテーブル
３３１  線路形状入力部
３３２  分割部
３３３  結合部
３３４  制御ロジック割当部
【図１】
0005825677.tif 000002
【図２】
0005825677.tif 000003
【図３】
0005825677.tif 000004
【図４】
0005825677.tif 000005
【図５】
0005825677.tif 000006
【図６】
0005825677.tif 000007
【図７】
0005825677.tif 000008
【図８】
0005825677.tif 000009
【図９】
0005825677.tif 000010
【図１０】
0005825677.tif 000011
【図１１】
0005825677.tif 000012
【図１２】
0005825677.tif 000013
【図１３】
0005825677.tif 000014
【図１４】
0005825677.tif 000015
【図１５】
0005825677.tif 000016
【図１６】
0005825677.tif 000017
【図１７】
0005825677.tif 000018
【図１８】
0005825677.tif 000019
【図１９】
0005825677.tif 000020