JP2010277572A - コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法 - Google Patents

コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法 Download PDF

Info

Publication number
JP2010277572A
JP2010277572A JP2010019370A JP2010019370A JP2010277572A JP 2010277572 A JP2010277572 A JP 2010277572A JP 2010019370 A JP2010019370 A JP 2010019370A JP 2010019370 A JP2010019370 A JP 2010019370A JP 2010277572 A JP2010277572 A JP 2010277572A
Authority
JP
Japan
Prior art keywords
code
partial
partial code
screen transition
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010019370A
Other languages
English (en)
Inventor
Keishin Matsubara
敬信 松原
Satoshi Eguchi
悟史 江口
Yasushi Furukawa
裕史 古川
Shigeyuki Yamanaka
重幸 山中
Keiko Hirukawa
慶子 蛭川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP2010019370A priority Critical patent/JP2010277572A/ja
Publication of JP2010277572A publication Critical patent/JP2010277572A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】雛形コードに部分コードを挿入して展開コードを生成した後に、挿入した部分コードを特定する。
【解決手段】雛形コードに部分コードを挿入してスクリプトデータを生成する画面遷移編集ツール111が、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、スクリプトデータを生成する雛形データ部分コード挿入部124、および、雛形データ部分コード挿入部124が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、スクリプトデータに付与する特定情報付与部125、として機能させる。
【選択図】図1

Description

