Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5511704B2 - Apparatus, method, and program for supporting creation of software - Google Patents
[go: Go Back, main page]

JP5511704B2 - Apparatus, method, and program for supporting creation of software - Google Patents

Apparatus, method, and program for supporting creation of software Download PDF

Info

Publication number
JP5511704B2
JP5511704B2 JP2011021119A JP2011021119A JP5511704B2 JP 5511704 B2 JP5511704 B2 JP 5511704B2 JP 2011021119 A JP2011021119 A JP 2011021119A JP 2011021119 A JP2011021119 A JP 2011021119A JP 5511704 B2 JP5511704 B2 JP 5511704B2
Authority
JP
Japan
Prior art keywords
frame
event
frame section
constraint
animation
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.)
Active
Application number
JP2011021119A
Other languages
Japanese (ja)
Other versions
JP2012160137A (en
Inventor
慎也 井口
真紀 森
一智 小林
勉 原田
正義 清水
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.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Clarion Co Ltd
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 Clarion Co Ltd filed Critical Clarion Co Ltd
Priority to JP2011021119A priority Critical patent/JP5511704B2/en
Publication of JP2012160137A publication Critical patent/JP2012160137A/en
Application granted granted Critical
Publication of JP5511704B2 publication Critical patent/JP5511704B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ソフトウェアの作成を支援するための技術に関する。   The present invention relates to a technique for supporting creation of software.

近年、カーナビゲーション(以下「カーナビ」)等のGUI(Graphical User Interface)では、アニメーション(以下「アニメ」)を用いた動的な視覚効果が重視されている。そこで、GUIで表示される部品又は画面の切り替えにはアニメが使用される。例えば、ユーザが画面に表示されたボタンを押下すると、ボタンが押下される様子がアニメを用いて連続的に表現される。   In recent years, GUI (Graphical User Interface) such as car navigation (hereinafter referred to as “car navigation”) emphasizes dynamic visual effects using animation (hereinafter referred to as “animation”). Therefore, animation is used to switch between components displayed on the GUI or the screen. For example, when the user presses a button displayed on the screen, the state in which the button is pressed is continuously expressed using animation.

アニメを含むGUIのデザイン設計は、デザイナーが行うことが多い。しかし、デザイナーは、スクリプトプログラムを書けないことが多い。そこで、例えば、特許文献1は、画面に表示される部品のアニメ状態をタイムラインに沿って表示することにより、デザイナーがGUIのデザインを簡単に編集できるようにする方法を開示している。   Designers often design GUIs including animation. However, designers often cannot write script programs. Thus, for example, Patent Document 1 discloses a method that allows a designer to easily edit a GUI design by displaying an animation state of a component displayed on a screen along a timeline.

しかし、カーナビは、ユーザの操作又は車の走行状況に応じて、様々な割り込み処理が発生する。例えば、CD(Compact Disk)の取り出し、及び誘導ルートのリルートなどが発生する。したがって、カーナビのGUIの開発においては、これらの割り込み処理を考慮しなければならず、設計及び開発が難しい。そこで、デザイナー及びソフトウェア作成者(以下「開発者」)の設計及び開発の負荷を軽減するために、様々な開発支援ツールが提案されている。例えば、特許文献2は、割り込み画面を表示させる際、画面をまとめた画面グループと、複数の割り込み表示ルール及びその例外表示データとに基づき、矛盾なく画面を表示する表示制御情報を生成して画面の表示内容を制御する方法を開示している。   However, in the car navigation system, various interruption processes occur according to the user's operation or the driving situation of the car. For example, removal of a CD (Compact Disk), reroute of a guidance route, and the like occur. Therefore, in the development of a car navigation GUI, these interrupt processes must be taken into account, and design and development are difficult. Therefore, various development support tools have been proposed in order to reduce the design and development load of designers and software creators (hereinafter “developers”). For example, when displaying an interrupt screen, Patent Literature 2 generates display control information for displaying a screen without contradiction based on a screen group in which the screens are combined, a plurality of interrupt display rules, and exception display data thereof. Is disclosed.

特開2003−169290号公報JP 2003-169290 A 特開2008−40666号公報JP 2008-40666 Gazette

特許文献1によれば、GUIを設計するデザイナーは、画面内のアニメを設計する際、タイムライン型編集ツールにおいて、タイムラインの特定の時間を指定することで、その指定した時間における画面内のアニメの状態を視覚的に確認することができる。しかし、タイムラインは複数のアニメの画面を連続的に表現するため、画面単位でスクリプトを記述する開発者にとっては、スクリプトを埋め込む位置を特定しにくい。また、開発者は、アプリケーション全体の画面構成及び画面遷移が把握しにくいため、開発及びデバッグが困難となってしまう。   According to Patent Document 1, when designing a GUI on a screen, a designer who designs a GUI specifies a specific time on the timeline in the timeline type editing tool, so that the screen within the specified time can be displayed. You can visually check the state of the animation. However, since the timeline expresses a plurality of animation screens continuously, it is difficult for a developer who writes a script in units of screens to specify a position where the script is embedded. Further, since it is difficult for the developer to grasp the screen configuration and screen transition of the entire application, development and debugging become difficult.

特許文献2では、割り込みイベントが発生した際に割り込み画面を表示させるためのルールの作成、ルールの修正、及びルールをチェックするための方法を開示している。しかし、特許文献2では、カーナビの装置内部の状態(例えば、CPU使用率、メモリ使用率等)、又はカーナビが外部の装置から受け取った情報(例えば、車の速度、ブレーキの状態等)などに基づき、GUIの動作が制限されるソフトウェアの作成(例えば設計及び/又は開発)は困難である。   Patent Literature 2 discloses a method for creating a rule for displaying an interrupt screen when an interrupt event occurs, correcting the rule, and checking the rule. However, in Patent Document 2, the state of the car navigation device (for example, the CPU usage rate, the memory usage rate, etc.) or the information received by the car navigation system from an external device (for example, the vehicle speed, the brake status, etc.) Based on this, it is difficult to create software (for example, design and / or development) in which GUI operation is limited.

以上の問題は、カーナビで実行されるソフトウェアの作成に限らず、時間の経過に伴い画面が遷移するGUIを表示する他種のソフトウェアの作成についてもあり得る。   The above problems are not limited to the creation of software executed by a car navigation system, but may also be related to creation of other types of software that display a GUI whose screen changes with the passage of time.

そこで、本発明の目的は、GUIを表示するソフトウェアの作成を容易にすることである。   Accordingly, an object of the present invention is to facilitate creation of software for displaying a GUI.

時間の経過に伴い遷移する複数の連続するフレームからなるフレーム区間を含む画面データを基に、前記フレーム区間の表示中に発生したイベントに応じて遷移するフレーム区間を定義した遷移管理情報を生成し、前記遷移管理情報を基にソフトウェアの作成が支援される。具体的には、例えば、ユーザが遷移管理情報を基にソフトウェアを作成する。各フレーム区間は、連続した1以上のフレームで構成されている。画面データにおける複数のフレームは、前記GUIにおいて表示されるオブジェクトである表示部品が配置された1以上のフレームを含んでいる。画面データは、どのフレームに配置されている表示部品が実行された場合に表示がどのフレームに遷移するかを表す情報を含んだ定義情報を含んでいる。画面データを基に特定されたイベントを表す情報が、遷移管理情報に含まれている。   Based on the screen data including a frame section consisting of a plurality of continuous frames that transition with time, it generates transition management information that defines a frame section that transitions according to an event that occurred during the display of the frame section. The creation of software is supported based on the transition management information. Specifically, for example, the user creates software based on the transition management information. Each frame section is composed of one or more consecutive frames. The plurality of frames in the screen data include one or more frames in which display components that are objects displayed in the GUI are arranged. The screen data includes definition information including information indicating which frame the display transitions to when the display component arranged in which frame is executed. Information representing an event identified based on the screen data is included in the transition management information.

本発明によれば、GUIを表示するソフトウェアの作成が容易になる。   According to the present invention, creation of software for displaying a GUI is facilitated.

本発明の一実施形態に係るソフトウェア作成支援装置の画面表示例を示す。The example of a screen display of the software creation assistance apparatus which concerns on one Embodiment of this invention is shown. 表示対象フレームがジャンプする処理の一例を示す。An example of a process in which a display target frame jumps is shown. 本発明の一実施形態に係るソフトウェア作成支援装置の機能ブロックの一例を示す。2 shows an example of functional blocks of a software creation support apparatus according to an embodiment of the present invention. 画面遷移表の一例を示す。An example of a screen transition table is shown. イベント制約定義表の一例を示す。An example of an event constraint definition table is shown. 画面遷移処理に関するコード雛形の一例を示す。An example of a code template for screen transition processing is shown. コード雛形表700及びコード雛形の一例を示す。An example of a code template table 700 and a code template is shown. 画面データから画面遷移表を生成する処理のフローチャートの一例である。It is an example of the flowchart of the process which produces | generates a screen transition table from screen data. 図8のステップS812のフローチャートの一例である。It is an example of the flowchart of step S812 of FIG. 画面遷移表から画面雛形を生成する処理のフローチャートの一例である。It is an example of the flowchart of the process which produces | generates a screen model from a screen transition table.

以下、図面を参照して、本発明の一実施形態を説明する。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

なお、以下の説明では「xxx表」の表現にて各種情報を説明することがあるが、各種情報は、表以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「xxx表」を「xxx情報」と言うことができる。   In the following description, various types of information may be described using the expression “xxx table”, but the various types of information may be expressed using a data structure other than the table. In order to show that it does not depend on the data structure, the “xxx table” can be referred to as “xxx information”.

また、以下の説明では、要素を特定するために名称又は番号が使用されるが、名称又は番号に代えて又は加えて、他種の識別情報が使用されて良い。   In the following description, a name or number is used to identify an element, but other types of identification information may be used instead of or in addition to the name or number.

また、以下の説明では、プログラムがプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで発揮される「機能」(又はプログラム)を主語にして処理を説明することがあるが、この「機能」は、プロセッサが定められた処理を適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行われるものであるため、処理の主語は「プロセッサ」とされても良い。なお、この「プロセッサ」は、一つの物理的なプロセッサに限定されず、機能の処理の一部又は全部を行う、プロセッサとは別のハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。   Further, in the following description, the process may be described using a “function” (or program) that is exhibited when the program is executed by a processor (for example, a CPU (Central Processing Unit)) as a subject. “Function” is a process in which the processor determines a process appropriately using a storage resource (for example, a memory) and / or a communication interface device (for example, a communication port). Therefore, the subject of the process is “processor”. Also good. The “processor” is not limited to one physical processor, and may include a hardware circuit different from the processor that performs part or all of the processing of functions. The computer program may be installed on each computer from a program source. The program source may be, for example, a program distribution server or a storage medium.

図1は、本発明の一実施形態に係るソフトウェア作成支援装置の画面表示例を示す。   FIG. 1 shows a screen display example of a software creation support apparatus according to an embodiment of the present invention.

タイムライン型画面設計ツールの画面100は、部品配置エリア130、部品メニューエリア110、部品編集エリア120、及びタイムライン記述エリア140を有している。   The screen 100 of the timeline type screen design tool has a component arrangement area 130, a component menu area 110, a component editing area 120, and a timeline description area 140.

部品配置エリア130は、表示部品を配置して画面を構成するエリアである。本実施形態の説明において、「表示部品」とは、開発対象のソフトウェアが提供する画面に表示されるオブジェクトである。表示部品としては、例えば、「戻る」ボタン131、「データ更新」ボタン132、「表示切替」ボタン133、及び、吹き出し134がある。ボタン131〜133のいずれが指定されてもボタン押下イベントが発生する。吹き出し134には、様々なメッセージが表示される。   The component arrangement area 130 is an area in which display components are arranged to configure a screen. In the description of this embodiment, a “display component” is an object displayed on a screen provided by development target software. Examples of the display component include a “return” button 131, a “data update” button 132, a “display switching” button 133, and a balloon 134. A button press event occurs regardless of which of the buttons 131 to 133 is designated. Various messages are displayed in the balloon 134.

部品メニューエリア110には、部品配置エリア130に配置された表示部品の加工メニューが表示される。例えば、「拡大・縮小」メニューが選択されると、表示部品のサイズの変更が可能となる。   In the parts menu area 110, a processing menu for display parts arranged in the parts arrangement area 130 is displayed. For example, when the “enlarge / reduce” menu is selected, the size of the display component can be changed.

部品編集エリア120には、部品配置エリア130で選択された表示部品に関する属性情報が表示される。このエリア120に表示された属性情報が変更されると、表示部品の動作及び機能の変更が可能となる。例えば、同図に示すように、部品配置エリア130において「データ更新」ボタン132が選択されると、部品編集エリア120には「データ更新」ボタン132の属性情報が表示される。ここで、「ID」は、表示部品を一意に識別する識別子であり、「Update」という識別子が付与されている。「種類」は、その表示部品が有する機能を示しており、「ボタン」という種類が付与されている。したがって、「データ更新」ボタン132が選択されると、「Update」という識別子に対応づけられた処理が実行されることとなる。   In the component editing area 120, attribute information related to the display component selected in the component arrangement area 130 is displayed. When the attribute information displayed in this area 120 is changed, the operation and function of the display component can be changed. For example, as shown in the figure, when the “data update” button 132 is selected in the component arrangement area 130, the attribute information of the “data update” button 132 is displayed in the component edit area 120. Here, “ID” is an identifier for uniquely identifying a display component, and an identifier “Update” is given. “Type” indicates the function of the display component, and the type “button” is given. Therefore, when the “data update” button 132 is selected, a process associated with the identifier “Update” is executed.

タイムライン記述エリア140には、フレームと、そのフレームで実行されるプログラムとを対応づけものが、時間軸142に沿って並べられる。ここで、「フレーム」とは、一つの画面のデータである。また、時間軸142は、左から右に進むにつれて時間が経過するものとする。この時間軸142に沿って並べられたフレーム及びそのフレームに対応する様々なデータをまとめて「タイムライン」と呼ぶ。原則として、複数のフレームで一つのアニメが構成される。したがって、フレーム内の時間を進めることで、アニメが実行される。   In the timeline description area 140, an association between a frame and a program executed in the frame is arranged along the time axis 142. Here, the “frame” is data of one screen. In addition, the time axis 142 is assumed to have elapsed time from the left to the right. The frames arranged along the time axis 142 and various data corresponding to the frames are collectively referred to as a “timeline”. In principle, one animation is composed of multiple frames. Therefore, the animation is executed by advancing the time in the frame.

フレーム番号144は、フレームを識別する番号である。時間軸142に並べられた先頭のフレームから番号の小さい順に、連続した番号が、フレーム番号144として、各フレームに付与される。   The frame number 144 is a number for identifying a frame. A consecutive number is assigned to each frame as a frame number 144 in ascending order from the first frame arranged on the time axis 142.

時間軸142上に、表示時間143が表示される。表示時間143は、時間軸142における、部品配置エリア130に表示されているフレームの番号に対応した箇所、に位置する。表示時間143は、ユーザ(例えばデザイナー)からの操作に応答して時間軸142上を移動するスライダーであって良い。   A display time 143 is displayed on the time axis 142. The display time 143 is located at a position on the time axis 142 corresponding to the frame number displayed in the component placement area 130. The display time 143 may be a slider that moves on the time axis 142 in response to an operation from a user (for example, a designer).

ラベル名145は、フレーム区間を識別するための文字列である。ラベル名145は、プログラムにおいて、特定のフレームへジャンプする場合などに使用される。なお、「フレーム区間」とは、時間の経過に伴い順次に連続して表示される1以上のフレームのフレーム番号範囲(先頭のフレームの番号から後端のフレームの番号までの範囲)を意味する。また、本実施形態の説明において、「ジャンプ」とは、プログラムの実行により、典型的には、表示中のフレームの次に表示されるフレームが、表示中のフレームの番号に連続した次の番号のフレームではなく、表示中のフレームの番号とは非連続の番号のフレームになることを意味する。しかし、表示中のフレームの次に表示されるフレームの番号が、表示中のフレームの番号に連続した次の番号でも表示中のフレームの番号とは非連続の番号でも良い場合にも、「ジャンプ」という言葉が使用されることがある。   The label name 145 is a character string for identifying the frame section. The label name 145 is used when jumping to a specific frame in the program. Note that the “frame section” means a frame number range of one or more frames (a range from the number of the first frame to the number of the rearmost frame) that are sequentially displayed as time passes. . Further, in the description of the present embodiment, “jump” is typically a number that is displayed next to a frame that is displayed next to the number of the frame that is being displayed. This means that the frame number being displayed is not a consecutive frame but a frame with a non-consecutive number. However, even if the number of the frame displayed next to the frame being displayed may be the next number that is consecutive to the number of the frame being displayed or a number that is not continuous with the number of the frame being displayed, Is sometimes used.

スクリプト有無マーク146は、フレームに対応するスクリプトプログラム(以下「スクリプト」)が存在するか否かを示す記号である。スクリプトは、フレーム内の表示部品等を制御する際に使用される。スクリプト言語としては、例えば、ActionScript、Python、Ruby、JavaScript(登録商標)等がある。   The script presence / absence mark 146 is a symbol indicating whether or not a script program (hereinafter “script”) corresponding to the frame exists. The script is used when controlling display components in the frame. Examples of script languages include ActionScript, Python, Ruby, JavaScript (registered trademark), and the like.

レイヤ141は、表示部品が重なったときの画面表示における前後関係を示す。表示部品が重なったとき、列の上の方に記載の表示部品が前面に表示される。   A layer 141 indicates the front-rear relationship in the screen display when the display components overlap. When the display parts overlap, the display parts described in the upper part of the column are displayed on the front.

表示部品リスト147には、開発中のソフトウェアで使用される全ての表示部品の名称のリストである。   The display component list 147 is a list of names of all display components used in the software under development.

表示部品リスト147に表示されている表示部品名称毎に、部品表示区間148と部品非表示区間149との少なくとも一方がある。部品表示区間148は、同図において破線の矢印が記されている区間であり、表示部品が部品配置エリア130に表示される時区間を示す。一方、部品非表示区間149は、同図において黒色の斜線が記されている区間であり、表示部品が部品配置エリア130に表示されない区間を示す。例えば、同図の吹き出し134は、フレーム「1」(フレーム番号「1」のフレーム)からフレーム「17」のそれぞれに含まれている。故に、フレーム「1」からフレーム番号の小さい順に複数のフレームが表示される場合、フレーム「17」まで吹き出し134が表示され、表示されるフレームがフレーム「17」からフレーム「18」に変わった場合に、吹き出し134が非表示となることがわかる。   For each display component name displayed in the display component list 147, there is at least one of a component display section 148 and a component non-display section 149. The component display section 148 is a section in which broken arrows are marked in the figure, and indicates a time section in which the display component is displayed in the component arrangement area 130. On the other hand, the component non-display section 149 is a section in which black diagonal lines are marked in the drawing, and indicates a section in which display components are not displayed in the component arrangement area 130. For example, the balloon 134 shown in the figure is included in each of the frame “1” (frame number “1”) to frame “17”. Therefore, when a plurality of frames are displayed in ascending order of the frame number from frame “1”, balloon 134 is displayed from frame “17”, and the displayed frame changes from frame “17” to frame “18”. In addition, it can be seen that the balloon 134 is not displayed.

図2は、図1において「表示切替」ボタン133が押下された場合に表示対象フレームがフレーム「17」からフレーム「45」にジャンプする処理の一例を示す。   FIG. 2 shows an example of a process in which the display target frame jumps from the frame “17” to the frame “45” when the “display switching” button 133 in FIG. 1 is pressed.

同図において、フレーム「15」には、画面切り替え用のスクリプトが埋め込まれている。スクリプト202は、ボタンの押下によって、フレーム番号「45」のフレームである「menu_list」にジャンプするスクリプトの例である。スクリプト202には、「表示切替」ボタン133が押下されると、ボタン押下イベントが発生し、関数「pressChangeViewButton」が呼ばれ、関数内に記載されている「goto(”menu_list”)」が実行される旨記載されている。したがって、スクリプト202が実行されると、ラベル名「menu_list」が付与されているフレーム「45」へジャンプし、行き先メニュー201(フレーム「menu_list」)が部品配置エリア130に表示される。なお、スクリプト202において、「戻る」ボタン131が押下された場合は、関数「pressReturnButton」が呼ばれ、関数内に記されている「goto(”anime2”)」が実行される。   In the figure, a screen switching script is embedded in frame “15”. The script 202 is an example of a script that jumps to “menu_list” that is a frame of the frame number “45” when the button is pressed. When the “display switch” button 133 is pressed in the script 202, a button press event occurs, the function “pressChangeViewButton” is called, and “goto (“ menu_list ”)” described in the function is executed. Is stated. Therefore, when the script 202 is executed, the program jumps to the frame “45” to which the label name “menu_list” is assigned, and the destination menu 201 (frame “menu_list”) is displayed in the component placement area 130. When the “return” button 131 is pressed in the script 202, the function “pressReturnButton” is called, and “goto (“ anim2 ”)” described in the function is executed.

図3は、本実施形態に係るソフトウェア作成支援装置の機能ブロックの一例を示す。   FIG. 3 shows an example of functional blocks of the software creation support apparatus according to the present embodiment.

ソフトウェア作成支援装置300は、主にデザイナーが画面の設計を行うことに使用する画面設計プログラム340と、主に開発者がプログラムの開発時に使用する画面遷移生成プログラム350とを有する。なお、画面設計プログラム340と画面遷移生成プログラム350は、一つの装置に備えられてもよいし、別々の装置に備えられてもよい。また、ソフトウェア作成支援装置300は、CPU(Central Processing Unit)、記憶資源、入力装置及び表示装置を備えている。装置300が有するプログラム340及び350は、記憶資源(例えばメモリ)に記憶され、CPUにて実行される。プログラム340が実行されることで、遷移表生成部302及び画面雛形生成部304という機能が発揮される。プログラム350が実行されることで、複雑度判定部317、コード雛形生成部318、コード結合部319及びモジュール生成部323という機能が発揮される。記憶部316は、記憶資源により実現される。   The software creation support apparatus 300 includes a screen design program 340 that is mainly used by a designer to design a screen, and a screen transition generation program 350 that is mainly used by a developer when developing the program. Note that the screen design program 340 and the screen transition generation program 350 may be provided in one device or in separate devices. The software creation support apparatus 300 includes a CPU (Central Processing Unit), a storage resource, an input device, and a display device. Programs 340 and 350 included in the apparatus 300 are stored in a storage resource (for example, a memory) and executed by the CPU. By executing the program 340, the functions of the transition table generation unit 302 and the screen template generation unit 304 are exhibited. By executing the program 350, the functions of the complexity determination unit 317, the code template generation unit 318, the code combination unit 319, and the module generation unit 323 are exhibited. The storage unit 316 is realized by storage resources.

ソフトウェア作成支援装置300は、必ずしも表示装置及び入力装置を備えていなくても良い。例えば、装置300は、サーバクライアントシステムのサーバであって、表示装置及び入力装置は、そのサーバクライアントシステムのクライアントにあっても良い。   The software creation support apparatus 300 does not necessarily include a display device and an input device. For example, the device 300 may be a server of a server client system, and the display device and the input device may be in a client of the server client system.

ターゲット機器330は、ソフトウェア作成支援装置300で開発されたソフトウェアを実行する電子機器である。例えば、ターゲット機器330は、画面表示プログラム331を実行する機器であり、OS334、ネイティブモジュール333、及び画面表示プログラム331を有している。また、ターゲット機器330は、CPU、記憶資源(例えばメモリ)、入力装置及び表示装置を備えており、OS334及び画面表示プログラム331等の各種プログラムは、記憶資源に記憶され、CPUにて実行される。これにより、画面表示プログラム331によって表示装置に画面が表示される。表示される画面は、タイムライン型画面設計ツールを利用して設計された画面である。ターゲット機器330は、例えば、カーナビゲーション装置(カーナビ)である。カーナビの機種として、複数種類の機種がある。本実施形態に係るソフトウェア作成支援装置300によれば、カーナビの機種に適したソフトウェア(例えば、そのカーナビの機種に応じたGUI表示を行うソフトウェア)を開発することができる。なお、ターゲット機器330は、カーナビに代えて又は加えて、他種の電子機器(例えばモバイル型の情報処理端末)であっても良い。   The target device 330 is an electronic device that executes software developed by the software creation support apparatus 300. For example, the target device 330 is a device that executes the screen display program 331, and includes an OS 334, a native module 333, and a screen display program 331. The target device 330 includes a CPU, a storage resource (for example, a memory), an input device, and a display device. Various programs such as the OS 334 and the screen display program 331 are stored in the storage resource and executed by the CPU. . Thereby, the screen is displayed on the display device by the screen display program 331. The displayed screen is a screen designed using a timeline type screen design tool. The target device 330 is, for example, a car navigation device (car navigation system). There are several types of car navigation systems. According to the software creation support apparatus 300 according to the present embodiment, it is possible to develop software suitable for the model of the car navigation system (for example, software that performs GUI display according to the model of the car navigation system). The target device 330 may be another type of electronic device (for example, a mobile information processing terminal) instead of or in addition to the car navigation system.

図3において、画面データ301、イベント制約定義表500、ドキュメント314、コード雛形表700、コード付画面データ320及びモジュール324のうちの少なくとも1つは、ソフトウェア作成支援装置300が有する記憶資源に記憶されて良い。また、画面データ301、イベント制約定義表500、ドキュメント314、コード雛形表700、コード付画面データ320及びモジュール324のうちの少なくとも1つは、ソフトウェア作成支援装置300に入力装置を通じて入力された情報であって良い。   In FIG. 3, at least one of the screen data 301, the event constraint definition table 500, the document 314, the code template table 700, the code-added screen data 320, and the module 324 is stored in a storage resource of the software creation support apparatus 300. Good. In addition, at least one of the screen data 301, the event constraint definition table 500, the document 314, the code template table 700, the screen data with code 320, and the module 324 is information input to the software creation support apparatus 300 through the input device. It's okay.

次に、各機能及び処理の概要について説明する。   Next, an overview of each function and process will be described.

まず、ユーザ(例えばデザイナー)は、画面設計プログラム340が提供する画面デザイン設計ツール(図1参照)を用いて画面データ301を作成する。画面データ301は、ターゲット機器330で表示される画面(GUI)に関するデータである。画面データ301は、例えば、下記の情報、
(*)複数のフレームに関する情報(例えば、フレームが有する表示部品に関する情報と、フレームにおける表示部品の動作を制御するための定義情報(例えばスクリプト)とをフレーム毎に含んだ情報)、
(*)フレーム区間情報(例えば、フレーム区間毎のラベル名と、フレーム区間毎に、フレーム区間の先頭のフレームの番号と終端のフレームの番号とを含んだ情報)、
(*)タイムラインを表す情報(例えば、フレームの並びを表す情報)、
を含んでいる。フレームに配置された表示部品に関するスクリプトは、例えば、前述したように、その表示部品が実行されたときに表示がそのフレームからどのフレームにジャンプするかを表す情報を含んで良い。
First, a user (for example, a designer) creates screen data 301 using a screen design design tool (see FIG. 1) provided by the screen design program 340. The screen data 301 is data related to a screen (GUI) displayed on the target device 330. The screen data 301 includes, for example, the following information:
(*) Information about a plurality of frames (for example, information including information about display components included in the frame and definition information (for example, script) for controlling the operation of the display components in the frame)
(*) Frame section information (for example, information including the label name for each frame section and the number of the first frame and the number of the end frame for each frame section),
(*) Information representing a timeline (for example, information representing a sequence of frames),
Is included. For example, as described above, the script related to the display component arranged in the frame may include information indicating to which frame the display jumps from the frame when the display component is executed.

次に、遷移表生成部302は、画面データ301を解析して、フレーム区間毎のラベル名を特定する。また、遷移表生成部302は、フレーム区間毎に、発生する可能性のあるイベントを特定し、特定したイベントを識別可能なイベント名をそのイベントに対して付与する。例えば、遷移表生成部302は、どのフレームにどんな表示部品が配置されているかを特定し、特定された表示部品の種類(例えばID)を基にイベントを特定し、そのイベントに、特定したイベントを識別可能なイベント名を付与する。そして、遷移表生成部302は、特定したラベル名と付与したイベント名との表(マトリックス)である画面遷移表を生成する。また、遷移表生成部302は、生成した画面遷移表における、フレーム名とイベント名の組み合わせから一義的に定まるセルに、イベント名に対応するイベントの動作を制約する制約条件を記載する。遷移表生成部302は、生成した画面遷移表を記憶部316に記憶する。なお、制約条件は、ソフトウェアが実行されるターゲット機器毎に異なる。ターゲット機器とイベントの組合せ毎の制約条件を表すイベント制約定義表500がある。ユーザ(例えばオペレーター)からターゲット機器のIDが入力され、入力されたターゲット機器IDに対応する制約条件が特定されて良い。   Next, the transition table generation unit 302 analyzes the screen data 301 and specifies a label name for each frame section. In addition, the transition table generation unit 302 identifies an event that may occur for each frame section, and assigns an event name that can identify the identified event to the event. For example, the transition table generation unit 302 identifies what display component is arranged in which frame, identifies an event based on the type (for example, ID) of the identified display component, and identifies the event as the identified event. An event name that can be identified is assigned. Then, the transition table generating unit 302 generates a screen transition table that is a table (matrix) of the identified label name and the assigned event name. In addition, the transition table generation unit 302 describes a constraint condition that restricts the operation of the event corresponding to the event name in a cell that is uniquely determined from the combination of the frame name and the event name in the generated screen transition table. The transition table generation unit 302 stores the generated screen transition table in the storage unit 316. Note that the constraint conditions differ for each target device on which the software is executed. There is an event constraint definition table 500 showing constraint conditions for each combination of target device and event. A target device ID may be input from a user (for example, an operator), and a constraint condition corresponding to the input target device ID may be specified.

ここで、ターゲット機器330で実行される画面表示プログラム331がスクリプトで記述されていると、画面遷移が複雑な場合、実行速度が遅くなってしまう。そこで、複雑度判定部317は、画面遷移表を参照し、下記のうちの少なくとも1つ、
(*)画面遷移表を構成するセルの数、
(*)フレームからそのフレームと非連続のフレームへのジャンプが発生するイベントの数、
(*)各セルに記載されている制約条件の数、
に基づき複雑度(例えば画面データ301の複雑度)を計算し、その複雑度に従って適切なコードを判定する。具体的には、複雑度判定部317は、記憶部316に記憶されている画面遷移表を解析し、画面遷移の複雑度が所定の閾値以下か否かを判定する。
Here, if the screen display program 331 to be executed by the target device 330 is described by a script, the execution speed becomes slow when the screen transition is complicated. Therefore, the complexity determination unit 317 refers to the screen transition table, and at least one of the following:
(*) Number of cells constituting the screen transition table,
(*) Number of events that cause a jump from a frame to that frame and a non-contiguous frame,
(*) Number of constraints described in each cell,
The complexity (for example, the complexity of the screen data 301) is calculated based on the above, and an appropriate code is determined according to the complexity. Specifically, the complexity determination unit 317 analyzes the screen transition table stored in the storage unit 316 and determines whether the complexity of the screen transition is equal to or less than a predetermined threshold.

ここで、複雑度判定部317の判定結果が肯定的であれば(複雑度が閾値以下ならば)、コード雛形生成部318は、画面遷移に関するコードの雛形であるコード雛形をスクリプトで生成する。次に、コード結合部319は、画面データ301とコード雛形表700から、コード付画面データ320を生成する。ここで、コード付画面データ320は、画面データ301を、コード雛形を呼び出せるように書き換えたものである(コード雛形表700及びコード雛形については、後述する)。次に、ユーザ(例えば開発者)は、コード付画面データ320に、必要なコードを追記する。最後に、画面表示プログラム生成部322は、コード付画面データ320から、画面表示プログラム331を生成する。生成された画面表示プログラム331は、ターゲット機器330で実行可能である。   Here, if the determination result of the complexity determination unit 317 is affirmative (if the complexity is equal to or less than the threshold value), the code template generation unit 318 generates a code template that is a code template related to screen transition by a script. Next, the code combining unit 319 generates code-added screen data 320 from the screen data 301 and the code template table 700. Here, the code-added screen data 320 is obtained by rewriting the screen data 301 so that a code template can be called (the code template table 700 and the code template will be described later). Next, the user (for example, a developer) adds a necessary code to the code-added screen data 320. Finally, the screen display program generation unit 322 generates the screen display program 331 from the screen data with code 320. The generated screen display program 331 can be executed by the target device 330.

一方、複雑度判定部317の判定結果が否定的であれば(複雑度が閾値を超えていれば)、モジュール生成部323は、GUIにおいて画面(フレーム)の遷移を行うモジュール(ネイティブコード)324を生成する。次に、コード結合部319は、モジュール324を呼び出せるようなコード付画面データを生成する。次に、画面表示プログラム生成部322は、画面表示プログラム331を生成する。この処理の結果、ネイティブコードで実行可能なモジュール324及びスクリプトで実行可能な画面表示プログラム331が生成される。次に、モジュール324及び画面表示プログラム331をターゲット機器330に組み込む。これにより、ターゲット機器330では、モジュール324と画面表示プログラム331が連携して動作する。モジュール324と画面表示プログラム331の少なくとも一方が作成されて良い。また、モジュール324と画面表示プログラム331は、それぞれ、作成されるソフトウェアそれ自体であっても良いし、作成されるソフトウェアの一要素であっても良い。   On the other hand, if the determination result of the complexity determination unit 317 is negative (if the complexity exceeds the threshold value), the module generation unit 323 performs a module (native code) 324 that performs screen (frame) transition in the GUI. Is generated. Next, the code combining unit 319 generates code-added screen data that can call the module 324. Next, the screen display program generation unit 322 generates a screen display program 331. As a result of this processing, a module 324 that can be executed by a native code and a screen display program 331 that can be executed by a script are generated. Next, the module 324 and the screen display program 331 are incorporated into the target device 330. Thereby, in the target device 330, the module 324 and the screen display program 331 operate in cooperation. At least one of the module 324 and the screen display program 331 may be created. Each of the module 324 and the screen display program 331 may be created software itself or may be an element of created software.

なお、ドキュメント生成部313において、記憶部316に記憶されている画面遷移表のデータから、ドキュメント(例えば、画面遷移表をユーザが読み易い形式に編集することにより得られた画面遷移図)314を生成してもよい。また、そのドキュメント314の生成において、アニメの処理負荷が高い部分の色が変更されたり、画面が遷移する階層が所定の値よりも深い部分の色が変更されたりしてもよい。   In the document generation unit 313, a document (for example, a screen transition diagram obtained by editing the screen transition table into a format that is easy for the user to read) 314 from the data of the screen transition table stored in the storage unit 316 is displayed. It may be generated. Further, in the generation of the document 314, the color of the portion where the processing load of the animation is high may be changed, or the color of the portion where the hierarchy where the screen transitions is deeper than a predetermined value may be changed.

記憶部316内の画面遷移表の各セルは、アニメフラグを有する。画面雛形生成部304は、記憶部316内の画面遷移表を参照し、アニメフラグがtrueに対応するフレーム区間として、アニメフラグがfalseに対応するフレーム区間より長いフレーム区間設定する。そして、画面雛形生成部304は、セルが制約条件を保持しているとき、そのセルに対応するイベント名のイベントには制約条件が存在することを、タイムライン型画面設計ツールの画面(図1参照)にて明示的に表示することができる。この処理については、後に図10を用いて説明する。   Each cell of the screen transition table in the storage unit 316 has an animation flag. The screen template generation unit 304 refers to the screen transition table in the storage unit 316, and sets a frame section in which the animation flag is longer than the frame section corresponding to false as the frame section corresponding to true. Then, when the cell holds the constraint condition, the screen template generation unit 304 indicates that the constraint condition exists in the event having the event name corresponding to the cell (see FIG. 1). Can be explicitly displayed. This process will be described later with reference to FIG.

図4は、画面遷移表の一例を示す。なお、この表において、特定の行と列を選択したときに一意に決定される一マスを「セル」と言う。各「セル」は情報を保持することができる。   FIG. 4 shows an example of the screen transition table. In this table, one cell uniquely determined when a specific row and column is selected is referred to as a “cell”. Each “cell” can hold information.

ここで、セルは、そのセルに対応するフレームがアニメフレーム(アニメ動作を含むフレーム)であるか否かを表すアニメフラグを保持する。そして、アニメフラグがtrueのセルは、アニメ動作に関する制約条件を保持し、アニメフラグがfalseのセルは、画面の遷移先に関する制約条件を保持する。   Here, the cell holds an animation flag indicating whether or not the frame corresponding to the cell is an animation frame (a frame including an animation operation). A cell whose animation flag is “true” holds a constraint condition related to the animation operation, and a cell whose animation flag is “false” holds a constraint condition related to the screen transition destination.

アニメフラグ「true」を有するセルに、アニメ動作に関する制約条件として、例えば、ユーザ(オペレーター又は開発者)の過去の操作に基づき、そのセルに対応するフレームのアニメ動作を省略するか否かを設定することができる。   Set whether or not to omit the animation operation of the frame corresponding to the cell based on the past operation of the user (operator or developer), for example, as a constraint condition for the animation operation in the cell having the animation flag “true” can do.

また、アニメフラグ「false」を有するセルに、画面(フレーム)の遷移先に関する制約条件として、ソフトウェアが実行されるターゲット機器の状態に基づき遷移先のアニメ動作を省略するか否かを設定することができる。   In addition, in a cell having the animation flag “false”, as a restriction condition regarding the transition destination of the screen (frame), whether to omit the animation operation at the transition destination based on the state of the target device on which the software is executed is set. Can do.

以下、上述の動作について、図4を用いて詳細に説明する。   Hereinafter, the above-described operation will be described in detail with reference to FIG.

イベント名403は、画面遷移のきっかけとなるイベント名のリストである。イベントの種類としては、例えば、「finish(フレーム再生完了)」、「pressMapButton(地図ボタン押下)」等がある。   An event name 403 is a list of event names that trigger screen transition. Examples of the event type include “finish (frame reproduction completed)”, “pressMapButton (map button pressed)”, and the like.

ラベル名404は、各フレームに付与されたラベル名のリストである。   The label name 404 is a list of label names assigned to each frame.

画面遷移表400において、ラベル名とイベント名から一意にセルが決定される。セルには、このセルに対応するラベル名が付与されたフレームにおいて、このセルに対応するイベント名に記載のイベントが発生したときに、所定のフレームにジャンプするという処理が記載されている。さらに、そのセルには、ジャンプ処理を実行するための各種条件及びジャンプ先のラベル名などが記載されている。   In the screen transition table 400, a cell is uniquely determined from a label name and an event name. The cell describes a process of jumping to a predetermined frame when an event described in the event name corresponding to the cell occurs in a frame to which the label name corresponding to the cell is assigned. Further, in the cell, various conditions for executing the jump process, a jump destination label name, and the like are described.

セルとしては、アニメフラグ「true」を有するセルであるアニメセルと、アニメフラグ「false」を有するセルである通常セルとがある。   As the cell, there are an animation cell that is a cell having an animation flag “true” and a normal cell that is a cell having an animation flag “false”.

アニメセルは、アニメフレームに対応するセルであり、イベント名403に記載のイベントが発生したときの処理を表す情報を有する。アニメセルは、例えば、アニメフラグ411の他に、ジャンプ先422、及びアニメ省略423という情報(パラメータ)を有する。アニメフラグ421には、アニメフレームがアニメセルか否かが設定される。同図において、セル401はアニメセルであるので、アニメフラグ411は「true」である。ジャンプ先422は、ジャンプ先のラベル名である。セル401では、ジャンプ先422として「menu_list」が設定されているため、セル401に対応するアニメフレームの実行後、表示されるフレームとして、実行が終了したアニメフレームからラベル名「menu_list」のフレームにジャンプする。アニメ省略423は、アニメを実行中にユーザが特定のキー操作を行ったとき(例えばボタン連打)、以後アニメを省略するか否かを表す。セル401では、アニメ省略423が「true」であるため、アニメ省略機能が有効となっている。   The animation cell is a cell corresponding to the animation frame, and has information indicating processing when the event described in the event name 403 occurs. For example, the animation cell has information (parameters) such as a jump destination 422 and animation omission 423 in addition to the animation flag 411. In the animation flag 421, whether or not the animation frame is an animation cell is set. In the figure, since the cell 401 is an animation cell, the animation flag 411 is “true”. The jump destination 422 is a label name of the jump destination. Since “menu_list” is set as the jump destination 422 in the cell 401, after the execution of the animation frame corresponding to the cell 401, the displayed animation frame is changed from the completed animation frame to the frame with the label name “menu_list”. Jump. The animation abbreviation 423 represents whether or not the animation is to be omitted thereafter when the user performs a specific key operation (for example, button hitting) while executing the animation. In the cell 401, since the animation omission 423 is “true”, the animation omission function is enabled.

通常セルは、アニメを含まないフレームに対応するセルであり、イベント名403に記載のイベントが発生したときの処理を表す情報を有する。通常セルは、アニメフラグ411の他に、例えば、遷移後アニメ制限412、ジャンプ先(アニメ許可)413、及びジャンプ先(アニメ禁止)414という情報(パラメータ)を有する。同図において、セル402はアニメを含まないフレームであるので、アニメフラグ411は「false」である。遷移後アニメ制限412は、アニメの実行を許可する条件及び/又はアニメの実行を禁止する条件を表す情報である。セル402には、遷移後アニメ制限412として「CPU負荷50%以上アニメ禁止」が設定されているため、ターゲット機器330のCPU負荷が50%以上のときはアニメが禁止される。ジャンプ先(アニメ許可)413は、遷移後アニメ制限412においてアニメが許可されたときのジャンプ先のラベル名である。セル402には、ジャンプ先(アニメ許可)413として「Anime1」が設定されている。したがって、セル402において、ラベル名「init」のフレーム実行時、「pressMapButton」イベントが発生すると、表示が、ラベル名「Anime1」のフレームにジャンプする。なお、ジャンプ先(アニメ禁止)414は、遷移後アニメ制限412においてアニメが禁止されたときのジャンプ先のラベル名である。セル402には、ジャンプ先(アニメ禁止)414に「menu_map」が設定されている。したがって、ラベル名「init」のフレーム実行時、「pressMapButton」イベントが発生すると、表示が、ラベル名「menu_map」のフレームにジャンプする。   A normal cell is a cell corresponding to a frame that does not include animation, and has information indicating processing when an event described in the event name 403 occurs. In addition to the animation flag 411, the normal cell includes information (parameters) such as an after-transition animation limit 412, a jump destination (animation permission) 413, and a jump destination (animation prohibition) 414, for example. In the figure, since the cell 402 is a frame that does not include animation, the animation flag 411 is “false”. The post-transition animation restriction 412 is information representing a condition for permitting the execution of the animation and / or a condition for prohibiting the execution of the animation. In the cell 402, “prohibition of animation with a CPU load of 50% or more” is set as the post-transition animation limit 412. Therefore, animation is prohibited when the CPU load of the target device 330 is 50% or more. The jump destination (animation permission) 413 is a label name of the jump destination when the animation is permitted in the post-transition animation restriction 412. In the cell 402, “Aim1” is set as the jump destination (animation permission) 413. Therefore, in the cell 402, when a “pressMapButton” event occurs during execution of the frame with the label name “init”, the display jumps to the frame with the label name “Aim1”. The jump destination (animation prohibited) 414 is a label name of the jump destination when the animation is prohibited in the post-transition animation restriction 412. In the cell 402, “menu_map” is set as the jump destination (animation prohibited) 414. Therefore, when the “pressMapButton” event occurs during the execution of the frame with the label name “init”, the display jumps to the frame with the label name “menu_map”.

図5は、イベント制約定義表の一例を示す。   FIG. 5 shows an example of the event constraint definition table.

イベント制約定義表500には、ターゲット機器毎に、画面遷移のイベントが発生した時の制約条件が記載されている。複数のターゲット機器は、異なるスペックを有している。例えば、性能の高いCPUを搭載しているターゲット機器もあれば、性能の低いCPUを搭載しているターゲット機器もある。   The event constraint definition table 500 describes the constraint conditions when a screen transition event occurs for each target device. The plurality of target devices have different specifications. For example, some target devices have high performance CPUs, and some target devices have low performance CPUs.

イベント制約定義表500には、ターゲット機器毎に、ターゲット機器ID502を有する。ターゲット機器ID502は、各ターゲット機器を一意に識別可能な識別子である。   The event constraint definition table 500 has a target device ID 502 for each target device. The target device ID 502 is an identifier that can uniquely identify each target device.

イベント制約定義表500の各列は、ターゲット機器IDに対応しており、各行は、イベント名に対応している。ターゲット機器IDとイベント名とから一義的に定まるセルに、制約条件510が記述されている。   Each column of the event constraint definition table 500 corresponds to a target device ID, and each row corresponds to an event name. A constraint condition 510 is described in a cell that is uniquely determined from the target device ID and the event name.

イベント制約定義表500には、ターゲット機器ID502及びイベント名503の組み合わせ毎に、異なる制約条件510を設定できる。また、制約条件510には、静的制約条件511及び動的制約条件512を設定できる、   In the event constraint definition table 500, different constraint conditions 510 can be set for each combination of the target device ID 502 and the event name 503. In the constraint condition 510, a static constraint condition 511 and a dynamic constraint condition 512 can be set.

静的制約条件510は、静的制約条件を表す情報である。「静的制約条件」は、ターゲット機器の使用(例えば、ターゲット機器のソフトウェア及び/又はハードウェアの仕様)が定まると一意に定まり、ターゲット機器の動作状況(例えば、イベント実行の際の動作状況)に依存しない、種類の制約条件である。条件510は、画面遷移表を生成する際、アニメセルが当該静的制約条件に違反していないかを判定するために使用される。静的制約条件510は、例えば、以下の情報、
(*)同時にアニメ可能な表示部品の最大数を表すアニメ要素数513、
(*)アニメ可能な表示部品のサイズの最大値を表すアニメ要素サイズ514、
(*)アニメを連続再生可能な時間の最大値を表すアニメ期間515、
を含む。
The static constraint condition 510 is information representing the static constraint condition. The “static constraint condition” is uniquely determined when the use of the target device (for example, the software and / or hardware specifications of the target device) is determined, and the operation state of the target device (for example, the operation state at the time of event execution). It is a type of constraint that does not depend on The condition 510 is used to determine whether the animation cell violates the static constraint condition when generating the screen transition table. The static constraint 510 is, for example, the following information:
(*) Number of animation elements 513 representing the maximum number of display parts that can be animated simultaneously,
(*) Animation element size 514 representing the maximum size of display parts that can be animated,
(*) An animation period 515 that represents the maximum time during which animation can be continuously played,
including.

動的制約条件512は、動的制約条件を表す情報である。「動的制約条件」は、ターゲット機器の動作状況(例えば、イベント実行の際の動作状況)に応じて適用される制約条件である。条件512は、画面遷移表を生成する際、通常セルに当該動的制約条件を記載するために使用される。そして、動的制約条件512は、ターゲット機器において、画面表示プログラム331を実行する際の制約条件として使用される。動的制約条件512は、例えば、以下の情報、
(*)アニメを禁止するCPU負荷率の閾値であるアニメ禁止CPU負荷率516、
(*)アニメを禁止するメモリ使用率の閾値であるアニメ禁止メモリ使用率517、
(*)車両走行時の操作を許可するか否かを表す車両走行時操作518、
を含む。どの動的制約条件をどの通常セルに記載すべきかの判断は、そのセルと対応しているフレームのデータの内容、及びそのフレームに存在する表示部品の属性等に依存する。例えば、走行中の操作が禁止されているボタンがフレームに存在する場合、車両走行時操作518が「No」の動的制約条件が通常セルに記載される。なお、CPU負荷率の閾値は、実際にテスト用コンテンツをターゲット機器上で実行させた上で決定されてよい。また、各種制約条件は、道路交通法など定義文章からカーナビに関する各種規制を解析し、自動的に生成されてもよい。
The dynamic constraint condition 512 is information representing the dynamic constraint condition. The “dynamic constraint condition” is a constraint condition applied according to the operation status of the target device (for example, the operation status at the time of event execution). The condition 512 is used to describe the dynamic constraint condition in a normal cell when generating the screen transition table. The dynamic constraint condition 512 is used as a constraint condition when the screen display program 331 is executed in the target device. The dynamic constraint condition 512 includes, for example, the following information:
(*) Animation prohibition CPU load factor 516 which is a threshold of CPU load factor prohibiting animation,
(*) Animation prohibition memory usage rate 517, which is a threshold of memory usage rate that prohibits animation.
(*) A vehicle travel operation 518 indicating whether or not to permit an operation during vehicle travel;
including. The determination of which dynamic constraint condition should be described in which normal cell depends on the data content of the frame corresponding to the cell, the attribute of the display component existing in the frame, and the like. For example, when there is a button on the frame that is prohibited from being operated during traveling, a dynamic constraint condition in which the vehicle traveling operation 518 is “No” is described in the normal cell. Note that the threshold value of the CPU load factor may be determined after actually executing the test content on the target device. In addition, various constraint conditions may be automatically generated by analyzing various regulations related to car navigation from definition sentences such as the road traffic law.

図6は、画面遷移処理に関するコード雛形の一例を示す。   FIG. 6 shows an example of a code template for screen transition processing.

画面遷移に関するコード雛形600は、所定の言語、例えばjavascript言語で記述されている。コード記述エリア601には、ユーザが独自に実行させたい処理を記述することができる。   The code template 600 for screen transition is described in a predetermined language, for example, the javascript language. The code description area 601 can describe a process that the user wants to execute independently.

図7は、画面遷移に関するイベントのコード雛形表700及びコード雛形の一例を示す。   FIG. 7 shows an example of a code template table 700 of events related to screen transitions and a code template.

コード雛形表700には、ターゲット機器毎に、画面遷移のイベントが発生した時に実行されるコード雛形が記載されている。コード雛形は、コード結合部319において、画面データ301と結合される。   The code template table 700 describes a code template that is executed when a screen transition event occurs for each target device. The code template is combined with the screen data 301 in the code combining unit 319.

コード雛形表700は、ターゲット機器毎に、ターゲット機器ID703を有する。各列は、ターゲット機器IDに対応しており、各行は、イベント名に対応している。ターゲット機器IDとイベント名とから一義的に定まるセルに、コード雛形が記述される。   The code template table 700 has a target device ID 703 for each target device. Each column corresponds to a target device ID, and each row corresponds to an event name. A code template is described in a cell that is uniquely determined from the target device ID and the event name.

或るコード雛形710には、「pressListButton」のイベントが発生した時、画面遷移のメソッド「onEvent」を呼び出す処理が記載されている。コード雛形710において、「//」から始まる行はコメント文であり、ユーザが独自に処理を記述する際に参考となる情報が記載されている。なお、複雑度判定部317における判定の結果、ネイティブモジュール333と判定された場合、コード雛形710には画面遷移のメソッド「onEvent」の代わりに、ネイティブモジュールを呼び出すコード「onNativeEvent」711が記載される。   A certain code template 710 describes a process of calling a screen transition method “onEvent” when a “pressListButton” event occurs. In the code template 710, a line starting with “//” is a comment sentence, which describes information to be referred to when the user independently describes the process. As a result of the determination in the complexity determination unit 317, when it is determined that the module is a native module 333, the code template 710 describes a code “onNativeEvent” 711 for calling the native module instead of the screen transition method “onEvent”. .

別のコード雛形720は、フレーム遷移完了イベントである「finish」が発生したときの処理の雛形である。コード雛形720には、データ読み込みメソッド「dataLoad」と画面遷移のメソッド「onEvent」を呼び出す処理が記載されている。   Another code template 720 is a processing template when “finish” which is a frame transition completion event occurs. The code template 720 describes a process of calling a data reading method “dataLoad” and a screen transition method “onEvent”.

図8は、画面データから画面遷移表を生成する処理のフローチャートの一例である。   FIG. 8 is an example of a flowchart of processing for generating a screen transition table from screen data.

まず、遷移表生成部302は、空の画面遷移表を新規に作成する(S801)。   First, the transition table generating unit 302 newly creates an empty screen transition table (S801).

次に、遷移表生成部302は、画面データのフレームをフレーム番号順に検索し、ラベル名を抽出し、画面遷移表の列のタイトルとして、そのラベル名を設定する(S802)。   Next, the transition table generation unit 302 searches the frames of the screen data in the order of the frame numbers, extracts the label names, and sets the label names as the titles of the columns of the screen transition table (S802).

次に、遷移表生成部302は、ラベル名に「anime」という文字列を含むか否かを判定し、判定結果が「YES」の場合、当該ラベル名のフレームをアニメフレームと判定し、当該ラベル名の列に属するセルのアニメフラグを「true」に設定する(S803)。なお、本実施形態では、アニメフレームを識別するための方法として、ラベル名に「anime」という文字列が含まれているか否かを判定する方法が採用されている。しかし、アニメフレームの識別は、他の方法で行われても良い。例えば、ラベル名に「anime」以外の文字列が含まれているか否かを判定することが採用されても良い。また、フレーム内のスクリプトにコメントとしてアニメフレームを示す文字列が記載されているか否かを判定する方法が採用されてもよい。   Next, the transition table generation unit 302 determines whether or not the label name includes the character string “anime”. If the determination result is “YES”, the frame of the label name is determined to be an animation frame, The animation flag of the cell belonging to the label name column is set to “true” (S803). In this embodiment, as a method for identifying an animation frame, a method of determining whether or not the character string “anime” is included in the label name is employed. However, the identification of the animation frame may be performed by other methods. For example, it may be adopted to determine whether or not a character string other than “anime” is included in the label name. Further, a method of determining whether or not a character string indicating an animation frame is described as a comment in the script in the frame may be adopted.

次に、遷移表生成部302は、ラベル名に「menu」という文字列を含むか否かを判定し、判定結果が「YES」の場合、当該ラベル名のフレームを通常フレーム(アニメが動作しないフレーム)と判断し、当該ラベル名の列に属するセルのアニメフラグを「false」に設定する(S804)。なお、本実施形態では、通常フレームの識別は、他の方法で行われても良い。例えば、ラベル名に「menu」以外の文字列が含まれているか否かを判定することが採用されても良い。また、フレーム内のスクリプトにコメントとして通常フレームを示す文字列が記載されているか否かを判定する方法が採用されてもよい。   Next, the transition table generation unit 302 determines whether or not the label name includes the character string “menu”. If the determination result is “YES”, the frame with the label name is set as a normal frame (animation does not work). The animation flag of the cell belonging to the label name column is set to “false” (S804). In the present embodiment, the identification of the normal frame may be performed by other methods. For example, it may be employed to determine whether or not a character string other than “menu” is included in the label name. A method of determining whether or not a character string indicating a normal frame is described as a comment in the script in the frame may be employed.

次に、遷移表生成部302は、フレーム番号を決定するフレームカウンタを0にセットする(S805)。   Next, the transition table generating unit 302 sets a frame counter for determining a frame number to 0 (S805).

次に、遷移表生成部302は、フレームカウンタが表す値と一致するフレーム番号が付与されているフレームにスクリプト記述があるか否かを判定する(S806)。ここで、フレームにスクリプト記述がある場合は(S806:Yes)、ステップS807へ進む。一方、フレームにスクリプト記述がない場合は(S806:No)、ステップS810へ進む。以下、ステップS807からの処理を説明する。   Next, the transition table generation unit 302 determines whether there is a script description in a frame to which a frame number that matches the value represented by the frame counter is assigned (S806). If there is a script description in the frame (S806: Yes), the process proceeds to step S807. On the other hand, if there is no script description in the frame (S806: No), the process proceeds to step S810. Hereinafter, the processing from step S807 will be described.

次に、遷移表生成部302は、スクリプト内にジャンプ命令(goto文)が存在するか否かを判定する(S807)。ここで、ジャンプ命令が存在する場合は(S807:Yes)、ステップS808へ進む。一方、ジャンプ命令が存在しない場合は(S807:No)、ステップS810へ進む。以下、ステップS808からの処理を説明する。   Next, the transition table generation unit 302 determines whether or not a jump instruction (goto statement) exists in the script (S807). If there is a jump instruction (S807: Yes), the process proceeds to step S808. On the other hand, if there is no jump instruction (S807: No), the process proceeds to step S810. Hereinafter, processing from step S808 will be described.

次に、遷移表生成部302は、ジャンプ命令が記載されているメソッド名と、ジャンプ命令に記載されているジャンプ先のラベル名とを抽出する(S808)。   Next, the transition table generating unit 302 extracts the method name in which the jump instruction is described and the jump destination label name described in the jump instruction (S808).

次に、遷移表生成部302は、画面遷移表の行のタイトルにイベント名として、ステップS808で抽出したメソッド名を設定する。そして、遷移表生成部302は、このメソッド名の行とステップS806で判定されたフレームの列とが交差するセルにおいて、セルが保持するジャンプ先413、414及び422に、ステップS808で抽出したジャンプ先のラベル名を記載する(S809)。   Next, the transition table generation unit 302 sets the method name extracted in step S808 as the event name in the title of the screen transition table row. The transition table generation unit 302 then jumps to the jump destinations 413, 414, and 422 held by the cell in the cell where the row of the method name and the column of the frame determined in step S806 intersect in step S808. The previous label name is described (S809).

次に、遷移表生成部302は、フレームカウンタに1を加算する(S810)。   Next, the transition table generating unit 302 adds 1 to the frame counter (S810).

次に、遷移表生成部302は、フレームカウンタの値と一致するフレーム番号が最終のフレームの番号か否かを判定する(S811)。ここで、最終フレーム番号の場合は(S811:Yes)、ステップ812へ進む。一方、最終フレーム番号でない場合は(S811:No)、ステップ806へ戻る。以下、ステップS812からの処理を説明する。   Next, the transition table generating unit 302 determines whether or not the frame number that matches the value of the frame counter is the last frame number (S811). Here, in the case of the last frame number (S811: Yes), the process proceeds to step 812. On the other hand, if it is not the last frame number (S811: No), the process returns to step 806. Hereinafter, the processing from step S812 will be described.

次に、遷移表生成部302は、制約条件に基づき画面遷移表を修正する(S812)。   Next, the transition table generation unit 302 corrects the screen transition table based on the constraint condition (S812).

図9は、図8のステップS812のフローチャートの一例である。   FIG. 9 is an example of a flowchart of step S812 in FIG.

まず、遷移表生成部302は、画面遷移表から、「アニメフラグ」が「true」のセル(以下、「アニメセル」と言うことがある)を表の最初から順番に探し、最初にマッチしたセルを抽出する(S901)。ここで抽出したセルを、図9の説明において「セルA」と言う。   First, the transition table generation unit 302 searches the screen transition table for cells whose “anime flag” is “true” (hereinafter sometimes referred to as “anime cell”) in order from the beginning of the table, and matches first. A cell is extracted (S901). The extracted cell is referred to as “cell A” in the description of FIG.

次に、遷移表生成部302は、画面遷移表から、ステップS901で抽出したセルAに対応するフレーム区間をジャンプ先として指定しているセルを表の最初から順番に探し、マッチしたセルを抽出する(S902)。ここで抽出したセルを、図9の説明において「セルB」と言う。セルBが複数存在する場合は、すべてのセルBを抽出し、それら全てのセルBに対して、以降のセルBに関する処理が実行される。   Next, the transition table generation unit 302 searches the screen transition table for cells that specify the frame section corresponding to the cell A extracted in step S901 as a jump destination in order from the beginning of the table, and extracts the matched cells. (S902). The extracted cell is referred to as “cell B” in the description of FIG. When there are a plurality of cells B, all the cells B are extracted, and the subsequent processes related to the cells B are executed for all the cells B.

次に、遷移表生成部302は、ターゲット機器ID及びイベント名を検索キーとして、イベント制約定義表500から、その検索キーに対応する静的制約条件を抽出する。そして、遷移表生成部302は、その静的制約条件を、セルBの「遷移後アニメ制限」に設定する(S903)。すなわち、このS903では、セルBからセルAへ遷移した後のセルAのアニメ制限が設定される。なお、検索キーにおけるイベント名は、セルAに遷移されるために発生するイベントのイベント名である。   Next, the transition table generating unit 302 extracts a static constraint condition corresponding to the search key from the event constraint definition table 500 using the target device ID and the event name as a search key. Then, the transition table generating unit 302 sets the static constraint condition to “animation restriction after transition” of the cell B (S903). That is, in S903, the animation limit for cell A after transition from cell B to cell A is set. Note that the event name in the search key is the event name of the event that occurs because the transition to the cell A.

次に、遷移表生成部302は、セルAに対応するラベル名を基に、当該ラベル名が付与されたフレームをチェックする(S904)。   Next, based on the label name corresponding to the cell A, the transition table generation unit 302 checks the frame to which the label name is assigned (S904).

次に、遷移表生成部302は、ステップS904においてチェックしたフレームが、静的制約条件に記載されている複数の制約条件(例えば、「アニメ要素数」、「アニメ要素サイズ」及び「アニメ再生期間」)のうちの少なくとも1つの制約条件に違反しているか否かを判定する(S905)。ここで、制約条件に違反している場合は(S905:Yes)、ステップS906へ進む。一方、制約条件に違反していない場合は(S905:No)、ステップS910へ進む。以下、ステップS906からの処理を説明する。   Next, the transition table generation unit 302 determines that the frame checked in step S904 includes a plurality of constraint conditions described in the static constraint conditions (for example, “number of animation elements”, “animation element size”, and “animation playback period”). It is determined whether or not at least one constraint condition in “)” is violated (S905). If the constraint condition is violated (S905: Yes), the process proceeds to step S906. On the other hand, if the constraint condition is not violated (S905: No), the process proceeds to step S910. Hereinafter, the processing from step S906 will be described.

