(57)【要約】【課題】雛形コードに部分コードを挿入して展開コードを生成した後に、挿入した部分コードを特定する。【解決手段】雛形コードに部分コードを挿入してスクリプトデータを生成する画面遷移編集ツール１１１が、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、スクリプトデータを生成する雛形データ部分コード挿入部１２４、および、雛形データ部分コード挿入部１２４が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、スクリプトデータに付与する特定情報付与部１２５、として機能させる。【選択図】図１
2010277572.tif 000002
【特許請求の範囲】
【請求項１】
雛形コードに部分コードを挿入して展開コードを生成するコード生成プログラムであって、コンピュータを、
上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、
上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させるためのコード生成プログラム。
【請求項２】
上記コンピュータを、
上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、
上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段、および、
上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段、として機能させるための請求項１に記載のコード生成プログラム。
【請求項３】
上記コンピュータを、
変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って、上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段、として機能させるための請求項２に記載のコード生成プログラム。
【請求項４】
上記付与手段は、複数の上記パラメータ変換規則のうちの１つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、
上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成する請求項３に記載のコード生成プログラム。
【請求項５】
上記コンピュータを、
上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段、および、
上記差分検出手段が検出した差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する反映手段、として機能させる請求項３または４に記載のコード生成プログラム。
【請求項６】
上記挿入手段は、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与する請求項１から５のいずれか１項に記載のコード生成プログラム。
【請求項７】
上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与し、
上記コンピュータを、
上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、
上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、
上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させる請求項１に記載のコード生成プログラム。
【請求項８】
上記コンピュータを、
上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させるための請求項３に記載のコード生成プログラム。
【請求項９】
上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、
上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、
上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する請求項５に記載のコード生成プログラム。
【請求項１０】
上記展開コードは、イベントを検知する展開コードであり、
上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、
上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する請求項５に記載のコード生成プログラム。
【請求項１１】
複数の上記挿入手段を備え、
上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、
上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、
上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与する請求項１記載のコード生成プログラム。
【請求項１２】
上記コンピュータを、
上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段、
上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段、および、
上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段、として機能させるための請求項１１に記載のコード生成プログラム。
【請求項１３】
上記コンピュータを、
上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、
上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段、として機能させるための請求項１１または１２に記載のコード生成プログラム。
【請求項１４】
上記コンピュータを、
上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、
上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段、として機能させるための請求項１２または１３に記載のコード生成プログラム。
【請求項１５】
上記コンピュータを、
上記複数の挿入手段の上記部分コードにおいて共通に設定可能な設定値が、一の上記挿入手段が挿入する固有の部分コードで指定されたとき、他の上記挿入手段が挿入する固有の部分コードで上記設定値が設定されることを禁止する禁止手段、として機能させるための請求項１１から１４のいずれか１項に記載のコード生成プログラム。
【請求項１６】
請求項１から１５に記載のコード生成プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、
上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、
上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備えることを特徴とするコード生成装置。
【請求項１８】
雛形コードに部分コードを挿入して展開コードを生成するコード生成装置の制御方法であって、
上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、
上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含むことを特徴とするコード生成装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコードの自動生成を行うコード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法に関する。
【背景技術】
【０００２】
従来、プログラムの仕様を入力すれば、実際にコーディングを行わなくても、プログラムを自動生成できる技術が開発されている。プログラム自動生成技術としては、例えば、予め、プログラムコードのテンプレートや、キーワードの変換規則を定義しておき、入力された仕様から、キーワードや、パラメータを抽出し、抽出したキーワードを変換規則に従って変換したり、抽出したパラメータをテンプレートに適用し、テンプレートを展開したりすることによってプログラムを自動生成するものが知られている。
【０００３】
また、プログラム自動生成に用いる変換規則の一部や、テンプレートを、プログラム自動生成を実現するプログラム自動生成プログラム自体から分離して保持する手法が提案されている（例えば、特許文献１）。このような手法により、入力する仕様や、出力するプログラムの形式が変更されても、その変更の影響がプログラム自動生成プログラム自体には及ばず、仕様等の変更に柔軟に対応できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２３１０６３号公報（１９９７年９月５日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のような従来技術では、一度、テンプレートを展開して自動生成したコードは、元のテンプレート部分と、自動生成ツールによって自動生成された部分との見分けがつかず、再利用することが難しかった。
【０００６】
このため、例えば、ベンダーが、自動生成ツールを用いて自動生成したコードを、サードパーティ等にサンプルコードとして提供するような場合において、サードパーティにおいて、サンプルコードの自動生成された部分をカスタマイズしたいという要望をもっていても、ベンダーは、この要望に応じられていなかった。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、雛形コードに部分コードを挿入して展開コードを生成した後に、挿入した部分コードを特定して再利用しやすくすることができるコード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法を実現することにある。
【課題を解決するための手段】
【０００８】
本発明に係るコード生成プログラムは、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成プログラムであって、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させることを特徴としている。
【０００９】
本発明に係るコード生成装置は、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備えることを特徴としている。
【００１０】
本発明に係るコード生成装置の制御方法は、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成装置の制御方法であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含むことを特徴としている。
【００１１】
上記構成によれば、部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、部分コードを挿入して、展開コードを生成するとともに、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記展開コードに付与することができる。
【００１２】
これにより、展開コードを生成した後にも、付与された挿入位置特定情報によって、上記雛形コードに上記部分コードを挿入した位置を特定することができる。
【００１３】
この結果、展開コードを生成した後、展開コードについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
【００１４】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段、および、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段、として機能させることが好ましい。
【００１５】
従来、展開コードを変更する場合には、改めて、雛形コードに、部分コードを挿入するといった動作が必要であった。
【００１６】
つまり、上述のような従来技術では、一度、テンプレートを展開して自動生成したコードは、プログラム自動生成プログラムにおいて再利用することができなかった。
【００１７】
これに対して、上記構成は、上記生成された展開コードにおいて挿入された部分コードを、展開コードに付与された挿入位置特定情報によって検出し、検出した挿入位置特定情報が示す位置に挿入されている部分コードを、該部分コードとは異なる他の部分コードに置き換えることができる。
【００１８】
これにより、一度生成された展開コードおける部分コードとして挿入された箇所を、別の部分コードに差し替えて、元の展開コードを書き換えることが可能となる。
【００１９】
すなわち、本発明では、生成された展開コードにおいて挿入された部分コードを、別の部分コードに差し替えるので、雛形コードの影響は受けない。このため、例えば、雛形コードが、更新されている、あるいは何らかの理由で失われてしまっているといった状態においても、展開コードの変更が可能である。
【００２０】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って、上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段、として機能させることが好ましい。
【００２１】
上記構成によると、上記展開コードを生成するとき、および、上記展開コードを更新するときにおいて変換の対象である変換前パラメータと、変換後の結果である変換後パラメータとの対応を定義するパラメータ変換規則が用いられる。具体的には、変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている変換前パラメータを、上記パラメータ変換規則に従って変換することで、それぞれのときにおいて部分コードが生成される。
【００２２】
そして、上記展開コードを生成するとき、および、上記展開コードを更新するときの違いは、パラメータ指定情報において指定されている変換前パラメータが異なる点である。
【００２３】
このように、本発明では、変換前パラメータの指定を変更するだけで、展開コードを変更することができ、変更点を、実際にコーディングする労力を軽減することができる。
【００２４】
また、本発明に係るコード生成プログラムでは、上記付与手段は、複数の上記パラメータ変換規則のうちの１つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成することが好ましい。
【００２５】
上記構成によれば、雛形コードに含まれる複数のパラメータ変換規則のうち、いずれの上記パラメータ変換規則を用いるべきかを示す変換規則指定情報において示される上記パラメータ変換規則を用いて上記部分コードを生成し、生成した部分コードを展開コードに挿入するとともに、上記変換規則指定情報が含まれる挿入位置情報を付与する。
【００２６】
そして、展開コードを変更する場合においても、上記変換規則指定情報に含まれる上記変換規則指定情報において示される上記パラメータ変換規則を用いて変更部分コードを生成することができる。
【００２７】
これにより、展開コード内の挿入位置情報を参照するだけで、その他の情報を参照することなくパラメータ変換規則を特定できる。これにより、展開コードを生成するとき、および、展開コードを変更するときにおいて用いるパラメータ変換規則を一致させることができるという効果を奏する。
【００２８】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段、および、上記差分検出手段が検出した差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する反映手段、として機能させることが好ましい。
【００２９】
雛形コードから生成した展開コードを、ツールによらず改修したい場合もある。しかしながら、従来技術では、雛形コードから生成した展開コードを改修してしまうと、その改修箇所を反映させるすべがなかった。
【００３０】
つまり、従来、コード自動生成プログラムは、所定の雛形コードを用いなければならず、所定の変換規則に従った、定められた形式のコードしか自動生成することができず、このような改修箇所を、従来のコード自動生成プログラムが生成するコードには、反映させることができなかった。
【００３１】
これに対して、上記構成によれば、上記パラメータ指定情報取得手段が取得したパラメータ指定情報に指定されている上記変換前パラメータを、上記パラメータ変換規則に従って再度変換することで上記部分コードを再生成し、該再生成した部分コードと、展開コードに挿入されている上記部分コードとを比較して差分を検出する。そして、検出した差分を、更新部分コードに反映する。
【００３２】
これにより、コード生成装置によらないで編集された展開コードにおける部分コードの変更点を、新たにコード生成装置によって生成する展開コードに反映させることができる。
【００３３】
また、本発明に係るコード生成プログラムでは、上記挿入手段は、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与することが好ましい。
【００３４】
ところで、本発明に係るコード生成装置の外部、例えば、テキストエディタ等の機能を搭載したコード編集装置において、上記展開コードを編集するということも考えられる。
【００３５】
上記構成によれば、展開コードに対する編集機能を有するコード編集装置において行う場合、挿入位置特定情報は、挿入位置特定情報に対する編集を抑止するための情報として取り扱われる。これにより、無闇に挿入位置特定情報が改変されることを防ぎ、コード生成装置において、正当な挿入位置特定情報を取り扱うことができるという効果を奏する。
【００３６】
また、本発明に係るコード生成プログラムでは、上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与し、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させることが好ましい。
【００３７】
上記構成によれば、上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与する。また、上記構成によれば、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させる。
【００３８】
これにより、雛形コードが更新されている場合には、更新後の雛形コードを用いて展開コードを生成することができる。
【００３９】
また、本発明に係るコード生成プログラムでは、上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させることが好ましい。
【００４０】
上記構成によれば、上記コンピュータを、上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させる。
【００４１】
これにより、部分コード生成手段が生成した部分コードから、パラメータ指定情報を得ることができる。すなわち、生成された展開コードから、パラメータ指定情報を再現できる。この結果、生成された展開コードのパラメータ指定情報をもとに再開発を行うことができるという効果を奏する。
【００４２】
また、本発明に係るコード生成プログラムでは、上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映することが好ましい。
【００４３】
上記構成によれば、上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する。
【００４４】
これにより、画面遷移が同一となるイベントに関し、イベント検知コードに差分を反映させることができるという効果を奏する。
【００４５】
また、本発明に係るコード生成プログラムでは、上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映することが好ましい。
【００４６】
上記構成によれば、上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する。
【００４７】
これにより、同一イベントを検知するコードに差分を反映させることができるという効果を奏する。
【００４８】
また、本発明に係るコード生成プログラムでは、複数の上記挿入手段を備え、上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与することが好ましい。
【００４９】
上記構成によれば、挿入手段は、その固有の挿入位置指定情報が示す位置に固有の部分コードを挿入するとともに、その固有の挿入位置特定情報を付与することができる。
【００５０】
よって、複数の挿入手段があっても、いずれの挿入手段によって、部分コードが挿入されたかを知ることができる。
【００５１】
この結果、複数の挿入手段があっても、互いの部分コード挿入位置が干渉しないように、それぞれの挿入箇所を分けて管理することができるという効果を奏する。
【００５２】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段、および、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段、として機能させることが好ましい。
【００５３】
上記構成によれば、展開された雛形コードには挿入手段に固有の挿入位置特定情報が挿入されているので、その挿入手段に固有の挿入位置特定情報を検出すれば、変更部分コード取得手段が部分コードを置き換えるべき位置を特定することができる。
【００５４】
このため、固有の部分コードを置き換える場合においても、その他の挿入手段に固有の部分コードと置き換え位置が干渉しないように、各置換手段による置き換え箇所を分けて管理することができるという効果を奏する。
【００５５】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段、として機能させることが好ましい。
【００５６】
上記構成によれば、コード編集装置によって、部分コードが編集されたとき、挿入手段によって部分コードが挿入される場所以外の場所に、その編集内容を退避することができる。
【００５７】
この結果、コード編集装置によって編集された内容が、後に挿入手段が挿入する部分コードによって意図しない状態に書き換えられることを防ぐことができるという効果を奏する。
【００５８】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段、として機能させることが好ましい。
【００５９】
上記構成によれば、コード編集装置によって固有の部分コードが編集された後、置換手段によってその固有の部分コードが置き換えられようとしていることを検知することができる。よって、コード編集装置が編集した箇所が置き換えられようとしていることを事前に知ることができるという効果を奏する。
【００６０】
さらにいえば、部分コードの置き換えを事前に知ることにより、その旨を、開発者等に通知したり、その置き換えを制限したりするといった対策を打つことも考えられる。
【００６１】
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記複数の挿入手段の上記部分コードにおいて共通に設定可能な設定値が、一の上記挿入手段が挿入する固有の部分コードで指定されたとき、他の上記挿入手段が挿入する固有の部分コードで上記設定値が設定されることを禁止する禁止手段、として機能させることが好ましい。
【００６２】
上記構成によれば、先に、各挿入手段の部分コードで共通に設定可能な設定値を設定した部分コードが挿入されたとき、後から当該設定値を設定する部分コードを作成することを禁止することができる。
【００６３】
これにより、先に指定した設定値を上書きされることを保護したり、先に指定した設定値に矛盾する設定値を後から指定されることを防いだりすることができる。
【００６４】
上記プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。また、上記記録媒体によれば、記録媒体から読み出されるプログラムが、汎用のコンピュータ上で実行される。これにより、本発明の目的を達成することができる。
【発明の効果】
【００６５】
本発明に係るコード生成プログラムは、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させるためのプログラムである。
【００６６】
本発明に係るコード生成装置は、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備える構成である。
【００６７】
本発明に係るコード生成装置の制御方法は、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含む方法である。
【００６８】
それゆえ、展開コードを生成した後、展開コードについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
【図面の簡単な説明】
【００６９】
【図１】本実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。
【図２】コンテンツサービスの一例を示す図である。
【図３】リモコンの外観について例示する図である。
【図４】サービスデータのデータ構造を模式的に示す図である。
【図５】画面遷移編集ツールのデータフローを示す図であり、（ａ）は、画面遷移編集ツールが、スクリプトデータを新規作成する場合のデータフローであり、（ｂ）は、作成したスクリプトデータを流用して、スクリプトデータを再作成する場合のデータフローである。
【図６】コンテンツサービスの画面遷移の一例について示す図である。
【図７】コンテンツサービスの一画面についての画面遷移の一例を示す図である。
【図８】画面遷移表のデータ構造の一例を示すテーブルである。
【図９】画面遷移編集ツールが作成するイベント検知記述の一例について示す図である。
【図１０】イベント対応記述の一例について示す図である。
【図１１】雛形データの一例を示す図である。
【図１２】スクリプトデータの作成に用いられるパターンデータの一例を示す図である。
【図１３】雛形データを展開して作成したスクリプトデータの一例を示す図である。
【図１４】コンテンツサービスの一画面についての画面遷移の別の例を示す図である。
【図１５】画面遷移表の一部を示すテーブルである。
【図１６】更新後の画面遷移表に基づいて再作成した部分データを示す図である。
【図１７】更新後の画面遷移表に基づいて再作成したスクリプトデータを示す図である。
【図１８】画面遷移編集ツールが、雛形データを用いてスクリプトデータを作成する場合の処理の流れを示すフローチャートである。
【図１９】画面遷移編集ツールが、スクリプトデータを流用してスクリプトデータを再作成する場合の処理の流れを示すフローチャートである。
【図２０】他の実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。
【図２１】外部ツールによって修正されたスクリプトデータの一例を示す図である。
【図２２】スクリプトデータの元の部分コードを示す図である。
【図２３】スクリプトデータ部分コード生成部が生成する部分コードの一例を示す図である。
【図２４】部分コード修正部が生成する部分コードの一例を示す図である。
【図２５】修正コードを反映させて作成したスクリプトデータの一例を示す図である。
【図２６】雛形データ部分コード生成部が生成する部分コードの一例を示す図である。
【図２７】雛形データを展開して作成したスクリプトデータの一例を示す図である。
【図２８】外部ツールによって修正されたスクリプトデータの一例を示す図である。
【図２９】スクリプトデータ部分コード生成部が生成するスクリプトデータの一例を示す図である。
【図３０】部分コード修正部が生成する部分コードの一例を示す図である。
【図３１】外部ツールで修正されたスクリプトデータの部分コードの一例を示す図である。
【図３２】スクリプトデータ部分コード挿入部が生成するスクリプトデータの一例を示す図である。
【図３３】画面遷移編集ツールが雛形データを用いてスクリプトデータを作成する場合の処理の流れについて例示したフローチャートである。
【図３４】さらに別の実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。
【図３５】イベント対応記述を作成するためのパターンデータの一例を示す図である。
【図３６】画面遷移編集ツールが作成するイベント対応記述の一例について示す図である。
【図３７】本実施形態に係るイベント対応記述の一例について示す図である。
【図３８】本実施形態に係るイベント検知記述の一例について示す図である。
【図３９】本実施形態に係るイベント検知記述の一例について示す図である。
【図４０】本実施形態に係るイベント対応記述の一例について示す図である。
【図４１】本実施形態に係るイベント検知記述の一例について示す図である。
【図４２】本実施形態に係るイベント検知記述の一例について示す図である。
【図４３】サービス開発ツールの概要について説明した概略図である。
【図４４】スクリプトデータの各領域の構成および各ツールの編集領域について概略的に説明する模式図である。
【図４５】画面遷移編集ツールを動作させている開発装置の概略的構成について示した機能ブロック図である。
【図４６】雛形データの他の例を示す図である。
【図４７】画面遷移表の一部について示したテーブルである。
【図４８】雛形データ部分コード生成部が生成する部分コードの一例を示す図である。
【図４９】画面遷移編集が作成するスクリプトデータの一例を示す図である。
【図５０】画面レイアウト作成ツールのユーザインターフェースの一例について示した図である。
【図５１】画面レイアウト作成ツールを動作させている開発装置の概略的構成について示した機能ブロックである。
【図５２】スクリプトデータ部分コード生成部が生成する部分コードの一例を示す図である。
【図５３】スクリプトデータ部分コード挿入部が部分コードを挿入することにより得られるスクリプトデータの一例を示す図である。
【図５４】スクリプトエディタによって編集されたスクリプトデータの一例を示す図である。
【図５５】スクリプトエディタによって編集されたコードが退避された状態のスクリプトデータの一例を示す図である。
【図５６】サービス開発ツールの変形例について示す機能ブロック図である。
【図５７】画面遷移表の一部について示したテーブルである。
【発明を実施するための形態】
【００７０】
〔実施形態１〕
本発明の一実施形態について図１〜図１９に基づいて説明すると以下の通りである。以下の実施形態では、例示的に、インターネットに接続された通信機能を有するテレビジョン受像機（以下、テレビと称する）に対して、ネットワークを介して種々のコンテンツを提供するサービス（以下、コンテンツサービスと称する）を開発するため開発ツールについて説明する。
【００７１】
（コンテンツサービスの概要）
まず、図２を参照しながら、コンテンツサービスの概要について説明する。図２は、コンテンツサービスの一例を示す図である。
【００７２】
図２に示す例では、コンテンツサービスは、テレビＶ１において、文字、画像、動画等の情報提示を行うサービスである。テレビＶ１には、画面Ｐ１が表示されている。画面Ｐ１には、表示内容Ａが含まれており、その下方には、ＧＵＩ（Graphical User Interface）部品である左矢印ボタン１０、および右矢印ボタン１１が配置されている。
【００７３】
本実施形態では、例示的に、コンテンツサービスは、複数の画面から構成されるものであり、各画面において情報提示を行うものとしている。
【００７４】
このようなコンテンツサービスでは、例えば、テレビＶ１を操作するためのリモートコントローラ（以下、リモコンと称する）による操作をテレビＶ１が受け付けることにより、各画面を切り替えて情報提示をするといった形態のサービスを提供することができる。
【００７５】
ここで、図３を用いて、テレビＶ１のリモコンＶ２の一例について説明する。図３は、リモコンＶ２の外観について例示する図である。図３に示すように、リモコンＶ２は、数字キーＫＮ１〜ＫＮ１２と、方向キーＫＤ１〜ＫＤ４と、決定キーＫＰ１と、戻るキーＫＰ２と、機能キーＫＣ１〜ＫＣ４とを備える。
【００７６】
そして、テレビＶ１は、リモコンＶ２におけるキー操作を検知して、検知したキー操作に応じて画面を遷移させる。
【００７７】
例えば、テレビＶ１は、画面Ｐ１を表示している間に、リモコンＶ２において右方向キーＫＤ４が押下されたことを検知すると、右矢印ボタン１１をハイライトさせる等の映像効果を提示しつつ、図示しない別の画面に表示画面を遷移させることができる。つまり、この例では、左矢印ボタン１０、右矢印ボタン１１のＧＵＩ部品は、方向キーＫＤ２、ＫＤ３の操作によって画面遷移が起こることを示している。
【００７８】
このようなコンテンツサービスは、テレビＶ１において実行可能なソフトウェアであるコンテンツビューアがサービスデータを読み込んで、読み込んだサービスデータに基づいて動作することにより実現される。
【００７９】
（サービスデータについて）
ここで、図４を用いて、本実施形態におけるサービスデータのデータ構造について説明する。図４は、サービスデータのデータ構造を模式的に示す図である。
【００８０】
図４に示すとおり、サービスデータ５０は、スクリプトデータ５１と、オブジェクトデータ５２とを含むデータ構造である。
【００８１】
オブジェクトデータ５２は、テレビＶ１において、表示、再生して、ユーザに提示することが可能なデータである。すなわち、オブジェクトデータ５２には、テレビＶ１において提示可能な写真などの静止画像、動画データ、テキストデータ、および音声データなどが含まれる。
【００８２】
スクリプトデータ５１は、コンテンツサービスを実現するための各種機能を制御するための制御命令が記述されているものである。スクリプトデータ５１は、テレビＶ１において、コンテンツサービスの画面遷移を実現するためのコードが記述された画面遷移定義スクリプト５３を含む。
【００８３】
画面遷移定義スクリプト５３は、テレビにおいて発生したイベントに応じて、テレビが実行すべき画面遷移について記述したコードである。ここで、イベントとは、主として、ユーザによるキー入力のことを指すが、その他、所定時間経過、所定動作開始／終了時、および、表示用データ受信などが含まれていてよい。
【００８４】
そして、画面遷移定義スクリプト５３には、イベント検知記述５４と、イベント対応記述５５とが含まれる。
【００８５】
イベント検知記述５４は、イベントを検知するための命令するための命令を記述したものである。イベント検知記述５４には、ユーザによるキー入力イベント、例えば、リモコンＶ２のキー操作イベントを検知するための命令を記述することができる。
【００８６】
また、イベント対応記述５５とは、イベント検知記述５４において検知されるイベントに対して、いずれの画面遷移を実行するかについて規定したものである。イベント検知記述５４およびイベント対応記述５５の詳細については後述する。
【００８７】
以下では、リモコンＶ２のキー操作イベントを検知する命令をイベント検知記述５４において記述し、イベント対応記述５５において、キー操作イベントに対応する画面遷移を規定する例について説明するが、このような例に限られない。例えば、次の画面を表示するためのサービスデータを取得したときに発生する表示用データ受信イベントを検知するための命令をイベント検知記述において記述し、イベント対応記述５５において、表示用データ受信イベントの検知に応じて「次の画面へ遷移する」と規定することもできる。
【００８８】
そのほか、スクリプトデータは、テレビＶ１が提供すべき機能について記述したものを含んでいてもよいし、オブジェクトデータ５２の表示方法、画面上の位置、大きさなどについて記述したものを含んでいてもよい。
【００８９】
スクリプトデータ５１が、ファイルシステム上で管理されている場合、スクリプトデータ５１は、１ファイルにすべて含まれていてもよいし、例えば、イベント検知記述５４およびイベント対応記述５５は、別々の２ファイルに含まれていてもよい。また、イベント検知記述５４は、複数のファイルに分散して記述されていてもよい。
【００９０】
（コンテンツサービスの開発環境）
次に、コンテンツサービスの開発環境について説明する。コンテンツサービスを提供する事業者は、次のような開発工程によりコンテンツサービスを開発する。
【００９１】
１．コンテンツサービスを構成する画面の遷移を規定する。
【００９２】
２．規定した各画面の表示内容・レイアウト等を作成する。
【００９３】
３．作成した画面上で発生するイベントに対する動作を規定する。
【００９４】
４．動作検証を行う。
【００９５】
このような、一連の開発工程を支援するべく、開発環境が提供される。開発とは、オブジェクトデータおよびスクリプトデータを作成して、サービスデータを作成することに他ならない。開発環境とは、コンピュータ上で実行可能な、単一または複数のプログラムであって、上記のような開発工程を支援する処理を実行するものである。
【００９６】
また、開発環境には、各開発工程に対応した種々の開発ツールが含まれる。開発ツールの例としては、テキストエディタや、ＧＵＩ部品の編集ツール、テスト検証ツール等が挙げられる。本実施形態においては、特に、上記開発工程１．に対応する開発ツール（以下において、画面遷移編集ツールと称する）について焦点を当てて説明していく。
【００９７】
（画面遷移編集ツール）
次に、図５を用いて、画面遷移編集ツール１１１について説明する。図５は、画面遷移編集ツール１１１のデータフローを示す図である。図５の（ａ）は、画面遷移編集ツール１１１が、スクリプトデータ５１を新規作成する場合のデータフローであり、図５の（ｂ）は、作成したスクリプトデータ５１を流用して、スクリプトデータ５１を再作成する場合のデータフローである。
【００９８】
図５の（ａ）に示すように、画面遷移編集ツール１１１は、雛形データ６０と、画面遷移表７０とを入力として、スクリプトデータ５１を新規に作成し出力する。
【００９９】
雛形データ６０とは、スクリプトデータ５１の一部が未完成のコードであり、いわばスクリプトデータ５１の半完成版である。画面遷移編集ツール１１１は、スクリプトデータ５１の未完成の部分に、画面遷移表７０に従って生成した部分コードを挿入して完成版のスクリプトデータ５１を作成する。
【０１００】
画面遷移表７０とは、画面遷移の仕様を定義するものである。画面遷移の詳細については、後述する。
【０１０１】
また、図５の（ｂ）に示すように、画面遷移編集ツール１１１は、作成したスクリプトデータ５１と、画面遷移表７０とを入力として、新たなスクリプトデータ５１を出力する。画面遷移編集ツール１１１では、一度、スクリプトデータ５１を作成すれば、そのスクリプトデータ５１を流用して、新たにスクリプトデータ５１を作成することができる。
【０１０２】
（コンテンツサービスの画面遷移について）
次に、図６を用いて、コンテンツサービスの画面遷移について詳細に説明する。図６は、コンテンツサービスの画面遷移の一例について示す図である。
【０１０３】
図６には、コンテンツサービスの開始地点ＰＳ、画面Ｐ１〜Ｐ６、それらのインデックス画面ＰＩ、およびコンテンツサービスの終了地点ＰＥの間における画面遷移が示されている。
【０１０４】
開始地点ＰＳは、コンテンツサービスが開始されるエントリポイントである。そして、画面Ｐ１〜Ｐ６において、各種の情報提示を行う。インデックス画面ＰＩは、例えば、画面Ｐ１〜Ｐ６を示すサムネイルをリスト表示することで、コンテンツサービスを受けるユーザに各画面の全体像を把握させる目的で設けられる画面である。また、終了地点ＰＥは、コンテンツサービスの終了を示している。
【０１０５】
また、画面Ｐ１〜Ｐ６には、それらの画面を識別するための画面識別情報“ＧＭＮ００１”〜“ＧＭＮ００６”が、それぞれ付されている。インデックス画面ＰＩの画面識別情報は、“ｉｎｄｅｘ”である。
【０１０６】
図６に示す各画面では、検知すべきリモコン操作について規定されている。そして、各画面では、検知したキー操作に応じて遷移すべき画面が矢印で示されている。
【０１０７】
図６に示すように、コンテンツサービスは、開始地点ＰＳから始まり、まず画面Ｐ１に遷移する。
【０１０８】
画面Ｐ１では、右方向キーＫＤ４のキー操作に応じて、画面Ｐ２に遷移する旨が規定されている。画面Ｐ２〜画面Ｐ５についても同様に、右方向キーＫＤ４のキー操作に応じて、次の画面Ｐ３〜画面Ｐ６に遷移する旨が規定されており、画面Ｐ６については、画面Ｐ１に遷移する旨が規定されている。
【０１０９】
画面Ｐ２〜画面Ｐ６において、左方向キーＫＤ３のキー操作に対しては、それぞれ画面Ｐ１〜画面Ｐ５に画面遷移するよう規定されている。画面Ｐ１では、左方向キーＫＤ３のキー操作に対し、画面Ｐ６に遷移する旨規定されている。
【０１１０】
また、画面Ｐ１〜画面Ｐ６において、決定キーＫＰ１および青機能キーＫＦ１に応じて、インデックス画面ＰＩに遷移する旨が規定されている。インデックス画面ＰＩでは、戻るキーＫＰ２および青機能キーＫＦ１に応じて、元の画面に遷移する旨が規定されている。
【０１１１】
そして、画面Ｐ１〜画面Ｐ６において、戻るキーＫＰ２に応じて、終了地点ＰＥに遷移する旨が規定されている。終了地点ＰＥに遷移すると、コンテンツサービスは終了となる。
【０１１２】
このような画面遷移が、スクリプトデータ５１において規定される。画面遷移編集ツール１１１は、このような画面遷移を実現するスクリプトデータ５１の記述を支援するためのツールである。図６が示すような画面遷移は、画面遷移表７０において定義される。
【０１１３】
（イベントコードについて）
次に、テレビＶ１のコンテンツビューアにおいて、画面遷移のためのキー操作がどのように扱われるかについて以下に、説明する。
【０１１４】
図６に示した画面遷移についてのキー操作は、テレビＶ１のコンテンツビューアの内部的では、イベントとして処理される。すなわち、リモコンＶ２におけるキー操作により、テレビＶ１のコンテンツビューアでは、各キーに対応するイベントが発生する。各イベントには、そのイベントを識別するためのイベントコードが割り当てられている。
【０１１５】
そして、発生したイベントのイベントコードを検知するための処理を、スクリプトデータ側で、記述しておく。すなわち、スクリプトデータに、そのイベントに対応するイベントコードを検知するコードを記述しておくことで、コンテンツビューアが、このコードに従って、キー操作を検知することができ、これにより画面遷移を実現している。しかしながら、これは飽くまで画面遷移を実現するための手法の一例であり、上記の手法とは別の周知技術、慣用技術等を適用することにより画面遷移を実現してもよい。
【０１１６】
ここで、再び図２を用いて、リモコンＶ２の各部について詳細に説明すると、以下のとおりである。
【０１１７】
数字キーＫＮ１〜ＫＮ１２には、それぞれ、「１」〜「１２」までの数字が割り当てられている。数字キーＫＮ１〜ＫＮ１２は、例えば、チャンネルの選択や、数字を入力する目的で用いられる。なお、ＫＮ１０については、「１０／０」が割り当てられており、場合に応じて、「１０」の意味と、「０」の意味とを使い分けることができる。
【０１１８】
方向キーＫＤ１〜ＫＤ４は、方向を選択するためのキーであり、それぞれ、「上」「下」「左」「右」が割り当てられている。方向キーＫＤ１〜ＫＤ４は、例えば、画面に表示されるカーソルの移動や、リストを選択する目的で用いられる。
【０１１９】
決定キーＫＰ１は、例えば、リストの中から選択した項目を決定したりする目的で用いられる。また、戻るキーＫＰ２は、入力した内容を取り消したり、前の画面に戻ったりする目的で用いられる。
【０１２０】
機能キーＫＣ１〜ＫＣ４には、それぞれ、固有の機能が割り当てられる。また、機能キーＫＣ１〜ＫＣ４は、それぞれ、「青」、「緑」、「赤」、「黄」の彩色がなされている。
【０１２１】
また、リモコンＶ２の各キーに割り当てられているイベントコードについて説明すると次のとおりである。
【０１２２】
数字キーＫＮ１〜ＫＮ９、ＫＮ１０、ＫＮ１１、およびＫＮ１２には、それぞれ、「１」〜「９」、「０」、「ｅ」、および「ｔ」のイベントコードが割り当てられている。
【０１２３】
方向キーＫＤ１〜ＫＤ４には、それぞれ、「ｗ」「ｚ」「ｄ」「ａ」のイベントコードが割り当てられている。
【０１２４】
決定キーＫＰ１には、イベントコード「ｋ」が割り当てられており、戻るキーＫＰ２には、イベントコード「ｘ」が割り当てられている。
【０１２５】
機能キーＫＣ１〜ＫＣ４には、それぞれ、「ｂ」、「ｇ」、「ｒ」、「ｙ」のイベントコードが割り当てられている。
【０１２６】
（画面遷移表のデータ構造）
次に、図８を用いて、画面遷移表７０のデータ構造の一例について説明する。図８は、画面遷移表のデータ構造の一例を示すテーブルである。図８に示す画面遷移表（変換規則、パラメータ指定情報）Ｔ１は、図６が示す画面遷移を定義するものである。
【０１２７】
第１列には、画面識別情報が定義される。すなわち、各行は、各画面についての画面遷移を規定している。例えば、第１行は、画面識別情報“ＧＭＮ００１”、すなわち画面Ｐ１についての画面遷移を規定している。
【０１２８】
第２列〜第１１列は、各キー操作に対応しており、各キー操作が検知された場合、いずれの画面に遷移すべきかを示す画面遷移情報が定義される。例えば、第２列および第３列では、決定キーＫＰ１および戻るキーＫＰ２について定義される。また、第４列〜第７列では、上下左右方向キーＫＤ１〜ＫＤ４について定義される。そして、第８列〜第１１列では、機能キーＫＦ１〜ＫＦ４について定義される。なお、第２列〜第１１列のタイトル項目においてかっこ書きで示す文字は、それぞれ各キー操作によって発生するイベントコードを示している。
【０１２９】
第１２列には、その画面遷移を実現するためのスクリプトデータを作成するために用いる雛形データの名称が定義される。
【０１３０】
そして、第１３列には、その画面において保持することのできる画面変数が定義される。
【０１３１】
画面遷移表Ｔ１の第１行目について説明する。第１行では、「決定」および「戻る」キーについて、“ｉｎｄｅｘ”および“ＥＮＤ”が定義されている。また、「右」および「左」方向キーについて、“ＧＭＮ００２”および“ＧＭＮ００６”が定義されている。そして、「青」機能キーについて“ｉｎｄｅｘ”が定義されている。また、スクリプトデータを作成するために用いる雛形データは、“ｔｅｍｐｌａｔｅ１．ｓｖｇ”であり、画面変数の変数名は、“ｃｕｒｒｅｎｔ”である。画面変数は、画面遷移先を決定するために用いられる変数である。すなわち、キーイベントが発生した際に、画面変数に格納されている値を参照し、その値を用いて画面を特定し、その画面に画面遷移する。
【０１３２】
つまり、第１行では、図７に示すような画面遷移が定義されていることになる。
【０１３３】
図７は、図６における画面Ｐ１の画面遷移について焦点を当てたものである。画面Ｐ１において、イベントコード「ｋ」および「ｂ」のイベントが発生した場合、画面ＰＩに画面遷移することを示している。また、画面Ｐ１において、イベントコード「ｄ」のイベントが発生した場合、画面Ｐ２に画面遷移することを示している。そして、イベントコード「ａ」のイベントが発生した場合は、画面Ｐ６に画面遷移し、イベントコード「ｘ」のイベントが発生した場合は、終了地点ＰＥに遷移することを示している。
【０１３４】
続いて、図９および図１０を用いて、このような画面遷移表の定義にもとづくスクリプトデータのコーディングについて説明する。本実施形態では、スクリプトデータにおいて、画面遷移は、イベント検知記述と、イベント対応記述との２種に分けてコーディングされる。
【０１３５】
図９は、画面遷移編集ツール１１１が作成するイベント検知記述の一例について示す図である。また、同図は、画面Ｐ１（画面識別情報“ＧＭＮ００１”）について定義するイベント検知記述の例である。
【０１３６】
図９に示す“ＫｅｙＥｖｅｎｔ（）”関数は、リモコンＶ２の操作により発生するイベントのうち、いずれのイベントをその画面で検知すべきかを規定するものである。
【０１３７】
ブロックＬ１１〜Ｌ１５のそれぞれにおいて記述されている、“（ｅｖｔＤａｔａ  ＝＝  ’○○’）”のコードは、イベントコードの検知に用いられるものである。すなわち、ブロックＬ１１〜Ｌ１５では、それぞれ「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」をそれぞれ検知することを示している。
【０１３８】
また、検知されたイベントに対応する画面遷移は、図１０に示すようなイベント対応記述に記述される。図１０は、画面Ｐ１（画面識別情報“ＧＭＮ００１”）について定義するイベント対応記述の一例について示す図である。
【０１３９】
図１０が示すとおり、イベント対応記述Ｅ１は、ＸＭＬ（eXtensible Markup Language）により記述される。同図に示す５つの「nextstep」タグでは、イベントと、画面遷移との対応関係が定義される。「nextstep」タグには、イベントコードを示す「ｗｈｅｎ」属性と、遷移すべき画面の画面識別情報を示す「ｈｒｅｆ」属性とを含む。
【０１４０】
図１０に示す、５つの「nextstep」タグでは、それぞれ、「ｗｈｅｎ」属性において、「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」が規定されており、「ｈｒｅｆ」属性において、“ｉｎｄｅｘ”“ＧＭＮ００２”“ＧＭＮ００６”“ｉｎｄｅｘ”“ＧＭＮ００２”が規定されている。すなわち、５つの「nextstep」タグでは、それぞれ、「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」のイベントコードに対して、“ｉｎｄｅｘ”“ＧＭＮ００２”“ＧＭＮ００６”“ｉｎｄｅｘ”“ＧＭＮ００２”の画面に画面遷移する旨が規定されている。
【０１４１】
なお、画面遷移編集ツール１１１は、画面遷移表Ｔ１を編集する機能を有していてもよい。また、画面遷移編集ツール１１１は、画面遷移表Ｔ１を編集・更新するためのユーザインターフェースを提供してもよい。
【０１４２】
例えば、画面遷移編集ツール１１１が、画面遷移表Ｔ１を、表計算ソフトにおいて採用されているような表形式のユーザインターフェースによりディスプレイ等に提示して、ユーザの編集を受け付けてもよい。この場合、ユーザは、画面遷移表Ｔ１を編集するための値を各セルに入力することで画面遷移表Ｔ１を更新することができる。
【０１４３】
また、以下の説明では、説明の便宜上、主として、イベント検知記述の作成に関する技術的手法について焦点を当てて説明していくが、以下で説明する技術的手法をイベント対応記述の開発にも適宜適用することが可能であることが当業者であれば理解可能なはずである。すなわち、画面遷移編集ツール１１１の機能は、イベント検知記述およびイベント対応記述を作成することにあるが、以下では、イベント検知記述について特に詳細に説明を行う。
【０１４４】
しかしながら、画面遷移編集ツール１１１の機能は、イベント検知記述の作成に限定されるわけでなく、画面遷移編集ツール１１１に関する技術的内容は、限定的でなく、広く理解されなければならない。例えば、画面遷移編集ツール１１１に関する技術的内容は、プログラムのソースコード開発等に広く適用可能であることが、当業者であれば理解できるはずである。
【０１４５】
以下の説明では、特に記載しない限り、「スクリプトデータ」の語句を、イベント検知記述のことを指すものとして用いる。
【０１４６】
（開発装置および画面遷移編集ツールの構成について）
次に、図１を用いて、本実施形態に係る画面遷移編集ツール（コード生成プログラム）１１１を動作させるための開発装置（コード生成装置）１００、および、画面遷移編集ツール１１１の構成について説明する。図１は、本実施形態に係る画面遷移編集ツール１１１を動作させるための開発装置１００の概略的構成について示したブロック図である。
【０１４７】
開発装置１００は、例えば、ＰＣ（Personal Computer）や、ワークステーション端末等により実現することができる。また、図１に示すとおり、開発装置１００は、操作部１０１、表示部１０２、制御部１１０、および記憶部１５０を備える。
【０１４８】
操作部１０１は、開発者から各種の入力を受け付けるものであり、典型的には、入力用ボタン、キーボード、テンキー、マウスなどのポインティングデバイス、タッチパネル、その他の入力デバイスによって構成される。受け付けた開発者の操作に応じて操作データを生成し、生成した操作データを制御部１１０に送信する。
【０１４９】
表示部１０２は、開発者に対して、情報提供を行うための画面表示を行うものである。表示部１０２は、制御部１１０から受信した画面データに基づいて、表示画面に文字や画像などの各種の情報を表示する。表示部１０２は、例えば、ＬＣＤ（Liquid Crystal Display）、ＰＤＰ（Plasma Display Panel）、ＥＬ（Electroluminescence）ディスプレイなどの表示デバイスによって構成される。
【０１５０】
制御部１１０は、開発装置１００における各種機能を統括的に制御するものである。制御部１１０の制御機能は、制御プログラムをＣＰＵ（Central Processing Unit）などの処理装置が実行することによって実現される。この制御プログラムは、例えば、ＲＡＭ（Random Access Memory）やフラッシュメモリなどの記憶素子としての記憶部１５０に記憶されていてもよいし、ハードディスク等の記憶装置としての記憶部１５０にインストールされたものを読み込んで使用する形態であってもよい。
【０１５１】
また、制御部１１０では、上記制御プログラムと同様の形態で、画面遷移編集ツール１１１が実行される。画面遷移編集ツール１１１の詳細については後述する。
【０１５２】
記憶部１５０は、各種データおよびプログラムを記憶するものである。記憶部１５０の構成としては、例えば、ハードディスク等の不揮発性の記憶装置と、書換え可能な不揮発性の半導体メモリ（例えばフラッシュメモリ）と、制御部１１０が動作するときに必要なプログラムや、各種制御に用いる固定データを記憶する読出し専用の半導体メモリであるＲＯＭ（Read Only Memory）と、通信に関するデータ、演算に使用するデータ、および演算結果などを一時的に記憶する、いわゆるワーキングメモリとしてのＲＡＭとが挙げられる。
【０１５３】
（記憶部の詳細）
次に、記憶部１５０の詳細について説明する。記憶部１５０は、プログラム記憶部１５１、雛形データ記憶部１５２、画面遷移表記憶部１５３、パターンデータ記憶部１５４、およびスクリプトデータ記憶部１５５を備える。
【０１５４】
プログラム記憶部１５１には、開発環境を実現するプログラムコードが記憶される。つまり、プログラム記憶部１５１には、開発環境に含まれる画面遷移編集ツール１１１を実現するためのプログラムコードが記憶されている。
【０１５５】
このプログラムコードは、取り外し可能な記録媒体によって開発装置１００に供給されてもよいし、ネットワークを介して供給されてもよい。
【０１５６】
なお、画面遷移編集ツール１１１は、開発装置１００に準ずる他の装置において実行することが可能であり、例えば、デスクトップＰＣ、ノート型ＰＣ、ＰＤＡ（Personal Digital Assistant）等の形態を問わず実行可能である。
【０１５７】
雛形データ記憶部１５２には、画面遷移編集ツール１１１がスクリプトデータ（展開コード）を作成するために用いる雛形データが記憶される。
【０１５８】
ここで、図１１を用いて、雛形データの詳細について説明すると次のとおりである。図１１は、雛形データの一例を示す図である。
【０１５９】
図１１が示す雛形データＨ１は、リモコンＶ２の操作によるイベントのイベントコードを検出するためのスクリプトデータを作成するためのものである。また、同図が示す雛形データの名称は、“ｔｅｍｐｌａｔｅ１．ｓｖｇ”である。
【０１６０】
雛形データＨ１では、“ＫｅｙＥｖｅｎｔ（）”関数の一部が記述されている。雛形データＨ１のＫｅｙＥｖｅｎｔ関数には、“＜％＝ｋｅｙ＿ｅｖｅｎｔ％＞”というコードで示される挿入位置指定情報Ｍ１が含まれる。挿入位置指定情報Ｍ１は、画面遷移表を用いて生成する部分コードを挿入する位置を、画面遷移編集ツール１１１に指定するためのものである。
【０１６１】
画面遷移表記憶部１５３には、図８を用いて説明した、画面遷移表が記憶される。
【０１６２】
パターンデータ記憶部１５４には、画面遷移編集ツール１１１が雛形データに挿入するための部分コードを生成するためのパターンデータが記憶される。
【０１６３】
ここで、図１２を用いて、パターンデータについて説明すると次のとおりである。図１２は、スクリプトデータの作成に用いられるパターンデータの一例を示す図である。
【０１６４】
図１２に示すパターンデータＨ２は、ＫｅｙＥｖｅｎｔ関数の断片的な一部である。パターンデータＨ２に含まれる“（ｅｖｔＤａｔａ  ＝＝  ’％ｓ’）”のコードは、イベントコードの判定に用いられるものである。同図に示す、変換指定子Ｍ２（“％ｓ”）は、画面遷移編集ツール１１１にパラメータ変換を行うべきことを通知するためのキーワードである。
【０１６５】
パラメータ変換の一例としては、スクリプトデータの作成処理において、変換指定子Ｍ２の“％ｓ”を、画面遷移表に定義されているイベントコードに置き換えることが挙げられる。
【０１６６】
より具体的には、イベントコード「ｋ」が画面遷移表から抽出されている場合、画面遷移編集ツール１１１は、“％ｓ”を、“ｋ”に置き換えて、結果コード“（ｅｖｔＤａｔａ  ＝＝    ’ｋ’）”を出力する。画面遷移編集ツール１１１が、パターンデータＨ２を処理する動作詳細については後述する。
【０１６７】
なお、本実施形態では、画面遷移編集ツール１１１によるスクリプトデータの作成処理において、上述のようなパターンデータを用いることとしているが、これに限られず、パターンデータを用いない構成とすることも可能である。例えば、雛形データＨ２の挿入位置指定情報Ｍ１が示す位置において、単に、画面遷移編集ツール１１１が、画面遷移表から抽出したパラメータを挿入するだけの構成とすることも可能である。
【０１６８】
スクリプトデータ記憶部１５５には、画面遷移編集ツール１１１によって作成されたスクリプトデータが記憶される。
【０１６９】
（画面遷移編集ツールの詳細）
次に、画面遷移編集ツール１１１の詳細について説明する。画面遷移編集ツール１１１は、プログラム記憶部１５１に記憶されている画面遷移編集ツール実行プログラムが、動作可能なように制御部１１０にロードされたものである。
【０１７０】
画面遷移編集ツール１１１は、画面遷移表更新部１２１、雛形データ挿入位置検知部１２２、雛形データ部分コード生成部（部分コード生成手段）１２３、雛形データ部分コード挿入部（挿入手段）１２４、特定情報付与部（付与手段）１２５、雛形データ特定部１３１、スクリプトデータ挿入位置検知部（挿入位置特定情報検出手段）１３２、画面遷移表生成部（パラメータ指定情報生成手段）１３３、スクリプトデータ部分コード生成部（部分コード生成手段）１３４、およびスクリプトデータ部分コード挿入部（置換手段）１３５を備える。
【０１７１】
画面遷移表更新部１２１は、操作部１０１において受け付けた開発者の操作に応じて、画面遷移表記憶部１５３に記憶されている画面遷移表を更新する。画面遷移表更新部１２１は、画面遷移表における行の追加、削除、および、各列に定義されている内容の追加、変更、削除等の機能を提供する。また、画面遷移表更新部１２１は、新規に画面遷移表を作成することもできる。
【０１７２】
雛形データ挿入位置検知部１２２は、雛形データに含まれる挿入位置指定情報を検知する。具体的には、雛形データ挿入位置検知部１２２は、画面遷移表記憶部１５３から画面遷移表を読み出して、読み出した画面遷移表に定義された雛形データを、雛形データ記憶部１５２から読み出す。雛形データ挿入位置検知部１２２は、画面遷移表に雛形データが定義されていない場合は、デフォルトの雛形データを用いるようにしてもよい。
【０１７３】
そして、雛形データ挿入位置検知部１２２は、雛形データを構文解析および字句解析することにより、部分コードを挿入する位置を示す挿入位置指定情報の位置を検知する。ここで、再び図１１を参照し、同図に示す雛形データＨ１について説明すると、雛形データ挿入位置検知部１２２は、挿入位置指定情報Ｍ１が示す “＜％＝ｋｅｙ＿ｅｖｅｎｔ％＞”というコードの位置を検知する。
【０１７４】
また、雛形データ挿入位置検知部１２２は、雛形データ部分コード生成部１２３に検知した挿入位置指定情報を転送するとともに、雛形データ部分コード挿入部１２４に、雛形データと、検知した挿入位置指定情報の位置情報とを転送する。
【０１７５】
雛形データ部分コード生成部１２３は、画面遷移表を参照して、パターンデータを展開することで部分コードを生成する。
【０１７６】
具体的には、雛形データ部分コード生成部１２３は、まず、雛形データ挿入位置検知部１２２から挿入位置指定情報を取得して、取得した挿入位置指定情報に対応するパターンデータをパターンデータ記憶部１５４から読み出す。挿入位置指定情報と、パターンデータとの対応関係は、記憶部１５０に記憶しておけばよい。例えば、図１１を用いて示した挿入位置指定情報Ｍ１と、図１２を用いて示したパターンデータＨ２との対応関係が記憶部１５０に記憶されていてよい。雛形データ部分コード生成部１２３は、この対応関係から、部分コードの生成に必要なパターンデータを特定する。なお、パターンデータは、雛形データと対応付けられていてもよい。
【０１７７】
そして、雛形データ部分コード生成部１２３は、画面遷移表記憶部１５３の画面遷移表を参照して、画面遷移が定義されているイベントコードに基づいて、パターンデータを展開することでスクリプトデータの一部である部分コードを生成する。
【０１７８】
例えば、図８を用いて示した例に則して説明すると次のとおりである。図８に示す画面遷移表Ｔ１における第１行に定義された画面遷移情報では、イベントコード「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」について画面遷移が定義されている。この場合、雛形データ部分コード生成部１２３は、これら５つのイベントコードそれぞれについてパターンデータＨ２内の変換指定子Ｍ２の変換を繰り返し行って、パターンデータＨ２を展開する。本実施形態において、パターンデータを展開するとは、繰り返しパターンデータの変換を行って得られたコードのそれぞれを順にマージすることを指している。
【０１７９】
ここで、図１３を用いて、図８に示す画面遷移表における第１行の定義に基づいて、展開されたパターンデータＨ２について説明すると次のとおりである。図１３は、雛形データを展開して作成したスクリプトデータの一例を示す図である。雛形データ部分コード生成部１２３は、図８に示す画面遷移表における第１行の定義に基づいて、パターンデータＨ２を展開して、図１３に示す部分コードＤ１を生成する。ここで、部分コードＤ１に含まれるブロックＬ１１〜Ｌ１５は、それぞれ、「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」について、雛形データ部分コード生成部１２３がパターンデータＨ２内の変換指定子Ｍ２の変換を行うことで得られたものである。
【０１８０】
なお、雛形データ部分コード生成部１２３は、画面遷移表において列番号が小さい列に定義されているイベントコードから順に、パターンデータＨ２の展開を行ってもよい。つまり、雛形データ部分コード生成部１２３は、画面遷移表の第２列から、第１１列にかけて、順にパターンデータＨ２の展開を行ってもよい。なお、本実施形態では、第２列、第３列、第６列〜第８列の順、すなわち、「ｋ」、「ｘ」、「ｄ」、「ａ」、「ｂ」の順にパターンデータＨ２の展開を行っている。
【０１８１】
また、雛形データ部分コード生成部１２３は、生成した部分コードを雛形データ部分コード挿入部１２４に出力する。
【０１８２】
雛形データ部分コード挿入部１２４は、部分コードを、雛形データの所定位置に挿入することでスクリプトデータを作成する。具体的には、雛形データ部分コード挿入部１２４は、まず、雛形データ部分コード生成部１２３が出力した部分コードを取得する。そして、雛形データ挿入位置検知部１２２から雛形データと、挿入位置指定情報の位置情報とを取得する。それから、雛形データにおける挿入位置指定情報の位置に、部分コードを挿入することでスクリプトデータを作成する。
【０１８３】
また、雛形データ部分コード挿入部１２４は、雛形データの名称と、挿入位置指定情報の位置情報と、作成したスクリプトデータとを特定情報付与部１２５に転送する。
【０１８４】
特定情報付与部１２５は、雛形データ部分コード挿入部１２４が作成したスクリプトデータに雛形データ識別情報（雛形コード識別情報）と、挿入位置特定情報とを付与する。
【０１８５】
雛形データ識別情報とは、画面遷移編集ツール１１１において、スクリプトデータの作成に用いられた雛形データを特定するための情報であり、例えば、雛形データの名称を用いることができる。また、挿入位置特定情報とは、雛形データ部分コード挿入部１２４が、雛形データにおいて、部分コードを挿入した位置を特定するための情報である。特定情報付与部１２５は、雛形データの名称を雛形データ識別情報として、スクリプトデータに付与する。また、特定情報付与部１２５は、挿入位置指定情報の位置情報が示す位置に、挿入位置特定情報を付与する。
【０１８６】
ここで、再び図９を参照して、特定情報付与部１２５が付与する雛形データ識別情報および挿入位置特定情報の例について説明すると次のとおりである。
【０１８７】
図９に示すとおり、スクリプトデータにおいて、“／＊  ｔｅｍｐｌａｔｅ１．ｓｖｇ  ＊／”という雛形データ識別情報ＩＤ１が特定情報付与部１２５によって付与されている。雛形データ識別情報ＩＤ１は、ＫｅｙＥｖｅｎｔ関数の記述が始まる前の行に付与されているが、付与する場所に特に制限はない。
【０１８８】
また、図９に示すとおり、スクリプトデータにおいて、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂである“／＊  ＜％＝ｋｅｙ＿ｅｖｅｎｔ％＞  ＊／”というコードが特定情報付与部１２５によって付与されている。
【０１８９】
挿入位置特定情報ＩＤ２Ａは、部分コードＤ１が挿入される前の行に付与されており、部分コードＤ１の挿入開始位置を示す。挿入位置特定情報ＩＤ２Ｂは、部分コードＤ１が挿入された後の行に付与されており、部分コードＤ１のブロックの終了位置を示す。
【０１９０】
このように、挿入位置特定情報ＩＤ２ＡとＩＤ２Ｂの対により、部分コードＤ１の開始位置と、終了位置とを特定できるようになっているが、この例に限定されず、挿入位置特定情報は、部分コードＤ１の開始位置と、終了位置とを特定できるような情報であればよい。例えば、挿入位置特定情報として、部分コードが、スクリプトデータ中の何行目、何列目から開始され、何行目、何列目で終わることを示す情報を採用してもよい。
【０１９１】
また、この例では、雛形データ識別情報ＩＤ１、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂは、“／＊”から始まって“＊／”で終わるコードとして付与されているが、この領域は、コンテンツビューアが、スクリプトデータに記述されたコードを実行する際には、実行コードとして処理されない。すなわち、雛形データ識別情報ＩＤ１、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂは、スクリプトデータ上のコメント領域に付与されている。
【０１９２】
特定情報付与部１２５は、雛形データ識別情報と、挿入位置特定情報とを付与したスクリプトデータをスクリプトデータ記憶部１５５に記憶する。
【０１９３】
雛形データ特定部１３１は、スクリプトデータに付与されている雛形データ識別情報を検出して、検出した雛形データ識別情報からそのスクリプトデータを作成するのに用いられた雛形データを特定する。すなわち、図９の例でいえば、雛形データ識別情報ＩＤ１を検出し、検出した雛形データ識別情報から、スクリプトデータの作成に用いられた雛形データの名称“ｔｅｍｐｌａｔｅ1．ｓｖｇ”を特定する。
【０１９４】
また、雛形データ特定部１３１は、特定した雛形データの名称を、画面遷移表生成部１３３に通知する。
【０１９５】
スクリプトデータ挿入位置検知部１３２は、スクリプトデータに含まれる挿入位置特定情報を検知する。具体的には、スクリプトデータ挿入位置検知部１３２は、スクリプトデータ記憶部１５５から、流用するスクリプトデータを読み出し、読み出したスクリプトデータを構文解析および字句解析することにより、部分コードが挿入された位置を示す挿入位置特定情報の位置を検知する。すなわち、図９に例示したスクリプトデータＹ１を流用するのであれば、スクリプトデータ挿入位置検知部１３２は、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂの位置を検知する。
【０１９６】
スクリプトデータ挿入位置検知部１３２は、画面遷移表生成部１３３、スクリプトデータ部分コード挿入部１３５に、検知した挿入位置特定情報の位置情報を転送する。また、スクリプトデータ挿入位置検知部１３２は、スクリプトデータ部分コード生成部１３４に検知した挿入位置特定情報を転送する。
【０１９７】
画面遷移表生成部１３３は、スクリプトデータに含まれるイベント対応記述を解析して、解析した結果に基づいて、画面遷移表を生成するものである。
【０１９８】
画面遷移表生成部１３３の具体的な動作について説明すると次のとおりである。まず、画面遷移表生成部１３３は、流用するスクリプトデータのイベント対応記述をスクリプトデータ記憶部１５５から読み出す。
【０１９９】
続いて、画面遷移表生成部１３３は、画面遷移の定義を得るために次の処理を行う。
【０２００】
まず、画面遷移表生成部１３３は、読み出したイベント対応記述の「nextstep」タグを解析して、イベントコードと、画面識別情報との組を抽出する。
【０２０１】
そして、画面遷移表生成部１３３は、抽出したイベントコードおよび画面識別情報の組を用いて、画面遷移表を生成する。
【０２０２】
図１０を用いて、より具体的に示すと、画面遷移表生成部１３３は、イベント対応記述Ｅ１に含まれる５つの「nextstep」タグの「ｗｈｅｎ」属性および「ｈｒｅｆ」属性の属性値を解析する。これにより、例えば、画面遷移表生成部１３３は、１つめの「nextstep」タグからは、イベントコード「ｋ」および画面識別情報“ｉｎｄｅｘ”の組を抽出する。残り４つの「nextstep」タグについても同様である。
【０２０３】
画面遷移表生成部１３３は、このようにして抽出したイベントコードおよび画面識別情報を、図８に示したような画面遷移表の第２列〜第１１列の対応する列に当てはめる。
【０２０４】
ここで、図８に示したイベント対応記述Ｅ１は、画面識別情報“ＧＭＮ００１”のものであるから、画面遷移表生成部１３３は、画面遷移表の第１列に“ＧＭＮ００１”を設定する。そして、１つめの「nextstep」タグからイベントコード「ｋ」について、画面識別情報“ｉｎｄｅｘ”を得ているので、画面遷移表生成部１３３は、画面遷移表の第２に“ｉｎｄｅｘ”を設定する。画面遷移表生成部１３３が、以下、残り４つの「nextstep」タグについても同様にして、画面遷移表の設定を完了すると、図８に示した画面遷移表Ｔ１の第１行における第１列〜第１１列までを再現することができる。
【０２０５】
このようにして、画面遷移表生成部１３３は、画面遷移表を生成する。なお、画面遷移表生成部１３３は、イベント検知記述をスクリプトデータ記憶部１５５から読み出して、第１２列の雛形データ識別情報を得てもよい。つまり、イベント検知記述には、雛形データ識別情報が含まれるため、画面遷移表生成部１３３は、雛形データ識別情報より雛形データの名称を特定することができる。これにより、画面遷移表Ｔ１の第１２列の設定値を再現することもできる。
【０２０６】
また、画面遷移表生成部１３３は、生成した画面遷移表を画面遷移表記憶部１５３に記憶する。
【０２０７】
ところで、スクリプトデータを仕様変更するときは、画面遷移表生成部が生成した画面遷移表を更新して行うこともできるし、スクリプトデータを作成した元の画面遷移表を更新して行うこともできる。
【０２０８】
本実施形態のように、画面遷移表生成部が生成した画面遷移表を更新して行う場合、画面遷移表生成部１３３が、このようにして画面遷移表を生成するので、スクリプトデータを再作成のために画面遷移表を画面遷移表記憶部１５３に記憶しておかなくてもよい。このため、開発者が元の画面遷移表を準備する必要がなくなり、スクリプトデータの仕様変更のための再編集が容易になる。
【０２０９】
なお、画面遷移表生成部１３３が画面遷移表を生成する処理は、任意に行うことができ、省略してもかまわない。例えば、開発者が、使用変更後の画面遷移表の定義を作成する場合は、当該処理を省略できる。
【０２１０】
スクリプトデータ部分コード生成部１３４は、画面遷移表を参照して、パターンデータを展開することで部分コードを生成する。
【０２１１】
スクリプトデータ部分コード生成部１３４は、まず、スクリプトデータ挿入位置検知部１３２から挿入位置特定情報を取得して、取得した挿入位置特定情報に対応するパターンデータをパターンデータ記憶部１５４から読み出す。そして、読み出したパターンデータを画面遷移表に画面遷移が定義されているイベントコードに基づいて展開する。
【０２１２】
なお、挿入位置特定情報に関するパターンデータの対応付けについては、挿入位置指定情報について説明したものと同様であるし、部分コードの生成方法についても、雛形データ部分コード生成部１２３において説明したものと同様である。
【０２１３】
また、スクリプトデータ部分コード生成部１３４は、生成した部分コードをスクリプトデータ部分コード挿入部１３５に出力する。
【０２１４】
スクリプトデータ部分コード挿入部１３５は、流用するスクリプトデータのうち、部分コードが挿入されたブロックを、スクリプトデータ部分コード生成部１３４が生成した部分コードに置き換えることでスクリプトデータを再作成する。
【０２１５】
スクリプトデータ部分コード挿入部１３５は、スクリプトデータのうち、部分コードが挿入されたブロックを特定するために、スクリプトデータ挿入位置検知部１３２から転送される挿入位置特定情報を用いる。
【０２１６】
なお、スクリプトデータ部分コード挿入部１３５は、スクリプトデータを再作成する際、流用するスクリプトデータをスクリプトデータ記憶部１５５にコピーしておいてもよい。
【０２１７】
また、スクリプトデータ部分コード挿入部１３５は、再作成したスクリプトデータをスクリプトデータ記憶部１５５に記憶する。
【０２１８】
また、本実施形態では、スクリプトデータ部分コード挿入部１３５は、スクリプトデータに含まれる挿入位置特定情報を維持したまま、部分コードが挿入されたブロックを、スクリプトデータ部分コード生成部１３４が生成した部分コードに置き換える。
【０２１９】
しかしながら、これに限られず、スクリプトデータ部分コード挿入部１３５は、部分コードが挿入されたブロックとともに、挿入位置特定情報も、スクリプトデータ部分コード生成部１３４が生成した部分コードに置き換えてもよい。あるいは、スクリプトデータ部分コード挿入部１３５によって、雛形データ識別情報と、挿入位置特定情報とは、取り除かれてもよい。
【０２２０】
この場合、スクリプトデータ部分コード挿入部１３５は、再作成したスクリプトデータに特定情報付与部１２５に転送し、再作成したスクリプトデータに雛形データ識別情報と、挿入位置特定情報とを付与するよう特定情報付与部１２５に対して指示してもよい。
【０２２１】
このように、再作成されたスクリプトデータは、雛形データ識別情報と、挿入位置特定情報とを含む。よって、再作成されたスクリプトデータをもとに、スクリプトデータを再々作成する場合においても、雛形データ識別情報および挿入位置特定情報を用いることが可能である。
【０２２２】
（画面遷移記述の編集処理およびスクリプトデータの再作成処理の具体例）
次に画面遷移記述の編集処理について具体例を挙げて説明する。すなわち、特定の画面遷移を実現するスクリプトデータを作成したあと、さらに画面遷移の仕様を変更する場合について説明する。
【０２２３】
ここでは、一例として、図１４を用いて、図７に示す画面Ｐ１についての画面遷移に、画面Ｐ３への画面遷移を追加する場合について以下に示す。
【０２２４】
図１４に示す画面遷移は、図７に示す画面遷移に、画面Ｐ３への画面遷移を追加したものになっている。また、ここでは、画面Ｐ３への画面遷移は、緑機能キーＫＦ２のイベントコード「ｇ」に対応して起こることとしている。
【０２２５】
図１４に示すような画面遷移に仕様を変更する場合、画面遷移表において、図１５に示すような定義を行う。図１５は、画面遷移表の一部を示すテーブルである。図１５に示す画面遷移表Ｔ２は、仕様変更のために、図８に示す画面遷移表Ｔ１の一部が更新されたものである。
【０２２６】
図１５に示す画面遷移表Ｔ２は、ちょうど、図８に示す画面遷移表Ｔ１の第１行目、第１０列において、画面Ｐ３の画面識別情報“ＧＭＮ００３”を定義したものとなっている。この行において、それ以外の定義については図８に示す画面遷移表Ｔ１の第１行目の定義と同様である。なお、同図に示す画面遷移表Ｔ２では、これ以外の行は、説明の便宜上、省略されている。
【０２２７】
なお、画面遷移表に対して、このような定義を追加する更新処理は、画面遷移表更新部１２１によって行うことができる。
【０２２８】
続いて、図９、図１６および図１７を用いて、スクリプトデータの再作成について説明すれば次のとおりである。なお、図１６は、更新後の画面遷移表に基づいて再作成した部分データを示す図であり、図１７は、更新後の画面遷移表に基づいて再作成したスクリプトデータを示す図である。
【０２２９】
まず、スクリプトデータ挿入位置検知部１３２が、スクリプトデータＹ１を読み込み、読み込んだスクリプトデータＹ１に含まれる挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂを検知する。
【０２３０】
ここで、スクリプトデータの再作成は、図１５を用いて示した更新後の画面遷移表Ｔ２に基づいて行われる。すなわち、雛形データ部分コード生成部１２３が、更新後の画面遷移表Ｔ２に基づいて、パターンデータを展開することで、図１６に示す部分コードＤ２を生成する。
【０２３１】
部分コードＤ２では、図１３を用いて示した部分コードＤ１とくらべて、イベントコード「ｇ」を検知するためのブロックＬ２６が追加されている。それ以外のブロックＬ２１〜Ｌ２５は、部分コードＤ１のブロックＬ１１〜Ｌ１５と同様である。
【０２３２】
そして、スクリプトデータ部分コード挿入部１３５は、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂの間にある部分コードＤ１を、部分コードＤ２に置き換える。
【０２３３】
このようにして得られたスクリプトデータが図１７に示すスクリプトデータＹ２である。
【０２３４】
スクリプトデータＹ２に含まれる部分コードＤ２のブロックＬ２１〜Ｌ２５は、図９を用いて示した部分コードＤ１のブロックＬ１１〜Ｌ１５と同様のものであるが、部分コードＤ２は、さらにブロックＬ２６が新たに追加されている点で、部分コードＤ１とは異なる。
【０２３５】
すなわち、スクリプトデータＹ２では、更新された画面遷移表Ｔ１において定義されているイベントコード「ｇ」を検知するためのブロックＬ２６が追加されている。
【０２３６】
（雛形データを用いてスクリプトデータを作成する処理の流れ）
次に、図１８を用いて、本実施形態に係る画面遷移編集ツール１１１が雛形データを用いてスクリプトデータを作成する場合の処理の流れについて説明する。図１８は、画面遷移編集ツール１１１が、雛形データを用いてスクリプトデータを作成する場合の処理の流れを示すフローチャートである。
【０２３７】
まず、雛形データ挿入位置検知部１２２が、画面遷移表記憶部１５３に記憶されている画面遷移表を参照して、画面遷移表において指定されている雛形データを、雛形データ記憶部１５２から読み出すとともに、読み出した雛形データにおいて部分コードを挿入する位置を検知する（Ｓ１０１）。
【０２３８】
そして、雛形データ部分コード生成部１２３が、画面遷移表の定義に基づいて、スクリプトデータの部分コードを生成する（Ｓ１０２）。
【０２３９】
続いて、雛形データ部分コード挿入部１２４が、Ｓ１０２において、生成された部分コードを、雛形データにおける部分コードを挿入位置指定情報により特定される挿入位置に挿入する（Ｓ１０３）。
【０２４０】
それから、特定情報付与部１２５が、雛形データに部分コードを挿入することで得られたスクリプトデータに、使用した雛形データの雛形データ識別情報と、挿入位置特定情報を付与して（Ｓ１０４）、処理は終了する。
【０２４１】
（作成されたスクリプトデータを用いてスクリプトデータを再作成する処理の流れ）
次に、図１９を用いて、画面遷移編集ツール１１１が作成されたスクリプトデータを用いてスクリプトデータを再作成する場合の処理の流れについて説明する。図１９は、画面遷移編集ツール１１１が、スクリプトデータを流用してスクリプトデータを再作成する場合の処理の流れを示すフローチャートである。処理の前提として、更新後の画面遷移表が準備されているものとする。例えば、画面遷移表生成部１３３が生成した、画面遷移表を、画面遷移表更新部１２１が更新して、更新後の画面遷移表が準備されている場合などが想定される。
【０２４２】
処理を開始すると、まず、スクリプトデータ挿入位置検知部１３２が、流用するスクリプトデータに含まれる挿入位置指定情報を検知して、スクリプトデータ内の部分コードとして挿入されたブロックを特定する（Ｓ２０１）。
【０２４３】
そして、スクリプトデータ部分コード生成部１３４が、準備されている更新後の画面遷移表の定義に基づいて、スクリプトデータの部分コードを生成する（Ｓ２０２）。
【０２４４】
それから、スクリプトデータ部分コード挿入部１３５が、流用するスクリプトデータにおいて、部分コードとして挿入されているブロックを、生成した部分コードに置き換えることでスクリプトデータを再作成し（Ｓ２０３）、処理は終了する。
【０２４５】
（作用・効果）
以上のように、本実施形態に係る画面遷移編集ツール１１１は、雛形コードに部分コードを挿入してスクリプトデータを生成する画面遷移編集ツール１１１であって、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、スクリプトデータを生成する雛形データ部分コード挿入部１２４、および、雛形データ部分コード挿入部１２４が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、スクリプトデータに付与する特定情報付与部１２５、として機能させるプログラムである。
【０２４６】
上記構成によれば、部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、部分コードを挿入して、スクリプトデータを生成するとともに、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記スクリプトデータに付与することができる。
【０２４７】
これにより、スクリプトデータを生成した後にも、付与された挿入位置特定情報によって、上記雛形コードに上記部分コードを挿入した位置を特定することができる。
【０２４８】
この結果、スクリプトデータを生成した後、スクリプトデータについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
【０２４９】
〔実施形態２〕
本発明の他の実施形態について図２０〜図３３に基づいて説明すると、以下の通りである。本実施形態では、画面遷移編集ツール１１１によって作成されたスクリプトデータが、外部のツールで編集されている場合、スクリプトデータの再作成において、外部のツールで編集された箇所を反映する手法について説明する。
【０２５０】
（画面遷移編集ツールの構成について）
まず、本実施形態に係る画面遷移編集ツール１１１の構成について説明する。図２０は、本実施形態に係る画面遷移編集ツール１１１を動作させるための開発装置１００の概略的構成について示したブロック図である。なお、説明の便宜上、実施形態１にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０２５１】
図２０に示す画面遷移編集ツール１１１では、図１を用いて説明したものと比べて、部分コード比較部（差分検出手段）１４１、部分コード修正部（反映手段）１４２が追加されている。また、記憶部１５０では、画面遷移表記憶部１５３に替えて、画面遷移表履歴記憶部１６１が設けられている。また、画面遷移表生成部１３３は取り除かれている。それ以外の構成については図１のものと同様であるので、その説明を省略する。
【０２５２】
（追加・変更された部材について）
画面遷移表履歴記憶部１６１は、画面遷移編集ツール１１１におけるスクリプトデータ作成、および、再作成処理において用いられる画面遷移表を世代毎に記憶しておくものである。画面遷移表履歴記憶部１６１に記憶させておくことができる画面遷移表の世代数には、特に制限はないが、本実施形態では、説明の便宜上、２世代の画面遷移表を記憶させておくものとする。
【０２５３】
例えば、画面遷移表履歴記憶部１６１には、画面遷移表を更新してスクリプトデータを再作成する場合において、一つまえの前回画面遷移表と、スクリプトデータの再作成に用いるための、更新された今回画面遷移表とを記憶させておくことができる。
【０２５４】
なお、スクリプトデータを新規に作成する場合は、今回画面遷移表を用いることとする。また、本実施形態で用いる画面遷移表は、前の実施形態のものと同様とする。また、本実施形態では、説明の便宜上、画面遷移表の定義について説明する場合は、どのイベントコードが定義されているかを示すのみとし、そのほかの定義については、その説明を省略する。
【０２５５】
部分コード比較部１４１は、画面遷移編集ツール１１１によって作成されたスクリプトデータの元の部分コードと、画面遷移表生成部１３３から転送された部分コードとを比較する。また、部分コード比較部１４１は、比較の結果、差分が検出された場合、部分コード修正部１４２にその差分を示す差分データを送信する。
【０２５６】
部分コード修正部１４２は、スクリプトデータ部分コード生成部１３４が生成した部分コードに、部分コード比較部１４１から取得した差分データを反映する。また、部分コード修正部１４２は、差分データを反映した部分コードを、スクリプトデータ部分コード挿入部１３５に送信する。
【０２５７】
なお、図１を用いてすでに説明した部材についても、次のような変更点がある。
【０２５８】
すなわち、雛形データ特定部１３１は、部分コード比較部１４１に雛形データの名称を送信する。
【０２５９】
また、スクリプトデータ部分コード生成部１３４は、生成した部分コードを、部分コード修正部１４２に送信する。
【０２６０】
また、スクリプトデータ部分コード挿入部１３５は、部分コード修正部１４２から修正コードが反映された部分コードを取得する。
【０２６１】
（修正部分の反映について）
以下において、図２１〜図２５を用いて、部分コード比較部１４１および部分コード修正部１４２の動作詳細を明らかにしつつ、修正部分の反映の例について具体的に説明する。
【０２６２】
まず、部分コード比較部１４１が実行する部分コードの比較について説明すると次のとおりである。
【０２６３】
外部ツールにより修正されたスクリプトデータを流用して、スクリプトデータを再作成する場合、部分コード比較部１４１は、画面遷移編集ツール１１１によって作成されたスクリプトデータの元の部分コードを生成するために、次の処理を行う。すなわち、雛形データ特定部１３１から転送される雛形データの名称が、画面遷移表履歴記憶部１６１に記憶されている前回画面遷移表に含まれているかを判定する。
【０２６４】
そして、部分コード比較部１４１は、前回画面遷移表に、雛形データ特定部１３１から転送された雛形データの名称が含まれている場合、前回画面遷移表を参照し、前回画面画面遷移表の定義に従って、パターンデータを展開することで部分コードを生成する。このようにして、部分コード比較部１４１は、元の部分コード生成する。
【０２６５】
そして、部分コード比較部１４１は、流用するスクリプトデータをスクリプトデータ記憶部１５５から読み出すとともに、流用するスクリプトデータにおいて、部分コードが挿入されたブロックを、スクリプトデータ挿入位置検知部１３２から転送される挿入位置特定情報により特定する。
【０２６６】
それから、部分コード比較部１４１は、生成した部分コードと、上記のようにして特定されたブロックとを比較して差分を検出する。
【０２６７】
ここで、図２１および図２２を用いて、部分コード比較部１４１が差分を検出する方法について説明する。図２１は、外部ツールによって修正されたスクリプトデータＹ３の一例を示す図である。図２２は、スクリプトデータの元の部分コードを示す図であり、イベントコード「ｋ」を検知して画面遷移をする部分コードＤ３を示している。ここで、部分コード比較部１４１は、予め前回画面遷移表から部分コードＤ３を生成しているものとする。
【０２６８】
具体的には、図２１のスクリプトデータＹ３に含まれる部分コードＤ３´は、もともと、イベントコード「ｋ」を検知して画面遷移を行うのみの部分コードＤ３において、図１２で示したパターンデータＨ２にはなかった修正コードＦ１が追記されたものである。より具体的には、部分コードＤ３´は、部分コードＤ３の２行目において、修正コードＦ１が挿入されたものである。
【０２６９】
図２１のスクリプトデータＹ３には、部分コードＤ３´に、修正コードＦ１として、ａｌｅｒｔ関数が挿入されている。ａｌｅｒｔ関数は、コンテンツサービスを視聴するユーザに注意を促すための警告メッセージを表示させるための関数である。つまり、部分コードＤ３´は、イベントコード「ｋ」を検知し、警告メッセージを提示しつつ画面遷移を行うコードである。
【０２７０】
部分コード比較部１４１は、図２２に示す元の部分コードＤ３と、部分コードＤ３´とを比較することで、修正コードＦ１を差分として検出する。検出する差分データは、部分コードＦ１と、部分コードＦ１が部分コードＤ３の最初から２行目に挿入されていることを示す挿入情報とを含んでいてよい。
【０２７１】
部分コード比較部１４１は、このような部分コード同士の比較を行う。画面遷移表生成部１３３から転送された部分コードが、画面遷移編集ツール１１１によって作成されたスクリプトデータの部分コードであれば差分は検出されないはずである。
【０２７２】
これに対して、画面遷移表生成部１３３から転送された部分コードが、外部のツールによって修正された部分コードであれば、修正部分が差分として検出されるはずである。
【０２７３】
このような比較により、部分コード比較部１４１は、画面遷移表生成部１３３が読み出したスクリプトデータが、外部のツールによって修正されているかを判定できる。
【０２７４】
続いて、図２１〜図２４を用いて、部分コード修正部１４２が、差分データを反映する処理の具体例について説明する。以下では、イベントコード「ｋ」を検知して画面遷移を行うスクリプトデータに修正が施されたのちに、修正後のスクリプトデータから、イベントコード「ｘ」を検知して画面遷移を行うスクリプトデータを再作成する場合について例示する。ここで、今回画面遷移表では、前回画面遷移表において定義されていた「ｋ」についての定義が、「ｘ」についての定義に変更されているものとする。
【０２７５】
このとき、まず、準備段階として、スクリプトデータ部分コード生成部１３４は、今回画面遷移表に基づいて、図２３に示す部分コードＤ４を生成する。図２３は、スクリプトデータ部分コード生成部１３４が生成する部分コードの一例を示す図である。
【０２７６】
部分コードＤ４において、パラメータ変換部分Ｍ４は、「ｘ」になっており、イベントコード「ｘ」を検知して画面遷移を行うスクリプトデータとなっている。すなわち、部分コードＤ４は、図２２に部分コードＤ３のパラメータ変換部分Ｍ３の「ｋ」を、「ｘ」に変更したものとなっている。
【０２７７】
前述のとおり、図２１に示すスクリプトデータＹ３は、イベントコード「ｋ」を検知して画面遷移を行うコードであり、かつ修正コードＦ１を含むが、これに対して図２２に示す部分コードＤ４には、修正コードＦ１は反映されていない。
【０２７８】
そこで、部分コード修正部１４２は、部分コード比較部１４１から取得した差分データを部分コードＤ４に反映させて、図２４に示す修正された部分コードＤ４´を生成する。すなわち、部分コード修正部１４２は、差分データに含まれる挿入情報を用いて、部分コードＦ１を部分コードＤ４の最初から２行目に挿入する。部分コードＤ４´では、２行目に、修正コードＦ１が含まれている。
【０２７９】
続いて、図２５を用いて、スクリプトデータ部分データ挿入部１３５が、修正コードを反映したスクリプトデータを作成する処理の例について説明する。図２５は、修正コードを反映させて作成したスクリプトデータの一例を示す図である。
【０２８０】
スクリプトデータ部分データ挿入部１３５は、部分コード修正部１４２から修正された部分コードＤ４´を取得し、図２１に示したスクリプトデータＹ３の部分コードＤ３´を、取得した部分コードＤ４´に置き換えることで、図２５に示すスクリプトデータＹ４を作成する。図２５に示すとおり、スクリプトデータＹ４は、部分コードＤ４´を含んでおり、また、部分コードＤ４´は、修正コードＦ１を含む。すなわち、部分コードＤ４´は、イベントコード「ｘ」を検知して、警告メッセージを提示しつつ画面遷移を行うコードである。
【０２８１】
（画面遷移編集ツールによる一連のスクリプト作成／再作成処理について）
続いて、図２６〜３２を用いて、画面遷移編集ツール１１１において、雛形データから、スクリプトデータを作成し、その後、外部ツールによって修正されたスクリプトデータから、新たなスクリプトデータを再作成するまでの一連の処理について順に説明する。
【０２８２】
（１：スクリプトデータを新規に作成する）
はじめに、図２６〜２７を用いて、画面遷移編集ツール１１１が、雛形データを展開してスクリプトデータを作成する処理について説明する。ここで、今回画面遷移表には、イベントコード「ｋ」、「ｘ」、「ｄ」が定義されているものとする。
【０２８３】
まず、雛形データ部分コード生成部１２３が、画面遷移表の定義に基づいて、イベントコード「ｋ」、「ｘ」、「ｄ」を検知するための部分コードを生成する。
【０２８４】
すなわち、雛形データ部分コード生成部１２３が、図１２に示したパターンデータＨ２に、今回画面遷移表に定義されているイベントコード「ｋ」、「ｘ」、「ｄ」を順に適用して、図２６に示す部分コードＤ５を生成する。部分コードＤ５は、イベントコード「ｋ」、「ｘ」、および「ｄ」のそれぞれを検知するためのブロックＬ５１、Ｌ５２、およびＬ５３を含む。
【０２８５】
そして、雛形データ部分コード挿入部１２４が、部分コードＤ５を、図１１に示した雛形データＨ１の挿入位置指定情報Ｍ１が示す位置に挿入したものに対して、特定情報付与部１２５が、雛形データ識別情報と、挿入位置特定情報とを付与して図２７に示すスクリプトデータＹ５を作成する。
【０２８６】
スクリプトデータＹ５には、イベントコード「ｋ」、「ｘ」、「ｄ」を検知するための部分コードＤ５が含まれており、雛形データ識別情報ＩＤ１と、挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂとが付与されている。
【０２８７】
特定情報付与部１２５は、スクリプトデータＹ５をスクリプトデータ記憶部１５５に記憶する。
【０２８８】
（２：外部ツールによるスクリプトデータの修正）
次に、図２８を用いて、外部ツールによるスクリプトデータの修正について説明する。図２８は、外部ツールによって修正されたスクリプトデータの一例を示している。図２８が示すスクリプトデータＹ６は、図２７に示したスクリプトデータＹ５に対して、外部ツールにより修正を施したものである。
【０２８９】
図２７と、図２８とを対比して示すと、スクリプトデータＹ６に含まれる部分コードＤ５´は、もとのスクリプトデータＹ５に含まれる部分コードＤ５において次の３つの相違点がある。第１に、ブロックＬ５２´では、部分コードＤ５に含まれるブロックＬ５２において、ａｌｅｒｔ関数が、修正コードＦ２として追記されたものとなっている。第２に、もとの部分コードＤ５のブロックＬ５２は、「ｘ」を検知するコードであったところ、ブロックＬ５２´では、「ｄ」を検知するコードとなっている。そして、第３に、もとの部分コードＤ５のブロックＬ５３は、「ｄ」を検知するコードであったところ、ブロックＬ５３´では、「ｘ」を検知するコードとなっている。
【０２９０】
以上、３点が、スクリプトデータＹ６に含まれる部分コードＤ５´の修正点である。
【０２９１】
このような修正を施す外部ツールは、特に限定されない。例えば、修正を施すために、テキストエディタのようなテキスト編集ツールを用いてもよい。画面遷移編集ツール１１１が、このようなテキストエディタ機能を備えていてもよい。
【０２９２】
また、スクリプトデータＹ６は、スクリプトデータ記憶部１５５に記憶される。
【０２９３】
（３：スクリプトデータの再作成）
次に、図２６〜図３２を用いて、画面遷移編集ツール１１１が、スクリプトデータＹ６を流用してスクリプトデータを作成する処理について説明する。
【０２９４】
ここで、今回画面遷移表には、イベントコード「ｋ」、「ｇ」、「ｒ」が定義されているものとし、前回画面遷移表には、先ほど用いた定義と同様、イベントコード「ｋ」、「ｘ」、「ｄ」が定義されているものとする。
【０２９５】
（ｉ）  まず、スクリプトデータ部分コード生成部１３４が、今回画面遷移表から部分コードを生成する。スクリプトデータ部分コード生成部１３４は、図２９に示すように、今回画面遷移表の定義に基づいて、イベントコード「ｋ」、「ｇ」、および「ｒ」を検知するためのブロックＬ６１、Ｌ６２、およびＬ６３を含む部分コードＤ６を生成する。
【０２９６】
（ii）  次に、部分コード比較部１４１が、前回画面遷移表を参照して、前回画面画面遷移表の定義に従って、パターンデータを展開することで部分コードを生成する。この場合、イベントコード「ｋ」、「ｘ」、「ｄ」をパターンデータＨ２に適用して、図２６に示した部分コードＤ５を生成する。
【０２９７】
そして、部分コード比較部１４１は、スクリプトデータＹ６をスクリプトデータ記憶部１５５から読み出す。続いて、部分コード比較部１４１は、スクリプトデータＹ６における挿入位置特定情報ＩＤ２ＡおよびＩＤ２Ｂの間の部分コードＤ５´を特定する。これにより、部分コード比較部１４１は、図３１に示すような部分コードＤ５´を得る。同図に示す部分コードＤ５´には、イベントコード「ｋ」、「ｄ」、「ｘ」を検知するためのブロックＬ５１、Ｌ５２´、Ｌ５３´が含まれており、ブロックＬ５２´には、修正コードＦ２が含まれる。
【０２９８】
それから、部分コード比較部１４１は、部分コードＤ５と、部分コードＤ５´とを比較して、ブロックＬ５２´における修正コードＦ２を検出する。なお、この例では、ブロックＬ５２´およびブロックＬ５３´において、変換指定子が変換された部分Ｍ５およびＭ６については、修正されていても、その差分を検出しないこととしている。しかしながら、これに限られず、このような差分についても修正コードとして検出してもよい。
【０２９９】
部分コード比較部１４１は、修正コードＦ２が差分として検出されたことを示す差分データを生成する。この差分データは、何番目のブロックの、どの行に、修正コードが挿入されているかを示すデータであってよい。例えば、差分データは、２番目のブロックＬ５２´の２行目に修正コードが挿入されていることを示すデータであってよい。
【０３００】
（iii）  次に、部分コード修正部１４２は、スクリプトデータ部分コード生成部１３４が生成した部分コードＤ６に、部分コード比較部１４１が生成した差分データを反映させる。すなわち、部分コード修正部１４２は、差分データに従って、部分コードＤ６の２番目のブロックであるブロックＬ６２の２行目に、修正コードＦ２を反映させる。
【０３０１】
このようにして、生成された部分データを図３０に示す。図３０には、部分コードＤ６´が示されている。部分コードＤ６´は、イベントコード「ｋ」、「ｇ」、および「ｒ」を検知するためのブロックＬ６１、Ｌ６２´、およびＬ６３を含む。また、ブロックＬ６２´の２行目には、修正コードＦ２が挿入されている。
【０３０２】
（iv）  次に、スクリプトデータ部分コード挿入部１３５は、このようにして得られた部分コードＤ６´を、図２８に示したスクリプトデータＹ６における部分コードＤ５´と置き換えることで、図３２に示すスクリプトデータＹ７を作成する。図３２に示すスクリプトデータＹ７は、部分コードＤ６´を含むコードである。部分コードＤ６´は、上述のとおり、イベントコード「ｋ」、「ｇ」、および「ｒ」を検知するためのブロックＬ６１、Ｌ６２´、およびＬ６３を含む。そして、ブロックＬ６２´の２行目には、修正コードＦ２が挿入されている。
【０３０３】
（処理の流れ）
次に、図３３を用いて、本実施形態に係る画面遷移編集ツール１１１が外部ツールで修正されたスクリプトデータを用いてスクリプトデータを再作成する場合の処理の流れについて説明する。図３３は、画面遷移編集ツール１１１が雛形データを用いてスクリプトデータを作成する場合の処理の流れについて例示したフローチャートである。
【０３０４】
まず、雛形データ特定部１３１が、今回画面遷移表に定義されている雛形データが、流用するスクリプトデータの雛形データ、すなわち、前回スクリプトデータを作成したときに用いた雛形データと同じものであるかを判定する（Ｓ３０１）。この判定は、雛形データ特定部１３１が、流用するスクリプトデータに雛形データ識別情報が付与されているかを確認し、さらに、雛形データ識別情報が付与されている場合には、その雛形データ識別情報を今回画面遷移表と照合することで行われる。
【０３０５】
流用するスクリプトデータに雛形データ識別情報が付与されていない場合、雛形データ特定部１３１は、同じ雛形データを使用していないと判定する。
【０３０６】
また、流用するスクリプトデータに雛形データ識別情報が付与されている場合においても、今回画面遷移表に定義されている雛形データ識別情報との照合の結果、合致するものがなければ、雛形データ特定部１３１は、同じ雛形データを使用していないと判定する。一方、雛形データ特定部１３１は、今回画面遷移表において、合致する雛形データ識別情報が定義されていれば、同じ雛形データを使用していると判定する。
【０３０７】
このように、スクリプトデータの雛形データの判定を行うのは、スクリプトデータの差分の比較が、同じ雛形データを利用していることが前提となっているためである。つまり、雛形データが同じであるため、パターンデータを特定でき、そのパターンデータに基づき、差分の特定などが可能となる。
【０３０８】
ここで、雛形データ特定部１３１が前回と同じ雛形データを使用していないと判定した場合（Ｓ３０１においてＮｏ）、画面遷移編集ツール１１１は、雛形データ特定部１３１は、新規にスクリプトデータを作成する（Ｓ３０３）。つまり、画面遷移編集ツール１１１は、図１８を用いて説明したＳ１０１〜Ｓ１０４に準じた処理を実行して、スクリプトデータを作成する。その後、処理は終了する。
【０３０９】
これに対して、前回と同じ雛形データを使用していると判定した場合（Ｓ３０１においてＹｅｓ）、スクリプトデータ挿入位置検知部１３２が、流用するスクリプトデータに挿入位置特定情報が付与されているかを判定する（Ｓ３０２）。
【０３１０】
スクリプトデータ挿入位置検知部１３２が、挿入位置特定情報が付与されていないと判定した場合（Ｓ３０２においてＮｏ）、画面遷移編集ツール１１１は、新規にスクリプトデータを作成して（Ｓ３０３）、処理は終了する。
【０３１１】
スクリプトデータ挿入位置検知部１３２が、挿入位置特定情報が付与されていると判定した場合（Ｓ３０２においてＹｅｓ）、スクリプトデータ部分コード生成部１３４が、今回画面遷移表の定義に基づいて、部分コードを生成する（Ｓ３０４）。
【０３１２】
続いて、部分コード比較部１４１が、部分コードの比較を行うために、前回画面遷移表の定義に基づいて、部分コードを生成する（Ｓ３０５）
それから、部分コード比較部１４１が、前回画面遷移表の定義に基づいて生成した部分コードと、流用するスクリプトデータの部分コードとを比較し、差分の有無を判定する（Ｓ３０６）。
【０３１３】
ここで、差分が無ければ（Ｓ３０６においてＮｏ）、スクリプトデータ部分コード挿入部１３５は、今回画面遷移表に従って生成された部分コードを、流用するスクリプトデータの部分コードと置き換えることでスクリプトデータを再作成する（Ｓ３０８）。
【０３１４】
これに対して、差分が有れば（Ｓ３０６においてＹｅｓ）、スクリプトデータ部分コード挿入部１３５は、部分コード比較部１４１が生成した差分データに従い、今回画面遷移表に基づいて生成された部分コードに差分を反映する（Ｓ３０７）。そして、差分を反映した部分コードを、流用するスクリプトデータの部分コードと置き換えることでスクリプトデータを再作成する（Ｓ３０８）。
【０３１５】
このようにして、スクリプトデータを再作成して、処理は終了する。
【０３１６】
（変形例）
本実施形態に係る画面遷移編集ツール１１１の好ましい変形例について以下に説明する。
【０３１７】
画面遷移編集ツール１１１は、スクリプトデータ再作成時に、スクリプトデータを作成するときに用いられた雛形データが更新されているかを判定してもよい。この判定は、具体的には、画面遷移編集ツール１１１が、スクリプトデータに含まれる雛形データ識別情報を検出し、検出した雛形データ識別情報によって特定される雛形データが、雛形データ記憶部１５２において更新されているかを判定することによって行われる。
【０３１８】
そして、画面遷移編集ツール１１１は、雛形データが更新されていると判定した場合には、更新後の雛形データに生成した部分コードを挿入してスクリプトデータを作成するようにしてもよい。
【０３１９】
画面遷移編集ツール１１１は、スクリプトデータを修正するためのテキストエディタ機能を備えていてもよい。また、当該エディタでは、雛形データ識別情報および挿入位置特定情報を検出し、テキストエディタ機能による雛形データ識別情報および挿入位置特定情報に対しての編集を不可にしてもよい。
【０３２０】
また、画面遷移編集ツール１１１がスクリプトデータに付与した雛形データ識別情報および挿入位置特定情報は、外部のテキストエディタ等の編集ツールにおいて、そのテキスト編集機能を抑止するトリガとして用いられてもよい。
【０３２１】
つまり、画面遷移編集ツール１１１が、付与する雛形データ識別情報および挿入位置特定情報は、スクリプトデータを編集する編集機能、雛形データ識別情報または挿入位置特定情報が記述されている位置を検出する検出機能、検出機能が検出した位置に対する編集を抑止する編集抑止機能を備えている外部の編集ツールにおいて、編集抑止情報として用いられてもよい。
【０３２２】
このような外部の編集ツールでは、スクリプトデータに含まれる雛形データ識別情報または挿入位置特定情報が記述されている位置を検出機能が検出すると、編集抑止機能が、編集機能によるスクリプトデータの編集を抑止する。
【０３２３】
よって、例えば、このような外部の編集ツールでは、雛形データ識別情報が記述されている行、列を検知し、検知した行、列に編集用のカーソルが位置しているときに、編集機能が働かないようにすることができる。
【０３２４】
〔実施形態３〕
本発明の他の実施形態について図３４〜図４２に基づいて説明すると、以下の通りである。本実施形態では、画面遷移編集ツール１１１によって作成されたイベント検知記述が、外部のツールで編集されている場合、スクリプトデータの再作成の際に、外部のツールで編集された箇所を反映する別の手法について説明する。
【０３２５】
（画面遷移編集ツールの構成について）
まず、本実施形態に係る画面遷移編集ツール１１１の構成について説明する。図３４は、本実施形態に係る画面遷移編集ツール１１１を動作させるための開発装置１００の概略的構成について示したブロック図である。なお、説明の便宜上、以前の実施形態にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０３２６】
以下、図３４に示す画面遷移編集ツール１１１を、図１および図２０に示す画面遷移編集ツール１１１を参照しながら説明する。図３４に示す画面遷移編集ツール１１１は、図２０に示した画面遷移編集ツール１１１において、画面遷移表生成部１３３を追加し、図２０において示した部分コード修正部１４２に替えて、部分コード修正部１４２Ａを設け、さらに画面遷移表履歴記憶部１６１に替えて、画面遷移表記憶部１５３を設けたものである。それ以外の構成については図２０のものと同様であるので、その説明を省略する。
【０３２７】
（追加・変更された部材について）
画面遷移表生成部１３３は、図１を用いて示したものと同様であるが、本実施形態においては、その動作についてさらに詳細に説明する。
【０３２８】
部分コード修正部１４２Ａは、スクリプトデータ部分コード生成部１３４が生成した部分コードに、部分コード比較部１４１から取得した差分データを反映するものだが、前述した実施形態２とは、差分データの反映方法が異なる。部分コード修正部１４２Ａの具体的な差分データ反映方法については後述する。
【０３２９】
また、本実施形態では、雛形データ部分コード生成部１２３およびスクリプトデータ部分コード生成部１３４が、イベント対応記述を作成する手法について詳しく説明する。
【０３３０】
（イベント対応記述の生成手法について）
図３５および図３６を用いて、イベント対応記述の作成手法について説明する。図３５は、イベント対応記述を作成するためのパターンデータの一例を示す図である。図３６は、画面遷移編集ツール１１１が作成するイベント対応記述の一例について示す図である。
【０３３１】
図３５に示すようにパターンデータＨ３は、イベント対応記述に含まれる「nextstep」タグの断片的な一部である。パターンデータＨ３には、変換指定子Ｍ３１（“％ｕｒｌ”）およびＭ３２（“％ｓ”）が含まれる。パターンデータＨ３は、パターンデータ記憶部１５４に記憶されていてもよい。
【０３３２】
変換指定子Ｍ３１は、図１２を用いて示した変換指定子Ｍ３と同様、画面遷移編集ツール１１１にパラメータ変換を行うべきことを通知するためのキーワードである。変換指定子Ｍ３１は、“％ｕｒｌ”を、「画面遷移表に定義されている遷移先の画面の画面識別情報」＋「．ｍｔｄ」からなる文字列に置き換えるべきであることを画面遷移編集ツール１１１に通知する。また、変換指定子Ｍ３２は、変換指定子Ｍ３と同様、イベントコードを置き換えるためのキーワードである。
【０３３３】
例えば、画面遷移表において、イベントコード「ｋ」に対し、遷移先の画面の画面識別情報「ｉｎｄｅｘ」が定義されている場合、画面遷移編集ツール１１１によって、変換指定子Ｍ３１は、“ｉｎｄｅｘ．ｍｔｄ”に置き換えられ、変換指定子Ｍ３２は、“ｋ”に置き換えられる。
【０３３４】
画面遷移編集ツール１１１が、パターンデータＨ３を変換することにより、「nextstep」タグ“<nextstep xlink:href=“index.mtd” when=“k” />”を得る。
【０３３５】
また、ここで、画面遷移表において、さらに、イベントコード「ｄ」に対し、画面識別情報「ＧＭＮ０１．ｍｔｄ」が定義され、イベントコード「ｘ」に対し、画面識別情報「ＧＭＮ０２．ｍｔｄ」が定義されている場合、それぞれ、「nextstep」タグ“<nextstep xlink:href=“GMN01.mtd” when=“d” />”および“<nextstep xlink:href=“GMN02.mtd” when=“x” />”を得る。
【０３３６】
このようにして得られた文字列から、画面遷移編集ツール１１１は、図３６に示すイベント対応記述Ｅ２を作成する。画面遷移編集ツール１１１には、上記のように作成した、「nextstep」タグＮ２１〜Ｎ２３が含まれる。
【０３３７】
すなわち、「nextstep」タグＮ２１では、「ｈｒｅｆ」属性に、属性値２１１“ｉｎｄｅｘ．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値２１２“ｋ”が指定されている。また、「nextstep」タグＮ２２では、「ｈｒｅｆ」属性に、属性値２２１“ＧＭＮ０１．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値２２２“ｄ”が指定されている。そして、「nextstep」タグＮ２３では、「ｈｒｅｆ」属性に、属性値２３１“ＧＭＮ０２．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値２３２“ｘ”が指定されている。
【０３３８】
なお、画面遷移編集ツール１１１は、イベント対応記述Ｅ２において、「nextstep」タグＮ２１〜Ｎ２３以外の部分を、予め用意されているイベント対応記述の雛形コードを用いて作成することができる。例えば、画面遷移編集ツール１１１は、雛形コードの所定位置に、「nextstep」タグＮ２１〜Ｎ２３を挿入することで、イベント対応記述Ｅ２を作成することができる。また、イベント対応記述の雛形コードは、雛形データ記憶部１５２に記憶されていてもよい。
【０３３９】
このような動作は、具体的には、雛形データ部分コード生成部１２３またはスクリプトデータ部分コード生成部１３４が、雛形データ記憶部１５２から、イベント対応記述の雛形コードを読み出し、パターンデータ記憶部１５４から、イベント対応記述のパターンデータを読み出し、画面遷移表記憶部１５３に記憶されている画面遷移表を参照しながら、読み出した各種データについて、上記の処理を行うことにより実現することができる。
【０３４０】
また、特定情報付与部１２５は、イベント検知記述Ｅ１の場合と同様に、イベント対応記述Ｅ２に、雛形データ識別情報と、挿入位置特定情報とを付与してもよい。
【０３４１】
（差分データの反映方法の具体例について１）
以下において、図３６〜図３９を用いて、部分コード修正部１４２Ａの動作詳細を明らかにしつつ、外部ツールにより修正されたスクリプトデータを流用して、スクリプトデータの再作成を行う場合において、修正部分を反映する例について具体的に説明する。
【０３４２】
以下の例では、部分コード修正部１４２Ａは、イベント検知記述に差分があった場合において、キーコードの定義が変更となっていても、遷移先の画面を定義する画面遷移情報が同じであれば、その画面遷移情報に対応するキーコードを検知するブロックに差分を反映する。
【０３４３】
例示的に、図３６に示すイベント対応記述Ｅ２、および、図３８に示すイベント検知記述Ｙ８を流用して、図３７に示すイベント対応記述Ｅ３、および、図３９に示すイベント検知記述Ｙ９を作成する場合について説明する。
【０３４４】
まず、イベント対応記述Ｅ２およびイベント検知記述Ｙ８について説明すると次のとおりである。イベント対応記述Ｅ２およびイベント検知記述Ｙ８は、予め作成されているものとする。なお、イベント対応記述Ｅ２およびイベント検知記述Ｙ８を作成する手法については、既に説明したものを用いることとする。
【０３４５】
イベント対応記述Ｅ２は、既に説明したとおりであるのでその説明を省略する。イベント検知記述Ｙ８は、部分コードＤ８を含み、部分コードＤ８には、イベントコード「ｋ」、「ｄ」、および「ｘ」を検知するためのブロックＬ８１、Ｌ８２、およびＬ８３が含まれる。また、イベント検知記述Ｙ８に含まれる部分コードＤ８は、外部ツールにより編集されており、ブロックＬ８１、Ｌ８２、およびＬ８３において、それぞれ、修正コードＦ８１、Ｆ８２、およびＦ８３が含まれている。
【０３４６】
続いて、画面遷移表生成部１３３は、イベント対応記述Ｅ２の属性値を解析して、画面遷移表を生成する。具体的には、画面遷移表生成部１３３は、イベントコード「ｋ」に対し、画面識別情報「ｉｎｄｅｘ」が定義され、イベントコード「ｄ」に対し、画面識別情報「ＧＭＮ０１」が定義され、イベントコード「ｘ」に対し、画面識別情報「ＧＭＮ０２」が定義されている画面遷移表を生成する。画面遷移表生成部１３３は、生成した画面遷移表を画面遷移表記憶部１５３に記憶する。
【０３４７】
画面遷移編集ツール１１１は、表示部１０２に、画面遷移表を表示し、操作部１０１からのユーザの操作を受け付ける。そして、画面遷移編集ツール１１１が、ユーザの操作を受け付けると、画面遷移表更新部１２１が、受け付けた操作に応じて記憶部１５３の画面遷移表を更新する。
【０３４８】
ここで、画面遷移表更新部１２１によって、画面遷移表における定義が次のように変更されたとする。すなわち、画面識別情報「ＧＭＮ０１」について定義されているキーコード「ｄ」が、「ｇ」に更新され、画面識別情報「ＧＭＮ０２」およびキーコード「ｘ」についての定義が、画面識別情報「ＧＭＮ０３」およびキーコード「ｒ」についての定義に更新されたとする。
【０３４９】
つまり、この更新では、画面識別情報「ＧＭＮ０１」については、対応するキーコードが変更となっているのみであり、画面識別情報は、変更になっていない。また、画面識別情報「ｉｎｄｅｘ」については、対応するキーコードも変更になっていない。
【０３５０】
この画面遷移表を用いて、画面遷移編集ツール１１１がイベント対応記述Ｅ２およびイベント検知記述Ｙ９を流用してスクリプトデータを再作成する場合に、スクリプトデータ部分コード生成部１３４によって生成されるイベント対応記述は、図３７に示すイベント対応記述Ｅ３である。
【０３５１】
「nextstep」タグＮ３１では、「ｈｒｅｆ」属性に、属性値３１１“ｉｎｄｅｘ．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値３１２“ｋ”が指定されている。また、「nextstep」タグＮ３２では、「ｈｒｅｆ」属性に、属性値３２１“ＧＭＮ０１．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値３２２“ｇ”が指定されている。そして、「nextstep」タグＮ３３では、「ｈｒｅｆ」属性に、属性値３３１“ＧＭＮ０３．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値２３２“ｒ”が指定されている。
【０３５２】
また、スクリプトデータ部分コード生成部１３４は、画面遷移表に従って、図３９に示すイベント検知記述Ｙ９を生成する。イベント検知記述Ｙ９は、部分コードＤ９を含み、部分コードＤ９には、イベントコード「ｋ」、「ｇ」、および「ｒ」を検知するためのブロックＬ９１、Ｌ９２、およびＬ９３が含まれる。
【０３５３】
ここで、スクリプトデータ部分コード生成部１３４は、画面遷移表の定義において、流用するイベント対応記述Ｅ２に含まれる「nextstep」タグＮ２１の属性値２３１「ｉｎｄｅｘ．ｍｔｄ」が存在するので、画面識別情報「ｉｎｄｅｘ」に対応するイベントコード「ｋ」を検知するブロックＬ９１について、イベント検知記述Ｙ８に含まれていた修正コードＦ８１を反映させている。
【０３５４】
また、画面遷移表の定義において、流用するイベント対応記述Ｅ２に含まれる「nextstep」タグＮ２２の属性値２３１「ＧＭＮ０１．ｍｔｄ」が存在するので、画面識別情報「ＧＭＮ０１」に対応するイベントコード「ｇ」を検知するブロックＬ９２について、イベント検知記述Ｙ８に含まれていた修正コードＦ８２を反映させている。
【０３５５】
しかし、更新された画面遷移表における画面識別情報「ＧＭＮ０３」の定義は、新たに追加されたものであるので、修正コードは追加されていない。すなわち、イベント検知記述Ｙ８に含まれていた修正コードＦ８３は、イベント検知記述Ｙ９が含むブロックＬ９３において反映されていない。
【０３５６】
（差分データの反映方法の具体例について２）
以下において、図３６、図４０〜図４２を用いて、部分コード修正部１４２Ａの別の動作例について説明する。
【０３５７】
以下の例では、部分コード修正部１４２Ａは、イベント検知記述に差分があった場合において、遷移先の画面を定義する画面遷移情報が変更となっていても、キーコードが同じであれば、そのキーコードを検知するブロックに差分を反映する。
【０３５８】
例示的に、図３６に示すイベント対応記述Ｅ２、および、図４１に示すイベント検知記述Ｙ１０を流用して、図４０に示すイベント対応記述Ｅ４、および、図４２に示すイベント検知記述Ｙ１１を作成する場合について説明する。
【０３５９】
この例では、イベント対応記述Ｅ２およびイベント検知記述Ｙ１０は、予め作成されているものとする。なお、イベント対応記述Ｅ２およびイベント検知記述Ｙ１０を作成する手法については、既に説明したものを用いることとする。
【０３６０】
イベント対応記述Ｅ２は、既に説明したとおりであるのでその説明を省略する。
【０３６１】
イベント検知記述Ｙ１０について説明すると次のとおりである。
イベント検知記述Ｙ１０は、部分コードＤ１０を含み、部分コードＤ１０には、イベントコード「ｋ」、「ｄ」、および「ｘ」を検知するためのブロックＬ１０１、Ｌ１０２、およびＬ１０３が含まれる。また、イベント検知記述Ｙ１０に含まれる部分コードＤ１０は、外部ツールにより編集されており、ブロックＬ１０１、Ｌ１０２、およびＬ１０３において、それぞれ、修正コードＦ１０１、Ｆ１０２、およびＦ１０３が含まれている。
【０３６２】
続いて、画面遷移表生成部１３３は、イベント対応記述Ｅ２の属性値を解析して、画面遷移表を生成する。具体的には、画面遷移表生成部１３３は、イベントコード「ｋ」に対し、画面識別情報「ｉｎｄｅｘ」が定義され、イベントコード「ｄ」に対し、画面識別情報「ＧＭＮ０１」が定義され、イベントコード「ｘ」に対し、画面識別情報「ＧＭＮ０２」が定義されている画面遷移表を生成する。画面遷移表生成部１３３は、生成した画面遷移表を記憶部１５３に記憶する。
【０３６３】
画面遷移編集ツール１１１は、表示部１０２に、画面遷移表を表示し、操作部１０１からのユーザの操作を受け付ける。そして、画面遷移編集ツール１１１が、ユーザの操作を受け付けると、画面遷移表更新部１２１が、受け付けた操作に応じて記憶部１５３の画面遷移表を更新する。
【０３６４】
ここで、画面遷移表更新部１２１によって、画面遷移表における定義が次のように変更されたとする。すなわち、キーコード「ｄ」に対応する画面識別情報「ＧＭＮ０１」が、画面識別情報「ＧＭＮ０２」に更新され、画面識別情報「ＧＭＮ０２」およびキーコード「ｘ」についての定義が、画面識別情報「ＧＭＮ０３」およびキーコード「ｒ」についての定義に更新されたとする。
【０３６５】
つまり、この更新では、キーコード「ｄ」については、対応する画面識別情報「ＧＭＮ０１」が変更となっているのみであり、キーコードは、変更になっていない。また、画面識別情報「ｉｎｄｅｘ」については、対応するキーコードも変更になっていない。
【０３６６】
この画面遷移表を用いて、画面遷移編集ツール１１１がイベント対応記述Ｅ２およびイベント検知記述Ｙ１０を流用してスクリプトデータを再作成する場合に、スクリプトデータ部分コード生成部１３４によって生成されるイベント対応記述は、図４０に示すイベント対応記述Ｅ４である。
【０３６７】
「nextstep」タグＮ４１では、「ｈｒｅｆ」属性に、属性値４１１“ｉｎｄｅｘ．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値４１２“ｋ”が指定されている。また、「nextstep」タグＮ４２では、「ｈｒｅｆ」属性に、属性値４２１“ＧＭＮ０２．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値４２２“ｄ”が指定されている。そして、「nextstep」タグＮ４３では、「ｈｒｅｆ」属性に、属性値４３１“ＧＭＮ０３．ｍｔｄ”が指定されており、「ｗｈｅｎ」属性には、属性値４３２“ｒ”が指定されている。
【０３６８】
また、スクリプトデータ部分コード生成部１３４は、画面遷移表に従って、図４２に示すイベント検知記述Ｙ１１を生成する。イベント検知記述Ｙ１１は、部分コードＤ１１を含み、部分コードＤ１１には、イベントコード「ｋ」、「ｄ」、および「ｒ」を検知するためのブロックＬ１１１、Ｌ１１２、およびＬ１１３が含まれる。
【０３６９】
ここで、スクリプトデータ部分コード生成部１３４は、画面遷移表の定義において、流用するイベント対応記述Ｅ４に含まれる「nextstep」タグＮ２１の属性値２１２「ｋ」が存在するので、「ｉｎｄｅｘ．ｍｔｄ」に対応するイベントコード「ｋ」を検知するブロックＬ１１１について、イベント検知記述Ｙ１０に含まれていた修正コードＦ１０１を反映させている。
【０３７０】
また、画面遷移表の定義において、流用するイベント対応記述Ｅ２に含まれる「nextstep」タグＮ２２の属性値２３２「ｄ」が存在するので、イベントコード「ｄ」を検知するブロックＬ１１２について、イベント検知記述Ｙ１０に含まれていた修正コードＦ１０２を反映させている。
【０３７１】
しかし、更新された画面遷移表におけるイベントコード「ｒ」についての定義は、新たに追加されたものであるので、修正コードは追加されていない。すなわち、イベント検知記述Ｙ１０に含まれていた修正コードＦ１０３は、イベント検知記述Ｙ１１が含むブロックＬ１１３において反映されていない。
【０３７２】
なお、本実施形態においても、画面遷移編集ツール１１１は、図３３を用いて示した各処理に準じた処理を実行してもよい。この場合、前回画面遷移表としては、画面遷移表生成部１３３が、イベント対応記述を解析することによって得られた画面遷移表を用いることができ、今回画面遷移表としては、画面遷移表生成部１３３が生成した画面遷移表を、画面遷移表更新部１２１が更新したものを用いることができる。また、部分コード修正部１４２Ａは、Ｓ３０７における部分コードの差分を反映する処理を実行してよい。
【０３７３】
〔実施形態４〕
本発明の他の実施形態について図４３〜図５７に基づいて説明すると、以下の通りである。本実施形態では、サービス開発ツール５００において、スクリプトデータ５１０を作成・編集する場合について説明する。なお、説明の便宜上、上記の実施形態にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
【０３７４】
（サービス開発ツールの概要）
図４３を用いて、サービス開発ツール５００の概要について説明する。図４３は、サービス開発ツール５００の概要について説明した概略図である。
【０３７５】
サービス開発ツール５００は、画面遷移、画面レイアウト等の開発を統合的に行うための開発環境を提供する。具体的には、サービス開発ツール５００は、画面遷移編集ツール６００と、画面レイアウト作成ツール７００と、スクリプトエディタ８００とを備える構成である。
【０３７６】
画面遷移編集ツール６００は、図１や図５等を用いてこれまで説明してきたとおり、コンテンツサービスを構成する画面の遷移を開発するためのツールである。
【０３７７】
具体的には、画面遷移編集ツール６００は、図１で示した画面遷移編集ツール１１１と同様、画面遷移表を記憶するための画面遷移表記憶部１５３を備えている。
【０３７８】
そして、画面遷移編集ツール６００は、画面遷移表の定義に従って雛形データＨ１０を展開して新規にスクリプトデータ５１０を作成する機能、および、画面遷移表の定義に従って既存のスクリプトデータ５１０を編集する機能を有している。
【０３７９】
画面レイアウト作成ツール７００は、各画面の表示内容、ＵＩ（User Interface）部品、レイアウト等を作成するためのツールである。
【０３８０】
ＵＩ部品とは、上述したボタン等のＧＵＩ部品の他、画面上に配置できるインターフェース一般のことをいう。例えば、画面レイアウト作成ツール７００は、各画面において、上述のＧＵＩ部品に加えて、リストボックス、テキストボックス、カーソル移動、および音楽・動画プレーヤ等のＵＩ部品を配置することができる。より具体的な例については後ほど説明する。
【０３８１】
また、画面レイアウト作成ツール７００は、作成したレイアウト等に関する情報を記憶するためのレイアウト情報記憶部７５２を備えている。そして、画面レイアウト作成ツール７００は、レイアウト情報記憶部７５２に定義されている内容に従って、スクリプトデータ５１０を編集する。
【０３８２】
スクリプトエディタ８００は、スクリプトデータ５１０を直接編集するためのテキストエディタである。スクリプトエディタ８００は、例えば、他のツールではサポートされていないようなコード表現をスクリプトデータ５１０上に追加するために用いられる。
【０３８３】
（開発の流れ）
サービス開発ツール５００では、上述のとおり、新規にスクリプトデータ５１０を作成する場合、画面遷移編集ツール６００が、画面遷移表の定義に従って、雛形データＨ１０からスクリプトデータ５１０を作成する。
【０３８４】
ここで、サービス開発ツール５００では、１つの画面について、１つのスクリプトデータが作成される。
【０３８５】
その後、上記複数のツールによって同一のスクリプトデータ５１０を編集することにより開発が行われる。例えば、画面レイアウト作成ツール７００にて、ある画面にＵＩ部品を追加した後、画面遷移編集ツール６００にて新たな画面遷移を追加する場合が想定される。
【０３８６】
このように、サービスの開発では、上記複数のツールによって同一のスクリプトデータを編集することになるので、各ツールが無秩序に、スクリプトデータを更新してしまうと、スクリプトデータの内容と、各ツールが保有しているデータとの間で不整合が生じるおそれがある。
【０３８７】
例えば、画面遷移編集ツール６００の画面遷移表記憶部１５３における定義、または画面レイアウト作成ツール７００のレイアウト情報記憶部７５２における定義と、スクリプトデータの内容との間に齟齬が生じるおそれがある。
【０３８８】
このような不都合を防ぐために、サービス開発ツール５００では、それぞれのツールが、スクリプトデータにおける自らが編集可能な編集領域を認識し、他のツールの編集領域を更新しないようになっている。
【０３８９】
図４４を用いて、このような制御の実現手法について概略的に説明すると次のとおりである。図４４は、スクリプトデータ５１０の各領域の構成および各ツールの編集領域について概略的に説明する模式図である。
【０３９０】
図４４に示すように、スクリプトデータ５１０は、第１編集領域Ｒ１と、第２編集領域Ｒ２と、ユーザ編集領域Ｒ３とを含む。
【０３９１】
画面遷移編集ツール６００は、第１編集領域Ｒ１を編集可能であるが、画面レイアウト作成ツール７００は、第１編集領域Ｒ１を編集不可である。
【０３９２】
また、画面レイアウト作成ツール７００は、第２編集領域Ｒ２を編集可能であるが、画面遷移編集ツール６００は、第２編集領域Ｒ２を編集不可である。
【０３９３】
スクリプトエディタ８００は、スクリプトデータ５１０の全領域を編集可能であるが、スクリプトエディタ８００によって編集された内容は、所定のタイミングで、ユーザ編集領域Ｒ３に退避される。このタイミングの詳細については後述する。
【０３９４】
なお、スクリプトエディタ８００が、スクリプトデータ５１０の全領域を編集可能であるとしているのはあくまで一例であり、第１編集領域Ｒ１および第２編集領域Ｒ２は、編集不可とし、ユーザ領域Ｒ３のみスクリプトエディタ８００によって編集可能とする実装も可能である。
【０３９５】
以下、開発装置において動作する各種ツールについて順に説明する。
【０３９６】
（開発装置で動作する画面遷移編集ツールについて）
画面遷移編集ツールについて説明すると以下のとおりである。まず、図４５を用いて、開発装置（コード生成装置、コード編集装置）２００において動作する画面遷移編集ツール６００の一例について説明する。図４５は、画面遷移編集ツール６００を動作させている開発装置２００の概略的構成について示した機能ブロック図である。
【０３９７】
開発装置２００は、図１を用いて示した開発装置１００と同様、操作部１０１、表示部１０２、制御部１１０、および記憶部１５０を備えている。
【０３９８】
ただし、開発装置２００が備える制御部１１０および記憶部１５０は、開発装置１００のものと、次の点で異なる。
【０３９９】
まず、図４５に示す開発装置２００が備える制御部１１０では、図１に示した開発装置１００とは異なり、サービス開発ツール５００がロードされている。また、図４５では、サービス開発ツール５００において、画面遷移編集ツール６００が動作している場合の各種機能を例示している。
【０４００】
なお、図４５では、サービス開発ツール５００に含まれる他のツール、すなわち、画面レイアウト作成ツール７００およびスクリプトエディタ８００については、説明の便宜上、その記載を省略している。念のため補足しておくと、開発装置２００では、画面遷移編集ツール６００を含めこれら３つのツールを任意の組み合わせで動作させることが可能であるし、もちろん３つのツールを同時に動作させることも可能である。
【０４０１】
また、開発装置２００が備える記憶部１５０では、図１で示したプログラム記憶部１５１、雛形データ記憶部１５２、スクリプトデータ記憶部１５５が、プログラム記憶部５５１、雛形データ記憶部６５２、スクリプトデータ記憶部５５５に取り替えられている。
【０４０２】
なお、説明の便宜上、図４５では、図示していないが、開発装置２００が備える記憶部１５０は、ＵＩ部品データ記憶部７５１、レイアウト情報記憶部７５２、および変換情報記憶部７５３をさらに備える。これらは画面レイアウト作成ツール７００によって参照されるものであるので、後に図５１を参照して説明する。
【０４０３】
［記憶部について］
図４５に示すプログラム記憶部５５１、雛形データ記憶部６５２、スクリプトデータ記憶部５５５について詳細に説明すると次のとおりである。
【０４０４】
プログラム記憶部５５１には、サービス開発ツール５００を実行するためのプログラムコードが記憶されている。すなわち、プログラム記憶部２５１には、サービス開発ツール５００に含まれる画面遷移編集ツール６００、画面レイアウト作成ツール７００、およびスクリプトエディタ８００を実行するためのプログラムコードが記憶されている。
【０４０５】
雛形データ記憶部６５２には、画面遷移編集ツール６００がスクリプトデータを作成するために用いる雛形データが記憶される。
【０４０６】
ここで、図４６を用いて、雛形データの詳細について説明すると次のとおりである。図４６は、雛形データの一例を示す図である。
【０４０７】
図４６に示す雛形データＨ１０は、図１１で示した雛形データＨ１と同様、リモコンＶ２の操作によるイベントのイベントコードを検出するためのスクリプトデータを作成するためのものである。なお、同図に示す雛形データＨ２の名称は、“ｔｅｍｐｌａｔｅ１０．ｓｖｇ”とする。
【０４０８】
雛形データＨ１０と、雛形データＨ１との相違点は次の点である。すなわち、雛形データＨ１のＫｅｙＥｖｅｎｔ関数には、挿入位置指定情報Ｍ１が含まれていたのに対して、雛形データＨ１０のＫｅｙＥｖｅｎｔ関数には、第１編集領域Ｒ１、第２編集領域Ｒ２、およびユーザ編集領域Ｒ３が規定されている点である。
【０４０９】
各編集領域は、具体的には、それぞれの開始行および終了行を示す情報が付加されており、これによって規定されている。つまり、この開始行と、終了行との間にある領域が、各編集領域となる。
【０４１０】
具体的には、第１編集領域Ｒ１は、開始行を示す第１編集領域開始情報Ｍ１０１Ａと、終了行を示す第１編集領域終了情報Ｍ１０１Ｂとによって規定される。第１編集領域開始情報Ｍ１０１Ａは、“// begin of SENNI TOOL KeyEvent”というキーワードからなり、第１編集領域終了情報Ｍ１０１Ｂは、“// end of SENNI TOOL KeyEvent”というキーワードからなる。
【０４１１】
また、第２編集領域Ｒ２は、開始行を示す第２編集領域開始情報Ｍ１０２Ａと、終了行を示す第２編集領域終了情報Ｍ１０２Ｂとによって規定される。第２編集領域開始情報Ｍ１０２Ａは、“// begin of LAYOUT TOOL KeyEvent”というキーワードからなり、第２編集領域終了情報Ｍ１０２Ｂは、“// end of LAYOUT TOOL KeyEvent”というキーワードからなる。
【０４１２】
そして、ユーザ編集領域Ｒ３は、開始行を示すユーザ編集領域開始情報Ｍ１０３Ａと、終了行を示すユーザ編集領域終了情報Ｍ１０３Ｂとによって規定される。ユーザ編集領域開始情報Ｍ１０３Ａは、“// begin of User KeyEvent”というキーワードからなり、ユーザ編集領域開始情報Ｍ１０３Ｂは、“// end of User KeyEvent”というキーワードからなる。
【０４１３】
また、別の観点からみれば、第１編集領域開始情報Ｍ１０１Ａおよび第１編集領域終了情報Ｍ１０１Ｂは、画面遷移表を用いて生成する部分コードを挿入する位置を、画面遷移編集ツール１１１に指定するためのものである。すなわち、第１編集領域開始情報Ｍ１０１Ａおよび第１編集領域終了情報Ｍ１０１Ｂは、挿入位置指定情報Ｍ１と同様の役割を果たす（以下、挿入位置指定情報Ｍ１０１と称する）。
【０４１４】
同様に、第２編集領域開始情報Ｍ１０２Ａおよび第２編集領域終了情報Ｍ１０２Ｂは、レイアウト情報記憶部７５２を用いて生成する部分コードを挿入する位置を、画面レイアウト作成ツール７００に指定するためのものである（以下、挿入位置指定情報Ｍ１０２と称する）。
【０４１５】
また、ユーザ編集領域開始情報Ｍ１０３Ａおよびユーザ編集領域終了情報Ｍ１０３Ｂは、ユーザの編集結果を、挿入すべき位置を指定するためのものである（以下、挿入位置指定情報Ｍ１０３と称する）。
【０４１６】
スクリプトデータ記憶部５５５には、画面遷移編集ツール６００によって作成されたスクリプトデータが記憶される。画面遷移編集ツール６００が作成するスクリプトデータについては、後ほど詳細に説明する。
【０４１７】
（画面遷移編集ツールの詳細について）
再び図４５を用いて、画面遷移編集ツール６００の概略的構成について説明する。
【０４１８】
図４５に示すように、画面遷移編集ツール６００は、図１を用いて示した画面遷移編集ツール１１１において、雛形データ挿入位置検知部１２２、特定情報付与部１２５、およびスクリプトデータ挿入位置検知部１３２を、それぞれ、雛形データ挿入位置検知部６２２、特定情報付与部（付与手段）６２５、およびスクリプトデータ挿入位置検知部６３２に取り替えるとともに、雛形データ特定部１３１を取り除いたものである。
【０４１９】
これらの部材は、記憶部１５０が、雛形データ記憶部２５２およびスクリプトデータ記憶部２５５に対応するために次のような機能を有する。
【０４２０】
雛形データ挿入位置検知部６２２は、雛形データに含まれる挿入位置指定情報を検知することにより第１編集領域の位置を特定する。具体的には、まず、雛形データ挿入位置検知部６２２は、画面遷移表記憶部１５３から画面遷移表を読み出して、読み出した画面遷移表の「雛形データ」の項目に定義されている雛形データＨ１０（図４６）を、雛形データ記憶部６５２から読み出す。
【０４２１】
そして、雛形データ挿入位置検知部６２２は、雛形データＨ１０を構文解析および字句解析することにより、部分コードを挿入する位置を示す挿入位置指定情報Ｍ１０１の位置を検知する。
【０４２２】
また、雛形データ挿入位置検知部６２２は、雛形データ部分コード生成部１２３に検知した挿入位置指定情報を転送するとともに、雛形データ部分コード挿入部１２４に、雛形データＨ１０と、検知した挿入位置指定情報の位置情報とを転送する。
【０４２３】
特定情報付与部６２５は、雛形データ部分コード挿入部１２４が作成したスクリプトデータに挿入位置特定情報を付与する。特定情報付与部６２５は、挿入位置特定情報を付与したスクリプトデータをスクリプトデータ記憶部５５５に記憶する。
【０４２４】
スクリプトデータ挿入位置検知部６３２は、スクリプトデータに含まれる挿入位置特定情報を検知する。具体的には、スクリプトデータ挿入位置検知部６３２は、スクリプトデータ記憶部５５５から、スクリプトデータを読み出して、読み出したスクリプトデータの第１編集領域Ｒ１を構文解析および字句解析することにより、挿入位置指定情報Ｍ１０１を検知する。
【０４２５】
また、スクリプトデータ挿入位置検知部６３２は、画面遷移表生成部６３３、スクリプトデータ部分コード挿入部１３５に、検知した挿入位置指定情報Ｍ１０１の位置情報を転送する。また、スクリプトデータ挿入位置検知部６３２は、スクリプトデータ部分コード生成部１３４に検知した挿入位置指定情報Ｍ１０１を転送する。
【０４２６】
画面遷移表生成部６３３は、スクリプトデータ挿入位置検知部６３２から転送された挿入位置指定情報Ｍ１０１の位置情報に基づいて、スクリプトデータの第１編集領域Ｒ１を特定し、第１編集領域Ｒ１のコードにおいて検知されているイベントキーを検出し、検出したイベントキーに応じて画面遷移表を生成するものである。
【０４２７】
（具体例）
続いて、図４６〜図４９を参照しながら、画面遷移編集ツール６００が、雛形データＨ１０から、スクリプトデータＹ１００を作成する具体的手法について説明する。
【０４２８】
［画面遷移表］
図４７は、画面遷移表の一部について示したテーブルであり、図４８は、雛形データ部分コード生成部が生成する部分コードの一例を示す図である。また、図４９は、画面遷移編集ツール６００が作成するスクリプトデータの一例を示す図である。
【０４２９】
まず、図４７を参照しながら、画面遷移表Ｔ１０の定義について説明する。各列の意味については、図８を用いて説明したとおりであるので、その説明を省略する。
【０４３０】
図４７に示すように、画面遷移表Ｔ１０では、画面識別情報”ＧＭＮ００１”について定義されている。画面識別情報”ＧＭＮ００１”では、イベントコード「Ｋ」ついて、画面識別情報”ｉｎｄｅｘ”が定義されており、イベントコード「ｘ」について、画面識別情報”ＥＮＤ”が定義されている。その他のイベントコードについては、画面識別情報は定義されていない。
【０４３１】
また、雛形データには、”ｔｅｍｐｌａｔｅ１０．ｓｖｇ”が定義されており、ＳＶＧパラメータには、”ｃｕｒｒｅｎｔ”が定義されている。
【０４３２】
続いて、図４８を参照しながら、雛形データ部分コード生成部１２３が生成する部分コードＤ１００について説明する。雛形データ部分コード生成部１２３は、図４７の画面遷移表Ｔ１０を参照して、画面遷移が定義されているイベントコード「ｋ」および「ｘ」について図４８に示す部分コードＤ１００を作成する。部分コードＤ１００に含まれるブロックＬ５０１およびＬ５０２は、それぞれ、イベントコード「ｋ」および「ｘ」についてパターンデータを展開したものである。
【０４３３】
［スクリプトデータ］
続いて、図４９を参照しながら、雛形データ部分コード挿入部１２４が作成するスクリプトデータＹ１００について説明する。
【０４３４】
雛形データ部分コード挿入部１２４は、雛形データ挿入位置検知部６２２から挿入位置指定情報Ｍ１０１の位置情報を受信して、雛形データＨ１０における挿入位置指定情報Ｍ１０１の位置に、雛形データ部分コード生成部１２３が生成した部分コードＤ１００を挿入する。これにより、図４９に示すスクリプトデータＹ１００が得られる。
【０４３５】
図４９に示すスクリプトデータＹ１００は、図４５を用いて示した雛形データＨ１０において、第１編集領域開始情報Ｍ１０１Ａと、第１編集領域終了情報Ｍ１０１Ｂとの間に、雛形データ部分コード生成部１２３が生成した部分コードＤ１００を挿入したものになっている。
【０４３６】
なお、画面遷移編集ツール６００において、画面遷移表を更新した場合、既存のスクリプトデータを流用できる点については、これまで説明したとおりである。例えば、画面遷移編集ツール６００は、第１編集開始情報Ｍ１０１Ａおよび第１編集終了情報Ｍ１０１Ｂの間に挟まれる第１編集領域Ｒ１の部分コードを更新すればよい。
【０４３７】
また、上記では、新規にスクリプトデータを作成する場合、画面遷移編集ツール６００が、雛形データを展開する構成としたが、これに限られず、他のツール、例えば、画面レイアウト作成ツール７００にて展開する構成としてもかまわない。
【０４３８】
なお、本実施形態においては、説明の便宜上、スクリプトデータＹ１００において、図９で示した雛形データ識別情報ＩＤ１のような識別情報は付与していないが、このような識別情報をスクリプトデータＹ１００に付与することももちろん可能である。例えば、特定情報付与部６２５が雛形データ識別情報ＩＤ１を、スクリプトデータＹ１００に付与して、上述の実施形態の場合と同様、スクリプトデータＹ１００の作成に用いられた雛形データを特定できるようにしてもよい。
【０４３９】
（開発装置で動作する画面レイアウト作成ツールについて）
次に、画面レイアウト作成ツールについて説明すると以下のとおりである。
【０４４０】
[画面レイアウト作成ツールのユーザインターフェース]
まず、図５０を用いて、画面レイアウト作成ツール７００のユーザインターフェースについて説明する。図５０は、画面レイアウト作成ツールのユーザインターフェースの一例について示した図である。
【０４４１】
図５０に示すように、画面レイアウト作成ツール７００のユーザインターフェースは、レイアウトウィンドウＷ１００と、ＵＩ（User Interface）部品リストウィンドウＷ２００とを含む構成である。
【０４４２】
レイアウトウィンドウＷ１００は、操作部１５の操作に応じて画面のレイアウトを作成するためのウィンドウである。
【０４４３】
また、レイアウトウィンドウＷ１００は、編集ペインＷ１０１と、プロパティペインＷ１０２とに分けられている。
【０４４４】
編集ペインＷ１０１では、例えば、マウスをはじめとするポインティングデバイスによる操作に応じて、画面上にＵＩ部品を配置することによりレイアウト編集を行うことが可能である。
【０４４５】
ここで、ＵＩ部品とは、画面上に配置できる、入力・表示のためのインターフェースであり、典型的には、上述のとおり、リストボックス、テキストボックス、カーソル移動、および音楽・動画プレーヤ等のことである。
【０４４６】
プロパティペインＷ１０２は、上記編集ペインＷ１０１に配置したＵＩ部品のプロパティ、すなわち設定値を編集するためのインターフェースである。
【０４４７】
ＵＩ部品リストウィンドウＷ２００には、編集ペインＷ１０１に配置することができるＵＩ部品の名前のリストが表示される。開発者は、ＵＩ部品リストウィンドウＷ２００に表示されているＵＩ部品の名前のリストから、所望のＵＩ部品名を選択して、例えば、マウスによるドラッグ＆ドロップにより、編集ペインＷ１０１に当該ＵＩ部品を配置することができる。
【０４４８】
図５０に示す例は、画面識別情報”ＧＭＮ００１”の画面のレイアウトを作成するものであり、マウスカーソルＷ２０２でカーソル移動のＵＩ部品“ｃｕｒｓｏｒ”（Ｗ２０１）を選択して、カーソル移動Ｗ１１０を編集ペインＷ１０１に配置している。
【０４４９】
また、カーソル移動Ｗ１１０について補足しておくと、次のとおりである。すなわち、カーソル移動Ｗ１１０は、画面上に、選択可能な項目を所定の行・列等の形式で整列して提示し、上下左右に移動可能なカーソルによって提示した項目の一つを選択させるためのＵＩ部品である。項目を提示する行数、列数は、設定値により任意に変更することができる。
【０４５０】
なお、カーソルの移動は、リモコンの操作に応じて行うため、リモコンの方向キーＫＤ１〜ＫＤ４に対応している。つまり、「ｗ」「ｚ」「ｄ」「ａ」のイベントコードに応じてカーソルの移動が行われる。
【０４５１】
なお、プロパティペインＷ１０２では、カーソル移動Ｗ１１０の提示の設定値を表示させており、「行」には、“３”が設定され、「列」には、“２”が設定されている。
【０４５２】
よって、カーソル移動Ｗ１１０は、「その１」〜「その６」の６つの選択項目を３行２列の形式で整列して提示している。
【０４５３】
[開発装置で動作する画面レイアウト作成ツールの構成]
続いて、図５１を用いて、開発装置２００において動作する画面レイアウト作成ツール７００の一例について説明する。図５１は、画面レイアウト作成ツール７００を動作させている開発装置２００の概略的構成について示した機能ブロックである。
【０４５４】
図４６を用いて既に説明したように、開発装置２００は、操作部１０１、表示部１０２、制御部１１０、および記憶部１５０を備えている。
【０４５５】
ただし、開発装置２００が備える制御部１１０および記憶部１５０は、図４６を用いて示した開発装置２００のものと、次の点で異なる。
【０４５６】
まず、図５１では、サービス開発ツール５００において、画面レイアウト作成ツール７００が動作している場合の各種機能を例示している。
【０４５７】
また、開発装置２００が備える記憶部１５０は、ＵＩ部品データ記憶部７５１、レイアウト情報記憶部７５２、および変換情報記憶部７５３を備える。なお、図４６で示した雛形データ記憶部６５２、画面遷移表記憶部１５３、およびパターンデータ記憶部１５４は、以下の例では、画面レイアウト作成ツール７００によって参照されないので、説明の便宜上、その記載を省略している。
【０４５８】
［記憶部について］
図５１に示すＵＩ部品データ記憶部７５１、レイアウト情報記憶部７５２、および変換情報記憶部７５３について詳細に説明すると次のとおりである。
【０４５９】
ＵＩ部品データ記憶部７５１は、ＵＩ部品の定義体データを記憶している。ＵＩ部品の定義体には、複数の属性値および振る舞いが定義されている。
【０４６０】
例えば、カーソル移動の定義体データは、上述のとおり、属性値として行数、列数の設定値が定義されている。また、カーソル移動クラスには、振る舞いとして、「ｗ」「ｚ」「ｄ」「ａ」のイベントコードを検知するべきことが定義されている。
【０４６１】
レイアウト情報記憶部７５２は、画面レイアウト作成ツールで作成したレイアウトに関する情報であるレイアウト情報を記憶するものである。カーソル移動のＵＩ部品が配置された場合、レイアウト情報には、カーソル移動クラスの設定値、および画面上の配置場所等、カーソル移動の定義体データに具体的な値を設定したものが含まれる。
【０４６２】
変換情報記憶部７５３は、レイアウト情報から、スクリプトデータに挿入するための部分コードを生成するための変換情報が記憶されている。
【０４６３】
変換情報では、ＵＩ部品の定義体データに対応するコードが定義されている。例えば、レイアウト情報に含まれるカーソル移動の定義体データは、変換情報に基づいて、スクリプトデータに記述するべき変数・関数のコードに変換される。この変換処理の詳細については後述する。
【０４６４】
[画面レイアウト作成ツールの詳細について]
再び図５１を用いて、画面レイアウト作成ツール７００の概略的構成について説明する。図５１に示すようにて、画面レイアウト作成ツール７００は、レイアウト編集部７２１、スクリプトデータ挿入位置検知部７３２、スクリプトデータ部分コード生成部（変更部分コード取得手段）７３４、およびスクリプトデータ部分コード挿入部（置換手段）７３５を備える構成である。
【０４６５】
レイアウト編集部７２１は、前述のユーザインターフェースを通じて、画面レイアウトに関するレイアウト情報を作成するものである。
【０４６６】
スクリプトデータ挿入位置検知部７３２は、スクリプトデータに含まれる挿入位置特定情報を検知することにより第２編集領域の位置を特定する。具体的には、スクリプトデータ挿入位置検知部７３２は、スクリプトデータ記憶部５５５から、スクリプトデータを読み出して、読み出したスクリプトデータを構文解析および字句解析することにより、挿入位置指定情報の位置を検知する。また、スクリプトデータ挿入位置検知部７３２は、検知した挿入位置特定情報の位置情報をスクリプトデータ部分コード挿入部７３５に転送する。
【０４６７】
スクリプトデータ部分コード生成部７３４は、変換情報を参照して、レイアウト情報を変換することでスクリプトデータに挿入するべき部分コードを生成する。
【０４６８】
具体的には、まず、スクリプトデータ部分コード生成部７３４は、変換情報記憶部７５３から変換情報を読み出す。そして、スクリプトデータ部分コード生成部７３４は、レイアウト情報記憶部７５２からレイアウト情報を読み出して、読み出したレイアウト情報を、変換情報の規定に従って変換することにより部分コードを生成する。スクリプトデータ部分コード生成部７３４は、生成した部分コードをスクリプトデータ部分コード挿入部７３５に出力する。
【０４６９】
スクリプトデータ部分コード挿入部７３５は、スクリプトデータの第２編集領域に部分コードを挿入するものである。
【０４７０】
具体的には、スクリプトデータ部分コード挿入部７３５は、スクリプトデータ挿入位置検知部７３２から転送される挿入位置特定情報の位置情報に従って、スクリプトデータ部分コード生成部７３４が生成した部分コードをスクリプトデータに挿入する。
【０４７１】
なお、すでにスクリプトデータの第２編集領域において、部分コードが挿入されている場合、スクリプトデータ部分コード挿入部７３５は、当該挿入されている部分コードを、スクリプトデータ部分コード生成部７３４が生成した部分コードに置き換えてもよい。
【０４７２】
［具体例］
続いて、図５２および図５３を用いて、画面レイアウト作成ツールが作成するスクリプトデータについて詳細に説明する。
【０４７３】
図５２は、スクリプトデータ部分コード生成部７３４が生成する部分コードの一例を示す図であり、図５３は、スクリプトデータ部分コード挿入部７３５が部分コードを挿入することにより得られるスクリプトデータの一例を示す図である。
【０４７４】
図５２に示す部分コードＤ１０１は、カーソル移動の定義体に対応するコードの一部である。より詳しく説明すると、部分コードＤ１０１は、カーソル移動の振る舞いについて規定するコードであり、「ｗ」「ｚ」「ｄ」「ａ」のイベントコードに応じてカーソルの移動を行うためのコードである。
【０４７５】
部分コードＤ１０１は、「ａ」「ｄ」「ｗ」および「ｚ」の各イベントコードを検知するためのブロックＬ５１１〜Ｌ５１４を含む。
【０４７６】
ブロックＬ５１１は、カーソルを左方向に動かすためのｄｅｃＣｕｒｓｏｒＮｏＸ関数を含み、ブロックＬ５１２は、カーソルを右方向に動かすためのｉｎｃＣｕｒｓｏｒＮｏＸ関数を含む。また、ブロックＬ５１３は、カーソルを上方向に動かすためのｄｅｃＣｕｒｓｏｒＮｏＹ関数を含み、ブロックＬ５１４は、カーソルを下方向に動かすためのｉｎｃＣｕｒｓｏｒＮｏＸ関数を含む。
【０４７７】
以下、画面レイアウト作成ツールにおいて、カーソル移動のＵＩ部品を画面に配置して、配置した内容を、図４９に示したスクリプトデータＹ１００に対して反映する場合の処理について説明すると次のとおりである。
【０４７８】
まず、開発者がインターフェースを通じて、カーソル移動のＵＩ部品を画面に配置すると、レイアウト編集部７２１は、ＵＩ部品データ記憶部７５１から、カーソル移動の定義体データを読み出して、レイアウト情報としてレイアウト情報記憶部７５２に記憶する。
【０４７９】
その後、スクリプトデータ部分コード生成部３３４は、レイアウト情報記憶部７５２から、上記レイアウト情報を読み出して、変換情報記憶部７５３の変換情報を参照しながら、カーソル移動の定義体に対応する上記部分コードＤ１０１を生成する。
【０４８０】
一方、スクリプトデータ挿入位置検知部７３２は、スクリプトデータ記憶部５５５からスクリプトデータＹ１００を読み出して、スクリプトデータＹ１００に含まれる挿入位置指定情報Ｍ１０２を検知することにより第２編集領域の位置を特定する。
【０４８１】
続いて、スクリプトデータ部分コード挿入部７３５が、第２編集領域開始情報Ｍ１０２Ａと第２編集領域終了情報Ｍ１０２Ｂとの間に、部分コードＤ１０１を挿入する。
【０４８２】
これにより得られるスクリプトデータが図５３に示すスクリプトデータＹ１０１である。
【０４８３】
（開発装置で動作するスクリプトエディタについて）
次に、スクリプトエディタ８００について説明すると次のとおりである。スクリプトエディタ８００は、上述のとおり、スクリプトデータの全領域を編集可能である。図５４を用いて、スクリプトエディタ８００による編集の例について以下に説明する。
【０４８４】
例えば、スクリプトデータＹ１０１において、イベントコード「ｂ」を検知するには、図５４に示すとおり、スクリプトデータＹ１０１にコードを追加すればよい。
【０４８５】
すなわち、図５４に示すスクリプトデータＹ１０２では、スクリプトデータＹ１０１の第２編集領域Ｒ２の先頭に、部分コードＤ１１０を追加し、イベントコード「ｂ」を検知するようにしている。
【０４８６】
追加した部分コードＤ１１０には、スクリプトエディタ８００によって追加されたコードであることを示す“//Updated”という更新コメントが付与される。
【０４８７】
また、スクリプトエディタ８００によって更新されたコードは、所定のタイミングで、ユーザ編集領域Ｒ３に退避される。
【０４８８】
図５５を用いて、スクリプトエディタ８００によって更新されたコードを退避する処理の例について説明すると次のとおりである。
【０４８９】
サービス開発ツール５００が、図５４に示すスクリプトデータＹ１０２において、“//Updated”という更新コメントを検知し、その部分コードＤ１１０が追加された位置を特定する。
【０４９０】
そして、部分コードＤ１１０が追加された位置が、第１編集領域Ｒ１または第２編集領域Ｒ２である場合、サービス開発ツール５００は、追加された部分コードＤ１１０を、ユーザ編集領域Ｒ３に退避する。
【０４９１】
例えば、図５４に示すスクリプトデータＹ１０２では、第２編集領域Ｒ２に部分コードＤ１１０が追加されているので、この部分コードＤ１１０を退避の対象とする。
【０４９２】
このとき、サービス開発ツール５００は、部分コードＤ１１０が挿入された位置を維持するため、ユーザ編集領域Ｒ３を、第２編集領域Ｒ２の前に移動する。
【０４９３】
こうして、移動後のユーザ編集領域Ｒ３に部分コードＤ１１０を退避した結果得られるスクリプトコードが、図５５に示すスクリプトデータＹ１０３である。
【０４９４】
図５５のスクリプトデータＹ１０３では、図５４に示したスクリプトデータＹ１０２においてスクリプトエディタ８００により更新された部分コードＤ１１０が、ユーザ編集領域開始情報Ｍ１０３Ａとユーザ編集領域終了情報Ｍ１０３Ｂとの間に退避されている。
【０４９５】
また、ユーザ編集領域Ｒ３は、第１編集領域Ｒ１の後ろであって、第２編集領域Ｒ２の前の位置に移動している。
【０４９６】
上記構成によれば、スクリプトエディタ８００により更新された部分コードＤ１１０が、ユーザ編集領域Ｒ３に退避される。よって、画面レイアウト作成ツール７００等により、第２編集領域Ｒ２等が編集されても、スクリプトエディタ８００により更新された部分コードＤ１１０の内容が失われてしまうのを防ぐことができる。
【０４９７】
なお、上記の構成に限られず次のように構成することも可能である。まず、前述の更新コメントの付与は、スクリプトエディタ８００が行ってもよいし、サービス開発ツールが、スクリプトエディタ８００による更新を検知して行ってもよい。
【０４９８】
また、上記更新コメントの付与は、スクリプトエディタ８００が行ってもよいし、サービス開発ツールが、スクリプトエディタ８００による更新を検知して行ってもよい。
【０４９９】
また、ユーザ編集領域Ｒ３は、部分コードＤ１１０が挿入された位置を維持するため移動される構成であったが、これに限られず、これ以外の位置に適宜移動可能である。また、ユーザ編集領域Ｒ３を、移動させなくてもよく、その位置は、第２編集領域Ｒ２の後ろの位置に固定されていてもよい。
【０５００】
また、追加された部分コードＤ１１０を、ユーザ編集領域Ｒ３に退避する処理は、スクリプトエディタ８００が所定時間ごとに行ってもよいし、スクリプトエディタ８００がスクリプトデータの編集を終了したときに行ってもよい。
【０５０１】
また、画面レイアウト作成ツール７００によりスクリプトデータが編集される直前に行ってもよい。また、このとき、画面レイアウト作成ツール７００のインターフェースを通じて、スクリプトエディタ８００で追加した内容をスクリプトデータが含む旨を開発者に通知してもよい。
【０５０２】
また、スクリプトエディタ８００で追加した内容が、画面レイアウト作成ツール７００で更新しようとする内容と矛盾するときは、いずれか一方の内容を削除することにより、当該矛盾を解消してもよい。画面遷移編集ツール６００に関しても同様である。
【０５０３】
（変形例）
次に、サービス開発ツール５００の好ましい変形例について説明すると次のとおりである。画面レイアウト作成ツール７００においてイベントキーを検知するＵＩ部品が配置され、このようなＵＩ部品配置に基づいて、スクリプトデータが作成されたとき、画面遷移編集ツール６００において、当該イベントキーについての編集を制限するようにしてもよい。
【０５０４】
図５６を用いて、この変形例の具体的実現手法について説明すると次のとおりである。図５６に示すように、サービス開発ツール５００において、編集制限情報登録部９００を追加するとともに、記憶部１５０において、編集制限情報記憶部９５６を追加している。
【０５０５】
また、画面遷移編集ツール６００では、画面遷移表更新部１２１に替えて、画面遷移表更新部６２１を設けている。
【０５０６】
なお、同図では、説明の便宜のため、画面遷移編集ツール６００の構成のうち、画面遷移表更新部６２１のみを記載し、その他の構成については、その記載を省略している。
【０５０７】
また、記憶部１５０の構成として、プログラム記憶部２５１、画面遷移表記憶部１５３、編集制限情報記憶部９５６、およびスクリプトデータ記憶部１５５のみを記載し、その他の構成については、その記載を省略している。
【０５０８】
編集制限情報登録部９００は、イベントキー検出部９０１、および制限情報作成部９０２を備える構成である。
【０５０９】
イベントキー検出部９０１は、スクリプトデータの第２編集領域Ｒ２にイベントキーを検知するコードが含まれているか否かを判定し、イベントキーを検知するコードが含まれる場合、そのコードで検知するイベントキーを検出するためのものである。イベントキー検出部９０１は、検知したイベントキーを制限情報作成部９０２に送信する。
【０５１０】
制限情報作成部９０２は、イベントキー検出部９０１が検出したイベントキーが、画面遷移編集ツール６００において編集できない旨を示す制限情報を、編集制限情報記憶部９５６に登録するものである。
【０５１１】
続いて、画面遷移編集ツール６００の画面遷移表更新部６２１につい手説明すると次のとおりである。
【０５１２】
画面遷移表更新部６２１は、開発者の編集操作に応じて、その操作による編集内容が編集制限されているか否かを判定し、編集制限されていなければ、画面遷移表記憶部１５３に記憶されている画面遷移表を更新するものである。
【０５１３】
より具体的には、画面遷移表更新部６２１は、操作部１０１において受け付けた開発者の編集操作に応じて、編集制限情報記憶部９５６を参照し、当該編集操作が、編集を制限されたイベントキーを更新するものか否かを判定する。
【０５１４】
そして、編集操作が、編集を制限されたイベントキーを更新するもので無い場合、画面遷移表記憶部１５３に記憶されている画面遷移表を更新する。
【０５１５】
一方、編集操作が、編集を制限されたイベントキーを更新するものである場合、画面遷移表更新部６２１は、画面遷移表を更新しない。
【０５１６】
また、画面遷移表更新部６２１は、画面遷移編集ツール６００のユーザインターフェースを通じて、開発者に編集が制限されているイベントキーを提示してもよい。
【０５１７】
図５７を用いて、画面遷移表更新部６２１によって、編集が制限されているイベントキーを提示する具体例について説明すると次のとおりである。
【０５１８】
まず、イベントキー検出部９０１が、スクリプトデータ記憶部１５５から、図５３に示したスクリプトデータＹ１０１を読み出す。そして、イベントキー検出部９０１は、第２編集領域に挿入されている部分コードＤ１０１に含まれるコードを構文解析および字句解析することにより、部分コードＤ１０１で検知しているイベントキー「ａ」「ｄ」「ｗ」「ｚ」を検出する。
【０５１９】
続いて、制限情報作成部９０２は、イベントキー「ａ」「ｄ」「ｗ」「ｚ」が編集制限されている旨の制限情報を作成し、作成した制限情報を編集制限情報記憶部９５６に登録する。
【０５２０】
そして、画面遷移表更新部６２１は、編集制限情報記憶部９５６に登録されている制限情報を参照し、編集制限されているイベントキー「ａ」「ｄ」「ｗ」「ｚ」を、図５７に示すようにユーザインターフェースを通じて、開発者に通知する。
【０５２１】
すなわち、同図に示す画面遷移表Ｔ１０では、上下左右の項目において、そのイベントキーに関する編集が制限されていることを示す「×」印を表示している。
【０５２２】
画面レイアウト作成ツール７００でイベントキーを検知するＵＩ部品が配置されているにもかかわらず、画面遷移編集ツール６００によって、当該イベントキーについて編集してしまうと、当該イベントキーに対する処理を重複して定義することになる。
【０５２３】
多くの場合、このように一つのイベントキーに対して複数の処理を重複して定義してしまうと、いずれの処理を優先すればよいかわからず、その結果が所望の動作を得られないおそれがある。
【０５２４】
上記構成によれば、画面レイアウト作成ツール７００でイベントキーを検知するＵＩ部品が配置されているとき、画面遷移編集ツール６００によって、あやまって当該イベントキーについて重複編集してしまうことを防ぐことができるという効果を奏する。
【０５２５】
（その他の変形例）
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０５２６】
なお、本発明は、以下のように表現することも可能である。
（１）  雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記展開コードに付与する付与手段と、を備えることを特徴とするコード生成装置。
（２）  上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段と、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段と、を備えることを特徴とする上記コード生成装置。
（３）  変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されているに上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段と、を備えることを特徴とする上記コード生成装置。
（４）  上記付与手段は、複数の上記パラメータ変換規則のうちの１つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、
上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成することを特徴とする上記コード生成装置。
（５）  上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段と、上記差分検出手段が検出した差分を、上記変更部分コード生成手段が生成した上記更新部分コードに反映する反映手段と、を備えることを特徴とする上記コード生成装置。
（６）  上記挿入手段は、上記挿入位置特定情報を、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与する特徴とする上記コード生成装置。
（７）  上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与するものであり、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段と、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段と、を備える上記コード生成装置。
（８）  上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段を備える上記コード生成装置。
（９）  上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する上記コード生成装置。
（１０）  上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する上記コード生成装置。
（１１）  複数の上記挿入手段を備え、上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与する上記コード生成装置。
（１２）  上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段と、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段と、を備える上記コード生成装置。
（１３）  上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段と、上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段と、を備える上記コード生成装置。
（１４）  上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段と、上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段と、を備える上記コード生成装置。
【０５２７】
上記では、開発装置１００の各ブロック、特に画面遷移編集ツール１１１が備える画面遷移表更新部１２１、雛形データ挿入位置検知部１２２、雛形データ部分コード生成部１２３、雛形データ部分コード挿入部１２４、特定情報付与部１２５、雛形データ特定部１３１、スクリプトデータ挿入位置検知部１３２、画面遷移表生成部１３３、スクリプトデータ部分コード生成部１３４、およびスクリプトデータ部分コード挿入部１３５、部分コード比較部１４１、部分コード修正部１４２を、ＣＰＵを用いてソフトウェアによって実現する例について説明した。
【０５２８】
また、上記では、開発装置２００の各ブロック、特にサービス開発ツール５００に含まれる画面遷移編集ツール６００および画面レイアウト作成ツール７００の各ブロックを、ＣＰＵを用いてソフトウェアによって実現する例について説明した。
【０５２９】
画面遷移編集ツール６００の各ブロックとは、より具体的には、画面遷移編集ツール６００が備える、雛形データ挿入位置検知部６２２、特定情報付与部６２５、スクリプトデータ挿入位置検知部６３２のことである。
【０５３０】
また、画面レイアウト作成ツール７００の各ブロックとは、より具体的には、レイアウト編集部７２１、スクリプトデータ挿入位置検知部７３２、スクリプトデータ部分コード生成部７３４、およびスクリプトデータ部分コード挿入部７３５のことである。
【０５３１】
また、編集制限情報登録部９００のイベントキー検出部９０１および制限情報作成部９０２についても上記の例のとおり、ＣＰＵを用いてソフトウェアによって実現することができる。
【０５３２】
さらにいえば、開発装置１００および開発装置２００は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである開発装置１００または開発装置２００の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記開発装置１００または開発装置２００に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０５３３】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０５３４】
また、開発装置１００または開発装置２００を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。また、開発装置１００または開発装置２００の各ブロックは、ハードウェアロジックによって構成してもよい。
【産業上の利用可能性】
【０５３５】
本発明は、雛形コードに部分コードを挿入して展開コードを生成した後においても、挿入された部分コードを特定することができるため、部分コードのカスタマイズ等が容易となる。このため、雛形コードを展開してプログラムコードを作成するような開発環境に利用することができる。
【符号の説明】
【０５３６】
１００    開発装置（コード生成装置）
１０１    操作部
１０２    表示部
１１０    制御部
１１１    画面遷移編集ツール（コード生成プログラム）
１２１    画面遷移表更新部
１２２    雛形データ挿入位置検知部
１２３    雛形データ部分コード生成部（部分コード生成手段）
１２４    雛形データ部分コード挿入部（挿入手段）
１２５    特定情報付与部（付与手段）
１３１    雛形データ特定部
１３２    スクリプトデータ挿入位置検知部（挿入位置特定情報検出手段）
１３３    画面遷移表生成部（パラメータ指定情報生成手段）
１３４    スクリプトデータ部分コード生成部（部分コード生成手段）
１３５    スクリプトデータ部分コード挿入部（置換手段）
１４１    部分コード比較部（差分検出手段）
１４２    部分コード修正部（反映手段）
１４２Ａ  部分コード修正部（反映手段）
１５０    記憶部
１５１    プログラム記憶部
１５２    雛形データ記憶部
１５３    画面遷移表記憶部
１５４    パターンデータ記憶部
１５５    スクリプトデータ記憶部
１６１    画面遷移表履歴記憶部
２００    開発装置（コード生成装置、コード編集装置）
５５１    プログラム記憶部
５５５    スクリプトデータ記憶部
６００    画面遷移編集ツール
６２１    画面遷移表更新部
６２２    雛形データ挿入位置検知部
６２５    特定情報付与部（付与手段）
６３２    スクリプトデータ挿入位置検知部
６５２    雛形データ記憶部
７００    画面レイアウト作成ツール
７２１    レイアウト編集部
７３２    スクリプトデータ挿入位置検知部
７３４    スクリプトデータ部分コード生成部（変更部分コード取得手段）
７３５    スクリプトデータ部分コード挿入部（置換手段）
７５１    ＵＩ部品データ記憶部
７５２    レイアウト情報記憶部
８００    スクリプトエディタ
９００    編集制限情報登録部
９０１    イベントキー検出部
９０２    制限情報作成部
９５６    編集制限情報記憶部
Ｄ１〜Ｄ６    部分コード
Ｆ１、Ｆ２    修正コード
Ｈ１    雛形データ
ＩＤ１    雛形データ識別情報（雛形コード識別情報）
ＩＤ２Ａ    挿入位置特定情報
ＩＤ２Ｂ    挿入位置特定情報
Ｍ１    挿入位置指定情報
Ｍ２    変換指定子
Ｍ３    パラメータ変換部分
Ｍ４    パラメータ変換部分
Ｍ１０１  挿入位置指定情報
Ｍ１０１Ａ    第１編集領域開始情報
Ｍ１０１Ｂ    第１編集領域終了情報
Ｍ１０２  挿入位置指定情報
Ｍ１０２Ａ    第２編集領域開始情報
Ｍ１０２Ｂ    第２編集領域終了情報
Ｔ１、Ｔ２    画面遷移表（変換規則、パラメータ指定情報）
Ｙ１〜Ｙ７    スクリプトデータ（展開コード）
【図１】
2010277572.tif 000003
【図２】
2010277572.tif 000004
【図３】
2010277572.tif 000005
【図４】
2010277572.tif 000006
【図５】
2010277572.tif 000007
【図６】
2010277572.tif 000008
【図７】
2010277572.tif 000009
【図８】
2010277572.tif 000010
【図９】
2010277572.tif 000011
【図１０】
2010277572.tif 000012
【図１１】
2010277572.tif 000013
【図１２】
2010277572.tif 000014
【図１３】
2010277572.tif 000015
【図１４】
2010277572.tif 000016
【図１５】
2010277572.tif 000017
【図１６】
2010277572.tif 000018
【図１７】
2010277572.tif 000019
【図１８】
2010277572.tif 000020
【図１９】
2010277572.tif 000021
【図２０】
2010277572.tif 000022
【図２１】
2010277572.tif 000023
【図２２】
2010277572.tif 000024
【図２３】
2010277572.tif 000025
【図２４】
2010277572.tif 000026
【図２５】
2010277572.tif 000027
【図２６】
2010277572.tif 000028
【図２７】
2010277572.tif 000029
【図２８】
2010277572.tif 000030
【図２９】
2010277572.tif 000031
【図３０】
2010277572.tif 000032
【図３１】
2010277572.tif 000033
【図３２】
2010277572.tif 000034
【図３３】
2010277572.tif 000035
【図３４】
2010277572.tif 000036
【図３５】
2010277572.tif 000037
【図３６】
2010277572.tif 000038
【図３７】
2010277572.tif 000039
【図３８】
2010277572.tif 000040
【図３９】
2010277572.tif 000041
【図４０】
2010277572.tif 000042
【図４１】
2010277572.tif 000043
【図４２】
2010277572.tif 000044
【図４３】
2010277572.tif 000045
【図４４】
2010277572.tif 000046
【図４５】
2010277572.tif 000047
【図４６】
2010277572.tif 000048
【図４７】
2010277572.tif 000049
【図４８】
2010277572.tif 000050
【図４９】
2010277572.tif 000051
【図５０】
2010277572.tif 000052
【図５１】
2010277572.tif 000053
【図５２】
2010277572.tif 000054
【図５３】
2010277572.tif 000055
【図５４】
2010277572.tif 000056
【図５５】
2010277572.tif 000057
【図５６】
2010277572.tif 000058
【図５７】
2010277572.tif 000059