(57)【要約】【課題】電力会社毎、場所毎の仕様の違いなど膨大な組合せがある場合にも、効率よくアプリケーションの製作・保守を行えるソフトウエア作成方法を得る。【解決手段】抽象クラスの電力監視制御業務オブジェクト３は、機能オブジェクトである、トリガーオブジェクト４と、入力オブジェクト５と、演算オブジェクト６と、出力オブジェクト７とから構成され、それぞれの機能オブジェクトの実体を内部に包含せず、これらの機能オブジェクトへの参照情報のみを保持するようにして、機能オブジェクトの保守性を向上させたものである。【選択図】図２
2008041038.tif 000002
【特許請求の範囲】
【請求項１】
システムの対象業務に係わるソフトウエアをオブジェクト指向プログラミングによって作成するソフトウエア作成方法において、上記対象業務の業務オブジェクトは、それぞれ複数の機能オブジェクトから構成されると共に、上記機能オブジェクトの実体を内部に包含せず、上記機能オブジェクトへの参照情報のみを保持することを特徴とするソフトウエア作成方法。
【請求項２】
上記業務オブジェクトの作成に当たって、システム毎に特化した業務オブジェクトを構成する機能オブジェクトを定義した定義ファイルを作成する第一の手順と、この第一の手順により作成された定義ファイルを読み込む第二の手順と、この第二の手順により読み込まれた定義ファイルで定義された機能オブジェクトの参照情報を有する業務オブジェクトを生成する第三の手順を含むことを特徴とする請求項１記載のソフトウエア作成方法。
【請求項３】
上記定義ファイルで定義される機能オブジェクトは、入力オブジェクトを含み、上記入力オブジェクト毎にリレーショナルデータベースの仮想テーブルにより実施される演算内容を定義した仮想テーブル定義ファイルを作成する第四の手順、この第四の手順により作成された上記仮想テーブル定義ファイルを読み込み、解釈する第五の手順、この第五の手順により解釈された結果により上記演算内容を含む仮想テーブルを作成する第六の手順を含み、上記仮想テーブルの演算内容による演算結果が上記入力オブジェクトに入力されるようにしたことを特徴とする請求項２記載のソフトウエア作成方法。
【請求項４】
上記定義ファイルには、定義ファイル間の継承関係を定義し、上記第二の手順は、上記親定義ファイルの情報も記述した派生定義ファイルを読み込むと、上記親定義ファイルも読み込み、上記親定義ファイルの内容に上記派生定義ファイルの内容を上書き併合した内容で機能オブジェクトを生成することを特徴とする請求項２または請求項３記載のソフトウエア作成方法。
【請求項５】
上記定義ファイルは、他の定義ファイルの全部または一部の定義内容を引用して定義し、上記第二の手順は、上記定義ファイル及びこれにより引用された他の定義ファイルを読み込み、上記定義ファイルの引用個所に上記他の定義ファイルの上記引用内容を挿入することを特徴とする請求項２または請求項３記載のソフトウエア作成方法。
【請求項６】
上記第二の手順は、上記定義ファイルを読み込むときに、上記定義ファイルの記述ミスをチェックし、ミスを検出した際にはエラーメッセージを出力することを特徴とする請求項２または請求項３記載のソフトウエア作成方法。
【請求項７】
上記定義ファイルには、各業務オブジェクトを構成する機能オブジェクトが階層構造を持つように定義され、上記第二の手順は、上記機能オブジェクトの階層情報を解釈し、上記第三の手順は、上記業務オブジェクトが上記機能オブジェクトの参照情報を有すると共に、この機能オブジェクトが他の機能オブジェクトの参照情報を有するように上記業務オブジェクトを作成することを特徴とする請求項２または請求項３記載のソフトウエア作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電力系統監視制御（以下、電力監視制御）システムなどのシステムを構成する対象業務に係わるソフトウエアをオブジェクト指向プログラミングによって作成するソフトウエア作成方法に関するものである。
【背景技術】
【０００２】
特許文献１には、配電自動化システムのフレームワークとして、個々のアプリケーションのレイヤ、配電自動化レイヤ、電力監視制御レイヤ、監視制御基本レイヤのレイヤ分けを行い、配電自動化レイヤに属するオブジェクトとして、配電線事故の事故判定オブジェクトが示されている。
この配電線事故の事故判定オブジェクトは、保護リレーの動作状況とその他の付加的な情報（設備状態など）をもとに事故判定を行う。事故判定の仕様は、種々あり、これらの仕様の違いに対応できるように、メソッド（関数）をオーバーライドする（メソッドの実体を持たせる）。メソッドの処理は、システム毎に仕様の差異があるため、事故判定オブジェクトの抽象クラスを継承したシステム特化の派生クラスを作り、派生クラスにてメソッドをオーバーライド定義することにより、仕様の差異を吸収する。
【０００３】
【特許文献１】特許第３６３７６９３号公報（第３〜６頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のフレームワークは以上のように構成されており、電力会社毎の共通仕様を記述した抽象クラスをフレームワークとして用意し、電力会社毎の仕様の違いをオブジェクトの継承とオブジェクトを構成する各メソッド（関数）を継承によって生成した派生クラスにてオーバーライドすることにより吸収している。
【０００５】
しかし、仕様の相違は、電力会社毎だけではなく、同一電力会社であっても、支店毎など設置される場所毎に少しずつ仕様が異なるため、継承によるオーバーライド関数の組合せ数が膨大となる。
例えば、各システム向けのＡ電力Ｂ支店向け事故判定オブジェクト、Ａ電力Ｃ支店向け事故判定オブジェクト等は、共通の抽象クラスである事故判定オブジェクトから継承により派生し、メソッド関数Ａ、Ｂ、Ｃをオーバーライドしたものである。各電力会社、各支店にて仕様が少しずつ異なるため、関数Ａ、Ｂ、Ｃのバリエーションの組合せは膨大となるが、各派生クラスが内部にオーバーライド関数を保持するため、例えば、関数Ａ１は、Ａ電力Ｂ支店むけ事故判定オブジェクト、Ｂ電力Ｅ支店向け事故判定オブジェクト、Ｃ電力Ｊ支店向け事故判定オブジェクトに重複して存在する。よって、当該関数Ａ１に不具合が発生した場合には、関数Ａ１を含む全てのオブジェクトについて等しく同一の改修を行う必要があり、ソフトウエアの保守性に問題があった。
また、メソッド関数を有するように構成される業務オブジェクトの作成にあたって、プログラミング量を減少させる必要があった。
【０００６】
この発明は、上記のような課題を解決するためになされたものであり、客先毎、場所毎の仕様の違いなど膨大な組合せがある場合にも、効率よくアプリケーションの製作・保守を行えるソフトウエア作成方法を得ることを目的としている。
【課題を解決するための手段】
【０００７】
この発明に係わるソフトウエア作成方法においては、システムを構成する対象業務に係わるソフトウエアをオブジェクト指向プログラミングによって作成するソフトウエア作成方法において、対象業務の業務オブジェクトは、それぞれ複数の機能オブジェクトから構成されると共に、機能オブジェクトの実体を内部に包含せず、機能オブジェクトへの参照情報のみを保持するものである。
【発明の効果】
【０００８】
この発明は、以上説明したように、システムを構成する対象業務に係わるソフトウエアをオブジェクト指向プログラミングによって作成するソフトウエア作成方法において、対象業務の業務オブジェクトは、それぞれ複数の機能オブジェクトから構成されると共に、機能オブジェクトの実体を内部に包含せず、機能オブジェクトへの参照情報のみを保持するので、機能オブジェクトの実体は、１つでよく、機能オブジェクトのソフトウエアの保守効率が向上するという効果がある。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１による配電自動化システムの事故判定のフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図１において、配電自動化システムの事故判定フレームワーク１０１は、個々の事故判定のアプリケーション１１０を有する。事故判定フレームワーク１０１に属する事故判定オブジェクト１０２は、事故判定オブジェクト共通の抽象クラスであり、この業務オブジェクト（事故判定オブジェクト）を構成する各機能オブジェクトは、各関数オブジェクトであり、業務オブジェクトは、それぞれの関数オブジェクトの参照情報１０３〜１０５のみを有している。すなわち、関数Ａオブジェクトへの参照情報１０３と、関数Ｂオブジェクトへの参照情報１０４と、関数Ｃオブジェクトへの参照情報１０５を有している。そして、関数Ａオブジェクトへの参照情報１０３と、関数Ｂオブジェクトへの参照情報１０４と、関数Ｃオブジェクトへの参照情報１０５によって、それぞれ関数Ａオブジェクトの実体１０６、関数Ｂオブジェクトの実体１０７、関数Ｃオブジェクトの実体１０８が参照される。つまり、事故判定オブジェクトは、事故判定に用いる関数の参照情報だけを持っている。関数オブジェクトは、関数Ａオブジェクト（抽象クラス）と、関数Ａ１オブジェクト（派生クラス）、関数Ａ２オブジェクト（派生クラス）、関数Ａ３オブジェクト（派生クラス）がある。関数Ｂオブジェクト、関数Ｃオブジェクトも同様である。
事故判定オブジェクトは、例えばＡ電力Ｂ支店向け事故判定オブジェクトのように各電力会社の支店毎に作成され、少しずつ異なっている。
ここで、対象業務を実現するソフトウエアを業務オブジェクトと称し、この対象業務を複数の機能に分割したそれぞれの機能を実現するソフトウエアを機能オブジェクトと称することにする。
【００１０】
以下、図１を用いて、本発明の実施の形態１による配電自動化システムの事故判定のフレームワークにおけるオブジェクト生成方法について説明する。
配電線事故の事故判定オブジェクト１０２は、保護リレーの動作状況とその他の付加的な情報（設備状態など）をもとに事故判定を行う。事故判定の仕様は、その保護リレーの動作状況をどのように解釈するべきかという方針でさまざまに変わる。
【００１１】
この事故判定オブジェクト１０２には、オーバーライドすべき関数Ａ０オブジェクト、関数Ｂ０オブジェクト、関数Ｃ０オブジェクトがある。関数の処理は、システム毎に仕様の差異があるため、１０６〜１０８のように、関数オブジェクトとして、抽象クラスを継承した派生クラスの実体を用意しておく。
次に、事故判定オブジェクト１０２を継承したシステム特化の派生クラスを作り、派生クラスにて各関数Ａ、Ｂ、Ｃの派生クラスの実体への参照情報を持つことにより、仕様の差異を吸収する。
【００１２】
このように、事故判定オブジェクトなどの各業務オブジェクトは、関数Ａオブジェクト、関数Ｂオブジェクト、関数Ｃオブジェクトの実体を内部に持つのではなく、参照情報のみを保持するようにしたため、関数Ａオブジェクト、関数Ｂオブジェクト、関数Ｃオブジェクトの実体はそれぞれ一ヵ所になる。このため、ソフトウエアの保守効率を向上させることができる。
【００１３】
次に、上述のようなオブジェクトの生成方法を、電力監視制御システムのフレームワークにおける電力監視制御業務オブジェクトの自動生成に適用した場合について説明する。
図２は、この発明の実施の形態１による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図２において、電力監視制御フレームワーク２は、個々の電力監視業務のアプリケーション１を有する。電力監視制御フレームワーク２に属する電力監視制御業務オブジェクト３は、電力監視制御業務オブジェクト共通の抽象クラスであり、この業務オブジェクトを構成する各機能オブジェクトは、トリガーオブジェクト、入力オブジェクト、演算オブジェクト、出力オブジェクトの４つの機能オブジェクトであり、業務オブジェクトは、それぞれの機能オブジェクトの参照情報４〜７のみを有している。
トリガーオブジェクトにより処理を起動すべき条件をチェックし、条件が満足されると、トリガーオブジェクトが入力オブジェクトを起動する。入力オブジェクトは、入力データを取得すべき箇所から取得して演算オブジェクトに渡す。演算オブジェクトで演算を行ない、演算結果を出力オブジェクトに渡す。出力オブジェクトは、演算結果を出力すべき箇所に出力する。
【００１４】
電力監視制御業務オブジェクト３により参照される機能オブジェクトは、トリガーオブジェクトの実体８である抽象クラスおよびその派生クラスと、入力オブジェクトの実体９である抽象クラスおよびその派生クラスと、演算オブジェクトの実体１０である抽象クラスとその派生クラスと、出力オブジェクトの実体１１である抽象クラスとその派生クラスとである。
図２には、電力監視制御業務オブジェクト３の例として系統監視業務オブジェクト、系統操作業務オブジェクト、警報管理業務オブジェクトを上げ、それぞれについて、Ａ電力Ｂ支店向け、Ａ電力Ｆ支店向け、Ｂ電力Ｇ支店向けのバリエーションを図示している。
【００１５】
以下、図２を用いて、本発明のフレームワークにおけるオブジェクト生成方法について説明する。
電力監視制御業務オブジェクト３の各業務オブジェクトは、トリガーオブジェクト、入力オブジェクト、演算オブジェクト、出力オブジェクトの４つの機能オブジェクトにて構成する共通の構造にしている。
トリガーオブジェクトは、何かのイベントやタイマーなどのきっかけにより、入力オブジェクトを起動する機能を持つ機能オブジェクトである。きっかけの種類により抽象クラスであるトリガークラスから継承した各種トリガーオブジェクトを派生クラスとして用意しておく。
【００１６】
入力オブジェクトは、対象としている入力先から、対象としているデータを取得し、演算オブジェクトに渡す機能を持つ機能オブジェクトである。入力先の種類により抽象クラスである入力クラスから継承した各種入力オブジェクトを派生クラスとして用意しておく。
【００１７】
演算オブジェクトは、入力オブジェクトが入力したデータを受け取り演算する機能オブジェクトである。演算の種類により抽象クラスである演算クラスから継承した各種演算オブジェクトを派生クラスとして用意しておく。
【００１８】
出力オブジェクトは、演算オブジェクトから演算結果を受け取り、対象となる出力先に出力する機能を持つ機能オブジェクトである。出力先の種類により抽象クラスである出力クラスから継承した各種出力オブジェクトを派生クラスとして用意しておく。
【００１９】
各電力の各支店向けの各業務オブジェクトは、要求仕様に応じて、トリガーオブジェクト、入力オブジェクト、演算オブジェクト、出力オブジェクトの各機能オブジェクトを選択し、それらの参照情報を内部にもつことにより生成されている。
【００２０】
実施の形態１によれば、配電自動化システムの例のように、事故判定オブジェクトなどの各業務オブジェクトは、関数Ａ、Ｂ、Ｃの実体を内部に持つのではなく、参照情報のみを保持するようにしたため、関数Ａ、Ｂ、Ｃの実体は一ヵ所になり、ソフトウエアの保守効率を向上させる効果がある。
すなわち、電力監視制御フレームワークのように、各業務オブジェクトは、機能オブジェクトの実体を内部にもつのではなく、機能オブジェクトの参照情報を内部に持つようにしたため、機能オブジェクトの実体は、各種類で１つであり、機能オブジェクトのソフトウエアの保守効率が向上するという効果がある。
【００２１】
実施の形態２．
実施の形態１では、各業務オブジェクトは、どの機能オブジェクトの参照情報を内部に持つかプログラミングにより定義して生成する必要があった。実施の形態２は、これを解決するために考えられたもので、各業務オブジェクトを定義ファイルから自動生成することにより、このプログラミングを不要にしたものである。
【００２２】
図３は、この発明の実施の形態２による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。図３では、系統操作業務オブジェクトの例を示しているが、どの業務オブジェクトでも同様である。
図３において、１〜１１は図２におけるものと同一のものである。定義ファイ２０は、業務オブジェクトを自動生成する際の元となるファイルであり、図３の例では、Ａ電力Ｂ支店向け系統操作業務について定義した定義ファイルであり、トリガーオブジェクトにはトリガー２を、入力オブジェクトには入力２を、演算オブジェクトには演算３を、出力オブジェクトには出力１を利用することを定義している。
オブジェクト個別定義読込手段２１は、定義ファイル２０を読み込む。オブジェクト自動生成手段２２は、オブジェクト個別定義読込手段２１が読み込んだ定義ファイル２０の内容に基づき、業務オブジェクトを自動生成する。図３では、Ａ電力Ｂ支店向け系統操作業務オブジェクト１２を自動生成している。
【００２３】
以下、図３を用いて動作について説明する。
まず、システムに特化した各業務オブジェクトの個別定義である定義ファイル２０を用意する（第一の手順）。オブジェクト個別定義読込手段２１は、定義ファイル２０を読み込み（第二の手順）、定義内容を解釈する。オブジェクト自動生成手段２２は、オブジェクト個別定義読込手段２１が解釈した定義内容に従い、各機能オブジェクトの参照情報を内部に保持した業務オブジェクトを自動生成する（第三の手順）。図３では、Ａ電力Ｂ支店向け系統操作業務オブジェクト１２が自動生成されている。
【００２４】
以上説明したように、実施の形態２によれば、各業務アプリケーションは、定義ファイルから自動生成されるため、プログラミングが不要であり、アプリケーションの生産効率を向上する効果がある。
また、業務オブジェクトの振る舞いを変更する際には、プログラムではなく、定義ファイルを編集すればよいことから、ソフトウエアの保守効率を向上させる効果もある。
【００２５】
実施の形態３．
実施の形態２では、業務オブジェクトの生成は自動で行えるが、トリガー、入力、演算、出力の各機能オブジェクトは、予めプログラミングで用意しておく必要があった。特に演算オブジェクトは、複雑な演算処理をプログラムするため、各システムの細かな差異が多く、共通化しにくいため、演算オブジェクトは、派生クラスの数が多くなるという問題があった。
実施の形態３は、これを解決するために考えられたもので、オンラインデータベースとしてリレーショナルデータベースを適用し、リレーショナルデータベースの仮想テーブル機能により、仮想テーブル上にて演算処理を実施するようにし、演算処理実施後のデータを入力することにより、演算オブジェクトを不要とした。また仮想テーブルでの演算内容は、定義ファイルで与えることにより、演算のプログラミングを不要にしている。
【００２６】
図４は、この発明の実施の形態３による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図４において、１〜５、７〜１２、２１は図３におけるものと同一のものである。定義ファイル２０’では、システム特化された業務オブジェクトを個別に定義したものであり、演算オブジェクトの定義が不要になっている。仮想テーブル定義ファイル３０は、入力先の仮想テーブルの構造を定義し、演算内容の定義を含む。仮想テーブル定義読込手段３１は、仮想テーブル定義ファイル３０を読み込み、解釈する手段である。仮想テーブル生成手段３２は、仮想テーブル定義読込手段３１の解釈結果をもとに仮想テーブル３３を自動生成する。仮想テーブル生成手段３２により生成された仮想テーブル３３には、仮想テーブル定義ファイル３０にて定義された演算内容３５が含まれている。
リレーショナルデータベース３４は、オンラインデータを保持する。仮想テーブル機能は、リレーショナルデータベースが一般に保有する機能である。
【００２７】
以下、図を用いてオブジェクト生成方法を説明する。
まず、入力オブジェクトの派生クラス毎に仮想テーブルの構造を仮想テーブル定義ファイル３０に定義する（第四の手順）。仮想テーブル定義ファイル３０には、仮想テーブルにて実施される演算の内容も定義しておく。
次に、仮想テーブル定義読込手段３１は、仮想テーブル定義ファイル３０を読み込み、定義内容を解釈して（第五の手順）仮想テーブル生成手段３２に渡す。仮想テーブル生成手段３２は、仮想テーブルの解釈結果に従って仮想テーブル３３を生成する（第六の手順）。仮想テーブル３３には、仮想テーブル定義ファイル３０にて定義された演算内容も含むため、この演算後の結果が、入力オブジェクトが仮想テーブル３３から読み込むデータになる。
【００２８】
以上説明したように、実施の形態３によれば、入力オブジェクトは、仮想テーブルでの演算結果を読み込むために、業務オブジェクトが演算オブジェクトの参照情報を保持して、入力オブジェクトが入力したデータを演算オブジェクトに渡して演算させる必要がなく、入力オブジェクトから演算済のデータを読み込み、出力オブジェクトに渡すだけでよくなる。
また、仮想テーブルは、仮想テーブル定義ファイルから自動生成するため、演算オブジェクト自体が不要になることにより、ソフトウエアの生産効率、保守効率を向上させる効果がある。
【００２９】
実施の形態４．
実施の形態３では、システムに特化した各業務オブジェクトで独立した定義ファイルを作成するため、全体の一部のみ差異があるような場合でも、新たに全体を作成する必要があった。実施の形態４は、この問題を解決するために考えられたもので、定義ファイルに継承関係も持たせ、派生した定義ファイルでは変更部分のみを定義すればよいようにすることで、同じ記述を何度も行うことを不要にしている。
【００３０】
図５は、この発明の実施の形態４による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図５において、１〜５、７、２０’、２１、２２は図４におけるものと同一のものである。Ａ電力Ｆ支店向け系統操作オブジェクトを個別に定義した定義ファイル４０は、継承関係を定義している。継承定義解釈手段４１は、定義ファイル４０の継承関係を解釈する。
【００３１】
以下、図５を用いてオブジェクト生成方法を説明する。
新たにＡ電力Ｆ支店向け系統操作業務オブジェクトを生成する場合、Ａ電力Ｆ支店向け系統操作業務オブジェクトは、機能オブジェクトとしてトリガー３、入力２、出力１の参照情報を持ち、既存のＡ電力Ｂ支店向け系統操作オブジェクトがトリガー２、入力２、出力１の参照情報を持ち、両者の業務オブジェクトの相違がトリガーオブジェクトだけの場合、Ａ電力Ｆ支店向け系統操作オブジェクトを個別に定義した定義ファイル４０（派生定義ファイル）では、継承先の定義ファイル（親定義ファイル）名称と、上書きするトリガーオブジェクトの定義のみを記述する。
継承定義解釈手段４１では、まずＡ電力Ｆ支店向け系統操作オブジェクトの定義ファイル４０を読み込んで定義内容を解釈し、そこに継承が定義されていた場合には、継承先の定義ファイル（今の例ではＡ電力Ｂ支店向け系統操作オブジェクトの個別定義した定義ファイル２０’）を読み込み、Ａ電力Ｆ支店向け系統操作オブジェクトの個別定義ファイル４０に定義されているトリガー定義をＡ電力Ｂ支店向け系統操作オブジェクトの個別定義ファイル２０’のトリガー定義に上書きする。
オブジェクト個別定義読み込み手段２１は、継承が反映された定義情報を読み込み、定義内容を解釈してオブジェクト自動生成手段２２に渡し、オブジェクト自動生成手段２２はＡ電力Ｆ支店向け系統操作業務オブジェクトを生成する。
【００３２】
以上説明したように、実施の形態４によれば、既存定義ファイルの変更部分のみを記述することができるため、定義ファイル製作効率を向上させることができる。
また、継承元の定義ファイルを変更するだけで、継承先の複数の定義ファイルにて定義された複数の業務オブジェクトの機能オブジェクト参照先を一括して変更できるという効果もある。
【００３３】
実施の形態５．
実施の形態３では、システムに特化した各業務オブジェクトで独立した定義ファイルを作成するため、全体の一部のみ差異があるような場合でも、新たに全体を作成する必要があった。実施の形態５は、この問題を解決するために考えられたもので、定義ファイルに引用関係を持たせ、既存の複数の定義ファイルから引用したい部分だけを抽出して利用できるようにしたことにより、同じ記述を何度も行うことを不要にしている。
【００３４】
図６は、この発明の実施の形態５による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図６において、１〜５、７、２０’、２１、２２は図４におけるものと同一のものである。定義ファイル５０は、機能オブジェクトの引用関係を定義した定義ファイルである。引用定義解釈手段５１は、定義ファイル５０の機能オブジェクトの引用定義を解釈する。
【００３５】
以下、図６を用いてオブジェクト生成方法を説明する。
新たにＡ電力Ｆ支店向け系統操作業務オブジェクトを生成する場合、Ａ電力Ｆ支店向け系統操作業務オブジェクトは、機能オブジェクトとしてトリガー３、入力２、出力１の参照情報を持ち、既存のＡ電力Ｂ支店向け系統操作オブジェクトがトリガー２、入力２、出力１の参照情報を持ち、既存のＡ電力Ｋ支店向け系統操作オブジェクトがトリガー１、入力１、出力３の参照情報を持つ場合、Ａ電力Ｆ支店向け系統操作オブジェクトを個別に定義した定義ファイル５０では、引用先の定義ファイル名と引用する機能オブジェクトを定義する。
引用定義解釈手段５１では、まずＡ電力Ｆ支店向け系統操作オブジェクトを個別に定義した定義ファイル５０を読み込んで定義内容を解釈し、そこに引用が定義されていた場合には、引用先の定義ファイル２０’を読み込んで引用部分の入力オブジェクトの定義を挿入し、引用先の定義ファイル２０''を読み込んで、引用部分の出力オブジェクトの定義を挿入する。
オブジェクト個別定義読込手段２１は、引用反映後の定義内容を読み込んで解釈し、オブジェクト自動生成手段２２に渡す。オブジェクト自動生成手段２２は、定義内容に従ってＡ電力Ｆ支店向け系統操作業務オブジェクトを自動生成する。
【００３６】
以上説明したように、実施の形態５によれば、既存定義ファイルを部分的に引用できるため、定義ファイルの作成効率を向上させる効果がある。
また、引用元の定義ファイルを変更するだけで引用先の業務オブジェクトの振る舞いも一括して変更できるという効果もある。
【００３７】
実施の形態６．
実施の形態３では、定義ファイルに文法間違いやタイプミスなどの記述ミスがあった場合、オブジェクト個別定義読込手段が読み込んで解釈するまで間違いに気づかないという問題があった。実施の形態６は、この問題を解決するために考えられたもので、定義ファイルの記述ミスを検出する手段を設けることにより、より早い段階で記述ミスを検出し、ユーザに通知することができるようにしている。
【００３８】
図７は、この発明の実施の形態６による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法での記述ミス検出方法を示すブロック図である。
図７において、１〜５、７、２０’、２１、２２は図４におけるものと同一のものである。定義ファイルスキーマ６０は、定義ファイルの文法を規定する。定義ファイル記述ミス検出手段６１は、定義ファイルスキーマ６０に基き、定義ファイルの記述ミスを検出し、記述ミスが検出されたとき記述ミス検出メッセージ６２を出力する。
【００３９】
以下、図７を用いて記述ミス検出方法を説明する。
定義ファイル記述ミス検出手段６１は、予め定義された定義ファイルスキーマ６０に従って、定義ファイル２０’の記述内容をチェックし、記述ミスを検出した場合には、記述ミス検出メッセージ６２を出力する。記述ミスを検出しなかった場合には、オブジェクト個別定義読込手段２１に定義ファイル内容を送る。
【００４０】
以上説明したように、実施の形態６によれば、定義ファイルの記述ミスを事前に早い段階で検出し、ユーザに記述ミス内容を通知できるために、定義ファイルの品質を向上させ、定義ファイル製作効率を向上することができる。
【００４１】
実施の形態７．
実施の形態３では、システムに特化した各業務オブジェクトが各機能オブジェクト（トリガー、入力、出力）の参照情報を保持しているため、トリガー、入力、出力オブジェクトを一組でしか保持することができず、トリガーオブジェクトが２つ以上ある場合、１つのトリガーオブジェクトに対して２つ以上の入力オブジェクトがある場合、あるいは１つの入力オブジェクトに対して複数の出力オブジェクトがある場合などに対応することができなかった。
実施の形態７は、この問題を解決するために考えられたもので、業務オブジェクトは、トリガーオブジェクトの参照情報のみを持ち、トリガーオブジェクトは、入力オブジェクトの参照情報を持ち、入力オブジェクトは、出力オブジェクトの参照情報を持つというように機能オブジェクトを階層構造にし、各機能オブジェクトは、下位の機能オブジェクトの参照情報を複数持てるようにして複雑な処理に対応できるようにしている。
【００４２】
図８は、この発明の実施の形態７による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
図８において、１〜５、７、２２は図４におけるものと同一のものである。定義ファイル７０は、階層構造の機能オブジェクトを定義する。オブジェクト個別定義階層構造対応読込手段７１は、階層構造の機能オブジェクトが定義された定義ファイル７０を読込む。オブジェクト自動生成手段２２は、階層構造の機能オブジェクトが定義された定義ファイル７０を参照して、階層構造の機能オブジェクトを持った業務オブジェクト７２及び各機能オブジェクトを自動生成する。
なお、図８では、定義ファイル７０にしたがって作成される業務オブジェクト７２とそれによって参照される機能オブジェクトを参照関係だけを表示している。すなわち、業務オブジェクト７２はトリガー２とトリガー３を参照し、トリガー２は、入力２と入力３を参照し、トリガー３は、入力３と入力２を参照し、トリガー２から参照される入力２は、出力１と出力２を参照し、入力１は、出力２を参照し、トリガー３から参照される入力３は、出力２を参照し、トリガー３から参照される入力２は、出力３を参照する様子を示している。これらの業務オブジェクト７２から参照されるトリガーオブジェクト、入力オブジェクト、出力オブジェクトは、派生クラスの実体を含み、トリガーオブジェクト、入力オブジェクトは階層構造下位の機能オブジェクトの参照情報を含むものである。
【００４３】
以下、図８を用いてオブジェクト生成方法を説明する。
生成対象の業務オブジェクトは、業務オブジェクト７２（派生クラス）のように一つ以上のトリガーオブジェクト（派生クラス）の参照情報を持ち、トリガーオブジェクトは、それぞれ一つ以上の入力オブジェクト（派生クラス）の参照情報を持ち、入力オブジェクトは、それぞれ一つ以上の出力オブジェクト（派生クラス）の参照情報を持っている。すなわち、各機能オブジェクト（派生クラス）は、それぞれ参照する機能オブジェクト（派生クラス）の参照情報を持つように実体が形成されている。
まず、オブジェクトの階層構造を定義したＡ電力Ｂ支店向け系統操作オブジェクトを個別に定義した定義ファイル７０を作成する。オブジェクト個別定義階層構造対応読込手段７１は、定義ファイル７０を読込んで定義内容を解釈し、オブジェクト自動生成手段２２に送る。
オブジェクト自動生成手段２２は、定義内容に従って、業務オブジェクト７２がトリガーオブジェクトの参照情報を持ち、トリガーオブジェクトは、入力オブジェクトの参照情報を持ち、入力オブジェクトは、出力オブジェクトの参照情報を持つように、各機能オブジェクト（実体及び参照情報を持つ派生クラス）及びこれを参照する業務オブジェクトを自動生成する。
【００４４】
以上説明したように、実施の形態７によれば、オブジェクトの階層構造を記述できるため、より複雑な処理内容を持つ業務オブジェクトも自動生成することにより、ソフトウエア製作、保守効率を向上させることができるという効果を持つ。
【図面の簡単な説明】
【００４５】
【図１】この発明の実施の形態１による配電自動化システムの事故判定のフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図２】この発明の実施の形態１による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図３】この発明の実施の形態２による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図４】この発明の実施の形態３による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図５】この発明の実施の形態４による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図６】この発明の実施の形態５による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図７】この発明の実施の形態６による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【図８】この発明の実施の形態７による電力監視制御システムのフレームワークにおけるオブジェクト自動生成方法を示すブロック図である。
【符号の説明】
【００４６】
１  個々のアプリケーション、２  電力監視制御フレームワーク、
３  電力監視制御業務オブジェクト、４  トリガーオブジェクトへの参照情報、
５  入力オブジェクトへの参照情報、６  演算オブジェクトへの参照情報、
７  出力オブジェクトへの参照情報、８  トリガーオブジェクトの実体、
９  入力オブジェクトの実体、１０  演算オブジェクトの実体、
１１  出力オブジェクトの実体、１２  業務オブジェクト、２０  定義ファイル、
２１  オブジェクト個別定義読込手段、２２  オブジェクト自動生成手段、
３０  仮想テーブル定義ファイル、３１  仮想テーブル定義読込手段、
３２  仮想テーブル生成手段、３３  仮想テーブル、４０  定義ファイル、
４１  継承定義解釈手段、５０  定義ファイル、５１  引用定義解釈手段、
６０  業務オブジェクト個別定義スキーマ、
６１  定義ファイル記述ミス検出手段、６２  記述ミス検出メッセージ、
７０  定義ファイル、７１  オブジェクト個別定義階層構造対応読込手段、
１０１  事故判定フレームワーク、１０２  事故判定オブジェクト、
１０３  関数Ａへの参照情報、１０４  関数Ｂへの参照情報、
１０５  関数Ｃへの参照情報、１０６  関数Ａの実体、１０７  関数Ｂの実体、
１０８  関数Ｃの実体、１１０  個々のアプリケーション。
【図１】
2008041038.tif 000003
【図２】
2008041038.tif 000004
【図３】
2008041038.tif 000005
【図４】
2008041038.tif 000006
【図５】
2008041038.tif 000007
【図６】
2008041038.tif 000008
【図７】
2008041038.tif 000009
【図８】
2008041038.tif 000010