次に、遷移表生成部302は、セルAに記載されている、フレーム再生完了後のジャンプ先のフレーム区間のラベル名を、抽出する(S906)。   Next, the transition table generation unit 302 extracts the label name of the jump-destination frame section described in the cell A after completion of frame reproduction (S906).

次に、遷移表生成部302は、セルBに記載されているジャンプ先414のラベル名を、ステップS906で抽出した、フレーム再生完了後のジャンプ先のフレーム区間のラベル名に、置換する(S907)。すなわち、セルBに対応する通常フレームが静的制約条件に違反している場合、その通常フレームがアニメフレームにジャンプしないような設定が行われる。   Next, the transition table generating unit 302 replaces the label name of the jump destination 414 described in the cell B with the label name of the jump destination frame section extracted in step S906 after completion of frame reproduction (S907). ). That is, when the normal frame corresponding to the cell B violates the static constraint condition, a setting is made so that the normal frame does not jump to the animation frame.

次に、遷移表生成部302は、アニメが省略される旨の警告をツールの画面に表示する(S908)。なお、ステップS906の処理において、ジャンプ先のラベル名が見つからない場合は、画面遷移自体がそこで中断してしまうので、その旨の警告がツール(図1を参照して説明したツール)の画面に表示されてもよい。   Next, the transition table generating unit 302 displays a warning that the animation is omitted on the screen of the tool (S908). If the jump destination label name is not found in step S906, the screen transition itself is interrupted there, and a warning to that effect is displayed on the tool screen (the tool described with reference to FIG. 1). May be displayed.

