(57)【要約】  ソースコードパターンを用いたマッチングを行うことにより、運転プログラム（１０５）を生成するためのソースコード（１０２）を、ソースコードパターンが関連付けられた制御ブロックからなる変換データに変換する。そして、この制御ブロックからなる変換データを、制御ブロックに対応して規定されたアイコンを用いて表示する。これにより、ソフトウエア生成装置（１０）のオペレータは、視覚的にソースコード（１０２）の内容を把握することができる。
2012046460.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせるマッチング手段と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する変換手段と、
前記ブロックからなるデータに基づいて、前記ソフトウエアを生成する生成手段と、
を備えるソフトウエア生成装置。
【請求項２】
前記ブロックからなるデータを、前記ブロックに対応したグラフィックの配列として表示する表示手段を備える請求項１に記載のソフトウエア生成装置。
【請求項３】
前記グラフィックはアイコンである請求項２に記載のソフトウエア生成装置。
【請求項４】
前記グラフィックの配列を変更するためのインタフェースを備え、
前記生成手段は、変更された前記グラフィックの配列に対応した前記ブロックの配列によって規定されるデータに基づいて、前記ソフトウエアを生成する請求項３に記載のソフトウエア生成装置。
【請求項５】
前記表示手段は、
前記ソフトウエアを所定の機器に実行させたときに、前記ソフトウエアによって規定される特定の処理が完了するまでの所要時間と、予め設定された制限時間とを比較した結果を表示する請求項１乃至４のいずれか一項に記載のソフトウエア生成装置。
【請求項６】
前記機器に、通信回線を介して、前記ソフトウエアをアップロードする通信手段を備える請求項５に記載のソフトウエア生成装置。
【請求項７】
前記ブロックと、前記ソースコードの一部を構成する文字列との対応を示す辞書データを記憶する記憶手段を備え、
前記マッチング手段は、前記辞書データに基づいて、前記ブロックを前記ソースコードにマッチングさせる請求項１乃至６のいずれか一項に記載のソフトウエア生成装置。
【請求項８】
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせる工程と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する工程と、
前記ブロックからなるデータに基づいて、前記ソフトウエアを生成する工程と、
を備えるソフトウエア生成方法。
【請求項９】
前記データを、前記ブロックに対応したグラフィックの配列として表示する工程を含む請求項８に記載のソフトウエア生成方法。
【請求項１０】
コンピュータに、
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせる手順と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する手順と、
前記ブロックからなるデータに基づいて、前記ソフトウエアを生成する手順と、
を実行させるプログラム。
【請求項１１】
前記データを、前記ブロックに対応したグラフィックの配列として表示する手順を更に実行させる請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウエア生成装置、ソフトウエア生成方法及びプログラムに関し、更に詳しくは、所定の制御装置によって実行されるソフトウエアを生成するソフトウエア生成装置、所定の制御装置によって実行されるソフトウエアを生成するためのソフトウエア生成方法及びプログラムに関する。
【背景技術】
【０００２】
空調設備に代表される設備機器は、居住区やワークエリアに分散配置された複数の機器を、コンピュータを用いて集中管理する運用形態のものが多い。この種の設備機器は消費電力が大きく、出力をこまめに調整することで、大きな省エネ効果が期待できる。そのため、設備機器の出力を調整するための運転プログラムは年々複雑化し、これにともない運転プログラムに関連するソースコードの量も増大している。【０００３】
運転プログラムを実行する過程で生じたエラーによる実害は、設備機器の用途によっては、著しく拡大することがある。このため、設備機器の運用に用いられるプログラムに起因するエラーの許容範囲は、例えば情報機器の運用に用いられるプログラムに起因するエラーの許容範囲に比べて狭い。したがって、設備機器の運転プログラムの製造には、大きなコストがかかるのが一般的である。【０００４】
そこで、設備機器の運転プログラムを、品質を維持しつつ低コストで作成するための開発支援装置が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５７７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された開発支援装置は、状態遷移情報の中から互いに排他性を有すべき状態遷移条件を抽出する。これにより、排他性を有すべき状態遷移条件が、実際に排他性を有しているか否かを容易に確認することが可能となる。そして、排他性を有していない状態遷移条件を、排他性を有するように漏れなく修正することができる。したがって、ソフトウエアが特定の処理を無限に繰り返す状態に陥ったり、無駄に多くのソースコードが生成されることを回避することができる。【０００７】
上述の開発支援装置を用いる場合には、オペレータが状態遷移情報や状態遷移条件を作成する必要がある。しかしながら、現状では、状態遷移情報や状態遷移条件を作成するスキルを持つ技術者が少ない。【０００８】
本発明は、上述の事情の下になされたもので、簡単な操作でプログラムを生成することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のソフトウエア生成装置は、
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせるマッチング手段と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する変換手段と、
前記ブロックからなるデータに基づいて、前記ソフトウエアを生成する生成手段と、
を備える。
【発明の効果】
【００１０】
本発明によれば、ソフトウエアを生成するためのソースコードが、複数のブロックからなるデータに変換される。このため、ユーザは、あるブロックを所望のブロックに交換するか、或いはブロックの配列を変更することにより、ソフトウエアによる処理の内容や、処理の順序を変更することが可能となる。したがって、簡単な操作で所望のプログラムを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るソフトウエア生成装置を、空調システムとともに示すブロック図である。
【図２】ウィンドを示す図である。
【図３】辞書情報の構成を模式的に示す図である。
【図４】ソースコードと制御ブロックとの関係を模式的に示す図である。
【図５】ＣＰＵの動作を説明するためのフローチャートである。
【図６】制御ブロック情報を模式的に示す図である。
【図７】制御ブロック関連情報を模式的に示す図である。
【図８】表示部に表示されるウィンドを示す図である。
【図９】表示部に表示されるウィンドを示す図である。
【図１０】ＣＰＵに実行されるサブルーチンを示すフローチャートである。
【図１１】動作制約条件情報を模式的に示す図である。
【図１２】表示部に表示された比較結果を示す図である。
【図１３】表示部に表示された比較結果を示す図である。
【図１４】本実施形態の変形例について説明するための図である。
【図１５】本実施形態の変形例について説明するための図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態を、図面を参照しつつ説明する。図１は、本実施形態に係るソフトウエア生成装置１０を、リモートコントロール装置２１と空調装置２２とを有する空調システム２０とともに示すブロック図である。このソフトウエア生成装置１０は、空調システム２０によって実行される運転プログラム１０５を生成するための装置である。図１に示されるように、ソフトウエア生成装置１０は、ＣＰＵ（Central Processing Unit）１０ａ、表示部１０ｂ、入力部１０ｃ、主記憶部１０ｄ、補助記憶部１０ｅ、及び通信ユニット１０ｆを有している。
【００１３】
表示部１０ｂは、ＬＣＤ（Liquid Crystal Display）又はＣＲＴ（Cathode Ray Tube）などを有している。図２には、運転プログラム１０５の生成を行う際に、ユーザインタフェーイスとして機能するウィンドＷ１が示されている。表示部１０ｂは、ＣＰＵ１０ａの指示に基づいて、ウィンドＷ１に代表される各種ウィンドを表示する。また、必要に応じて、ＣＰＵ１０ａの処理結果等を表示する。
【００１４】
入力部１０ｃは、キーボードや、マウス或いはタッチパネル等のポインティングデバイスから構成されている。オペレータの指示は、この入力部１０ｃを介して入力される。そして、システムバス１０ｇを経由してＣＰＵ１０ａに通知される。
【００１５】
主記憶部１０ｄは、ＤＲＡＭ（Dynamic Random Access Memory）或いはＳＲＡＭ（Static Random Access Memory）等の揮発性メモリを有している。この主記憶部１０ｄは、ＣＰＵ１０ａの作業領域として用いられる。
【００１６】
補助記憶部１０ｅは、磁気ディスク、フラッシュメモリ等の不揮発性メモリを有している。この補助記憶部１０ｅには、辞書情報１０１、ソースコード１０２が記憶されている。
【００１７】
図３は、辞書情報１０１の構成を模式的に示す図である。図３に示されるように、辞書情報１０１は、ソースコードパターンＰＮ、制御ブロックＢＣＮ、及び制御ブロックＢＣＮの内容を表す制御内容情報ＣＯＮＮから構成されている。
【００１８】
ソースコードパターンＰＮは、運転プログラム１０５によって実行される複数の処理のうちの単一の処理の内容を示すソースコードである。図３に示されるように、ソースコードパターンＰＮは、ソースコードの記述に用いられる文字列（テキスト）から構成されている。例えば、ソースコードパターンＰＮは、「関数名（引数１，引数２）；」等の書式で表現される。
【００１９】
例えば、運転プログラム１０５によって実行される複数の処理が、設定温度の読み出し、吐出空気の温度の設定、及び風量の設定の３つである場合は、この運転プログラム１０５のソースコードは、設定温度の読み出し処理を示すソースコードパターンと、吐出空気の温度の設定処理を示すソースコードパターンと、風量の設定処理を示すソースコードパターンの組み合わせで表現できることになる。
【００２０】
通常は、数十種類のソースコードパターンを用いることで、１００００行の文字列によって表現されるソースコードを、例えば１００行程度の文字列或いは１００個程度のアイコンで表示することが可能となる。
【００２１】
制御ブロックＢＣＮは、各ソースコードパターンＰＮに関連付けられている。この制御ブロックＢＣＮは、ソースコードパターンＰＮを取り扱う際の概念である。ソフトウエア生成装置１０では、この制御ブロックＢＣＮは当該制御ブロックＢＣＮの内容に応じたアイコンや画像で表される。
【００２２】
制御内容情報ＣＯＮＮは、制御ブロックＢＣＮの内容を識別するための情報である。この制御内容情報ＣＯＮＮは、例えばソースコードパターンＰＮと同等の内容を示している。そして、制御ブロックＢＣＮと関連した状態で取り扱われる。
【００２３】
図１に戻り、ソースコード１０２は、運転プログラム１０５を生成する際に、元となるデータである。図４は、ソースコード１０２と、制御ブロックＢＣＮとの関係を模式的に示す図である。図４に示されるように、ソースコード１０２は、関数や引数を表す文字列によって記載されたデータである。
【００２４】
図１に戻り、通信ユニット１０ｆは、例えばシリアルインタフェースまたはＬＡＮ（Local Area Network）インタフェース等を含んで構成されている。ソフトウエア生成装置１０は、通信ユニット１０ｆを介して、リモートコントロール装置２１と通信を行う。
【００２５】
ＣＰＵ１０ａは、補助記憶部１０ｅに記憶されたソースコード１０２に基づいて、リモートコントロール装置２１によって実行される運転プログラム１０５を生成する。そして、この運転プログラム１０５を、通信ユニット１０ｆを介して、リモートコントロール装置２１へ出力する。
【００２６】
リモートコントロール装置２１は、例えば空調システム２０の空調対象となる空間（以下、空調空間という）を形成する壁面などに配置されている。そして、ユーザからの指令を受け付けるためのインタフェースとして機能する。図１に示されるように、リモートコントロール装置２１は、ＣＰＵ２１ａ、表示部２１ｂ、入力部２１ｃ、主記憶部２１ｄ、補助記憶部２１ｅ、及び通信ユニット２１ｆを有している。
【００２７】
表示部２１ｂは、ＬＣＤを有している。そして、空調装置２２との通信によって取得した設定温度、空調対象となる空間の温度（室温）、運転モードなどに関する情報を表示する。
【００２８】
入力部２１ｃは、キースイッチ或いはタッチパネル等から構成されるインタフェースである。ユーザからの指示は、この入力部２１ｃを介して入力される。そして、システムバス２１ｇを経由してＣＰＵ２１ａに通知される。
【００２９】
主記憶部２１ｄは、ＤＲＡＭ或いはＳＲＡＭ等の不揮発性メモリを有している。この主記憶部２１ｄは、ＣＰＵ２１ａの作業領域として用いられる。
【００３０】
補助記憶部２１ｅは、磁気ディスク、フラッシュメモリ等の不揮発性メモリを有している。この補助記憶部１０ｅには、ソフトウエア生成装置１０から出力された運転プログラム１０５が記憶される。
【００３１】
通信ユニット２１ｆは、例えばシリアルインタフェース、ＬＡＮインタフェース、無線通信インタフェース等を有している。リモートコントロール装置２１は、通信ユニット２１ｆを介して、ソフトウエア生成装置１０及び空調装置２２と通信を行う。
【００３２】
ＣＰＵ２１ａは、補助記憶部２１ｅに記憶された運転プログラム１０５を読み出して実行する。これにより、ユーザからの指令によって設定された設定温度、設定風量、運転モード等の運転情報が、通信ユニット２１ｆを介して、空調装置２２へ出力される。またリモートコントロール装置２１の表示部２１ｂには、設定温度、設定風量、運転モード等の運転情報が表示される。
【００３３】
空調装置２２は、例えば空調システム２０の空調対象となる空間を形成する壁面或いは天井などに配置されている。そして、空調装置２２は、空調空間の空調を行う。図１に示されるように、空調装置２２は、記憶部２２ａ、出力制御ユニット２２ｂ、及び通信ユニット２２ｃを有している。
【００３４】
記憶部２２ａは、フラッシュメモリ等の不揮発性メモリ、或いはＳＲＡＭ等の揮発性メモリを有している。この記憶部２２ａには、通信ユニット２２ｃを介して受信した運転情報が記憶される。
【００３５】
出力制御ユニット２２ｂは、記憶部２２ａに記憶された運転情報を読み出す。そして、読み出した運転情報を参照して、空調空間に空調した空気を吐出するためのファン、空調空気を吐出するためのルーバー、外気と熱交換を行う室外機等を駆動する。これにより、ユーザからの指示内容に応じた空調空間の空調が実行される。
【００３６】
通信ユニット２２ｃは、例えばシリアルインタフェース、或いは無線通信インタフェース等を有している。空調装置２２は、通信ユニット２２ｃを介して、リモートコントロール装置２１と通信を行う。
【００３７】
図５のフローチャートは、ソフトウエア生成装置１０のＣＰＵ１０ａによって実行されるプログラムの一連のアルゴリズムに対応している。以下、図５を参照しつつ、ソフトウエア生成装置１０の動作について説明する。ソフトウエア生成装置１０が起動されると、ＣＰＵ１０ａは、運転プログラム１０５を生成するためのプログラムを補助記憶部１０ｅから読み出し実行する。
【００３８】
最初のステップＳ２０１では、ＣＰＵ１０ａは、ユーザからの運転プログラム生成指令を待ち受ける。入力部１０ｃを介して、ユーザからの生成指令が入力されると（ステップＳ２０１：Ｙｅｓ）、ＣＰＵ１０ａは、次のステップＳ２０２へ移行する。
【００３９】
次のステップＳ２０２では、ＣＰＵ１０ａは、補助記憶部１０ｅに記憶されたソースコード１０２を読み出す。そして、図４を参照するとわかるように、ソースコード１０２に行番号ＮＭを付加して、このソースコード１０２を主記憶部１０ｄに展開する。
【００４０】
次のステップＳ２０３では、ＣＰＵ１０ａは、主記憶部１０ｄに展開したソースコード１０２に対するマッチング処理を実行する。具体的には、ＣＰＵ１０ａは、補助記憶部１０ｅに記憶された辞書情報１０１を構成するソースコードパターンＰＮから、最初のソースコードパターンＰ１を読み出す。次に、ソースコードパターンＰ１を構成する文字列と、ソースコード１０２を構成する文字列とを比較する。
【００４１】
ＣＰＵ１０ａは、ソースコードパターンＰ１を構成する文字列と、ソースコード１０２を構成する文字列とが一致した場合に、ソースコードパターンＰ１がマッチングしたと判断する。例えば図３に示されるソースコードパターンＰ１を構成する文字列は、図４を参照するとわかるように、ソースコード１０２の［００４］行目から［００７］行目までの文字列と一致する。この場合にＣＰＵ１０ａは、ソースコードパターンＰ１がマッチングしたと判断する。
【００４２】
ＣＰＵ１０ａは、ソースコードパターンＰ１からソースコードパターンＰＮについて、順次上述のマッチング処理を実行する。
【００４３】
次のステップＳ２０４では、ＣＰＵ１０ａは、マッチングしたソースコードパターンＰＮについての制御ブロック情報１０３Ｎを生成する。図６は、制御ブロック情報１０３Ｎを模式的に示す図である。図６に示されるように、制御ブロック情報１０３Ｎは、制御ブロックＢＣＮに割り当てられた識別番号ＩＤＮ及び位置情報ＬＤＮとから構成されている。
【００４４】
識別番号ＩＤＮは、ソースコードパターンＰＮに関連付けられた制御ブロックＢＣＮを識別するための番号である。この識別番号ＩＤＮは、例えば制御ブロックＢＣ１から制御ブロックＢＣＮまで連続する番号となる。
【００４５】
位置情報ＬＤＮは、ソースコード１０２における、ソースコードパターンＰＮの位置を示す情報である。例えばソースコード１０２とマッチングしたソースコードパターンＰ１の位置情報は、図４を参照するとわかるように、行番号［００４］〜［００７］を特定するための先頭行の行番号［００４］と最終行［００７］に関する情報を含む。この位置情報ＬＤＮにより、ソースコードパターンＰＮがマッチングした位置を判断することができる。
【００４６】
次のステップＳ２０５では、ＣＰＵ１０ａは、マッチングしたソースコードパターンＰＮについての制御ブロック関連情報１０４Ｎを生成する。図７は、制御ブロック関連情報１０４Ｎを模式的に示す図である。図７に示されるように、制御ブロック関連情報１０４Ｎは、マッチングしたソースコードパターンＰＮに関連付けられた制御ブロックＢＣＮの識別番号ＩＤＮと、ソースコード１０２とマッチングしたときの位置が、このソースコードパターンＰＮの前にあるソースコードパターンＰｉと関連付けられた制御ブロックＢＣｉの識別番号ＩＤｉと、ソースコード１０２とマッチングしたときの位置が、このソースコードパターンＰＮの後ろにあるソースコードパターンＰｊと関連付けられた制御ブロックＢＣｊの識別番号ＩＤｊとに関する情報を含む。
【００４７】
例えば、ソースコードパターンＰ１についての制御ブロック関連情報１０４１は、図４を参照するとわかるように、ソースコードパターンＰ１に関連付けられた制御ブロックＢＣ１の識別番号ＩＤ１と、ソースコードパターンＰ１の前の位置でマッチングしたソースコードパターンＰＮ１の識別番号ＩＤＮ１と、ソースコードパターンＰ１の後ろの位置でマッチングしたソースコードパターンＰＮ１の識別番号ＩＤＮ１とに関する情報を含む。
【００４８】
次のステップＳ２０６では、制御ブロック情報１０３Ｎと、制御ブロック関連情報１０４Ｎとから変換データＣＤを生成する。図４を参照するとわかるように、この変換データＣＤは、ソースコード１０２にマッチングしたソースコードパターンＰＮに関連付けられた制御ブロックＢＣＮが、制御ブロック情報１０３Ｎの位置情報に基づいて配列されることにより生成されるデータである。
【００４９】
例えば図４に示されるように、ソースコード１０２の先頭から末尾にかけて、順にソースコードパターンＰＮ１、ソースコードパターンＰ１、ソースコードパターンＰＮ３、ソースコードパターンＰＮ２、・・・が並んでいる場合には、制御ブロックＢＣＮ１、制御ブロックＢＣ１、制御ブロックＢＣＮ３、制御ブロックＢＣＮ２、・・・が順に配列された変換データＣＤが生成される。
【００５０】
次のステップＳ２０７では、ＣＰＵ１０ａは、変換データＣＤの内容を、表示部１０ｂに表示する。図８は、表示部１０ｂに表示されるウィンドＷ１を示す図である。図８に示されるように、ＣＰＵ１０ａは、変換データＣＤを構成する制御ブロックＢＣＮを、対応するアイコンＩＣＮを用いて表示する。
【００５１】
これにより、オペレータは、ソースコード１０２に基づいて生成される運転プログラム１０５を視覚的に理解し、修正することが可能となる。例えば、オペレータが変換データＣＤを変更する場合には、まず所望のアイコンＩＣを、マウス等を用いて選択しダブルクリックする。これにより、ソースコード１０２の内容を示すウィンドＷ２がポップアップする。このウィンドＷ２では、ソースコード１０２のうちダブルクリックされたアイコンＩＣに対応する文字列が、点線で示されたフレームやマーカー等によって強調して表示される。
【００５２】
オペレータは、ウィンドＷ２に所望のコマンドを表す文字列を挿入することで、ソースコード１０２を修正することができる。例えば、図９のウィンドＷ２を参照するとわかるように、アイコンＩＣ１に対応する温度更新コマンドと、アイコンＩＣ２に対応する風量変更コマンドとの間に、運転モードを更新するためのコマンドを挿入することで、ソースコード１０２に、運転モードを更新するコマンドを付加することができる。この場合には、図９のウィンドＷ１を参照するとわかるように、アイコンＩＣ１とアイコンＩＣ２との間に、追加されたコマンドに対応する新たなアイコンＩＣＮＷが表示される。また、オペレータは、アイコンＩＣ１とアイコンＩＣ２との間に、アイコンＩＣＮＷを挿入することによっても、ソースコード１０２を変更することができる。
【００５３】
ＣＰＵ１０ａは、次のステップＳ２０８で、上述したオペレータからの入力を待ち受ける。ここでソースコード１０２が変更された場合には（ステップＳ２０８：Ｙｅｓ）、ステップＳ２０９へ移行する。そして、変換データＣＤを、変更後のソースコード１０２に対応するように変更して、ステップＳ２０７へ戻る。以降、ＣＰＵ１０ａは、ステップＳ２０８での判断が肯定されるまで、ステップＳ２０７〜ステップＳ２０９の処理を繰り返し実行する。これにより、オペレータは、最新のソースコード１０２に基づいて生成された変換データＣＤを確認しつつ、ソースコード１０２の修正や編集が可能となる。
【００５４】
一方、オペレータによってソースコード１０２の修正が終了し、最終的なソースコード１０２が確定した場合には（ステップＳ２０８：Ｎｏ）、ＣＰＵ１０ａは、ステップＳ２１０へ移行する。
【００５５】
なお、説明の便宜上、最終的に確定した変換データＣＤは、例えば１０個の制御ブロックＢＣＮから構成されているものとする。また、各制御ブロックは構造ブロック、呼び出しブロック、計測開始プローブを示す制御ブロック、計測終了プローブを示す制御ブロック、及びアクセスブロックのうちのいずれかであるものとする。
【００５６】
上述の構造ブロックは、処理の分岐や、処理のループ動作を示すソースコードに対応した制御ブロックである。また、呼び出しブロックは、別の制御ブロックに対応する処理を呼び出す動作を示すソースコードに対応した制御ブロックである。また、例えば図８に示されるように、計測開始プローブブロックは、小円形のアイコンＩＣＳで示される制御ブロックである。そして、計測終了プローブブロックは、小円形のアイコンＩＣＥで示される制御ブロックである。これらの制御ブロックは、計測開始プローブブロックと計測終了プローブブロックとの間に位置する制御ブロックで示される処理に要する時間を計測することを示すソースコードに対応した制御ブロックである。また、アクセスブロックは、メモリや、ファイルなどの資源を特定するためのアドレス、書き込みデータの種別、及びデータ書き込み先や読み込み先などの情報に基づいて、指定のアドレスへのアクセス処理を実行する動作を示すソースコードに対応した制御ブロックである。
【００５７】
ステップＳ２１０では、ＣＰＵ１０ａは図１０のフローチャートで示されるサブルーチン３００を実行する。まず、最初のステップＳ３０１では、ＣＰＵ１０ａは、カウンタｎをリセットする。
【００５８】
次のステップＳ３０２では、ＣＰＵ１０ａは、カウンタｎをインクリメントする。
【００５９】
次のステップＳ３０３では、ＣＰＵ１０ａは、変換データＣＤを構成するＮ番目（ここでは１番目）の制御ブロックＢＣＮが、構造ブロックであるか否かを判断する。そして、Ｎ番目の制御ブロックＢＣＮが、構造ブロックである場合には（ステップＳ３０３：Ｙｅｓ）、次のステップＳ３０４へ移行する。
【００６０】
次のステップＳ３０４では、ＣＰＵ１０ａは、制御ブロックＢＣＮに関連するソースコードパターンＰＮに基づいて、分岐処理を行うためのプログラムを生成する。ここで、分岐処理とは、条件に合致する場合と、条件に合致しない場合とで、相互に異なる処理を実行するものである。
【００６１】
一方、ステップＳ３０３での判断が否定された場合には（ステップＳ３０３：Ｎｏ）、ＣＰＵ１０ａは、ステップＳ３０５へ移行する。
【００６２】
ステップＳ３０５では、ＣＰＵ１０ａは、変換データＣＤを構成するＮ番目（ここでは１番目）の制御ブロックＢＣＮが、呼び出しブロックであるか否かを判断する。そして、Ｎ番目の制御ブロックＢＣＮが、呼び出しブロックである場合には（ステップＳ３０５：Ｙｅｓ）、次のステップＳ３０６へ移行する。
【００６３】
ステップＳ３０６では、ＣＰＵ１０ａは、制御ブロックＢＣＮに関連するソースコードパターンＰＮに基づいて、呼び出し処理を行うためのプログラムを生成する。ここで、呼び出し処理とは、別の処理を先に実行し、その処理が完了した後に次の処理を行うものである。
【００６４】
一方、ステップＳ３０５での判断が否定された場合には（ステップＳ３０５：Ｎｏ）、ＣＰＵ１０ａは、ステップＳ３０７へ移行する。
【００６５】
ステップＳ３０７では、ＣＰＵ１０ａは、変換データＣＤを構成するＮ番目（ここでは１番目）の制御ブロックＢＣＮが、計測開始プローブブロックであるか否かを判断する。そして、Ｎ番目の制御ブロックＢＣＮが、計測開始プローブブロックである場合には（ステップＳ３０７：Ｙｅｓ）、次のステップＳ３０８へ移行する。
【００６６】
ステップＳ３０８では、ＣＰＵ１０ａは、制御ブロックＢＣＮに関連するソースコードパターンＰＮに基づいて、計測の開始処理を行うためのプログラムを生成する。ここで、計測開始処理とは、計測開始コマンドによって、経過時間の計測を開始する処理である。
【００６７】
一方、ステップＳ３０７での判断が否定された場合には（ステップＳ３０７：Ｎｏ）、ＣＰＵ１０ａは、ステップＳ３０９へ移行する。
【００６８】
ステップＳ３０９では、ＣＰＵ１０ａは、変換データＣＤを構成するＮ番目（ここでは１番目）の制御ブロックＢＣＮが、計測終了プローブブロックであるか否かを判断する。そして、Ｎ番目の制御ブロックＢＣＮが、計測終了プローブブロックである場合には（ステップＳ３０９：Ｙｅｓ）、次のステップＳ３１０へ移行する。
【００６９】
ステップＳ３１０では、ＣＰＵ１０ａは、制御ブロックＢＣＮに関連するソースコードパターンＰＮに基づいて、計測の終了処理を行うためのプログラムを生成する。ここで、計測の終了処理とは、計測終了コマンドによって、経過時間の計測を終了する処理である。
【００７０】
一方、ステップＳ３０９での判断が否定された場合には（ステップ３０９：Ｎｏ）、ＣＰＵ１０ａは、ステップＳ３１１へ移行する。
【００７１】
ステップＳ３１１では、ＣＰＵ１０ａは、制御ブロックＢＣＮに関連するソースコードパターンＰＮに基づいて、アクセス処理を行うためのプログラムを生成する。ここで、アクセス処理とは、メモリの所定のアドレスからの読み込み、メモリの所定のアドレスへの書き込みを行う処理である。
【００７２】
上述したステップＳ３０４，Ｓ３０６，Ｓ３０８，Ｓ３１０，Ｓ３１１での処理が終了すると、ＣＰＵ１０ａは、次のステップＳ３１２へ移行する。
【００７３】
ステップＳ３１２では、ＣＰＵ１０ａは、カウンタｎが閾値より小さいか否かを判断する。なお、この閾値は、変換データＣＤを構成する制御ブロックの総数と等価であり、ここでは１０である。カウンタｎの値が閾値より小さい場合には（ステップＳ３１２：Ｙｅｓ）、ＣＰＵ１０ａは、ステップＳ３０２に戻り、以降、ステップＳ３１２での判断が否定されるまで、ステップＳ３０２〜Ｓ３１２までの処理を繰り返し実行する。これにより、変換データＣＤを構成する制御ブロックＢＣＮに対応したソースコードパターンＰＮからＮ個（ここでは１０個）のプログラムが生成される。
【００７４】
一方、カウンタｎが閾値以上になった場合には（ステップＳ３１２：Ｎｏ）、ＣＰＵ１０ａは、次のステップＳ３１３へ移行する。
【００７５】
ステップＳ３１３では、ＣＰＵ１０ａは、Ｎ個のプログラムを直列に整列させるとともに、前後のプログラム同士を関連付けることで、運転プログラム１０５を生成する。そして、ステップＳ３１３で運転プログラム１０５を生成すると、ＣＰＵ１０ａは、サブルーチン３００を終了し、ステップＳ２１１へ移行する。
【００７６】
ステップＳ２１１では、ＣＰＵ１０ａは、通信ユニット１０ｆを介して、運転プログラム１０５をリモートコントロール装置２１へ出力する。リモートコントロール装置２１へ出力された運転プログラム１０５は、リモートコントロール装置２１を構成する通信ユニット２１ｆを介して、補助記憶部２１ｅに出力される。これにより、リモートコントロール装置２１へ、運転プログラム１０５がインストールされる。
【００７７】
ＣＰＵ１０ａは、ステップＳ２１１の処理が完了すると運転プログラム１０５を生成するための処理を終了する。
【００７８】
次に、運転プログラム１０５がインストールされたリモートコントロール装置２１の動作について説明する。
【００７９】
運転プログラム１０５がインストールされると、リモートコントロール装置２１を構成するＣＰＵ２１ａは、補助記憶部２１ｅから運転プログラム１０５を読み出して、当該運転プログラム１０５を実行する。その際に、ＣＰＵ２１ａは、運転プログラム１０５の計測開始プローブに基づく計測開始コマンドによって、経過時間の計測を開始し、計測終了プローブに基づく計測終了コマンドによって、経過時間の計測を終了する。この動作により、計測開始コマンドが実行されてから、計測終了コマンドが実行されるまでの間に実行された処理に要した時間（所要時間）が計測される。ＣＰＵ２１ａは、所要時間を計測すると、当該計測結果に関する情報を、通信ユニット２１ｆを介して、ソフトウエア生成装置１０へ出力する。
【００８０】
ソフトウエア生成装置１０のＣＰＵ１０ａは、計測結果に関する情報を受信すると、この計測結果を、動作制約条件情報１０６と比較する。図１１は、動作制約条件情報１０６を模式的に示す図である。図１１に示されるように、動作制約条件情報１０６は、計測開始プローブを示す制御ブロックの識別番号ＩＤＳと、計測終了プローブを示す制御ブロック識別番号ＩＤＥと、制限時間ＬＭとに関する情報から構成されている。
【００８１】
ＣＰＵ１０ａは、この動作制約条件情報１０６の識別番号から計測開始コマンド及び計測終了コマンドを特定し、計測開始コマンドを実行してから計測終了コマンドを実行するまでの制限時間を特定する。そして、リモートコントロール装置２１から出力された計測結果（所要時間）と制限時間とを比較して、比較結果を表示部１０ｂに表示する。
【００８２】
図１２及び図１３は、表示部１０ｂに表示された比較結果を示す図である。例えば、ＣＰＵ１０ａは、計測結果が制限時間よりも短い場合には、表示部１０ｂに図１２に示されるウィンドＷ３を表示して、リモートコントロール装置２１による処理が制限時間内に行われたことを表示する。一方、ＣＰＵ１０ａは、計測結果が制限時間よりも長い場合には、表示部１０ｂに図１３に示されるウィンドＷ４を表示して、リモートコントロール装置２１による処理が制限時間内に行われなかったことを表示する。
【００８３】
以上説明したように、本実施形態では、ソースコードパターンＰを用いたマッチングが行われることにより、運転プログラム１０５を生成するためのソースコード１０２が、制御ブロックＢＣからなる変換データＣＤに変換される。そして、この制御ブロックＢＣからなる変換データＣＤが、制御ブロックＢＣに対応して規定されたアイコンＩＣによって視認可能となる。したがって、ソフトウエア生成装置１０のオペレータは、視覚的にソースコード１０２の内容を把握することができる。
【００８４】
本実施形態では、表示部１０ｂに表示されるアイコンＩＣを操作することにより、当該アイコンに関連する箇所のソースコードパターンＰを表示するウィンドがポップアップする。そして、このウィンドにソースコードを追記したり、ウィンドに表示されたソースコードを削除することで、ソースコード１０２を作成し、或いは編集することができる。したがって、ソースコード１０２を感覚的かつ容易に作成することができ、ひいては運転プログラム１０５を容易に作成することが可能となる。
【００８５】
本実施形態では、表示部１０ｂに表示されるアイコンＩＣの配列によって、ソースコード１０２が表示される。そして、これらのアイコンＩＣの間に所望のアイコンＩＣを挿入したり、不要なアイコンを削除することで、ソースコード１０２を作成し、或いは編集することができる。したがって、ソースコード１０２を感覚的かつ容易に作成することができ、ひいては運転プログラム１０５を容易に作成することが可能となる。
【００８６】
本実施形態では、リモートコントロール装置２１で運転プログラム１０５を実行したときに要した時間が評価される。そして、例えば図１２及び図１３を参照するとわかるように、入力画面にポップアップしたウィンドに、評価結果が表示される。これにより、ソフトウエア生成装置１０のオペレータは、リモートコントロール装置２１の負荷等を視覚的に把握することがでる。したがって、作成した運転プログラム１０５を容易に検証することができる。
【００８７】
本実施形態では、ソースコード１０２に対して、ソースコードパターンＰをマッチングさせることによって、変換データＣＤが作成される。これにより、他の装置によって生成されたソースコードパターンからも変換データＣＤを生成することができる。
【００８８】
本実施形態では、辞書情報を構成するソースコードパターンＰを用いたマッチングにより、変換データが生成される。したがって、例えば運転プログラム１０５の用途に応じた辞書情報を用いることで、種々の運転プログラム１０５を容易に作成することが可能となる。
【００８９】
本実施形態では、ソフトウエア生成装置１０は、ＬＡＮ、シリアルケーブル等の通信線を介して、リモートコントロール装置２１に接続されている。このため、運転プログラム１０５の検証等を容易に行うことができる。
【００９０】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。例えば上記実施形態では、図４を参照するとわかるように、ソースコード１０２のすべてが、辞書情報１０１を構成するソースコードパターンＰに置き換えられた場合について説明した。しかしながら、図１４に示されるように、例えば［００４］行目から［０００７］行目までのソースコードで規定されるソースコードパターンＰが存在しないことも考えられる。この場合には、ＣＰＵ１０ａは、［００４］行目から［０００７］行目までのソースコードを内容とする制御ブロックＢＣＡを新たに定義する。そして、この制御ブロックＢＣＡを含む制御ブロック群で変換データＣＤを生成する。これにより、ソースコード１０２を制御ブロックからなる変換データＣＤに変換することができ、同様にアイコンＩＣの配列として表示することができる。
【００９１】
本実施形態では、リモートコントロール装置２１が運転プログラム１０５を実行するのに要する時間を評価した結果が、例えば図１２及び図１３に示されるウィンドＷ３，Ｗ４で表示されることとした。これに代えて、例えば、図１５に示されるように、処理ごとのタイムラインを表示するウィンドＷ５を表示することとしてもよい。また、ウィンドＷ５に、所定の処理が制限時間内に完結しているか否かを示すテキストを表示することとしてもよい。これにより、タイムラインによって、処理時間を視覚的に把握するとともに、テキストによる情報によって、処理時間の評価結果を正確に確認することができる。
【００９２】
本実施形態では、ソフトウエア生成装置１０とリモートコントロール装置２１との間の通信によって、運転プログラム１０５がリモートコントロール装置２１にアップロードされることとした。これに限らず、ソフトウエア生成装置１０によって生成された運転プログラム１０５を、例えばＣＤ（Compact Disc）や、ＵＳＢ（Universal Serial Bus）メモリ等の記録媒体を介して、リモートコントロール装置２１へインストールしてもよい。
【００９３】
本実施形態では、ソースコード１０２を主記憶部１０ｄに展開するときに、行番号ＮＭを付加したが、これに加えて例えばファイル名等を付加することとしてもよい。
【００９４】
本実施形態では、ソフトウエア生成装置１０を用いて、空調システム２０に実行される運転プログラム１０５を生成する場合について説明した。これに限らず、ソフトウエア生成装置１０を用いることで、照明装置など種々の設備機器に使用される運転プログラム１０５を生成することができる。
【００９５】
本実施形態では、制御ブロックが、構造ブロック、呼び出しブロック、計測開始プローブを示す制御ブロック、計測終了プローブを示す制御ブロック、及びアクセスブロックのうちのいずれかであるものとした。これに限らず、必要に応じて、他の処理に応じたソースコードパターンと関連する制御ブロックを用いて、マッチングを行うこととしてもよい。
【００９６】
本実施形態に係るソフトウエア生成装置１０の機能は、専用のハードウェアによっても実現することができる。
【００９７】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【００９８】
本出願は、２０１０年１０月４日に出願された、日本国特許出願２０１０−２２５２４４号に基づく。本明細書中に日本国特許出願２０１０−２２５２４４号の明細書、特許請求の範囲、図面全体を参照して取り込むものとする。
【産業上の利用可能性】
【００９９】
本発明のソフトウエア生成装置、ソフトウエア生成方法、及びプログラムは、ソフトウエアの生成に適している。
【符号の説明】
【０１００】
１０  ソフトウエア生成装置
１０ａ  ＣＰＵ
１０ｂ  表示部
１０ｃ  入力部
１０ｄ  主記憶部
１０ｅ  補助記憶部
１０ｆ  通信ユニット
１０ｇ  システムバス
２０  空調システム
２１  リモートコントロール装置
２１ａ  ＣＰＵ
２１ｂ  表示部
２１ｃ  入力部
２１ｄ  主記憶部
２１ｅ  補助記憶部
２１ｆ  通信ユニット
２１ｇ  システムバス
２２  空調装置
２２ａ  記憶部
２２ｂ  出力制御ユニット
２２ｃ  通信ユニット
１０１  辞書情報
１０２  ソースコード
１０３  制御ブロック情報
１０４  制御ブロック関連情報
１０５  運転プログラム
１０６  動作制約条件情報
ＢＣ  制御ブロック
ＣＤ  変換データ
ＣＯＮ  制御内容情報
ＤＣ  変換データ
ＩＣ  アイコン
ＩＤ  識別番号
ＬＤ  位置情報
ＮＭ  行番号
Ｐ  ソースコードパターン
【図１】
2012046460.tif 000003
【図２】
2012046460.tif 000004
【図３】
2012046460.tif 000005
【図４】
2012046460.tif 000006
【図５】
2012046460.tif 000007
【図６】
2012046460.tif 000008
【図７】
2012046460.tif 000009
【図８】
2012046460.tif 000010
【図９】
2012046460.tif 000011
【図１０】
2012046460.tif 000012
【図１１】
2012046460.tif 000013
【図１２】
2012046460.tif 000014
【図１３】
2012046460.tif 000015
【図１４】
2012046460.tif 000016
【図１５】
2012046460.tif 000017
【手続補正書】
【提出日】平成25年8月5日(2013.8.5)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、ソフトウエア生成装置に関し、更に詳しくは、所定の制御装置によって実行されるソフトウエアを生成するソフトウエア生成装置に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記目的を達成するために、本発明のソフトウエア生成装置は、
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせるマッチング手段と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する変換手段と、
前記ブロックからなるデータを、前記ブロックに対応したグラフィックの配列として表示する表示手段と、
前記グラフィックの配列を変更するためのインタフェースと、
変更された前記グラフィックの配列に対応した前記ブロックの配列によって規定されるデータに基づいて、前記ソフトウエアを生成する生成手段と、
を備え、
前記表示手段は、
前記ブロックからなるデータに、計測の開始を示す計測開始ブロックと、計測の終了を示す計測終了ブロックが含まれる場合に、前記計測開始ブロックと前記計測終了ブロックの間のブロックによって示される処理を所定の機器に実行させたときに、前記処理が完了するまでの所要時間と、予め設定された制限時間とを比較した結果を表示する。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソフトウエアのソースコードの一部を構成する文字列からなり、予め規定された複数のブロックを、前記ソースコードにマッチングさせるマッチング手段と、
前記ソースコードの前記ブロックがマッチングした部分を、マッチングした前記ブロックに置き換えることにより、前記ソースコードを前記ブロックからなるデータに変換する変換手段と、
前記ブロックからなるデータを、前記ブロックに対応したグラフィックの配列として表示する表示手段と、
前記グラフィックの配列を変更するためのインタフェースと、
変更された前記グラフィックの配列に対応した前記ブロックの配列によって規定されるデータに基づいて、前記ソフトウエアを生成する生成手段と、
を備え、
前記表示手段は、
前記ブロックからなるデータに、計測の開始を示す計測開始ブロックと、計測の終了を示す計測終了ブロックが含まれる場合に、前記計測開始ブロックと前記計測終了ブロックの間のブロックによって示される処理を所定の機器に実行させたときに、前記処理が完了するまでの所要時間と、予め設定された制限時間とを比較した結果を表示するソフトウエア生成装置。
【請求項２】
前記グラフィックはアイコンである請求項１に記載のソフトウエア生成装置。
【請求項３】
前記ブロックと、前記ソースコードの一部を構成する文字列との対応を示す辞書データを記憶する記憶手段を備え、
前記マッチング手段は、前記辞書データに基づいて、前記ブロックを前記ソースコードにマッチングさせる請求項１又は２に記載のソフトウエア生成装置。
【国際調査報告】
2012046460.tif 000018
2012046460.tif 000019