本発明はコードの自動生成を行うコード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法に関する。
従来、プログラムの仕様を入力すれば、実際にコーディングを行わなくても、プログラムを自動生成できる技術が開発されている。プログラム自動生成技術としては、例えば、予め、プログラムコードのテンプレートや、キーワードの変換規則を定義しておき、入力された仕様から、キーワードや、パラメータを抽出し、抽出したキーワードを変換規則に従って変換したり、抽出したパラメータをテンプレートに適用し、テンプレートを展開したりすることによってプログラムを自動生成するものが知られている。
また、プログラム自動生成に用いる変換規則の一部や、テンプレートを、プログラム自動生成を実現するプログラム自動生成プログラム自体から分離して保持する手法が提案されている(例えば、特許文献1)。このような手法により、入力する仕様や、出力するプログラムの形式が変更されても、その変更の影響がプログラム自動生成プログラム自体には及ばず、仕様等の変更に柔軟に対応できる。
特開平9−231063号公報(1997年9月5日公開)
しかしながら、上述のような従来技術では、一度、テンプレートを展開して自動生成したコードは、元のテンプレート部分と、自動生成ツールによって自動生成された部分との見分けがつかず、再利用することが難しかった。
このため、例えば、ベンダーが、自動生成ツールを用いて自動生成したコードを、サードパーティ等にサンプルコードとして提供するような場合において、サードパーティにおいて、サンプルコードの自動生成された部分をカスタマイズしたいという要望をもっていても、ベンダーは、この要望に応じられていなかった。
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、雛形コードに部分コードを挿入して展開コードを生成した後に、挿入した部分コードを特定して再利用しやすくすることができるコード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法を実現することにある。
本発明に係るコード生成プログラムは、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成プログラムであって、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させることを特徴としている。
本発明に係るコード生成装置は、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備えることを特徴としている。
本発明に係るコード生成装置の制御方法は、上記課題を解決するために、雛形コードに部分コードを挿入して展開コードを生成するコード生成装置の制御方法であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含むことを特徴としている。
上記構成によれば、部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、部分コードを挿入して、展開コードを生成するとともに、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記展開コードに付与することができる。
これにより、展開コードを生成した後にも、付与された挿入位置特定情報によって、上記雛形コードに上記部分コードを挿入した位置を特定することができる。
この結果、展開コードを生成した後、展開コードについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段、および、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段、として機能させることが好ましい。
従来、展開コードを変更する場合には、改めて、雛形コードに、部分コードを挿入するといった動作が必要であった。
つまり、上述のような従来技術では、一度、テンプレートを展開して自動生成したコードは、プログラム自動生成プログラムにおいて再利用することができなかった。
これに対して、上記構成は、上記生成された展開コードにおいて挿入された部分コードを、展開コードに付与された挿入位置特定情報によって検出し、検出した挿入位置特定情報が示す位置に挿入されている部分コードを、該部分コードとは異なる他の部分コードに置き換えることができる。
これにより、一度生成された展開コードおける部分コードとして挿入された箇所を、別の部分コードに差し替えて、元の展開コードを書き換えることが可能となる。
すなわち、本発明では、生成された展開コードにおいて挿入された部分コードを、別の部分コードに差し替えるので、雛形コードの影響は受けない。このため、例えば、雛形コードが、更新されている、あるいは何らかの理由で失われてしまっているといった状態においても、展開コードの変更が可能である。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って、上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段、として機能させることが好ましい。
上記構成によると、上記展開コードを生成するとき、および、上記展開コードを更新するときにおいて変換の対象である変換前パラメータと、変換後の結果である変換後パラメータとの対応を定義するパラメータ変換規則が用いられる。具体的には、変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている変換前パラメータを、上記パラメータ変換規則に従って変換することで、それぞれのときにおいて部分コードが生成される。
そして、上記展開コードを生成するとき、および、上記展開コードを更新するときの違いは、パラメータ指定情報において指定されている変換前パラメータが異なる点である。
このように、本発明では、変換前パラメータの指定を変更するだけで、展開コードを変更することができ、変更点を、実際にコーディングする労力を軽減することができる。
また、本発明に係るコード生成プログラムでは、上記付与手段は、複数の上記パラメータ変換規則のうちの1つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成することが好ましい。
上記構成によれば、雛形コードに含まれる複数のパラメータ変換規則のうち、いずれの上記パラメータ変換規則を用いるべきかを示す変換規則指定情報において示される上記パラメータ変換規則を用いて上記部分コードを生成し、生成した部分コードを展開コードに挿入するとともに、上記変換規則指定情報が含まれる挿入位置情報を付与する。
そして、展開コードを変更する場合においても、上記変換規則指定情報に含まれる上記変換規則指定情報において示される上記パラメータ変換規則を用いて変更部分コードを生成することができる。
これにより、展開コード内の挿入位置情報を参照するだけで、その他の情報を参照することなくパラメータ変換規則を特定できる。これにより、展開コードを生成するとき、および、展開コードを変更するときにおいて用いるパラメータ変換規則を一致させることができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段、および、上記差分検出手段が検出した差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する反映手段、として機能させることが好ましい。
雛形コードから生成した展開コードを、ツールによらず改修したい場合もある。しかしながら、従来技術では、雛形コードから生成した展開コードを改修してしまうと、その改修箇所を反映させるすべがなかった。
つまり、従来、コード自動生成プログラムは、所定の雛形コードを用いなければならず、所定の変換規則に従った、定められた形式のコードしか自動生成することができず、このような改修箇所を、従来のコード自動生成プログラムが生成するコードには、反映させることができなかった。
これに対して、上記構成によれば、上記パラメータ指定情報取得手段が取得したパラメータ指定情報に指定されている上記変換前パラメータを、上記パラメータ変換規則に従って再度変換することで上記部分コードを再生成し、該再生成した部分コードと、展開コードに挿入されている上記部分コードとを比較して差分を検出する。そして、検出した差分を、更新部分コードに反映する。
これにより、コード生成装置によらないで編集された展開コードにおける部分コードの変更点を、新たにコード生成装置によって生成する展開コードに反映させることができる。
また、本発明に係るコード生成プログラムでは、上記挿入手段は、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与することが好ましい。
ところで、本発明に係るコード生成装置の外部、例えば、テキストエディタ等の機能を搭載したコード編集装置において、上記展開コードを編集するということも考えられる。
上記構成によれば、展開コードに対する編集機能を有するコード編集装置において行う場合、挿入位置特定情報は、挿入位置特定情報に対する編集を抑止するための情報として取り扱われる。これにより、無闇に挿入位置特定情報が改変されることを防ぎ、コード生成装置において、正当な挿入位置特定情報を取り扱うことができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与し、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させることが好ましい。
上記構成によれば、上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与する。また、上記構成によれば、上記コンピュータを、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させる。
これにより、雛形コードが更新されている場合には、更新後の雛形コードを用いて展開コードを生成することができる。
また、本発明に係るコード生成プログラムでは、上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させることが好ましい。
上記構成によれば、上記コンピュータを、上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させる。
これにより、部分コード生成手段が生成した部分コードから、パラメータ指定情報を得ることができる。すなわち、生成された展開コードから、パラメータ指定情報を再現できる。この結果、生成された展開コードのパラメータ指定情報をもとに再開発を行うことができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映することが好ましい。
上記構成によれば、上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する。
これにより、画面遷移が同一となるイベントに関し、イベント検知コードに差分を反映させることができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映することが好ましい。
上記構成によれば、上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する。
これにより、同一イベントを検知するコードに差分を反映させることができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、複数の上記挿入手段を備え、上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与することが好ましい。
上記構成によれば、挿入手段は、その固有の挿入位置指定情報が示す位置に固有の部分コードを挿入するとともに、その固有の挿入位置特定情報を付与することができる。
よって、複数の挿入手段があっても、いずれの挿入手段によって、部分コードが挿入されたかを知ることができる。
この結果、複数の挿入手段があっても、互いの部分コード挿入位置が干渉しないように、それぞれの挿入箇所を分けて管理することができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段、上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段、および、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段、として機能させることが好ましい。
上記構成によれば、展開された雛形コードには挿入手段に固有の挿入位置特定情報が挿入されているので、その挿入手段に固有の挿入位置特定情報を検出すれば、変更部分コード取得手段が部分コードを置き換えるべき位置を特定することができる。
このため、固有の部分コードを置き換える場合においても、その他の挿入手段に固有の部分コードと置き換え位置が干渉しないように、各置換手段による置き換え箇所を分けて管理することができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段、として機能させることが好ましい。
上記構成によれば、コード編集装置によって、部分コードが編集されたとき、挿入手段によって部分コードが挿入される場所以外の場所に、その編集内容を退避することができる。
この結果、コード編集装置によって編集された内容が、後に挿入手段が挿入する部分コードによって意図しない状態に書き換えられることを防ぐことができるという効果を奏する。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段、として機能させることが好ましい。
上記構成によれば、コード編集装置によって固有の部分コードが編集された後、置換手段によってその固有の部分コードが置き換えられようとしていることを検知することができる。よって、コード編集装置が編集した箇所が置き換えられようとしていることを事前に知ることができるという効果を奏する。
さらにいえば、部分コードの置き換えを事前に知ることにより、その旨を、開発者等に通知したり、その置き換えを制限したりするといった対策を打つことも考えられる。
また、本発明に係るコード生成プログラムでは、上記コンピュータを、上記複数の挿入手段の上記部分コードにおいて共通に設定可能な設定値が、一の上記挿入手段が挿入する固有の部分コードで指定されたとき、他の上記挿入手段が挿入する固有の部分コードで上記設定値が設定されることを禁止する禁止手段、として機能させることが好ましい。
上記構成によれば、先に、各挿入手段の部分コードで共通に設定可能な設定値を設定した部分コードが挿入されたとき、後から当該設定値を設定する部分コードを作成することを禁止することができる。
これにより、先に指定した設定値を上書きされることを保護したり、先に指定した設定値に矛盾する設定値を後から指定されることを防いだりすることができる。
上記プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。また、上記記録媒体によれば、記録媒体から読み出されるプログラムが、汎用のコンピュータ上で実行される。これにより、本発明の目的を達成することができる。
本発明に係るコード生成プログラムは、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させるためのプログラムである。
本発明に係るコード生成装置は、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備える構成である。
本発明に係るコード生成装置の制御方法は、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含む方法である。
それゆえ、展開コードを生成した後、展開コードについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
本実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。 コンテンツサービスの一例を示す図である。 リモコンの外観について例示する図である。 サービスデータのデータ構造を模式的に示す図である。 画面遷移編集ツールのデータフローを示す図であり、(a)は、画面遷移編集ツールが、スクリプトデータを新規作成する場合のデータフローであり、(b)は、作成したスクリプトデータを流用して、スクリプトデータを再作成する場合のデータフローである。 コンテンツサービスの画面遷移の一例について示す図である。 コンテンツサービスの一画面についての画面遷移の一例を示す図である。 画面遷移表のデータ構造の一例を示すテーブルである。 画面遷移編集ツールが作成するイベント検知記述の一例について示す図である。 イベント対応記述の一例について示す図である。 雛形データの一例を示す図である。 スクリプトデータの作成に用いられるパターンデータの一例を示す図である。 雛形データを展開して作成したスクリプトデータの一例を示す図である。 コンテンツサービスの一画面についての画面遷移の別の例を示す図である。 画面遷移表の一部を示すテーブルである。 更新後の画面遷移表に基づいて再作成した部分データを示す図である。 更新後の画面遷移表に基づいて再作成したスクリプトデータを示す図である。 画面遷移編集ツールが、雛形データを用いてスクリプトデータを作成する場合の処理の流れを示すフローチャートである。 画面遷移編集ツールが、スクリプトデータを流用してスクリプトデータを再作成する場合の処理の流れを示すフローチャートである。 他の実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。 外部ツールによって修正されたスクリプトデータの一例を示す図である。 スクリプトデータの元の部分コードを示す図である。 スクリプトデータ部分コード生成部が生成する部分コードの一例を示す図である。 部分コード修正部が生成する部分コードの一例を示す図である。 修正コードを反映させて作成したスクリプトデータの一例を示す図である。 雛形データ部分コード生成部が生成する部分コードの一例を示す図である。 雛形データを展開して作成したスクリプトデータの一例を示す図である。 外部ツールによって修正されたスクリプトデータの一例を示す図である。 スクリプトデータ部分コード生成部が生成するスクリプトデータの一例を示す図である。 部分コード修正部が生成する部分コードの一例を示す図である。 外部ツールで修正されたスクリプトデータの部分コードの一例を示す図である。 スクリプトデータ部分コード挿入部が生成するスクリプトデータの一例を示す図である。 画面遷移編集ツールが雛形データを用いてスクリプトデータを作成する場合の処理の流れについて例示したフローチャートである。 さらに別の実施形態に係る画面遷移編集ツールを動作させるための開発装置の概略的構成について示したブロック図である。 イベント対応記述を作成するためのパターンデータの一例を示す図である。 画面遷移編集ツールが作成するイベント対応記述の一例について示す図である。 本実施形態に係るイベント対応記述の一例について示す図である。 本実施形態に係るイベント検知記述の一例について示す図である。 本実施形態に係るイベント検知記述の一例について示す図である。 本実施形態に係るイベント対応記述の一例について示す図である。 本実施形態に係るイベント検知記述の一例について示す図である。 本実施形態に係るイベント検知記述の一例について示す図である。 サービス開発ツールの概要について説明した概略図である。 スクリプトデータの各領域の構成および各ツールの編集領域について概略的に説明する模式図である。 画面遷移編集ツールを動作させている開発装置の概略的構成について示した機能ブロック図である。 雛形データの他の例を示す図である。 画面遷移表の一部について示したテーブルである。 雛形データ部分コード生成部が生成する部分コードの一例を示す図である。 画面遷移編集が作成するスクリプトデータの一例を示す図である。 画面レイアウト作成ツールのユーザインターフェースの一例について示した図である。 画面レイアウト作成ツールを動作させている開発装置の概略的構成について示した機能ブロックである。 スクリプトデータ部分コード生成部が生成する部分コードの一例を示す図である。 スクリプトデータ部分コード挿入部が部分コードを挿入することにより得られるスクリプトデータの一例を示す図である。 スクリプトエディタによって編集されたスクリプトデータの一例を示す図である。 スクリプトエディタによって編集されたコードが退避された状態のスクリプトデータの一例を示す図である。 サービス開発ツールの変形例について示す機能ブロック図である。 画面遷移表の一部について示したテーブルである。
〔実施形態1〕
本発明の一実施形態について図1〜図19に基づいて説明すると以下の通りである。以下の実施形態では、例示的に、インターネットに接続された通信機能を有するテレビジョン受像機(以下、テレビと称する)に対して、ネットワークを介して種々のコンテンツを提供するサービス(以下、コンテンツサービスと称する)を開発するため開発ツールについて説明する。
(コンテンツサービスの概要)
まず、図2を参照しながら、コンテンツサービスの概要について説明する。図2は、コンテンツサービスの一例を示す図である。
図2に示す例では、コンテンツサービスは、テレビV1において、文字、画像、動画等の情報提示を行うサービスである。テレビV1には、画面P1が表示されている。画面P1には、表示内容Aが含まれており、その下方には、GUI(Graphical User Interface)部品である左矢印ボタン10、および右矢印ボタン11が配置されている。
本実施形態では、例示的に、コンテンツサービスは、複数の画面から構成されるものであり、各画面において情報提示を行うものとしている。
このようなコンテンツサービスでは、例えば、テレビV1を操作するためのリモートコントローラ(以下、リモコンと称する)による操作をテレビV1が受け付けることにより、各画面を切り替えて情報提示をするといった形態のサービスを提供することができる。
ここで、図3を用いて、テレビV1のリモコンV2の一例について説明する。図3は、リモコンV2の外観について例示する図である。図3に示すように、リモコンV2は、数字キーKN1〜KN12と、方向キーKD1〜KD4と、決定キーKP1と、戻るキーKP2と、機能キーKC1〜KC4とを備える。
そして、テレビV1は、リモコンV2におけるキー操作を検知して、検知したキー操作に応じて画面を遷移させる。
例えば、テレビV1は、画面P1を表示している間に、リモコンV2において右方向キーKD4が押下されたことを検知すると、右矢印ボタン11をハイライトさせる等の映像効果を提示しつつ、図示しない別の画面に表示画面を遷移させることができる。つまり、この例では、左矢印ボタン10、右矢印ボタン11のGUI部品は、方向キーKD2、KD3の操作によって画面遷移が起こることを示している。
このようなコンテンツサービスは、テレビV1において実行可能なソフトウェアであるコンテンツビューアがサービスデータを読み込んで、読み込んだサービスデータに基づいて動作することにより実現される。
(サービスデータについて)
ここで、図4を用いて、本実施形態におけるサービスデータのデータ構造について説明する。図4は、サービスデータのデータ構造を模式的に示す図である。
図4に示すとおり、サービスデータ50は、スクリプトデータ51と、オブジェクトデータ52とを含むデータ構造である。
オブジェクトデータ52は、テレビV1において、表示、再生して、ユーザに提示することが可能なデータである。すなわち、オブジェクトデータ52には、テレビV1において提示可能な写真などの静止画像、動画データ、テキストデータ、および音声データなどが含まれる。
スクリプトデータ51は、コンテンツサービスを実現するための各種機能を制御するための制御命令が記述されているものである。スクリプトデータ51は、テレビV1において、コンテンツサービスの画面遷移を実現するためのコードが記述された画面遷移定義スクリプト53を含む。
画面遷移定義スクリプト53は、テレビにおいて発生したイベントに応じて、テレビが実行すべき画面遷移について記述したコードである。ここで、イベントとは、主として、ユーザによるキー入力のことを指すが、その他、所定時間経過、所定動作開始/終了時、および、表示用データ受信などが含まれていてよい。
そして、画面遷移定義スクリプト53には、イベント検知記述54と、イベント対応記述55とが含まれる。
イベント検知記述54は、イベントを検知するための命令するための命令を記述したものである。イベント検知記述54には、ユーザによるキー入力イベント、例えば、リモコンV2のキー操作イベントを検知するための命令を記述することができる。
また、イベント対応記述55とは、イベント検知記述54において検知されるイベントに対して、いずれの画面遷移を実行するかについて規定したものである。イベント検知記述54およびイベント対応記述55の詳細については後述する。
以下では、リモコンV2のキー操作イベントを検知する命令をイベント検知記述54において記述し、イベント対応記述55において、キー操作イベントに対応する画面遷移を規定する例について説明するが、このような例に限られない。例えば、次の画面を表示するためのサービスデータを取得したときに発生する表示用データ受信イベントを検知するための命令をイベント検知記述において記述し、イベント対応記述55において、表示用データ受信イベントの検知に応じて「次の画面へ遷移する」と規定することもできる。
そのほか、スクリプトデータは、テレビV1が提供すべき機能について記述したものを含んでいてもよいし、オブジェクトデータ52の表示方法、画面上の位置、大きさなどについて記述したものを含んでいてもよい。
スクリプトデータ51が、ファイルシステム上で管理されている場合、スクリプトデータ51は、1ファイルにすべて含まれていてもよいし、例えば、イベント検知記述54およびイベント対応記述55は、別々の2ファイルに含まれていてもよい。また、イベント検知記述54は、複数のファイルに分散して記述されていてもよい。
(コンテンツサービスの開発環境)
次に、コンテンツサービスの開発環境について説明する。コンテンツサービスを提供する事業者は、次のような開発工程によりコンテンツサービスを開発する。
1.コンテンツサービスを構成する画面の遷移を規定する。
2.規定した各画面の表示内容・レイアウト等を作成する。
3.作成した画面上で発生するイベントに対する動作を規定する。
4.動作検証を行う。
このような、一連の開発工程を支援するべく、開発環境が提供される。開発とは、オブジェクトデータおよびスクリプトデータを作成して、サービスデータを作成することに他ならない。開発環境とは、コンピュータ上で実行可能な、単一または複数のプログラムであって、上記のような開発工程を支援する処理を実行するものである。
また、開発環境には、各開発工程に対応した種々の開発ツールが含まれる。開発ツールの例としては、テキストエディタや、GUI部品の編集ツール、テスト検証ツール等が挙げられる。本実施形態においては、特に、上記開発工程1.に対応する開発ツール(以下において、画面遷移編集ツールと称する)について焦点を当てて説明していく。
(画面遷移編集ツール)
次に、図5を用いて、画面遷移編集ツール111について説明する。図5は、画面遷移編集ツール111のデータフローを示す図である。図5の(a)は、画面遷移編集ツール111が、スクリプトデータ51を新規作成する場合のデータフローであり、図5の(b)は、作成したスクリプトデータ51を流用して、スクリプトデータ51を再作成する場合のデータフローである。
図5の(a)に示すように、画面遷移編集ツール111は、雛形データ60と、画面遷移表70とを入力として、スクリプトデータ51を新規に作成し出力する。
雛形データ60とは、スクリプトデータ51の一部が未完成のコードであり、いわばスクリプトデータ51の半完成版である。画面遷移編集ツール111は、スクリプトデータ51の未完成の部分に、画面遷移表70に従って生成した部分コードを挿入して完成版のスクリプトデータ51を作成する。
画面遷移表70とは、画面遷移の仕様を定義するものである。画面遷移の詳細については、後述する。
また、図5の(b)に示すように、画面遷移編集ツール111は、作成したスクリプトデータ51と、画面遷移表70とを入力として、新たなスクリプトデータ51を出力する。画面遷移編集ツール111では、一度、スクリプトデータ51を作成すれば、そのスクリプトデータ51を流用して、新たにスクリプトデータ51を作成することができる。
(コンテンツサービスの画面遷移について)
次に、図6を用いて、コンテンツサービスの画面遷移について詳細に説明する。図6は、コンテンツサービスの画面遷移の一例について示す図である。
図6には、コンテンツサービスの開始地点PS、画面P1〜P6、それらのインデックス画面PI、およびコンテンツサービスの終了地点PEの間における画面遷移が示されている。
開始地点PSは、コンテンツサービスが開始されるエントリポイントである。そして、画面P1〜P6において、各種の情報提示を行う。インデックス画面PIは、例えば、画面P1〜P6を示すサムネイルをリスト表示することで、コンテンツサービスを受けるユーザに各画面の全体像を把握させる目的で設けられる画面である。また、終了地点PEは、コンテンツサービスの終了を示している。
また、画面P1〜P6には、それらの画面を識別するための画面識別情報“GMN001”〜“GMN006”が、それぞれ付されている。インデックス画面PIの画面識別情報は、“index”である。
図6に示す各画面では、検知すべきリモコン操作について規定されている。そして、各画面では、検知したキー操作に応じて遷移すべき画面が矢印で示されている。
図6に示すように、コンテンツサービスは、開始地点PSから始まり、まず画面P1に遷移する。
画面P1では、右方向キーKD4のキー操作に応じて、画面P2に遷移する旨が規定されている。画面P2〜画面P5についても同様に、右方向キーKD4のキー操作に応じて、次の画面P3〜画面P6に遷移する旨が規定されており、画面P6については、画面P1に遷移する旨が規定されている。
画面P2〜画面P6において、左方向キーKD3のキー操作に対しては、それぞれ画面P1〜画面P5に画面遷移するよう規定されている。画面P1では、左方向キーKD3のキー操作に対し、画面P6に遷移する旨規定されている。
また、画面P1〜画面P6において、決定キーKP1および青機能キーKF1に応じて、インデックス画面PIに遷移する旨が規定されている。インデックス画面PIでは、戻るキーKP2および青機能キーKF1に応じて、元の画面に遷移する旨が規定されている。
そして、画面P1〜画面P6において、戻るキーKP2に応じて、終了地点PEに遷移する旨が規定されている。終了地点PEに遷移すると、コンテンツサービスは終了となる。
このような画面遷移が、スクリプトデータ51において規定される。画面遷移編集ツール111は、このような画面遷移を実現するスクリプトデータ51の記述を支援するためのツールである。図6が示すような画面遷移は、画面遷移表70において定義される。
(イベントコードについて)
次に、テレビV1のコンテンツビューアにおいて、画面遷移のためのキー操作がどのように扱われるかについて以下に、説明する。
図6に示した画面遷移についてのキー操作は、テレビV1のコンテンツビューアの内部的では、イベントとして処理される。すなわち、リモコンV2におけるキー操作により、テレビV1のコンテンツビューアでは、各キーに対応するイベントが発生する。各イベントには、そのイベントを識別するためのイベントコードが割り当てられている。
そして、発生したイベントのイベントコードを検知するための処理を、スクリプトデータ側で、記述しておく。すなわち、スクリプトデータに、そのイベントに対応するイベントコードを検知するコードを記述しておくことで、コンテンツビューアが、このコードに従って、キー操作を検知することができ、これにより画面遷移を実現している。しかしながら、これは飽くまで画面遷移を実現するための手法の一例であり、上記の手法とは別の周知技術、慣用技術等を適用することにより画面遷移を実現してもよい。
ここで、再び図2を用いて、リモコンV2の各部について詳細に説明すると、以下のとおりである。
数字キーKN1〜KN12には、それぞれ、「1」〜「12」までの数字が割り当てられている。数字キーKN1〜KN12は、例えば、チャンネルの選択や、数字を入力する目的で用いられる。なお、KN10については、「10/0」が割り当てられており、場合に応じて、「10」の意味と、「0」の意味とを使い分けることができる。
方向キーKD1〜KD4は、方向を選択するためのキーであり、それぞれ、「上」「下」「左」「右」が割り当てられている。方向キーKD1〜KD4は、例えば、画面に表示されるカーソルの移動や、リストを選択する目的で用いられる。
決定キーKP1は、例えば、リストの中から選択した項目を決定したりする目的で用いられる。また、戻るキーKP2は、入力した内容を取り消したり、前の画面に戻ったりする目的で用いられる。
機能キーKC1〜KC4には、それぞれ、固有の機能が割り当てられる。また、機能キーKC1〜KC4は、それぞれ、「青」、「緑」、「赤」、「黄」の彩色がなされている。
また、リモコンV2の各キーに割り当てられているイベントコードについて説明すると次のとおりである。
数字キーKN1〜KN9、KN10、KN11、およびKN12には、それぞれ、「1」〜「9」、「0」、「e」、および「t」のイベントコードが割り当てられている。
方向キーKD1〜KD4には、それぞれ、「w」「z」「d」「a」のイベントコードが割り当てられている。
決定キーKP1には、イベントコード「k」が割り当てられており、戻るキーKP2には、イベントコード「x」が割り当てられている。
機能キーKC1〜KC4には、それぞれ、「b」、「g」、「r」、「y」のイベントコードが割り当てられている。
(画面遷移表のデータ構造)
次に、図8を用いて、画面遷移表70のデータ構造の一例について説明する。図8は、画面遷移表のデータ構造の一例を示すテーブルである。図8に示す画面遷移表(変換規則、パラメータ指定情報)T1は、図6が示す画面遷移を定義するものである。
第1列には、画面識別情報が定義される。すなわち、各行は、各画面についての画面遷移を規定している。例えば、第1行は、画面識別情報“GMN001”、すなわち画面P1についての画面遷移を規定している。
第2列〜第11列は、各キー操作に対応しており、各キー操作が検知された場合、いずれの画面に遷移すべきかを示す画面遷移情報が定義される。例えば、第2列および第3列では、決定キーKP1および戻るキーKP2について定義される。また、第4列〜第7列では、上下左右方向キーKD1〜KD4について定義される。そして、第8列〜第11列では、機能キーKF1〜KF4について定義される。なお、第2列〜第11列のタイトル項目においてかっこ書きで示す文字は、それぞれ各キー操作によって発生するイベントコードを示している。
第12列には、その画面遷移を実現するためのスクリプトデータを作成するために用いる雛形データの名称が定義される。
そして、第13列には、その画面において保持することのできる画面変数が定義される。
画面遷移表T1の第1行目について説明する。第1行では、「決定」および「戻る」キーについて、“index”および“END”が定義されている。また、「右」および「左」方向キーについて、“GMN002”および“GMN006”が定義されている。そして、「青」機能キーについて“index”が定義されている。また、スクリプトデータを作成するために用いる雛形データは、“template1.svg”であり、画面変数の変数名は、“current”である。画面変数は、画面遷移先を決定するために用いられる変数である。すなわち、キーイベントが発生した際に、画面変数に格納されている値を参照し、その値を用いて画面を特定し、その画面に画面遷移する。
つまり、第1行では、図7に示すような画面遷移が定義されていることになる。
図7は、図6における画面P1の画面遷移について焦点を当てたものである。画面P1において、イベントコード「k」および「b」のイベントが発生した場合、画面PIに画面遷移することを示している。また、画面P1において、イベントコード「d」のイベントが発生した場合、画面P2に画面遷移することを示している。そして、イベントコード「a」のイベントが発生した場合は、画面P6に画面遷移し、イベントコード「x」のイベントが発生した場合は、終了地点PEに遷移することを示している。
続いて、図9および図10を用いて、このような画面遷移表の定義にもとづくスクリプトデータのコーディングについて説明する。本実施形態では、スクリプトデータにおいて、画面遷移は、イベント検知記述と、イベント対応記述との2種に分けてコーディングされる。
図9は、画面遷移編集ツール111が作成するイベント検知記述の一例について示す図である。また、同図は、画面P1(画面識別情報“GMN001”)について定義するイベント検知記述の例である。
図9に示す“KeyEvent()”関数は、リモコンV2の操作により発生するイベントのうち、いずれのイベントをその画面で検知すべきかを規定するものである。
ブロックL11〜L15のそれぞれにおいて記述されている、“(evtData == ’○○’)”のコードは、イベントコードの検知に用いられるものである。すなわち、ブロックL11〜L15では、それぞれ「k」、「x」、「d」、「a」、「b」をそれぞれ検知することを示している。
また、検知されたイベントに対応する画面遷移は、図10に示すようなイベント対応記述に記述される。図10は、画面P1(画面識別情報“GMN001”)について定義するイベント対応記述の一例について示す図である。
図10が示すとおり、イベント対応記述E1は、XML(eXtensible Markup Language)により記述される。同図に示す5つの「nextstep」タグでは、イベントと、画面遷移との対応関係が定義される。「nextstep」タグには、イベントコードを示す「when」属性と、遷移すべき画面の画面識別情報を示す「href」属性とを含む。
図10に示す、5つの「nextstep」タグでは、それぞれ、「when」属性において、「k」、「x」、「d」、「a」、「b」が規定されており、「href」属性において、“index”“GMN002”“GMN006”“index”“GMN002”が規定されている。すなわち、5つの「nextstep」タグでは、それぞれ、「k」、「x」、「d」、「a」、「b」のイベントコードに対して、“index”“GMN002”“GMN006”“index”“GMN002”の画面に画面遷移する旨が規定されている。
なお、画面遷移編集ツール111は、画面遷移表T1を編集する機能を有していてもよい。また、画面遷移編集ツール111は、画面遷移表T1を編集・更新するためのユーザインターフェースを提供してもよい。
例えば、画面遷移編集ツール111が、画面遷移表T1を、表計算ソフトにおいて採用されているような表形式のユーザインターフェースによりディスプレイ等に提示して、ユーザの編集を受け付けてもよい。この場合、ユーザは、画面遷移表T1を編集するための値を各セルに入力することで画面遷移表T1を更新することができる。
また、以下の説明では、説明の便宜上、主として、イベント検知記述の作成に関する技術的手法について焦点を当てて説明していくが、以下で説明する技術的手法をイベント対応記述の開発にも適宜適用することが可能であることが当業者であれば理解可能なはずである。すなわち、画面遷移編集ツール111の機能は、イベント検知記述およびイベント対応記述を作成することにあるが、以下では、イベント検知記述について特に詳細に説明を行う。
しかしながら、画面遷移編集ツール111の機能は、イベント検知記述の作成に限定されるわけでなく、画面遷移編集ツール111に関する技術的内容は、限定的でなく、広く理解されなければならない。例えば、画面遷移編集ツール111に関する技術的内容は、プログラムのソースコード開発等に広く適用可能であることが、当業者であれば理解できるはずである。
以下の説明では、特に記載しない限り、「スクリプトデータ」の語句を、イベント検知記述のことを指すものとして用いる。
(開発装置および画面遷移編集ツールの構成について)
次に、図1を用いて、本実施形態に係る画面遷移編集ツール(コード生成プログラム)111を動作させるための開発装置(コード生成装置)100、および、画面遷移編集ツール111の構成について説明する。図1は、本実施形態に係る画面遷移編集ツール111を動作させるための開発装置100の概略的構成について示したブロック図である。
開発装置100は、例えば、PC(Personal Computer)や、ワークステーション端末等により実現することができる。また、図1に示すとおり、開発装置100は、操作部101、表示部102、制御部110、および記憶部150を備える。
操作部101は、開発者から各種の入力を受け付けるものであり、典型的には、入力用ボタン、キーボード、テンキー、マウスなどのポインティングデバイス、タッチパネル、その他の入力デバイスによって構成される。受け付けた開発者の操作に応じて操作データを生成し、生成した操作データを制御部110に送信する。
表示部102は、開発者に対して、情報提供を行うための画面表示を行うものである。表示部102は、制御部110から受信した画面データに基づいて、表示画面に文字や画像などの各種の情報を表示する。表示部102は、例えば、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、EL(Electroluminescence)ディスプレイなどの表示デバイスによって構成される。
制御部110は、開発装置100における各種機能を統括的に制御するものである。制御部110の制御機能は、制御プログラムをCPU(Central Processing Unit)などの処理装置が実行することによって実現される。この制御プログラムは、例えば、RAM(Random Access Memory)やフラッシュメモリなどの記憶素子としての記憶部150に記憶されていてもよいし、ハードディスク等の記憶装置としての記憶部150にインストールされたものを読み込んで使用する形態であってもよい。
また、制御部110では、上記制御プログラムと同様の形態で、画面遷移編集ツール111が実行される。画面遷移編集ツール111の詳細については後述する。
記憶部150は、各種データおよびプログラムを記憶するものである。記憶部150の構成としては、例えば、ハードディスク等の不揮発性の記憶装置と、書換え可能な不揮発性の半導体メモリ(例えばフラッシュメモリ)と、制御部110が動作するときに必要なプログラムや、各種制御に用いる固定データを記憶する読出し専用の半導体メモリであるROM(Read Only Memory)と、通信に関するデータ、演算に使用するデータ、および演算結果などを一時的に記憶する、いわゆるワーキングメモリとしてのRAMとが挙げられる。
(記憶部の詳細)
次に、記憶部150の詳細について説明する。記憶部150は、プログラム記憶部151、雛形データ記憶部152、画面遷移表記憶部153、パターンデータ記憶部154、およびスクリプトデータ記憶部155を備える。
プログラム記憶部151には、開発環境を実現するプログラムコードが記憶される。つまり、プログラム記憶部151には、開発環境に含まれる画面遷移編集ツール111を実現するためのプログラムコードが記憶されている。
このプログラムコードは、取り外し可能な記録媒体によって開発装置100に供給されてもよいし、ネットワークを介して供給されてもよい。
なお、画面遷移編集ツール111は、開発装置100に準ずる他の装置において実行することが可能であり、例えば、デスクトップPC、ノート型PC、PDA(Personal Digital Assistant)等の形態を問わず実行可能である。
雛形データ記憶部152には、画面遷移編集ツール111がスクリプトデータ(展開コード)を作成するために用いる雛形データが記憶される。
ここで、図11を用いて、雛形データの詳細について説明すると次のとおりである。図11は、雛形データの一例を示す図である。
図11が示す雛形データH1は、リモコンV2の操作によるイベントのイベントコードを検出するためのスクリプトデータを作成するためのものである。また、同図が示す雛形データの名称は、“template1.svg”である。
雛形データH1では、“KeyEvent()”関数の一部が記述されている。雛形データH1のKeyEvent関数には、“<%=key_event%>”というコードで示される挿入位置指定情報M1が含まれる。挿入位置指定情報M1は、画面遷移表を用いて生成する部分コードを挿入する位置を、画面遷移編集ツール111に指定するためのものである。
画面遷移表記憶部153には、図8を用いて説明した、画面遷移表が記憶される。
パターンデータ記憶部154には、画面遷移編集ツール111が雛形データに挿入するための部分コードを生成するためのパターンデータが記憶される。
ここで、図12を用いて、パターンデータについて説明すると次のとおりである。図12は、スクリプトデータの作成に用いられるパターンデータの一例を示す図である。
図12に示すパターンデータH2は、KeyEvent関数の断片的な一部である。パターンデータH2に含まれる“(evtData == ’%s’)”のコードは、イベントコードの判定に用いられるものである。同図に示す、変換指定子M2(“%s”)は、画面遷移編集ツール111にパラメータ変換を行うべきことを通知するためのキーワードである。
パラメータ変換の一例としては、スクリプトデータの作成処理において、変換指定子M2の“%s”を、画面遷移表に定義されているイベントコードに置き換えることが挙げられる。
より具体的には、イベントコード「k」が画面遷移表から抽出されている場合、画面遷移編集ツール111は、“%s”を、“k”に置き換えて、結果コード“(evtData == ’k’)”を出力する。画面遷移編集ツール111が、パターンデータH2を処理する動作詳細については後述する。
なお、本実施形態では、画面遷移編集ツール111によるスクリプトデータの作成処理において、上述のようなパターンデータを用いることとしているが、これに限られず、パターンデータを用いない構成とすることも可能である。例えば、雛形データH2の挿入位置指定情報M1が示す位置において、単に、画面遷移編集ツール111が、画面遷移表から抽出したパラメータを挿入するだけの構成とすることも可能である。
スクリプトデータ記憶部155には、画面遷移編集ツール111によって作成されたスクリプトデータが記憶される。
(画面遷移編集ツールの詳細)
次に、画面遷移編集ツール111の詳細について説明する。画面遷移編集ツール111は、プログラム記憶部151に記憶されている画面遷移編集ツール実行プログラムが、動作可能なように制御部110にロードされたものである。
画面遷移編集ツール111は、画面遷移表更新部121、雛形データ挿入位置検知部122、雛形データ部分コード生成部(部分コード生成手段)123、雛形データ部分コード挿入部(挿入手段)124、特定情報付与部(付与手段)125、雛形データ特定部131、スクリプトデータ挿入位置検知部(挿入位置特定情報検出手段)132、画面遷移表生成部(パラメータ指定情報生成手段)133、スクリプトデータ部分コード生成部(部分コード生成手段)134、およびスクリプトデータ部分コード挿入部(置換手段)135を備える。
画面遷移表更新部121は、操作部101において受け付けた開発者の操作に応じて、画面遷移表記憶部153に記憶されている画面遷移表を更新する。画面遷移表更新部121は、画面遷移表における行の追加、削除、および、各列に定義されている内容の追加、変更、削除等の機能を提供する。また、画面遷移表更新部121は、新規に画面遷移表を作成することもできる。
雛形データ挿入位置検知部122は、雛形データに含まれる挿入位置指定情報を検知する。具体的には、雛形データ挿入位置検知部122は、画面遷移表記憶部153から画面遷移表を読み出して、読み出した画面遷移表に定義された雛形データを、雛形データ記憶部152から読み出す。雛形データ挿入位置検知部122は、画面遷移表に雛形データが定義されていない場合は、デフォルトの雛形データを用いるようにしてもよい。
そして、雛形データ挿入位置検知部122は、雛形データを構文解析および字句解析することにより、部分コードを挿入する位置を示す挿入位置指定情報の位置を検知する。ここで、再び図11を参照し、同図に示す雛形データH1について説明すると、雛形データ挿入位置検知部122は、挿入位置指定情報M1が示す “<%=key_event%>”というコードの位置を検知する。
また、雛形データ挿入位置検知部122は、雛形データ部分コード生成部123に検知した挿入位置指定情報を転送するとともに、雛形データ部分コード挿入部124に、雛形データと、検知した挿入位置指定情報の位置情報とを転送する。
雛形データ部分コード生成部123は、画面遷移表を参照して、パターンデータを展開することで部分コードを生成する。
具体的には、雛形データ部分コード生成部123は、まず、雛形データ挿入位置検知部122から挿入位置指定情報を取得して、取得した挿入位置指定情報に対応するパターンデータをパターンデータ記憶部154から読み出す。挿入位置指定情報と、パターンデータとの対応関係は、記憶部150に記憶しておけばよい。例えば、図11を用いて示した挿入位置指定情報M1と、図12を用いて示したパターンデータH2との対応関係が記憶部150に記憶されていてよい。雛形データ部分コード生成部123は、この対応関係から、部分コードの生成に必要なパターンデータを特定する。なお、パターンデータは、雛形データと対応付けられていてもよい。
そして、雛形データ部分コード生成部123は、画面遷移表記憶部153の画面遷移表を参照して、画面遷移が定義されているイベントコードに基づいて、パターンデータを展開することでスクリプトデータの一部である部分コードを生成する。
例えば、図8を用いて示した例に則して説明すると次のとおりである。図8に示す画面遷移表T1における第1行に定義された画面遷移情報では、イベントコード「k」、「x」、「d」、「a」、「b」について画面遷移が定義されている。この場合、雛形データ部分コード生成部123は、これら5つのイベントコードそれぞれについてパターンデータH2内の変換指定子M2の変換を繰り返し行って、パターンデータH2を展開する。本実施形態において、パターンデータを展開するとは、繰り返しパターンデータの変換を行って得られたコードのそれぞれを順にマージすることを指している。
ここで、図13を用いて、図8に示す画面遷移表における第1行の定義に基づいて、展開されたパターンデータH2について説明すると次のとおりである。図13は、雛形データを展開して作成したスクリプトデータの一例を示す図である。雛形データ部分コード生成部123は、図8に示す画面遷移表における第1行の定義に基づいて、パターンデータH2を展開して、図13に示す部分コードD1を生成する。ここで、部分コードD1に含まれるブロックL11〜L15は、それぞれ、「k」、「x」、「d」、「a」、「b」について、雛形データ部分コード生成部123がパターンデータH2内の変換指定子M2の変換を行うことで得られたものである。
なお、雛形データ部分コード生成部123は、画面遷移表において列番号が小さい列に定義されているイベントコードから順に、パターンデータH2の展開を行ってもよい。つまり、雛形データ部分コード生成部123は、画面遷移表の第2列から、第11列にかけて、順にパターンデータH2の展開を行ってもよい。なお、本実施形態では、第2列、第3列、第6列〜第8列の順、すなわち、「k」、「x」、「d」、「a」、「b」の順にパターンデータH2の展開を行っている。
また、雛形データ部分コード生成部123は、生成した部分コードを雛形データ部分コード挿入部124に出力する。
雛形データ部分コード挿入部124は、部分コードを、雛形データの所定位置に挿入することでスクリプトデータを作成する。具体的には、雛形データ部分コード挿入部124は、まず、雛形データ部分コード生成部123が出力した部分コードを取得する。そして、雛形データ挿入位置検知部122から雛形データと、挿入位置指定情報の位置情報とを取得する。それから、雛形データにおける挿入位置指定情報の位置に、部分コードを挿入することでスクリプトデータを作成する。
また、雛形データ部分コード挿入部124は、雛形データの名称と、挿入位置指定情報の位置情報と、作成したスクリプトデータとを特定情報付与部125に転送する。
特定情報付与部125は、雛形データ部分コード挿入部124が作成したスクリプトデータに雛形データ識別情報(雛形コード識別情報)と、挿入位置特定情報とを付与する。
雛形データ識別情報とは、画面遷移編集ツール111において、スクリプトデータの作成に用いられた雛形データを特定するための情報であり、例えば、雛形データの名称を用いることができる。また、挿入位置特定情報とは、雛形データ部分コード挿入部124が、雛形データにおいて、部分コードを挿入した位置を特定するための情報である。特定情報付与部125は、雛形データの名称を雛形データ識別情報として、スクリプトデータに付与する。また、特定情報付与部125は、挿入位置指定情報の位置情報が示す位置に、挿入位置特定情報を付与する。
ここで、再び図9を参照して、特定情報付与部125が付与する雛形データ識別情報および挿入位置特定情報の例について説明すると次のとおりである。
図9に示すとおり、スクリプトデータにおいて、“/* template1.svg */”という雛形データ識別情報ID1が特定情報付与部125によって付与されている。雛形データ識別情報ID1は、KeyEvent関数の記述が始まる前の行に付与されているが、付与する場所に特に制限はない。
また、図9に示すとおり、スクリプトデータにおいて、挿入位置特定情報ID2AおよびID2Bである“/* <%=key_event%> */”というコードが特定情報付与部125によって付与されている。
挿入位置特定情報ID2Aは、部分コードD1が挿入される前の行に付与されており、部分コードD1の挿入開始位置を示す。挿入位置特定情報ID2Bは、部分コードD1が挿入された後の行に付与されており、部分コードD1のブロックの終了位置を示す。
このように、挿入位置特定情報ID2AとID2Bの対により、部分コードD1の開始位置と、終了位置とを特定できるようになっているが、この例に限定されず、挿入位置特定情報は、部分コードD1の開始位置と、終了位置とを特定できるような情報であればよい。例えば、挿入位置特定情報として、部分コードが、スクリプトデータ中の何行目、何列目から開始され、何行目、何列目で終わることを示す情報を採用してもよい。
また、この例では、雛形データ識別情報ID1、挿入位置特定情報ID2AおよびID2Bは、“/*”から始まって“*/”で終わるコードとして付与されているが、この領域は、コンテンツビューアが、スクリプトデータに記述されたコードを実行する際には、実行コードとして処理されない。すなわち、雛形データ識別情報ID1、挿入位置特定情報ID2AおよびID2Bは、スクリプトデータ上のコメント領域に付与されている。
特定情報付与部125は、雛形データ識別情報と、挿入位置特定情報とを付与したスクリプトデータをスクリプトデータ記憶部155に記憶する。
雛形データ特定部131は、スクリプトデータに付与されている雛形データ識別情報を検出して、検出した雛形データ識別情報からそのスクリプトデータを作成するのに用いられた雛形データを特定する。すなわち、図9の例でいえば、雛形データ識別情報ID1を検出し、検出した雛形データ識別情報から、スクリプトデータの作成に用いられた雛形データの名称“template1.svg”を特定する。
また、雛形データ特定部131は、特定した雛形データの名称を、画面遷移表生成部133に通知する。
スクリプトデータ挿入位置検知部132は、スクリプトデータに含まれる挿入位置特定情報を検知する。具体的には、スクリプトデータ挿入位置検知部132は、スクリプトデータ記憶部155から、流用するスクリプトデータを読み出し、読み出したスクリプトデータを構文解析および字句解析することにより、部分コードが挿入された位置を示す挿入位置特定情報の位置を検知する。すなわち、図9に例示したスクリプトデータY1を流用するのであれば、スクリプトデータ挿入位置検知部132は、挿入位置特定情報ID2AおよびID2Bの位置を検知する。
スクリプトデータ挿入位置検知部132は、画面遷移表生成部133、スクリプトデータ部分コード挿入部135に、検知した挿入位置特定情報の位置情報を転送する。また、スクリプトデータ挿入位置検知部132は、スクリプトデータ部分コード生成部134に検知した挿入位置特定情報を転送する。
画面遷移表生成部133は、スクリプトデータに含まれるイベント対応記述を解析して、解析した結果に基づいて、画面遷移表を生成するものである。
画面遷移表生成部133の具体的な動作について説明すると次のとおりである。まず、画面遷移表生成部133は、流用するスクリプトデータのイベント対応記述をスクリプトデータ記憶部155から読み出す。
続いて、画面遷移表生成部133は、画面遷移の定義を得るために次の処理を行う。
まず、画面遷移表生成部133は、読み出したイベント対応記述の「nextstep」タグを解析して、イベントコードと、画面識別情報との組を抽出する。
そして、画面遷移表生成部133は、抽出したイベントコードおよび画面識別情報の組を用いて、画面遷移表を生成する。
図10を用いて、より具体的に示すと、画面遷移表生成部133は、イベント対応記述E1に含まれる5つの「nextstep」タグの「when」属性および「href」属性の属性値を解析する。これにより、例えば、画面遷移表生成部133は、1つめの「nextstep」タグからは、イベントコード「k」および画面識別情報“index”の組を抽出する。残り4つの「nextstep」タグについても同様である。
画面遷移表生成部133は、このようにして抽出したイベントコードおよび画面識別情報を、図8に示したような画面遷移表の第2列〜第11列の対応する列に当てはめる。
ここで、図8に示したイベント対応記述E1は、画面識別情報“GMN001”のものであるから、画面遷移表生成部133は、画面遷移表の第1列に“GMN001”を設定する。そして、1つめの「nextstep」タグからイベントコード「k」について、画面識別情報“index”を得ているので、画面遷移表生成部133は、画面遷移表の第2に“index”を設定する。画面遷移表生成部133が、以下、残り4つの「nextstep」タグについても同様にして、画面遷移表の設定を完了すると、図8に示した画面遷移表T1の第1行における第1列〜第11列までを再現することができる。
このようにして、画面遷移表生成部133は、画面遷移表を生成する。なお、画面遷移表生成部133は、イベント検知記述をスクリプトデータ記憶部155から読み出して、第12列の雛形データ識別情報を得てもよい。つまり、イベント検知記述には、雛形データ識別情報が含まれるため、画面遷移表生成部133は、雛形データ識別情報より雛形データの名称を特定することができる。これにより、画面遷移表T1の第12列の設定値を再現することもできる。
また、画面遷移表生成部133は、生成した画面遷移表を画面遷移表記憶部153に記憶する。
ところで、スクリプトデータを仕様変更するときは、画面遷移表生成部が生成した画面遷移表を更新して行うこともできるし、スクリプトデータを作成した元の画面遷移表を更新して行うこともできる。
本実施形態のように、画面遷移表生成部が生成した画面遷移表を更新して行う場合、画面遷移表生成部133が、このようにして画面遷移表を生成するので、スクリプトデータを再作成のために画面遷移表を画面遷移表記憶部153に記憶しておかなくてもよい。このため、開発者が元の画面遷移表を準備する必要がなくなり、スクリプトデータの仕様変更のための再編集が容易になる。
なお、画面遷移表生成部133が画面遷移表を生成する処理は、任意に行うことができ、省略してもかまわない。例えば、開発者が、使用変更後の画面遷移表の定義を作成する場合は、当該処理を省略できる。
スクリプトデータ部分コード生成部134は、画面遷移表を参照して、パターンデータを展開することで部分コードを生成する。
スクリプトデータ部分コード生成部134は、まず、スクリプトデータ挿入位置検知部132から挿入位置特定情報を取得して、取得した挿入位置特定情報に対応するパターンデータをパターンデータ記憶部154から読み出す。そして、読み出したパターンデータを画面遷移表に画面遷移が定義されているイベントコードに基づいて展開する。
なお、挿入位置特定情報に関するパターンデータの対応付けについては、挿入位置指定情報について説明したものと同様であるし、部分コードの生成方法についても、雛形データ部分コード生成部123において説明したものと同様である。
また、スクリプトデータ部分コード生成部134は、生成した部分コードをスクリプトデータ部分コード挿入部135に出力する。
スクリプトデータ部分コード挿入部135は、流用するスクリプトデータのうち、部分コードが挿入されたブロックを、スクリプトデータ部分コード生成部134が生成した部分コードに置き換えることでスクリプトデータを再作成する。
スクリプトデータ部分コード挿入部135は、スクリプトデータのうち、部分コードが挿入されたブロックを特定するために、スクリプトデータ挿入位置検知部132から転送される挿入位置特定情報を用いる。
なお、スクリプトデータ部分コード挿入部135は、スクリプトデータを再作成する際、流用するスクリプトデータをスクリプトデータ記憶部155にコピーしておいてもよい。
また、スクリプトデータ部分コード挿入部135は、再作成したスクリプトデータをスクリプトデータ記憶部155に記憶する。
また、本実施形態では、スクリプトデータ部分コード挿入部135は、スクリプトデータに含まれる挿入位置特定情報を維持したまま、部分コードが挿入されたブロックを、スクリプトデータ部分コード生成部134が生成した部分コードに置き換える。
しかしながら、これに限られず、スクリプトデータ部分コード挿入部135は、部分コードが挿入されたブロックとともに、挿入位置特定情報も、スクリプトデータ部分コード生成部134が生成した部分コードに置き換えてもよい。あるいは、スクリプトデータ部分コード挿入部135によって、雛形データ識別情報と、挿入位置特定情報とは、取り除かれてもよい。
この場合、スクリプトデータ部分コード挿入部135は、再作成したスクリプトデータに特定情報付与部125に転送し、再作成したスクリプトデータに雛形データ識別情報と、挿入位置特定情報とを付与するよう特定情報付与部125に対して指示してもよい。
このように、再作成されたスクリプトデータは、雛形データ識別情報と、挿入位置特定情報とを含む。よって、再作成されたスクリプトデータをもとに、スクリプトデータを再々作成する場合においても、雛形データ識別情報および挿入位置特定情報を用いることが可能である。
(画面遷移記述の編集処理およびスクリプトデータの再作成処理の具体例)
次に画面遷移記述の編集処理について具体例を挙げて説明する。すなわち、特定の画面遷移を実現するスクリプトデータを作成したあと、さらに画面遷移の仕様を変更する場合について説明する。
ここでは、一例として、図14を用いて、図7に示す画面P1についての画面遷移に、画面P3への画面遷移を追加する場合について以下に示す。
図14に示す画面遷移は、図7に示す画面遷移に、画面P3への画面遷移を追加したものになっている。また、ここでは、画面P3への画面遷移は、緑機能キーKF2のイベントコード「g」に対応して起こることとしている。
図14に示すような画面遷移に仕様を変更する場合、画面遷移表において、図15に示すような定義を行う。図15は、画面遷移表の一部を示すテーブルである。図15に示す画面遷移表T2は、仕様変更のために、図8に示す画面遷移表T1の一部が更新されたものである。
図15に示す画面遷移表T2は、ちょうど、図8に示す画面遷移表T1の第1行目、第10列において、画面P3の画面識別情報“GMN003”を定義したものとなっている。この行において、それ以外の定義については図8に示す画面遷移表T1の第1行目の定義と同様である。なお、同図に示す画面遷移表T2では、これ以外の行は、説明の便宜上、省略されている。
なお、画面遷移表に対して、このような定義を追加する更新処理は、画面遷移表更新部121によって行うことができる。
続いて、図9、図16および図17を用いて、スクリプトデータの再作成について説明すれば次のとおりである。なお、図16は、更新後の画面遷移表に基づいて再作成した部分データを示す図であり、図17は、更新後の画面遷移表に基づいて再作成したスクリプトデータを示す図である。
まず、スクリプトデータ挿入位置検知部132が、スクリプトデータY1を読み込み、読み込んだスクリプトデータY1に含まれる挿入位置特定情報ID2AおよびID2Bを検知する。
ここで、スクリプトデータの再作成は、図15を用いて示した更新後の画面遷移表T2に基づいて行われる。すなわち、雛形データ部分コード生成部123が、更新後の画面遷移表T2に基づいて、パターンデータを展開することで、図16に示す部分コードD2を生成する。
部分コードD2では、図13を用いて示した部分コードD1とくらべて、イベントコード「g」を検知するためのブロックL26が追加されている。それ以外のブロックL21〜L25は、部分コードD1のブロックL11〜L15と同様である。
そして、スクリプトデータ部分コード挿入部135は、挿入位置特定情報ID2AおよびID2Bの間にある部分コードD1を、部分コードD2に置き換える。
このようにして得られたスクリプトデータが図17に示すスクリプトデータY2である。
スクリプトデータY2に含まれる部分コードD2のブロックL21〜L25は、図9を用いて示した部分コードD1のブロックL11〜L15と同様のものであるが、部分コードD2は、さらにブロックL26が新たに追加されている点で、部分コードD1とは異なる。
すなわち、スクリプトデータY2では、更新された画面遷移表T1において定義されているイベントコード「g」を検知するためのブロックL26が追加されている。
(雛形データを用いてスクリプトデータを作成する処理の流れ)
次に、図18を用いて、本実施形態に係る画面遷移編集ツール111が雛形データを用いてスクリプトデータを作成する場合の処理の流れについて説明する。図18は、画面遷移編集ツール111が、雛形データを用いてスクリプトデータを作成する場合の処理の流れを示すフローチャートである。
まず、雛形データ挿入位置検知部122が、画面遷移表記憶部153に記憶されている画面遷移表を参照して、画面遷移表において指定されている雛形データを、雛形データ記憶部152から読み出すとともに、読み出した雛形データにおいて部分コードを挿入する位置を検知する(S101)。
そして、雛形データ部分コード生成部123が、画面遷移表の定義に基づいて、スクリプトデータの部分コードを生成する(S102)。
続いて、雛形データ部分コード挿入部124が、S102において、生成された部分コードを、雛形データにおける部分コードを挿入位置指定情報により特定される挿入位置に挿入する(S103)。
それから、特定情報付与部125が、雛形データに部分コードを挿入することで得られたスクリプトデータに、使用した雛形データの雛形データ識別情報と、挿入位置特定情報を付与して(S104)、処理は終了する。
(作成されたスクリプトデータを用いてスクリプトデータを再作成する処理の流れ)
次に、図19を用いて、画面遷移編集ツール111が作成されたスクリプトデータを用いてスクリプトデータを再作成する場合の処理の流れについて説明する。図19は、画面遷移編集ツール111が、スクリプトデータを流用してスクリプトデータを再作成する場合の処理の流れを示すフローチャートである。処理の前提として、更新後の画面遷移表が準備されているものとする。例えば、画面遷移表生成部133が生成した、画面遷移表を、画面遷移表更新部121が更新して、更新後の画面遷移表が準備されている場合などが想定される。
処理を開始すると、まず、スクリプトデータ挿入位置検知部132が、流用するスクリプトデータに含まれる挿入位置指定情報を検知して、スクリプトデータ内の部分コードとして挿入されたブロックを特定する(S201)。
そして、スクリプトデータ部分コード生成部134が、準備されている更新後の画面遷移表の定義に基づいて、スクリプトデータの部分コードを生成する(S202)。
それから、スクリプトデータ部分コード挿入部135が、流用するスクリプトデータにおいて、部分コードとして挿入されているブロックを、生成した部分コードに置き換えることでスクリプトデータを再作成し(S203)、処理は終了する。
(作用・効果)
以上のように、本実施形態に係る画面遷移編集ツール111は、雛形コードに部分コードを挿入してスクリプトデータを生成する画面遷移編集ツール111であって、コンピュータを、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、スクリプトデータを生成する雛形データ部分コード挿入部124、および、雛形データ部分コード挿入部124が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、スクリプトデータに付与する特定情報付与部125、として機能させるプログラムである。
上記構成によれば、部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、部分コードを挿入して、スクリプトデータを生成するとともに、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記スクリプトデータに付与することができる。
これにより、スクリプトデータを生成した後にも、付与された挿入位置特定情報によって、上記雛形コードに上記部分コードを挿入した位置を特定することができる。
この結果、スクリプトデータを生成した後、スクリプトデータについて変更・修正等のカスタマイズを行う場合において、雛形コードと、部分コードとを区別してカスタマイズを行うことができる。
〔実施形態2〕
本発明の他の実施形態について図20〜図33に基づいて説明すると、以下の通りである。本実施形態では、画面遷移編集ツール111によって作成されたスクリプトデータが、外部のツールで編集されている場合、スクリプトデータの再作成において、外部のツールで編集された箇所を反映する手法について説明する。
(画面遷移編集ツールの構成について)
まず、本実施形態に係る画面遷移編集ツール111の構成について説明する。図20は、本実施形態に係る画面遷移編集ツール111を動作させるための開発装置100の概略的構成について示したブロック図である。なお、説明の便宜上、実施形態1にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図20に示す画面遷移編集ツール111では、図1を用いて説明したものと比べて、部分コード比較部(差分検出手段)141、部分コード修正部(反映手段)142が追加されている。また、記憶部150では、画面遷移表記憶部153に替えて、画面遷移表履歴記憶部161が設けられている。また、画面遷移表生成部133は取り除かれている。それ以外の構成については図1のものと同様であるので、その説明を省略する。
(追加・変更された部材について)
画面遷移表履歴記憶部161は、画面遷移編集ツール111におけるスクリプトデータ作成、および、再作成処理において用いられる画面遷移表を世代毎に記憶しておくものである。画面遷移表履歴記憶部161に記憶させておくことができる画面遷移表の世代数には、特に制限はないが、本実施形態では、説明の便宜上、2世代の画面遷移表を記憶させておくものとする。
例えば、画面遷移表履歴記憶部161には、画面遷移表を更新してスクリプトデータを再作成する場合において、一つまえの前回画面遷移表と、スクリプトデータの再作成に用いるための、更新された今回画面遷移表とを記憶させておくことができる。
なお、スクリプトデータを新規に作成する場合は、今回画面遷移表を用いることとする。また、本実施形態で用いる画面遷移表は、前の実施形態のものと同様とする。また、本実施形態では、説明の便宜上、画面遷移表の定義について説明する場合は、どのイベントコードが定義されているかを示すのみとし、そのほかの定義については、その説明を省略する。
部分コード比較部141は、画面遷移編集ツール111によって作成されたスクリプトデータの元の部分コードと、画面遷移表生成部133から転送された部分コードとを比較する。また、部分コード比較部141は、比較の結果、差分が検出された場合、部分コード修正部142にその差分を示す差分データを送信する。
部分コード修正部142は、スクリプトデータ部分コード生成部134が生成した部分コードに、部分コード比較部141から取得した差分データを反映する。また、部分コード修正部142は、差分データを反映した部分コードを、スクリプトデータ部分コード挿入部135に送信する。
なお、図1を用いてすでに説明した部材についても、次のような変更点がある。
すなわち、雛形データ特定部131は、部分コード比較部141に雛形データの名称を送信する。
また、スクリプトデータ部分コード生成部134は、生成した部分コードを、部分コード修正部142に送信する。
また、スクリプトデータ部分コード挿入部135は、部分コード修正部142から修正コードが反映された部分コードを取得する。
(修正部分の反映について)
以下において、図21〜図25を用いて、部分コード比較部141および部分コード修正部142の動作詳細を明らかにしつつ、修正部分の反映の例について具体的に説明する。
まず、部分コード比較部141が実行する部分コードの比較について説明すると次のとおりである。
外部ツールにより修正されたスクリプトデータを流用して、スクリプトデータを再作成する場合、部分コード比較部141は、画面遷移編集ツール111によって作成されたスクリプトデータの元の部分コードを生成するために、次の処理を行う。すなわち、雛形データ特定部131から転送される雛形データの名称が、画面遷移表履歴記憶部161に記憶されている前回画面遷移表に含まれているかを判定する。
そして、部分コード比較部141は、前回画面遷移表に、雛形データ特定部131から転送された雛形データの名称が含まれている場合、前回画面遷移表を参照し、前回画面画面遷移表の定義に従って、パターンデータを展開することで部分コードを生成する。このようにして、部分コード比較部141は、元の部分コード生成する。
そして、部分コード比較部141は、流用するスクリプトデータをスクリプトデータ記憶部155から読み出すとともに、流用するスクリプトデータにおいて、部分コードが挿入されたブロックを、スクリプトデータ挿入位置検知部132から転送される挿入位置特定情報により特定する。
それから、部分コード比較部141は、生成した部分コードと、上記のようにして特定されたブロックとを比較して差分を検出する。
ここで、図21および図22を用いて、部分コード比較部141が差分を検出する方法について説明する。図21は、外部ツールによって修正されたスクリプトデータY3の一例を示す図である。図22は、スクリプトデータの元の部分コードを示す図であり、イベントコード「k」を検知して画面遷移をする部分コードD3を示している。ここで、部分コード比較部141は、予め前回画面遷移表から部分コードD3を生成しているものとする。
具体的には、図21のスクリプトデータY3に含まれる部分コードD3´は、もともと、イベントコード「k」を検知して画面遷移を行うのみの部分コードD3において、図12で示したパターンデータH2にはなかった修正コードF1が追記されたものである。より具体的には、部分コードD3´は、部分コードD3の2行目において、修正コードF1が挿入されたものである。
図21のスクリプトデータY3には、部分コードD3´に、修正コードF1として、alert関数が挿入されている。alert関数は、コンテンツサービスを視聴するユーザに注意を促すための警告メッセージを表示させるための関数である。つまり、部分コードD3´は、イベントコード「k」を検知し、警告メッセージを提示しつつ画面遷移を行うコードである。
部分コード比較部141は、図22に示す元の部分コードD3と、部分コードD3´とを比較することで、修正コードF1を差分として検出する。検出する差分データは、部分コードF1と、部分コードF1が部分コードD3の最初から2行目に挿入されていることを示す挿入情報とを含んでいてよい。
部分コード比較部141は、このような部分コード同士の比較を行う。画面遷移表生成部133から転送された部分コードが、画面遷移編集ツール111によって作成されたスクリプトデータの部分コードであれば差分は検出されないはずである。
これに対して、画面遷移表生成部133から転送された部分コードが、外部のツールによって修正された部分コードであれば、修正部分が差分として検出されるはずである。
このような比較により、部分コード比較部141は、画面遷移表生成部133が読み出したスクリプトデータが、外部のツールによって修正されているかを判定できる。
続いて、図21〜図24を用いて、部分コード修正部142が、差分データを反映する処理の具体例について説明する。以下では、イベントコード「k」を検知して画面遷移を行うスクリプトデータに修正が施されたのちに、修正後のスクリプトデータから、イベントコード「x」を検知して画面遷移を行うスクリプトデータを再作成する場合について例示する。ここで、今回画面遷移表では、前回画面遷移表において定義されていた「k」についての定義が、「x」についての定義に変更されているものとする。
このとき、まず、準備段階として、スクリプトデータ部分コード生成部134は、今回画面遷移表に基づいて、図23に示す部分コードD4を生成する。図23は、スクリプトデータ部分コード生成部134が生成する部分コードの一例を示す図である。
部分コードD4において、パラメータ変換部分M4は、「x」になっており、イベントコード「x」を検知して画面遷移を行うスクリプトデータとなっている。すなわち、部分コードD4は、図22に部分コードD3のパラメータ変換部分M3の「k」を、「x」に変更したものとなっている。
前述のとおり、図21に示すスクリプトデータY3は、イベントコード「k」を検知して画面遷移を行うコードであり、かつ修正コードF1を含むが、これに対して図22に示す部分コードD4には、修正コードF1は反映されていない。
そこで、部分コード修正部142は、部分コード比較部141から取得した差分データを部分コードD4に反映させて、図24に示す修正された部分コードD4´を生成する。すなわち、部分コード修正部142は、差分データに含まれる挿入情報を用いて、部分コードF1を部分コードD4の最初から2行目に挿入する。部分コードD4´では、2行目に、修正コードF1が含まれている。
続いて、図25を用いて、スクリプトデータ部分データ挿入部135が、修正コードを反映したスクリプトデータを作成する処理の例について説明する。図25は、修正コードを反映させて作成したスクリプトデータの一例を示す図である。
スクリプトデータ部分データ挿入部135は、部分コード修正部142から修正された部分コードD4´を取得し、図21に示したスクリプトデータY3の部分コードD3´を、取得した部分コードD4´に置き換えることで、図25に示すスクリプトデータY4を作成する。図25に示すとおり、スクリプトデータY4は、部分コードD4´を含んでおり、また、部分コードD4´は、修正コードF1を含む。すなわち、部分コードD4´は、イベントコード「x」を検知して、警告メッセージを提示しつつ画面遷移を行うコードである。
(画面遷移編集ツールによる一連のスクリプト作成/再作成処理について)
続いて、図26〜32を用いて、画面遷移編集ツール111において、雛形データから、スクリプトデータを作成し、その後、外部ツールによって修正されたスクリプトデータから、新たなスクリプトデータを再作成するまでの一連の処理について順に説明する。
(1:スクリプトデータを新規に作成する)
はじめに、図26〜27を用いて、画面遷移編集ツール111が、雛形データを展開してスクリプトデータを作成する処理について説明する。ここで、今回画面遷移表には、イベントコード「k」、「x」、「d」が定義されているものとする。
まず、雛形データ部分コード生成部123が、画面遷移表の定義に基づいて、イベントコード「k」、「x」、「d」を検知するための部分コードを生成する。
すなわち、雛形データ部分コード生成部123が、図12に示したパターンデータH2に、今回画面遷移表に定義されているイベントコード「k」、「x」、「d」を順に適用して、図26に示す部分コードD5を生成する。部分コードD5は、イベントコード「k」、「x」、および「d」のそれぞれを検知するためのブロックL51、L52、およびL53を含む。
そして、雛形データ部分コード挿入部124が、部分コードD5を、図11に示した雛形データH1の挿入位置指定情報M1が示す位置に挿入したものに対して、特定情報付与部125が、雛形データ識別情報と、挿入位置特定情報とを付与して図27に示すスクリプトデータY5を作成する。
スクリプトデータY5には、イベントコード「k」、「x」、「d」を検知するための部分コードD5が含まれており、雛形データ識別情報ID1と、挿入位置特定情報ID2AおよびID2Bとが付与されている。
特定情報付与部125は、スクリプトデータY5をスクリプトデータ記憶部155に記憶する。
(2:外部ツールによるスクリプトデータの修正)
次に、図28を用いて、外部ツールによるスクリプトデータの修正について説明する。図28は、外部ツールによって修正されたスクリプトデータの一例を示している。図28が示すスクリプトデータY6は、図27に示したスクリプトデータY5に対して、外部ツールにより修正を施したものである。
図27と、図28とを対比して示すと、スクリプトデータY6に含まれる部分コードD5´は、もとのスクリプトデータY5に含まれる部分コードD5において次の3つの相違点がある。第1に、ブロックL52´では、部分コードD5に含まれるブロックL52において、alert関数が、修正コードF2として追記されたものとなっている。第2に、もとの部分コードD5のブロックL52は、「x」を検知するコードであったところ、ブロックL52´では、「d」を検知するコードとなっている。そして、第3に、もとの部分コードD5のブロックL53は、「d」を検知するコードであったところ、ブロックL53´では、「x」を検知するコードとなっている。
以上、3点が、スクリプトデータY6に含まれる部分コードD5´の修正点である。
このような修正を施す外部ツールは、特に限定されない。例えば、修正を施すために、テキストエディタのようなテキスト編集ツールを用いてもよい。画面遷移編集ツール111が、このようなテキストエディタ機能を備えていてもよい。
また、スクリプトデータY6は、スクリプトデータ記憶部155に記憶される。
(3:スクリプトデータの再作成)
次に、図26〜図32を用いて、画面遷移編集ツール111が、スクリプトデータY6を流用してスクリプトデータを作成する処理について説明する。
ここで、今回画面遷移表には、イベントコード「k」、「g」、「r」が定義されているものとし、前回画面遷移表には、先ほど用いた定義と同様、イベントコード「k」、「x」、「d」が定義されているものとする。
(i) まず、スクリプトデータ部分コード生成部134が、今回画面遷移表から部分コードを生成する。スクリプトデータ部分コード生成部134は、図29に示すように、今回画面遷移表の定義に基づいて、イベントコード「k」、「g」、および「r」を検知するためのブロックL61、L62、およびL63を含む部分コードD6を生成する。
(ii) 次に、部分コード比較部141が、前回画面遷移表を参照して、前回画面画面遷移表の定義に従って、パターンデータを展開することで部分コードを生成する。この場合、イベントコード「k」、「x」、「d」をパターンデータH2に適用して、図26に示した部分コードD5を生成する。
そして、部分コード比較部141は、スクリプトデータY6をスクリプトデータ記憶部155から読み出す。続いて、部分コード比較部141は、スクリプトデータY6における挿入位置特定情報ID2AおよびID2Bの間の部分コードD5´を特定する。これにより、部分コード比較部141は、図31に示すような部分コードD5´を得る。同図に示す部分コードD5´には、イベントコード「k」、「d」、「x」を検知するためのブロックL51、L52´、L53´が含まれており、ブロックL52´には、修正コードF2が含まれる。
それから、部分コード比較部141は、部分コードD5と、部分コードD5´とを比較して、ブロックL52´における修正コードF2を検出する。なお、この例では、ブロックL52´およびブロックL53´において、変換指定子が変換された部分M5およびM6については、修正されていても、その差分を検出しないこととしている。しかしながら、これに限られず、このような差分についても修正コードとして検出してもよい。
部分コード比較部141は、修正コードF2が差分として検出されたことを示す差分データを生成する。この差分データは、何番目のブロックの、どの行に、修正コードが挿入されているかを示すデータであってよい。例えば、差分データは、2番目のブロックL52´の2行目に修正コードが挿入されていることを示すデータであってよい。
(iii) 次に、部分コード修正部142は、スクリプトデータ部分コード生成部134が生成した部分コードD6に、部分コード比較部141が生成した差分データを反映させる。すなわち、部分コード修正部142は、差分データに従って、部分コードD6の2番目のブロックであるブロックL62の2行目に、修正コードF2を反映させる。
このようにして、生成された部分データを図30に示す。図30には、部分コードD6´が示されている。部分コードD6´は、イベントコード「k」、「g」、および「r」を検知するためのブロックL61、L62´、およびL63を含む。また、ブロックL62´の2行目には、修正コードF2が挿入されている。
(iv) 次に、スクリプトデータ部分コード挿入部135は、このようにして得られた部分コードD6´を、図28に示したスクリプトデータY6における部分コードD5´と置き換えることで、図32に示すスクリプトデータY7を作成する。図32に示すスクリプトデータY7は、部分コードD6´を含むコードである。部分コードD6´は、上述のとおり、イベントコード「k」、「g」、および「r」を検知するためのブロックL61、L62´、およびL63を含む。そして、ブロックL62´の2行目には、修正コードF2が挿入されている。
(処理の流れ)
次に、図33を用いて、本実施形態に係る画面遷移編集ツール111が外部ツールで修正されたスクリプトデータを用いてスクリプトデータを再作成する場合の処理の流れについて説明する。図33は、画面遷移編集ツール111が雛形データを用いてスクリプトデータを作成する場合の処理の流れについて例示したフローチャートである。
まず、雛形データ特定部131が、今回画面遷移表に定義されている雛形データが、流用するスクリプトデータの雛形データ、すなわち、前回スクリプトデータを作成したときに用いた雛形データと同じものであるかを判定する(S301)。この判定は、雛形データ特定部131が、流用するスクリプトデータに雛形データ識別情報が付与されているかを確認し、さらに、雛形データ識別情報が付与されている場合には、その雛形データ識別情報を今回画面遷移表と照合することで行われる。
流用するスクリプトデータに雛形データ識別情報が付与されていない場合、雛形データ特定部131は、同じ雛形データを使用していないと判定する。
また、流用するスクリプトデータに雛形データ識別情報が付与されている場合においても、今回画面遷移表に定義されている雛形データ識別情報との照合の結果、合致するものがなければ、雛形データ特定部131は、同じ雛形データを使用していないと判定する。一方、雛形データ特定部131は、今回画面遷移表において、合致する雛形データ識別情報が定義されていれば、同じ雛形データを使用していると判定する。
このように、スクリプトデータの雛形データの判定を行うのは、スクリプトデータの差分の比較が、同じ雛形データを利用していることが前提となっているためである。つまり、雛形データが同じであるため、パターンデータを特定でき、そのパターンデータに基づき、差分の特定などが可能となる。
ここで、雛形データ特定部131が前回と同じ雛形データを使用していないと判定した場合(S301においてNo)、画面遷移編集ツール111は、雛形データ特定部131は、新規にスクリプトデータを作成する(S303)。つまり、画面遷移編集ツール111は、図18を用いて説明したS101〜S104に準じた処理を実行して、スクリプトデータを作成する。その後、処理は終了する。
これに対して、前回と同じ雛形データを使用していると判定した場合(S301においてYes)、スクリプトデータ挿入位置検知部132が、流用するスクリプトデータに挿入位置特定情報が付与されているかを判定する(S302)。
スクリプトデータ挿入位置検知部132が、挿入位置特定情報が付与されていないと判定した場合(S302においてNo)、画面遷移編集ツール111は、新規にスクリプトデータを作成して(S303)、処理は終了する。
スクリプトデータ挿入位置検知部132が、挿入位置特定情報が付与されていると判定した場合(S302においてYes)、スクリプトデータ部分コード生成部134が、今回画面遷移表の定義に基づいて、部分コードを生成する(S304)。
続いて、部分コード比較部141が、部分コードの比較を行うために、前回画面遷移表の定義に基づいて、部分コードを生成する(S305)
それから、部分コード比較部141が、前回画面遷移表の定義に基づいて生成した部分コードと、流用するスクリプトデータの部分コードとを比較し、差分の有無を判定する(S306)。
ここで、差分が無ければ(S306においてNo)、スクリプトデータ部分コード挿入部135は、今回画面遷移表に従って生成された部分コードを、流用するスクリプトデータの部分コードと置き換えることでスクリプトデータを再作成する(S308)。
これに対して、差分が有れば(S306においてYes)、スクリプトデータ部分コード挿入部135は、部分コード比較部141が生成した差分データに従い、今回画面遷移表に基づいて生成された部分コードに差分を反映する(S307)。そして、差分を反映した部分コードを、流用するスクリプトデータの部分コードと置き換えることでスクリプトデータを再作成する(S308)。
このようにして、スクリプトデータを再作成して、処理は終了する。
(変形例)
本実施形態に係る画面遷移編集ツール111の好ましい変形例について以下に説明する。
画面遷移編集ツール111は、スクリプトデータ再作成時に、スクリプトデータを作成するときに用いられた雛形データが更新されているかを判定してもよい。この判定は、具体的には、画面遷移編集ツール111が、スクリプトデータに含まれる雛形データ識別情報を検出し、検出した雛形データ識別情報によって特定される雛形データが、雛形データ記憶部152において更新されているかを判定することによって行われる。
そして、画面遷移編集ツール111は、雛形データが更新されていると判定した場合には、更新後の雛形データに生成した部分コードを挿入してスクリプトデータを作成するようにしてもよい。
画面遷移編集ツール111は、スクリプトデータを修正するためのテキストエディタ機能を備えていてもよい。また、当該エディタでは、雛形データ識別情報および挿入位置特定情報を検出し、テキストエディタ機能による雛形データ識別情報および挿入位置特定情報に対しての編集を不可にしてもよい。
また、画面遷移編集ツール111がスクリプトデータに付与した雛形データ識別情報および挿入位置特定情報は、外部のテキストエディタ等の編集ツールにおいて、そのテキスト編集機能を抑止するトリガとして用いられてもよい。
つまり、画面遷移編集ツール111が、付与する雛形データ識別情報および挿入位置特定情報は、スクリプトデータを編集する編集機能、雛形データ識別情報または挿入位置特定情報が記述されている位置を検出する検出機能、検出機能が検出した位置に対する編集を抑止する編集抑止機能を備えている外部の編集ツールにおいて、編集抑止情報として用いられてもよい。
このような外部の編集ツールでは、スクリプトデータに含まれる雛形データ識別情報または挿入位置特定情報が記述されている位置を検出機能が検出すると、編集抑止機能が、編集機能によるスクリプトデータの編集を抑止する。
よって、例えば、このような外部の編集ツールでは、雛形データ識別情報が記述されている行、列を検知し、検知した行、列に編集用のカーソルが位置しているときに、編集機能が働かないようにすることができる。
〔実施形態3〕
本発明の他の実施形態について図34〜図42に基づいて説明すると、以下の通りである。本実施形態では、画面遷移編集ツール111によって作成されたイベント検知記述が、外部のツールで編集されている場合、スクリプトデータの再作成の際に、外部のツールで編集された箇所を反映する別の手法について説明する。
(画面遷移編集ツールの構成について)
まず、本実施形態に係る画面遷移編集ツール111の構成について説明する。図34は、本実施形態に係る画面遷移編集ツール111を動作させるための開発装置100の概略的構成について示したブロック図である。なお、説明の便宜上、以前の実施形態にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
以下、図34に示す画面遷移編集ツール111を、図1および図20に示す画面遷移編集ツール111を参照しながら説明する。図34に示す画面遷移編集ツール111は、図20に示した画面遷移編集ツール111において、画面遷移表生成部133を追加し、図20において示した部分コード修正部142に替えて、部分コード修正部142Aを設け、さらに画面遷移表履歴記憶部161に替えて、画面遷移表記憶部153を設けたものである。それ以外の構成については図20のものと同様であるので、その説明を省略する。
(追加・変更された部材について)
画面遷移表生成部133は、図1を用いて示したものと同様であるが、本実施形態においては、その動作についてさらに詳細に説明する。
部分コード修正部142Aは、スクリプトデータ部分コード生成部134が生成した部分コードに、部分コード比較部141から取得した差分データを反映するものだが、前述した実施形態2とは、差分データの反映方法が異なる。部分コード修正部142Aの具体的な差分データ反映方法については後述する。
また、本実施形態では、雛形データ部分コード生成部123およびスクリプトデータ部分コード生成部134が、イベント対応記述を作成する手法について詳しく説明する。
(イベント対応記述の生成手法について)
図35および図36を用いて、イベント対応記述の作成手法について説明する。図35は、イベント対応記述を作成するためのパターンデータの一例を示す図である。図36は、画面遷移編集ツール111が作成するイベント対応記述の一例について示す図である。
図35に示すようにパターンデータH3は、イベント対応記述に含まれる「nextstep」タグの断片的な一部である。パターンデータH3には、変換指定子M31(“%url”)およびM32(“%s”)が含まれる。パターンデータH3は、パターンデータ記憶部154に記憶されていてもよい。
変換指定子M31は、図12を用いて示した変換指定子M3と同様、画面遷移編集ツール111にパラメータ変換を行うべきことを通知するためのキーワードである。変換指定子M31は、“%url”を、「画面遷移表に定義されている遷移先の画面の画面識別情報」+「.mtd」からなる文字列に置き換えるべきであることを画面遷移編集ツール111に通知する。また、変換指定子M32は、変換指定子M3と同様、イベントコードを置き換えるためのキーワードである。
例えば、画面遷移表において、イベントコード「k」に対し、遷移先の画面の画面識別情報「index」が定義されている場合、画面遷移編集ツール111によって、変換指定子M31は、“index.mtd”に置き換えられ、変換指定子M32は、“k”に置き換えられる。
画面遷移編集ツール111が、パターンデータH3を変換することにより、「nextstep」タグ“<nextstep xlink:href=“index.mtd” when=“k” />”を得る。
また、ここで、画面遷移表において、さらに、イベントコード「d」に対し、画面識別情報「GMN01.mtd」が定義され、イベントコード「x」に対し、画面識別情報「GMN02.mtd」が定義されている場合、それぞれ、「nextstep」タグ“<nextstep xlink:href=“GMN01.mtd” when=“d” />”および“<nextstep xlink:href=“GMN02.mtd” when=“x” />”を得る。
このようにして得られた文字列から、画面遷移編集ツール111は、図36に示すイベント対応記述E2を作成する。画面遷移編集ツール111には、上記のように作成した、「nextstep」タグN21〜N23が含まれる。
すなわち、「nextstep」タグN21では、「href」属性に、属性値211“index.mtd”が指定されており、「when」属性には、属性値212“k”が指定されている。また、「nextstep」タグN22では、「href」属性に、属性値221“GMN01.mtd”が指定されており、「when」属性には、属性値222“d”が指定されている。そして、「nextstep」タグN23では、「href」属性に、属性値231“GMN02.mtd”が指定されており、「when」属性には、属性値232“x”が指定されている。
なお、画面遷移編集ツール111は、イベント対応記述E2において、「nextstep」タグN21〜N23以外の部分を、予め用意されているイベント対応記述の雛形コードを用いて作成することができる。例えば、画面遷移編集ツール111は、雛形コードの所定位置に、「nextstep」タグN21〜N23を挿入することで、イベント対応記述E2を作成することができる。また、イベント対応記述の雛形コードは、雛形データ記憶部152に記憶されていてもよい。
このような動作は、具体的には、雛形データ部分コード生成部123またはスクリプトデータ部分コード生成部134が、雛形データ記憶部152から、イベント対応記述の雛形コードを読み出し、パターンデータ記憶部154から、イベント対応記述のパターンデータを読み出し、画面遷移表記憶部153に記憶されている画面遷移表を参照しながら、読み出した各種データについて、上記の処理を行うことにより実現することができる。
また、特定情報付与部125は、イベント検知記述E1の場合と同様に、イベント対応記述E2に、雛形データ識別情報と、挿入位置特定情報とを付与してもよい。
(差分データの反映方法の具体例について1)
以下において、図36〜図39を用いて、部分コード修正部142Aの動作詳細を明らかにしつつ、外部ツールにより修正されたスクリプトデータを流用して、スクリプトデータの再作成を行う場合において、修正部分を反映する例について具体的に説明する。
以下の例では、部分コード修正部142Aは、イベント検知記述に差分があった場合において、キーコードの定義が変更となっていても、遷移先の画面を定義する画面遷移情報が同じであれば、その画面遷移情報に対応するキーコードを検知するブロックに差分を反映する。
例示的に、図36に示すイベント対応記述E2、および、図38に示すイベント検知記述Y8を流用して、図37に示すイベント対応記述E3、および、図39に示すイベント検知記述Y9を作成する場合について説明する。
まず、イベント対応記述E2およびイベント検知記述Y8について説明すると次のとおりである。イベント対応記述E2およびイベント検知記述Y8は、予め作成されているものとする。なお、イベント対応記述E2およびイベント検知記述Y8を作成する手法については、既に説明したものを用いることとする。
イベント対応記述E2は、既に説明したとおりであるのでその説明を省略する。イベント検知記述Y8は、部分コードD8を含み、部分コードD8には、イベントコード「k」、「d」、および「x」を検知するためのブロックL81、L82、およびL83が含まれる。また、イベント検知記述Y8に含まれる部分コードD8は、外部ツールにより編集されており、ブロックL81、L82、およびL83において、それぞれ、修正コードF81、F82、およびF83が含まれている。
続いて、画面遷移表生成部133は、イベント対応記述E2の属性値を解析して、画面遷移表を生成する。具体的には、画面遷移表生成部133は、イベントコード「k」に対し、画面識別情報「index」が定義され、イベントコード「d」に対し、画面識別情報「GMN01」が定義され、イベントコード「x」に対し、画面識別情報「GMN02」が定義されている画面遷移表を生成する。画面遷移表生成部133は、生成した画面遷移表を画面遷移表記憶部153に記憶する。
画面遷移編集ツール111は、表示部102に、画面遷移表を表示し、操作部101からのユーザの操作を受け付ける。そして、画面遷移編集ツール111が、ユーザの操作を受け付けると、画面遷移表更新部121が、受け付けた操作に応じて記憶部153の画面遷移表を更新する。
ここで、画面遷移表更新部121によって、画面遷移表における定義が次のように変更されたとする。すなわち、画面識別情報「GMN01」について定義されているキーコード「d」が、「g」に更新され、画面識別情報「GMN02」およびキーコード「x」についての定義が、画面識別情報「GMN03」およびキーコード「r」についての定義に更新されたとする。
つまり、この更新では、画面識別情報「GMN01」については、対応するキーコードが変更となっているのみであり、画面識別情報は、変更になっていない。また、画面識別情報「index」については、対応するキーコードも変更になっていない。
この画面遷移表を用いて、画面遷移編集ツール111がイベント対応記述E2およびイベント検知記述Y9を流用してスクリプトデータを再作成する場合に、スクリプトデータ部分コード生成部134によって生成されるイベント対応記述は、図37に示すイベント対応記述E3である。
「nextstep」タグN31では、「href」属性に、属性値311“index.mtd”が指定されており、「when」属性には、属性値312“k”が指定されている。また、「nextstep」タグN32では、「href」属性に、属性値321“GMN01.mtd”が指定されており、「when」属性には、属性値322“g”が指定されている。そして、「nextstep」タグN33では、「href」属性に、属性値331“GMN03.mtd”が指定されており、「when」属性には、属性値232“r”が指定されている。
また、スクリプトデータ部分コード生成部134は、画面遷移表に従って、図39に示すイベント検知記述Y9を生成する。イベント検知記述Y9は、部分コードD9を含み、部分コードD9には、イベントコード「k」、「g」、および「r」を検知するためのブロックL91、L92、およびL93が含まれる。
ここで、スクリプトデータ部分コード生成部134は、画面遷移表の定義において、流用するイベント対応記述E2に含まれる「nextstep」タグN21の属性値231「index.mtd」が存在するので、画面識別情報「index」に対応するイベントコード「k」を検知するブロックL91について、イベント検知記述Y8に含まれていた修正コードF81を反映させている。
また、画面遷移表の定義において、流用するイベント対応記述E2に含まれる「nextstep」タグN22の属性値231「GMN01.mtd」が存在するので、画面識別情報「GMN01」に対応するイベントコード「g」を検知するブロックL92について、イベント検知記述Y8に含まれていた修正コードF82を反映させている。
しかし、更新された画面遷移表における画面識別情報「GMN03」の定義は、新たに追加されたものであるので、修正コードは追加されていない。すなわち、イベント検知記述Y8に含まれていた修正コードF83は、イベント検知記述Y9が含むブロックL93において反映されていない。
(差分データの反映方法の具体例について2)
以下において、図36、図40〜図42を用いて、部分コード修正部142Aの別の動作例について説明する。
以下の例では、部分コード修正部142Aは、イベント検知記述に差分があった場合において、遷移先の画面を定義する画面遷移情報が変更となっていても、キーコードが同じであれば、そのキーコードを検知するブロックに差分を反映する。
例示的に、図36に示すイベント対応記述E2、および、図41に示すイベント検知記述Y10を流用して、図40に示すイベント対応記述E4、および、図42に示すイベント検知記述Y11を作成する場合について説明する。
この例では、イベント対応記述E2およびイベント検知記述Y10は、予め作成されているものとする。なお、イベント対応記述E2およびイベント検知記述Y10を作成する手法については、既に説明したものを用いることとする。
イベント対応記述E2は、既に説明したとおりであるのでその説明を省略する。
イベント検知記述Y10について説明すると次のとおりである。
イベント検知記述Y10は、部分コードD10を含み、部分コードD10には、イベントコード「k」、「d」、および「x」を検知するためのブロックL101、L102、およびL103が含まれる。また、イベント検知記述Y10に含まれる部分コードD10は、外部ツールにより編集されており、ブロックL101、L102、およびL103において、それぞれ、修正コードF101、F102、およびF103が含まれている。
続いて、画面遷移表生成部133は、イベント対応記述E2の属性値を解析して、画面遷移表を生成する。具体的には、画面遷移表生成部133は、イベントコード「k」に対し、画面識別情報「index」が定義され、イベントコード「d」に対し、画面識別情報「GMN01」が定義され、イベントコード「x」に対し、画面識別情報「GMN02」が定義されている画面遷移表を生成する。画面遷移表生成部133は、生成した画面遷移表を記憶部153に記憶する。
画面遷移編集ツール111は、表示部102に、画面遷移表を表示し、操作部101からのユーザの操作を受け付ける。そして、画面遷移編集ツール111が、ユーザの操作を受け付けると、画面遷移表更新部121が、受け付けた操作に応じて記憶部153の画面遷移表を更新する。
ここで、画面遷移表更新部121によって、画面遷移表における定義が次のように変更されたとする。すなわち、キーコード「d」に対応する画面識別情報「GMN01」が、画面識別情報「GMN02」に更新され、画面識別情報「GMN02」およびキーコード「x」についての定義が、画面識別情報「GMN03」およびキーコード「r」についての定義に更新されたとする。
つまり、この更新では、キーコード「d」については、対応する画面識別情報「GMN01」が変更となっているのみであり、キーコードは、変更になっていない。また、画面識別情報「index」については、対応するキーコードも変更になっていない。
この画面遷移表を用いて、画面遷移編集ツール111がイベント対応記述E2およびイベント検知記述Y10を流用してスクリプトデータを再作成する場合に、スクリプトデータ部分コード生成部134によって生成されるイベント対応記述は、図40に示すイベント対応記述E4である。
「nextstep」タグN41では、「href」属性に、属性値411“index.mtd”が指定されており、「when」属性には、属性値412“k”が指定されている。また、「nextstep」タグN42では、「href」属性に、属性値421“GMN02.mtd”が指定されており、「when」属性には、属性値422“d”が指定されている。そして、「nextstep」タグN43では、「href」属性に、属性値431“GMN03.mtd”が指定されており、「when」属性には、属性値432“r”が指定されている。
また、スクリプトデータ部分コード生成部134は、画面遷移表に従って、図42に示すイベント検知記述Y11を生成する。イベント検知記述Y11は、部分コードD11を含み、部分コードD11には、イベントコード「k」、「d」、および「r」を検知するためのブロックL111、L112、およびL113が含まれる。
ここで、スクリプトデータ部分コード生成部134は、画面遷移表の定義において、流用するイベント対応記述E4に含まれる「nextstep」タグN21の属性値212「k」が存在するので、「index.mtd」に対応するイベントコード「k」を検知するブロックL111について、イベント検知記述Y10に含まれていた修正コードF101を反映させている。
また、画面遷移表の定義において、流用するイベント対応記述E2に含まれる「nextstep」タグN22の属性値232「d」が存在するので、イベントコード「d」を検知するブロックL112について、イベント検知記述Y10に含まれていた修正コードF102を反映させている。
しかし、更新された画面遷移表におけるイベントコード「r」についての定義は、新たに追加されたものであるので、修正コードは追加されていない。すなわち、イベント検知記述Y10に含まれていた修正コードF103は、イベント検知記述Y11が含むブロックL113において反映されていない。
なお、本実施形態においても、画面遷移編集ツール111は、図33を用いて示した各処理に準じた処理を実行してもよい。この場合、前回画面遷移表としては、画面遷移表生成部133が、イベント対応記述を解析することによって得られた画面遷移表を用いることができ、今回画面遷移表としては、画面遷移表生成部133が生成した画面遷移表を、画面遷移表更新部121が更新したものを用いることができる。また、部分コード修正部142Aは、S307における部分コードの差分を反映する処理を実行してよい。
〔実施形態4〕
本発明の他の実施形態について図43〜図57に基づいて説明すると、以下の通りである。本実施形態では、サービス開発ツール500において、スクリプトデータ510を作成・編集する場合について説明する。なお、説明の便宜上、上記の実施形態にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
(サービス開発ツールの概要)
図43を用いて、サービス開発ツール500の概要について説明する。図43は、サービス開発ツール500の概要について説明した概略図である。
サービス開発ツール500は、画面遷移、画面レイアウト等の開発を統合的に行うための開発環境を提供する。具体的には、サービス開発ツール500は、画面遷移編集ツール600と、画面レイアウト作成ツール700と、スクリプトエディタ800とを備える構成である。
画面遷移編集ツール600は、図1や図5等を用いてこれまで説明してきたとおり、コンテンツサービスを構成する画面の遷移を開発するためのツールである。
具体的には、画面遷移編集ツール600は、図1で示した画面遷移編集ツール111と同様、画面遷移表を記憶するための画面遷移表記憶部153を備えている。
そして、画面遷移編集ツール600は、画面遷移表の定義に従って雛形データH10を展開して新規にスクリプトデータ510を作成する機能、および、画面遷移表の定義に従って既存のスクリプトデータ510を編集する機能を有している。
画面レイアウト作成ツール700は、各画面の表示内容、UI(User Interface)部品、レイアウト等を作成するためのツールである。
UI部品とは、上述したボタン等のGUI部品の他、画面上に配置できるインターフェース一般のことをいう。例えば、画面レイアウト作成ツール700は、各画面において、上述のGUI部品に加えて、リストボックス、テキストボックス、カーソル移動、および音楽・動画プレーヤ等のUI部品を配置することができる。より具体的な例については後ほど説明する。
また、画面レイアウト作成ツール700は、作成したレイアウト等に関する情報を記憶するためのレイアウト情報記憶部752を備えている。そして、画面レイアウト作成ツール700は、レイアウト情報記憶部752に定義されている内容に従って、スクリプトデータ510を編集する。
スクリプトエディタ800は、スクリプトデータ510を直接編集するためのテキストエディタである。スクリプトエディタ800は、例えば、他のツールではサポートされていないようなコード表現をスクリプトデータ510上に追加するために用いられる。
(開発の流れ)
サービス開発ツール500では、上述のとおり、新規にスクリプトデータ510を作成する場合、画面遷移編集ツール600が、画面遷移表の定義に従って、雛形データH10からスクリプトデータ510を作成する。
ここで、サービス開発ツール500では、1つの画面について、1つのスクリプトデータが作成される。
その後、上記複数のツールによって同一のスクリプトデータ510を編集することにより開発が行われる。例えば、画面レイアウト作成ツール700にて、ある画面にUI部品を追加した後、画面遷移編集ツール600にて新たな画面遷移を追加する場合が想定される。
このように、サービスの開発では、上記複数のツールによって同一のスクリプトデータを編集することになるので、各ツールが無秩序に、スクリプトデータを更新してしまうと、スクリプトデータの内容と、各ツールが保有しているデータとの間で不整合が生じるおそれがある。
例えば、画面遷移編集ツール600の画面遷移表記憶部153における定義、または画面レイアウト作成ツール700のレイアウト情報記憶部752における定義と、スクリプトデータの内容との間に齟齬が生じるおそれがある。
このような不都合を防ぐために、サービス開発ツール500では、それぞれのツールが、スクリプトデータにおける自らが編集可能な編集領域を認識し、他のツールの編集領域を更新しないようになっている。
図44を用いて、このような制御の実現手法について概略的に説明すると次のとおりである。図44は、スクリプトデータ510の各領域の構成および各ツールの編集領域について概略的に説明する模式図である。
図44に示すように、スクリプトデータ510は、第1編集領域R1と、第2編集領域R2と、ユーザ編集領域R3とを含む。
画面遷移編集ツール600は、第1編集領域R1を編集可能であるが、画面レイアウト作成ツール700は、第1編集領域R1を編集不可である。
また、画面レイアウト作成ツール700は、第2編集領域R2を編集可能であるが、画面遷移編集ツール600は、第2編集領域R2を編集不可である。
スクリプトエディタ800は、スクリプトデータ510の全領域を編集可能であるが、スクリプトエディタ800によって編集された内容は、所定のタイミングで、ユーザ編集領域R3に退避される。このタイミングの詳細については後述する。
なお、スクリプトエディタ800が、スクリプトデータ510の全領域を編集可能であるとしているのはあくまで一例であり、第1編集領域R1および第2編集領域R2は、編集不可とし、ユーザ領域R3のみスクリプトエディタ800によって編集可能とする実装も可能である。
以下、開発装置において動作する各種ツールについて順に説明する。
(開発装置で動作する画面遷移編集ツールについて)
画面遷移編集ツールについて説明すると以下のとおりである。まず、図45を用いて、開発装置(コード生成装置、コード編集装置)200において動作する画面遷移編集ツール600の一例について説明する。図45は、画面遷移編集ツール600を動作させている開発装置200の概略的構成について示した機能ブロック図である。
開発装置200は、図1を用いて示した開発装置100と同様、操作部101、表示部102、制御部110、および記憶部150を備えている。
ただし、開発装置200が備える制御部110および記憶部150は、開発装置100のものと、次の点で異なる。
まず、図45に示す開発装置200が備える制御部110では、図1に示した開発装置100とは異なり、サービス開発ツール500がロードされている。また、図45では、サービス開発ツール500において、画面遷移編集ツール600が動作している場合の各種機能を例示している。
なお、図45では、サービス開発ツール500に含まれる他のツール、すなわち、画面レイアウト作成ツール700およびスクリプトエディタ800については、説明の便宜上、その記載を省略している。念のため補足しておくと、開発装置200では、画面遷移編集ツール600を含めこれら3つのツールを任意の組み合わせで動作させることが可能であるし、もちろん3つのツールを同時に動作させることも可能である。
また、開発装置200が備える記憶部150では、図1で示したプログラム記憶部151、雛形データ記憶部152、スクリプトデータ記憶部155が、プログラム記憶部551、雛形データ記憶部652、スクリプトデータ記憶部555に取り替えられている。
なお、説明の便宜上、図45では、図示していないが、開発装置200が備える記憶部150は、UI部品データ記憶部751、レイアウト情報記憶部752、および変換情報記憶部753をさらに備える。これらは画面レイアウト作成ツール700によって参照されるものであるので、後に図51を参照して説明する。
[記憶部について]
図45に示すプログラム記憶部551、雛形データ記憶部652、スクリプトデータ記憶部555について詳細に説明すると次のとおりである。
プログラム記憶部551には、サービス開発ツール500を実行するためのプログラムコードが記憶されている。すなわち、プログラム記憶部251には、サービス開発ツール500に含まれる画面遷移編集ツール600、画面レイアウト作成ツール700、およびスクリプトエディタ800を実行するためのプログラムコードが記憶されている。
雛形データ記憶部652には、画面遷移編集ツール600がスクリプトデータを作成するために用いる雛形データが記憶される。
ここで、図46を用いて、雛形データの詳細について説明すると次のとおりである。図46は、雛形データの一例を示す図である。
図46に示す雛形データH10は、図11で示した雛形データH1と同様、リモコンV2の操作によるイベントのイベントコードを検出するためのスクリプトデータを作成するためのものである。なお、同図に示す雛形データH2の名称は、“template10.svg”とする。
雛形データH10と、雛形データH1との相違点は次の点である。すなわち、雛形データH1のKeyEvent関数には、挿入位置指定情報M1が含まれていたのに対して、雛形データH10のKeyEvent関数には、第1編集領域R1、第2編集領域R2、およびユーザ編集領域R3が規定されている点である。
各編集領域は、具体的には、それぞれの開始行および終了行を示す情報が付加されており、これによって規定されている。つまり、この開始行と、終了行との間にある領域が、各編集領域となる。
具体的には、第1編集領域R1は、開始行を示す第1編集領域開始情報M101Aと、終了行を示す第1編集領域終了情報M101Bとによって規定される。第1編集領域開始情報M101Aは、“// begin of SENNI TOOL KeyEvent”というキーワードからなり、第1編集領域終了情報M101Bは、“// end of SENNI TOOL KeyEvent”というキーワードからなる。
また、第2編集領域R2は、開始行を示す第2編集領域開始情報M102Aと、終了行を示す第2編集領域終了情報M102Bとによって規定される。第2編集領域開始情報M102Aは、“// begin of LAYOUT TOOL KeyEvent”というキーワードからなり、第2編集領域終了情報M102Bは、“// end of LAYOUT TOOL KeyEvent”というキーワードからなる。
そして、ユーザ編集領域R3は、開始行を示すユーザ編集領域開始情報M103Aと、終了行を示すユーザ編集領域終了情報M103Bとによって規定される。ユーザ編集領域開始情報M103Aは、“// begin of User KeyEvent”というキーワードからなり、ユーザ編集領域開始情報M103Bは、“// end of User KeyEvent”というキーワードからなる。
また、別の観点からみれば、第1編集領域開始情報M101Aおよび第1編集領域終了情報M101Bは、画面遷移表を用いて生成する部分コードを挿入する位置を、画面遷移編集ツール111に指定するためのものである。すなわち、第1編集領域開始情報M101Aおよび第1編集領域終了情報M101Bは、挿入位置指定情報M1と同様の役割を果たす(以下、挿入位置指定情報M101と称する)。
同様に、第2編集領域開始情報M102Aおよび第2編集領域終了情報M102Bは、レイアウト情報記憶部752を用いて生成する部分コードを挿入する位置を、画面レイアウト作成ツール700に指定するためのものである(以下、挿入位置指定情報M102と称する)。
また、ユーザ編集領域開始情報M103Aおよびユーザ編集領域終了情報M103Bは、ユーザの編集結果を、挿入すべき位置を指定するためのものである(以下、挿入位置指定情報M103と称する)。
スクリプトデータ記憶部555には、画面遷移編集ツール600によって作成されたスクリプトデータが記憶される。画面遷移編集ツール600が作成するスクリプトデータについては、後ほど詳細に説明する。
(画面遷移編集ツールの詳細について)
再び図45を用いて、画面遷移編集ツール600の概略的構成について説明する。
図45に示すように、画面遷移編集ツール600は、図1を用いて示した画面遷移編集ツール111において、雛形データ挿入位置検知部122、特定情報付与部125、およびスクリプトデータ挿入位置検知部132を、それぞれ、雛形データ挿入位置検知部622、特定情報付与部(付与手段)625、およびスクリプトデータ挿入位置検知部632に取り替えるとともに、雛形データ特定部131を取り除いたものである。
これらの部材は、記憶部150が、雛形データ記憶部252およびスクリプトデータ記憶部255に対応するために次のような機能を有する。
雛形データ挿入位置検知部622は、雛形データに含まれる挿入位置指定情報を検知することにより第1編集領域の位置を特定する。具体的には、まず、雛形データ挿入位置検知部622は、画面遷移表記憶部153から画面遷移表を読み出して、読み出した画面遷移表の「雛形データ」の項目に定義されている雛形データH10(図46)を、雛形データ記憶部652から読み出す。
そして、雛形データ挿入位置検知部622は、雛形データH10を構文解析および字句解析することにより、部分コードを挿入する位置を示す挿入位置指定情報M101の位置を検知する。
また、雛形データ挿入位置検知部622は、雛形データ部分コード生成部123に検知した挿入位置指定情報を転送するとともに、雛形データ部分コード挿入部124に、雛形データH10と、検知した挿入位置指定情報の位置情報とを転送する。
特定情報付与部625は、雛形データ部分コード挿入部124が作成したスクリプトデータに挿入位置特定情報を付与する。特定情報付与部625は、挿入位置特定情報を付与したスクリプトデータをスクリプトデータ記憶部555に記憶する。
スクリプトデータ挿入位置検知部632は、スクリプトデータに含まれる挿入位置特定情報を検知する。具体的には、スクリプトデータ挿入位置検知部632は、スクリプトデータ記憶部555から、スクリプトデータを読み出して、読み出したスクリプトデータの第1編集領域R1を構文解析および字句解析することにより、挿入位置指定情報M101を検知する。
また、スクリプトデータ挿入位置検知部632は、画面遷移表生成部633、スクリプトデータ部分コード挿入部135に、検知した挿入位置指定情報M101の位置情報を転送する。また、スクリプトデータ挿入位置検知部632は、スクリプトデータ部分コード生成部134に検知した挿入位置指定情報M101を転送する。
画面遷移表生成部633は、スクリプトデータ挿入位置検知部632から転送された挿入位置指定情報M101の位置情報に基づいて、スクリプトデータの第1編集領域R1を特定し、第1編集領域R1のコードにおいて検知されているイベントキーを検出し、検出したイベントキーに応じて画面遷移表を生成するものである。
(具体例)
続いて、図46〜図49を参照しながら、画面遷移編集ツール600が、雛形データH10から、スクリプトデータY100を作成する具体的手法について説明する。
[画面遷移表]
図47は、画面遷移表の一部について示したテーブルであり、図48は、雛形データ部分コード生成部が生成する部分コードの一例を示す図である。また、図49は、画面遷移編集ツール600が作成するスクリプトデータの一例を示す図である。
まず、図47を参照しながら、画面遷移表T10の定義について説明する。各列の意味については、図8を用いて説明したとおりであるので、その説明を省略する。
図47に示すように、画面遷移表T10では、画面識別情報”GMN001”について定義されている。画面識別情報”GMN001”では、イベントコード「K」ついて、画面識別情報”index”が定義されており、イベントコード「x」について、画面識別情報”END”が定義されている。その他のイベントコードについては、画面識別情報は定義されていない。
また、雛形データには、”template10.svg”が定義されており、SVGパラメータには、”current”が定義されている。
続いて、図48を参照しながら、雛形データ部分コード生成部123が生成する部分コードD100について説明する。雛形データ部分コード生成部123は、図47の画面遷移表T10を参照して、画面遷移が定義されているイベントコード「k」および「x」について図48に示す部分コードD100を作成する。部分コードD100に含まれるブロックL501およびL502は、それぞれ、イベントコード「k」および「x」についてパターンデータを展開したものである。
[スクリプトデータ]
続いて、図49を参照しながら、雛形データ部分コード挿入部124が作成するスクリプトデータY100について説明する。
雛形データ部分コード挿入部124は、雛形データ挿入位置検知部622から挿入位置指定情報M101の位置情報を受信して、雛形データH10における挿入位置指定情報M101の位置に、雛形データ部分コード生成部123が生成した部分コードD100を挿入する。これにより、図49に示すスクリプトデータY100が得られる。
図49に示すスクリプトデータY100は、図45を用いて示した雛形データH10において、第1編集領域開始情報M101Aと、第1編集領域終了情報M101Bとの間に、雛形データ部分コード生成部123が生成した部分コードD100を挿入したものになっている。
なお、画面遷移編集ツール600において、画面遷移表を更新した場合、既存のスクリプトデータを流用できる点については、これまで説明したとおりである。例えば、画面遷移編集ツール600は、第1編集開始情報M101Aおよび第1編集終了情報M101Bの間に挟まれる第1編集領域R1の部分コードを更新すればよい。
また、上記では、新規にスクリプトデータを作成する場合、画面遷移編集ツール600が、雛形データを展開する構成としたが、これに限られず、他のツール、例えば、画面レイアウト作成ツール700にて展開する構成としてもかまわない。
なお、本実施形態においては、説明の便宜上、スクリプトデータY100において、図9で示した雛形データ識別情報ID1のような識別情報は付与していないが、このような識別情報をスクリプトデータY100に付与することももちろん可能である。例えば、特定情報付与部625が雛形データ識別情報ID1を、スクリプトデータY100に付与して、上述の実施形態の場合と同様、スクリプトデータY100の作成に用いられた雛形データを特定できるようにしてもよい。
(開発装置で動作する画面レイアウト作成ツールについて)
次に、画面レイアウト作成ツールについて説明すると以下のとおりである。
[画面レイアウト作成ツールのユーザインターフェース]
まず、図50を用いて、画面レイアウト作成ツール700のユーザインターフェースについて説明する。図50は、画面レイアウト作成ツールのユーザインターフェースの一例について示した図である。
図50に示すように、画面レイアウト作成ツール700のユーザインターフェースは、レイアウトウィンドウW100と、UI(User Interface)部品リストウィンドウW200とを含む構成である。
レイアウトウィンドウW100は、操作部15の操作に応じて画面のレイアウトを作成するためのウィンドウである。
また、レイアウトウィンドウW100は、編集ペインW101と、プロパティペインW102とに分けられている。
編集ペインW101では、例えば、マウスをはじめとするポインティングデバイスによる操作に応じて、画面上にUI部品を配置することによりレイアウト編集を行うことが可能である。
ここで、UI部品とは、画面上に配置できる、入力・表示のためのインターフェースであり、典型的には、上述のとおり、リストボックス、テキストボックス、カーソル移動、および音楽・動画プレーヤ等のことである。
プロパティペインW102は、上記編集ペインW101に配置したUI部品のプロパティ、すなわち設定値を編集するためのインターフェースである。
UI部品リストウィンドウW200には、編集ペインW101に配置することができるUI部品の名前のリストが表示される。開発者は、UI部品リストウィンドウW200に表示されているUI部品の名前のリストから、所望のUI部品名を選択して、例えば、マウスによるドラッグ&ドロップにより、編集ペインW101に当該UI部品を配置することができる。
図50に示す例は、画面識別情報”GMN001”の画面のレイアウトを作成するものであり、マウスカーソルW202でカーソル移動のUI部品“cursor”(W201)を選択して、カーソル移動W110を編集ペインW101に配置している。
また、カーソル移動W110について補足しておくと、次のとおりである。すなわち、カーソル移動W110は、画面上に、選択可能な項目を所定の行・列等の形式で整列して提示し、上下左右に移動可能なカーソルによって提示した項目の一つを選択させるためのUI部品である。項目を提示する行数、列数は、設定値により任意に変更することができる。
なお、カーソルの移動は、リモコンの操作に応じて行うため、リモコンの方向キーKD1〜KD4に対応している。つまり、「w」「z」「d」「a」のイベントコードに応じてカーソルの移動が行われる。
なお、プロパティペインW102では、カーソル移動W110の提示の設定値を表示させており、「行」には、“3”が設定され、「列」には、“2”が設定されている。
よって、カーソル移動W110は、「その1」〜「その6」の6つの選択項目を3行2列の形式で整列して提示している。
[開発装置で動作する画面レイアウト作成ツールの構成]
続いて、図51を用いて、開発装置200において動作する画面レイアウト作成ツール700の一例について説明する。図51は、画面レイアウト作成ツール700を動作させている開発装置200の概略的構成について示した機能ブロックである。
図46を用いて既に説明したように、開発装置200は、操作部101、表示部102、制御部110、および記憶部150を備えている。
ただし、開発装置200が備える制御部110および記憶部150は、図46を用いて示した開発装置200のものと、次の点で異なる。
まず、図51では、サービス開発ツール500において、画面レイアウト作成ツール700が動作している場合の各種機能を例示している。
また、開発装置200が備える記憶部150は、UI部品データ記憶部751、レイアウト情報記憶部752、および変換情報記憶部753を備える。なお、図46で示した雛形データ記憶部652、画面遷移表記憶部153、およびパターンデータ記憶部154は、以下の例では、画面レイアウト作成ツール700によって参照されないので、説明の便宜上、その記載を省略している。
[記憶部について]
図51に示すUI部品データ記憶部751、レイアウト情報記憶部752、および変換情報記憶部753について詳細に説明すると次のとおりである。
UI部品データ記憶部751は、UI部品の定義体データを記憶している。UI部品の定義体には、複数の属性値および振る舞いが定義されている。
例えば、カーソル移動の定義体データは、上述のとおり、属性値として行数、列数の設定値が定義されている。また、カーソル移動クラスには、振る舞いとして、「w」「z」「d」「a」のイベントコードを検知するべきことが定義されている。
レイアウト情報記憶部752は、画面レイアウト作成ツールで作成したレイアウトに関する情報であるレイアウト情報を記憶するものである。カーソル移動のUI部品が配置された場合、レイアウト情報には、カーソル移動クラスの設定値、および画面上の配置場所等、カーソル移動の定義体データに具体的な値を設定したものが含まれる。
変換情報記憶部753は、レイアウト情報から、スクリプトデータに挿入するための部分コードを生成するための変換情報が記憶されている。
変換情報では、UI部品の定義体データに対応するコードが定義されている。例えば、レイアウト情報に含まれるカーソル移動の定義体データは、変換情報に基づいて、スクリプトデータに記述するべき変数・関数のコードに変換される。この変換処理の詳細については後述する。
[画面レイアウト作成ツールの詳細について]
再び図51を用いて、画面レイアウト作成ツール700の概略的構成について説明する。図51に示すようにて、画面レイアウト作成ツール700は、レイアウト編集部721、スクリプトデータ挿入位置検知部732、スクリプトデータ部分コード生成部(変更部分コード取得手段)734、およびスクリプトデータ部分コード挿入部(置換手段)735を備える構成である。
レイアウト編集部721は、前述のユーザインターフェースを通じて、画面レイアウトに関するレイアウト情報を作成するものである。
スクリプトデータ挿入位置検知部732は、スクリプトデータに含まれる挿入位置特定情報を検知することにより第2編集領域の位置を特定する。具体的には、スクリプトデータ挿入位置検知部732は、スクリプトデータ記憶部555から、スクリプトデータを読み出して、読み出したスクリプトデータを構文解析および字句解析することにより、挿入位置指定情報の位置を検知する。また、スクリプトデータ挿入位置検知部732は、検知した挿入位置特定情報の位置情報をスクリプトデータ部分コード挿入部735に転送する。
スクリプトデータ部分コード生成部734は、変換情報を参照して、レイアウト情報を変換することでスクリプトデータに挿入するべき部分コードを生成する。
具体的には、まず、スクリプトデータ部分コード生成部734は、変換情報記憶部753から変換情報を読み出す。そして、スクリプトデータ部分コード生成部734は、レイアウト情報記憶部752からレイアウト情報を読み出して、読み出したレイアウト情報を、変換情報の規定に従って変換することにより部分コードを生成する。スクリプトデータ部分コード生成部734は、生成した部分コードをスクリプトデータ部分コード挿入部735に出力する。
スクリプトデータ部分コード挿入部735は、スクリプトデータの第2編集領域に部分コードを挿入するものである。
具体的には、スクリプトデータ部分コード挿入部735は、スクリプトデータ挿入位置検知部732から転送される挿入位置特定情報の位置情報に従って、スクリプトデータ部分コード生成部734が生成した部分コードをスクリプトデータに挿入する。
なお、すでにスクリプトデータの第2編集領域において、部分コードが挿入されている場合、スクリプトデータ部分コード挿入部735は、当該挿入されている部分コードを、スクリプトデータ部分コード生成部734が生成した部分コードに置き換えてもよい。
[具体例]
続いて、図52および図53を用いて、画面レイアウト作成ツールが作成するスクリプトデータについて詳細に説明する。
図52は、スクリプトデータ部分コード生成部734が生成する部分コードの一例を示す図であり、図53は、スクリプトデータ部分コード挿入部735が部分コードを挿入することにより得られるスクリプトデータの一例を示す図である。
図52に示す部分コードD101は、カーソル移動の定義体に対応するコードの一部である。より詳しく説明すると、部分コードD101は、カーソル移動の振る舞いについて規定するコードであり、「w」「z」「d」「a」のイベントコードに応じてカーソルの移動を行うためのコードである。
部分コードD101は、「a」「d」「w」および「z」の各イベントコードを検知するためのブロックL511〜L514を含む。
ブロックL511は、カーソルを左方向に動かすためのdecCursorNoX関数を含み、ブロックL512は、カーソルを右方向に動かすためのincCursorNoX関数を含む。また、ブロックL513は、カーソルを上方向に動かすためのdecCursorNoY関数を含み、ブロックL514は、カーソルを下方向に動かすためのincCursorNoX関数を含む。
以下、画面レイアウト作成ツールにおいて、カーソル移動のUI部品を画面に配置して、配置した内容を、図49に示したスクリプトデータY100に対して反映する場合の処理について説明すると次のとおりである。
まず、開発者がインターフェースを通じて、カーソル移動のUI部品を画面に配置すると、レイアウト編集部721は、UI部品データ記憶部751から、カーソル移動の定義体データを読み出して、レイアウト情報としてレイアウト情報記憶部752に記憶する。
その後、スクリプトデータ部分コード生成部334は、レイアウト情報記憶部752から、上記レイアウト情報を読み出して、変換情報記憶部753の変換情報を参照しながら、カーソル移動の定義体に対応する上記部分コードD101を生成する。
一方、スクリプトデータ挿入位置検知部732は、スクリプトデータ記憶部555からスクリプトデータY100を読み出して、スクリプトデータY100に含まれる挿入位置指定情報M102を検知することにより第2編集領域の位置を特定する。
続いて、スクリプトデータ部分コード挿入部735が、第2編集領域開始情報M102Aと第2編集領域終了情報M102Bとの間に、部分コードD101を挿入する。
これにより得られるスクリプトデータが図53に示すスクリプトデータY101である。
(開発装置で動作するスクリプトエディタについて)
次に、スクリプトエディタ800について説明すると次のとおりである。スクリプトエディタ800は、上述のとおり、スクリプトデータの全領域を編集可能である。図54を用いて、スクリプトエディタ800による編集の例について以下に説明する。
例えば、スクリプトデータY101において、イベントコード「b」を検知するには、図54に示すとおり、スクリプトデータY101にコードを追加すればよい。
すなわち、図54に示すスクリプトデータY102では、スクリプトデータY101の第2編集領域R2の先頭に、部分コードD110を追加し、イベントコード「b」を検知するようにしている。
追加した部分コードD110には、スクリプトエディタ800によって追加されたコードであることを示す“//Updated”という更新コメントが付与される。
また、スクリプトエディタ800によって更新されたコードは、所定のタイミングで、ユーザ編集領域R3に退避される。
図55を用いて、スクリプトエディタ800によって更新されたコードを退避する処理の例について説明すると次のとおりである。
サービス開発ツール500が、図54に示すスクリプトデータY102において、“//Updated”という更新コメントを検知し、その部分コードD110が追加された位置を特定する。
そして、部分コードD110が追加された位置が、第1編集領域R1または第2編集領域R2である場合、サービス開発ツール500は、追加された部分コードD110を、ユーザ編集領域R3に退避する。
例えば、図54に示すスクリプトデータY102では、第2編集領域R2に部分コードD110が追加されているので、この部分コードD110を退避の対象とする。
このとき、サービス開発ツール500は、部分コードD110が挿入された位置を維持するため、ユーザ編集領域R3を、第2編集領域R2の前に移動する。
こうして、移動後のユーザ編集領域R3に部分コードD110を退避した結果得られるスクリプトコードが、図55に示すスクリプトデータY103である。
図55のスクリプトデータY103では、図54に示したスクリプトデータY102においてスクリプトエディタ800により更新された部分コードD110が、ユーザ編集領域開始情報M103Aとユーザ編集領域終了情報M103Bとの間に退避されている。
また、ユーザ編集領域R3は、第1編集領域R1の後ろであって、第2編集領域R2の前の位置に移動している。
上記構成によれば、スクリプトエディタ800により更新された部分コードD110が、ユーザ編集領域R3に退避される。よって、画面レイアウト作成ツール700等により、第2編集領域R2等が編集されても、スクリプトエディタ800により更新された部分コードD110の内容が失われてしまうのを防ぐことができる。
なお、上記の構成に限られず次のように構成することも可能である。まず、前述の更新コメントの付与は、スクリプトエディタ800が行ってもよいし、サービス開発ツールが、スクリプトエディタ800による更新を検知して行ってもよい。
また、上記更新コメントの付与は、スクリプトエディタ800が行ってもよいし、サービス開発ツールが、スクリプトエディタ800による更新を検知して行ってもよい。
また、ユーザ編集領域R3は、部分コードD110が挿入された位置を維持するため移動される構成であったが、これに限られず、これ以外の位置に適宜移動可能である。また、ユーザ編集領域R3を、移動させなくてもよく、その位置は、第2編集領域R2の後ろの位置に固定されていてもよい。
また、追加された部分コードD110を、ユーザ編集領域R3に退避する処理は、スクリプトエディタ800が所定時間ごとに行ってもよいし、スクリプトエディタ800がスクリプトデータの編集を終了したときに行ってもよい。
また、画面レイアウト作成ツール700によりスクリプトデータが編集される直前に行ってもよい。また、このとき、画面レイアウト作成ツール700のインターフェースを通じて、スクリプトエディタ800で追加した内容をスクリプトデータが含む旨を開発者に通知してもよい。
また、スクリプトエディタ800で追加した内容が、画面レイアウト作成ツール700で更新しようとする内容と矛盾するときは、いずれか一方の内容を削除することにより、当該矛盾を解消してもよい。画面遷移編集ツール600に関しても同様である。
(変形例)
次に、サービス開発ツール500の好ましい変形例について説明すると次のとおりである。画面レイアウト作成ツール700においてイベントキーを検知するUI部品が配置され、このようなUI部品配置に基づいて、スクリプトデータが作成されたとき、画面遷移編集ツール600において、当該イベントキーについての編集を制限するようにしてもよい。
図56を用いて、この変形例の具体的実現手法について説明すると次のとおりである。図56に示すように、サービス開発ツール500において、編集制限情報登録部900を追加するとともに、記憶部150において、編集制限情報記憶部956を追加している。
また、画面遷移編集ツール600では、画面遷移表更新部121に替えて、画面遷移表更新部621を設けている。
なお、同図では、説明の便宜のため、画面遷移編集ツール600の構成のうち、画面遷移表更新部621のみを記載し、その他の構成については、その記載を省略している。
また、記憶部150の構成として、プログラム記憶部251、画面遷移表記憶部153、編集制限情報記憶部956、およびスクリプトデータ記憶部155のみを記載し、その他の構成については、その記載を省略している。
編集制限情報登録部900は、イベントキー検出部901、および制限情報作成部902を備える構成である。
イベントキー検出部901は、スクリプトデータの第2編集領域R2にイベントキーを検知するコードが含まれているか否かを判定し、イベントキーを検知するコードが含まれる場合、そのコードで検知するイベントキーを検出するためのものである。イベントキー検出部901は、検知したイベントキーを制限情報作成部902に送信する。
制限情報作成部902は、イベントキー検出部901が検出したイベントキーが、画面遷移編集ツール600において編集できない旨を示す制限情報を、編集制限情報記憶部956に登録するものである。
続いて、画面遷移編集ツール600の画面遷移表更新部621につい手説明すると次のとおりである。
画面遷移表更新部621は、開発者の編集操作に応じて、その操作による編集内容が編集制限されているか否かを判定し、編集制限されていなければ、画面遷移表記憶部153に記憶されている画面遷移表を更新するものである。
より具体的には、画面遷移表更新部621は、操作部101において受け付けた開発者の編集操作に応じて、編集制限情報記憶部956を参照し、当該編集操作が、編集を制限されたイベントキーを更新するものか否かを判定する。
そして、編集操作が、編集を制限されたイベントキーを更新するもので無い場合、画面遷移表記憶部153に記憶されている画面遷移表を更新する。
一方、編集操作が、編集を制限されたイベントキーを更新するものである場合、画面遷移表更新部621は、画面遷移表を更新しない。
また、画面遷移表更新部621は、画面遷移編集ツール600のユーザインターフェースを通じて、開発者に編集が制限されているイベントキーを提示してもよい。
図57を用いて、画面遷移表更新部621によって、編集が制限されているイベントキーを提示する具体例について説明すると次のとおりである。
まず、イベントキー検出部901が、スクリプトデータ記憶部155から、図53に示したスクリプトデータY101を読み出す。そして、イベントキー検出部901は、第2編集領域に挿入されている部分コードD101に含まれるコードを構文解析および字句解析することにより、部分コードD101で検知しているイベントキー「a」「d」「w」「z」を検出する。
続いて、制限情報作成部902は、イベントキー「a」「d」「w」「z」が編集制限されている旨の制限情報を作成し、作成した制限情報を編集制限情報記憶部956に登録する。
そして、画面遷移表更新部621は、編集制限情報記憶部956に登録されている制限情報を参照し、編集制限されているイベントキー「a」「d」「w」「z」を、図57に示すようにユーザインターフェースを通じて、開発者に通知する。
すなわち、同図に示す画面遷移表T10では、上下左右の項目において、そのイベントキーに関する編集が制限されていることを示す「×」印を表示している。
画面レイアウト作成ツール700でイベントキーを検知するUI部品が配置されているにもかかわらず、画面遷移編集ツール600によって、当該イベントキーについて編集してしまうと、当該イベントキーに対する処理を重複して定義することになる。
多くの場合、このように一つのイベントキーに対して複数の処理を重複して定義してしまうと、いずれの処理を優先すればよいかわからず、その結果が所望の動作を得られないおそれがある。
上記構成によれば、画面レイアウト作成ツール700でイベントキーを検知するUI部品が配置されているとき、画面遷移編集ツール600によって、あやまって当該イベントキーについて重複編集してしまうことを防ぐことができるという効果を奏する。
(その他の変形例)
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
なお、本発明は、以下のように表現することも可能である。
(1) 雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、上記挿入手段が、上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を上記展開コードに付与する付与手段と、を備えることを特徴とするコード生成装置。
(2) 上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段と、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段と、を備えることを特徴とする上記コード生成装置。
(3) 変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されているに上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段と、を備えることを特徴とする上記コード生成装置。
(4) 上記付与手段は、複数の上記パラメータ変換規則のうちの1つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、
上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成することを特徴とする上記コード生成装置。
(5) 上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段と、上記差分検出手段が検出した差分を、上記変更部分コード生成手段が生成した上記更新部分コードに反映する反映手段と、を備えることを特徴とする上記コード生成装置。
(6) 上記挿入手段は、上記挿入位置特定情報を、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与する特徴とする上記コード生成装置。
(7) 上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与するものであり、上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段と、上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段と、を備える上記コード生成装置。
(8) 上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段を備える上記コード生成装置。
(9) 上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する上記コード生成装置。
(10) 上記展開コードは、イベントを検知する展開コードであり、上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する上記コード生成装置。
(11) 複数の上記挿入手段を備え、上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与する上記コード生成装置。
(12) 上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段と、上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段と、上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段と、を備える上記コード生成装置。
(13) 上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段と、上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段と、を備える上記コード生成装置。
(14) 上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段と、上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段と、を備える上記コード生成装置。
上記では、開発装置100の各ブロック、特に画面遷移編集ツール111が備える画面遷移表更新部121、雛形データ挿入位置検知部122、雛形データ部分コード生成部123、雛形データ部分コード挿入部124、特定情報付与部125、雛形データ特定部131、スクリプトデータ挿入位置検知部132、画面遷移表生成部133、スクリプトデータ部分コード生成部134、およびスクリプトデータ部分コード挿入部135、部分コード比較部141、部分コード修正部142を、CPUを用いてソフトウェアによって実現する例について説明した。
また、上記では、開発装置200の各ブロック、特にサービス開発ツール500に含まれる画面遷移編集ツール600および画面レイアウト作成ツール700の各ブロックを、CPUを用いてソフトウェアによって実現する例について説明した。
画面遷移編集ツール600の各ブロックとは、より具体的には、画面遷移編集ツール600が備える、雛形データ挿入位置検知部622、特定情報付与部625、スクリプトデータ挿入位置検知部632のことである。
また、画面レイアウト作成ツール700の各ブロックとは、より具体的には、レイアウト編集部721、スクリプトデータ挿入位置検知部732、スクリプトデータ部分コード生成部734、およびスクリプトデータ部分コード挿入部735のことである。
また、編集制限情報登録部900のイベントキー検出部901および制限情報作成部902についても上記の例のとおり、CPUを用いてソフトウェアによって実現することができる。
さらにいえば、開発装置100および開発装置200は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである開発装置100または開発装置200の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記開発装置100または開発装置200に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、開発装置100または開発装置200を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。また、開発装置100または開発装置200の各ブロックは、ハードウェアロジックによって構成してもよい。
本発明は、雛形コードに部分コードを挿入して展開コードを生成した後においても、挿入された部分コードを特定することができるため、部分コードのカスタマイズ等が容易となる。このため、雛形コードを展開してプログラムコードを作成するような開発環境に利用することができる。
100 開発装置(コード生成装置)
101 操作部
102 表示部
110 制御部
111 画面遷移編集ツール(コード生成プログラム)
121 画面遷移表更新部
122 雛形データ挿入位置検知部
123 雛形データ部分コード生成部(部分コード生成手段)
124 雛形データ部分コード挿入部(挿入手段)
125 特定情報付与部(付与手段)
131 雛形データ特定部
132 スクリプトデータ挿入位置検知部(挿入位置特定情報検出手段)
133 画面遷移表生成部(パラメータ指定情報生成手段)
134 スクリプトデータ部分コード生成部(部分コード生成手段)
135 スクリプトデータ部分コード挿入部(置換手段)
141 部分コード比較部(差分検出手段)
142 部分コード修正部(反映手段)
142A 部分コード修正部(反映手段)
150 記憶部
151 プログラム記憶部
152 雛形データ記憶部
153 画面遷移表記憶部
154 パターンデータ記憶部
155 スクリプトデータ記憶部
161 画面遷移表履歴記憶部
200 開発装置(コード生成装置、コード編集装置)
551 プログラム記憶部
555 スクリプトデータ記憶部
600 画面遷移編集ツール
621 画面遷移表更新部
622 雛形データ挿入位置検知部
625 特定情報付与部(付与手段)
632 スクリプトデータ挿入位置検知部
652 雛形データ記憶部
700 画面レイアウト作成ツール
721 レイアウト編集部
732 スクリプトデータ挿入位置検知部
734 スクリプトデータ部分コード生成部(変更部分コード取得手段)
735 スクリプトデータ部分コード挿入部(置換手段)
751 UI部品データ記憶部
752 レイアウト情報記憶部
800 スクリプトエディタ
900 編集制限情報登録部
901 イベントキー検出部
902 制限情報作成部
956 編集制限情報記憶部
D1〜D6 部分コード
F1、F2 修正コード
H1 雛形データ
ID1 雛形データ識別情報(雛形コード識別情報)
ID2A 挿入位置特定情報
ID2B 挿入位置特定情報
M1 挿入位置指定情報
M2 変換指定子
M3 パラメータ変換部分
M4 パラメータ変換部分
M101 挿入位置指定情報
M101A 第1編集領域開始情報
M101B 第1編集領域終了情報
M102 挿入位置指定情報
M102A 第2編集領域開始情報
M102B 第2編集領域終了情報
T1、T2 画面遷移表(変換規則、パラメータ指定情報)
Y1〜Y7 スクリプトデータ(展開コード)