次に、遷移表生成部302は、未処理のアニメセルがあるか否かを判定する(S909)。ここで、未処理のアニメセルがある場合は(S909:Yes)、ステップS901へ戻る。一方、未処理のアニメセルがない場合は(S909:No)、ステップS910へ進む。以下、ステップS910からの処理を説明する。   Next, the transition table generation unit 302 determines whether there is an unprocessed animation cell (S909). If there is an unprocessed anime cell (S909: Yes), the process returns to step S901. On the other hand, if there is no unprocessed anime cell (S909: No), the process proceeds to step S910. Hereinafter, the processing from step S910 will be described.

次に、遷移表生成部302は、画面遷移表から、アニメセルAに対応するアニメフレームへの遷移が記載された、通常フレームに対応するセル(以下、「通常セル」と言うことがある)Bを再び抽出する(S910)。   Next, the transition table generation unit 302 is a cell corresponding to a normal frame in which a transition from the screen transition table to the animation frame corresponding to the animation cell A is described (hereinafter sometimes referred to as “normal cell”). B is extracted again (S910).

次に、遷移表生成部302は、通常セルBの属する行からイベント名を抽出する(S911)。   Next, the transition table generation unit 302 extracts an event name from the row to which the normal cell B belongs (S911).

次に、遷移表生成部302は、ステップS912にて、ステップS911で抽出したイベント名を検索キーとして、イベント制約定義表500から動的制約条件を抽出し、その動的制約条件を、遷移後アニメ制限412としてセルBに追記する(S912)。   Next, in step S912, the transition table generation unit 302 extracts dynamic constraint conditions from the event constraint definition table 500 using the event name extracted in step S911 as a search key, and changes the dynamic constraint conditions after the transition. It adds to cell B as animation restriction 412 (S912).

