(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】検証プログラム、検証方法および情報処理装置
(51)【国際特許分類】
G06F 11/36 20060101AFI20240730BHJP
【FI】
G06F11/36 192
(21)【出願番号】P 2020119387
(22)【出願日】2020-07-10
【審査請求日】2023-04-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】森 洋二朗
(72)【発明者】
【氏名】浦本 貴正
(72)【発明者】
【氏名】柳澤 夕美
(72)【発明者】
【氏名】大畑 貴史
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2019-106107(JP,A)
【文献】特開2007-318688(JP,A)
【文献】特開2006-276953(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
(57)【特許請求の範囲】
【請求項1】
第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
処理をコンピュータに実行させることを特徴とする検証プログラム。
【請求項2】
前記それぞれの画面について実行した前記正規化処理の結果を比較する、処理を前記コンピュータに実行させ、
前記出力する処理は、
比較した結果を出力する、ことを特徴とする請求項1に記載の検証プログラム。
【請求項3】
前記正規化処理を実行する処理は、
さらに、前記複数の要素の要素間の相対的な大小関係を区別可能にする、ことを特徴とする請求項1または2に記載の検証プログラム。
【請求項4】
前記複数の要素は、入力項目、出力項目、リテラル、ボタンおよび画像の少なくともいずれかを表す要素を含む、ことを特徴とする請求項1~3のいずれか一つに記載の検証プログラム。
【請求項5】
前記複数の要素は、空白を表す要素を含む、ことを特徴とする請求項4に記載の検証プログラム。
【請求項6】
前記正規化処理を実行する処理は、
前記それぞれの画面について、前記複数の要素それぞれの縦位置と縦サイズとに基づき当該画面を行方向に区切って分割した領域ごとに、当該領域に桁方向に出現する要素の種別を含む要素名を羅列し、前記領域が行方向に切り替わる際に、改行を表す種別を含む要素名を挿入した画面構成情報を作成する、ことを特徴とする請求項1に記載の検証プログラム。
【請求項7】
第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
処理をコンピュータに実行させることを特徴とする検証方法。
【請求項8】
第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検証プログラム、検証方法および情報処理装置に関する。
【背景技術】
【0002】
近年、システムのオープン化やスマートデバイスへの対応などを契機に、GUIアプリの移行が活発に行われている。GUIアプリの移行にともない、画面定義を別の形式に移行する場合がある。この場合、例えば、移行前後の画面を比較して、移行後の画面構成の検証が行われる。
【0003】
先行技術としては、修正基本画面定義データと顧客画面定義データとを比較し、顧客画面定義データとは異なっている修正基本画面定義データの部分を抽出し、抽出された部分を識別可能な態様で顧客画面定義データに反映させ、変更後顧客画面定義データを生成し、顧客画面定義データから構成される画面と、変更後顧客画面データから構成される画面とを比較可能な態様で表示するものがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、システム移行にともなう画面構成の検証に作業負荷や作業時間がかかるという問題がある。例えば、作業者が移行前後の画面を目視で比較して、画面構成に誤りがないかを判断する場合、チェック漏れを招くとともに、検証にかかる作業負荷や作業時間が増大する。
【0006】
一つの側面では、本発明は、システム移行にともなう画面構成の検証を容易に行うことを可能にすることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様では、第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、前記それぞれの画面について実行した前記正規化処理の結果を出力する、検証プログラムが提供される。
【発明の効果】
【0008】
本発明の一側面によれば、システム移行にともなう画面構成の検証を容易に行うことが可能となるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる検証方法の一実施例を示す説明図である。
【
図2】
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。
【
図3】
図3は、情報処理装置101の機能的構成例を示すブロック図である。
【
図4】
図4は、第1画面の画面イメージを示す説明図である。
【
図5】
図5は、第2画面の画面イメージを示す説明図である。
【
図6】
図6は、HTMLファイルの具体例を示す説明図である。
【
図7】
図7は、画面定義情報のデータ構造例を示す説明図である。
【
図8】
図8は、正規要素テーブルのデータ構造例を示す説明図である。
【
図9】
図9は、正規化処理の一例を示す説明図(その1)である。
【
図10】
図10は、正規化処理の一例を示す説明図(その2)である。
【
図11】
図11は、正規化処理の一例を示す説明図(その3)である。
【
図12】
図12は、正規化処理の一例を示す説明図(その4)である。
【
図13】
図13は、正規化処理の一例を示す説明図(その5)である。
【
図14】
図14は、画面構成情報の出力例を示す説明図である。
【
図15】
図15は、他の正規化規則の一例を示す説明図である。
【
図16】
図16は、第1画面の画面定義情報の具体例を示す説明図である。
【
図17】
図17は、第1画面の正規化処理例を示す説明図(その1)である。
【
図18】
図18は、第1画面の正規化処理例を示す説明図(その2)である。
【
図19】
図19は、第1画面の正規化処理例を示す説明図(その3)である。
【
図20】
図20は、第1画面の正規化処理例を示す説明図(その4)である。
【
図21】
図21は、第1画面の正規化処理例を示す説明図(その5)である。
【
図22】
図22は、第1画面の正規化処理例を示す説明図(その6)である。
【
図23】
図23は、第2画面の画面定義情報の具体例を示す説明図である。
【
図24】
図24は、第2画面の正規化処理例を示す説明図(その1)である。
【
図25】
図25は、第2画面の正規化処理例を示す説明図(その2)である。
【
図26】
図26は、第2画面の正規化処理例を示す説明図(その3)である。
【
図27】
図27は、第2画面の正規化処理例を示す説明図(その4)である。
【
図28】
図28は、第2画面の正規化処理例を示す説明図(その5)である。
【
図29】
図29は、第2画面の正規化処理例を示す説明図(その6)である。
【
図31】
図31は、情報処理装置101の検証処理手順の一例を示すフローチャートである。
【
図32】
図32は、ファイル解析処理の具体的処理手順の一例を示すフローチャートである。
【
図33】
図33は、要素正規化処理の具体的処理手順の一例を示すフローチャートである。
【
図34】
図34は、要素名一覧作成処理の具体的処理手順の一例を示すフローチャートである。
【
図35】
図35は、正規要素テーブル作成処理の具体的処理手順の一例を示すフローチャートである。
【
図36】
図36は、要素分割処理の具体的処理手順の一例を示すフローチャートである。
【
図37】
図37は、正規要素テーブル-要素テーブル作成処理の具体的処理手順の一例を示すフローチャートである。
【
図38】
図38は、空白挿入処理の具体的処理手順の一例を示すフローチャートである。
【
図39】
図39は、構成情報出力処理の具体的処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に図面を参照して、本発明にかかる検証プログラム、検証方法および情報処理装置の実施の形態を詳細に説明する。
【0011】
(実施の形態)
図1は、実施の形態にかかる検証方法の一実施例を示す説明図である。
図1において、情報処理装置101は、システム移行にともなう画面構成の検証を支援するコンピュータである。情報処理装置101は、例えば、PC(Personal Computer)、タブレットPCなどである。また、情報処理装置101は、サーバであってもよい。
【0012】
ここで、世の中に存在するアプリケーションソフトウェア(以下、「アプリ」という)は、技術者ではない一般の利用者の情報の見やすさや操作方法の習得のしやすさなどを重視して、GUI(Graphical User Interface)を中心に構成されることが多い。
【0013】
GUIを有するアプリを実現するためには、HTML(Hypertext Markup Language)に代表される画面構成を表した定義が必要となる。画面構成を表した定義(画面定義)としては、HTMLに代表される言語で記述されたファイルもあれば、バイナリファイルも存在する。
【0014】
近年、システムのオープン化やスマートデバイスへの対応などを契機に、GUIアプリの移行が活発に行われ、画面定義を別の形式に移行するケースが増えている。移行前後の画面定義が、例えば、以下の要件(i)、(ii)を満たすことで、同じ機能を持つ画面といえる。
【0015】
要件(i):移行前後で画面の構成要素に漏れがないこと
要件(ii):移行前後で画面の構成要素の位置関係に変更がないこと
【0016】
要件(i)を満たさない場合、アプリが正しく動作しないおそれがある。また、要件(ii)を満たさない場合には、構成要素の位置関係が変わって、ユーザの操作感が変わり、ユーザの負担になるおそれがある。このため、GUIアプリを移行したときは、これらの要件を確認するために、画面構成に誤りがないかを判断する検証作業が必要になる。
【0017】
従来の検証手法としては、例えば、作業者が移行前後の画面を目視で比較して、誤りがないかを判断するものがある。しかしながら、目視での比較により検証を行う場合、検証対象の画面の数が多くなると、チェック漏れを招くだけでなく、検証作業にかかる作業時間や作業負荷が増大するという問題がある。また、動作環境の違い(例えば、オフコンシステムとオープンシステムなど)により、移行前後の画面を並べて表示することが難しい場合がある。
【0018】
また、従来の他の検証手法としては、画面キャプチャを用いたものがある。この検証手法では、例えば、移行前の画面を画像解析して、画面構成を機械的に採取し、そのデータをもとに移行後の画面と一致するか否かを判定する。しかしながら、この検証手法は、移行前後の画面の完全互換を前提としているため、画面形式の違い(例えば、入力項目の形状の違いなど)を誤りと判定してしまう。
【0019】
例えば、画面キャプチャを用いた画面比較では、画面を定義するファイル固有の表現や構成要素の厳格な位置の違いにより、画面構成が同じ画面同士が異なる画面と判断されてしまう。すなわち、構成要素の形状や位置を厳格に判定するため、本来行いたい、構成要素の漏れと位置関係のみを検証することができない。
【0020】
そこで、本実施の形態では、画面構成を定義する情報から画面を構成する要素のみを抽出し、所定の規則に従って要素を正規化することで、上記要件(i)、(ii)を容易に検証可能にして、画面構成の検証にかかる作業負荷や作業時間を削減する検証方法について説明する。ここで、情報処理装置101の処理例について説明する。
【0021】
(1)情報処理装置101は、第1システムの第1画面と、第1システムを移行する第2システムの第2画面それぞれの画面について、画面定義ファイルから、画面を構成する複数の要素に関する情報を抽出する。ここで、画面定義ファイルは、画面の構成を定義する情報であり、例えば、HTMLファイルやバイナリファイルなどである。
【0022】
第1のシステムは、移行前のシステムであり、例えば、オフコンのCOBOLで構築されたシステムである。第2のシステムは、第1のシステムを移行する移行後のシステムであり、例えば、オープンシステムである。第2システムの第2画面は、第1システムの第1画面に対応する画面であり、例えば、第1システムの第1画面と同じ機能を持つことが求められる画面である。
【0023】
複数の要素は、例えば、入力項目、出力項目、リテラル(定数)、ボタンおよび画像の少なくともいずれかを表す要素を含む。また、複数の要素には、空白を表す要素が含まれることにしてもよい。要素に関する情報は、例えば、要素の位置、サイズ、種別、値などを示す。
【0024】
図1の例では、第1画面の画面定義ファイルを「形式Aの画面定義ファイル110」とし、第2画面の画面定義ファイルを「形式Bの画面定義ファイル120」とする。この場合、情報処理装置101は、形式Aの画面定義ファイル110から、第1画面を構成する複数の要素に関する情報を抽出する。また、情報処理装置101は、形式Bの画面定義ファイル120から、第2画面を構成する複数の要素に関する情報を抽出する。
【0025】
(2)情報処理装置101は、第1画面と第2画面それぞれの画面について、抽出した複数の要素に関する情報に基づいて、正規化処理を実行する。ここで、正規化処理は、所定の正規化規則に従って、複数の要素それぞれの種別、複数の要素それぞれの要素名および複数の要素の要素間の相対的な位置関係を区別可能とし、複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する処理である。
【0026】
種別は、要素を分類する情報である。要素名は、画面上の要素を一意に識別する情報である。また、要素間の相対的な位置関係を区別可能にするとは、画面上の要素の厳格な位置を区別可能にするのではなく、例えば、画面上のある要素に対して、他の要素がどこにあるのかといったことを区別可能にすることである。
【0027】
また、要素の画面間における表示上の形状の差を除外するとは、例えば、四角形と楕円形や、正方形と円形のように、要素の形状に画面間で差があっても、その差を要素の違いとして判断しないようにすることである。また、要素の画面間における表示上の大きさの差を除外するとは、例えば、ある形状の要素の縦横の大きさに画面間で差があっても、その差を要素の違いとして判断しないようにすることである。
【0028】
具体的には、例えば、情報処理装置101は、第1画面と第2画面それぞれの画面について、抽出した複数の要素に関する情報に基づいて、画面構成情報を作成する。画面構成情報は、例えば、種別を含む要素名を表す文字列をカンマ区切りで有する情報であり、どの種別の要素がどの順番で出現するかを示す。
【0029】
より詳細に説明すると、例えば、情報処理装置101は、複数の要素それぞれの縦位置と縦サイズとに基づき画面を行方向に区切って分割した領域ごとに、当該領域に桁方向に出現する要素の種別を含む要素名を羅列することにより、画面構成情報を作成する。ただし、情報処理装置101は、領域が行方向に切り替わる際に、改行を表す種別を含む要素名を挿入する。
【0030】
要素の種別が改行、空白以外の場合、要素名には、当該種別の要素の画面上での出現順(画面上で要素が宣言された順番)を示す識別番号が含まれる。すなわち、要素の種別が改行、空白以外の場合には、要素名は、例えば、「種別-識別番号」となる。なお、行方向は、画面の上下方向に相当する。桁方向は、画面の左右方向に相当する。
【0031】
また、例えば、情報処理装置101は、複数の要素それぞれの横位置と横サイズとに基づき画面を桁方向に区切って分割した領域ごとに、当該領域に行方向に出現する要素の種別を含む要素名を羅列することにより、画面構成情報を作成することにしてもよい。ただし、情報処理装置101は、領域が桁方向に切り替わる際に、改行を表す種別を含む要素名を挿入する。
【0032】
図1の例では、形式Aの画面定義ファイル110から抽出された複数の要素に関する情報に基づき正規化処理が実行された結果、画面構成情報111(from 形式A)が作成された場合を想定する。また、形式Bの画面定義ファイル120から抽出された複数の要素に関する情報に基づき正規化処理が実行された結果、画面構成情報121(from 形式B)が作成された場合を想定する。
【0033】
(3)情報処理装置101は、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を出力する。それぞれの画面の正規化処理の結果を比較することで、第1画面と第2画面とで、画面を構成する要素に漏れや位置関係の変更がないかを検証することができる。
【0034】
図1の例では、画面構成情報111(from 形式A)と画面構成情報121(from 形式B)とが対応付けて出力される。
【0035】
このように、情報処理装置101によれば、移行前後で画面の構成要素に漏れがなく、移行前後で画面の構成要素の位置関係に変更がないことを検証可能な情報を提供することができる。これにより、システム移行にともなう画面構成の検証を容易に行うことが可能となる。
【0036】
図1の例では、画面構成情報111(from 形式A)と画面構成情報121(from 形式B)とを比較することで、第1画面と第2画面との間で、画面構成に誤りがないかを検証することができる。画面構成情報の比較は、例えば、単純文字列比較によって行われる。
【0037】
例えば、画面構成情報111と画面構成情報121とが一致していれば、第1画面と第2画面との間で、構成要素に漏れがなく、構成要素の位置関係に変更がないことがわかる。一方、画面構成情報111と画面構成情報121とが一致しなければ、第1画面と第2画面との間で、構成要素に漏れや構成要素の位置関係に変更が生じていることがわかる。
【0038】
なお、画面構成情報111,121を比較する処理は、情報処理装置101において実行してもよく、また、情報処理装置101とは異なる他のコンピュータに応じて実行してもよい。
【0039】
(情報処理装置101のハードウェア構成例)
図2は、情報処理装置101のハードウェア構成例を示すブロック図である。
図2において、情報処理装置101は、CPU(Central Processing Unit)201と、メモリ202と、ディスクドライブ203と、ディスク204と、通信I/F(Interface)205と、ディスプレイ206と、入力装置207と、可搬型記録媒体I/F208と、可搬型記録媒体209と、を有する。また、各構成部は、バス200によってそれぞれ接続される。
【0040】
ここで、CPU201は、情報処理装置101の全体の制御を司る。CPU201は、複数のコアを有していてもよい。メモリ202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOS(Operating System)のプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU201のワークエリアとして使用される。メモリ202に記憶されるプログラムは、CPU201にロードされることで、コーディングされている処理をCPU201に実行させる。
【0041】
ディスクドライブ203は、CPU201の制御に従ってディスク204に対するデータのリード/ライトを制御する。ディスク204は、ディスクドライブ203の制御で書き込まれたデータを記憶する。ディスク204としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【0042】
通信I/F205は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部のコンピュータに接続される。そして、通信I/F205は、ネットワーク210と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。ネットワーク210は、例えば、インターネット、LAN、WAN(Wide Area Network)などである。通信I/F205には、例えば、モデムやLANアダプタなどを採用することができる。
【0043】
ディスプレイ206は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する表示装置である。ディスプレイ206としては、例えば、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどを採用することができる。
【0044】
入力装置207は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置207は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【0045】
可搬型記録媒体I/F208は、CPU201の制御に従って可搬型記録媒体209に対するデータのリード/ライトを制御する。可搬型記録媒体209は、可搬型記録媒体I/F208の制御で書き込まれたデータを記憶する。可搬型記録媒体209としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
【0046】
なお、情報処理装置101は、上述した構成部のうち、例えば、ディスクドライブ203、ディスク204、可搬型記録媒体I/F208、可搬型記録媒体209を有していなくてもよい。
【0047】
(情報処理装置101の機能的構成例)
図3は、情報処理装置101の機能的構成例を示すブロック図である。
図3において、情報処理装置101は、取得部301と、抽出部302と、正規化部303と、比較部304と、出力部305と、を含む。取得部301~出力部305は制御部となる機能であり、具体的には、例えば、
図2に示したメモリ202、ディスク204、可搬型記録媒体209などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、通信I/F205により、その機能を実現する。各機能部の処理結果は、例えば、メモリ202、ディスク204などの記憶装置に記憶される。
【0048】
取得部301は、第1システムの第1画面の構成を定義する第1画面定義ファイルと、第2システムの第2画面の構成を定義する第2画面定義ファイルとを取得する。ここで、第1のシステムは、移行前のシステムである。第2のシステムは、第1のシステムを移行する移行後のシステムである。第2システムの第2画面は、第1システムの第1画面に対応する画面であり、例えば、第1システムの第1画面と同じ機能を持つことが求められる画面である。
【0049】
以下の説明では、第1画面の構成を定義する第1画面定義ファイルおよび第2画面の構成を定義する第2画面定義ファイルのうちのいずれかの情報を、単に「画面定義ファイル」と表記する場合がある。
【0050】
画面定義ファイルは、画面定義を表す情報である。第1画面定義ファイルと第2画面定義ファイルは、例えば、それぞれ形式が異なる画面定義ファイルである。例えば、第1画面定義ファイルは、企業独自の形式のバイナリファイルである。また、第2画面定義ファイルは、例えば、HTMLファイルである。
【0051】
具体的には、例えば、取得部301は、
図2に示した入力装置207を用いたユーザの操作入力により、第1画面定義ファイルと第2画面定義ファイルとを取得する。また、取得部301は、
図2に示したネットワーク210を介して、他のコンピュータから受信することにより、第1画面定義ファイルと第2画面定義ファイルとを取得することにしてもよい。
【0052】
ここで、第1画面および第2画面の画面イメージについて説明する。
【0053】
図4は、第1画面の画面イメージを示す説明図である。
図4において、第1画面400は、第1システムの画面であり、項目401~407を含む。項目401は、第1画面400を構成する要素の一つであり、定数を示す。項目402は、第1画面400を構成する要素の一つであり、入力項目を示す。
【0054】
項目403は、第1画面400を構成する要素の一つであり、定数を示す。項目404は、第1画面400を構成する要素の一つであり、出力項目を示す。項目405は、第1画面400を構成する要素の一つであり、定数を示す。項目406は、第1画面400を構成する要素の一つであり、ボタンを示す。項目407は、第1画面400を構成する要素の一つであり、ボタンを示す。
【0055】
第1画面400の構成を定義する画面定義ファイルの形式は、項目を一定間隔の行桁(行:縦、桁:横)で位置指定する形式である。項目のサイズは、行桁で指定される。例えば、項目401の位置は、「行:2、桁:3」で指定される。第1画面400の構成を定義する画面定義ファイルは、例えば、バイナリファイル(不図示)である。
【0056】
図5は、第2画面の画面イメージを示す説明図である。
図5において、第2画面500は、第2システムの画面であり、項目501~507を含む。項目501は、第2画面500を構成する要素の一つであり、定数を示す。項目502は、第2画面500を構成する要素の一つであり、入力項目を示す。
【0057】
項目503は、第2画面500を構成する要素の一つであり、定数を示す。項目504は、第2画面500を構成する要素の一つであり、出力項目を示す。項目505は、第2画面500を構成する要素の一つであり、定数を示す。項目506は、第2画面500を構成する要素の一つであり、ボタンを示す。項目507は、第2画面500を構成する要素の一つであり、ボタンを示す。
【0058】
第2画面500の構成を定義する画面定義ファイルの形式は、項目を縦位置(ピクセル数)と横位置(ピクセル数)で位置指定するHTML形式である。項目の縦の高さは、フォントサイズで指定される。例えば、項目501の位置は、「縦位置(px):10、横位置(px):50」で指定される。ただし、HTMLは項目間の隙間やボタンなどの要素に空白や枠線を補完するため、宣言通りの位置と実際の表示位置がずれることがある。
【0059】
第2画面500の構成を定義する画面定義ファイルは、例えば、
図6に示すようなHTMLファイル600である。
【0060】
図6は、HTMLファイルの具体例を示す説明図である。
図6において、HTMLファイル600は、
図5に示した第2画面500の構成を定義する画面定義ファイルの一例である。なお、第2画面500のうちHTML上宣言されている領域は、190px×310pxの領域(
図5中、枠線510)である。
【0061】
図3の説明に戻り、抽出部302は、第1システムの第1画面と第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出する。ここで、複数の要素は、例えば、入力項目、出力項目、固定リテラル(定数)、ボタンおよび画像の少なくともいずれかを表す要素を含む。また、複数の要素は、空白を表す要素を含むことにしてもよい。
【0062】
要素に関する情報は、例えば、要素の位置、サイズ、種別、値などを示す。要素の位置は、画面上での要素の位置であり、例えば、要素の左上の座標によって表される。要素のサイズは、例えば、要素の縦、横のサイズによって表される。要素の種別としては、例えば、入力項目、出力項目、固定リテラル(定数)、ボタン、画像などがある。要素の値は、例えば、初期値である。また、要素に関する情報は、画面のサイズを特定する情報を含む。画面のサイズは、例えば、行数と桁数によって表されたり、縦横のピクセル数によって表されたりする。
【0063】
具体的には、例えば、抽出部302は、各画面について、各画面の画面定義ファイルに基づいて、画面定義情報を作成する。画面定義情報は、要素の正規化に必要な情報であり、画面定義ファイルから抽出された要素に関する情報を含む。ここで、
図7を用いて、画面定義情報のデータ構造について説明する。
【0064】
図7は、画面定義情報のデータ構造例を示す説明図である。
図7において、画面定義情報sdは、画面サイズと、要素テーブルとを含む。要素テーブルは、要素ごとの位置、サイズ、項目種別、値を格納する。画面定義情報sdの具体例については、例えば、
図16を用いて後述する。
【0065】
正規化部303は、第1画面と第2画面それぞれの画面について、抽出した複数の要素に関する情報に基づいて、正規化処理を実行する。ここで、正規化処理は、所定の正規化規則に従って、複数の要素それぞれの種別、複数の要素それぞれの要素名および複数の要素の要素間の相対的な位置関係を区別可能とし、複数の要素それぞれの画面間における表示上の形状、大きさ(サイズ)の差を除外する処理である。
【0066】
また、正規化部303は、さらに、複数の要素の要素間の相対的な大小関係を区別可能にする正規化処理を実行することにしてもよい。また、正規化部303は、複数の要素それぞれの値を区別可能にする正規化処理を実行することにしてもよい。要素の値は、例えば、初期値、項目名、ボタン名などである。
【0067】
具体的には、例えば、正規化部303は、複数の要素それぞれの縦位置と縦サイズとに基づき画面を行方向に区切って分割した領域ごとに、当該領域に桁方向に出現する要素の種別を含む要素名を羅列することにより、画面構成情報を作成する。ただし、正規化部303は、領域が行方向に切り替わる際に、改行を表す種別を含む要素名を挿入する。要素の種別が改行、空白以外の場合、要素名には、当該種別の要素の画面上での出現順(画面上で要素が宣言された順番)を示す識別番号が含まれる。
【0068】
また、正規化部303は、例えば、複数の要素それぞれの横位置と横サイズとに基づき画面を桁方向に区切って分割した領域ごとに、当該領域に行方向に出現する要素の種別を含む要素名を羅列することにより、画面構成情報を作成することにしてもよい。ただし、正規化部303は、領域が桁方向に切り替わる際に、改行を表す種別を含む要素名を挿入する。
【0069】
より詳細に説明すると、例えば、正規化部303は、画面定義情報を正規化し、正規要素テーブルを作成する。正規要素テーブルは、正規化した要素に関する情報を格納する。一般的な画面は、各要素の位置やサイズは自由に指定ができるため、単位的な行桁の表現はできない。すなわち、要素の大きさが異なったり、位置を自由に設定できたりするため、単位的に分割すると要素が分断されてしまう。
【0070】
そこで、正規化部303は、画面定義情報-要素テーブルをもとに、要素の位置、サイズに合わせて、画面を任意の行幅(または、桁幅)で行単位(または、桁単位)に分解し、正規要素テーブルを作成する。画面定義情報-要素テーブルは、画面定義情報に含まれる要素テーブルを示す。そして、正規化部303は、画面の各行を解析し、正規要素テーブルを作成する。
【0071】
ここで、画面の左上を頂点に、行桁方向で要素(構成要素)を抽出する正規化規則を用いるとする。この場合、正規要素テーブルのデータ構造は、例えば、
図8に示すようなものとなる。正規要素テーブルは、正規化規則によって構成が異なる。
【0072】
図8は、正規要素テーブルのデータ構造例を示す説明図である。
図8において、正規要素テーブルntは、縦位置と、行幅と、要素テーブルとを含む。要素テーブルは、要素の位置(横)、サイズ(横)、要素名を格納する。同じ行とみなす要素に関する情報は、同じ要素テーブルに格納される。要素テーブル内の位置、サイズの縦情報は、開始位置、行幅に包括されるためない。正規要素テーブルntの具体例については、例えば、
図13を用いて後述する。
【0073】
より詳細に説明すると、例えば、正規化部303は、画面定義情報-要素テーブルを参照して、正規要素テーブルに行幅を設定する。正規化部303は、画面定義情報-要素テーブルを参照して、複数行に跨る要素を分割し、画面定義情報-要素テーブルに追加する。正規化部303は、画面定義情報-要素テーブルを行桁順に並べ替える。正規化部303は、画面定義情報-要素テーブルを参照して、正規要素テーブル-要素テーブルを設定する。正規要素テーブル-要素テーブルは、正規要素テーブルに含まれる要素テーブルを示す。また、正規化部303は、正規要素テーブルに何も定義されていない箇所に、空白領域を定義する。
【0074】
ここで、
図9~
図13を用いて、正規化処理の一例について説明する。
【0075】
図9~
図13は、正規化処理の一例を示す説明図である。
図9において、正規化部303は、画面定義情報-要素テーブルを参照して、正規要素テーブルに行幅を設定する。具体的には、例えば、正規化部303は、参照した画面定義情報-要素テーブルの位置(縦)とサイズ(縦)から、画面の行幅を算出し、正規要素テーブル-縦位置、行幅を設定する。
【0076】
この際、正規化部303は、同じ位置(縦)とサイズ(縦)に宣言された要素を、同一行とみなす。例えば、画面901の場合、要素1,2は、位置(縦)が異なるため、異なる行とみなされる。また、画面902の場合、要素1,2は、位置(縦)とサイズ(縦)が同じため、同一行とみなされる。また、正規化部303は、画面903~905のように、要素同士が縦方向で重なるとき、要素の上端、下端を行の区切りとする。この場合、各画面903~905の要素2は複数行に跨がることになる。
【0077】
図10において、画面1001を例に挙げ、画面1001の画面定義情報を画面定義情報1010とする。画面定義情報1010は、画面1001の画面サイズ「縦90×横200」と、要素テーブル1011とを含む。要素テーブル1011は、画面1001を構成する要素1,2ごとの位置、サイズ、項目種別、値を格納する。
【0078】
具体的には、要素テーブル1011の1番目のレコードは、要素1の位置、サイズ、項目種別、値を示す。要素1の位置(左上の座標)は「縦:10、横:10」である。要素1のサイズは「縦:30、横:80」である。要素1の項目種別は「固定リテラル」である。要素1の値は「要素1」である。要素テーブル1011の2番目のレコードは、要素2の位置、サイズ、項目種別、値を示す。
【0079】
この場合、画面1001を縦位置10,40,60で区切って、4つの行に分解し、正規要素テーブル1020に各行の行幅を設定する。ここでは、正規要素テーブル1020に行幅10,30,20,30が設定される。また、各行の要素テーブルを上から順にテーブルA,B,C,Dと表記する。
【0080】
図11において、正規化部303は、画面定義情報1010-要素テーブル1011を参照して、複数行に跨る要素を分割し、画面定義情報1010-要素テーブル1011に追加する。すなわち、正規化部303は、要素同士が縦方向で重なるとき、1要素が複数行にまたがるため、このような要素を画面定義情報1010-要素テーブル1011上で分割する。これにより、複数の要素の要素間の相対的な大小関係を区別可能にする。
【0081】
ここでは、画面1001の要素2が2つに分割され、画面定義情報1010-要素テーブル1011上で、要素2のレコード(2番目のレコード)が2つに分割される。この結果、要素テーブル1011の1番目のレコードは、要素1の位置、サイズ、項目種別、値を示す。また、要素テーブル1011の2,3番目のレコードは、要素2の位置、サイズ、項目種別、値を示す。
【0082】
また、正規化部303は、画面定義情報1010-要素テーブル1011を行桁順に並べ替える。すなわち、正規化部303は、要素を分割したことにより、画面定義情報1010-要素テーブル1011のレコードが行桁順ではない可能性があるため、行桁順にレコードを並べ替える。
【0083】
具体的には、例えば、正規化部303は、画面定義情報1010-要素テーブル1011のレコードを、縦位置が小さい順にソートした後に、横位置が小さい順にソートする。
図11の例では、画面定義情報1010-要素テーブル1011のレコードの並び替えは生じない。
【0084】
図12において、正規化部303は、画面定義情報1010-要素テーブル1011を参照して、正規要素テーブル1020-要素テーブルを設定する。具体的には、例えば、正規化部303は、画面定義情報1010-要素テーブル1011の位置(縦)と正規要素テーブル1020の縦位置を参照して、対応する行の要素テーブルに、画面定義情報1010-要素テーブル1011の情報を設定する。
【0085】
この際、正規化部303は、例えば、項目種別を用いて、正規要素テーブル1020-要素テーブルの要素名を設定する。要素名は、項目種別と識別番号をつなげた形「項目種別-識別番号」で表現する。識別番号は、画面の左上を頂点に行桁方向に宣言された順番で、項目種別ごと4桁の連番でつける。ただし、項目種別が空白、改行のときは識別番号をつけないこととする。
【0086】
ここでは、画面定義情報1010-要素テーブル1011の縦位置「10」が、正規要素テーブル1020-要素テーブルBに対応する。このため、正規化部303は、画面定義情報1010-要素テーブル1011の1,2番目のレコードに基づいて、正規要素テーブル1020-要素テーブルBに情報を設定する。
【0087】
具体的には、例えば、正規化部303は、画面定義情報1010-要素テーブル1011の1番目のレコードに基づいて、正規要素テーブル1020-要素テーブルBに、「位置(横):10」、「サイズ(横):80」および「要素名:Literal-0001」を設定する。Literal-0001は、画面の左上を頂点に行桁方向に1番目に宣言された固定リテラル(定数)であることを示す。
【0088】
また、正規化部303は、画面定義情報1010-要素テーブル1011の2番目のレコードに基づいて、正規要素テーブル1020-要素テーブルBに、「位置(横):100」、「サイズ(横):80」および「要素名:Literal-0002」を設定する。Literal-0002は、画面の左上を頂点に行桁方向に2番目に宣言された固定リテラル(定数)であることを示す。
【0089】
また、画面定義情報1010-要素テーブル1011の縦位置「40」が、正規要素テーブル1020-要素テーブルCに対応する。このため、正規化部303は、画面定義情報1010-要素テーブル1011の3番目のレコードに基づいて、正規要素テーブル1020-要素テーブルCに、「位置(横):100」、「サイズ(横):80」および「要素名:Literal-0002」を設定する。
【0090】
なお、項目種別を表す文字列としては、Literalのほかに、Space、NewLine、Input、Output、Button、Media、Otherなどがある。Spaceは、空白(項目が定義されていない領域)を示す。NewLineは、改行を示す。Inputは、入力項目を示す。Outputは、出力項目を示す。Buttonは、ボタンを示す。Mediaは、画像を示す。Otherは、画面定義ファイル固有の要素などのその他の項目を示す。正規化規則によって、値やデータ名、項目サイズなどのパラメタを追加してもよい。
【0091】
図13において、正規化部303は、正規要素テーブル1020に何も定義されていない箇所に、空白領域を定義する。具体的には、例えば、正規化部303は、正規要素テーブル1020-要素テーブルの位置(横)とサイズ(横)を参照して、何も定義されていない領域があれば、要素名:Spaceの項目(レコード)を追加する。
【0092】
例えば、要素テーブルBは、「位置(横):0」、「サイズ(横):10」に何も定義されていない。すなわち、画面1001の「縦位置:0」の「位置(横):0~10」には何も定義されていない。このため、正規化部303は、正規要素テーブル1020-要素テーブルBに、「位置(横):0」、「サイズ(横):10」および「要素名:Space」のレコードを追加する。
【0093】
また、要素テーブルBは、「位置(横):90」、「サイズ(横):10」に何も定義されていない。すなわち、画面1001の「縦位置:0」の要素1と要素2の間は何も定義されていない。このため、正規化部303は、正規要素テーブル1020-要素テーブルBに、「位置(横):90」、「サイズ(横):10」および「要素名:Space」のレコードを追加する。
【0094】
また、要素テーブルBは、「位置(横):180」、「サイズ(横):20」に何も定義されていない。すなわち、画面1001の「縦位置:0」の「位置(横):180~200」には何も定義されていない。このため、正規化部303は、正規要素テーブル1020-要素テーブルBに、「位置(横):180」、「サイズ(横):20」および「要素名:Space」のレコードを追加する。
【0095】
正規要素テーブル1020-要素テーブルCについても同様である。
【0096】
また、正規要素テーブル1020-要素テーブルに要素がないとき、その行は空白である。この場合、空白のサイズ(横)は、画面1001の横サイズ「200」となる。例えば、正規要素テーブル1020-要素テーブルAには、なにも定義されていない。このため、正規化部303は、正規要素テーブル1020-要素テーブルAに、「位置(横):0」、「サイズ(横):200」および「要素名:Space」のレコードを追加する。
【0097】
正規要素テーブル1020-要素テーブルDについても同様である。
【0098】
また、正規化部303は、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を出力する。具体的には、例えば、正規化部303は、作成した正規要素テーブルを記号化して、画面構成情報を出力する。画面構成情報は、要素名を表す文字列のみをカンマ区切りで有する情報である。
【0099】
より詳細に説明すると、例えば、正規化部303は、正規要素テーブル-要素テーブルを順番に参照して、要素名を列挙することにより、画面構成情報を出力する。この際、正規化部303は、正規要素テーブルの次の要素テーブルを読み込んだときに、改行を意味する要素名「NewLine」を出力する。
【0100】
画面構成情報は、画面の左上を頂点に、行桁方向に要素を走査した際に、どの種別の要素が、どのような順番で出現するかを示す。移行前後の画面同士で画面構成情報を比較することで、表現の差異や厳格な位置関係に左右されることなく、移行前後の画面確認の要件(要素数、位置関係)を満たすことができる。
【0101】
ここで、
図14を用いて、画面構成情報の出力例について説明する。
【0102】
図14は、画面構成情報の出力例を示す説明図である。
図14において、正規化部303は、正規要素テーブル1020-要素テーブルA,B,C,Dを順番に参照して、要素名を列挙する。この際、正規化部303は、次の要素テーブルを読み込んだときに、改行を意味する要素名「NewLine」を出力する。
【0103】
具体的には、例えば、まず、正規化部303は、正規要素テーブル1020-要素テーブルAを参照して、要素名「Space」を出力する。つぎに、正規化部303は、正規要素テーブル1020-要素テーブルBを読み込むと、カンマで区切って、要素名「NewLine」を出力する。
【0104】
そして、正規化部303は、正規要素テーブル1020-要素テーブルBを参照して、各要素名をカンマ区切りで上から順に出力する。ここでは、要素名「Space,Literal-0001,Space,Literal-0002,Space」が出力される。つぎに、正規化部303は、正規要素テーブル1020-要素テーブルCを読み込むと、カンマで区切って、要素名「NewLine」を出力する。
【0105】
そして、正規化部303は、正規要素テーブル1020-要素テーブルCを参照して、各要素名をカンマ区切りで上から順に出力する。ここでは、要素名「Space,Literal-002,Space」が出力される。つぎに、正規化部303は、正規要素テーブル1020-要素テーブルDを読み込むと、カンマで区切って、要素名「NewLine」を出力する。
【0106】
そして、正規化部303は、正規要素テーブル1020-要素テーブルDを参照して、カンマで区切って要素名「Space」を出力する。この結果、画面構成情報1400が作成される。画面構成情報1400によれば、画面1001(例えば、
図10参照)の左上を頂点に、行桁方向に要素を走査した際に、どの種別の要素が、どのような順番で出現するかを特定することができる。
【0107】
なお、上述した説明では、画面の左上を頂点に行桁方向で要素を抽出する正規化規則を用いる場合を例に挙げて説明したが、これに限らない。例えば、
図15に示すように、検証における要件(要素の漏れがない、かつ、位置関係を保持する)を満たすものであれば、他の正規化規則を用いることにしてもよい。
【0108】
図15は、他の正規化規則の一例を示す説明図である。
図15の(15-1)に示すように、正規化部303は、例えば、画面の左上を頂点に、桁行方向で要素(構成要素)を抽出する正規化規則を用いることにしてもよい。
【0109】
また、(15-2)に示すように、正規化部303は、要素間の空白を無視して、要素を抽出することにしてもよい。この場合、
図13に示した正規要素テーブル1020-要素テーブルBを例に挙げると、例えば、3番目のレコードがなくなり、4番目のレコードの位置(横)、サイズ(横)が、「位置(横):90」、「サイズ(横):90」となる。
【0110】
また、(15-3)に示すように、正規化部303は、要素を分割しないで、要素を抽出することにしてもよい。すなわち、正規化部303は、要素間の相対的な大小関係を区別しない正規化処理を実行する。この場合、
図10に示した正規要素テーブル1020を例に挙げると、例えば、要素2のサイズに合わせて、2番目のレコードの行幅が「50」となり、3番目のレコードの縦位置が「60」、行幅が「30」となる。また、4番目のレコードがなくなる。
【0111】
図3の説明に戻り、比較部304は、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を比較する。具体的には、例えば、比較部304は、第1画面と第2画面それぞれの画面の画面構成情報を比較する。画面構成情報の比較は、例えば、単純文字列比較によって行われる。
【0112】
画面構成情報が一致していれば、移行前後の画面構成が同じ、すなわち、移行前後で画面の構成要素に漏れがなく、移行前後で画面の構成要素の位置関係に変更がないことがわかる。一方、画面構成情報が一致していなければ、移行前後の画面構成が異なる、すなわち、移行前後で画面の構成要素に漏れや位置関係の変更があることがわかる。
【0113】
また、比較部304は、第1画面と第2画面それぞれの画面の画面構成情報が一致した場合、移行後の画面構成に誤りがないと判定してもよい(検証OK)。一方、第1画面と第2画面それぞれの画面の画面構成情報が不一致の場合、比較部304は、移行後の画面構成に誤りがあると判定してもよい(検証NG)。
【0114】
出力部305は、比較された結果を出力する。出力部305の出力形式としては、例えば、メモリ202、ディスク204などの記憶装置への記憶、通信I/F205による他のコンピュータへの送信、ディスプレイ306への表示、不図示のプリンタへの印刷出力などがある。
【0115】
具体的には、例えば、出力部305は、第1画面と第2画面それぞれの画面の画面構成情報が一致するか否かを示す情報を、ディスプレイ206に表示してもよい。また、出力部305は、移行後の画面構成に誤りがあるか否かを示す判定結果を、ディスプレイ206に表示してもよい。
【0116】
また、出力部305は、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を出力することにしてもよい。具体的には、例えば、出力部305は、第1画面と第2画面それぞれの画面の画面構成情報を対応付けて出力することにしてもよい。これにより、例えば、情報処理装置101とは異なる他のコンピュータにおいて、第1画面と第2画面それぞれの画面の画面構成情報を比較する処理を行うことができる。
【0117】
なお、情報処理装置101は、例えば、複数の正規化規則を用いて、多観点の検証を行うことにしてもよい。例えば、互換性の高い画面定義同士であれば、正規化規則を段階的に強めることで、検証精度を高めることができる。具体的には、例えば、情報処理装置101は、第1のステップとして、空白を含まない要素を抽出する正規化規則を用いた検証を行う。第1ステップでは、定義された構成要素の個数、位置関係の検証を行うことができる。また、情報処理装置101は、第2のステップとして、空白を含む要素を抽出する正規化規則を用いた検証を行う。第2ステップでは、定義された要素間の位置関係の検証を行うことができる。また、情報処理装置101は、第3のステップとして、画面定義ファイル独自の要素を含んだ正規化規則を用いた検証を行う。第3ステップでは、例えば、厳密な要素の検証を行うことができる。
【0118】
また、上述した情報処理装置101の機能部のうち、例えば、比較部304は、情報処理装置101とは異なる他のコンピュータにより実現されることにしてもよい。すなわち、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を比較する処理は、他のコンピュータで実行されてもよい。この場合、情報処理装置101は、例えば、出力部305により、第1画面と第2画面それぞれの画面について実行した正規化処理の結果を出力する。
【0119】
(画面構成の検証例)
つぎに、
図4に示した第1画面400と、
図5に示した第2画面500とを例に挙げて、移行前後の画面構成の検証例について説明する。
【0120】
まず、
図16~
図22を用いて、第1画面400の画面構成情報を作成するまでの処理について説明する。
【0121】
図16は、第1画面の画面定義情報の具体例を示す説明図である。また、
図17~
図22は、第1画面の正規化処理例を示す説明図である。抽出部302は、第1画面400の画面定義ファイルに基づいて、画面定義情報sd1を作成する。
【0122】
図16において、画面定義情報sd1は、第1画面400の画面サイズ「9行×14桁」と、要素テーブル1600とを含む。要素テーブル1600は、第1画面400を構成する各要素の位置、サイズ、項目種別、値を格納する。
【0123】
抽出部302は、画面定義情報sd1の要素テーブル1600を行桁順にソートする。ここでは、要素テーブル1600は、元々行桁順に並んでいるため、並び替えは発生しない。
【0124】
図17において、正規化部303は、画面定義情報sd1-要素テーブル1600を参照して、正規要素テーブルnt1に行幅を設定する。ここでは、画面定義情報sd1-要素テーブル1600では、要素(項目)が一定間隔の行桁で宣言されているため、1桁区切りで正規要素テーブルnt1の行幅が設定される。
【0125】
また、画面定義情報sd1-要素テーブル1600では、複数行に跨がる要素がないため、要素の分割は発生せず、要素テーブル1600の並び替えも発生しない。
【0126】
図18において、正規化部303は、画面定義情報sd1-要素テーブル1600の位置(行)と正規要素テーブルnt1の縦位置を参照して、対応する行の要素テーブルに、画面定義情報sd1-要素テーブル1600の情報を設定する。
【0127】
例えば、画面定義情報sd1-要素テーブル1600の位置(行)「2」が、正規要素テーブルnt1-要素テーブルBに対応する。このため、正規化部303は、画面定義情報sd1-要素テーブル1600の1,2番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルBに情報を設定する。
【0128】
また、画面定義情報sd1-要素テーブル1600の位置(行)「4」が、正規要素テーブルnt1-要素テーブルDに対応する。このため、正規化部303は、画面定義情報sd1-要素テーブル1600の3,4番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルDに情報を設定する。
【0129】
また、画面定義情報sd1-要素テーブル1600の位置(行)「6」が、正規要素テーブルnt1-要素テーブルFに対応する。このため、正規化部303は、画面定義情報sd1-要素テーブル1600の5番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルFに情報を設定する。
【0130】
また、画面定義情報sd1-要素テーブル1600の位置(行)「8」が、正規要素テーブルnt1-要素テーブルHに対応する。このため、正規化部303は、画面定義情報sd1-要素テーブル1600の6,7番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルHに情報を設定する。
【0131】
図19において、正規要素テーブルnt1の要素テーブルB,D,F,Hが示されている。要素テーブルBを例に挙げると、画面定義情報sd1-要素テーブル1600の1番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルBに、「横位置(桁):3」、「サイズ(桁数):2」および「要素名:Literal-0001」が設定される(1番目のレコード)。また、画面定義情報sd1-要素テーブル1600の2番目のレコードに基づいて、正規要素テーブルnt1-要素テーブルBに、「横位置(桁):5」、「サイズ(桁数):8」および「要素名:Input-0001」が設定される(2番目のレコード)。
【0132】
図20において、正規化部303は、正規要素テーブルnt1-要素テーブルの横位置(桁)とサイズ(桁数)を参照して、何も定義されていない領域があれば、要素名:Spaceの項目(レコード)を追加する。
【0133】
例えば、要素テーブルAには、何も定義されていない。このため、正規化部303は、正規要素テーブルnt1-要素テーブルAに、「横位置(桁):1」、「サイズ(桁数):14」および「要素名:Space」のレコードを追加する。サイズ(桁数):14は、第1画面400の横サイズである。
【0134】
また、例えば、要素テーブルBは、「横位置(桁):1」、「サイズ(桁数):2」に何も定義されていない。すなわち、第1画面400の「縦位置(行):2」の「横位置(桁):1~2」には何も定義されていない。このため、正規化部303は、正規要素テーブルnt1-要素テーブルBに、「横位置(桁):1」、「サイズ(桁数):2」および「要素名:Space」のレコードを追加する。
【0135】
図21において、正規要素テーブルnt1-要素テーブルA,B,C,D,E,F,G,H,Iが示されている。要素テーブルA,B,C,D,E,F,G,H,Iの何も定義されていない箇所には、空白領域が定義されている。
【0136】
図22において、正規化部303は、正規要素テーブルnt1-要素テーブルA,B,C,D,E,F,G,H,Iを順番に参照して、要素名をカンマ区切りで羅列することにより、画面構成情報2200を出力する。この際、正規化部303は、正規要素テーブルnt1の次の要素テーブルを読み込んだときに、改行を意味する要素名「NewLine」を出力する。
【0137】
画面構成情報2200は、第1画面400の左上を頂点に、行桁方向に要素を走査した際に、どの種別の要素が、どのような順番で出現するかを示している。
【0138】
つぎに、
図23~
図29を用いて、第2画面500の画面構成情報を作成するまでの処理について説明する。
【0139】
図23は、第2画面の画面定義情報の具体例を示す説明図である。また、
図24~
図29は、第2画面の正規化処理例を示す説明図である。抽出部302は、第2画面500の画面定義ファイル(例えば、
図6に示したHTMLファイル600)に基づいて、画面定義情報sd2を作成する。
【0140】
図23において、画面定義情報sd2は、第2画面500の画面サイズ「縦190px×横310px」と、要素テーブル2300とを含む。画面サイズは、左上から宣言されている領域で算出される。要素テーブル2300は、第2画面500を構成する各要素の位置、サイズ、項目種別、値を格納する。
【0141】
抽出部302は、画面定義情報sd2の要素テーブル2300を行桁順にソートする。ここでは、要素テーブル2300は、元々行桁順に並んでいるため、並び替えは発生しない。
【0142】
図24において、正規化部303は、画面定義情報sd2-要素テーブル2300を参照して、正規要素テーブルnt2に行幅を設定する。ここでは、画面定義情報sd2-要素テーブル2300では、要素(項目)の位置が指定されているため、縦位置を参照して、行幅を設定する。なお、
図24では、第2画面500を桁方向に区切った線のイメージを示している。
【0143】
また、画面定義情報sd2-要素テーブル2300では、複数行に跨がる要素がないため、要素の分割は発生せず、要素テーブル2300の並び替えも発生しない。
【0144】
図25において、正規化部303は、画面定義情報sd2-要素テーブル2300の位置(行)と正規要素テーブルnt2の縦位置を参照して、対応する行の要素テーブルに、画面定義情報sd2-要素テーブル2300の情報を設定する。
【0145】
例えば、画面定義情報sd2-要素テーブル2300の位置(px)「縦:10」が、正規要素テーブルnt2-要素テーブルBに対応する。このため、正規化部303は、画面定義情報sd2-要素テーブル2300の1,2番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルBに情報を設定する。
【0146】
また、画面定義情報sd2-要素テーブル2300の位置(px)「縦:50」が、正規要素テーブルnt2-要素テーブルDに対応する。このため、正規化部303は、画面定義情報sd2-要素テーブル2300の3,4番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルDに情報を設定する。
【0147】
また、画面定義情報sd2-要素テーブル2300の位置(px)「縦:90」が、正規要素テーブルnt2-要素テーブルFに対応する。このため、正規化部303は、画面定義情報sd2-要素テーブル2300の5番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルFに情報を設定する。
【0148】
また、画面定義情報sd2-要素テーブル2300の位置(px)「縦:145」が、正規要素テーブルnt2-要素テーブルHに対応する。このため、正規化部303は、画面定義情報sd2-要素テーブル2300の6,7番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルHに情報を設定する。
【0149】
図26において、正規要素テーブルnt2の要素テーブルB,D,F,Hが示されている。要素テーブルBを例に挙げると、画面定義情報sd2-要素テーブル2300の1番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルBに、「横位置(px):50」、「横サイズ(px):40」および「要素名:Literal-0001」が設定される(1番目のレコード)。また、画面定義情報sd2-要素テーブル2300の2番目のレコードに基づいて、正規要素テーブルnt2-要素テーブルBに、「横位置(px):90」、「横サイズ(px):200」および「要素名:Input-0001」が設定される(2番目のレコード)。
【0150】
図27において、正規化部303は、正規要素テーブルnt2-要素テーブルの横位置(px)と横サイズ(px)を参照して、何も定義されていない領域があれば、要素名:Spaceの項目(レコード)を追加する。
【0151】
例えば、要素テーブルAには、何も定義されていない。このため、正規化部303は、正規要素テーブルnt2-要素テーブルAに、「横位置(px):0」、「横サイズ(px):310」および「要素名:Space」のレコードを追加する。横サイズ(px):310は、第2画面500の横サイズである。
【0152】
また、例えば、要素テーブルBは、「横位置(px):0」、「横サイズ(px):50」に何も定義されていない。すなわち、第2画面500の「縦位置(px):10」の「横位置(px):0~50」には何も定義されていない。このため、正規化部303は、正規要素テーブルnt2-要素テーブルBに、「横位置(px):0」、「横サイズ(px):50」および「要素名:Space」のレコードを追加する。
【0153】
図28において、正規要素テーブルnt2-要素テーブルA,B,C,D,E,F,G,H,Iが示されている。要素テーブルA,B,C,D,E,F,G,H,Iの何も定義されていない箇所には、空白領域が定義されている。
【0154】
図29において、正規化部303は、正規要素テーブルnt2-要素テーブルA,B,C,D,E,F,G,H,Iを順番に参照して、要素名をカンマ区切りで羅列することにより、画面構成情報2900を出力する。この際、正規化部303は、正規要素テーブルnt2の次の要素テーブルを読み込んだときに、改行を意味する要素名「NewLine」を出力する。
【0155】
(出力画面の画面例)
つぎに、
図2に示したディスプレイ206に表示される出力画面の画面例について説明する。出力画面は、第1画面と第2画面それぞれの画面の画面構成情報を比較した結果を出力する画面である。
【0156】
図30は、出力画面の画面例を示す説明図である。
図30において、出力画面3000は、第1画面400の画面構成情報2200と、第2画面500の画面構成情報2900とを比較した結果を示す。画面構成情報2200と画面構成情報2900との比較は、単純文字列比較によって行われる。
【0157】
ここでは、比較結果「一致」とともに、メッセージ3001が表示されている。メッセージ3001は、移行前後の画面構成は同じである旨のメッセージである。すなわち、移行前後で画面の構成要素に漏れがなく、移行前後で画面の構成要素の位置関係に変更がないことを示している。
【0158】
出力画面3000によれば、ユーザ(検証者)は、移行前後の画面構成が同じで誤りがないことを知ることができる。
【0159】
(情報処理装置101の検証処理手順)
つぎに、情報処理装置101の検証処理手順について説明する。
【0160】
図31は、情報処理装置101の検証処理手順の一例を示すフローチャートである。
図31のフローチャートにおいて、まず、情報処理装置101は、第1システムの第1画面と第2システムの第2画面それぞれの画面について、ファイル解析処理を実行する(ステップS3101)。ファイル解析処理の具体的な処理手順については、
図32を用いて後述する。
【0161】
つぎに、情報処理装置101は、第1画面と第2画面それぞれの画面について、要素正規化処理を実行する(ステップS3102)。要素正規化処理の具体的な処理手順については、
図33を用いて後述する。そして、情報処理装置101は、第1画面と第2画面それぞれの画面について、構成情報出力処理を実行する(ステップS3103)。構成情報出力処理の具体的な処理手順については、
図39を用いて後述する。
【0162】
つぎに、情報処理装置101は、第1画面と第2画面それぞれの画面の画面構成情報を比較する(ステップS3104)。そして、情報処理装置101は、比較結果を出力して(ステップS3105)、本フローチャートによる一連の処理を終了する。
【0163】
これにより、移行後の画面構成が要件を満たしているか否かを判断可能となる。
【0164】
つぎに、
図32を用いて、
図31に示したステップS3101のファイル解析処理の具体的な処理手順について説明する。
【0165】
図32は、ファイル解析処理の具体的処理手順の一例を示すフローチャートである。
図32のフローチャートにおいて、まず、情報処理装置101は、画面定義ファイルを読み込む(ステップS3201)。つぎに、情報処理装置101は、画面定義ファイルを参照して、画面サイズの情報を取得する(ステップS3202)。
【0166】
そして、情報処理装置101は、取得した画面サイズの情報を画面定義情報に設定する(ステップS3203)。つぎに、情報処理装置101は、画面定義ファイルを参照して、画面を構成する要素を1つ読み込む(ステップS3204)。そして、情報処理装置101は、読み込んだ要素の情報を画面定義情報の要素テーブルに対応する項目に設定する(ステップS3205)。
【0167】
つぎに、情報処理装置101は、画面定義ファイルを参照して、未読み込みの要素があるか否かを判断する(ステップS3206)。ここで、未読み込みの要素がある場合(ステップS3206:Yes)、情報処理装置101は、ステップS3204に戻る。一方、未読み込みの要素がない場合(ステップS3206:No)、情報処理装置101は、ファイル解析処理を呼び出したステップに戻る。
【0168】
これにより、画面定義ファイルを解析して画面定義情報sdを生成することができる。
【0169】
つぎに、
図33を用いて、
図31に示したステップS3102の要素正規化処理の具体的な処理手順について説明する。
【0170】
図33は、要素正規化処理の具体的処理手順の一例を示すフローチャートである。
図33のフローチャートにおいて、まず、情報処理装置101は、画面定義情報の要素テーブルの位置(縦)を参照して、小さい順に並び替える(ステップS3301)。つぎに、情報処理装置101は、画面定義情報の要素テーブルの位置(縦、横)を参照して、同じ縦位置にある要素を横位置が小さい順に並べ替える(ステップS3302)。
【0171】
そして、情報処理装置101は、要素名一覧作成処理を実行する(ステップS3303)。要素名一覧作成処理の具体的な処理手順については、
図34を用いて後述する。つぎに、情報処理装置101は、正規要素テーブル作成処理を実行する(ステップS3304)。正規要素テーブル作成処理の具体的な処理手順については、
図35を用いて後述する。
【0172】
そして、情報処理装置101は、要素分割処理を実行する(ステップS3305)。要素分割処理の具体的な処理手順については、
図36を用いて後述する。つぎに、情報処理装置101は、画面定義情報の要素テーブルの位置(縦)を参照して、小さい順に並び替える(ステップS3306)。
【0173】
そして、情報処理装置101は、画面定義情報の要素テーブルの位置(縦、横)を参照して、同じ縦位置にある要素を横位置が小さい順に並べ替える(ステップS3307)。つぎに、情報処理装置101は、正規要素テーブル-要素テーブル作成処理を実行する(ステップS3308)。正規要素テーブル-要素テーブル作成処理の具体的な処理手順については、
図37を用いて後述する。
【0174】
そして、情報処理装置101は、空白挿入処理を実行して(ステップS3309)、要素正規化処理を呼び出したステップに戻る。空白挿入処理の具体的な処理手順については、
図38を用いて後述する。
【0175】
これにより、画面を構成する要素を、画面構成を検証可能に正規化することができる。
【0176】
つぎに、
図34を用いて、
図33に示したステップS3303の要素名一覧作成処理の具体的な処理手順について説明する。
【0177】
図34は、要素名一覧作成処理の具体的処理手順の一例を示すフローチャートである。
図34のフローチャートにおいて、まず、情報処理装置101は、項目種別、値および要素名を持つ要素名一覧テーブルを作成する(ステップS3401)。つぎに、情報処理装置101は、画面定義情報の要素テーブルの先頭を参照する(ステップS3402)。
【0178】
そして、情報処理装置101は、要素名一覧テーブルに画面定義情報-要素テーブルの項目種別と要素名が同じ項目があるか否かを判断する(ステップS3403)。ここで、同じ項目がある場合(ステップS3403:Yes)、情報処理装置101は、ステップS3405に移行する。
【0179】
一方、同じ項目がない場合(ステップS3403:No)、情報処理装置101は、要素名一覧テーブルに、項目種別「画面定義情報-要素テーブルの項目種別」、値「画面定義情報-要素テーブルの値」および要素名「(項目種別)-(識別番号)」を追加する(ステップS3404)。ただし、項目種別を表す識別子は、半角英字で設定される。識別番号は、同じ(項目種別)で連番になるように設定される。
【0180】
つぎに、情報処理装置101は、次の画面定義情報-要素テーブルがあるか否かを判断する(ステップS3405)。ここで、次の画面定義情報-要素テーブルがある場合(ステップS3405:Yes)、情報処理装置101は、画面定義情報-要素テーブルを1つ進めて(ステップS3406)、ステップS3403に戻る。
【0181】
一方、次の画面定義情報-要素テーブルがない場合(ステップS3405:No)、情報処理装置101は、要素名一覧作成処理を呼び出したステップに戻る。
【0182】
これにより、画面を構成する要素の要素名一覧を作成することができる。
【0183】
つぎに、
図35を用いて、
図33に示したステップS3304の正規要素テーブル作成処理の具体的な処理手順について説明する。
【0184】
図35は、正規要素テーブル作成処理の具体的処理手順の一例を示すフローチャートである。
図35のフローチャートにおいて、まず、情報処理装置101は、縦方向の位置を記憶する配列Xを宣言する(ステップS3501)。つぎに、情報処理装置101は、配列Xに0を追加する(ステップS3502)。
【0185】
つぎに、情報処理装置101は、配列Xに画面定義情報の画面サイズ(縦)の値を追加する(ステップS3503)。そして、情報処理装置101は、画面定義情報の要素テーブルを順番に参照して、配列Xに各要素の縦位置の値を格納する(ステップS3504)。つぎに、情報処理装置101は、画面定義情報の要素テーブルを順番に参照して、配列Xに各要素の縦位置+サイズ(縦)の値を格納する(ステップS3505)。
【0186】
そして、情報処理装置101は、配列Xを小さい順に並び替える(ステップS3506)。つぎに、情報処理装置101は、配列Xのうち、同じ値をもつ配列を1つにまとめる(ステップS3507)。そして、情報処理装置101は、(配列Xの個数-1)個分の正規要素テーブルを作成する(ステップS3508)。
【0187】
つぎに、情報処理装置101は、配列Xと正規要素テーブルの先頭を参照する(ステップS3509)。そして、情報処理装置101は、正規要素テーブルに、縦位置「配列Xの現在の値」および行幅「配列Xの次の値-配列Xの現在の値」を設定する(ステップS3510)。
【0188】
つぎに、情報処理装置101は、次の正規要素テーブルがあるか否かを判断する(ステップS3511)。ここで、次の正規要素テーブルがある場合(ステップS3511:Yes)、情報処理装置101は、正規要素テーブルと配列Xの参照位置を1つ進めて(ステップS3512)、ステップS3510に戻る。
【0189】
一方、次の正規要素テーブルがない場合(ステップS3511:No)、情報処理装置101は、正規要素テーブル作成処理を呼び出したステップに戻る。
【0190】
これにより、正規要素テーブルntを作成することができる。
【0191】
つぎに、
図36を用いて、
図33に示したステップS3305の要素分割処理の具体的な処理手順について説明する。
【0192】
図36は、要素分割処理の具体的処理手順の一例を示すフローチャートである。
図36のフローチャートにおいて、まず、情報処理装置101は、正規要素テーブルの先頭を参照する(ステップS3601)。つぎに、情報処理装置101は、画面定義情報-要素テーブルの先頭を参照する(ステップS3602)。
【0193】
そして、情報処理装置101は、参照している要素の縦位置が、正規要素テーブルの縦位置と同じか否かを判断する(ステップS3603)。ここで、正規要素テーブルの縦位置と異なる場合(ステップS3603:No)、情報処理装置101は、正規要素テーブルを1つ進めて(ステップS3604)、ステップS3603に戻る。
【0194】
一方、正規要素テーブルの縦位置と同じ場合(ステップS3603:Yes)、情報処理装置101は、参照している要素の縦サイズが、正規要素テーブルの行幅と同じか否かを判断する(ステップS3605)。ここで、正規要素テーブルの行幅と同じ場合(ステップS3605:Yes)、情報処理装置101は、ステップS3607に移行する。
【0195】
一方、正規要素テーブルの行幅と異なる場合(ステップS3605:No)、情報処理装置101は、参照している画面定義情報-要素テーブルを分割する(ステップS3606)。ただし、分割後の要素1の位置は、縦「分割前と同じ」、横「分割前と同じ」とする。分割後の要素1のサイズは、縦「正規要素テーブルの行幅」、横「分割前と同じ」とする。分割後の要素1の項目種別は、「分割前と同じ」とする。分割後の要素1の値は、「分割前と同じ」とする。
【0196】
また、分割後の要素2の位置は、縦「分割前の値+正規要素テーブルの行幅」、横「分割前と同じ」とする。分割後の要素2のサイズは、縦「分割前の値-正規要素テーブルの行幅」、横「分割前と同じ」とする。分割後の要素2の項目種別は、「分割前と同じ」とする。分割後の要素2の値は、「分割前と同じ」とする。
【0197】
つぎに、情報処理装置101は、次の画面定義情報-要素テーブルがあるか否かを判断する(ステップS3607)。ここで、次の画面定義情報-要素テーブルがある場合(ステップS3607:Yes)、情報処理装置101は、画面定義情報-要素テーブルを1つ進めて(ステップS3608)、ステップS3603に戻る。
【0198】
一方、次の画面定義情報-要素テーブルがない場合(ステップS3607:No)、情報処理装置101は、要素分割処理を呼び出したステップに戻る。
【0199】
これにより、複数行に跨がる要素を分割することができる。
【0200】
つぎに、
図37を用いて、
図33に示したステップS3308の正規要素テーブル-要素テーブル作成処理の具体的な処理手順について説明する。
【0201】
図37は、正規要素テーブル-要素テーブル作成処理の具体的処理手順の一例を示すフローチャートである。
図37のフローチャートにおいて、まず、情報処理装置101は、正規要素テーブルの先頭を参照する(ステップS3701)。つぎに、情報処理装置101は、画面定義情報-要素テーブルの先頭を参照する(ステップS3702)。
【0202】
そして、情報処理装置101は、参照している要素の縦位置が、正規要素テーブルの縦位置と同じか否かを判断する(ステップS3703)。ここで、正規要素テーブルの縦位置と異なる場合(ステップS3703:No)、情報処理装置101は、正規要素テーブルを1つ進めて(ステップS3704)、ステップS3703に戻る。
【0203】
一方、正規要素テーブルの縦位置と同じ場合(ステップS3703:Yes)、情報処理装置101は、正規要素テーブルの要素テーブルに、位置(横)「画面定義情報-要素テーブルの位置(横)」、サイズ(横)「画面定義情報-サイズ(横)」、要素名「要素名一覧のうち、画面定義情報-要素テーブルの項目種別と値が同じテーブルの要素名」を設定する(ステップS3705)。
【0204】
つぎに、情報処理装置101は、次の画面定義情報-要素テーブルがあるか否かを判断する(ステップS3706)。ここで、次の画面定義情報-要素テーブルがある場合(ステップS3706:Yes)、情報処理装置101は、画面定義情報-要素テーブルを1つ進めて(ステップS3707)、ステップS3703に戻る。
【0205】
一方、次の画面定義情報-要素テーブルがない場合(ステップS3706:No)、情報処理装置101は、正規要素テーブル-要素テーブル作成処理を呼び出したステップに戻る。
【0206】
これにより、正規要素テーブルnt-要素テーブルを作成することができる。
【0207】
つぎに、
図38を用いて、
図33に示したステップS3309の空白挿入処理の具体的な処理手順について説明する。
【0208】
図38は、空白挿入処理の具体的処理手順の一例を示すフローチャートである。
図38のフローチャートにおいて、まず、情報処理装置101は、次の正規要素テーブルを読み込む(ステップS3801)。そして、情報処理装置101は、読み込んだ正規要素テーブルに要素テーブルがあるか否かを判断する(ステップS3802)。
【0209】
ここで、要素テーブルがない場合(ステップS3802:No)、情報処理装置101は、正規要素テーブル-要素テーブルに、位置(横)「0」、サイズ(横)「画面定義情報 -画面サイズ(横)」、要素名「Space」を追加して(ステップS3803)、ステップS3801に戻る。
【0210】
一方、要素テーブルがある場合(ステップS3802:Yes)、情報処理装置101は、横位置を保存する一時変数Yに0を設定する(ステップS3804)。そして、情報処理装置101は、正規要素テーブル-要素テーブルを読み込む(ステップS3805)。つぎに、情報処理装置101は、読み込んだ要素テーブルの位置(横)が一時変数Yと同じか否かを判断する(ステップS3806)。
【0211】
ここで、一時変数Yと異なる場合(ステップS3806:No)、情報処理装置101は、読み込んだ要素テーブルの次に、位置(横)「Y」、サイズ(横)「Y-”画面定義情報-位置(横)”」、要素名「Space」の要素を追加して(ステップS3807)、ステップS3808に移行する。
【0212】
一方、一時変数Yと同じ場合には(ステップS3806:Yes)、情報処理装置101は、横位置を保存する一時変数Yに、「Y=読み込んだ要素テーブルの位置(横)+サイズ(横)」の値を設定する(ステップS3808)。つぎに、情報処理装置101は、読み込んでいない正規要素テーブル-要素テーブルがあるか否かを判断する(ステップS3809)。
【0213】
ここで、正規要素テーブル-要素テーブルがある場合(ステップS3809:Yes)、ステップS3805に戻る。一方、正規要素テーブル-要素テーブルがない場合(ステップS3809:No)、情報処理装置101は、読み込んでいない正規要素テーブルがあるか否かを判断する(ステップS3810)。
【0214】
ここで、正規要素テーブルがある場合(ステップS3810:Yes)、情報処理装置101は、ステップS3801に戻る。一方、正規要素テーブルがない場合(ステップS3810:No)、情報処理装置101は、空白挿入処理を呼び出したステップに戻る。
【0215】
これにより、何も定義されていない箇所に空白領域を定義することができる。
【0216】
つぎに、
図39を用いて、
図31に示したステップS3103の構成情報出力処理の具体的な処理手順について説明する。
【0217】
図39は、構成情報出力処理の具体的処理手順の一例を示すフローチャートである。
図39のフローチャートにおいて、まず、情報処理装置101は、正規要素テーブルを読み込む(ステップS3901)。つぎに、情報処理装置101は、正規要素テーブル-要素テーブルを読み込み、要素名を画面構成情報に出力する(ステップS3902)。
【0218】
そして、情報処理装置101は、画面構成情報に区切り文字”,”を出力する(ステップS3903)。つぎに、情報処理装置101は、未読み込みの正規要素テーブル-要素テーブルがあるか否かを判断する(ステップS3904)。ここで、未読み込みの正規要素テーブル-要素テーブルがある場合(ステップS3904:Yes)、情報処理装置101は、ステップS3902に戻る。
【0219】
一方、未読み込みの正規要素テーブル-要素テーブルがない場合(ステップS3904:No)、情報処理装置101は、画面構成情報に改行を表す”NewLine”を出力する(ステップS3905)。つぎに、情報処理装置101は、画面構成情報に区切り文字”,”を出力する(ステップS3906)。
【0220】
そして、情報処理装置101は、未読み込みの正規要素テーブルがあるか否かを判断する(ステップS3907)。ここで、未読み込みの正規要素テーブルがある場合(ステップS3907:Yes)、情報処理装置101は、ステップS3901に戻る。一方、未読み込みの正規要素テーブルがない場合(ステップS3907:No)、情報処理装置101は、構成情報出力処理を呼び出したステップに戻る。
【0221】
これにより、正規要素テーブルntを符号化して、画面構成情報を出力することができる。
【0222】
以上説明したように、実施の形態にかかる情報処理装置101によれば、第1システムの第1画面と第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出することができる。そして、情報処理装置101によれば、それぞれの画面について、抽出した複数の要素に関する情報に基づいて、正規化処理を実行し、それぞれの画面について実行した正規化処理の結果を出力することができる。正規化処理は、所定の正規化規則に従って、複数の要素それぞれの種別、複数の要素それぞれの要素名および複数の要素の要素間の相対的な位置関係を区別可能とし、複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する処理である。
【0223】
これにより、画面定義独自の表現の差を吸収して、システムの移行前後で画面の構成要素に漏れがなく、移行前後で画面の構成要素の位置関係に変更がないことを検証可能な情報を提供することができる。
【0224】
また、情報処理装置101によれば、それぞれの画面について実行した正規化処理の結果を比較し、比較した結果を出力することができる。
【0225】
これにより、システムの移行前後で画面の構成要素に漏れがなく、移行前後で画面の構成要素の位置関係に変更がないことを容易に検証することができる。
【0226】
また、情報処理装置101によれば、正規化処理において、さらに、複数の要素の要素間の相対的な大小関係を区別可能にすることができる。
【0227】
これにより、移行前の画面構成における要素間の相対的な大小関係が、移行後の画面構成においても維持されているかを検証することができる。
【0228】
また、情報処理装置101によれば、画面を構成する要素として、入力項目、出力項目、リテラル、ボタンおよび画像の少なくともいずれかを表す要素に関する情報を画面定義ファイルから抽出することができる。
【0229】
これにより、入力項目、出力項目、固定リテラル(定数)、ボタン、画像などの構成要素について、移行前後で漏れがなく、移行前後で位置関係に変更がないことを検証することができる。
【0230】
また、情報処理装置101によれば、画面を構成する要素として、空白を表す要素に関する情報を画面定義ファイルから抽出することができる。
【0231】
これにより、例えば、要素間の空白を含めて、移行前後で漏れがなく、移行前後で位置関係に変更がないことを検証することができる。
【0232】
また、情報処理装置101によれば、正規化処理において、さらに、複数の要素それぞれの値を区別可能にすることができる。
【0233】
これにより、移行前の画面構成における要素の値(初期値、項目名、ボタン名など)が、移行後の画面構成においても同じであるかを検証することができる。
【0234】
また、情報処理装置101によれば、それぞれの画面について、複数の要素それぞれの縦位置と縦サイズとに基づき当該画面を行方向に区切って分割した領域ごとに、当該領域に桁方向に出現する要素の種別を含む要素名を羅列し、領域が行方向に切り替わる際に、改行を表す種別を含む要素名を挿入した画面構成情報を作成することができる。例えば、要素の種別が改行、空白以外の場合、要素名は、要素の種別と、当該種別の要素が画面上で宣言された順番(画面上での要素の出現順)を示す識別番号とを含む。
【0235】
これにより、例えば、画面の左上を頂点として、行桁方向に要素を走査した際に、どの種別の要素が、どの順番で出現するかを示す画面構成情報を作成することができる。
【0236】
また、情報処理装置101によれば、それぞれの画面について、複数の要素それぞれの横位置と横サイズとに基づき当該画面を桁方向に区切って分割した領域ごとに、当該領域に行方向に出現する要素の種別を含む要素名を羅列し、領域が桁方向に切り替わる際に、改行を表す種別を含む要素名を挿入した画面構成情報を作成することができる。
【0237】
これにより、例えば、画面の左上を頂点として、桁行方向に要素を走査した際に、どの種別の要素が、どの順番で出現するかを示す画面構成情報を作成することができる。
【0238】
これらのことから、情報処理装置101によれば、移行前後の各画面の画面定義ファイルの構成要素を正規化することで、画面定義ファイル固有の表現や、要素の厳格な位置などに左右されず、移行前後の画面構成を比較することが可能となる。これにより、移行前後の画面構成を容易に検証可能となり、システム移行にともなう画面構成の検証にかかる作業負荷や作業時間を削減することができる。
【0239】
例えば、画面定義ファイルの構成要素を正規化することで、画面キャプチャを用いた画面比較のように、画面定義ファイル固有の表現や要素の厳格な位置の違いにより、画面の構成が同じ画面同士を異なる画面と判断するのを防ぐことができる。また、画面定義ファイルの構成要素を正規化することで、プログラムを起動せずに、移行前後の画面構成を検証することができる。このため、例えば、動作環境の違いにより、移行前後の画面を並べて表示することができない場合であっても、画面構成を検証することができる。また、正規化規則を複数用いることで、多観点での検証を行うことができる。
【0240】
なお、本実施の形態で説明した検証方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検証プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本検証プログラムは、インターネット等のネットワークを介して配布してもよい。
【0241】
また、本実施の形態で説明した情報処理装置101は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
【0242】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0243】
(付記1)第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
処理をコンピュータに実行させることを特徴とする検証プログラム。
【0244】
(付記2)前記それぞれの画面について実行した前記正規化処理の結果を比較する、処理を前記コンピュータに実行させ、
前記出力する処理は、
比較した結果を出力する、ことを特徴とする付記1に記載の検証プログラム。
【0245】
(付記3)前記正規化処理を実行する処理は、
さらに、前記複数の要素の要素間の相対的な大小関係を区別可能にする、ことを特徴とする付記1または2に記載の検証プログラム。
【0246】
(付記4)前記複数の要素は、入力項目、出力項目、リテラル、ボタンおよび画像の少なくともいずれかを表す要素を含む、ことを特徴とする付記1~3のいずれか一つに記載の検証プログラム。
【0247】
(付記5)前記複数の要素は、空白を表す要素を含む、ことを特徴とする付記4に記載の検証プログラム。
【0248】
(付記6)前記正規化処理を実行する処理は、
さらに、前記複数の要素それぞれの値を区別可能にする、ことを特徴とする付記1~5のいずれか一つに記載の検証プログラム。
【0249】
(付記7)前記正規化処理を実行する処理は、
前記それぞれの画面について、前記複数の要素それぞれの縦位置と縦サイズとに基づき当該画面を行方向に区切って分割した領域ごとに、当該領域に桁方向に出現する要素の種別を含む要素名を羅列し、前記領域が行方向に切り替わる際に、改行を表す種別を含む要素名を挿入した画面構成情報を作成する、ことを特徴とする付記1に記載の検証プログラム。
【0250】
(付記8)前記正規化処理を実行する処理は、
前記それぞれの画面について、前記複数の要素それぞれの横位置と横サイズとに基づき当該画面を桁方向に区切って分割した領域ごとに、当該領域に行方向に出現する要素の種別を含む要素名を羅列し、前記領域が桁方向に切り替わる際に、改行を表す種別を含む要素名を挿入した画面構成情報を作成する、ことを特徴とする付記1に記載の検証プログラム。
【0251】
(付記9)第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
処理をコンピュータに実行させることを特徴とする検証方法。
【0252】
(付記10)第1システムの第1画面と前記第1システムを移行する第2システムの第2画面それぞれの画面について、当該画面の構成を定義する画面定義ファイルから、当該画面を構成する複数の要素に関する情報を抽出し、
前記それぞれの画面について、抽出した前記複数の要素に関する情報に基づいて、所定の正規化規則に従って、前記複数の要素それぞれの種別、前記複数の要素それぞれの要素名および前記複数の要素の要素間の相対的な位置関係を区別可能とし、前記複数の要素それぞれの画面間における表示上の形状、大きさの差を除外する正規化処理を実行し、
前記それぞれの画面について実行した前記正規化処理の結果を出力する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0253】
101 情報処理装置
110,120 画面定義ファイル
111,121,2200,2900 画面構成情報
200 バス
201 CPU
202 メモリ
203 ディスクドライブ
204 ディスク
205 通信I/F
206,306 ディスプレイ
207 入力装置
208 可搬型記録媒体I/F
209 可搬型記録媒体
210 ネットワーク
301 取得部
302 抽出部
303 正規化部
304 比較部
305 出力部
400 第1画面
500 第2画面
600 HTMLファイル
1010 画面定義情報
1011,1600,2300 要素テーブル
1020 正規要素テーブル
3000 出力画面