(57)【特許請求の範囲】
【請求項１】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器の機種を識別するための機種情報と、該ソースコードから生成されるプログラムを実行することにより機器が実現する機能を識別するための機能情報と、を関連づけて記憶する第１記憶手段と、
機種情報と、該機種情報により識別される機種に依存する値を有するパラメータを識別するためのパラメータラベルと、を関連づけて記憶する第２記憶手段と、
機種情報を指定するための機種指定情報と、機能情報を指定するための機能指定情報と、を取得する指定情報取得手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機種指定情報により指定される機種情報に関連づけられかつ前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第１特定手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第２特定手段と、
前記第２特定手段により特定されたソースコードに関連づけられて前記第１記憶手段に記憶されている機種情報を特定し、該特定した機種情報に関連づけられて前記第２記憶手段に記憶されているパラメータラベルを取得し、該取得したパラメータラベルが、前記第２特定手段により特定されたソースコードに含まれるか否かを判定する判定手段と、
前記第１特定手段により特定されたソースコードを出力し、前記判定手段により取得されたパラメータラベルが前記第２特定手段により特定されたソースコードに含まれると判定された場合、そのパラメータラベルの部分を他の部分よりも強調して、前記第２特定手段により特定されたソースコードを提示する出力手段と、
を備える支援システム。
【請求項２】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器の機種を識別するための機種情報と、該ソースコードから生成されるプログラムを実行することにより機器が実現する機能を識別するための機能情報と、を関連づけて記憶する第１記憶手段と、
機種情報と、該機種情報により識別される機種に依存する値を有するパラメータにあらかじめ設定された設定値と、を関連づけて記憶する第２記憶手段と、
機種情報を指定するための機種指定情報と、機能情報を指定するための機能指定情報と、を取得する指定情報取得手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機種指定情報により指定される機種情報に関連づけられかつ前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第１特定手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第２特定手段と、
前記第２記憶手段に記憶された設定値のうち、前記機種指定情報により指定される機種情報に関連づけられた設定値を取得する設定値取得手段と、
前記第１特定手段により特定されたソースコードを出力し、前記第２特定手段により特定されたソースコードと、前記設定値取得手段により取得された設定値とを出力する出力手段と、
を備える支援システム。
【請求項３】
前記第２記憶手段は、記憶している各設定値のパラメータを識別するためのパラメータラベルをさらに記憶し、
前記設定値取得手段は、取得した設定値に関連づけられて前記第２記憶手段に記憶されているパラメータラベルを取得し、
前記出力手段は、前記設定値取得手段により取得されたパラメータラベルを出力する、
請求項２に記載の支援システム。
【請求項４】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器の機種を識別するための機種情報と、該ソースコードから生成されるプログラムを実行することにより機器が実現する機能を識別するための機能情報と、を関連づけて記憶する第１記憶手段と、
機種情報と、該機種情報により識別される機種に依存する文と、を関連づけて記憶する第２記憶手段と、
機種情報を指定するための機種指定情報と、機能情報を指定するための機能指定情報と、を取得する指定情報取得手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機種指定情報により指定される機種情報に関連づけられかつ前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第１特定手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第２特定手段と、
前記第２特定手段により特定されたソースコードに関連づけられて前記第１記憶手段に記憶されている機種情報を特定し、該特定した機種情報に関連づけられて前記第２記憶手段に記憶されている文を取得し、該取得した文が、前記第２特定手段により特定されたソースコードに含まれるか否かを判定する判定手段と、
前記第１特定手段により特定されたソースコードを出力し、前記判定手段により取得された文が前記第２特定手段により特定されたソースコードに含まれると判定された場合、その文の部分を他の部分よりも強調して、前記第２特定手段により特定されたソースコードを提示する出力手段と、
を備える支援システム。
【請求項５】
ソースコードを識別するためのコード情報と、機種情報と、機能情報と、を受け取る第１受取手段と、
前記コード情報により識別されるソースコードを取得し、該取得したソースコードに、前記第１受取手段により受け取られた機種情報と機能情報とを関連づけて、前記第１記憶手段に記憶させる第１格納手段と、
をさらに備える請求項１から４のいずれか１項に記載の支援システム。
【請求項６】
機種情報とパラメータラベルとを受け取る第２受取手段と、
前記第２受取手段によって受け取られた機種情報とパラメータラベルとを関連づけて前記第２記憶手段に記憶させる第２格納手段と、
をさらに備える請求項１に記載の支援システム。
【請求項７】
機種情報と設定値と受け取る第２受取手段と、
前記第２受取手段によって受け取られた機種情報と設定値とを関連づけて前記第２記憶手段に記憶させる第２格納手段と、
をさらに備える請求項２又は３に記載の支援システム。
【請求項８】
前記第１記憶手段は、
機器にサブルーチンを実行させるためのソースコードに、機種情報と機能情報とを関連づけて記憶する、
請求項１から７のいずれか１項に記載の支援システム。
【請求項９】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づけ、
機器に、該機器に依存する値を有するパラメータを識別するためのパラメータラベルを関連づけ、
機器と機能とを指定するための情報を受信し、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定し、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定し、
前記第２のソースコードに機器を介して関連づけられたパラメータラベルが前記第２のソースコードに含まれるか否かを判定し、
前記第１のソースコードを出力し、パラメータラベルが前記第２のソースコードに含まれると判定した場合、そのパラメータラベルの部分を他の部分よりも強調して、前記第２のソースコードを提示する、
支援方法。
【請求項１０】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づけ、
機器に、該機器に依存する値を有するパラメータにあらかじめ設定された設定値を関連づけ、
機器と機能とを指定するための情報を受信し、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定し、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定し、
受信した情報により指定される機器に関連づけられた設定値を取得し、
前記第１のソースコードを出力し、前記第２のソースコードと取得した設定値とを出力する、
支援方法。
【請求項１１】
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づけ、
機器に、該機器に依存する文を関連づけ、
機器と機能とを指定するための情報を受信し、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定し、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定し、
前記第２のソースコードに機器を介して関連づけられた文が前記第２のソースコードに含まれるか否かを判定し、
前記第１のソースコードを出力し、文が前記第２のソースコードに含まれると判定した場合、その文の部分を他の部分よりも強調して、前記第２のソースコードを提示する、
支援方法。
【請求項１２】
コンピュータに、
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づける手順と、
機器に、該機器に依存する値を有するパラメータを識別するためのパラメータラベルを関連づける手順と、
機器と機能とを指定するための情報を受信する手順と、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定する手順と、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定する手順と、
前記第２のソースコードに機器を介して関連づけられたパラメータラベルが前記第２のソースコードに含まれるか否かを判定する手順と、
前記第１のソースコードを出力し、パラメータラベルが前記第２のソースコードに含まれると判定した場合、そのパラメータラベルの部分を他の部分よりも強調して、前記第２のソースコードを提示する手順と、
を実行させるための支援プログラム。
【請求項１３】
コンピュータに、
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づける手順と、
機器に、該機器に依存する値を有するパラメータにあらかじめ設定された設定値を関連づける手順と、
機器と機能とを指定するための情報を受信する手順と、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定する手順と、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定する手順と、
受信した情報により指定される機器に関連づけられた設定値を取得する手順と、
前記第１のソースコードを出力し、前記第２のソースコードと取得した設定値とを出力する手順と、
を実行させるための支援プログラム。
【請求項１４】
コンピュータに、
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器と該ソースコードから生成されるプログラムが実現する機能とを関連づける手順と、
機器に、該機器に依存する文を関連づける手順と、
機器と機能とを指定するための情報を受信する手順と、
前記複数のソースコードのうち、受信した情報により指定される機器と機能とに関連づけられた第１のソースコードを特定する手順と、
前記複数のソースコードのうち、受信した情報により指定される機能に関連づけられた第２のソースコードを特定する手順と、
前記第２のソースコードに機器を介して関連づけられた文が前記第２のソースコードに含まれるか否かを判定する手順、
前記第１のソースコードを出力し、文が前記第２のソースコードに含まれると判定した場合、その文の部分を他の部分よりも強調して、前記第２のソースコードを提示する手順と、
を実行させるための支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、支援システム、支援方法、及び支援プログラムに関する。
【背景技術】
【０００２】
空調機器や照明機器等及びこれらの設備機器を制御するコントローラの多くは、プログラムに従って動作する。このプログラムを生成するためのソースコードのサイズは、設備機器等の高機能化・高性能化にともなって肥大化の傾向にある。そのため、プログラムの開発者によるコーディング作業は、複雑なものになっている。
【０００３】
そこで、既存のソースコードを再利用することにより、コーディング作業を効率化することが広く行われている。また、この再利用を支援するための技術が提案されている（例えば特許文献１を参照）。
【０００４】
特許文献１に開示された装置は、機器が有する機能を実現するためのソースコードに、その機能を表す振る舞い情報を関連づけて、データベースに記憶する。
【０００５】
そして、ユーザ（開発者）により振る舞い情報が指定されると、この装置は、振る舞い情報に関連づけられたソースコード群を検索して表示する。これにより、例えば複数の機能それぞれが関連性の低い機能名を有するような場合であっても、ユーザは、似通った機能を実現するためのソースコード群を容易に再利用することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−０５３７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
設備機器等には、多くの場合、組み込みシステムが実装される。そのため、設備機器を動作させるためのソースコードは、開発対象となる設備機器のハードウェア構成に適合するように記述されるため、設備機器の機種に依存する。また、設備機器のコントローラを動作させるためのソースコードは、コントローラによって制御される設備機器の機種に依存する。
【０００８】
このため、所定の機種に依存するソースコードを記述する際には、この機種と異なる機種に依存する既存のソースコードの再利用が困難となるおそれがある。したがって、上記従来技術では、データベース内のソースコードそれぞれが依存している機種が互いに異なる場合に、ユーザが容易に再利用することのできるソースコードが提供されないおそれがあった。
【０００９】
本発明は、上述の事情に鑑みてなされたもので、機種に依存する既存のソースコードの再利用を支援することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、本発明の支援システムは、
複数のソースコードそれぞれに、該ソースコードから生成されるプログラムを実行する機器の機種を識別するための機種情報と、該ソースコードから生成されるプログラムを実行することにより機器が実現する機能を識別するための機能情報と、を関連づけて記憶する第１記憶手段と、
機種情報と、該機種情報により識別される機種に依存する値を有するパラメータを識別するためのパラメータラベルと、を関連づけて記憶する第２記憶手段と、
機種情報を指定するための機種指定情報と、機能情報を指定するための機能指定情報と、を取得する指定情報取得手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機種指定情報により指定される機種情報に関連づけられかつ前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第１特定手段と、
前記第１記憶手段に記憶された複数のソースコードのうち、前記機能指定情報により指定される機能情報に関連づけられたソースコードを特定する第２特定手段と、
前記第２特定手段により特定されたソースコードに関連づけられて前記第１記憶手段に記憶されている機種情報を特定し、該特定した機種情報に関連づけられて前記第２記憶手段に記憶されているパラメータラベルを取得し、該取得したパラメータラベルが、前記第２特定手段により特定されたソースコードに含まれるか否かを判定する判定手段と、
前記第１特定手段により特定されたソースコードを出力し、前記判定手段により取得されたパラメータラベルが前記第２特定手段により特定されたソースコードに含まれると判定された場合、そのパラメータラベルの部分を他の部分よりも強調して、前記第２特定手段により特定されたソースコードを提示する出力手段と、
を備える。
【発明の効果】
【００１１】
本発明によれば、機種に依存する既存のソースコードの再利用を支援することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態に係る支援システムの構成を示す図である。
【図２】再利用情報の構成を示す図である。
【図３】機種依存情報の構成を示す図である。
【図４】支援システムにより実行される処理を示すフロー図である。
【図５】生成システムにより実行される再利用情報生成処理を示すフロー図である。
【図６】ＵＩ部により表示されるファイルパスの入力画面を示す図である。
【図７】ＵＩ部により表示される機種ＩＤ及び機能ＩＤの入力画面を示す図である。
【図８】生成システムにより実行される機種依存情報生成処理を示すフロー図である。
【図９】ＵＩ部により表示されるパラメータラベル及び設定値の入力画面を示す図である。
【図１０】検索システムにより実行される検索処理を示す図である。
【図１１】表示部により表示される検索結果の画面を示す図である。
【図１２】表示部により表示される検索結果の画面を示す図である。
【図１３】第２の実施形態に係る機種依存情報の構成を示す図である。
【図１４】ＵＩ部により表示される文の入力画面を示す図である。
【図１５】検索システムにより実行される検索処理を示す図である。
【図１６】表示部により表示される検索結果の画面を示す図である。
【図１７】生成システム及び検索システムのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を、図面を参照しつつ詳細に説明する。
【００１４】
（第１の実施形態）
本実施形態に係る支援システム１０は、図１に示されるように、外部ストレージ４０に接続される。外部ストレージ４０には、既存のソースコードが記述された複数のファイル４１が記憶されている。
【００１５】
支援システム１０は、ファイル４１とユーザにより入力された情報とに基づいて、再利用可能なソースコードをユーザに提示する。このユーザは、例えば、支援システム１０を利用してプログラムを開発する開発者である。支援システム１０は、生成システム２０及び検索システム３０を有している。
【００１６】
生成システム２０は、既存のソースコードとユーザにより入力された情報とに基づいて、後述の再利用情報６０及び機種依存情報７０を生成する。生成システム２０は、ＵＩ（User Interface）部２１、生成部２２、及び送信部２３を有している。
【００１７】
ＵＩ部２１は、ユーザにより入力されたファイルパス５１を取得する。このファイルパス５１は、外部ストレージ４０のファイル４１を識別するための情報である。また、ＵＩ部２１は、生成部２２の指示に従って、所定の画面をユーザに対して表示する。そして、ＵＩ部２１は、ユーザにより入力される機種ＩＤ５２、機能ＩＤ５３、パラメータラベル５４、及び設定値５５を取得する。
【００１８】
機種ＩＤ５２は、ソースコードから生成されるプログラムを実行する設備機器の機種を識別するためのＩＤ（識別子）である。ソースコードから生成されるプログラムは、例えば、オブジェクトプログラムやバイナリコードである。また、機種ＩＤ５２は、例えば、エアコンのシリーズを示す「Ａシリーズ」という識別子である。
【００１９】
機能ＩＤ５３は、ソースコードから生成されるプログラムを実行することにより設備機器が実現する機能を識別するための識別子である。例えば、エアコンの冷房機能は、「冷房」という機能ＩＤ５３により識別される。
【００２０】
パラメータラベル５４は、機種に依存する値を有するパラメータを識別するためのパラメータ名である。このパラメータラベル５４は、例えば、開発者によってファイル４１内のソースコードに記述されている。
【００２１】
設定値５５は、機種に依存する値を有するパラメータにあらかじめ設定される値である。なお、この設定値５５は、数値に限らず、プログラムを実行する機器の内部で２進数により表現される文字列等を含む。
【００２２】
生成部２２は、ＵＩ部２１から通知されたファイルパス５１に基づいて、外部ストレージ４０に格納されているファイル４１を取得し、このファイル４１に記述されているソースコードを読み込む。
【００２３】
また、生成部２２は、読み込まれたソースコードのうち、設備機器にサブルーチンを実行させるためのソースコードを順次取り出す。このサブルーチンは、設備機器の各機能を実現するための処理（プログラム）である。なお、以下では、サブルーチンを実行するためのソースコードに符号を付して、ソースコード４２という。
【００２４】
そして、生成部２２は、ソースコード４２と、ＵＩ部２１から出力された機種ＩＤ５２及び機能ＩＤ５３とに基づいて、再利用情報６０を生成する。また、生成部２２は、機種ＩＤ５２と、ＵＩ部２１から出力されたパラメータラベル５４及び設定値５５とに基づいて、機種依存情報７０を生成する。
【００２５】
再利用情報６０は、図２に示されるように、複数のソースコード４２それぞれに機種ＩＤ５２と機能ＩＤ５３とが関連づけられたデータである。例えば、「proc1 ( ) { . . . }」というソースコード４２に、このソースコード４２のコンパイルで生成されるプログラムに従って動作する設備機器の「Ａシリーズ」という機種ＩＤ５２と、このソースコード４２により設備機器が実現する機能の「冷房」という機能ＩＤ５３とが関連づけられる。
【００２６】
また、再利用情報６０は、ソースコード４２により実行されるサブルーチンのサブルーチン名６１を含む。サブルーチン名６１は、一般的にソースコード４２の先頭付近に記述されている。
【００２７】
機種依存情報７０は、図３に示されるように、機種ＩＤ５２、パラメータラベル５４、及び設定値５５のそれぞれが相互に関連づけられたデータである。
【００２８】
例えば、「Ａシリーズ」という機種ＩＤ５２、「入力ポート」というパラメータラベル５４、及び「７７」という設定値５５のそれぞれが相互に関連づけられる。このデータは、「入力ポート」というパラメータラベル５４を有するパラメータが「Ａシリーズ」の機種に依存する値を有し、このパラメータに「７７」という値があらかじめ設定されることを示す。
【００２９】
図１に戻り、送信部２３は、生成部２２によって生成された再利用情報６０及び機種依存情報７０を検索システム３０へ送信する。
【００３０】
検索システム３０は、生成システム２０により生成された再利用情報６０から再利用可能なソースコード４２を検索する。検索システム３０は、受信部３１、記憶部３２、キー入力部３３、演算部３４、及び表示部３５を有している。
【００３１】
受信部３１は、送信部２３から送信された再利用情報６０及び機種依存情報７０を記憶部３２に格納する。
【００３２】
キー入力部３３は、第１検索キー５６及び第２検索キー５７を取得する。第１検索キー５６は、ソースコード４２に関連づけられた機種ＩＤ５２を指定するためにユーザにより入力された情報である。また、第２検索キー５７は、ソースコード４２に関連づけられた機能ＩＤ５３を指定するためにユーザにより入力された情報である。
【００３３】
演算部３４は、第１検索キー５６や第２検索キー５７に基づいて、再利用情報６０から再利用可能なソースコード４２を抽出する。演算部３４は、例えば、第１検索キー５６により示される機種ＩＤ５２に関連づけられ、かつ第２検索キー５７により示される機能ＩＤ５３に関連づけられたソースコード４２を抽出する。また、演算部３４は、第２検索キー５７により示される機能ＩＤ５３のみに関連づけられたソースコード４２を抽出する。
【００３４】
また、演算部３４は、所定の条件を満たすパラメータラベル５４や設定値５５を、機種依存情報７０から取得する。そして、演算部３４は、パラメータラベル５４や設定値５５に関する情報を表示部３５へ出力する。
【００３５】
表示部３５は、抽出されたソースコード４２に関する情報を演算部３４から取得して、ユーザに提示する。また、表示部３５は、パラメータラベル５４及び設定値５５に関する情報をユーザに提示する。
【００３６】
続いて、上記の構成を有する支援システム１０により実行される処理について説明する。
【００３７】
支援システム１０の処理では、図４に示されるように、まず、生成システム２０により再利用情報生成処理（ステップＳ１）及び機種依存情報生成処理（ステップＳ２）が実行される。
【００３８】
次に、検索システム３０が第１検索キー５６及び第２検索キー５７が入力されたか否かを判定する（ステップＳ３）。この判定が否定された場合、検索システム３０は、検索キーが入力されるまでステップＳ３を繰り返す。ステップＳ３の判定が肯定された場合、検索システム３０は、検索処理を実行する（ステップＳ４）。
【００３９】
以下、再利用情報生成処理、機種依存情報生成処理、及び検索処理について詳細に説明する。
【００４０】
ステップＳ１の再利用情報生成処理では、図５に示されるように、まずＵＩ部２１がファイルパス５１を取得する（ステップＳ１１）。具体的には、ＵＩ部２１は、図６に示される画面を表示することにより、ユーザによって入力されるファイルパス５１を取得する。なお、図６には、ファイルパス５１として「/user/xxx.cpp」が入力される例が示されている。
【００４１】
次に、生成部２２は、ファイル４１を読み込む（ステップＳ１２）。具体的には、生成部２２は、ＵＩ部２１からファイルパス５１を取得し、このファイルパス５１により示されるファイル４１を、外部ストレージ４０から読み込む。
【００４２】
生成部２２は、読み込まれたファイル４１に記述されているソースコードを解析して、サブルーチンを実行するためのソースコード４２を取得する（ステップＳ１３）。また、生成部２２は、このソースコード４２からサブルーチン名６１を取得する。
【００４３】
ＵＩ部２１は、サブルーチン名６１を表示する（ステップＳ１４）。具体的には、ＵＩ部２１は、図７に示される画面を表示する。これにより、ユーザは、所定のサブルーチンのサブルーチン名６１を選択し、このサブルーチンを実行する機種を示す機種ＩＤ５２と、このサブルーチンにより実現される機能を示す機能ＩＤ５３とをＵＩ部２１に入力する。
【００４４】
生成部２２は、選択されたサブルーチン名６１と、このサブルーチン名６１に対応する機種ＩＤ５２及び機能ＩＤ５３を取得する（ステップＳ１５）。すなわち、生成部２２は、サブルーチン名６１を有するサブルーチンを実行する機種の機種ＩＤ５２と、このサブルーチンの実行により実現される機能の機能ＩＤ５３とを取得する。
【００４５】
そして、生成部２２は、再利用情報６０を生成する（ステップＳ１６）。具体的には、生成部２２は、ステップＳ１３にて取得されたソースコード４２と、ステップＳ１５にて取得された機種ＩＤ５２及び機能ＩＤ５３とに基づいて、再利用情報６０を生成する。
【００４６】
そして、送信部２３は、生成された再利用情報６０を検索システム３０へ送信する（ステップＳ１７）。これにより、再利用情報６０が検索システム３０の記憶部３２に記憶される。
【００４７】
続いて、ステップＳ２の機種依存情報生成処理では、図８に示されるように、まずＵＩ部２１が機種ＩＤ５２を表示する（ステップＳ２１）。具体的には、ＵＩ部２１は、図９に示される画面を表示する。これにより、表示された機種ＩＤ５２に対応するパラメータラベル５４及び設定値５５が、ユーザにより入力される。
【００４８】
なお、表示される機種ＩＤ５２は、あらかじめ定められた手順でＵＩ部２１が決定してもよいし、ユーザが図９に示される画面を操作することにより選択又は入力してもよい。
【００４９】
ＵＩ部２１は、機種ＩＤ５２に対応するパラメータラベル５４及び設定値５５を取得する（ステップＳ２２）。具体的には、ＵＩ部２１は、機種ＩＤ５２により示される機種に依存する値を有するパラメータのパラメータラベル５４と、このパラメータにあらかじめ設定される設定値５５とを取得する。
【００５０】
次に、生成部２２は、機種依存情報７０を生成する（ステップＳ２３）。具体的には、生成部２２は、ステップＳ２１にて表示された機種ＩＤ５２と、ステップＳ２２にて取得されたパラメータラベル５４及び設定値５５とに基づいて、機種依存情報７０を生成する（ステップＳ２３）。
【００５１】
その後、送信部２３は、生成された機種依存情報７０を検索システム３０へ送信する（ステップＳ２４）。これにより、機種依存情報７０が検索システム３０の記憶部３２に記憶される。
【００５２】
続いて、ステップＳ４の検索処理では、図１０に示されるように、まずキー入力部３３が第１検索キー５６及び第２検索キー５７を取得する（ステップＳ３１）。具体的には、表示部３５が、図１１に示される画面のうち、ペインＰ３１を表示する。これにより、第１検索キー５６及び第２検索キー５７がユーザにより入力される。なお、図１１には、「Ａシリーズ」の設備機器の「冷房」機能を実現するためのプログラムを開発しているユーザにより、検索キーが入力される例が示されている。
【００５３】
次に、演算部３４は、第１検索キー５６により示される機種ＩＤ５２に関連づけられ、かつ第２検索キー５７により示される機能ＩＤ５３に関連づけられたソースコード４２が再利用情報６０に含まれるか否かを判定する（ステップＳ３２）。
【００５４】
ステップＳ３２の判定が肯定された場合（ステップＳ３２；Ｙｅｓ）、演算部３４は、再利用情報６０に含まれると判定されたソースコード４２を特定して抽出する（ステップＳ３３）。
【００５５】
そして、表示部３５は、演算部３４から出力されたソースコード４２を表示する（ステップＳ３４）。具体的には、表示部３５は、図１１に示されるペインＰ３１の下にペインＰ３２を表示することにより、抽出されたソースコード４２をユーザに提示する。その後、検索システム３０は、処理を終了する。
【００５６】
ステップＳ３２の判定が否定された場合（ステップＳ３２；Ｎｏ）、演算部３４は、第２検索キー５７により示される機能ＩＤ５３に関連づけられたソースコード４２が再利用情報６０に含まれるか否かを判定する（ステップＳ３５）。ステップＳ３５の判定が否定された場合（ステップＳ３５；Ｎｏ）、検索システム３０は処理を終了する。
【００５７】
ステップＳ３５の判定が肯定された場合（ステップＳ３５；Ｙｅｓ）、演算部３４は、再利用情報６０に含まれると判定されたソースコード４２を特定して抽出する（ステップＳ３６）。
【００５８】
そして、表示部３５は、演算部３４から出力されたソースコード４２を表示する（ステップＳ３７）。具体的には、表示部３５は、図１２に示されるペインＰ３４を表示することにより、ソースコード４２をユーザに提示する。
【００５９】
次に、演算部３４は、パラメータラベル５４を取得する（ステップＳ３８）。具体的には、演算部３４は、まずステップＳ３６にて抽出されたソースコード４２に関連づけられた機種ＩＤ５２を、再利用情報６０から読み込む。次に、演算部３４は、読み込まれた機種ＩＤ５２と相互に等しい機種ＩＤ５２に関連づけられたパラメータラベル５４を、機種依存情報７０から取得する。
【００６０】
演算部３４は、ステップＳ３６にて抽出されたソースコード４２に、ステップＳ３８にて取得されたパラメータラベル５４が含まれて記述されているか否かを判定する（ステップＳ３９）。ステップＳ３９の判定が否定された場合（ステップＳ３９；Ｎｏ）、検索システム３０は処理を終了する。
【００６１】
ステップＳ３９の判定が肯定された場合（ステップＳ３９；Ｙｅｓ）、表示部３５は、ソースコード４２に記述されていると判定されたパラメータラベル５４を強調して表示する（ステップＳ４０）。具体的には、表示部３５は、ソースコード４２のうちパラメータラベル５４以外の記述とパラメータラベル５４とをユーザが区別可能となるように、パラメータラベル５４を表示する。例えば、表示部３５は、図１２に示されるペインＰ３４のように、ソースコード４２のうち、パラメータラベル５４が記述されている行に背景色を付加したり、パラメータラベル５４であることを示すアイコン・マーク等を描画したりする。
【００６２】
次に、演算部３４は、所定の条件を満たす設定値５５が機種依存情報７０に含まれるか否かを判定する（ステップＳ４１）。具体的には、演算部３４は、第１検索キー５６により示される機種ＩＤ５２に関連づけられ、かつステップＳ３８にて取得されたパラメータラベル５４に関連づけられた設定値５５が機種依存情報７０に含まれるか否かを判定する。ステップＳ４１の判定が否定された場合（ステップＳ４１）、検索システム３０は、処理を終了する。
【００６３】
ステップＳ４１の判定が肯定された場合（ステップＳ４１；Ｙｅｓ）、演算部３４は、機種依存情報７０に含まれると判定された設定値５５を取得する。そして、表示部３５は、この設定値５５を表示する（ステップＳ４２）。具体的には、表示部３５は、図１２に示されるように、ペインＰ３４の下にペインＰ３５を表示することにより、設定値５５を表示する。
【００６４】
また、ステップＳ４２にて、演算部３４は、設定値５５に関連づけられたパラメータラベル５４を取得する。そして、表示部３５は、図１２に示されるように、このパラメータラベル５４を設定値５５とともに表示する。
【００６５】
その後、検索システム３０は処理を終了する。
【００６６】
以上説明したように、本実施形態に係る支援システム１０は、再利用情報６０を記憶する。また、支援システム１０は、第１検索キー５６により示される機種ＩＤ５２、及び第２検索キー５７により示される機能ＩＤ５３の双方に関連づけられたソースコード４２を、ユーザに提示する。
【００６７】
これにより、所定の機種に依存し、所定の機能を実現するためのサブルーチンの開発に際して、支援システム１０は、外部ストレージ４０に記憶された既存のソースコード４２のうち、再利用可能なソースコード４２をユーザに提示することができる。
【００６８】
また、開発対象の機能と同様の機能を実現するが、開発対象の機種と異なる機種に依存するソースコード４２のみが外部ストレージ４０に記憶されている場合がある。このような場合に、支援システム１０は、ソースコード４２をユーザに提示するとともに、このソースコード４２に記述されているパラメータラベル５４を強調して表示する。
【００６９】
これにより、検索結果を参照するユーザは、開発対象の機種と異なる機種に依存するソースコード４２のうち、機種に依存するパラメータラベル５４を容易に判別することができる。ひいては、ソースコード４２を容易に再利用することができる。
【００７０】
また、支援システム１０は、第１検索キー５６により示される機種ＩＤ５２に関連づけられた設定値５５を表示する。これにより、ユーザは、開発対象の機種に依存してあらかじめ設定されたパラメータの値を容易に参照することができる。
【００７１】
また、支援システム１０は、設定値５５とともに、設定値５５に関連づけられたパラメータラベル５４を表示する。これにより、ユーザは、設定値５５が設定されたパラメータのパラメータラベル５４を容易に参照することができる。
【００７２】
また、機種ＩＤ５２及び機能ＩＤ５３に関連づけられるソースコード４２は、サブルーチンに対応する記述である。これにより、ユーザは、既存のソースコード４２をサブルーチン単位で検索する。サブルーチンは多くの場合、設備機器等の諸機能それぞれを実現する。また、プログラムの開発は機能単位で行われることが多い。そのため、支援システム１０は、再利用に適したソースコード４２をユーザに提示することができる。
【００７３】
また、支援システム１０は、再利用情報６０及び機種依存情報７０を生成する生成システム２０を含んで構成される。これにより、再利用情報６０及び機種依存情報７０を必要に応じて拡充することができる。
【００７４】
（第２の実施形態）
続いて、第２の実施形態について、上述の第１の実施形態との相違点を中心に説明する。なお、上記実施形態と同一又は同等の構成については、同等の符号を用いるとともに、その説明を省略又は簡略する。
【００７５】
本実施形態に係る機種依存情報７０は、第１の実施形態に係る設定値５５を省くとともに、パラメータラベル５４に代えて、文を含んで構成される。すなわち、機種依存情報７０は、図１３に示されるように、機種ＩＤ５２と、この機種ＩＤ５２により示される機種に依存する文とが関連づけられた情報である。
【００７６】
ＵＩ部２１は、ステップＳ２１において図１４に示される画面を表示する。これにより、生成部２２は、機種ＩＤ５２と文とを取得し、機種依存情報７０を生成する。
【００７７】
その後、検索システム３０は、図１５に示される検索処理を実行する。この検索処理のうち、ステップＳ３１〜Ｓ３７の処理は、第１の実施形態に係るものと同様である。
【００７８】
ステップＳ３７に続いて、演算部３４は、文を取得する（ステップＳ５１）。具体的には、演算部３４は、まずステップＳ３６にて抽出されたソースコード４２に関連づけられた機種ＩＤ５２を、再利用情報６０から読み込む。次に、演算部３４は、読み込まれた機種ＩＤ５２と相互に等しい機種ＩＤ５２に関連づけられた文を、機種依存情報７０から取得する。
【００７９】
演算部３４は、ステップＳ３６にて抽出されたソースコード４２に、ステップＳ３８にて取得された文が記述されているか否かを判定する（ステップＳ５２）。ステップＳ５２の判定が否定された場合（ステップＳ５２；Ｎｏ）、検索システム３０は処理を終了する。
【００８０】
ステップＳ５２の判定が肯定された場合（ステップＳ５２；Ｙｅｓ）、表示部３５は、ソースコード４２に記述されていると判定された文を強調して表示する（ステップＳ５３）。具体的には、表示部３５は、図１６に示されるペインＰ３６のように、文を強調して表示する。その後、検索システム３０は処理を終了する。
【００８１】
以上説明したように、本実施形態に係る支援システム１０は、ソースコード４２に記述されている文を強調して表示する。これにより、検索結果を参照するユーザは、開発対象の機種と異なる機種に依存するソースコード４２のうち、機種に依存する文を容易に判別することができる。
【００８２】
以上、本発明の実施形態について説明したが、本発明は上記実施形態によって限定されるものではない。
【００８３】
例えば、図３において、「Ｆシリーズ」という機種ＩＤ５２に「出力ポート」というパラメータラベル５４が関連づけられているが、これらのデータに設定値５５は関連づけられていない。このように、機種依存情報７０は、機種ＩＤ５２、パラメータラベル５４及び設定値５５のすべてが関連づけられたデータでなくてもよい。
【００８４】
例えば、ソースコード４２に機種ＩＤ５２と機能ＩＤ５３とが関連づけられた再利用情報６０は、様々な形態で実現することが可能である。例えば、ソースコード４２が記述されたファイルと、サブルーチン名６１、機種ＩＤ５２及び機能ＩＤ５３が記述されたファイルとを関連づけることによって再利用情報６０を実現してもよい。また、ソースコード４２のコメントとして機種ＩＤ５２等が記述されてもよい。また、ハッシュテーブルやデータベースにより実現してもよいし、表計算ソフト専用のファイル形式で保存することにより実現してもよい。
【００８５】
例えば、再利用情報６０を構成するソースコード４２は、サブルーチンに対応する記述としたが、これには限られない。例えば、モジュール、ライブラリ、クラス、メソッド、又はファイルやフォルダに、機種ＩＤ５２と機能ＩＤ５３とを関連づけて再利用情報６０を構成してもよい。
【００８６】
例えば、上記実施形態においてユーザが開発するプログラムは、設備機器等により実行されるプログラムであったが、その他の機器により実行されるプログラムであってもよい。例えば、家庭用電気製品や携帯電話、自動車の車載システムを動作させるためのプログラム等であってもよい。
【００８７】
例えば、上記実施形態に係る機種ＩＤ５２は、設備機器の機種を識別するための識別子としたが、その他の設備機器の構成を識別するための識別子としてもよい。例えば、設備機器のシリーズ、モデル、型番又はＯＳを識別するための識別子としてもよい。また、シリーズ等が同一であっても、設備機器それぞれが備えるセンサ等が異なる場合に、異なる識別子を付してもよい。
【００８８】
例えば、上記実施形態に係るＵＩ部２１及びキー入力部３３は、ＧＵＩ（Graphical User Interface）によりユーザから情報の入力を受け付けたが、ＣＵＩ（Character User Interface）や音声インタフェースを利用してもよい。
【００８９】
例えば、上記実施形態に係る支援システム１０は、生成システム２０を含んで構成されたが、これに限られず、検索システム３０のみから構成されてもよい。この場合、検索システム３０が外部ストレージ４０を参照し、生成システム２０と同様の処理によって再利用情報６０及び機種依存情報７０を記憶部３２に格納すればよい。また、あらかじめ外部記憶装置に記憶された再利用情報６０や機種依存情報７０を読み込んでもよい。
【００９０】
図１７は、上記実施形態に係る生成システム２０及び検索システム３０をコンピュータに実装する場合のハードウェア構成例を示すブロック図である。生成システム２０及び検索システム３０は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。生成システム２０及び検索システム３０それぞれは、プロセッサＨ１、主記憶部Ｈ２、補助記憶部Ｈ３、出力部Ｈ４、入力部Ｈ５及び送受信部Ｈ６を備える。主記憶部Ｈ２、補助記憶部Ｈ３、出力部Ｈ４、入力部Ｈ５及び送受信部Ｈ６はいずれも内部バスＨ７を介してプロセッサＨ１に接続されている。
【００９１】
プロセッサＨ１は、ＣＰＵ（Central Processing Unit）等から構成され、補助記憶部Ｈ３に記憶されるプログラムＨ８に従って、上記実施形態に係る生成部２２、演算部３４の処理を実行する。
【００９２】
主記憶部Ｈ２は、ＲＡＭ（Random-Access Memory）等から構成され、補助記憶部Ｈ３に記憶されるプログラムＨ８をロードし、プロセッサＨ１の作業領域として用いられる。
【００９３】
補助記憶部Ｈ３は、フラッシュメモリ、ハードディスク等の不揮発性メモリから構成され、上述の処理をプロセッサＨ１に実行させるためのプログラムＨ８や再利用情報６０、機種依存情報７０等を記憶する。また、補助記憶部Ｈ３は、プロセッサＨ１の指示に従って、プログラムＨ８が記憶するデータをプロセッサＨ１に供給し、プロセッサＨ１から供給されたデータを記憶する。
【００９４】
出力部Ｈ４は、ＬＣＤ（Liquid Crystal Display）等から構成される表示装置、スピーカ等から構成される音響装置又は印刷装置等を有し、種々の情報をユーザに提供する。出力部Ｈ４は、ＵＩ部２１及び表示部３５を物理的に実現する。
【００９５】
入力部Ｈ５は、キーボード及びマウス等のポインティングデバイス等と、キーボード及びポインティングデバイス等を内部バスＨ７に接続するインタフェース装置等から構成される。入力部Ｈ５は、ＵＩ部２１及びキー入力部３３を物理的に実現する。
【００９６】
送受信部Ｈ６は、モデム又は網終端装置、及びそれらと接続するシリアルインタフェース又はＬＡＮインタフェース等から構成される。送受信部Ｈ６は、送信部２３及び受信部３１を物理的に実現する。
【００９７】
図１に示されるＵＩ部２１、生成部２２、送信部２３、受信部３１、記憶部３２、キー入力部３３、演算部３４、及び表示部３５が実行する処理は、プログラムＨ８が、プロセッサＨ１、主記憶部Ｈ２、補助記憶部Ｈ３、出力部Ｈ４、入力部Ｈ５、送受信部Ｈ６等を資源として用いて処理することによって実行される。
【００９８】
上述の実施形態に係る生成システム２０及び検索システム３０の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【００９９】
例えば、補助記憶部Ｈ３に記憶されているプログラムＨ８を、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムＨ８をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
【０１００】
また、プログラムＨ８をインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するようにしても良い。
【０１０１】
また、通信ネットワークを介してプログラムＨ８を転送しながら起動実行することによっても、上述の処理を達成することができる。
【０１０２】
更に、プログラムＨ８の全部又は一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムＨ８を実行することによっても、上述の処理を達成することができる。
【０１０３】
なお、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等しても良い。
【０１０４】
また、生成システム２０及び検索システム３０による処理は、同一のプログラムＨ８により実行されてもよいし、別個のプログラムＨ８により実行されてもよい。
【０１０５】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【産業上の利用可能性】
【０１０６】
本発明の支援システム、支援方法、及び支援プログラムは、プログラムの開発者を支援するシステムに適している。
【符号の説明】
【０１０７】
１０  支援システム
２０  生成システム
２１  ＵＩ部
２２  生成部
２３  送信部
３０  検索システム
３１  受信部
３２  記憶部
３３  キー入力部
３４  演算部
３５  表示部
４０  外部ストレージ
４１  ファイル
４２  ソースコード
５１  ファイルパス
５２  機種ＩＤ
５３  機能ＩＤ
５４  パラメータラベル
５５  設定値
５６  第１検索キー
５７  第２検索キー
６０  再利用情報
６１  サブルーチン名
７０  機種依存情報
Ｈ１  プロセッサ
Ｈ２  主記憶部
Ｈ３  補助記憶部
Ｈ４  出力部
Ｈ５  入力部
Ｈ６  送受信部
Ｈ７  内部バス
Ｈ８  プログラム
Ｐ３１、Ｐ３２、Ｐ３３、Ｐ３４、Ｐ３５、Ｐ３６  ペイン
【図１】
0005846853.tif 000002
【図２】
0005846853.tif 000003
【図３】
0005846853.tif 000004
【図４】
0005846853.tif 000005
【図５】
0005846853.tif 000006
【図６】
0005846853.tif 000007
【図７】
0005846853.tif 000008
【図８】
0005846853.tif 000009
【図９】
0005846853.tif 000010
【図１０】
0005846853.tif 000011
【図１１】
0005846853.tif 000012
【図１２】
0005846853.tif 000013
【図１３】
0005846853.tif 000014
【図１４】
0005846853.tif 000015
【図１５】
0005846853.tif 000016
【図１６】
0005846853.tif 000017
【図１７】
0005846853.tif 000018