次に、遷移表生成部302は、未処理セルがあるか否かを判定する(S913)。ここで、未処理セルがある場合は(S913:Yes)、ステップS910へ戻る。一方、未処理セルがない場合は(S913:No)、処理を終了する。   Next, the transition table generating unit 302 determines whether there is an unprocessed cell (S913). If there is an unprocessed cell (S913: Yes), the process returns to step S910. On the other hand, when there is no unprocessed cell (S913: No), a process is complete | finished.

図10は、画面遷移表から画面雛形を生成する処理のフローチャートの一例である。   FIG. 10 is an example of a flowchart of processing for generating a screen template from the screen transition table.

まず、画面雛形生成部304は、フレームカウンタを0に設定する(S1001)。   First, the screen template generation unit 304 sets the frame counter to 0 (S1001).

次に、画面雛形生成部304は、画面遷移表の列のタイトルからラベル名を抽出する(S1002)。図10の説明において、その列を、「対象列」と言う。   Next, the screen template generation unit 304 extracts a label name from the title of the column of the screen transition table (S1002). In the description of FIG. 10, the column is referred to as “target column”.

次に、画面雛形生成部304は、フレームカウンタからフレーム番号を生成する。生成されたフレーム番号は、例えば、フレームカウンタが示す値と一致する番号である。そして、画面雛形生成部304は、空の新規フレームを生成し、その新規フレームに、上記生成したフレーム番号と、ステップS1002で抽出したラベル名とを付与する(S1003)。   Next, the screen template generation unit 304 generates a frame number from the frame counter. The generated frame number is, for example, a number that matches the value indicated by the frame counter. The screen template generation unit 304 generates an empty new frame, and assigns the generated frame number and the label name extracted in step S1002 to the new frame (S1003).