Claims (18)

  1. 雛形コードに部分コードを挿入して展開コードを生成するコード生成プログラムであって、コンピュータを、
    上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段、および、
    上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段、として機能させるためのコード生成プログラム。
  2. 上記コンピュータを、
    上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、
    上記生成された展開コードに付与された挿入位置特定情報を検出する挿入位置特定情報検出手段、および、
    上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記部分コードを、上記変更部分コード取得手段が取得した上記他の部分コードに置き換える置換手段、として機能させるための請求項1に記載のコード生成プログラム。
  3. 上記コンピュータを、
    変換の対象である変換前パラメータと、変換の結果である変換後パラメータとの対応を定義するパラメータ変換規則に従って、上記変換の対象である変換前パラメータを指定するパラメータ指定情報について、該パラメータ指定情報に指定されている上記変換前パラメータを、上記変換後パラメータに変換することで、上記挿入手段が挿入する上記部分コードまたは上記部分コード取得手段が取得する上記他の部分コードを生成する部分コード生成手段、として機能させるための請求項2に記載のコード生成プログラム。
  4. 上記付与手段は、複数の上記パラメータ変換規則のうちの1つを示す変換規則指定情報を上記付与する挿入位置特定情報に含め、
    上記部分コード生成手段は、上記変換規則指定情報に含まれる上記変換規則指定情報が示す上記パラメータ変換規則を用いて上記他の部分コードを生成する請求項3に記載のコード生成プログラム。
  5. 上記コンピュータを、
    上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとを比較して差分を検出する差分検出手段、および、
    上記差分検出手段が検出した差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する反映手段、として機能させる請求項3または4に記載のコード生成プログラム。
  6. 上記挿入手段は、上記展開コードの編集を行う機能を有するコード編集装置において、上記挿入位置特定情報に対して行なわれる編集が禁止される形式で、当該挿入位置特定情報を上記展開コードに付与する請求項1から5のいずれか1項に記載のコード生成プログラム。
  7. 上記付与手段は、上記雛形コードを特定する雛形コード識別情報を、上記展開コードに付与し、
    上記コンピュータを、
    上記部分コードとは異なる他の部分コードを取得する変更部分コード取得手段、
    上記生成された展開コードに付与された上記雛形コード識別情報によって特定される雛形コードが更新されているかを判定する判定手段、および、
    上記判定手段によって雛形コードが更新されていると判定された場合、上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記変更部分コード取得手段が取得した上記他の部分コードを挿入して、展開コードを生成する挿入手段、として機能させる請求項1に記載のコード生成プログラム。
  8. 上記コンピュータを、
    上記部分コード生成手段が生成した部分コードにおける上記変換後パラメータを、上記パラメータ変換規則を用いて、上記変換前パラメータに逆変換することで、上記パラメータ指定情報を生成するパラメータ指定情報生成手段、として機能させるための請求項3に記載のコード生成プログラム。
  9. 上記部分コードは、イベントを検知するイベント検知コードと、該イベントコードによって検知されるイベントに対応する画面遷移を規定するイベント対応コードとを含み、
    上記差分検出手段が、上記イベント検知コードの同一イベントに対応する、上記イベント検知コードに挿入されている上記部分コードと、上記挿入手段が上記イベント検知コードに挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、
    上記反映手段は、上記イベント対応コードに規定される画面遷移が同一となる上記他の部分コードに含まれるイベント検知コードに関して、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに含まれるイベント検知コードに反映する請求項5に記載のコード生成プログラム。
  10. 上記展開コードは、イベントを検知する展開コードであり、
    上記差分検出手段が、上記展開コードの同一イベントに対応する、上記展開コードに挿入されている上記部分コードと、上記挿入手段が挿入した上記部分コードに相当する部分コードとの間に差分を検出した場合、
    上記反映手段は、上記差分を、上記部分コード生成手段が生成した上記他の部分コードに反映する請求項5に記載のコード生成プログラム。
  11. 複数の上記挿入手段を備え、
    上記雛形コードには、上記挿入手段それぞれに固有の上記挿入位置指定情報が付されており、
    上記挿入手段は、該挿入手段に固有の上記挿入位置指定情報が示す位置に、該挿入手段に固有の部分コードを挿入して展開コードを生成し、
    上記付与手段は、上記挿入手段が上記雛形コードに上記固有の部分コードを挿入した位置を示す、該挿入手段に固有の挿入位置特定情報を、上記展開コードに付与する請求項1記載のコード生成プログラム。
  12. 上記コンピュータを、
    上記展開コードに挿入された上記固有の部分コードとは異なる他の固有の部分コードを取得する変更部分コード取得手段、
    上記生成された展開コードに付与された上記挿入手段に固有の挿入位置特定情報を検出する挿入位置特定情報検出手段、および、
    上記挿入位置特定情報検出手段が検出した上記挿入位置特定情報が示す位置に挿入された上記固有の部分コードを、上記変更部分コード取得手段が取得した上記他の固有の部分コードに置き換える置換手段、として機能させるための請求項11に記載のコード生成プログラム。
  13. 上記コンピュータを、
    上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、
    上記編集検知手段が上記固有の部分コードの編集を検知すると、当該編集箇所を、上記展開コードにおける、上記複数の挿入手段に固有の挿入位置指定情報それぞれが示す位置を除く位置に退避する退避手段、として機能させるための請求項11または12に記載のコード生成プログラム。
  14. 上記コンピュータを、
    上記展開コードの編集を行う機能を有するコード編集装置によって上記展開コードの上記固有の部分コードが編集されたことを検知する編集検知手段、および、
    上記置換手段が、上記編集検知手段によって検知された上記固有の部分コードを置き換えようとすることを検知する置換検知手段、として機能させるための請求項12または13に記載のコード生成プログラム。
  15. 上記コンピュータを、
    上記複数の挿入手段の上記部分コードにおいて共通に設定可能な設定値が、一の上記挿入手段が挿入する固有の部分コードで指定されたとき、他の上記挿入手段が挿入する固有の部分コードで上記設定値が設定されることを禁止する禁止手段、として機能させるための請求項11から14のいずれか1項に記載のコード生成プログラム。
  16. 請求項1から15に記載のコード生成プログラムを記録したコンピュータ読み取り可能な記録媒体。
  17. 雛形コードに部分コードを挿入して展開コードを生成するコード生成装置であって、
    上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入手段と、
    上記挿入手段が上記雛形コードに上記部分コードを挿入した位置を示す挿入位置特定情報を、上記展開コードに付与する付与手段と、を備えることを特徴とするコード生成装置。
  18. 雛形コードに部分コードを挿入して展開コードを生成するコード生成装置の制御方法であって、
    上記部分コードを挿入する位置を示す挿入位置指定情報が示す、雛形コード内の位置に、上記部分コードを挿入して、展開コードを生成する挿入ステップと、
    上記挿入ステップにおいて上記雛形コードに上記部分コードが挿入された位置を示す挿入位置特定情報を、上記展開コードに付与する付与ステップと、を含むことを特徴とするコード生成装置の制御方法。
