JP2011180850A - モデル生成装置、モデル生成方法およびモデル生成プログラム - Google Patents
モデル生成装置、モデル生成方法およびモデル生成プログラム Download PDFInfo
- Publication number
- JP2011180850A JP2011180850A JP2010044827A JP2010044827A JP2011180850A JP 2011180850 A JP2011180850 A JP 2011180850A JP 2010044827 A JP2010044827 A JP 2010044827A JP 2010044827 A JP2010044827 A JP 2010044827A JP 2011180850 A JP2011180850 A JP 2011180850A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- transition
- model
- model generation
- definition
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できるようにすることを目的とする。
【解決手段】仕様入力部210は画面遷移仕様101を入力する。入力検証部220は画面遷移仕様101に編集ミスがあるか否かを検証する。画面遷移仕様101に編集ミスがある場合、モデル出力部260が編集ミスを通知し、処理は終了する。画面遷移仕様101に編集ミスがない場合、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定する。さらに、メモリ部240は画面遷移仕様101に基づいてモデル生成情報241を生成する。モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する。モデル出力部260は画面遷移モデル102を出力する。
【選択図】図1
【解決手段】仕様入力部210は画面遷移仕様101を入力する。入力検証部220は画面遷移仕様101に編集ミスがあるか否かを検証する。画面遷移仕様101に編集ミスがある場合、モデル出力部260が編集ミスを通知し、処理は終了する。画面遷移仕様101に編集ミスがない場合、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定する。さらに、メモリ部240は画面遷移仕様101に基づいてモデル生成情報241を生成する。モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する。モデル出力部260は画面遷移モデル102を出力する。
【選択図】図1
Description
本発明は、例えば、画面遷移の仕様を検査するモデルを生成するモデル生成装置、モデル生成方法およびモデル生成プログラムに関するものである。
従来、利用者によって操作される各種画面を扱う端末(例えば、金融端末)のソフトウェアアプリケーション(以下、ソフトウェア)の開発において、利用者の操作に応じた画面の遷移を適切に設計する。
開発者は、デッドロックや未到達画面が無いように設計するために、仕様書のレビューや実機でのソフトウェアテストによって信頼性を確保し、品質を向上していた。
開発者は、デッドロックや未到達画面が無いように設計するために、仕様書のレビューや実機でのソフトウェアテストによって信頼性を確保し、品質を向上していた。
また、ソフトウェア開発の設計段階において、ソフトウェアの動作を検証するモデル検査手法が知られている。
このモデル検査手法は、ソフトウェアの仕様に基づいて状態遷移系のモデルプログラムを構築し、モデル検査器にてすべての状態遷移を検査することによって、要求される性質が満たされていることを検証するものである。
これによって、ソフトウェア作成後の実機テストにて発見されていたソフトウェアの不具合を設計段階で検証し、開発遅延を防ぐことができる。
このモデル検査手法は、ソフトウェアの仕様に基づいて状態遷移系のモデルプログラムを構築し、モデル検査器にてすべての状態遷移を検査することによって、要求される性質が満たされていることを検証するものである。
これによって、ソフトウェア作成後の実機テストにて発見されていたソフトウェアの不具合を設計段階で検証し、開発遅延を防ぐことができる。
しかし、従来のモデル検査手法を用いるには、自然言語や表形式で記述された仕様を元に、専用の言語を用いて画面遷移モデルプログラムを構築する必要がある。このため、専用言語を習得しなければならなかった。
この課題を解決するために、専用言語の習得を必要とせず、動作仕様からモデルを構築するモデル生成装置が提案されている(例えば、特許文献1)。
本モデル生成装置は、入力されたソフトウェアの動作仕様からモデル検査用のモデルを出力する装置である。
本モデル生成装置は、入力されたソフトウェアの動作仕様からモデル検査用のモデルを出力する装置である。
しかし、上記従来のモデル生成装置では、入力された仕様のミスも含めてモデル検査手法によって検証するように構成されている。このため、検証にかかる時間が多く、ソフトウェア開発を効率的に進めることは困難であった。また、仕様の欠陥によってモデルが想定外の動作をしても、その原因を解析することも困難であった。
本発明は、例えば、画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できるようにすることを目的とする。
本発明のモデル生成装置は、
他の画面が表示される前の遷移元画面を識別する遷移元画面IDと遷移元画面の次に表示される遷移先画面を識別する遷移先画面IDとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力する仕様入力部と、
前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面IDが他の画面遷移定義の遷移元画面IDと同一でない場合、画面ID重複無しと判定する入力検証部と、
前記入力検証部によって画面ID重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成するモデル生成部とを備える。
他の画面が表示される前の遷移元画面を識別する遷移元画面IDと遷移元画面の次に表示される遷移先画面を識別する遷移先画面IDとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力する仕様入力部と、
前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面IDが他の画面遷移定義の遷移元画面IDと同一でない場合、画面ID重複無しと判定する入力検証部と、
前記入力検証部によって画面ID重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成するモデル生成部とを備える。
本発明によれば、例えば、画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できる。
実施の形態1.
画面遷移の仕様を検証するためのモデルを生成する前に、仕様の編集ミス(例えば、情報の抜けや重複)を検出する形態について説明する。
画面遷移の仕様を検証するためのモデルを生成する前に、仕様の編集ミス(例えば、情報の抜けや重複)を検出する形態について説明する。
図1は、実施の形態1における仕様検証システム100の概要図である。
仕様検証システム100によるモデル検査の流れとモデル生成装置200の機能構成とについて、図1に基づいて以下に説明する。
仕様検証システム100によるモデル検査の流れとモデル生成装置200の機能構成とについて、図1に基づいて以下に説明する。
まず、仕様検証システム100によるモデル検査の流れについて説明する。
仕様検証システム100は、モデル生成装置200とモデル検査器300とを備える。
モデル生成装置200は、画面遷移仕様101に基づいて画面遷移モデル102を生成する装置である。
画面遷移仕様101は画面遷移に関わる仕様を示すデータである。
画面遷移モデル102は画面遷移仕様101を検査するプログラムである。プログラムにはクラスやオブジェクトなどプログラムに類するものを含む。
モデル生成装置200は、モデル検査器300が処理できる専用言語を用いて画面遷移モデル102を生成する。
画面遷移仕様101は画面遷移に関わる仕様を示すデータである。
画面遷移モデル102は画面遷移仕様101を検査するプログラムである。プログラムにはクラスやオブジェクトなどプログラムに類するものを含む。
モデル生成装置200は、モデル検査器300が処理できる専用言語を用いて画面遷移モデル102を生成する。
モデル検査器300は、モデル生成装置200によって生成された画面遷移モデル102を検査し、検証結果103を出力する装置である。
仕様検証システム100の利用者は、モデル生成装置200に画面遷移仕様101を入力する。
モデル生成装置200は入力された画面遷移仕様101に基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を出力する。
利用者はモデル生成装置200から出力された画面遷移モデル102をモデル検査器300に入力し、モデル検査器300を操作して検証結果103を得る。
モデル生成装置200は入力された画面遷移仕様101に基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を出力する。
利用者はモデル生成装置200から出力された画面遷移モデル102をモデル検査器300に入力し、モデル検査器300を操作して検証結果103を得る。
SPIN(http://spinroot.com/spin/whatispin.html)は、モデル検査器300の一例である。
次に、モデル生成装置200の機能構成について説明する。
モデル生成装置200は、仕様入力部210、入力検証部220、初期画面検出部230、メモリ部240、モデル生成部250およびモデル出力部260を備える。
仕様入力部210は、他の画面が表示される前の遷移元画面を識別する遷移元画面IDと遷移元画面の次に表示される遷移先画面を識別する遷移先画面IDとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様101として入力する。
入力検証部220は、仕様入力部210に入力された画面遷移仕様101に含まれる複数の画面遷移定義それぞれの遷移元画面IDが他の画面遷移定義の遷移元画面IDと同一でない場合、画面ID重複無し(チェックOK)と判定する。
入力検証部220は、画面遷移仕様101に含まれる複数の画面遷移定義それぞれの遷移先画面IDが画面遷移仕様101に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合、画面定義抜け無し(チェックOK)と判定する。
画面ID重複有りまたは画面定義抜け有りの場合(チェックNG)、入力検証部220はエラー情報(後述する編集ミス情報221)をモデル出力部260に出力する。
入力検証部220は、画面遷移仕様101に含まれる複数の画面遷移定義それぞれの遷移先画面IDが画面遷移仕様101に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合、画面定義抜け無し(チェックOK)と判定する。
画面ID重複有りまたは画面定義抜け有りの場合(チェックNG)、入力検証部220はエラー情報(後述する編集ミス情報221)をモデル出力部260に出力する。
初期画面検出部230は、画面遷移仕様101に基づいて初期画面の画面ID(初期画面ID231)を特定する。
メモリ部240は、画面遷移仕様101に基づいて遷移先画面IDと遷移元画面IDとを対応付けたモデル生成情報241を生成する。
モデル生成部250は、入力検証部220によって画面ID重複無しと画面定義抜け無しとを判定された場合、初期画面検出部230により特定された初期画面ID231とメモリ部240により生成されたモデル生成情報241とに基づいて画面遷移モデル102を所定のアルゴリズムによって生成する。画面遷移モデル102は画面遷移仕様101を検査するプログラムである。
モデル出力部260は、モデル生成部250によって生成された画面遷移モデル102を出力する。
モデル出力部260は、入力検証部220のエラー情報を出力する。
モデル出力部260は、入力検証部220のエラー情報を出力する。
図2は、実施の形態1におけるモデル生成装置200のハードウェア資源の一例を示す図である。
図2において、モデル生成装置200は、CPU911(Central・Processing・Unit)(マイクロプロセッサ、マイクロコンピュータともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、ドライブ装置904、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置904は、FD(Flexible・Disk・Drive)、CD(Compact Disc)、DVD(Digital・Versatile・Disc)などの記憶媒体を読み書きする装置である。
図2において、モデル生成装置200は、CPU911(Central・Processing・Unit)(マイクロプロセッサ、マイクロコンピュータともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、ドライブ装置904、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。ドライブ装置904は、FD(Flexible・Disk・Drive)、CD(Compact Disc)、DVD(Digital・Versatile・Disc)などの記憶媒体を読み書きする装置である。
通信ボード915は、有線または無線で、LAN(Local Area Network)、インターネット、電話回線などの通信網に接続している。
磁気ディスク装置920には、OS921(オペレーティングシステム)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。
プログラム群923には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、CPU911により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
ファイル群924には、実施の形態において説明する「〜部」で使用される各種データ(入力、出力、判定結果、計算結果、処理結果など)が含まれる。
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
図3は、実施の形態1におけるモデル生成装置200のモデル生成方法を示すフローチャートである。
実施の形態1におけるモデル生成装置200のモデル生成方法について、図3に基づいて以下に説明する。
実施の形態1におけるモデル生成装置200のモデル生成方法について、図3に基づいて以下に説明する。
まず、モデル生成方法の概要について説明する。
仕様入力部210は画面遷移仕様101を入力する(S110)。
入力検証部220は画面遷移仕様101に編集ミスがあるか否かを検証する(S120)。
画面遷移仕様101に編集ミスがある場合(S130:YES)、モデル出力部260が編集ミスを通知し(S131)、処理は終了する。
画面遷移仕様101に編集ミスがない場合(S130:NO)、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定し(S140)、メモリ部240は画面遷移仕様101に基づいてモデル生成情報241を生成する(S150)。
モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する(S160)。
モデル出力部260は画面遷移モデル102を出力する(S170)。
入力検証部220は画面遷移仕様101に編集ミスがあるか否かを検証する(S120)。
画面遷移仕様101に編集ミスがある場合(S130:YES)、モデル出力部260が編集ミスを通知し(S131)、処理は終了する。
画面遷移仕様101に編集ミスがない場合(S130:NO)、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定し(S140)、メモリ部240は画面遷移仕様101に基づいてモデル生成情報241を生成する(S150)。
モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する(S160)。
モデル出力部260は画面遷移モデル102を出力する(S170)。
次に、モデル生成方法の詳細について説明する。
S110において、仕様入力部210は画面遷移仕様101を入力し、入力した画面遷移仕様101を入力検証部220に出力する。
図4は、実施の形態1における画面遷移仕様101の一例を示す図である。
S110(図3参照)において仕様入力部210に入力される画面遷移仕様101の一例について、図4に基づいて以下に説明する。
S110(図3参照)において仕様入力部210に入力される画面遷移仕様101の一例について、図4に基づいて以下に説明する。
画面遷移仕様101は、遷移元の画面を識別する「画面ID」(遷移元画面ID)と遷移元の画面で行われる「操作」とに対応付けて遷移先の画面を識別する画面ID(遷移先画面ID)を示した表形式(テーブル形式ともいう)のデータである。
“画面x”は画面を識別する画面IDを表し、“操作x”は操作を識別する操作IDを表す。
以下、画面遷移仕様101の行を「画面遷移定義」という。
“画面x”は画面を識別する画面IDを表し、“操作x”は操作を識別する操作IDを表す。
以下、画面遷移仕様101の行を「画面遷移定義」という。
例えば、画面遷移定義X1は、“画面1(遷移元画面)”で“操作1”が行われた場合には“画面2(遷移先画面)”に遷移し、“画面1(遷移元画面)”で“操作2”が行われた場合には“画面1(遷移先画面)”のままであることを示している。また、“画面1”では“操作3”が行われないことを示している(図中の「−」)。
また、画面遷移定義X2は、“画面2”で“操作1”が行われた場合には“画面2”のままであることを示している。さらに、“画面2”で“操作2”が行われた場合、“条件1”が成り立っていれば“画面2”のまま、“条件1”が成り立っていなければ“画面3”に遷移することを示している。また、“画面2”では“操作3”が行われないことを示している。
また、画面遷移定義X2は、“画面2”で“操作1”が行われた場合には“画面2”のままであることを示している。さらに、“画面2”で“操作2”が行われた場合、“条件1”が成り立っていれば“画面2”のまま、“条件1”が成り立っていなければ“画面3”に遷移することを示している。また、“画面2”では“操作3”が行われないことを示している。
画面遷移仕様101は表形式でなくてもよい。例えば、画面遷移仕様101はCSV形式や他のテキスト形式であっても構わない。
図3に戻り、モデル生成方法の説明を続ける。
S110の後、処理はS120に進む。
S120において、入力検証部220は仕様入力部210に入力された画面遷移仕様101に編集ミス(エディトリアルなミス)があるか否かを検証する。
図5は、実施の形態1における入力検証処理(S120)を示すフローチャートである。
実施の形態1における入力検証処理(S120)について、図5に基づいて以下に説明する。
実施の形態1における入力検証処理(S120)について、図5に基づいて以下に説明する。
S121において、入力検証部220は、画面遷移仕様101に定義されている遷移元画面IDが一意であるか否かを検証する(画面ID重複チェック)。
例えば、入力検証部220は画面遷移定義を順に一つずつ選択する。
入力検証部220は、選択した画面遷移定義の「画面ID」が他の画面遷移定義の「画面ID」と同一であるか否かを判定する。
入力検証部220は、選択した画面遷移定義の「画面ID」が他の画面遷移定義の「画面ID」と同一であるか否かを判定する。
いずれの画面遷移定義の「画面ID」も他の画面遷移定義の「画面ID」と同一でない場合、遷移元画面IDは一意である(画面ID重複チェック:OK)。
少なくともいずれかの画面遷移定義の「画面ID」が他の画面遷移定義の「画面ID」と同一である場合、遷移元画面IDは一意でない(画面ID重複チェック:NG)。
少なくともいずれかの画面遷移定義の「画面ID」が他の画面遷移定義の「画面ID」と同一である場合、遷移元画面IDは一意でない(画面ID重複チェック:NG)。
S121の後、処理はS122に進む。
S122において、入力検証部220は、画面遷移仕様101に遷移先画面の画面遷移定義が有るか否かを検証する(画面定義抜けチェック)。
例えば、入力検証部220は各画面遷移定義から遷移先画面IDを抽出し、抽出した遷移先画面の画面IDが少なくともいずれかの画面遷移定義の遷移元画面の「画面ID」と一致するか否かを判定する。
抽出する遷移先画面IDは条件の有無および条件の成立・不成立に関わらない。例えば、図4の画面遷移定義X2からは“画面2”と“画面3”とを抽出する。
抽出する遷移先画面IDは条件の有無および条件の成立・不成立に関わらない。例えば、図4の画面遷移定義X2からは“画面2”と“画面3”とを抽出する。
全ての遷移先画面IDが少なくともいずれかの画面遷移定義の遷移元画面の「画面ID」と一致する場合、遷移先画面の画面遷移定義の定義漏れはない(画面定義抜けチェック:OK)。
少なくともいずれかの遷移先画面IDがいずれの画面遷移定義の遷移元画面の「画面ID」とも一致しない場合、遷移先画面の画面遷移定義の定義漏れがある(画面定義抜けチェック:NG)。
少なくともいずれかの遷移先画面IDがいずれの画面遷移定義の遷移元画面の「画面ID」とも一致しない場合、遷移先画面の画面遷移定義の定義漏れがある(画面定義抜けチェック:NG)。
S122の後、入力検証処理(S120)は終了する。
画面ID重複チェックと画面定義抜けチェックとが共に「OK」である場合、画面遷移仕様101に編集ミスはない。
画面ID重複チェックと画面定義抜けチェックとの少なくともいずれかが「NG」である場合、画面遷移仕様101に編集ミスがある。
画面ID重複チェックと画面定義抜けチェックとの少なくともいずれかが「NG」である場合、画面遷移仕様101に編集ミスがある。
但し、画面ID重複チェックと画面定義抜けチェックとのいずれかのみを実行して、画面遷移仕様101に編集ミスがあるか否かを検証しても構わない。
図3に戻り、モデル生成方法の説明を続ける。
S120の後、処理はS130に進む。
S130において、画面遷移仕様101に編集ミスがある場合(YES)、入力検証部220は画面遷移仕様101の編集ミス情報221をモデル出力部260に出力する。
編集ミス情報221は、画面ID重複チェックにおいて重複した遷移元画面IDや、画面定義抜けチェックにおいて画面遷移定義が抜けていた遷移先画面IDなどを含む。
処理はS131に進む。
編集ミス情報221は、画面ID重複チェックにおいて重複した遷移元画面IDや、画面定義抜けチェックにおいて画面遷移定義が抜けていた遷移先画面IDなどを含む。
処理はS131に進む。
S131において、モデル出力部260は、画面遷移仕様101の編集ミス情報221を利用者に通知する。
例えば、モデル出力部260は、画面遷移仕様101の編集ミス情報221をファイルデータに書き出し、そのファイルデータを記憶装置に記憶する。
また例えば、モデル出力部260は、画面遷移仕様101の編集ミス情報221を表示装置に表示する。
S131の後、画面遷移モデル102を生成せずに処理を終了する。
例えば、モデル出力部260は、画面遷移仕様101の編集ミス情報221をファイルデータに書き出し、そのファイルデータを記憶装置に記憶する。
また例えば、モデル出力部260は、画面遷移仕様101の編集ミス情報221を表示装置に表示する。
S131の後、画面遷移モデル102を生成せずに処理を終了する。
S130において、画面遷移仕様101に編集ミスがない場合(NO)、入力検証部220は画面遷移仕様101を初期画面検出部230とメモリ部240とに出力する。処理はS140に進む。
S140において、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定し、特定した初期画面ID231を記憶する。
例えば、初期画面検出部230は、画面遷移仕様101の先頭の画面遷移定義に設定されている遷移元画面の「画面ID」(図4の場合“画面1”)を初期画面ID231として特定する。
但し、初期画面検出部230は初期画面ID231が定義された仕様を画面遷移仕様101の代わりに入力して初期画面ID231を特定しても構わない。
また、画面遷移仕様101に初期画面ID231を別途定義しておいても構わない。
S140の後、処理はS150に進む。
例えば、初期画面検出部230は、画面遷移仕様101の先頭の画面遷移定義に設定されている遷移元画面の「画面ID」(図4の場合“画面1”)を初期画面ID231として特定する。
但し、初期画面検出部230は初期画面ID231が定義された仕様を画面遷移仕様101の代わりに入力して初期画面ID231を特定しても構わない。
また、画面遷移仕様101に初期画面ID231を別途定義しておいても構わない。
S140の後、処理はS150に進む。
S150において、メモリ部240は画面遷移仕様101に基づいてモデル生成情報241を生成し、生成したモデル生成情報241を記憶する。
図6は、実施の形態1におけるモデル生成情報241の一例を示す図である。
S150(図3参照)においてメモリ部240が生成するモデル生成情報241の一例について、図6に基づいて以下に説明する。
S150(図3参照)においてメモリ部240が生成するモデル生成情報241の一例について、図6に基づいて以下に説明する。
モデル生成情報241は「画面ID」と「遷移先画面」とを対応付けている。
「画面ID」は遷移元画面IDを示し、「遷移先画面」は遷移先画面IDを示す。
以下、モデル生成情報241の行を「モデル生成ライン」という。
「画面ID」は遷移元画面IDを示し、「遷移先画面」は遷移先画面IDを示す。
以下、モデル生成情報241の行を「モデル生成ライン」という。
例えば、モデル生成ラインZ1は、“画面1”から“画面1”または“画面2”に遷移することを示している。
メモリ部240は、画面遷移仕様101(図4参照)に基づいて例えば以下のようにモデル生成情報241を生成する。
メモリ部240は、画面遷移定義を順に一つずつ選択する。
メモリ部240は、モデル生成情報241にモデル生成ラインを追加する。
メモリ部240は、選択した画面遷移定義の「画面ID」を、追加したモデル生成ラインの「画面ID」に設定する。
メモリ部240は、選択した画面遷移定義に設定されている遷移先画面IDを、追加したモデル生成ラインの「遷移先画面」に設定する。但し、「遷移先画面」には遷移先画面IDを重複させずに設定するものとする。
メモリ部240は、モデル生成情報241にモデル生成ラインを追加する。
メモリ部240は、選択した画面遷移定義の「画面ID」を、追加したモデル生成ラインの「画面ID」に設定する。
メモリ部240は、選択した画面遷移定義に設定されている遷移先画面IDを、追加したモデル生成ラインの「遷移先画面」に設定する。但し、「遷移先画面」には遷移先画面IDを重複させずに設定するものとする。
図3に戻り、モデル生成方法の説明を続ける。
S150の後、処理はS160に進む。
S160において、モデル生成部250はS140で特定された初期画面ID231を入力し、S150で生成されたモデル生成情報241を入力する。
モデル生成部250は、入力した初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を記憶する。
モデル生成部250は、入力した初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を記憶する。
図7は、実施の形態1における画面遷移モデル102の一例を示す図である。
S160(図3参照)においてモデル生成部250が生成する画面遷移モデル102の一例について、図7に基づいて以下に説明する。
S160(図3参照)においてモデル生成部250が生成する画面遷移モデル102の一例について、図7に基づいて以下に説明する。
画面遷移モデル102は初期画面設定(E)とループ処理(A)とを含む。
初期画面設定(E)は画面ID(変数)を初期設定する。
ループ処理(A)はモデル生成情報241に従って画面IDを変更する。
ループ処理(A)はモデル生成情報241に従って画面IDを変更する。
「do〜od」はループ命令であり、「if」は条件分岐命令である。「if」の「::」は条件の選択子を示し、括弧()内は条件を示し、「−>」以降は条件成立時の処理を示す。
図7の画面遷移モデル102が実行された場合、初期画面設定(E)において画面IDに“画面1”が設定され、ループ処理(A)において1番目または2番目の選択子(画面ID==画面1)が選択される。
1番目の選択子が選択された場合には画面IDに“画面2”が設定され、2番目の選択子が選択された場合には画面IDに“画面1”が設定される。
以後、画面IDの設定値に従ってループ処理(A)が繰り返される。
1番目の選択子が選択された場合には画面IDに“画面2”が設定され、2番目の選択子が選択された場合には画面IDに“画面1”が設定される。
以後、画面IDの設定値に従ってループ処理(A)が繰り返される。
モデル生成部250は、初期画面ID231とモデル生成情報241(図6参照)とに基づいて例えば以下のように画面遷移モデル102を生成する。
モデル生成部250は、画面ID(変数)に初期画面ID231を設定する初期画面設定(E)を記述する。
モデル生成部250は、ループ処理(A)の「do」「od」と「if」を記述する。
モデル生成部250は、モデル生成情報241から遷移元画面の「画面ID」を一つずつ順番に選択し、選択した「画面ID」に対応付けられている「遷移先画面」の画面IDを一つずつ順番に選択する。
モデル生成部250は、選択した遷移元画面の「画面ID」を選択子の条件にして記述し、選択した「遷移先画面」を条件成立時の処理にして記述する。
モデル生成部250は、ループ処理(A)の「do」「od」と「if」を記述する。
モデル生成部250は、モデル生成情報241から遷移元画面の「画面ID」を一つずつ順番に選択し、選択した「画面ID」に対応付けられている「遷移先画面」の画面IDを一つずつ順番に選択する。
モデル生成部250は、選択した遷移元画面の「画面ID」を選択子の条件にして記述し、選択した「遷移先画面」を条件成立時の処理にして記述する。
図3に戻り、モデル生成方法の説明を続ける。
S160の後、処理はS170に進む。
S170において、モデル出力部260は、S160で生成された画面遷移モデル102を入力し、入力した画面遷移モデル102を出力する。
S170により、モデル生成方法は終了する。
S170により、モデル生成方法は終了する。
モデル生成方法は上記の方法に限らない。
例えば、入力検証部220がモデル生成情報241を生成し、メモリ部240はモデル生成情報241を記憶するだけであっても構わない。また、メモリ部240はモデル生成情報241を生成せずに画面遷移仕様101を記憶し、モデル生成部250がモデル生成情報241を生成しても構わない。
例えば、入力検証部220がモデル生成情報241を生成し、メモリ部240はモデル生成情報241を記憶するだけであっても構わない。また、メモリ部240はモデル生成情報241を生成せずに画面遷移仕様101を記憶し、モデル生成部250がモデル生成情報241を生成しても構わない。
モデル生成方法(図3参照)により生成された画面遷移モデル102は、モデル検査器300により検査される。
モデル検査器300は、デッドロックの有無や画面の到達性など、画面遷移仕様101の本質的な検証を行う。
モデル検査器300は、デッドロックの有無や画面の到達性など、画面遷移仕様101の本質的な検証を行う。
例えば、モデル検査器300には画面遷移モデル102と共に画面遷移の要件が入力される。
画面遷移の要件として、遷移元画面の画面ID(画面1)と遷移先画面の画面ID(画面2)とが入力されたものとする。
画面遷移の要件として、遷移元画面の画面ID(画面1)と遷移先画面の画面ID(画面2)とが入力されたものとする。
モデル検査器300は、画面遷移モデル102(図7参照)のループ処理(A)を所定回数または所定時間、繰り返し実行し、画面IDが“画面1”から“画面2”に遷移したか否かを判定する。
モデル検査器300は、画面IDが“画面1”から“画面2”に遷移しなかった場合、画面遷移モデル102が画面遷移の要件を満たさないことを検証結果103として出力する。この場合、画面遷移仕様101は画面遷移の要件を満たしていない。
モデル検査器300は、画面IDが“画面1”から“画面2”に遷移しなかった場合、画面遷移モデル102が画面遷移の要件を満たさないことを検証結果103として出力する。この場合、画面遷移仕様101は画面遷移の要件を満たしていない。
モデル生成方法において画面遷移モデル102を生成する前に画面遷移仕様101の編集ミスを検出することにより、画面遷移仕様101の編集ミスを修正してから画面遷移モデル102を生成することができる。そして、編集ミスを含まない画面遷移モデル102をモデル検査器300を用いて検証することができる。これにより、モデル検査やソフトウェア開発を効率的に実施することができる。
実施の形態1において、例えば、以下のようなモデル生成装置(および方法、プログラム)について説明した。
モデル生成装置は、入力検証部と初期画面検出部とモデル生成部とを備え、仕様を入力とし検証モデルを出力する。
入力する仕様は、画面、操作と遷移先画面との対応関係が記述されている画面遷移仕様である。
入力検証部は、入力された仕様において、画面が一意であること、遷移先画面が定義されていることを検証する。
モデル生成部は、画面遷移のみのモデルを生成する。
入力する仕様は、画面、操作と遷移先画面との対応関係が記述されている画面遷移仕様である。
入力検証部は、入力された仕様において、画面が一意であること、遷移先画面が定義されていることを検証する。
モデル生成部は、画面遷移のみのモデルを生成する。
本装置は、画面遷移をモデル検査にて検証するための画面遷移モデルを人手を介さずに自動的に作成することができる。これにより、モデル構築のために専用言語を習得する必要がなく、効率的にソフトウェア開発が実施できる。
本装置の入力検証部では、モデル作成前に画面遷移仕様のエディトリアルなミスを検出するので、モデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
さらに、モデル生成部は条件を省略して画面遷移のみをモデル化するので、画面遷移仕様の欠陥を早急に見つけることができる。
本装置の入力検証部では、モデル作成前に画面遷移仕様のエディトリアルなミスを検出するので、モデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
さらに、モデル生成部は条件を省略して画面遷移のみをモデル化するので、画面遷移仕様の欠陥を早急に見つけることができる。
実施の形態2.
エラー処理(例外処理)を加えたモデルを生成する形態について説明する。
エラー処理(例外処理)を加えたモデルを生成する形態について説明する。
仕様検証システム100によるモデル検査の流れとモデル生成装置200の機能構成は、実施の形態1(図1参照)と同じである。
但し、モデル生成装置200の入力検証部220は、入力検証処理(S120)(図5参照)において画面定義抜けチェック(S122)を実行しなくてもよい。
モデル生成部250は、モデル生成処理(S160)(図3参照)においてエラー処理を含んだ画面遷移モデル102を生成する。
モデル生成部250は、モデル生成処理(S160)(図3参照)においてエラー処理を含んだ画面遷移モデル102を生成する。
図8は、実施の形態2における画面遷移モデル102の一例を示す図である。
実施の形態2における画面遷移モデル102について、図8に基づいて以下に説明する。
実施の形態2における画面遷移モデル102について、図8に基づいて以下に説明する。
画面遷移モデル102は、ブレーク命令(C)とエラー処理(D)とを含む。
ブレーク命令(C)はループ処理(A)のいずれの選択子にも該当しない場合にループ処理(A)を抜ける命令である。
エラー処理(D)はブレーク命令(C)によってループ処理(A)を抜けた場合に実行される処理である。例えば、エラー処理(D)として画面ID(変数)の表示命令が記述される。
ブレーク命令(C)はループ処理(A)のいずれの選択子にも該当しない場合にループ処理(A)を抜ける命令である。
エラー処理(D)はブレーク命令(C)によってループ処理(A)を抜けた場合に実行される処理である。例えば、エラー処理(D)として画面ID(変数)の表示命令が記述される。
例えば、画面遷移仕様101に遷移元画面の「画面ID」として“画面3”が定義されていない場合、モデル生成情報241は遷移元画面の「画面ID」として“画面3”を含まず、画面遷移モデル102は選択子(画面ID==画面3)を含まない。
モデル検査器300によって画面遷移モデル102が検査され、4番目の選択子(画面ID==画面2)が成立した場合、条件成立時の処理により画面IDには“画面3”が設定される。
そして、該当する選択子(画面ID==画面3)が無いため、ブレーク命令(C)によってループ処理(A)を抜け、エラー処理(D)が実行される。
モデル検査器300によって画面遷移モデル102が検査され、4番目の選択子(画面ID==画面2)が成立した場合、条件成立時の処理により画面IDには“画面3”が設定される。
そして、該当する選択子(画面ID==画面3)が無いため、ブレーク命令(C)によってループ処理(A)を抜け、エラー処理(D)が実行される。
実施の形態2において、例えば、以下のようなモデル生成装置(および方法、プログラム)について説明した。
モデル生成部は、想定外の処理に対応したエラー処理をモデルに記述する。
モデル検査において想定外の画面遷移をした場合にモデル検査が中断するため、画面遷移仕様の欠陥を早急に見つけることができる。
モデル検査において想定外の画面遷移をした場合にモデル検査が中断するため、画面遷移仕様の欠陥を早急に見つけることができる。
実施の形態3.
画面遷移の条件を加えたモデルを生成する形態について説明する。
画面遷移の条件を加えたモデルを生成する形態について説明する。
図9は、実施の形態3における仕様検証システム100の概要図である。
実施の形態3におけるモデル生成装置200の機能構成について、図9に基づいて以下に説明する。
実施の形態3におけるモデル生成装置200の機能構成について、図9に基づいて以下に説明する。
モデル生成装置200は、実施の形態1の構成(図1参照)に加えて、仕様解析部270を備える。
仕様入力部210は、遷移元画面IDと遷移先画面IDと遷移元画面から遷移先画面に遷移する遷移条件とを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様101として入力する。
仕様入力部210は、処理仕様104を入力する。
処理仕様104は、特定画面を識別する特定画面IDと特定画面の表示時に成立する成立条件とを対応付けると共に特定画面IDと特定画面の表示時に不成立になる不成立条件とを対応付けた情報を処理定義として複数含んだデータである。
仕様入力部210は、処理仕様104を入力する。
処理仕様104は、特定画面を識別する特定画面IDと特定画面の表示時に成立する成立条件とを対応付けると共に特定画面IDと特定画面の表示時に不成立になる不成立条件とを対応付けた情報を処理定義として複数含んだデータである。
入力検証部220は、処理仕様104に含まれる複数の処理定義それぞれの特定画面IDが画面遷移仕様101に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合であって、処理仕様104に含まれる複数の処理定義それぞれの成立条件が画面遷移仕様101に含まれる少なくともいずれかの画面遷移定義の遷移条件と一致する場合に、仕様対応抜け無し(チェックOK)と判定する。
入力検証部220は、処理仕様104に含まれる複数の処理定義それぞれの成立条件と対になる不成立条件が処理仕様104に含まれる少なくともいずれかの処理定義に示される場合、条件抜け無し(チェックOK)と判定する。
入力検証部220は、処理仕様104に含まれる複数の処理定義それぞれの成立条件と対になる不成立条件が処理仕様104に含まれる少なくともいずれかの処理定義に示される場合、条件抜け無し(チェックOK)と判定する。
仕様解析部270は、画面遷移仕様101と処理仕様104とを結合して、遷移元画面IDと遷移条件と遷移先画面IDと成立条件(または不成立条件)とを対応付けたモデル生成情報241を生成する。
モデル生成部250は、入力検証部220によって画面ID重複無しと画面定義抜け無しと仕様対応抜け無しと条件抜け無しとを判定された場合に、初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102として生成する。画面遷移モデル102は画面遷移仕様101と処理仕様104とを検査するプログラムである。
図10は、実施の形態3におけるモデル生成装置200のモデル生成方法を示すフローチャートである。
実施の形態3におけるモデル生成装置200のモデル生成方法について、図10に基づいて以下に説明する。
実施の形態3におけるモデル生成装置200のモデル生成方法について、図10に基づいて以下に説明する。
まず、モデル生成方法の概要について説明する。
仕様入力部210は画面遷移仕様101と処理仕様104とを入力する(S110B)。
入力検証部220は画面遷移仕様101と処理仕様104に編集ミスがあるか否かを検証する(S120B)。
画面遷移仕様101と処理仕様104に編集ミスがある場合(S130B:YES)、モデル出力部260が編集ミスを通知し(S131B)、処理は終了する。
画面遷移仕様101と処理仕様104に編集ミスがない場合(S130B:NO)、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定する(S140B)。さらに、仕様解析部270は画面遷移仕様101と処理仕様104とに基づいてモデル生成情報241を生成し、メモリ部240はモデル生成情報241を記憶する(S150B)。
モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する(S160B)。
モデル出力部260は画面遷移モデル102を出力する(S170B)。
入力検証部220は画面遷移仕様101と処理仕様104に編集ミスがあるか否かを検証する(S120B)。
画面遷移仕様101と処理仕様104に編集ミスがある場合(S130B:YES)、モデル出力部260が編集ミスを通知し(S131B)、処理は終了する。
画面遷移仕様101と処理仕様104に編集ミスがない場合(S130B:NO)、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定する(S140B)。さらに、仕様解析部270は画面遷移仕様101と処理仕様104とに基づいてモデル生成情報241を生成し、メモリ部240はモデル生成情報241を記憶する(S150B)。
モデル生成部250は初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成する(S160B)。
モデル出力部260は画面遷移モデル102を出力する(S170B)。
次に、モデル生成方法の詳細について説明する。
S110Bにおいて、仕様入力部210は画面遷移仕様101と処理仕様104とを入力し、入力した画面遷移仕様101と処理仕様104とを入力検証部220に出力する。
図11は、実施の形態3における処理仕様104の一例を示す図である。
S110B(図10参照)において仕様入力部210に入力される処理仕様104の一例について、図11に基づいて以下に説明する。
S110B(図10参照)において仕様入力部210に入力される処理仕様104の一例について、図11に基づいて以下に説明する。
処理仕様104は「画面ID」と「操作」と「処理」とを対応付けている。
「処理」は、「画面ID」で識別される画面において特定の「操作」が行われた場合に成立する条件とその場合に不成立になる条件とを示している。
“条件x”は条件を識別する条件IDを表す。
以下、処理仕様104の行を「処理定義」という。
「処理」は、「画面ID」で識別される画面において特定の「操作」が行われた場合に成立する条件とその場合に不成立になる条件とを示している。
“条件x”は条件を識別する条件IDを表す。
以下、処理仕様104の行を「処理定義」という。
例えば、処理定義Y1は“画面1”で“操作1”が行われた場合、“条件1”が成立することを示している。
また、処理定義Y2は“画面1”で“操作1”が行われた場合(Y1と同じ)、“条件2”が成立することを示している。
つまり、処理定義Y1、Y2は“画面1”で“操作1”が行われた場合、“条件1”と“条件2”との両方か、“条件1”と“条件2”のいずれかが成立することを示している。
また、処理定義Y2は“画面1”で“操作1”が行われた場合(Y1と同じ)、“条件2”が成立することを示している。
つまり、処理定義Y1、Y2は“画面1”で“操作1”が行われた場合、“条件1”と“条件2”との両方か、“条件1”と“条件2”のいずれかが成立することを示している。
処理仕様104は表形式でなくてもよい。例えば、処理仕様104はCSV形式や他のテキスト形式であっても構わない。
図10に戻り、モデル生成方法の説明を続ける。
画面遷移仕様101は、実施の形態1(図2参照)と同様である。
S110Bの後、処理はS120Bに進む。
S120Bにおいて、入力検証部220は仕様入力部210に入力された画面遷移仕様101と処理仕様104に編集ミスがあるか否かを検証する。
図12は、実施の形態3における入力検証処理(S120B)を示すフローチャートである。
実施の形態3における入力検証処理(S120B)について、図12に基づいて以下に説明する。
実施の形態3における入力検証処理(S120B)について、図12に基づいて以下に説明する。
S121Bにおいて、入力検証部220は、画面遷移仕様101に定義されている遷移元画面の画面IDが一意であるか否かを検証する(画面ID重複チェック)。
検証方法は、実施の形態1(図5のS121)と同じである。
S121Bの後、処理はS122Bに進む。
検証方法は、実施の形態1(図5のS121)と同じである。
S121Bの後、処理はS122Bに進む。
S122Bにおいて、入力検証部220は、画面遷移仕様101に遷移先画面の画面遷移定義が有るか否かを検証する(画面定義抜けチェック)。
検証方法は、実施に形態1(図5のS122)と同じである。
S122Bの後、処理はS123Bに進む。
検証方法は、実施に形態1(図5のS122)と同じである。
S122Bの後、処理はS123Bに進む。
S123Bにおいて、入力検証部220は、処理仕様104に設定されている「画面ID」「操作」「処理」が画面遷移仕様101に設定されているか否かを検証する(仕様対応抜けチェック)。
例えば、入力検証部220は、各処理定義の「画面ID」が少なくともいずれかの画面遷移定義の遷移元画面の「画面ID」と一致するか否かを判定する。
全ての処理定義の「画面ID」が少なくともいずれかの画面遷移定義の遷移元画面の「画面ID」と一致する場合、「画面ID」のチェックは「OK」である。
少なくともいずれかの処理定義の「画面ID」がいずれの画面遷移定義の遷移元画面の「画面ID」とも一致しない場合、「画面ID」のチェックは「NG」である。
全ての処理定義の「画面ID」が少なくともいずれかの画面遷移定義の遷移元画面の「画面ID」と一致する場合、「画面ID」のチェックは「OK」である。
少なくともいずれかの処理定義の「画面ID」がいずれの画面遷移定義の遷移元画面の「画面ID」とも一致しない場合、「画面ID」のチェックは「NG」である。
また、入力検証部220は、各処理定義の「操作」が画面遷移仕様101の「操作」に定義されているか否かを判定する。
全ての処理定義の「操作」が画面遷移仕様101の「操作」に定義されている場合、「操作」のチェックは「OK」である。
少なくともいずれかの処理定義の「操作」が画面遷移仕様101の「操作」に定義されていない場合、「操作」のチェックは「NG」である。
全ての処理定義の「操作」が画面遷移仕様101の「操作」に定義されている場合、「操作」のチェックは「OK」である。
少なくともいずれかの処理定義の「操作」が画面遷移仕様101の「操作」に定義されていない場合、「操作」のチェックは「NG」である。
また、入力検証部220は、各処理定義の「処理」が少なくともいずれかの画面遷移定義に設定されているか否かを判定する。
全ての処理定義の「処理」が少なくともいずれかの画面遷移定義に設定されている場合、「処理」のチェックは「OK」である。
少なくともいずれかの処理定義の「処理」がいずれの画面遷移定義にも設定されていない場合、「処理」のチェックは「NG」である。
全ての処理定義の「処理」が少なくともいずれかの画面遷移定義に設定されている場合、「処理」のチェックは「OK」である。
少なくともいずれかの処理定義の「処理」がいずれの画面遷移定義にも設定されていない場合、「処理」のチェックは「NG」である。
「画面ID」「操作」「処理」の全てのチェックが「OK」の場合、仕様対応抜けチェックは「OK」である。
「画面ID」「操作」「処理」の少なくともいずれかのチェックが「NG」の場合、仕様対応抜けチェックは「NG」である。
「画面ID」「操作」「処理」の少なくともいずれかのチェックが「NG」の場合、仕様対応抜けチェックは「NG」である。
但し、「画面ID」「操作」「処理」の少なくともいずれかのチェックを省略して、仕様対応抜けチェックを行っても構わない。
S123Bの後、処理はS124Bに進む。
S124Bにおいて、入力検証部220は、処理仕様104の「処理」に条件毎に成立と不成立とが設定されているか否かを検証する(条件抜けチェック)。
例えば、図11の処理仕様104において、処理定義Y1には“条件1成立”、処理定義Y3には“条件1不成立”が設定されているため、“条件1”のチェックは「OK」である。
また、処理定義Y2には“条件2成立”が処理定義Y1〜3には“条件2不成立”が設定されていない。他の処理定義にも“条件2不成立”が設定されていない場合、“条件2”のチェックは「NG」である。
また、処理定義Y2には“条件2成立”が処理定義Y1〜3には“条件2不成立”が設定されていない。他の処理定義にも“条件2不成立”が設定されていない場合、“条件2”のチェックは「NG」である。
全ての条件のチェックが「OK」の場合、条件抜けチェックは「OK」である。
少なくともいずれかの条件のチェックが「NG」の場合、条件抜けチェックは「NG」である。
少なくともいずれかの条件のチェックが「NG」の場合、条件抜けチェックは「NG」である。
S124Bの後、入力検証処理(S120B)は終了する。
画面ID重複チェック、画面定義抜けチェック、仕様対応抜けチェックおよび条件抜けチェックの全てが「OK」である場合、画面遷移仕様101と処理仕様104に編集ミスはない。
少なくともいずれかのチェックが「NG」である場合、画面遷移仕様101と処理仕様104に編集ミスがある。
少なくともいずれかのチェックが「NG」である場合、画面遷移仕様101と処理仕様104に編集ミスがある。
但し、少なくともいずれかのチェックを省略して、画面遷移仕様101と処理仕様104に編集ミスがあるか否かを検証しても構わない。
図10に戻り、モデル生成方法の説明を続ける。
S120Bの後、処理はS130Bに進む。
S130Bにおいて、画面遷移仕様101と処理仕様104に編集ミスがある場合(YES)、入力検証部220は画面遷移仕様101と処理仕様104の編集ミス情報221をモデル出力部260に出力する。
処理はS131Bに進む。
処理はS131Bに進む。
S131Bにおいて、モデル出力部260は、画面遷移仕様101と処理仕様104の編集ミス情報221を利用者に通知(記憶、表示など)する。
S131Bの後、画面遷移モデル102を生成せずに処理を終了する。
S131Bの後、画面遷移モデル102を生成せずに処理を終了する。
S130Bにおいて、画面遷移仕様101と処理仕様104に編集ミスがない場合(NO)、入力検証部220は画面遷移仕様101を初期画面検出部230に出力し、画面遷移仕様101と処理仕様104とを仕様解析部270に出力する。
処理はS140Bに進む。
処理はS140Bに進む。
S140Bにおいて、初期画面検出部230は画面遷移仕様101に基づいて初期画面ID231を特定し、特定した初期画面ID231を記憶する。初期画面ID231の特定方法は実施の形態1(図3のS140)と同じである。
S140Bの後、処理はS150Bに進む。
S140Bの後、処理はS150Bに進む。
S150Bにおいて、仕様解析部270は画面遷移仕様101と処理仕様104とに基づいてモデル生成情報241を生成し、生成したモデル生成情報241をメモリ部240に出力する。メモリ部240はモデル生成情報241を記憶する。
図13は、実施の形態3におけるモデル生成情報241の一例を示す図である。
S150B(図10参照)において仕様解析部270が生成するモデル生成情報241の一例について、図13に基づいて以下に説明する。
S150B(図10参照)において仕様解析部270が生成するモデル生成情報241の一例について、図13に基づいて以下に説明する。
モデル生成情報241は、実施の形態1(図6参照)に「条件」「処理」を加えたものであり、「画面ID」「条件」「遷移先画面」「処理」を対応付けている。
「画面ID」は遷移元画面の画面IDを示し、「遷移先画面」は遷移先画面の画面IDを示す。
「条件」「処理」は条件を識別する条件IDと、成立と不成立とのいずれかを示す識別子とを示す。
「画面ID」は遷移元画面の画面IDを示し、「遷移先画面」は遷移先画面の画面IDを示す。
「条件」「処理」は条件を識別する条件IDと、成立と不成立とのいずれかを示す識別子とを示す。
例えば、モデル生成ラインZ1〜3は、“画面1”から“画面2”に遷移したとき、“条件1”と“条件2”とのいずれか又は“条件1”と“条件2”との両方が成立することを示している。
また、モデル生成ラインZ4、5は、“画面2”で“条件1”が成立していると“画面2”に遷移し、“画面2”で“条件1”が不成立であると“画面3”に遷移することを示している。
また、モデル生成ラインZ4、5は、“画面2”で“条件1”が成立していると“画面2”に遷移し、“画面2”で“条件1”が不成立であると“画面3”に遷移することを示している。
仕様解析部270は、「画面ID」「条件」「遷移先画面」に画面遷移仕様101の設定値を設定し、「処理」に処理仕様104の設定値を設定する。
図14は、実施の形態3におけるモデル生成情報生成処理(S150B)を示すフローチャートである。
実施の形態3におけるモデル生成情報生成処理(S150B)について、図14に基づいて以下に説明する。
実施の形態3におけるモデル生成情報生成処理(S150B)について、図14に基づいて以下に説明する。
S151Bにおいて、仕様解析部270は、画面遷移仕様101から画面遷移定義を順に1つ選択する。以下、選択された画面遷移定義を画面遷移定義Xという。
S151Bの後、処理はS152Bに進む。
S151Bの後、処理はS152Bに進む。
S152Bにおいて、仕様解析部270は、モデル生成情報241にモデル生成ラインを追加する。以下、追加されたモデル生成ラインをモデル生成ラインZという。
S152Bの後、処理はS153Bに進む。
S152Bの後、処理はS153Bに進む。
S153Bにおいて、仕様解析部270は、画面遷移定義Xに設定されている遷移元画面の「画面ID」と遷移先画面IDと遷移条件(条件ID、成立又は不成立)とを、モデル生成ラインZの「画面ID」と「遷移先画面」と「条件」とに設定する。
S153Bの後、処理はS154Bに進む。
S153Bの後、処理はS154Bに進む。
但し、画面遷移定義Xに遷移先画面の画面IDが複数設定されている場合、その設定数だけS152BとS153Bとを実行する(図13のモデル生成ラインZ4、5参照)。
また、画面遷移定義Xに遷移条件が設定されていない場合、モデル生成ラインZの「条件」は設定されない(図13のモデル生成ラインZ1〜3参照)。
また、画面遷移定義Xに遷移条件が設定されていない場合、モデル生成ラインZの「条件」は設定されない(図13のモデル生成ラインZ1〜3参照)。
S154Bにおいて、仕様解析部270は、画面遷移定義Xに設定されている遷移元画面の「画面ID」と画面遷移定義Xに設定されている遷移先画面の画面IDに対応する「操作」と一致する処理定義を検索する。以下、該当する処理定義を処理定義Yという。
S154Bの後、処理はS155Bに進む。
S154Bの後、処理はS155Bに進む。
S155Bにおいて、処理定義Yが存在した場合(YES)、処理はS156Bに進む。
また、処理定義Yが存在しなかった場合(NO)、処理はS157Bに進む。
また、処理定義Yが存在しなかった場合(NO)、処理はS157Bに進む。
S156Bにおいて、仕様解析部270は、処理定義Yの「処理」をモデル生成ラインZの「処理」に設定する。
S156Bの後、処理はS157Bに進む。
S156Bの後、処理はS157Bに進む。
但し、処理定義Yが複数存在した場合、処理定義Y毎にモデル生成ラインZを複製し、「処理」を設定する(図13のモデル生成ラインZ1〜3を参照)。
S157Bにおいて、仕様解析部270は画面遷移仕様101の全ての画面遷移定義を選択済みであるか否かを判定する。
未選択の画面遷移定義が残っている場合(YES)、処理はS151Bに戻る。
未選択の画面遷移定義を残っていない場合(NO)、モデル生成情報生成処理(S150B)は終了する。
未選択の画面遷移定義が残っている場合(YES)、処理はS151Bに戻る。
未選択の画面遷移定義を残っていない場合(NO)、モデル生成情報生成処理(S150B)は終了する。
図10に戻り、モデル生成方法の説明を続ける。
S150Bの後、処理はS160Bに進む。
S160Bにおいて、モデル生成部250はS140Bで特定された初期画面ID231を入力し、S150Bで生成されたモデル生成情報241を入力する。
モデル生成部250は、入力した初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を記憶する。
モデル生成部250は、入力した初期画面ID231とモデル生成情報241とに基づいて画面遷移モデル102を生成し、生成した画面遷移モデル102を記憶する。
図15は、実施の形態3における画面遷移モデル102の一例を示す図である。
S160B(図10参照)においてモデル生成部250が生成する画面遷移モデル102の一例について、図15に基づいて以下に説明する。
S160B(図10参照)においてモデル生成部250が生成する画面遷移モデル102の一例について、図15に基づいて以下に説明する。
画面遷移モデル102は、初期画面設定(E)とループ処理(A)とエラー処理(D)とを含む。
ループ処理(A)は条件分岐命令(B)(b)とブレーク命令(C)とを含む。
ループ処理(A)は条件分岐命令(B)(b)とブレーク命令(C)とを含む。
図15の画面遷移モデル102が実行された場合、初期画面設定(E)において画面IDに“画面1”が設定され、ループ処理(A)の条件分岐命令(B)において1〜3番目のいずれかの選択子(画面ID==画面1)が選択される。
いずれかの選択子が選択されると画面IDに“画面2”が設定される。
また、1番目の選択子が選択されると“条件1成立”という状態が設定される。
次に、条件分岐命令(B)において選択子(画面ID==画面2)が選択され、条件分岐命令(b)において選択子(条件1成立)が選択され、画面IDに“画面2”が設定される。
以後、画面IDと状態(条件の成立・不成立)に従ってループ処理(A)が繰り返される。
いずれかの選択子が選択されると画面IDに“画面2”が設定される。
また、1番目の選択子が選択されると“条件1成立”という状態が設定される。
次に、条件分岐命令(B)において選択子(画面ID==画面2)が選択され、条件分岐命令(b)において選択子(条件1成立)が選択され、画面IDに“画面2”が設定される。
以後、画面IDと状態(条件の成立・不成立)に従ってループ処理(A)が繰り返される。
条件分岐命令(B)(b)において該当する選択子が無い場合、ブレーク命令(C)によってループ処理(A)を抜け、エラー処理(D)が実行される。
モデル生成部250は、初期画面ID231とモデル生成情報241(図13参照)とに基づいて例えば以下のように画面遷移モデル102を生成する。
モデル生成部250は、画面ID(変数)に初期画面ID231を設定する初期画面設定(E)を記述する。
モデル生成部250は、ループ処理(A)の「do」「od」を記述する。
モデル生成部250は、条件分岐命令(B)の「if」を記述する。
モデル生成部250は、モデル生成情報241からモデル生成ラインを順に一つずつ選択する。以下、選択されたモデル生成ラインをモデル生成ラインZという。
モデル生成部250は、モデル生成ラインZに「条件」が設定されている場合、条件分岐命令(b)の「if」を記述する。
モデル生成部250は、モデル生成ラインZの「画面ID」を選択子の条件にして記述し、モデル生成ラインZの「遷移先画面」と「処理」とを条件成立時の処理にして記述する。
モデル生成部250は、条件分岐命令(B)の最後の選択子としてブレーク命令(C)を記述する。
モデル生成部250は、ループ処理(A)の外にエラー処理(D)を記述する。
モデル生成部250は、ループ処理(A)の「do」「od」を記述する。
モデル生成部250は、条件分岐命令(B)の「if」を記述する。
モデル生成部250は、モデル生成情報241からモデル生成ラインを順に一つずつ選択する。以下、選択されたモデル生成ラインをモデル生成ラインZという。
モデル生成部250は、モデル生成ラインZに「条件」が設定されている場合、条件分岐命令(b)の「if」を記述する。
モデル生成部250は、モデル生成ラインZの「画面ID」を選択子の条件にして記述し、モデル生成ラインZの「遷移先画面」と「処理」とを条件成立時の処理にして記述する。
モデル生成部250は、条件分岐命令(B)の最後の選択子としてブレーク命令(C)を記述する。
モデル生成部250は、ループ処理(A)の外にエラー処理(D)を記述する。
図10に戻り、モデル生成方法の説明を続ける。
S160Bの後、処理はS170Bに進む。
S170Bにおいて、モデル出力部260は、S160Bで生成された画面遷移モデル102を入力し、入力した画面遷移モデル102を出力する。
S170Bにより、モデル生成方法は終了する。
S170Bにより、モデル生成方法は終了する。
実施の形態3において、例えば、以下のようなモデル生成装置(および方法、プログラム)について説明した。
モデル生成装置は、入力検証部と初期画面検出部とモデル生成部を備え、仕様を入力とし検証モデルを出力する。
入力する仕様は、画面遷移仕様と処理仕様である。画面遷移仕様には、画面、操作と遷移先画面との対応関係と遷移条件とが記述されている。処理仕様には、各画面における操作と状態遷移に関わる処理について記載されている。
入力検証部は、入力された画面遷移仕様において、画面が一意であること、遷移先画面が定義されていること、遷移先画面に条件が記述されている場合にその条件が成立しない場合の遷移先画面があることを検証する。また、入力検証部は、入力された処理仕様において、画面、操作、条件が画面遷移仕様に記載されていること、条件が成立する場合と成立しなくなる場合の両方の処理が記述されていることを検証する。
モデル生成部は、遷移条件を含む画面遷移モデルを生成する。
入力する仕様は、画面遷移仕様と処理仕様である。画面遷移仕様には、画面、操作と遷移先画面との対応関係と遷移条件とが記述されている。処理仕様には、各画面における操作と状態遷移に関わる処理について記載されている。
入力検証部は、入力された画面遷移仕様において、画面が一意であること、遷移先画面が定義されていること、遷移先画面に条件が記述されている場合にその条件が成立しない場合の遷移先画面があることを検証する。また、入力検証部は、入力された処理仕様において、画面、操作、条件が画面遷移仕様に記載されていること、条件が成立する場合と成立しなくなる場合の両方の処理が記述されていることを検証する。
モデル生成部は、遷移条件を含む画面遷移モデルを生成する。
本装置は、画面遷移をモデル検査にて検証するための詳細な条件を加えた画面遷移モデルを人手を介さずに自動的に作成することができる。これにより、モデル構築のために専用言語を習得する必要がなく、効率的にソフトウェア開発が実施できる。
本装置の入力検証部では、モデル作成前に画面遷移仕様や処理仕様のエディトリアルなミスを検出し、これらの整合性及び条件の記入漏れを検出することができる。これにより、仕様のあいまいさを防ぐと共にモデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様や処理仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
本装置の入力検証部では、モデル作成前に画面遷移仕様や処理仕様のエディトリアルなミスを検出し、これらの整合性及び条件の記入漏れを検出することができる。これにより、仕様のあいまいさを防ぐと共にモデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様や処理仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
100 仕様検証システム、101 画面遷移仕様、102 画面遷移モデル、103 検証結果、104 処理仕様、200 モデル生成装置、210 仕様入力部、220 入力検証部、221 編集ミス情報、230 初期画面検出部、231 初期画面ID、240 メモリ部、241 モデル生成情報、250 モデル生成部、260 モデル出力部、270 仕様解析部、300 モデル検査器、901 表示装置、902 キーボード、903 マウス、904 ドライブ装置、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 OS、922 ウィンドウシステム、923 プログラム群、924 ファイル群。
Claims (8)
- 他の画面が表示される前の遷移元画面を識別する遷移元画面IDと遷移元画面の次に表示される遷移先画面を識別する遷移先画面IDとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力する仕様入力部と、
前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面IDが他の画面遷移定義の遷移元画面IDと同一でない場合、画面ID重複無しと判定する入力検証部と、
前記入力検証部によって画面ID重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成するモデル生成部と
を備えたことを特徴とするモデル生成装置。 - 前記入力検証部は、前記画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移先画面IDが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合、画面定義抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ID重複無しと画面定義抜け無しとを判定された場合に前記画面遷移モデルを生成する
ことを特徴とする請求項1記載のモデル生成装置。 - 前記仕様入力部は、特定画面を識別する特定画面IDと特定画面の表示時に成立する成立条件とを対応付けた情報を処理定義として複数含んだデータを処理仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの特定画面IDが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合、仕様対応抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ID重複無しと画面定義抜け無しと仕様対応抜け無しとを判定された場合に、前記画面遷移仕様と前記処理仕様とに基づいて、前記画面遷移仕様と前記処理仕様とを検査するプログラムを前記画面遷移モデルとして生成する
ことを特徴とする請求項2記載のモデル生成装置。 - 前記仕様入力部は、遷移元画面IDと遷移先画面IDと遷移元画面から遷移先画面に遷移する遷移条件とを対応付けた情報を画面遷移定義として複数含んだデータを前記画面遷移仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの特定画面IDが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面IDと一致する場合であって、前記処理仕様に含まれる複数の処理定義それぞれの成立条件が前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移条件と一致する場合に、仕様対応抜け無しと判定する
ことを特徴とする請求項3記載のモデル生成装置。 - 前記仕様入力部は、特定画面IDと成立条件とを対応付けると共に特定画面IDと特定画面の表示時に不成立になる不成立条件とを対応付けた情報を処理定義として複数含んだデータを前記処理仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの成立条件と対になる不成立条件が前記処理仕様に含まれる少なくともいずれかの処理定義に示される場合、条件抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ID重複無しと画面定義抜け無しと仕様対応抜け無しと条件抜け無しとを判定された場合に前記画面遷移モデルを生成する
ことを特徴とする請求項4記載のモデル生成装置。 - 前記モデル生成部は、初期画面を識別する初期画面IDを画面ID変数に設定し、前記画面遷移仕様に含まれる複数の画面遷移定義のうち遷移元画面IDが前記画面ID変数に設定された初期画面IDと一致する画面遷移定義を選択し、選択した画面遷移定義の遷移先画面IDを前記画面ID変数に設定し、前記画面遷移仕様に含まれる複数の画面遷移定義のうち遷移元画面IDが前記画面ID変数に設定された遷移先画面IDと一致する画面遷移定義を選択し、選択した画面遷移定義の遷移先画面IDを前記画面ID変数に設定し、画面ID変数に設定された遷移先画面IDがいずれの画面遷移定義の遷移元画面IDにも一致しない場合に所定のエラー処理を実行するプログラムを前記画面遷移モデルとして生成する
ことを特徴とする請求項1〜請求項5いずれかに記載のモデル生成装置。 - 仕様入力部が、他の画面が表示される前の遷移元画面を識別する遷移元画面IDと遷移元画面の次に表示される遷移先画面を識別する遷移先画面IDとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力し、
入力検証部が、前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面IDが他の画面遷移定義の遷移元画面IDと同一でない場合、画面ID重複無しと判定し、
モデル生成部が、前記入力検証部によって画面ID重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成する
ことを特徴とするモデル生成方法。 - 請求項7記載のモデル生成方法をコンピュータに実行させるモデル生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010044827A JP2011180850A (ja) | 2010-03-02 | 2010-03-02 | モデル生成装置、モデル生成方法およびモデル生成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010044827A JP2011180850A (ja) | 2010-03-02 | 2010-03-02 | モデル生成装置、モデル生成方法およびモデル生成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011180850A true JP2011180850A (ja) | 2011-09-15 |
Family
ID=44692285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010044827A Pending JP2011180850A (ja) | 2010-03-02 | 2010-03-02 | モデル生成装置、モデル生成方法およびモデル生成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011180850A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014108994A1 (ja) * | 2013-01-08 | 2014-07-17 | 三菱電機株式会社 | プロジェクトデータ作成装置 |
JP2019211947A (ja) * | 2018-06-04 | 2019-12-12 | 矢崎総業株式会社 | 脆弱性評価装置 |
-
2010
- 2010-03-02 JP JP2010044827A patent/JP2011180850A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014108994A1 (ja) * | 2013-01-08 | 2014-07-17 | 三菱電機株式会社 | プロジェクトデータ作成装置 |
TWI494854B (zh) * | 2013-01-08 | 2015-08-01 | Mitsubishi Electric Corp | 企劃資料製作裝置 |
JP5916897B2 (ja) * | 2013-01-08 | 2016-05-11 | 三菱電機株式会社 | プロジェクトデータ作成装置 |
JPWO2014108994A1 (ja) * | 2013-01-08 | 2017-01-19 | 三菱電機株式会社 | プロジェクトデータ作成装置 |
JP2019211947A (ja) * | 2018-06-04 | 2019-12-12 | 矢崎総業株式会社 | 脆弱性評価装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4946651B2 (ja) | 仕様検証プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、仕様検証装置、および仕様検証方法 | |
JP6214824B2 (ja) | 自動試験装置 | |
WO2018036531A1 (zh) | 一种测试用例生成方法 | |
US20190129832A1 (en) | System and method for test data generation for use in model based testing using source code test annotations and constraint solving | |
JP2009140155A (ja) | アプリケーションプログラムのテストプログラム | |
JPWO2009144826A1 (ja) | 検査用ファイル生成プログラム、検査用ファイル生成装置および検査用ファイル生成方法 | |
JP2011039786A (ja) | ソフトウェアテスト支援装置、ソフトウェアテスト支援方法、及びプログラム | |
JP2011180850A (ja) | モデル生成装置、モデル生成方法およびモデル生成プログラム | |
JP5937245B1 (ja) | 運用手順評価装置および運用手順評価プログラム | |
JP5316485B2 (ja) | ソフトウェア開発支援装置、ソフトウェア開発支援方法およびソフトウェア開発支援プログラム | |
JP2014164677A (ja) | 仕様検証支援装置、仕様検証支援方法及びプログラム | |
JPWO2016151710A1 (ja) | 仕様構成装置および方法 | |
WO2018036528A1 (zh) | 一种自动测试方法 | |
JP4767309B2 (ja) | 情報処理装置、情報処理方法、及びコンピュータプログラム | |
JP2021117666A (ja) | コード検査ツール、コード検査方法 | |
JP2015056140A (ja) | クローン検出方法及びクローン共通関数化方法 | |
JPWO2012049816A1 (ja) | モデル検査装置、方法及びプログラム | |
JP5595304B2 (ja) | プログラム試験装置、プログラム試験装置のプログラム試験方法およびプログラム試験プログラム | |
JP2008134808A (ja) | 論理回路の機能検証装置、機能カバレッジアイテムの検証方法及びプログラム | |
JP2011048714A (ja) | テスト支援方法およびテスト支援装置 | |
JP2011123780A (ja) | 試験管理装置 | |
WO2022249421A1 (ja) | コード実装漏れ検出装置、コード実装漏れ検出方法、及びプログラム | |
JP2009181180A (ja) | プログラム生成ツールの検査プログラムおよびプログラム生成ツールの検査方法ならびにプログラム生成ツールの検査装置 | |
CN105955752A (zh) | 一种控制系统上线变更方法及系统 | |
CN106604129A (zh) | 检测视频播放状态的方法和装置 |