次に、画面雛形生成部304は、対象列(付与されたラベル名の列)からイベント名を全て抽出する(S1004)。抽出された各イベント名について、後述のS1005が行われる。以下、1つのイベント名(図10の説明において「対象イベント名」と言う)を例に取る。   Next, the screen template generation unit 304 extracts all event names from the target column (the column of the assigned label name) (S1004). S1005 described later is performed for each extracted event name. Hereinafter, an event name (referred to as “target event name” in the description of FIG. 10) is taken as an example.

次に、画面雛形生成部304は、抽出された対象イベント名がボタン押下イベントを表すイベント名か否かを判定する(S1005)。ここで、ボタン押下イベントの場合は(S1005:Yes)、ステップS1006へ進む。一方、ボタン押下イベントでない場合は(S1005:No)、ステップS1011へ進む。以下、ステップ1006からの処理を説明する。   Next, the screen template generation unit 304 determines whether or not the extracted target event name is an event name representing a button press event (S1005). If the event is a button press event (S1005: Yes), the process proceeds to step S1006. On the other hand, if it is not a button press event (S1005: No), the process proceeds to step S1011. Hereinafter, the processing from step 1006 will be described.

次に、画面雛形生成部304は、ボタン押下イベントを発生可能とするために、この新規フレームに、表示部品としてボタン雛形を配置する(S1006)。   Next, the screen template generation unit 304 arranges a button template as a display component in this new frame so that a button press event can be generated (S1006).