JP2010019370A 2009-04-28 2010-01-29 コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法 Pending JP2010277572A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010019370A JP2010277572A (ja) 2009-04-28 2010-01-29 コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009109974 2009-04-28
JP2010019370A JP2010277572A (ja) 2009-04-28 2010-01-29 コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法

Publications (1)

Publication Number Publication Date
JP2010277572A true JP2010277572A (ja) 2010-12-09

Family

ID=43424432

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010019370A Pending JP2010277572A (ja) 2009-04-28 2010-01-29 コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法

Country Status (1)

Country Link
JP (1) JP2010277572A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105286A (ja) * 2011-11-11 2013-05-30 Hitachi Ltd プログラム自動生成装置およびプログラム自動生成方法
WO2013080332A1 (ja) * 2011-11-30 2013-06-06 三菱電機株式会社 プロジェクトデータ作成装置及びプログラマブル表示器
US9275020B2 (en) 2013-01-31 2016-03-01 International Business Machines Corporation Tracking changes among similar documents
JP6958884B1 (ja) * 2021-06-15 2021-11-02 ソプラ株式会社 プログラムコード自動生成システム
CN116610308A (zh) * 2023-07-13 2023-08-18 支付宝(杭州)信息技术有限公司 代码管理方法及装置、电子设备及存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105286A (ja) * 2011-11-11 2013-05-30 Hitachi Ltd プログラム自動生成装置およびプログラム自動生成方法
WO2013080332A1 (ja) * 2011-11-30 2013-06-06 三菱電機株式会社 プロジェクトデータ作成装置及びプログラマブル表示器
TWI475345B (zh) * 2011-11-30 2015-03-01 Mitsubishi Electric Corp 專案資料作成裝置及可程式顯示器
US9275020B2 (en) 2013-01-31 2016-03-01 International Business Machines Corporation Tracking changes among similar documents
US10169393B2 (en) 2013-01-31 2019-01-01 International Business Machines Corporation Tracking changes among similar documents
JP6958884B1 (ja) * 2021-06-15 2021-11-02 ソプラ株式会社 プログラムコード自動生成システム
JP2022190776A (ja) * 2021-06-15 2022-12-27 ソプラ株式会社 プログラムコード自動生成システム
CN116610308A (zh) * 2023-07-13 2023-08-18 支付宝(杭州)信息技术有限公司 代码管理方法及装置、电子设备及存储介质
CN116610308B (zh) * 2023-07-13 2023-11-03 支付宝(杭州)信息技术有限公司 代码管理方法及装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US8910064B2 (en) GUI program creation supporting apparatus, GUI program creation support method, computer-readable recording medium and integrated circuit
KR101885089B1 (ko) 건축 bim 설계 파일의 엑셀 파일 전환 방법
CN102722364B (zh) 用于用户界面的基于标记的可扩展性
US8249732B2 (en) System and method for developing automated templates for knowledge capture
US8386919B2 (en) System for displaying an annotated programming file
EP2495667A1 (en) System, method, and program for editing of electronic document
US20090293005A1 (en) System and method for user interface design generator for data management applications
US20070257938A1 (en) Element template system
US20080015911A1 (en) Methods and apparatuses for developing business solutions
JP7373563B2 (ja) ウェブサイト構築システム用の構成可能なアプリケーションの作成および処理のためのシステムおよび方法
JP2010277572A (ja) コード生成プログラム、それを記録したコンピュータ読み取り可能な記録媒体、コード生成装置、およびコード生成方法
KR101772785B1 (ko) 프로그램 그래프 표시 장치, 프로그램 그래프 표시 방법 및 프로그램 그래프 표시 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2008217651A (ja) 設計支援装置、設計支援方法、およびプログラム
US20110126171A1 (en) Dynamic native editor code view facade
US20080040677A1 (en) HMI Development Support Apparatus, HMI Development Support Method and HMI Development Support Program
JP2008242964A (ja) ユーザーインターフェース設計プログラムおよびユーザーインターフェース設計方法
JP2007011507A (ja) プログラムツリーの表示方法、およびプログラム生成システム
CN113805883A (zh) 创建应用程序的方法和系统
Vieritz et al. Access to UML diagrams with the HUTN
JP5085421B2 (ja) ソフトウェア資産再利用支援プログラム
JP4957043B2 (ja) 情報処理装置、プログラム及び業務アプリケーション導入方法
JP2001273125A (ja) ソースプログラム自動生成方法およびシステム、ならびにそのプログラム記録媒体
Kavaldjian et al. Generating content presentation according to purpose
Vesterli Oracle ADF Survival Guide: Mastering the Application Development Framework
JP2014013490A (ja) 画像領域分割装置、その方法及びプログラム