JP2024030005A - Screen design information generation system, screen design information generation method, and computer program - Google Patents
Screen design information generation system, screen design information generation method, and computer program Download PDFInfo
- Publication number
- JP2024030005A JP2024030005A JP2022132522A JP2022132522A JP2024030005A JP 2024030005 A JP2024030005 A JP 2024030005A JP 2022132522 A JP2022132522 A JP 2022132522A JP 2022132522 A JP2022132522 A JP 2022132522A JP 2024030005 A JP2024030005 A JP 2024030005A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- information
- snippet
- event
- design information
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000004590 computer program Methods 0.000 title claims description 23
- 230000006870 function Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 abstract description 8
- 238000000605 extraction Methods 0.000 description 37
- 238000003860 storage Methods 0.000 description 26
- 239000012634 fragment Substances 0.000 description 14
- 239000000284 extract Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Abstract
【課題】画面部品を含む画面ページの画面設計情報を効率的に作成できる画面設計情報生成システムを提供すること。【解決手段】画面ページの画面設計情報を生成する画面設計情報生成システム1であって、画面ページには、所定イベントに関連付けられる画面部品が少なくとも一つ含まれており、既存画面ページ管理情報は、既存の画面ページに含まれる画面部品間の構成情報と、所定イベントが発生した場合に実行される一連の処理とを対応付けて記憶しており、プロセッサは、作成対象の画面ページ(111)を取得し、取得された作成対象の画面ページに含まれる画面部品間の構成情報を取得し、既存画面ページ管理情報に基づいて、作成対象の画面ページに含まれる画面部品について所定イベントが発生した場合に呼び出される一連の処理の候補を生成する(110)。【選択図】図1An object of the present invention is to provide a screen design information generation system that can efficiently create screen design information for a screen page including screen components. [Solution] A screen design information generation system 1 that generates screen design information for a screen page, in which the screen page includes at least one screen component associated with a predetermined event, and existing screen page management information is , the configuration information between screen parts included in an existing screen page and a series of processes to be executed when a predetermined event occurs are stored in association with each other, and the processor selects the screen page to be created (111). , obtain the configuration information between the screen parts included in the obtained screen page to be created, and based on the existing screen page management information, determine whether a predetermined event has occurred for the screen parts included in the screen page to be created. 110). [Selection diagram] Figure 1
Description
本発明は、画面設計情報生成システム、画面設計情報生成方法およびコンピュータプログラムに関する。 The present invention relates to a screen design information generation system, a screen design information generation method, and a computer program.
例えばオンラインショップ、予約ページ、ニュースサイト、生産管理システムの提供するページなど、ウェブページとして知られる画面ページが日々生産されている。画面ページの中には、ユーザにより操作される画面部品を含むページがある。ユーザが画面部品を操作するとイベントが発生し、所定の一連の処理が呼び出されて実行される。 For example, screen pages known as web pages are produced every day, such as online shops, reservation pages, news sites, and pages provided by production management systems. Among the screen pages, there are pages that include screen components that are operated by the user. When a user operates a screen component, an event occurs, and a predetermined series of processes are called and executed.
なお、画面部品を含む画面ページの作成に関する技術ではないが、ソフトウェアを効率的に作成する技術として特許文献1または特許文献2が知られている。
Note that
ユーザが画面部品を操作したときに呼び出される一連の処理を毎回検討して定義するのでは手間がかかり、一連の処理に係わるソースコードの作成に時間を要し、画面ページの生産効率(作業効率)が低い。 It takes time to consider and define a series of processes that are called every time a user operates a screen component, and it takes time to create source code for a series of processes. ) is low.
特許文献1では、機能に関連づいた用語を元に確率情報を生成し、機能とソースの関係を示すトレーサビリティマトリックスを作成する。もしも画面ページの作成効率化に特許文献1を使用できたとしても、単語に基づいて画面ページのソースコードを解析できるにすぎない。しかし実際には、より使いやすいユーザインターフェース、直感的に利用可能なユーザインターフェースが望まれており、画面デザイン(ユーザインターフェースのデザイン)には暗黙の了解があることが知られている。或るイベントが発生したときに呼び出されるべき一連の処理は、画面部品の表示位置、および他の画面部品との位置関係といった画面構成に依存して定まることが多い。したがって、画面部品の名称だけでは画面部品間の構成を把握することができないため、一連の処理を抽出できない。
In
特許文献2は、部品のカテゴリを指定してリポジトリを検索し、実行カバレッジが閾値を越える部品を開発者に推薦する。仮に特許文献2を画面ページの作成効率化に利用できたとしても、画面部品名やイベント名をカテゴリ化して、検索対象の一つの処理についてのソースコードを検索できるだけである。しかし実際には、あるイベントが発生すると複数の処理が所定の順序で実行されることが多い。特許文献2の技術では、画面部品間の構成を把握できない上に、実行の順番まで考慮して処理を抽出することはできない。
本発明は、上述の課題に鑑みてなされたもので、その目的は、画面部品を含む画面ページの画面設計情報を効率的に作成できるようにした画面設計情報生成システム、画面設計情報生成方法およびコンピュータプログラムを提供することにある。 The present invention has been made in view of the above-mentioned problems, and its objects are a screen design information generation system, a screen design information generation method, and a screen design information generation system that can efficiently create screen design information of a screen page including screen components. Its purpose is to provide computer programs.
上記課題を解決すべく、本発明の一つの観点に画面設計情報生成システムは、画面ページの画面設計情報を生成する画面設計情報生成システムであって、画面ページには、所定イベントに関連付けられる画面部品が少なくとも一つ含まれており、少なくとも一つのプロセッサと、プロセッサにより使用される少なくとも一つのメモリと、を備え、メモリは、画面ページに関する動作を規定する画面設計情報を生成する所定のコンピュータプログラムと、既存の画面ページに関する既存画面ページ管理情報とを記憶しており、既存画面ページ管理情報は、既存の画面ページに含まれる画面部品間の構成情報と、所定イベントが発生した場合に実行される一連の処理とを対応付けて記憶しており、プロセッサは、所定のコンピュータプログラムを実行することにより、作成対象の画面ページを取得し、取得された作成対象の画面ページに含まれる画面部品間の構成情報を取得し、既存画面ページ管理情報に基づいて、作成対象の画面ページに含まれる画面部品について所定イベントが発生した場合に呼び出される一連の処理の候補を生成する。 In order to solve the above problems, one aspect of the present invention is a screen design information generation system that generates screen design information of a screen page, and the screen page includes a screen associated with a predetermined event. at least one component including at least one processor and at least one memory used by the processor, the memory being configured to carry out a predetermined computer program for generating screen design information that defines operations regarding the screen page. and existing screen page management information regarding existing screen pages. The processor acquires a screen page to be created by executing a predetermined computer program, and stores a series of processes in association with each other in the screen page to be created. , and generates candidates for a series of processes to be called when a predetermined event occurs for a screen component included in the screen page to be created, based on the existing screen page management information.
本発明によれば、作成対象の画面ページにおける画面部品間の構成情報に基づいて既存画面ページ管理情報を参照することにより、所定イベントが発生した場合に呼び出される一連の処理の候補を生成することができる。 According to the present invention, candidates for a series of processes to be called when a predetermined event occurs are generated by referring to existing screen page management information based on configuration information between screen components in a screen page to be created. Can be done.
以下、図面に基づいて、本発明の実施の形態を説明する。本実施形態では、プレゼンテーション層のアプリケーションプログラム(以下、アプリケーション)を効率的に作成できるようにしたシステムおよび方法を開示する。プレゼンテーション層のアプリケーションは、画面部品への操作によりイベントが発生すると、例えば、検索、データ取得、画面作成、画面更新などの所定の一連の処理を実行する。 Embodiments of the present invention will be described below based on the drawings. This embodiment discloses a system and method that enable efficient creation of presentation layer application programs (hereinafter referred to as applications). When an event occurs due to an operation on a screen component, the presentation layer application executes a predetermined series of processes such as search, data acquisition, screen creation, and screen update.
本実施形態では、既存ソースコードを分割し、イベント及び画面部品と紐づけて、コード(スニペット)を生成する。そして、本実施形態では、スニペットに紐づいた画面のイベント及び画面の構成要素(画面部品)を、作成する新画面の画面部品のイベントと文字列情報と位置関係とを照合することにより、新画面のイベントに対して、一つ以上のスニペットからなるイベントフローを作る。ユーザはイベントフローを参考にして、新画面を作成することができる。 In this embodiment, existing source code is divided and linked to events and screen components to generate code (snippets). In this embodiment, the screen events and screen components (screen parts) associated with the snippet are compared with the events, character string information, and positional relationships of the screen parts of the new screen to be created. Create an event flow consisting of one or more snippets for screen events. The user can create a new screen by referring to the event flow.
これにより本実施形態によれば、画面に多数の画面部品がある場合に、暗黙的な画面部品間の関係を考えてイベントフローをフルスクラッチで作成する必要がなく、比較的簡単に新画面(表示と内部処理を含む。)を作成することができる。 As a result, according to this embodiment, when there are many screen parts on a screen, there is no need to consider the implicit relationships between screen parts and create an event flow from scratch, and it is relatively easy to create a new screen ( (including display and internal processing).
本実施形態では、実績のある既存ソースコード情報を使って、作成対象の新画面に似た画面のソースコードを抽出して再利用することができるため、ユーザは効率的に新画面を作成することができる。 In this embodiment, the source code of a screen similar to the new screen to be created can be extracted and reused using existing source code information with a proven track record, allowing the user to efficiently create a new screen. be able to.
本実施形態では、後述のように、既存システムのソースコードと既存システムの画面構成とを解析しておき、次に、既存システムの画面とイベントとに関する解析結果を利用して、新システムの画面に適用されるイベントフローの生成を支援する。 In this embodiment, as described later, the source code of the existing system and the screen configuration of the existing system are analyzed, and then the new system screen is created using the analysis results regarding the existing system screen and events. Supports the generation of event flows that are applied to
準備段階では、既存システムで使用されたソースコードを解析することにより、画面部品間の構成情報と出現確率を求め、ソースコードの中から複数のスニペットを抽出し、抽出されたスニペットの実行順序を考慮してイベントフローの候補を生成する。新画面の生成支援段階では、新画面の画面構成情報と既存システムの画面構成情報を照合し、似た画面構成に関連するスニペットを抽出し、抽出されたスニペットの依存関係に基づき各スニペットを所定の順番に並べてイベントフローを生成する。 In the preparation stage, the source code used in the existing system is analyzed to find the configuration information and appearance probability between screen components, extract multiple snippets from the source code, and determine the execution order of the extracted snippets. Generate event flow candidates by taking this into account. In the new screen generation support stage, the screen configuration information of the new screen is compared with the screen configuration information of the existing system, snippets related to similar screen configurations are extracted, and each snippet is specified based on the dependencies of the extracted snippets. Generate an event flow by arranging them in this order.
既存ソースコードからスニペットを抽出する際に、スニペット間の類似度を判定し、所定値以上類似するスニペットは統合してもよい。画面構成とイベントの組み合わせに対応するスニペットが複数検出された場合は、実行された実績が他のスニペットよりも多いスニペットを選択することができる。 When extracting snippets from existing source code, the degree of similarity between snippets may be determined, and snippets that are similar by a predetermined value or more may be integrated. If multiple snippets corresponding to the combination of screen configuration and event are detected, the snippet that has been executed more often than other snippets can be selected.
本実施形態では、以下のように用語を定義する。ただし、以下の定義以外に定義可能である。 In this embodiment, terms are defined as follows. However, it is possible to define other than the definition below.
「既存ソースコード」とは、既存システム(既存ソフトウェア)において、画面部品とイベントとに紐づけられた一連の処理が記述されたソースコードである。 “Existing source code” is source code in which a series of processes linked to screen components and events are described in an existing system (existing software).
「スニペット依存関係」とは、ソースコードからスニペットを分割するときに、ソースコードの構造情報を用いて依存関係を抽出した情報である。依存関係には、例えば、時系列の順番、エラーフローなどがある。 "Snippet dependency relationship" is information obtained by extracting dependency relationships using the structural information of the source code when dividing snippets from the source code. Dependencies include, for example, chronological order, error flow, and the like.
「カバレッジ」とは、ソースコードの各行の動作時に通過したか否かの情報である。 "Coverage" is information about whether or not each line of source code is passed during operation.
「スニペット」とは、何らかの観点で分割されたコードスニペットとイベント情報と画面部品(画面HTML情報)の結合体である。スニペットは「コードスニペット」に対応する。同一または所定値以上類似するスニペットは、スニペット利用状況情報にて一つのスニペットへ統合される。 A "snippet" is a combination of code snippets, event information, and screen components (screen HTML information) that are divided from some point of view. Snippet corresponds to "code snippet". Snippets that are the same or similar by more than a predetermined value are integrated into one snippet based on the snippet usage information.
「スニペット類似度」とは、スニペット同士が似ている度合いを示す。例えば、ソースコードから抽出されたすべてのスニペットを表の縦軸と横軸に並べて、セルに類似度を記載することにより管理することができる。 "Snippet similarity" indicates the degree to which snippets are similar to each other. For example, all the snippets extracted from the source code can be arranged on the vertical and horizontal axes of a table and managed by writing the degree of similarity in the cells.
「スニペット利用状況情報」とは、スニペットごとに利用状況を管理する情報である。スニペット利用状況情報は、スニペットの利用量、類似スニペット、関連するイベント、関連する画面部品を整理した情報を含む。スニペット統合が起きた場合は、イベントの情報および画面部品の情報が併記される。 "Snippet usage information" is information that manages usage status for each snippet. The snippet usage information includes information that organizes the amount of usage of snippets, similar snippets, related events, and related screen components. When snippet integration occurs, event information and screen component information are written together.
「フロー候補一覧」とは、過去に作成された既存システム(既存システムの画面)から抽出可能なイベントフロー候補の一覧である。 The "flow candidate list" is a list of event flow candidates that can be extracted from existing systems (screens of existing systems) created in the past.
「イベントフロー」とは、イベントが発生すると呼び出される一連の処理である。イベントフローは「画面設計情報」の例である。イベントは、例えば「検索ボタン」「ページ切替ボタン」「画面更新ボタン」「編集ボタン」などの画面部品がユーザにより操作されると発生する。 An "event flow" is a series of processes that are called when an event occurs. The event flow is an example of "screen design information". An event occurs when a user operates a screen component such as a "search button," "page switching button," "screen update button," or "edit button," for example.
「新規画面HTML」とは、画面設計情報の作成対象である新たな画面の画面構成を規定するコンピュータプログラムである。 "New screen HTML" is a computer program that defines the screen configuration of a new screen for which screen design information is to be created.
「フロー」とは、イベントフローの候補から選択され、選択されたイベントフローに基づいて作成されるイベントフローである。 A “flow” is an event flow selected from event flow candidates and created based on the selected event flow.
図1~図30を用いて第1実施例を説明する。図1は、画面設計情報生成システム1の概要を示す。
A first embodiment will be described using FIGS. 1 to 30. FIG. 1 shows an overview of a screen design
画面設計情報生成システム1は、既存ソフトウェア資産記憶部10と電気的に接続されている。既存ソフトウェア資産記憶部10は、過去に作成された情報処理システム(既存システム)についての既存ソースコードの情報101と既存画面ページの画面HTML(Hyper Text Markup Language)の情報102とを記憶する。以下、既存ソースコード101、既存画面HTML102と呼ぶことがある。
The screen design
画面設計情報生成システム1は、図2で後述するように計算機上に構成される。画面設計情報生成システム1は、例えば、スニペット抽出部151、ログ解析部152、スニペット類似度判定部153、画面部品情報抽出部154、スニペット利用状況作成部155、フロー候補生成部110、画面部品フロー生成部157を機能として備える。画面設計情報生成システム1は、図1に示す各機能の全部を備えている必要はない。さらに、画面設計情報生成システム1は、図2~図5で後述するように、図1に示されていない機能を備えることもできる。
The screen design
図1では、画面設計情報生成システム1の概略動作を説明する。詳細な動作は図5、図22~図30で後述する。
In FIG. 1, a schematic operation of the screen design
既存ソフトウェア資産記憶部10は、既存システムのソースコードおよび画面HTML情報などを記憶するレポジトリである。既存ソフトウェア資産記憶部10に記憶された既存ソースコードの実行ログ105は、ログ解析部152により解析され、その解析結果はスニペット利用状況作成部155に入力される。
The existing software
スニペット抽出部151は、既存ソースコード101からイベントに紐づく処理を分割してスニペット化する。既存ソースコード101からスニペットを抽出する方法には複数ある。
The
例えば、既存ソースコード内のコメントに着目して、イベントに紐づく処理(所定処理)のソースコード片をスニペットとして抽出することができる。例えば、既存ソースコード内の関数に着目して、既存ソースコード内のソースコード片をスニペットとして抽出することもできる。例えば、既存ソースコード内の変数の依存関係に着目して、既存ソースコード内のソースコード片をスニペットとして抽出することもできる。 For example, by focusing on comments in existing source code, a source code fragment of a process (predetermined process) associated with an event can be extracted as a snippet. For example, by focusing on a function in the existing source code, a source code piece in the existing source code can be extracted as a snippet. For example, source code fragments within the existing source code can be extracted as snippets by focusing on the dependency relationships of variables within the existing source code.
上述の方法のいずれか一つまたは複数あるいは全てを使用することで、既存ソースコード101から一つ以上のスニペット103(図5参照)を得ることができる。抽出されたスニペット103は、ソースコード片とイベント情報と画面HTML情報の結合した情報である。
One or more snippets 103 (see FIG. 5) can be obtained from existing
後述のように、抽出された複数のスニペットの中には、依存関係にあるスニペットが含まれていることがある。ソースコードの構造情報を用いることで、どのスニペットの次にどのスニペットが実行されるのかを検出できる。例えば、買物客(画面ページの提供するサービスのユーザ)が商品購入画面で商品を選択し、「カートへ追加」ボタンを操作した場合を説明する。 As described below, the multiple extracted snippets may include snippets that are dependent on each other. By using structural information in the source code, it is possible to detect which snippet is executed after which snippet. For example, a case will be described in which a shopper (user of a service provided by a screen page) selects a product on the product purchase screen and operates the "Add to Cart" button.
買物客の操作対象となる画面部品の一つである「カートへ追加」ボタンが買物客によって操作されると、「カートへ追加」というイベントが発生する。このイベントの発生によって、商品購入画面内の商品一覧表から買物客の選択した商品の個数を取得する処理(第1処理)が実施され、その次にカートの情報を更新させるサービスを呼び出す処理(第2処理)が実施される。 When the shopper operates the "Add to Cart" button, which is one of the screen components to be operated by the shopper, an event called "Add to Cart" occurs. When this event occurs, a process (first process) is executed to obtain the number of products selected by the shopper from the product list on the product purchase screen, and then a process (first process) that calls a service that updates cart information ( 2nd process) is performed.
この実行順序(スニペット間の依存関係)は、抽出元の既存ソースコードに記述された構造情報から検出できる。そこで、画面設計情報生成システム1は、「商品一覧表」という画面部品と「カートへ追加」ボタンという画面部品が同一画面に存在する場合に、「カートへ追加」イベントが発生したならば、第1処理のスニペットを実行させ、次に第2処理のスニペットを実行させるというイベントフローの候補を生成する。プログラマ(画面設計情報生成システム1にとってのユーザ)は、画面設計情報生成システム1から提案されたイベントフローの候補を参考にして、新たな画面に関するソースコードを効率的に作成することができる。新たに作成されたソースコードとそのソースコードに対応する画面HTML情報は、既存ソースコード101および既存画面HTML情報102として、既存ソフトウェア資産記憶部10に記憶される。
This execution order (dependency between snippets) can be detected from structural information written in the existing source code from which to extract. Therefore, in the screen design
ログ解析部152は、ソースコード101の実行ログ105を解析する。例えば、ログ解析部152は、ソースコードの実行時に、ソースコードの各行を何回通過したか(実行されたか)をスニペット毎に算出する。スニペット103の利用量(利用回数、実行実績)を算出できるのであれば、実行ログ105の解析以外の方法を用いてもよい。スニペット103の利用量は、そのスニペットが過去にどれだけの既存システムで使用されたかを示す情報として利用できる。本実施例では、画面部品の位置関係および画面部品の属性から抽出されたスニペットの候補の中から、より多く使用されたスニペットをプログラマへ提供する。
The
スニペット類似度判定部153は、スニペット抽出部151で抽出されたスニペット同士の類似度を判定する。類似度が所定値以上のスニペット(同一スニペットを含む。)は一つのスニペットとして統合される。
The snippet
画面部品情報抽出部154は、既存画面HTML情報102から全ての画面部品について画面部品情報を抽出する。画面部品情報には、例えば、同一画面に存在する他の画面部品との位置関係と、画面部品の属性情報とが含まれる。画面情報間の位置関係は、例えば、DOM(Document Object Model)から、または、画面部品の画面上の座標から、求めることができる。画面部品の属性情報は、例えば、画面部品の種類、画面部品のラベル(名称)のいずれかまたは両方を含む。画面部品の種類には、例えば「ボタン」、「表」などがある。「ラベル」には、例えば「検索」、「カートに追加」などがある。
The screen component
スニペット利用状況作成部155は、グループ化されて統合されたスニペットの利用状況に関する情報109(図15で後述)を作成する。スニペット利用状況情報109は、例えば、スニペットが利用された回数(カバレッジ)、そのスニペットに対応するイベント、そのスニペットの前に実行される他のスニペット、そのスニペットに関する画面部品などが記憶される。
The snippet usage
フロー候補生成部110は、既存システムの画面から抽出可能なイベントフローを生成する。フロー候補生成部110は、条件に合致するスニペットを抽出して所定の順序に配置することにより、イベントフローの候補を生成する。イベントフローの候補は、少なくとも一つのスニペットを含んでいればよく、必ずしも複数のスニペットを含んでいる必要はない。スニペットを一つだけ含むイベントフロー候補もある。
The flow
例えば、フロー候補生成部110は、イベントフローを構成するスニペットの条件(イベント、イベントに対応する画面部品の属性(名称)、イベントに対応する画面部品と同一画面にある他の画面部品の位置関係)を満たすスニペットのうち、利用量が所定値以上のスニペットをイベントフローの候補を構成するスニペットとして選択する。
For example, the flow
例えば、「ボタンをクリック」というイベントについて、スニペットA,Bが関連付けられており、スニペットAの方がスニペットBよりも利用量が多い場合は、スニペットAが選択される。さらに、スニペットBの後でスニペットCが発生する確率が高い場合、スニペットAの次にスニペットCを実行するというイベントフロー候補(A→C)が生成される。スニペットCの実行される確率が低い場合は、スニペットAだけが選択され、スニペットAだけを含むイベントフロー候補が生成される。 For example, if snippets A and B are associated with the event "button click" and snippet A is used more than snippet B, then snippet A is selected. Furthermore, if there is a high probability that snippet C will occur after snippet B, an event flow candidate (A→C) in which snippet C is executed next to snippet A is generated. If the probability that snippet C will be executed is low, only snippet A is selected, and an event flow candidate that includes only snippet A is generated.
画面部品フロー生成部157は、新規画面HTML情報111に適合するイベントフロー候補を選択し、選択したイベントフロー候補をコンピュータ端末に表示させることでプログラマへ提供する。
The screen component
図2は、画面設計情報生成システム1のハードウェア構成を示す。画面設計情報生成システム1は、例えば、プロセッサ11、メモリ12、記憶装置13、ユーザインターフェース部14、通信部15を備える計算機として構成される。図中、プロセッサを「CPU」と、ユーザインターフェースを「UI」と、それぞれ表示する。
FIG. 2 shows the hardware configuration of the screen design
メモリ12は主記憶装置であり、所定の機能151~158,160を実現するための所定のコンピュータプログラムを記憶する。記憶装置13は補助記憶装置であり、所定の機能151~158,160を実現する際に使用される管理情報とデータベースなどを記憶する。プロセッサ11は「プロセッサ」の一例である。メモリ12および記憶装置13は「メモリ」の一例である。メモリ12の記憶内容と記憶装置13の記憶内容は、図3,図4で後述する。
The
ユーザインターフェース部14は、画面設計情報生成システム1のユーザであるプログラマとの間で情報を交換する装置である。ユーザインターフェース部14は、キーボードなどの入力装置2と、モニタディスプレイなどの出力装置3とに接続される。入力装置2からの情報は、ユーザインターフェース部14を介して画面設計情報生成システム1に入力される。画面設計情報生成システム1からの情報は、ユーザインターフェース部14を介して出力装置3へ出力される。
The
通信部15は、画面設計情報生成システム1が他の情報機器と通信するための通信装置である。通信部15は、通信ネットワークCNを介して他の情報機器と双方向通信可能に接続される。
The
他の情報機器には、例えば、コンピュータ端末4、ストレージシステム5がある。コンピュータ端末4はプログラマの使用する端末であり、ユーザ端末と呼ぶこともできる。プログラマは、コンピュータ端末4を用いて、画面設計情報生成システム1の提供する画面設計情報生成支援サービスを利用し、生成したソースコードを画面設計情報生成システム1へ登録する。コンピュータ端末4は、例えば、プロセッサ、メモリ、ユーザインターフェース部、通信部(いずれも図示せず)を備える。一つの画面設計情報生成システム1に複数のコンピュータ端末4を接続することができる。複数のコンピュータ端末4は共同して新規画面の画面設計情報を作成することもできるし、あるいは、それぞれ別々の新規画面の画面設計情報を作成することもできる。
Other information devices include, for example, a
ストレージシステム5は、例えば、フラッシュメモリ、ハードディスク、磁気テープ、光磁気ディスクなどを備えたファイル共有システムのように構成される。記憶装置13に記憶される情報の一部または全部をストレージシステム5に記憶させてもよい。なお、図示は省略するが、複数の画面設計情報生成システム1が一つのストレージシステム5を共有する構成でもよい。
The
記憶媒体MMは、不揮発性メモリまたは電池でバックアップされた揮発性メモリであり、画面設計情報生成システム1に接続することができる。記憶媒体MMは、画面設計情報生成システム1のメモリ12または記憶装置13からコンピュータプログラムまたはデータを読みだして非一時的に記憶することができる。記憶媒体MMを図外の他の計算機に接続し、記憶媒体MMに記憶されたコンピュータプログラムおよびデータを他の計算機のメモリまたは記憶装置(いずれも図示せず)に転送することもできる。
The storage medium MM is a nonvolatile memory or a volatile memory backed up by a battery, and can be connected to the screen design
図3は、メモリ12に記憶されるコンピュータプログラムの例を示す。メモリ12には、例えば、スニペット抽出部151、ログ解析部152、類似度判定部153、画面部品情報抽出部154、スニペット利用状況作成部155、フロー候補生成部156、画面部品フロー生成部157、フロー候補表示部158、ソースコード生成部160といった各機能を実現するための所定のコンピュータプログラムが記憶されている。
FIG. 3 shows an example of a computer program stored in
スニペット抽出部151は、既存ソースコード情報101から所定の観点でスニペット情報103(スニペット103とも呼ぶ。)を抽出する機能を持つ。ログ解析部152は、既存ソースコード情報101のログ情報105を解析し、カバレッジ情報106を出力する。
The
スニペット類似度判定部153は、抽出された各スニペットの類似度を判定し、スニペット類似度情報107を生成する。スニペットの類似度は、例えば、スニペットに含まれる文字列またはトークン列を比較することで算出される。スニペット類似度情報107は、図13で後述するように、例えば、比較対象のスニペットを表の縦横に並べ、縦の列と横の行が交差する各セルに類似度を格納して構成される。
The snippet
画面部品情報抽出部154は、既存HTML情報102を解析することにより、画面部品情報108を抽出する。画面部品情報抽出部154は、既存HTML情報102の各画面部品について、例えば、同一画面に存在する他の画面部品との位置関係と画面部品の属性(種類、ラベルなど)とを取得して、画面部品情報108を抽出する。スニペット利用状況作成部155は、スニペット利用状況情報109を作成する。
The screen component
フロー候補生成部156は、イベントフロー候補を生成し、イベントフロー候補の一覧情報110を出力する。
The flow
フロー候補表示部158は、新規作成対象の画面についてのイベントフロー候補をコンピュータ端末4に送信して、コンピュータ端末4の画面に表示させる機能を持つ。ソースコード生成部160は、プログラマがイベントフロー候補を使用してソースコードを作成するための機能を持つ。プログラマがコンピュータ端末4を用いて作成した新規画面のソースコードは、既存ソースコード情報101の一部として画面設計情報生成システム1に保存される。
The flow
図4は、記憶装置13に記憶される情報の例を示す。記憶装置13は、例えば、既存ソースコード情報101、既存画面HTML情報102、スニペット情報103、スニペット依存関係情報104、ログ情報105、カバレッジ情報106、スニペット類似度情報107、画面部品情報108、スニペット利用状況情報109、フロー候補一覧情報110、新規画面HTML情報111、イベントフロー候補情報112、出力ソースコード情報120を記憶する。以下、スニペット情報をスニペットと略記するように、「情報」という語句を省略する場合がある。
FIG. 4 shows an example of information stored in the
カバレッジ情報106は、抽出されたスニペットの利用量を示す情報である。フロー候補一覧情報110は、既存画面の情報(既存ソースコードおよび既存画面HTMLからなる情報)から抽出されたイベントフローの候補を一覧で示す情報である。出力ソースコード情報120は、イベントフロー候補情報112に基づいてプログラマにより作成されたソースコードである。
図5は、画面設計情報生成システム1の機能間の関係と全体の流れを示す。主な流れは、図面中央部のスニペット抽出部151、スニペット利用状況作成部155、フロー候補生成部156、画面部品フロー生成部157、フロー候補表示部158、ソースコード生成部160である。
FIG. 5 shows the relationship between functions and the overall flow of the screen design
スニペット抽出部151は、既存システムのソースコード101からスニペット103を抽出する。さらに、スニペット抽出部151は、既存ソースコード101の構造情報を解析することにより、スニペット間の依存関係104を抽出する。
The
スニペット類似度判定部153は、各スニペット103の類似度を算出し、スニペット類似度107を出力する。
The snippet
ログ解析部152は、ログ105を解析してカバレッジ106を生成する。画面部品抽出部154は、既存画面HTML102を解析して画面部品108を抽出する。
The
スニペット利用状況作成部155は、スニペット103と、スニペット依存関係104と、スニペット類似度107と、カバレッジ106と、画面部品108とに基づいて、スニペット利用状況109を作成する。
The snippet usage
フロー候補生成部156は、スニペット利用状況109に基づいてフロー候補一覧110を生成する。画面部品フロー生成部157は、新規画面HTML111とフロー候補一覧110とに基づいてイベントフロー候補112を生成する。
The flow
フロー候補表示部158は、イベントフロー候補112をユーザインターフェース部14を介してプログラマに提供する。ソースコード生成部160は、イベントフロー候補の中からプログラマにより選択されたイベントフローと、プログラマから入力された初期値などに基づいて新規画面HTML111のソースコード120を生成する。
The flow
図6は、既存のソースコード情報101の例である。ソースコードの例1010からは、コメント、関数、変数の依存関係に基づいて、複数のスニペット101000,101001,101002,101003,101004,101005,101006,101007を抽出することができる。図6に示すスニペットは、説明のための例であって、本開示は図6に示されるスニペットに限定されない。
FIG. 6 is an example of existing
図7は、既存画面HTML情報102の例1020である。既存画面の描画を制御する既存画面HTMLの例1020には、複数の画面部品102000,102001,102002,102003,102004,102005,102006,102010,102011,102012,102013,102020,102021,102030,102031が含まれている。図7に示すように、既存画面HTMLの例1020には、例えば、テキストや数字の入力欄を示す画面部品、表を示す画面部品、表を前後のページに切り替えるボタンを示す画面部品、お気に入りに追加するボタンを示す画面部品、カートへ追加するボタンを示す画面部品などが含まれている。図7に示す画面部品は、説明のための例であって、本開示は図7に示すされる画面部品に限定されない。
FIG. 7 is an example 1020 of the existing
図8は、既存の画面HTML情報102により表示される画面例1021である。画面例1021は、商品選択画面と商品一覧表とに大別される。
FIG. 8 is an
商品選択画面は、画面部品102110,102111,102112,102113,102114,102115,102116を含む。これら画面部品は、図4に示す既存画面HTML例1020の画面部品102000,102001,102002,102003,102004,102005,102006に対応する。
The product selection screen includes
商品一覧表は、表10213、詳細10214、画像10215を含む。表10213は、画面部品102120,102121,102123,102130,102131,102132,102133,102134,102135を含む。表10213には、複数の商品の行202136,102137が表示されている。
The product list includes a table 10213,
詳細10214は、画面部品102140,102141を含み,1つの行102142が表示されている。
画面例1021の一番には、「お気に入りに追加」ボタン102160と、「カートに追加」ボタン102161が表示されている。
At the top of the screen example 1021, an "Add to Favorites"
図9は、スニペット情報103の例1030を示す。スニペット情報(スニペット)103の例1030は、例えば、スニペット識別子(スニペットID)103001、画面名103002、画面部品103003、イベント103004、ソースコード103005、行番号103006、コード断片103007を有する。
FIG. 9 shows an example 1030 of
スニペットID103001は、画面設計情報生成システム1で管理する各スニペットを一意に特定する情報である。画面名103002は、スニペットに対応する画面の名称である。画面名には、例えば「商品検索画面」などがある。
The
画面部品103003は、スニペットに対応する画面部品を示す情報である。イベント103004は、スニペットに対応するイベントを特定する情報である。画面部品103003が操作されるとイベント103004が発生する。
ソースコード103005は、スニペットが切り出された元のソースコードを示す情報である。行番号103006は、スニペットの範囲をソースコード103005の行番号で特定する。コード断片103007は、スニペットの内容を示す。
図9の例1030では、3つのスニペットを示す3つの行103051,103052,103053が示されている。なお、各図中の記載内容は、それぞれの図中での説明に用いられるもので、他の図との整合性は意識していない。ある図の記載内容と他の図の記載内容が正確に一致していない場合でも、いわゆる当業者であれば、本開示の画面設計情報生成システム1を実現することができる。
In example 1030 of FIG. 9, three
図10は、スニペット間の依存関係を示す情報104の例1040である。スニペット依存関係情報104の例1040は、例えば、先に実施されるスニペットのID104001(前スニペットID)、その次に実施されるスニペットのID104002(後スニペットID)、前スニペットIDと後スニペットIDとの関係104003を有する。スニペット間の関係104003には、例えば「順序(時系列順)」、「エラーフロー」がある。
FIG. 10 is an example 1040 of
図11は、ログ情報105の例1050である。ログ情報例1050は、例えば、ソースコード105001、実行された行105002を備える。ログ情報例1050には、3つの行105051,105052,105053が示されている。
FIG. 11 is an example 1050 of the
図12は、カバレッジ情報106の例1060である。カバレッジ情報例1060は、例えば、スニペットID106001、カバレッジの値106002を備える。カバレッジ情報例1060には、3つの行106051,106052,106053が示されている。
FIG. 12 is an example 1060 of
図13は、スニペット間の類似度を管理するスニペット類似度情報107の例1070である。スニペット類似度情報例1070は、例えば、各スニペットのIDを表の縦107001~107007と横107051~107057に配置し、行と列の交差した箇所に類似度を格納している。例1070では、類似度を小数点付きで表現しているが、整数でもよい。スニペット類似度の例1070は、類似度が大きいスニペット同士は類似しており、類似度の小さいスニペット同士は類似していないということを示している。
FIG. 13 is an example 1070 of
図14は、画面部品情報108の例1080である。画面部品情報例1080は、例えば、画面部品の設けられる画面を特定する情報108001、画面部品の種類を特定する情報108002、同一画面に存在する他の画面部品との位置関係108003、情報108002で特定された画面部品の属性108004を備えている。
FIG. 14 is an example 1080 of the
他の画面部品との位置関係108003は、例えば、「表」などの他の画面部品の種類、他の画面部品との位置関係(同一DOMであって、上側に位置するなど)である。画面部品の属性108004は、例えば、ラベル名などである。
The positional relationship with
図15は、スニペットの利用状況を示す情報109の例である。スニペット利用状況情報109の例1090は、例えば、スニペットのID109001、スニペットの利用量109002、類似するスニペットのID109003、スニペットが呼び出されるイベントを特定する情報109004、そのスニペットの後に発生するスニペットの情報109005、同一画面内の画面部品についての情報109006、対象の画面部品の情報109007がある。スニペット利用状況情報例1090には、3つの行109051,109052,109053が示されている。
FIG. 15 is an example of
イベント109004には、例えば、スニペットに関連するイベントの種類と、そのイベントが発生したときにスニペットが呼び出される確率が記憶される。スニペットの後に発生するスニペットの情報(「事後発生)と図15では表記されている。)109005は、例えば、スニペットID109001で特定されるスニペットの後に実行される可能性のあるスニペットのIDと、その発生確率と、発生の関係を示す。発生の関係には、時系列順での発生、エラー処理による発生がある。
The
同一画面内の画面部品についての情報109006には、例えば、同一画面内の他の画面部品の種類、スニペットが呼び出されるイベントと関係する確率、画面内での位置関係などが記憶される。対象画面部品の情報109007には、イベント109004の発生に関する画面部品についての情報、すなわち例えば、画面部品の種類およびラベル名が記憶される。
図16は、フロー候補の一覧を示す情報110の例1100である。フロー候補一覧情報の例1100は、例えば、イベントフローを特定するID110001、イベント110002、フロー110003、同一画面内の画面部品110004、対象画面部品110005、優先度110006を備える。
FIG. 16 is an example 1100 of
イベント110002は、イベントフローの発生起点となるイベントを特定する情報である。フロー(イベントフロー)110003は、イベントが発生すると呼び出される一つまたは複数のスニペットをその実行順番と共に示す情報である。同一画面内の画面部品110004は、イベント110002を発生させる対象画面部品110005と同一画面内にある他の画面部品の種類を示す情報である。
The
優先度110006は、ID110001で特定されるイベントフローが選択される際の優先度を示す情報である。図16では、一つの行110051だけが示されているが、実際には多くのイベントフローが抽出されて管理される。
そのため、特定の画面部品の配置おいて特定のイベントが発生した場合に実行されるイベントフロー110003が複数存在する場合があり得る。複数のイベントフロー110003が検出された場合、画面設計情報生成システム1は、より大きい優先度110006を持つイベントフローを選択する。画面設計情報生成システム1は、最も大きな優先度を持つイベントフローを一つだけ選択してプログラマへ提案してもよいし、優先度の大きい順に所定数のイベントフローを選択してプログラマへ提案してもよい。
Therefore, there may be multiple event flows 110003 that are executed when a specific event occurs in the arrangement of a specific screen component. If multiple event flows 110003 are detected, the screen design
図17は、新規に作成される画面の構成情報(画面HTML情報)111の例1110である。画面例1110には、例えば、各種ボタン、入力欄、表などの、複数の画面部品111000,111001,111002,111003,111004,111005,111010,111011,111012,111013,111020,111030,111031が含まれている。
FIG. 17 is an example 1110 of configuration information (screen HTML information) 111 of a newly created screen. The screen example 1110 includes a plurality of
図18は、新規に作成される画面HTML情報111により表示される画面例1111である。画面例1111では、その上側の領域でユーザが商品を検索し、その下側の領域で検索結果が表で示される。ユーザは、検索結果の中からお気に入りの商品を「お気に入り」に追加したり、購入を希望する商品を「カート」へ追加したりする。ここでのユーザとは、新規画面HTML情報例1111により提供されるサービス(オンラインショップなど)を利用する者である。
FIG. 18 is an
画面例1111は、商品を検索するための画面部品111110,111111,111112,111113,111114,111115と、検索結果を切替表示するための画面部品111120,111121,111122,111123と、表の画面部品11113,111130,111131,111132,111133と、ユーザのお気に入りに追加するための画面部品111140と、ユーザがカートに追加するための画面部品111141とを含む。なお、カートへ追加するボタン111141をユーザが操作すると、図示せぬ商品購入画面に切り替わる。
Screen example 1111 includes
図19は、イベントフロー候補情報112の例1120である。イベントフロー候補情報の例1120は、例えば、イベントフローID112001、イベントの発生する画面112002、イベントの発生する画面部品112003、イベント内容112004、イベントフローの内容112005を備える。イベントフロー候補情報の例1120には、一つの行112051が示されている。
FIG. 19 is an example 1120 of event
図20は、画面設計情報生成システム1を利用するユーザ(プログラマ)へ提供される情報の例31である。出力画面例31は、ユーザインターフェース部14から出力装置3へ送信されて表示される。あるいは、出力画面例31は、通信部15を介してコンピュータ端末4へ送信され、端末画面に表示される。
FIG. 20 is an example 31 of information provided to a user (programmer) who uses the screen design
出力画面例31は、イベントについての情報を示すイベント情報表示部311と、イベントフロー候補の一覧を示すイベントフロー候補一覧表示部312と、スニペットに関する情報を示すスニペット表示部313と、ボタン314を含む。
The output screen example 31 includes an event
イベント情報表示部311は、例えば、画面31100、画面部品31101、イベント31102を含む。イベント情報表示部311には、一つの行31151が示されている。画面31100はイベントの発生する画面の種類を示す。画面部品31101は、イベントを発生させる画面部品の種類を示す。イベント31102は、イベントの発生する操作(ユーザ操作)の種類を示す。
The event
イベントフロー候補一覧表示部312は、例えば、イベントフローを選択するための選択部31200、イベントフローを識別するイベントフローID31201、イベントの内容を概略的に示すイベントフロー31202を備える。イベントフロー31202では、一つまたは複数のスニペットIDと、複数スニペット間の実行順序だけを記載することができる。
The event flow candidate
スニペット表示部313は、選択部31200で選択されたイベントフローを構成するスニペットの詳細を表示する。スニペット表示部313では、スニペットID31300,31301と、スニペットの内容(ソースコード断片)31350,31351が表示される。
The
プログラマは、出力装置3(またはコンピュータ端末4の端末画面)に表示されたイベントフロー候補の情報を参考にして、新規画面HTMLで使用されるソースコードを作成する。 The programmer creates a source code to be used in the new screen HTML by referring to the information of the event flow candidates displayed on the output device 3 (or the terminal screen of the computer terminal 4).
図21は、イベントフロー候補の情報を用いて新たに作成されるソースコード情報120の例1200である。ソースコード情報の例1200は、複数のソースコード断片120000~120007を含んでいる。
FIG. 21 is an example 1200 of
図21上側のソースコード断片120001,120002は、図20でプログラマに提供されたイベントフローを利用して作成されたものである。他のソースコード断片についても同様に、プログラマは、新規画面HTMLとイベントに基づいて画面設計情報生成システム1から提供されるイベントフロー(不図示)を利用して、効率よく新規ソースコードを作成することができる。
Source code fragments 120001 and 120002 in the upper part of FIG. 21 were created using the event flow provided to the programmer in FIG. Similarly, for other source code fragments, the programmer efficiently creates new source code by using the event flow (not shown) provided from the screen design
図22は、スニペット抽出部151が既存のソースコード101からスニペット103を抽出する処理を示す。
FIG. 22 shows a process in which the
ステップ15100:スニペット抽出部151は、既存ソースコード情報101の全てのファイルを読み込む。
Step 15100: The
ステップ15101:ループ1の開始。スニペット抽出部151は、既存ソースコード情報101の全てのファイルに対して以下の所定ステップを実行する。
Step 15101: Start of
ステップ15102:スニペット抽出部151は、既存ソースコード情報101のファイルの画面名を取得する。
Step 15102: The
ステップ15103:ループ2の開始。スニペット抽出部151は、ステップ15101のファイルの全ての画面部品に対して以下の所定ステップを実行する。
Step 15103: Start of
ステップ15104:ループ3の開始。スニペット抽出部151は、ステップ15103の画面部品の、全ての処理のあるイベントに対して以下の所定ステップを実行する。
Step 15104: Start of
ステップ15105:スニペット抽出部151は、ステップ15104のイベントに対する処理行を、ステップ15101のファイルから取得する。
Step 15105: The
ステップ15106:スニペット抽出部151は、ステップ15105で取得した処理行を、特定の条件に従い分割する。
Step 15106: The
ステップ15107:ループ4の開始。スニペット抽出部151は、ステップ15106の分割した処理行群の単位に対して以下の所定ステップを実行する。
Step 15107: Start of
ステップ15108:スニペット抽出部151は、スニペット情報103に一列を追加し、任意のIDをID列103001に、ステップ15102の画面名を画面名列103002に、ステップ15103の画面部品情報を画面部品列103003に、ステップ15104のイベントをイベント列103004に、ステップ15101で選択したファイルのパスをソース列103005に、ステップ15106で分割した行の番号を行番号列103006に、行の文字列をコード断片列103007に、それぞれ書き込む。このステップの後で、ループ4は終了。
Step 15108: The
ステップ15109:ループ5の開始。スニペット抽出部151は、ステップ15106の分割した処理行を組み合わせる。
Step 15109: Start of
ステップ15110:スニペット抽出部151は、スニペット依存関係情報104のID前列104001とID後列104002に、ステップ15106の処理行群に対応するステップ15108で設定した103001列の値を、関係列1004003に、その関係が順序関係である場合は値「順序」を、その関係がエラー処理である場合は値「エラー」を書き込む。その後、ループ5,ループ3,ループ2,ループ1の順でループ終了し、本処理は正常終了する。
Step 15110: The
図23は、ログ解析部152がログ105を解析する処理を示す。
FIG. 23 shows a process in which the
ステップ15200:ログ解析部152は、スニペット情報103の全ての列を読み込む。
Step 15200: The
ステップ15201:ログ解析部152は、ログ情報105の全ての列を読み込む。
Step 15201: The
ステップ15202:ループ1の開始。ログ解析部152は、スニペット情報103の全ての行に対して以下の所定ステップを実行する。
Step 15202: Start of
ステップ15203:ログ解析部152は、ステップ15202で選択した行のソース列103005の値とソースコード列106001の値を比較し、値が同じ行をログ情報105より取得する。
Step 15203: The
ステップ15204:ループ2の開始。ログ解析部152は、ステップ15201で取得したログ情報105の全ての行に対して以下の所定ステップを実行する。
Step 15204: Start of
ステップ15205:ログ解析部152は、ステップ15202での行番号列10300とステップ15204の行の実行行列106002を比較し、一致する行数を計算する。この後、ループ2終了。
Step 15205: The
ステップ15206:ログ解析部152は、カバレッジ情報106に1列を追加し、ステップ15202で取得した行のID列103001の値をID列106001に、ステップ15205で計算した行数の総和を値列106002に出力する。この後、ループ1終了。そして本処理は正常終了する。
Step 15206: The
図24は、類似度判定部153が類似度を判定する処理を示す。
FIG. 24 shows a process in which the
ステップ15300:類似度判定部153は、スニペット情報103の各行を読み込む。
Step 15300: The
ステップ15301:ループ1の開始。類似度判定部153は、スニペット情報103の全ての行の組み合わせに対して以下の所定ステップを実行する。
Step 15301: Start of
ステップ15302:類似度判定部153は、ステップ15301で取得した2つの行について、コード断片列103007の一致する行数の和を行数の和で割った値を計算する。
Step 15302: The
ステップ15303:類似度判定部153は、ステップ15301で取得した2つの行のID列103001の値に対応する、スニペット類似度情報1070のセルに、ステップ15302で計算したパーセンテージを書き込む。この後、ループ1終了。そして、本処理は正常終了する。
Step 15303: The
図25は、画面部品抽出部154が画面部品情報を抽出する処理を示す。
FIG. 25 shows a process in which the screen
ステップ15400:画面部品抽出部154は、既存画面HTML情報102の全てのファイルを読み込む。
Step 15400: The screen
ステップ15401:ループ1の開始。画面部品抽出部154は、ステップ15400で読み込んだすべてのファイルに対して以下の所定ステップを実行する。
Step 15401: Start of
ステップ15402:画面部品抽出部154は、ステップ15401で選択したファイルから画面部品を抽出する。
Step 15402: The screen
ステップ15403:ループ2の開始。画面部品抽出部154は、ステップ15402で抽出した全ての画面部品に対して以下の所定ステップを実行する。
Step 15403: Start of
ステップ15404:画面部品抽出部154は、ステップ15401で選択したファイルから、ステップ15403で選択した画面部品の属性を抽出する。
Step 15404: The screen
ステップ15405:画面部品抽出部154は、画面部品情報108に一行を追加し、画面列108001にステップ15401で選択したファイルの画面名を、画面部品列108002にステップ15403で選択した画面部品の名前を、画面部品属性列108004にステップ15404で取得した画面部品の属性を書き込む。
Step 15405: The screen
ステップ15406:ループ3の開始。画面部品抽出部154は、部品の全ての組み合わせに対して以下の所定ステップを実行する。
Step 15406: Start of
ステップ15407:画面部品抽出部154は、ステップ15401で選択したファイルの情報に基づき、ステップ15406で選択した2つの画面部品間の関係を特定する。
Step 15407: The screen
ステップ15408:画面部品抽出部154は、画面部品情報108のステップ15404で追加した行の同じ画面の画面部品列108003に、ステップ15407で計算した画面部品間の関係を書き込む。この後、ループ3,ループ2,ループ1の順で終了。そして、本処理は正常終了する。
Step 15408: The screen
図26は、スニペット利用状況作成部155がスニペットの利用状況を作成する処理を示す。
FIG. 26 shows a process in which the snippet usage
ステップS15500:スニペット利用状況作成部155は、スニペット情報103の全ての行を取得する。
Step S15500: The snippet usage
ステップS15501:スニペット利用状況作成部155は、ステップ15500で取得したスニペット情報103の行について、その全ての行の組み合わせについて、そのID列103001の値と同じ値を行と列に持つ、スニペット類似度情報107のセルを取得し、その値が1である場合に、ID列103001の2つのIDを同じ群にいれる。
Step S15501: For the rows of the
ステップS15502:ループ1の開始。スニペット利用状況作成部155は、ステップ15501でまとめた全ての群に対して以下の所定ステップを実行する。
Step S15502: Start of
ステップS15503:スニペット利用状況作成部155は、ステップ15502で選択した群に対し、スニペット利用状況情報109に、一行書き込む。
Step S15503: The snippet usage
ステップS15504:スニペット利用状況作成部155は、ステップ15502で選択した群のID列103001の値と同じID列106001を有するカバレッジ情報106の行の値106002の総和を計算し、ステップ15503で追加したスニペット利用状況情報109の行の利用量列109002に書き込む。
Step S15504: The snippet usage
ステップS15505:スニペット利用状況作成部155は、ステップ15502で選択した群のID列103001の値と同じ値を行または列に有するスニペット類似度情報107のセルの値が一定の閾値以上である場合に、同じ値が行の場合は列の値を、同じ値が列の場合は行の値を取得し、取得した行または列の値を、ステップ15503で追加したスニペット利用状況情報109の行の類似スニペット列109003に書き込む。
Step S15505: The snippet usage
ステップS15506:スニペット利用状況作成部155は、ステップ15502で選択した群のID列103001の値と同じ値をID列103001に有するスニペット情報103の行のイベント列103003の値を所得し、その群におけるそれぞれのイベントの割合を計算し、ステップ15503で追加したスニペット利用状況情報109の行のイベント列109004に書き込む。
Step S15506: The snippet usage
ステップS15507:スニペット利用状況作成部155は、ステップ15502で選択した群のID列103001の値と、その前ID列104001の値が同じスニペット依存関係情報104の行の後ID列104002と関係列104003の情報を、ステップ15503で追加したスニペット利用状況情報109の行の事後発生列109005に書き込む。
Step S15507: The snippet usage
ステップS15508:スニペット利用状況作成部155は、ステップ15502で選択した群の画面名列103002の値及び画面部品列103003の値と同じ値を、画面列108001及び画面部品列108002に有する画面部品情報108の行を取得し、同じ画面の画面部品列108003と対象画面部品列108004の値にその群におけるそれぞれの値の割合を計算して追加し、ステップ15503で追加したスニペット利用状況情報109の行の同じ画面の画面部品列109006と対象画面部品列109007に書き込む。この後、ループ1終了し、本処理は正常終了する。
Step S15508: The snippet usage
図27は、フロー候補生成部156がフロー候補を生成する処理を示す。
FIG. 27 shows a process in which the flow
ステップS15600:フロー候補生成部156は、スニペット利用状況情報109の各行を読み込む。
Step S15600: The flow
ステップS15601:フロー候補生成部156は、ステップ15600で取得した行のイベント列109004の値を取得する。
Step S15601: The flow
ステップS15602:ループ1の開始。フロー候補生成部156は、ステップ15601で取得した全ての値に対して以下の所定ステップを実行する。
Step S15602: Start of
ステップS15603:ループ2の開始。フロー候補生成部156は、ステップ15602及びステップ15606で取得した全ての値に対して以下の所定ステップを実行する。
Step S15603: Start of
ステップS15604:フロー候補生成部156は、ステップ15603の値に含まれる割合の数値が一定の閾値を超える、スニペット利用状況情報109の行を抽出する。
Step S15604: The flow
ステップS15605:フロー候補生成部156は、ステップ15604で抽出した行について、類似スニペット列109003に類似のスニペットが指定される場合は、より利用量列109002の値が大きい行を選択する。
Step S15605: For the row extracted in
ステップS15606:フロー候補生成部156は、事後発生列109005より、その数値が一定の閾値を超える場合に、次のスニペットIDを取得し、その関係とともにフローとして保持する。この後、ループ2は終了する。
Step S15606: The flow
ステップS15607:フロー候補生成部156は、ループ2のステップ15606の全てで条件に当てはまるスニペットID値がなく、かつステップ15603で未処理の値が残っていないか判定する。「はい」と判定すると、ステップ15603へ戻る。「いいえ」と判定すると、ステップS15608へ進む。
Step S15607: The flow
ステップS15608:フロー候補生成部156は、フロー候補一覧情報110に一行を追加し、ID列110001に連番を、イベント列110002にステップ15601で取得したイベントを、フロー列110003にステップ15606で作成したフローを、同じ画面の画面部品列110004に同じ画面の画面部品列109006から取得した値を、対象画面部品列110005に対象画面部品列109007から取得した値を、それぞれ書き込む。この後、ループ1は終了する。そして、本処理は正常終了する。
Step S15608: The flow
図28は、画面部品フロー生成部157が画面部品フローを生成する処理を示す。
FIG. 28 shows a process in which the screen component
ステップ15700:画面部品フロー生成部157は、フロー候補一覧情報110の全ての行を読み込む。
Step 15700: The screen component
ステップ15701:ループ1の開始。画面部品フロー生成部157は、ステップ15700で取得したフロー候補一覧情報110の全ての行に対して以下の所定ステップを実行する。
Step 15701: Start of
ステップ15702:画面部品フロー生成部157は、ステップ15701で選択したフロー候補一覧情報110のフロー列110003の全てのID値と同じ値の、スニペット情報103のID列103001を有する行の画面名列103002の値に対応する、新規HTML情報102のファイルの全ての画面部品を読み込む。
Step 15702: The screen component
ステップ15703:ループ2の開始。画面部品フロー生成部157は、ステップ15702で取得した全ての画面部品の全てのイベントに対して以下の所定ステップを実行する。
Step 15703: Start of
ステップ15704:画面部品フロー生成部157は、ステップ15703で選択したイベントと、ステップ15702で選択した行のイベント列112004の値を比較する。
Step 15704: The screen component
ステップ15705:画面部品フロー生成部157は、ステップ15704で比較した値は一致するか判定する。
Step 15705: The screen component
ステップ15706:画面部品フロー生成部157は、イベントフロー候補情報112のID列112001に列番を、画面列112002にステップ15702で取得した画面名を、画面部品列112003にステップ15702で取得した画面部品名を、イベント列112004にステップ15703で取得したイベント名を、イベントフロー列112005にステップ15701で選択したフロー候補一覧情報110の行のフロー列110003の値を、それぞれ出力する。この後、ループ2が終了し、続いてループ1も終了する。そして本処理は正常終了する。
Step 15706: The screen component
図29は、フロー候補表示部158がフロー候補をコンピュータ端末4へ表示させる処理を示す。
FIG. 29 shows a process in which the flow
ステップS15800:フロー候補表示部158は、イベントフロー候補情報112の全行を取得する。
Step S15800: The flow
ステップS15801:フロー候補表示部158は、ステップ15800で所得したイベントフロー候補情報112の全ての行に対し、イベントフロー列112005のイベントフロー値の値に対し、スニペット情報103のID列103001の値が同じ行の、ID列103001及びコード断片列103007の値を取得する。
Step S15801: The flow
ステップS15802:フロー候補表示部158は、ステップ15800で取得したイベントフロー候補情報112の全行と、ステップ15801で習得したID列103001及びコード断片列103007の値を、出力装置3に表示する。
Step S15802: The flow
図30は、ソースコード生成部160がソースコード情報を生成する処理を示す。
FIG. 30 shows a process in which the source
ステップ16000:ソースコード生成部160は、入力装置2より、ステップ15802において出力装置3に表示したイベントフロー候補に対する、選択列31200において選択されたイベントフロー候補のID31201を取得する。
Step 16000: The source
ステップ16001:ソースコード生成部160は、ステップ16000で取得したIDと同じID列112001の値を有するイベントフロー候補情報112の行の、イベントフロー列112005のイベントフロー値の値に従い、その含むスニペットIDに対し、スニペット情報103のID列103001が同じ行のコード断片列103007の値で置き換えた文字列を生成する。
Step 16001: The source
ステップ16002:ソースコード生成部160は、ステップ16001にて作成した文字列を出力ソースコード情報120に出力する。
Step 16002: The source
このように構成される本実施例によれば、これから作成しようとする新規画面に複数の画面部品がある場合に、暗黙的な画面部品間の関係を考えてイベントフローをフルスクラッチで作成する必要がなく、新画面の設計情報(イベントフロー)を効率的に作成することができる。 According to this embodiment configured in this way, when there are multiple screen parts in a new screen to be created, it is necessary to create an event flow from scratch by considering the implicit relationships between the screen parts. It is possible to efficiently create design information (event flow) for new screens.
本実施例では、実績のある既存ソースコード情報を使って、作成対象の新画面に似た画面のソースコード断片を抽出して再利用できるため、プログラマは効率的に新画面を作成することができる。 In this example, the source code fragments of screens similar to the new screen to be created can be extracted and reused using existing source code information with a proven track record, allowing programmers to efficiently create new screens. can.
なお、本発明は上述の実施形態に限定されず、様々な変形例が含まれる。上記実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることもできる。また、ある実施形態の構成に他の実施形態の構成を加えることもできる。また、各実施形態の構成の一部について、他の構成を追加・削除・置換することもできる。 Note that the present invention is not limited to the above-described embodiments, and includes various modifications. The above embodiments have been described in detail to explain the present invention in an easy-to-understand manner, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment. Moreover, the configuration of another embodiment can be added to the configuration of one embodiment. Further, other configurations can be added, deleted, or replaced with a part of the configuration of each embodiment.
本発明の各構成要素は、任意に取捨選択することができ、取捨選択した構成を具備する発明も本発明に含まれる。さらに特許請求の範囲に記載された構成は、特許請求の範囲で明示している組合せ以外にも組み合わせることができる。 Each component of the present invention can be selected arbitrarily, and inventions having selected configurations are also included in the present invention. Furthermore, the configurations described in the claims can be combined in combinations other than those specified in the claims.
1:画面設計情報生成システム、2:入力装置、3:出力装置、4:コンピュータ端末、5:ストレージシステム、101:既存ソースコード情報、102:既存画面HTML、103:スニペット情報、104:スニペット依存関係情報、105:ログ情報、106:カバレッジ情報、108:画面部品情報、109:スニペット利用状況情報、110:フロー候補一覧情報、111:新規画面HTML情報、112:イベントフロー候補情報、120:出力ソースコード情報、151:スニペット抽出部、152:ログ解析部、153:スニペット類似度判定部、154:画面部品情報抽出部、155:スニペット利用状況作成部、156:フロー候補生成部、157:画面部品フロー生成部、158:フロー候補表示部、160:ソースコード生成部
1: Screen design information generation system, 2: Input device, 3: Output device, 4: Computer terminal, 5: Storage system, 101: Existing source code information, 102: Existing screen HTML, 103: Snippet information, 104: Snippet dependence Relationship information, 105: Log information, 106: Coverage information, 108: Screen component information, 109: Snippet usage status information, 110: Flow candidate list information, 111: New screen HTML information, 112: Event flow candidate information, 120: Output Source code information, 151: Snippet extraction unit, 152: Log analysis unit, 153: Snippet similarity determination unit, 154: Screen component information extraction unit, 155: Snippet usage status creation unit, 156: Flow candidate generation unit, 157: Screen Component flow generation unit, 158: Flow candidate display unit, 160: Source code generation unit
Claims (8)
前記画面設計情報は、イベントに対して呼び出される一連の処理を含み、
前記画面ページには、イベントに関連付けられる画面部品が少なくとも一つ含まれており、
少なくとも一つのプロセッサと、
前記プロセッサにより使用される少なくとも一つのメモリと、
を備え、
前記メモリは、画面ページに関する前記画面設計情報を生成する所定のコンピュータプログラムを少なくとも記憶しており、
前記プロセッサは、前記所定のコンピュータプログラムを実行することにより、
既存ソースコードから抽出されたコードスニペットとイベントに関するイベント情報と前記イベントに関する画面部品の情報とが対応付けられたスニペット情報を生成し、
前記既存ソースコードに対応する既存画面構成情報から各画面部品の位置関係および属性を示す画面部品情報を抽出し、
前記スニペット情報と前記画面部品情報と前記既存ソースコードの構造情報から抽出される前記スニペット情報間の依存関係とに基づいて、スニペットの利用状況を示すスニペット利用状況情報を生成し、
前記スニペット利用状況情報に基づいて、前記コードスニペットを所定の順序で実行する画面設計情報の候補を生成し、前記メモリに記憶させる
画面設計情報生成システム。 A screen design information generation system that generates screen design information for a screen page,
The screen design information includes a series of processes that are called in response to an event,
The screen page includes at least one screen component associated with an event,
at least one processor;
at least one memory used by the processor;
Equipped with
The memory stores at least a predetermined computer program that generates the screen design information regarding the screen page,
By executing the predetermined computer program, the processor:
Generating snippet information in which a code snippet extracted from the existing source code, event information regarding the event, and screen component information regarding the event are associated;
Extracting screen component information indicating the positional relationship and attributes of each screen component from the existing screen configuration information corresponding to the existing source code,
Generating snippet usage status information indicating the usage status of the snippet based on the snippet information, the screen component information, and the dependency relationship between the snippet information extracted from the structure information of the existing source code,
A screen design information generation system that generates screen design information candidates for executing the code snippets in a predetermined order based on the snippet usage status information and stores the screen design information candidates in the memory.
作成対象の新規画面ページを取得すると、前記新規画面ページで発生するイベントと前記新規画面ページに含まれる画面部品の位置関係および属性を示す画面部品情報を抽出し、
前記スニペット利用状況情報を用いて、前記新規画面ページから抽出された前記イベントおよび画面部品情報に適合する画面設計情報の候補を選択する
請求項1に記載の画面設計情報生成システム。 By executing the predetermined computer program, the processor:
When a new screen page to be created is acquired, screen parts information indicating events occurring on the new screen page and the positional relationship and attributes of screen parts included in the new screen page is extracted;
2. The screen design information generation system according to claim 1, wherein candidates for screen design information matching the event and screen component information extracted from the new screen page are selected using the snippet usage information.
前記選択された画面設計情報の候補を所定のコンピュータ端末へ提供する
請求項2に記載の画面設計情報生成システム。 By executing the predetermined computer program, the processor:
3. The screen design information generation system according to claim 2, wherein the selected screen design information candidate is provided to a predetermined computer terminal.
請求項3に記載の画面設計情報生成システム。 The screen design information according to claim 3, wherein the processor receives screen design information created by the predetermined computer terminal based on the screen design information candidates from the predetermined computer terminal, and stores the screen design information in the memory. generation system.
前記生成されたスニペット情報同士の類似度を算出し、
前記算出された類似度が所定値以上のスニペット情報を一つのスニペット情報として統合し、
前記スニペット情報と前記画面部品情報と前記既存ソースコードの構造情報から抽出される前記スニペット情報間の依存関係と前記一つのスニペット情報として統合された他のスニペット情報とに基づいて、スニペットの利用状況を示すスニペット利用状況情報を生成し、
前記スニペット利用状況情報に基づいて、前記コードスニペットを所定の順序で実行する画面設計情報の候補を生成し、前記メモリに記憶させる
請求項1に記載の画面設計情報生成システム。 By executing the predetermined computer program, the processor:
Calculating the degree of similarity between the generated snippet information,
Integrating the snippet information for which the calculated similarity is greater than or equal to a predetermined value as one snippet information,
The usage status of the snippet is determined based on the dependency relationship between the snippet information, the screen component information, and the snippet information extracted from the structure information of the existing source code, and the other snippet information integrated as the one snippet information. Generates snippet usage information showing the
2. The screen design information generation system according to claim 1, wherein candidates for screen design information for executing the code snippets in a predetermined order are generated based on the snippet usage status information and stored in the memory.
前記生成されたスニペット情報の実行実績を抽出し、
前記スニペット情報と前記画面部品情報と前記既存ソースコードの構造情報から抽出される前記スニペット情報間の依存関係と前記スニペットの実行実績とに基づいて、スニペットの利用状況を示すスニペット利用状況情報を生成し、
前記スニペット利用状況情報に基づいて、前記コードスニペットを所定の順序で実行する画面設計情報の候補を生成し、前記メモリに記憶させる
請求項1に記載の画面設計情報生成システム。 By executing the predetermined computer program, the processor:
Extracting the execution results of the generated snippet information,
Generating snippet usage status information indicating the usage status of the snippet based on the dependency relationship among the snippet information extracted from the snippet information, the screen component information, and the structure information of the existing source code, and the execution record of the snippet. death,
2. The screen design information generation system according to claim 1, wherein candidates for screen design information for executing the code snippets in a predetermined order are generated based on the snippet usage status information and stored in the memory.
前記画面設計情報は、イベントに対して呼び出される一連の処理を含み、
前記画面ページには、イベントに関連付けられる画面部品が少なくとも一つ含まれており、
前記画面設計情報生成システムは、少なくとも一つのプロセッサと、前記プロセッサにより使用される少なくとも一つのメモリと、を備えており、
前記メモリは、画面ページに関する前記画面設計情報を生成する所定のコンピュータプログラムを少なくとも記憶しており、
前記プロセッサは、前記所定のコンピュータプログラムを実行することにより、
既存ソースコードから抽出されたコードスニペットとイベントに関するイベント情報と前記イベントに関する画面部品の情報とが対応付けられたスニペット情報を生成し、
前記既存ソースコードに対応する既存画面構成情報から各画面部品の位置関係および属性を示す画面部品情報を抽出し、
前記スニペット情報と前記画面部品情報と前記既存ソースコードの構造情報から抽出される前記スニペット情報間の依存関係とに基づいて、スニペットの利用状況を示すスニペット利用状況情報を生成し、
前記スニペット利用状況情報に基づいて、前記コードスニペットを所定の順序で実行する画面設計情報の候補を生成し、前記メモリに記憶させる
画面設計情報生成方法。 A screen design information generation method for generating screen design information of a screen page by a screen design information generation system, the method comprising:
The screen design information includes a series of processes that are called in response to an event,
The screen page includes at least one screen component associated with an event,
The screen design information generation system includes at least one processor and at least one memory used by the processor,
The memory stores at least a predetermined computer program that generates the screen design information regarding the screen page,
By executing the predetermined computer program, the processor:
Generating snippet information in which a code snippet extracted from the existing source code, event information regarding the event, and screen component information regarding the event are associated;
Extracting screen component information indicating the positional relationship and attributes of each screen component from the existing screen configuration information corresponding to the existing source code,
Generating snippet usage status information indicating the usage status of the snippet based on the snippet information, the screen component information, and the dependency relationship between the snippet information extracted from the structure information of the existing source code,
A screen design information generation method that generates screen design information candidates for executing the code snippets in a predetermined order based on the snippet usage status information and stores the screen design information candidates in the memory.
前記画面設計情報は、イベントに対して呼び出される一連の処理を含み、
前記画面ページには、イベントに関連付けられる画面部品が少なくとも一つ含まれており、
既存ソースコードから抽出されたコードスニペットとイベントに関するイベント情報と前記イベントに関する画面部品の情報とが対応付けられたスニペット情報を生成する機能と、
前記既存ソースコードに対応する既存画面構成情報から各画面部品の位置関係および属性を示す画面部品情報を抽出させる機能と、
前記スニペット情報と前記画面部品情報と前記既存ソースコードの構造情報から抽出される前記スニペット情報間の依存関係とに基づいて、スニペットの利用状況を示すスニペット利用状況情報を生成する機能と、
前記スニペット利用状況情報に基づいて、前記コードスニペットを所定の順序で実行する画面設計情報の候補を生成し、メモリに記憶させる機能と
を前記計算機上に実現させるコンピュータプログラム。 A computer program that causes a computer to function as a screen design information generation system that generates screen design information for a screen page, the computer program comprising:
The screen design information includes a series of processes that are called in response to an event,
The screen page includes at least one screen component associated with an event,
a function of generating snippet information in which a code snippet extracted from an existing source code, event information related to the event, and screen component information related to the event are associated;
a function for extracting screen component information indicating the positional relationship and attributes of each screen component from existing screen configuration information corresponding to the existing source code;
a function of generating snippet usage status information indicating the usage status of the snippet based on the snippet information, the screen component information, and the dependency relationship between the snippet information extracted from the structure information of the existing source code;
A computer program that causes the computer to realize a function of generating screen design information candidates for executing the code snippets in a predetermined order based on the snippet usage status information and storing them in a memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022132522A JP2024030005A (en) | 2022-08-23 | 2022-08-23 | Screen design information generation system, screen design information generation method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022132522A JP2024030005A (en) | 2022-08-23 | 2022-08-23 | Screen design information generation system, screen design information generation method, and computer program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024030005A true JP2024030005A (en) | 2024-03-07 |
Family
ID=90105637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022132522A Pending JP2024030005A (en) | 2022-08-23 | 2022-08-23 | Screen design information generation system, screen design information generation method, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2024030005A (en) |
-
2022
- 2022-08-23 JP JP2022132522A patent/JP2024030005A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11921715B2 (en) | Search integration | |
US10152488B2 (en) | Static-analysis-assisted dynamic application crawling architecture | |
US6240411B1 (en) | Integrating campaign management and data mining | |
JP6618461B2 (en) | Metadata management system | |
US7827478B2 (en) | Dynamic generation of form pages for accessing a database | |
EP1168218A1 (en) | Building predictive models within interactive business analysis processes | |
CN101971165A (en) | Graphic representations of data relationships | |
KR20060067812A (en) | Complex data access | |
US20070244694A1 (en) | Dictionary-content processing apparatus, content displaying system, and content displaying method | |
CN101776999A (en) | Platform for developing and implementing software system | |
US8548967B1 (en) | System for visual query and manipulation of configuration management records | |
US20110264678A1 (en) | User modification of a model applied to search results | |
US20160086499A1 (en) | Knowledge brokering and knowledge campaigns | |
CN111427577A (en) | Code processing method and device and server | |
CN107710190B (en) | Rendering content using decoupled rendering resources | |
US9330372B2 (en) | Generating an improved development infrastructure | |
US11580149B2 (en) | Data analytics systems and methods | |
CN102257490A (en) | Document information selection method and computer program product | |
CN111190965A (en) | Text data-based ad hoc relationship analysis system and method | |
CN110889013A (en) | Data association method, device, server and storage medium based on XML | |
JP2024030005A (en) | Screen design information generation system, screen design information generation method, and computer program | |
CN115469849A (en) | Service processing system, method, electronic device and storage medium | |
US11275729B2 (en) | Template search system and template search method | |
CN113392070A (en) | Online document management method, device, system, equipment and storage medium | |
JP2001134424A (en) | Method and device for preparing system parameter and computer readable storage medium recording system parameter preparation program and computer readable storage medium storing system parameter preparation data |