次に、画面雛形生成部304は、コード雛形表700を参照して、ステップS1006で配置したボタン雛形に対応する対象イベント(対象イベント名から識別されるイベント)のコード雛形を生成し、生成したコード雛形を、新規フレームのスクリプト記載エリアに記載する(S1007)。   Next, the screen template generation unit 304 generates and generates a code template of the target event (event identified from the target event name) corresponding to the button template arranged in step S1006 with reference to the code template table 700. The code template is described in the script description area of the new frame (S1007).

次に、画面雛形生成部304は、対象イベントに制約条件があるか否かを判定する(S1008)。ここで、制約条件がある場合は(S1008)、ステップS1009へ進む。一方、制約条件がない場合(S1008:No)、ステップS1013へ進む。以下、ステップS1009からの処理を説明する。   Next, the screen template generation unit 304 determines whether the target event has a constraint condition (S1008). If there is a constraint condition (S1008), the process proceeds to step S1009. On the other hand, if there is no constraint condition (S1008: No), the process proceeds to step S1013. Hereinafter, processing from step S1009 will be described.

次に、画面雛形生成部304は、新規フレームに配置されたボタン雛形の色を変更する(S1009)。これにより、生成後の画面データにおいて、制約がある表示部品は異なる色で表示されるので、視覚的に判別できるようになる。色の変更以外の種類の表示態様変更(強調表示)が採用されて良い。表示態様は、例えば、線の太さ、フォントなどである。   Next, the screen template generation unit 304 changes the color of the button template arranged in the new frame (S1009). As a result, in the generated screen data, the restricted display component is displayed in a different color, so that it can be visually discriminated. A display mode change (highlighted display) of a type other than the color change may be employed. The display mode is, for example, line thickness, font, or the like.

次に、画面雛形生成部304は、対象イベント名に対応するセル(画面遷移表におけるセル)に記載されている制約条件を、コメントとしてコードに追記する(S1010)。   Next, the screen template generation unit 304 adds the constraint condition described in the cell (cell in the screen transition table) corresponding to the target event name to the code as a comment (S1010).

次に、画面雛形生成部304は、ステップS1004で抽出された1以上のイベント名にステップS1005が未処理のイベント名があるか否かを判定する(S1013)。ここで、未処理のイベント名がある場合(S1013:Yes)、ステップS1005へ戻る。一方、未処理のイベントがない場合(S1013:No)、ステップS1014へ進む。以下、ステップS1014からの処理を説明する。   Next, the screen template generation unit 304 determines whether or not there is an event name unprocessed in step S1005 in one or more event names extracted in step S1004 (S1013). If there is an unprocessed event name (S1013: Yes), the process returns to step S1005. On the other hand, when there is no unprocessed event (S1013: No), it progresses to step S1014. Hereinafter, processing from step S1014 will be described.

次に、画面雛形生成部304は、対象列に属する全てのセルにおいて「アニメフラグ」が「ture」か否かを判定する(S1014)。ここで、「アニメフラグ」が「true」の場合は(S1014:Yes)、ステップS1015へ進む。一方、「アニメフラグ」が「false」の場合は(S1014:No)、ステップS1016へ進む。以下、ステップS1015からの処理を説明する。   Next, the screen template generation unit 304 determines whether or not the “animation flag” is “true” in all cells belonging to the target column (S1014). If the “animation flag” is “true” (S1014: Yes), the process proceeds to step S1015. On the other hand, if the “animation flag” is “false” (S1014: No), the process proceeds to step S1016. Hereinafter, processing from step S1015 will be described.

「アニメフラグ」が「true」の場合(S1014:Yes)、画面雛形生成部304は、フレームカウンタに5を加算する(S1015)。フレームカウンタに5を加算する理由は、このフレーム区間にアニメのフレームを挿入するためである。一方、「アニメフラグ」が「false」の場合(S1014:No)、画面雛形生成部304は、フレームカウンタに1を加算する。   When the “animation flag” is “true” (S1014: Yes), the screen template generation unit 304 adds 5 to the frame counter (S1015). The reason for adding 5 to the frame counter is to insert an animation frame in this frame section. On the other hand, when the “animation flag” is “false” (S1014: No), the screen template generation unit 304 adds 1 to the frame counter.

次に、画面雛形生成部304は、画面遷移表で未処理の列が残っているか否かを判定する(S1017)。ここで、未処理の列が残っている場合は(S1017:Yes)、ステップS1002へ戻る。一方、未処理の列が残っていない場合は(S1017:No)、処理を終了する。   Next, the screen template generation unit 304 determines whether or not an unprocessed column remains in the screen transition table (S1017). If an unprocessed column remains (S1017: Yes), the process returns to step S1002. On the other hand, if no unprocessed column remains (S1017: No), the process ends.

ところで、ステップS1005において、ボタン押下イベントでない場合(S1005:No)、画面雛形生成部304は、コード雛形をスクリプト記載エリア挿入する(S1011)。   In step S1005, if the event is not a button press event (S1005: No), the screen template generation unit 304 inserts the code template into the script description area (S1011).

次に、画面雛形生成部304は、対象イベント名に対応するセル(画面遷移表におけるセル)に記載されている制約条件を、コメントとしてコードに追記し(S1012)、ステップS1013に進む。以降の処理は、上記と同様である。   Next, the screen template generation unit 304 adds the restriction condition described in the cell corresponding to the target event name (cell in the screen transition table) to the code as a comment (S1012), and proceeds to step S1013. The subsequent processing is the same as described above.

この図10に示す一連の処理により、画面データの雛形303が生成される。   A screen data template 303 is generated by a series of processes shown in FIG.

以上が、本実施形態についての説明である。   The above is the description of the present embodiment.

本実施形態によれば、開発者は、画面遷移表を基にGUIにおけるフレームの遷移の流れを簡単に把握することができる。   According to this embodiment, the developer can easily grasp the flow of frame transition in the GUI based on the screen transition table.

また、本実施形態によれば、ターゲット機器のスペックに応じた適切な制約条件(静的制約条件及び動的制約条件)がソフトウェア(例えばコード)に反映される。このため、開発者による開発の負荷が軽減される。   Further, according to the present embodiment, appropriate constraint conditions (static constraint conditions and dynamic constraint conditions) according to the specifications of the target device are reflected in the software (for example, code). For this reason, the development load by the developer is reduced.

また、本実施形態によれば、ターゲット機器のCPU使用率等に応じて、アニメ等の動作を制約する制約条件がソフトウェア(例えばコード)に反映される。このため、開発者は、ユーザフレンドリーなソフトウェアを開発することができる。   Further, according to the present embodiment, the constraint condition that restricts the operation of animation or the like is reflected in the software (for example, code) according to the CPU usage rate of the target device. For this reason, the developer can develop user-friendly software.

また、本実施形態によれば、画面データ301の複雑度が低い場合はスクリプトコードを生成し、画面データ301の複雑度が高い場合はネイティブコードが生成される。これにより、拡張性と実行速度のバランスがとれたソフトウェアを作成することができる。   Further, according to the present embodiment, a script code is generated when the complexity of the screen data 301 is low, and a native code is generated when the complexity of the screen data 301 is high. This makes it possible to create software that balances extensibility and execution speed.

なお、上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。   In addition, embodiment of this invention mentioned above is an illustration for description of this invention, and is not the meaning which limits the scope of the present invention only to those embodiment. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.

例えば、ボタン操作時に音を出す必要がある場合は、音に対する制約条件を定めて、画面遷移表に制約条件として記載してもよい。また、本実施形態では、タイムライン型画面設計ツール自体に機能を内蔵したが、プラグインとして既存のツールに機能が追加されてもよい。   For example, when it is necessary to make a sound when a button is operated, a restriction condition for sound may be determined and described as a restriction condition in the screen transition table. In the present embodiment, the function is built in the timeline type screen design tool itself, but the function may be added to an existing tool as a plug-in.

また、上述したソフトウェア作成支援装置300は、デザイナーと開発者の連携に有効である。このため、例えば、装置300は、デザイナー用の認証情報(例えばログインID)と開発者用の認証情報(例えばログインID)とを管理していて、ユーザから入力された認証情報がデザイナー用であるか開発者用であるかによって、そのユーザに対して提供するサービス(実行するプログラム)を選択して良い。例えば、入力された認証情報がデザイナー用の認証情報であれば、プログラム340が実行されプログラム350は実行されず、一方、入力された認証情報が開発者用の認証情報であれば、プログラム350が実行されてプログラム340は実行されないで良い。   Further, the above-described software creation support apparatus 300 is effective for cooperation between a designer and a developer. For this reason, for example, the device 300 manages authentication information for designers (for example, login ID) and authentication information for developers (for example, login ID), and the authentication information input by the user is for the designer. Depending on whether it is for a developer or a developer, a service (program to be executed) provided to the user may be selected. For example, if the input authentication information is the designer authentication information, the program 340 is executed and the program 350 is not executed. On the other hand, if the input authentication information is the developer authentication information, the program 350 is Once executed, the program 340 may not be executed.

また、例えば、ターゲット機器IDは、ターゲット機器の種類のIDであっても良い。   Further, for example, the target device ID may be an ID of the target device type.

100 ソフトウェア作成支援装置の画面表示例
300 ソフトウェア作成支援装置
302 遷移表生成部
313 ドキュメント生成部
316 記憶部
317 複雑度判定部
318 コード雛形生成部
319 コード結合部
322 画面表示プログラム生成部
323 モジュール生成部
340 画面設計プログラム
350 画面遷移生成プログラム
400 画面遷移表
500 イベント制約定義表
700 コード雛形表
100 Screen display example of software creation support apparatus 300 Software creation support apparatus 302 Transition table generation unit 313 Document generation unit 316 Storage unit 317 Complexity determination unit 318 Code template generation unit 319 Code combination unit 322 Screen display program generation unit 323 Module generation unit 340 Screen design program 350 Screen transition generation program 400 Screen transition table 500 Event constraint definition table 700 Code template

Claims (10)

電子機器にGUI(Graphical User Interface)を表示するためのソフトウェアの作成を支援するソフトウェア作成支援装置であって、
時間の経過に伴い遷移する複数の連続するフレームからなるフレーム区間を含む画面データを記憶する画面データ記憶部と
イベントにおいて前記電子機器の動作の制約を表す情報であるイベント制約定義情報であって、前記イベント制約定義情報及び前記画面データに基づいて前記フレーム区間の表示中に発生したイベントに応じて遷移するフレーム区間を定義した遷移管理情報を生成する遷移管理情報生成部と、
前記イベント制約定義情報及び前記遷移管理情報を記憶する管理情報記憶と、
を有することを特徴とするソフトウェア作成支援装置。
A software creation support apparatus that supports creation of software for displaying a GUI (Graphical User Interface) on an electronic device,
A screen data storage unit for storing screen data including a frame section composed of a plurality of continuous frames that transition with the passage of time;
Event constraint definition information, which is information representing an operation restriction of the electronic device in an event, and a frame that transitions according to an event that occurs during display of the frame section based on the event constraint definition information and the screen data A transition management information generation unit for generating transition management information defining a section;
A management information storage unit for storing the event constraint definition information and the transition management information;
A software creation support apparatus characterized by comprising:
請求項記載のソフトウェア作成支援装置であって、
前記複数のフレーム区間は、アニメーションが動作するフレームを含んだフレーム区間である1以上のアニメフレーム区間と、アニメーションが動作しないフレームで構成されたフレーム区間である1以上の通常フレーム区間とを含み、
前記イベント制約定義情報は、少なくとも1つのイベントについて、前記電子機器の動作状況に依存しない制約である静的制約を表す情報を含んでおり、
前記遷移管理情報生成部は、
(a)第1のアニメフレーム区間を特定し、
(b)イベントの発生により前記第1のアニメフレーム区間が遷移先とされる第2のフレーム区間を特定し、
(c)前記第2のフレーム区間においての前記イベントに対応する静的制約が満たされているか否かを判断し、
(d)前記(c)の判断の結果が否定的であれば、前記第1のアニメフレーム区間の遷移先である第3のフレーム区間を特定し、
前記遷移管理情報は、
(X)前記(c)の判断の結果が肯定的であれば、前記第2のフレーム区間の遷移先として、前記第1のアニメフレーム区間を表す情報を有しており、
(Y)前記(c)の判断の結果が否定的であれば、前記第2のフレーム区間の遷移先として、前記第1のアニメフレーム区間を表す情報と、前記第3のフレーム区間を表す情報とを有しており、
前記第2のフレーム区間の遷移先として前記第1のアニメフレーム区間と前記第3のフレーム区間とが指定されている前記遷移管理情報に基づいて作成されたソフトウェアは、前記GUIにおいて、前記第2のフレーム区間からの遷移先として前記第1のアニメフレーム区間を優先的に選択する、
ソフトウェア作成支援装置。
The software creation support apparatus according to claim 1 ,
The plurality of frame sections include one or more animation frame sections that are frames including a frame in which the animation operates, and one or more normal frame sections that are frame sections configured by a frame in which the animation does not operate,
The event constraint definition information includes information representing a static constraint that is a constraint that does not depend on an operation state of the electronic device for at least one event,
The transition management information generation unit
(A) Specify the first animation frame section,
(B) specifying a second frame section in which the first animation frame section is a transition destination by the occurrence of an event;
(C) determine whether a static constraint corresponding to the event in the second frame interval is satisfied;
(D) If the result of the determination in (c) is negative, specify the third frame section that is the transition destination of the first animation frame section;
The transition management information is
(X) If the result of the determination in (c) is affirmative, it has information representing the first animation frame section as a transition destination of the second frame section;
(Y) If the result of the determination in (c) is negative, information representing the first animation frame section and information representing the third frame section as the transition destination of the second frame section And
The software created based on the transition management information in which the first animation frame section and the third frame section are designated as the transition destination of the second frame section is the second software in the GUI. Preferentially select the first animation frame section as a transition destination from the frame section of
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記イベント制約定義情報は、前記少なくとも1つのイベントについて、前記電子機器の動作状況に関する制約である動的制約を表す情報を更に含んでおり、
前記遷移管理情報生成部は、前記第2のフレーム区間においての前記イベントに対応する動的制約を特定し、
前記遷移管理情報は、前記第2のフレーム区間についての制約として、前記特定された動的制約を表す情報を有しており、
前記第2のフレーム区間の遷移先として前記第1のアニメフレーム区間と前記第3のフレーム区間とが指定されており且つ前記動的制約を表す情報を含んでいる前記遷移管理情報に基づいて作成されたソフトウェアは、前記電子機器の動作状況が前記動作制約を満たしていない場合、前記GUIにおいて、前記第2のフレーム区間からの遷移先として前記第3のフレーム区間を選択する、
ソフトウェア作成支援装置。
A software creation support apparatus according to claim 2 ,
The event constraint definition information further includes information representing a dynamic constraint that is a constraint related to an operation state of the electronic device with respect to the at least one event.
The transition management information generation unit identifies a dynamic constraint corresponding to the event in the second frame section,
The transition management information includes information representing the identified dynamic constraint as a constraint on the second frame section,
Created based on the transition management information that includes the first animation frame section and the third frame section as transition destinations of the second frame section and includes information representing the dynamic constraint When the operation state of the electronic device does not satisfy the operation constraint, the software that has been selected selects the third frame section as a transition destination from the second frame section in the GUI.
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記第3のフレーム区間は、前記通常フレーム区間である、
ソフトウェア作成支援装置。
A software creation support apparatus according to claim 3 ,
The third frame section is the normal frame section.
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記イベント制約定義情報は、イベントにおいて前記電子機器の動作の制約があるかを表す情報を、電子機器毎、又は、電子機器の種類毎に有しており、
前記遷移管理情報生成部は、前記イベント制約定義情報のうちの、入力された電子機器識別情報に対応する制約に基づいて、前記遷移管理情報を生成し、
前記電子機器識別情報は、電子機器又は電子機器の種類の識別情報である、
ソフトウェア作成支援装置。
The software creation support apparatus according to claim 1 ,
The event constraint definition information has information indicating whether there is a restriction on the operation of the electronic device in an event for each electronic device or each type of electronic device,
The transition management information generation unit generates the transition management information based on the constraint corresponding to the input electronic device identification information in the event constraint definition information,
The electronic device identification information is identification information of the type of electronic device or electronic device.
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記制約は、前記電子機器の動作状況が所定の状況の場合に遷移先のアニメーションの実行を省略することができるか否かを表す制約である、
ソフトウェア作成支援装置。
The software creation support apparatus according to claim 1 ,
The constraint is a constraint that represents whether or not the execution of the transition destination animation can be omitted when the operation status of the electronic device is a predetermined status.
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記制約は、ユーザが所定の操作を行った場合にアニメーションの実行を省略することができるか否かを表す制約である、
ソフトウェア作成支援装置。
The software creation support apparatus according to claim 1 ,
The constraint is a constraint indicating whether or not the execution of the animation can be omitted when the user performs a predetermined operation.
Software creation support device.
請求項記載のソフトウェア作成支援装置であって、
前記複数のフレーム区間は、アニメーションが動作するフレームを含んだフレーム区間である1以上のアニメフレーム区間と、アニメーションが動作しないフレームで構成されたフレーム区間である1以上の通常フレーム区間とを含み、
前記アニメフレーム区間についての前記制約と前記通常フレーム区間についての前記制約とは異なる制約である、
ソフトウェア作成支援装置。
The software creation support apparatus according to claim 1 ,
The plurality of frame sections include one or more animation frame sections that are frames including a frame in which the animation operates, and one or more normal frame sections that are frame sections configured by a frame in which the animation does not operate,
The constraint on the animation frame section is different from the constraint on the normal frame section.
Software creation support device.
電子機器にGUI(Graphical User Interface)を表示するためのソフトウェアの作成を支援するソフトウェア作成支援方法であって、
時間の経過に伴い遷移する複数の連続するフレームからなるフレーム区間を含む画面データと、イベントにおいて前記電子機器の動作の制約を表す情報であるイベント制約定義情報とを所定の記憶部から取得し、
前記イベント制約定義情報及び前記画面データに基づいて前記フレーム区間の表示中に発生したイベントに応じて遷移するフレーム区間を定義した遷移管理情報を生成し、
前記遷移管理情報を所定の記憶部に記憶する
ことを特徴とするソフトウェア作成支援方法。
A software creation support method for supporting creation of software for displaying a GUI (Graphical User Interface) on an electronic device,
Obtaining from a predetermined storage unit screen data including a frame section composed of a plurality of continuous frames that transition with the passage of time, and event constraint definition information, which is information representing the constraint of the operation of the electronic device in an event,
Based on the event constraint definition information and the screen data, generate transition management information that defines a frame section that transitions according to an event that occurred during display of the frame section,
A software creation support method, wherein the transition management information is stored in a predetermined storage unit .
電子機器で実行されるソフトウェアであってGUI(Graphical User Interface)を表示するためのソフトウェアの作成を支援するコンピュータプログラムであって、
時間の経過に伴い遷移する複数の連続するフレームからなるフレーム区間含む画面データと、イベントにおいて前記電子機器の動作の制約を表す情報であるイベント制約定義情報とを所定の記憶部から取得し、
前記イベント制約定義情報及び前記画面データに基づいて前記フレーム区間の表示中に発生したイベントに応じて遷移するフレーム区間を定義した遷移管理情報を生成し
前記遷移管理情報を所定の記憶部に記憶する
ことを特徴とするコンピュータプログラム。
A computer program for supporting creation of software executed on an electronic device and displaying a GUI (Graphical User Interface),
Obtaining from a predetermined storage unit screen data including a frame section composed of a plurality of continuous frames that transition with the passage of time, and event constraint definition information, which is information representing a constraint on the operation of the electronic device in an event,
Based on the event constraint definition information and the screen data, generate transition management information that defines a frame section that transitions according to an event that occurred during display of the frame section ,
A computer program storing the transition management information in a predetermined storage unit .
JP2011021119A 2011-02-02 2011-02-02 Apparatus, method, and program for supporting creation of software Active JP5511704B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011021119A JP5511704B2 (en) 2011-02-02 2011-02-02 Apparatus, method, and program for supporting creation of software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011021119A JP5511704B2 (en) 2011-02-02 2011-02-02 Apparatus, method, and program for supporting creation of software

Publications (2)

Publication Number Publication Date
JP2012160137A JP2012160137A (en) 2012-08-23
JP5511704B2 true JP5511704B2 (en) 2014-06-04

Family

ID=46840594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011021119A Active JP5511704B2 (en) 2011-02-02 2011-02-02 Apparatus, method, and program for supporting creation of software

Country Status (1)

Country Link
JP (1) JP5511704B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6160291B2 (en) * 2013-06-24 2017-07-12 富士通株式会社 Screen creation support program, screen creation support device, and screen creation support method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2998652B2 (en) * 1996-09-20 2000-01-11 日本電気株式会社 GUI screen layout design method
JP2004185337A (en) * 2002-12-04 2004-07-02 Canon Inc Information retrieval apparatus and method and storage medium
JP4924864B2 (en) * 2006-01-05 2012-04-25 ソニー株式会社 Information processing method and apparatus, recording medium, and program
JP4847230B2 (en) * 2006-06-29 2011-12-28 クラリオン株式会社 In-vehicle information terminal device, drawing control method, and program
JP5012319B2 (en) * 2007-08-22 2012-08-29 株式会社Jvcケンウッド In-vehicle hands-free communication device and control method for in-vehicle hands-free communication device

Also Published As

Publication number Publication date
JP2012160137A (en) 2012-08-23

Similar Documents

Publication Publication Date Title
US10338893B2 (en) Multi-step auto-completion model for software development environments
US8589874B2 (en) Visual interface to represent scripted behaviors
JP5198132B2 (en) State transition test support device, state transition test support program, and state transition test support method
CN110826720B (en) Interface display method and device, interface switching method and device
US8429613B2 (en) Stepping and application state viewing between points
KR101772785B1 (en) Program chart display device, program chart display method, and computer readable recoding medium for recording program chart display program
CN106462405A (en) Interactive learning tool using playground
US20170249231A1 (en) Analytic and layer-based augmentation of code reviews
US20150089467A1 (en) Design language notification generator
KR20100081351A (en) Logical structure design surface
CN114546383A (en) Driving scene display method and device, electronic equipment and storage medium
Farrell Web components in action
CN108846069B (en) Document execution method and device based on markup language
JP2014059597A (en) Drawing program, drawing method and drawing device
JP5511704B2 (en) Apparatus, method, and program for supporting creation of software
US8788449B2 (en) Interface for creating and editing boolean logic
CN101542585A (en) Image generation system, projector, program, information storage medium, and image generation method
CN110750263B (en) A method and device for generating vehicle instrument development data
KR102228241B1 (en) Method and system for virtual input on the web
Cavarra et al. Combining sequence diagrams and OCL for liveness
JP2007323219A (en) FMEA support apparatus, apparatus thereof, program thereof and medium thereof
KR102060023B1 (en) A display device and a method for processing a screen using it
CN111930374A (en) Data formatting method, data formatting device, programming system, data formatting equipment and storage medium
CN114020257B (en) Coding assistance method, device, equipment and storage medium
KR20140073046A (en) A method for displaying components and an apparatus using it

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140325

R150 Certificate of patent or registration of utility model

Ref document number: 5511704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250