(57)【要約】【課題】画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できるようにすることを目的とする。【解決手段】仕様入力部２１０は画面遷移仕様１０１を入力する。入力検証部２２０は画面遷移仕様１０１に編集ミスがあるか否かを検証する。画面遷移仕様１０１に編集ミスがある場合、モデル出力部２６０が編集ミスを通知し、処理は終了する。画面遷移仕様１０１に編集ミスがない場合、初期画面検出部２３０は画面遷移仕様１０１に基づいて初期画面ＩＤ２３１を特定する。さらに、メモリ部２４０は画面遷移仕様１０１に基づいてモデル生成情報２４１を生成する。モデル生成部２５０は初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２を生成する。モデル出力部２６０は画面遷移モデル１０２を出力する。【選択図】図１
2011180850.tif 000002
【特許請求の範囲】
【請求項１】
他の画面が表示される前の遷移元画面を識別する遷移元画面ＩＤと遷移元画面の次に表示される遷移先画面を識別する遷移先画面ＩＤとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力する仕様入力部と、
前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面ＩＤが他の画面遷移定義の遷移元画面ＩＤと同一でない場合、画面ＩＤ重複無しと判定する入力検証部と、
前記入力検証部によって画面ＩＤ重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成するモデル生成部と
を備えたことを特徴とするモデル生成装置。
【請求項２】
前記入力検証部は、前記画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移先画面ＩＤが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面ＩＤと一致する場合、画面定義抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ＩＤ重複無しと画面定義抜け無しとを判定された場合に前記画面遷移モデルを生成する
ことを特徴とする請求項１記載のモデル生成装置。
【請求項３】
前記仕様入力部は、特定画面を識別する特定画面ＩＤと特定画面の表示時に成立する成立条件とを対応付けた情報を処理定義として複数含んだデータを処理仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの特定画面ＩＤが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面ＩＤと一致する場合、仕様対応抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ＩＤ重複無しと画面定義抜け無しと仕様対応抜け無しとを判定された場合に、前記画面遷移仕様と前記処理仕様とに基づいて、前記画面遷移仕様と前記処理仕様とを検査するプログラムを前記画面遷移モデルとして生成する
ことを特徴とする請求項２記載のモデル生成装置。
【請求項４】
前記仕様入力部は、遷移元画面ＩＤと遷移先画面ＩＤと遷移元画面から遷移先画面に遷移する遷移条件とを対応付けた情報を画面遷移定義として複数含んだデータを前記画面遷移仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの特定画面ＩＤが前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移元画面ＩＤと一致する場合であって、前記処理仕様に含まれる複数の処理定義それぞれの成立条件が前記画面遷移仕様に含まれる少なくともいずれかの画面遷移定義の遷移条件と一致する場合に、仕様対応抜け無しと判定する
ことを特徴とする請求項３記載のモデル生成装置。
【請求項５】
前記仕様入力部は、特定画面ＩＤと成立条件とを対応付けると共に特定画面ＩＤと特定画面の表示時に不成立になる不成立条件とを対応付けた情報を処理定義として複数含んだデータを前記処理仕様として入力し、
前記入力検証部は、前記処理仕様に含まれる複数の処理定義それぞれの成立条件と対になる不成立条件が前記処理仕様に含まれる少なくともいずれかの処理定義に示される場合、条件抜け無しと判定し、
前記モデル生成部は、前記入力検証部によって画面ＩＤ重複無しと画面定義抜け無しと仕様対応抜け無しと条件抜け無しとを判定された場合に前記画面遷移モデルを生成する
ことを特徴とする請求項４記載のモデル生成装置。
【請求項６】
前記モデル生成部は、初期画面を識別する初期画面ＩＤを画面ＩＤ変数に設定し、前記画面遷移仕様に含まれる複数の画面遷移定義のうち遷移元画面ＩＤが前記画面ＩＤ変数に設定された初期画面ＩＤと一致する画面遷移定義を選択し、選択した画面遷移定義の遷移先画面ＩＤを前記画面ＩＤ変数に設定し、前記画面遷移仕様に含まれる複数の画面遷移定義のうち遷移元画面ＩＤが前記画面ＩＤ変数に設定された遷移先画面ＩＤと一致する画面遷移定義を選択し、選択した画面遷移定義の遷移先画面ＩＤを前記画面ＩＤ変数に設定し、画面ＩＤ変数に設定された遷移先画面ＩＤがいずれの画面遷移定義の遷移元画面ＩＤにも一致しない場合に所定のエラー処理を実行するプログラムを前記画面遷移モデルとして生成する
ことを特徴とする請求項１〜請求項５いずれかに記載のモデル生成装置。
【請求項７】
仕様入力部が、他の画面が表示される前の遷移元画面を識別する遷移元画面ＩＤと遷移元画面の次に表示される遷移先画面を識別する遷移先画面ＩＤとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力し、
入力検証部が、前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面ＩＤが他の画面遷移定義の遷移元画面ＩＤと同一でない場合、画面ＩＤ重複無しと判定し、
モデル生成部が、前記入力検証部によって画面ＩＤ重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成する
ことを特徴とするモデル生成方法。
【請求項８】
請求項７記載のモデル生成方法をコンピュータに実行させるモデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画面遷移の仕様を検査するモデルを生成するモデル生成装置、モデル生成方法およびモデル生成プログラムに関するものである。
【背景技術】
【０００２】
従来、利用者によって操作される各種画面を扱う端末（例えば、金融端末）のソフトウェアアプリケーション（以下、ソフトウェア）の開発において、利用者の操作に応じた画面の遷移を適切に設計する。
開発者は、デッドロックや未到達画面が無いように設計するために、仕様書のレビューや実機でのソフトウェアテストによって信頼性を確保し、品質を向上していた。
【０００３】
また、ソフトウェア開発の設計段階において、ソフトウェアの動作を検証するモデル検査手法が知られている。
このモデル検査手法は、ソフトウェアの仕様に基づいて状態遷移系のモデルプログラムを構築し、モデル検査器にてすべての状態遷移を検査することによって、要求される性質が満たされていることを検証するものである。
これによって、ソフトウェア作成後の実機テストにて発見されていたソフトウェアの不具合を設計段階で検証し、開発遅延を防ぐことができる。
【０００４】
しかし、従来のモデル検査手法を用いるには、自然言語や表形式で記述された仕様を元に、専用の言語を用いて画面遷移モデルプログラムを構築する必要がある。このため、専用言語を習得しなければならなかった。
【０００５】
この課題を解決するために、専用言語の習得を必要とせず、動作仕様からモデルを構築するモデル生成装置が提案されている（例えば、特許文献１）。
本モデル生成装置は、入力されたソフトウェアの動作仕様からモデル検査用のモデルを出力する装置である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１１６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記従来のモデル生成装置では、入力された仕様のミスも含めてモデル検査手法によって検証するように構成されている。このため、検証にかかる時間が多く、ソフトウェア開発を効率的に進めることは困難であった。また、仕様の欠陥によってモデルが想定外の動作をしても、その原因を解析することも困難であった。
【０００８】
本発明は、例えば、画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明のモデル生成装置は、
他の画面が表示される前の遷移元画面を識別する遷移元画面ＩＤと遷移元画面の次に表示される遷移先画面を識別する遷移先画面ＩＤとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様として入力する仕様入力部と、
前記仕様入力部に入力された画面遷移仕様に含まれる複数の画面遷移定義それぞれの遷移元画面ＩＤが他の画面遷移定義の遷移元画面ＩＤと同一でない場合、画面ＩＤ重複無しと判定する入力検証部と、
前記入力検証部によって画面ＩＤ重複無しと判定された場合、前記画面遷移仕様に基づいて前記画面遷移仕様を検査するプログラムを画面遷移モデルとして所定のアルゴリズムによって生成するモデル生成部とを備える。
【発明の効果】
【００１０】
本発明によれば、例えば、画面遷移をモデル検査にて検証するための画面遷移モデルを、人手を介さずに効率的に作成できる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１における仕様検証システム１００の概要図。
【図２】実施の形態１におけるモデル生成装置２００のハードウェア資源の一例を示す図。
【図３】実施の形態１におけるモデル生成装置２００のモデル生成方法を示すフローチャート。
【図４】実施の形態１における画面遷移仕様１０１の一例を示す図。
【図５】実施の形態１における入力検証処理（Ｓ１２０）を示すフローチャート。
【図６】実施の形態１におけるモデル生成情報２４１の一例を示す図。
【図７】実施の形態１における画面遷移モデル１０２の一例を示す図。
【図８】実施の形態２における画面遷移モデル１０２の一例を示す図。
【図９】実施の形態３における仕様検証システム１００の概要図。
【図１０】実施の形態３におけるモデル生成装置２００のモデル生成方法を示すフローチャート。
【図１１】実施の形態３における処理仕様１０４の一例を示す図。
【図１２】実施の形態３における入力検証処理（Ｓ１２０Ｂ）を示すフローチャート。
【図１３】実施の形態３におけるモデル生成情報２４１の一例を示す図。
【図１４】実施の形態３におけるモデル生成情報生成処理（Ｓ１５０Ｂ）を示すフローチャート。
【図１５】実施の形態３における画面遷移モデル１０２の一例を示す図。
【発明を実施するための形態】
【００１２】
実施の形態１．
画面遷移の仕様を検証するためのモデルを生成する前に、仕様の編集ミス（例えば、情報の抜けや重複）を検出する形態について説明する。
【００１３】
図１は、実施の形態１における仕様検証システム１００の概要図である。
仕様検証システム１００によるモデル検査の流れとモデル生成装置２００の機能構成とについて、図１に基づいて以下に説明する。
【００１４】
まず、仕様検証システム１００によるモデル検査の流れについて説明する。
【００１５】
仕様検証システム１００は、モデル生成装置２００とモデル検査器３００とを備える。
【００１６】
モデル生成装置２００は、画面遷移仕様１０１に基づいて画面遷移モデル１０２を生成する装置である。
画面遷移仕様１０１は画面遷移に関わる仕様を示すデータである。
画面遷移モデル１０２は画面遷移仕様１０１を検査するプログラムである。プログラムにはクラスやオブジェクトなどプログラムに類するものを含む。
モデル生成装置２００は、モデル検査器３００が処理できる専用言語を用いて画面遷移モデル１０２を生成する。
【００１７】
モデル検査器３００は、モデル生成装置２００によって生成された画面遷移モデル１０２を検査し、検証結果１０３を出力する装置である。
【００１８】
仕様検証システム１００の利用者は、モデル生成装置２００に画面遷移仕様１０１を入力する。
モデル生成装置２００は入力された画面遷移仕様１０１に基づいて画面遷移モデル１０２を生成し、生成した画面遷移モデル１０２を出力する。
利用者はモデル生成装置２００から出力された画面遷移モデル１０２をモデル検査器３００に入力し、モデル検査器３００を操作して検証結果１０３を得る。
【００１９】
ＳＰＩＮ（ｈｔｔｐ：／／ｓｐｉｎｒｏｏｔ．ｃｏｍ／ｓｐｉｎ／ｗｈａｔｉｓｐｉｎ．ｈｔｍｌ）は、モデル検査器３００の一例である。
【００２０】
次に、モデル生成装置２００の機能構成について説明する。
【００２１】
モデル生成装置２００は、仕様入力部２１０、入力検証部２２０、初期画面検出部２３０、メモリ部２４０、モデル生成部２５０およびモデル出力部２６０を備える。
【００２２】
仕様入力部２１０は、他の画面が表示される前の遷移元画面を識別する遷移元画面ＩＤと遷移元画面の次に表示される遷移先画面を識別する遷移先画面ＩＤとを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様１０１として入力する。
【００２３】
入力検証部２２０は、仕様入力部２１０に入力された画面遷移仕様１０１に含まれる複数の画面遷移定義それぞれの遷移元画面ＩＤが他の画面遷移定義の遷移元画面ＩＤと同一でない場合、画面ＩＤ重複無し（チェックＯＫ）と判定する。
入力検証部２２０は、画面遷移仕様１０１に含まれる複数の画面遷移定義それぞれの遷移先画面ＩＤが画面遷移仕様１０１に含まれる少なくともいずれかの画面遷移定義の遷移元画面ＩＤと一致する場合、画面定義抜け無し（チェックＯＫ）と判定する。
画面ＩＤ重複有りまたは画面定義抜け有りの場合（チェックＮＧ）、入力検証部２２０はエラー情報（後述する編集ミス情報２２１）をモデル出力部２６０に出力する。
【００２４】
初期画面検出部２３０は、画面遷移仕様１０１に基づいて初期画面の画面ＩＤ（初期画面ＩＤ２３１）を特定する。
【００２５】
メモリ部２４０は、画面遷移仕様１０１に基づいて遷移先画面ＩＤと遷移元画面ＩＤとを対応付けたモデル生成情報２４１を生成する。
【００２６】
モデル生成部２５０は、入力検証部２２０によって画面ＩＤ重複無しと画面定義抜け無しとを判定された場合、初期画面検出部２３０により特定された初期画面ＩＤ２３１とメモリ部２４０により生成されたモデル生成情報２４１とに基づいて画面遷移モデル１０２を所定のアルゴリズムによって生成する。画面遷移モデル１０２は画面遷移仕様１０１を検査するプログラムである。
【００２７】
モデル出力部２６０は、モデル生成部２５０によって生成された画面遷移モデル１０２を出力する。
モデル出力部２６０は、入力検証部２２０のエラー情報を出力する。
【００２８】
図２は、実施の形態１におけるモデル生成装置２００のハードウェア資源の一例を示す図である。
図２において、モデル生成装置２００は、ＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）（マイクロプロセッサ、マイクロコンピュータともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ドライブ装置９０４、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ドライブ装置９０４は、ＦＤ（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
【００２９】
通信ボード９１５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【００３０】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
【００３１】
プログラム群９２３には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、ＣＰＵ９１１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【００３２】
ファイル群９２４には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【００３３】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【００３４】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【００３５】
図３は、実施の形態１におけるモデル生成装置２００のモデル生成方法を示すフローチャートである。
実施の形態１におけるモデル生成装置２００のモデル生成方法について、図３に基づいて以下に説明する。
【００３６】
まず、モデル生成方法の概要について説明する。
【００３７】
仕様入力部２１０は画面遷移仕様１０１を入力する（Ｓ１１０）。
入力検証部２２０は画面遷移仕様１０１に編集ミスがあるか否かを検証する（Ｓ１２０）。
画面遷移仕様１０１に編集ミスがある場合（Ｓ１３０：ＹＥＳ）、モデル出力部２６０が編集ミスを通知し（Ｓ１３１）、処理は終了する。
画面遷移仕様１０１に編集ミスがない場合（Ｓ１３０：ＮＯ）、初期画面検出部２３０は画面遷移仕様１０１に基づいて初期画面ＩＤ２３１を特定し（Ｓ１４０）、メモリ部２４０は画面遷移仕様１０１に基づいてモデル生成情報２４１を生成する（Ｓ１５０）。
モデル生成部２５０は初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２を生成する（Ｓ１６０）。
モデル出力部２６０は画面遷移モデル１０２を出力する（Ｓ１７０）。
【００３８】
次に、モデル生成方法の詳細について説明する。
【００３９】
Ｓ１１０において、仕様入力部２１０は画面遷移仕様１０１を入力し、入力した画面遷移仕様１０１を入力検証部２２０に出力する。
【００４０】
図４は、実施の形態１における画面遷移仕様１０１の一例を示す図である。
Ｓ１１０（図３参照）において仕様入力部２１０に入力される画面遷移仕様１０１の一例について、図４に基づいて以下に説明する。
【００４１】
画面遷移仕様１０１は、遷移元の画面を識別する「画面ＩＤ」（遷移元画面ＩＤ）と遷移元の画面で行われる「操作」とに対応付けて遷移先の画面を識別する画面ＩＤ（遷移先画面ＩＤ）を示した表形式（テーブル形式ともいう）のデータである。
“画面ｘ”は画面を識別する画面ＩＤを表し、“操作ｘ”は操作を識別する操作ＩＤを表す。
以下、画面遷移仕様１０１の行を「画面遷移定義」という。
【００４２】
例えば、画面遷移定義Ｘ１は、“画面１（遷移元画面）”で“操作１”が行われた場合には“画面２（遷移先画面）”に遷移し、“画面１（遷移元画面）”で“操作２”が行われた場合には“画面１（遷移先画面）”のままであることを示している。また、“画面１”では“操作３”が行われないことを示している（図中の「−」）。
また、画面遷移定義Ｘ２は、“画面２”で“操作１”が行われた場合には“画面２”のままであることを示している。さらに、“画面２”で“操作２”が行われた場合、“条件１”が成り立っていれば“画面２”のまま、“条件１”が成り立っていなければ“画面３”に遷移することを示している。また、“画面２”では“操作３”が行われないことを示している。
【００４３】
画面遷移仕様１０１は表形式でなくてもよい。例えば、画面遷移仕様１０１はＣＳＶ形式や他のテキスト形式であっても構わない。
【００４４】
図３に戻り、モデル生成方法の説明を続ける。
【００４５】
Ｓ１１０の後、処理はＳ１２０に進む。
【００４６】
Ｓ１２０において、入力検証部２２０は仕様入力部２１０に入力された画面遷移仕様１０１に編集ミス（エディトリアルなミス）があるか否かを検証する。
【００４７】
図５は、実施の形態１における入力検証処理（Ｓ１２０）を示すフローチャートである。
実施の形態１における入力検証処理（Ｓ１２０）について、図５に基づいて以下に説明する。
【００４８】
Ｓ１２１において、入力検証部２２０は、画面遷移仕様１０１に定義されている遷移元画面ＩＤが一意であるか否かを検証する（画面ＩＤ重複チェック）。
【００４９】
例えば、入力検証部２２０は画面遷移定義を順に一つずつ選択する。
入力検証部２２０は、選択した画面遷移定義の「画面ＩＤ」が他の画面遷移定義の「画面ＩＤ」と同一であるか否かを判定する。
【００５０】
いずれの画面遷移定義の「画面ＩＤ」も他の画面遷移定義の「画面ＩＤ」と同一でない場合、遷移元画面ＩＤは一意である（画面ＩＤ重複チェック：ＯＫ）。
少なくともいずれかの画面遷移定義の「画面ＩＤ」が他の画面遷移定義の「画面ＩＤ」と同一である場合、遷移元画面ＩＤは一意でない（画面ＩＤ重複チェック：ＮＧ）。
【００５１】
Ｓ１２１の後、処理はＳ１２２に進む。
【００５２】
Ｓ１２２において、入力検証部２２０は、画面遷移仕様１０１に遷移先画面の画面遷移定義が有るか否かを検証する（画面定義抜けチェック）。
【００５３】
例えば、入力検証部２２０は各画面遷移定義から遷移先画面ＩＤを抽出し、抽出した遷移先画面の画面ＩＤが少なくともいずれかの画面遷移定義の遷移元画面の「画面ＩＤ」と一致するか否かを判定する。
抽出する遷移先画面ＩＤは条件の有無および条件の成立・不成立に関わらない。例えば、図４の画面遷移定義Ｘ２からは“画面２”と“画面３”とを抽出する。
【００５４】
全ての遷移先画面ＩＤが少なくともいずれかの画面遷移定義の遷移元画面の「画面ＩＤ」と一致する場合、遷移先画面の画面遷移定義の定義漏れはない（画面定義抜けチェック：ＯＫ）。
少なくともいずれかの遷移先画面ＩＤがいずれの画面遷移定義の遷移元画面の「画面ＩＤ」とも一致しない場合、遷移先画面の画面遷移定義の定義漏れがある（画面定義抜けチェック：ＮＧ）。
【００５５】
Ｓ１２２の後、入力検証処理（Ｓ１２０）は終了する。
【００５６】
画面ＩＤ重複チェックと画面定義抜けチェックとが共に「ＯＫ」である場合、画面遷移仕様１０１に編集ミスはない。
画面ＩＤ重複チェックと画面定義抜けチェックとの少なくともいずれかが「ＮＧ」である場合、画面遷移仕様１０１に編集ミスがある。
【００５７】
但し、画面ＩＤ重複チェックと画面定義抜けチェックとのいずれかのみを実行して、画面遷移仕様１０１に編集ミスがあるか否かを検証しても構わない。
【００５８】
図３に戻り、モデル生成方法の説明を続ける。
【００５９】
Ｓ１２０の後、処理はＳ１３０に進む。
【００６０】
Ｓ１３０において、画面遷移仕様１０１に編集ミスがある場合（ＹＥＳ）、入力検証部２２０は画面遷移仕様１０１の編集ミス情報２２１をモデル出力部２６０に出力する。
編集ミス情報２２１は、画面ＩＤ重複チェックにおいて重複した遷移元画面ＩＤや、画面定義抜けチェックにおいて画面遷移定義が抜けていた遷移先画面ＩＤなどを含む。
処理はＳ１３１に進む。
【００６１】
Ｓ１３１において、モデル出力部２６０は、画面遷移仕様１０１の編集ミス情報２２１を利用者に通知する。
例えば、モデル出力部２６０は、画面遷移仕様１０１の編集ミス情報２２１をファイルデータに書き出し、そのファイルデータを記憶装置に記憶する。
また例えば、モデル出力部２６０は、画面遷移仕様１０１の編集ミス情報２２１を表示装置に表示する。
Ｓ１３１の後、画面遷移モデル１０２を生成せずに処理を終了する。
【００６２】
Ｓ１３０において、画面遷移仕様１０１に編集ミスがない場合（ＮＯ）、入力検証部２２０は画面遷移仕様１０１を初期画面検出部２３０とメモリ部２４０とに出力する。処理はＳ１４０に進む。
【００６３】
Ｓ１４０において、初期画面検出部２３０は画面遷移仕様１０１に基づいて初期画面ＩＤ２３１を特定し、特定した初期画面ＩＤ２３１を記憶する。
例えば、初期画面検出部２３０は、画面遷移仕様１０１の先頭の画面遷移定義に設定されている遷移元画面の「画面ＩＤ」（図４の場合“画面１”）を初期画面ＩＤ２３１として特定する。
但し、初期画面検出部２３０は初期画面ＩＤ２３１が定義された仕様を画面遷移仕様１０１の代わりに入力して初期画面ＩＤ２３１を特定しても構わない。
また、画面遷移仕様１０１に初期画面ＩＤ２３１を別途定義しておいても構わない。
Ｓ１４０の後、処理はＳ１５０に進む。
【００６４】
Ｓ１５０において、メモリ部２４０は画面遷移仕様１０１に基づいてモデル生成情報２４１を生成し、生成したモデル生成情報２４１を記憶する。
【００６５】
図６は、実施の形態１におけるモデル生成情報２４１の一例を示す図である。
Ｓ１５０（図３参照）においてメモリ部２４０が生成するモデル生成情報２４１の一例について、図６に基づいて以下に説明する。
【００６６】
モデル生成情報２４１は「画面ＩＤ」と「遷移先画面」とを対応付けている。
「画面ＩＤ」は遷移元画面ＩＤを示し、「遷移先画面」は遷移先画面ＩＤを示す。
以下、モデル生成情報２４１の行を「モデル生成ライン」という。
【００６７】
例えば、モデル生成ラインＺ１は、“画面１”から“画面１”または“画面２”に遷移することを示している。
【００６８】
メモリ部２４０は、画面遷移仕様１０１（図４参照）に基づいて例えば以下のようにモデル生成情報２４１を生成する。
【００６９】
メモリ部２４０は、画面遷移定義を順に一つずつ選択する。
メモリ部２４０は、モデル生成情報２４１にモデル生成ラインを追加する。
メモリ部２４０は、選択した画面遷移定義の「画面ＩＤ」を、追加したモデル生成ラインの「画面ＩＤ」に設定する。
メモリ部２４０は、選択した画面遷移定義に設定されている遷移先画面ＩＤを、追加したモデル生成ラインの「遷移先画面」に設定する。但し、「遷移先画面」には遷移先画面ＩＤを重複させずに設定するものとする。
【００７０】
図３に戻り、モデル生成方法の説明を続ける。
【００７１】
Ｓ１５０の後、処理はＳ１６０に進む。
【００７２】
Ｓ１６０において、モデル生成部２５０はＳ１４０で特定された初期画面ＩＤ２３１を入力し、Ｓ１５０で生成されたモデル生成情報２４１を入力する。
モデル生成部２５０は、入力した初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２を生成し、生成した画面遷移モデル１０２を記憶する。
【００７３】
図７は、実施の形態１における画面遷移モデル１０２の一例を示す図である。
Ｓ１６０（図３参照）においてモデル生成部２５０が生成する画面遷移モデル１０２の一例について、図７に基づいて以下に説明する。
【００７４】
画面遷移モデル１０２は初期画面設定（Ｅ）とループ処理（Ａ）とを含む。
【００７５】
初期画面設定（Ｅ）は画面ＩＤ（変数）を初期設定する。
ループ処理（Ａ）はモデル生成情報２４１に従って画面ＩＤを変更する。
【００７６】
「ｄｏ〜ｏｄ」はループ命令であり、「ｉｆ」は条件分岐命令である。「ｉｆ」の「：：」は条件の選択子を示し、括弧（）内は条件を示し、「−＞」以降は条件成立時の処理を示す。
【００７７】
図７の画面遷移モデル１０２が実行された場合、初期画面設定（Ｅ）において画面ＩＤに“画面１”が設定され、ループ処理（Ａ）において１番目または２番目の選択子（画面ＩＤ＝＝画面１）が選択される。
１番目の選択子が選択された場合には画面ＩＤに“画面２”が設定され、２番目の選択子が選択された場合には画面ＩＤに“画面１”が設定される。
以後、画面ＩＤの設定値に従ってループ処理（Ａ）が繰り返される。
【００７８】
モデル生成部２５０は、初期画面ＩＤ２３１とモデル生成情報２４１（図６参照）とに基づいて例えば以下のように画面遷移モデル１０２を生成する。
【００７９】
モデル生成部２５０は、画面ＩＤ（変数）に初期画面ＩＤ２３１を設定する初期画面設定（Ｅ）を記述する。
モデル生成部２５０は、ループ処理（Ａ）の「ｄｏ」「ｏｄ」と「ｉｆ」を記述する。
モデル生成部２５０は、モデル生成情報２４１から遷移元画面の「画面ＩＤ」を一つずつ順番に選択し、選択した「画面ＩＤ」に対応付けられている「遷移先画面」の画面ＩＤを一つずつ順番に選択する。
モデル生成部２５０は、選択した遷移元画面の「画面ＩＤ」を選択子の条件にして記述し、選択した「遷移先画面」を条件成立時の処理にして記述する。
【００８０】
図３に戻り、モデル生成方法の説明を続ける。
【００８１】
Ｓ１６０の後、処理はＳ１７０に進む。
【００８２】
Ｓ１７０において、モデル出力部２６０は、Ｓ１６０で生成された画面遷移モデル１０２を入力し、入力した画面遷移モデル１０２を出力する。
Ｓ１７０により、モデル生成方法は終了する。
【００８３】
モデル生成方法は上記の方法に限らない。
例えば、入力検証部２２０がモデル生成情報２４１を生成し、メモリ部２４０はモデル生成情報２４１を記憶するだけであっても構わない。また、メモリ部２４０はモデル生成情報２４１を生成せずに画面遷移仕様１０１を記憶し、モデル生成部２５０がモデル生成情報２４１を生成しても構わない。
【００８４】
モデル生成方法（図３参照）により生成された画面遷移モデル１０２は、モデル検査器３００により検査される。
モデル検査器３００は、デッドロックの有無や画面の到達性など、画面遷移仕様１０１の本質的な検証を行う。
【００８５】
例えば、モデル検査器３００には画面遷移モデル１０２と共に画面遷移の要件が入力される。
画面遷移の要件として、遷移元画面の画面ＩＤ（画面１）と遷移先画面の画面ＩＤ（画面２）とが入力されたものとする。
【００８６】
モデル検査器３００は、画面遷移モデル１０２（図７参照）のループ処理（Ａ）を所定回数または所定時間、繰り返し実行し、画面ＩＤが“画面１”から“画面２”に遷移したか否かを判定する。
モデル検査器３００は、画面ＩＤが“画面１”から“画面２”に遷移しなかった場合、画面遷移モデル１０２が画面遷移の要件を満たさないことを検証結果１０３として出力する。この場合、画面遷移仕様１０１は画面遷移の要件を満たしていない。
【００８７】
モデル生成方法において画面遷移モデル１０２を生成する前に画面遷移仕様１０１の編集ミスを検出することにより、画面遷移仕様１０１の編集ミスを修正してから画面遷移モデル１０２を生成することができる。そして、編集ミスを含まない画面遷移モデル１０２をモデル検査器３００を用いて検証することができる。これにより、モデル検査やソフトウェア開発を効率的に実施することができる。
【００８８】
実施の形態１において、例えば、以下のようなモデル生成装置（および方法、プログラム）について説明した。
【００８９】
モデル生成装置は、入力検証部と初期画面検出部とモデル生成部とを備え、仕様を入力とし検証モデルを出力する。
入力する仕様は、画面、操作と遷移先画面との対応関係が記述されている画面遷移仕様である。
入力検証部は、入力された仕様において、画面が一意であること、遷移先画面が定義されていることを検証する。
モデル生成部は、画面遷移のみのモデルを生成する。
【００９０】
本装置は、画面遷移をモデル検査にて検証するための画面遷移モデルを人手を介さずに自動的に作成することができる。これにより、モデル構築のために専用言語を習得する必要がなく、効率的にソフトウェア開発が実施できる。
本装置の入力検証部では、モデル作成前に画面遷移仕様のエディトリアルなミスを検出するので、モデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
さらに、モデル生成部は条件を省略して画面遷移のみをモデル化するので、画面遷移仕様の欠陥を早急に見つけることができる。
【００９１】
実施の形態２．
エラー処理（例外処理）を加えたモデルを生成する形態について説明する。
【００９２】
仕様検証システム１００によるモデル検査の流れとモデル生成装置２００の機能構成は、実施の形態１（図１参照）と同じである。
【００９３】
但し、モデル生成装置２００の入力検証部２２０は、入力検証処理（Ｓ１２０）（図５参照）において画面定義抜けチェック（Ｓ１２２）を実行しなくてもよい。
モデル生成部２５０は、モデル生成処理（Ｓ１６０）（図３参照）においてエラー処理を含んだ画面遷移モデル１０２を生成する。
【００９４】
図８は、実施の形態２における画面遷移モデル１０２の一例を示す図である。
実施の形態２における画面遷移モデル１０２について、図８に基づいて以下に説明する。
【００９５】
画面遷移モデル１０２は、ブレーク命令（Ｃ）とエラー処理（Ｄ）とを含む。
ブレーク命令（Ｃ）はループ処理（Ａ）のいずれの選択子にも該当しない場合にループ処理（Ａ）を抜ける命令である。
エラー処理（Ｄ）はブレーク命令（Ｃ）によってループ処理（Ａ）を抜けた場合に実行される処理である。例えば、エラー処理（Ｄ）として画面ＩＤ（変数）の表示命令が記述される。
【００９６】
例えば、画面遷移仕様１０１に遷移元画面の「画面ＩＤ」として“画面３”が定義されていない場合、モデル生成情報２４１は遷移元画面の「画面ＩＤ」として“画面３”を含まず、画面遷移モデル１０２は選択子（画面ＩＤ＝＝画面３）を含まない。
モデル検査器３００によって画面遷移モデル１０２が検査され、４番目の選択子（画面ＩＤ＝＝画面２）が成立した場合、条件成立時の処理により画面ＩＤには“画面３”が設定される。
そして、該当する選択子（画面ＩＤ＝＝画面３）が無いため、ブレーク命令（Ｃ）によってループ処理（Ａ）を抜け、エラー処理（Ｄ）が実行される。
【００９７】
実施の形態２において、例えば、以下のようなモデル生成装置（および方法、プログラム）について説明した。
【００９８】
モデル生成部は、想定外の処理に対応したエラー処理をモデルに記述する。
モデル検査において想定外の画面遷移をした場合にモデル検査が中断するため、画面遷移仕様の欠陥を早急に見つけることができる。
【００９９】
実施の形態３．
画面遷移の条件を加えたモデルを生成する形態について説明する。
【０１００】
図９は、実施の形態３における仕様検証システム１００の概要図である。
実施の形態３におけるモデル生成装置２００の機能構成について、図９に基づいて以下に説明する。
【０１０１】
モデル生成装置２００は、実施の形態１の構成（図１参照）に加えて、仕様解析部２７０を備える。
【０１０２】
仕様入力部２１０は、遷移元画面ＩＤと遷移先画面ＩＤと遷移元画面から遷移先画面に遷移する遷移条件とを対応付けた情報を画面遷移定義として複数含んだデータを画面遷移仕様１０１として入力する。
仕様入力部２１０は、処理仕様１０４を入力する。
処理仕様１０４は、特定画面を識別する特定画面ＩＤと特定画面の表示時に成立する成立条件とを対応付けると共に特定画面ＩＤと特定画面の表示時に不成立になる不成立条件とを対応付けた情報を処理定義として複数含んだデータである。
【０１０３】
入力検証部２２０は、処理仕様１０４に含まれる複数の処理定義それぞれの特定画面ＩＤが画面遷移仕様１０１に含まれる少なくともいずれかの画面遷移定義の遷移元画面ＩＤと一致する場合であって、処理仕様１０４に含まれる複数の処理定義それぞれの成立条件が画面遷移仕様１０１に含まれる少なくともいずれかの画面遷移定義の遷移条件と一致する場合に、仕様対応抜け無し（チェックＯＫ）と判定する。
入力検証部２２０は、処理仕様１０４に含まれる複数の処理定義それぞれの成立条件と対になる不成立条件が処理仕様１０４に含まれる少なくともいずれかの処理定義に示される場合、条件抜け無し（チェックＯＫ）と判定する。
【０１０４】
仕様解析部２７０は、画面遷移仕様１０１と処理仕様１０４とを結合して、遷移元画面ＩＤと遷移条件と遷移先画面ＩＤと成立条件（または不成立条件）とを対応付けたモデル生成情報２４１を生成する。
【０１０５】
モデル生成部２５０は、入力検証部２２０によって画面ＩＤ重複無しと画面定義抜け無しと仕様対応抜け無しと条件抜け無しとを判定された場合に、初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２として生成する。画面遷移モデル１０２は画面遷移仕様１０１と処理仕様１０４とを検査するプログラムである。
【０１０６】
図１０は、実施の形態３におけるモデル生成装置２００のモデル生成方法を示すフローチャートである。
実施の形態３におけるモデル生成装置２００のモデル生成方法について、図１０に基づいて以下に説明する。
【０１０７】
まず、モデル生成方法の概要について説明する。
【０１０８】
仕様入力部２１０は画面遷移仕様１０１と処理仕様１０４とを入力する（Ｓ１１０Ｂ）。
入力検証部２２０は画面遷移仕様１０１と処理仕様１０４に編集ミスがあるか否かを検証する（Ｓ１２０Ｂ）。
画面遷移仕様１０１と処理仕様１０４に編集ミスがある場合（Ｓ１３０Ｂ：ＹＥＳ）、モデル出力部２６０が編集ミスを通知し（Ｓ１３１Ｂ）、処理は終了する。
画面遷移仕様１０１と処理仕様１０４に編集ミスがない場合（Ｓ１３０Ｂ：ＮＯ）、初期画面検出部２３０は画面遷移仕様１０１に基づいて初期画面ＩＤ２３１を特定する（Ｓ１４０Ｂ）。さらに、仕様解析部２７０は画面遷移仕様１０１と処理仕様１０４とに基づいてモデル生成情報２４１を生成し、メモリ部２４０はモデル生成情報２４１を記憶する（Ｓ１５０Ｂ）。
モデル生成部２５０は初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２を生成する（Ｓ１６０Ｂ）。
モデル出力部２６０は画面遷移モデル１０２を出力する（Ｓ１７０Ｂ）。
【０１０９】
次に、モデル生成方法の詳細について説明する。
【０１１０】
Ｓ１１０Ｂにおいて、仕様入力部２１０は画面遷移仕様１０１と処理仕様１０４とを入力し、入力した画面遷移仕様１０１と処理仕様１０４とを入力検証部２２０に出力する。
【０１１１】
図１１は、実施の形態３における処理仕様１０４の一例を示す図である。
Ｓ１１０Ｂ（図１０参照）において仕様入力部２１０に入力される処理仕様１０４の一例について、図１１に基づいて以下に説明する。
【０１１２】
処理仕様１０４は「画面ＩＤ」と「操作」と「処理」とを対応付けている。
「処理」は、「画面ＩＤ」で識別される画面において特定の「操作」が行われた場合に成立する条件とその場合に不成立になる条件とを示している。
“条件ｘ”は条件を識別する条件ＩＤを表す。
以下、処理仕様１０４の行を「処理定義」という。
【０１１３】
例えば、処理定義Ｙ１は“画面１”で“操作１”が行われた場合、“条件１”が成立することを示している。
また、処理定義Ｙ２は“画面１”で“操作１”が行われた場合（Ｙ１と同じ）、“条件２”が成立することを示している。
つまり、処理定義Ｙ１、Ｙ２は“画面１”で“操作１”が行われた場合、“条件１”と“条件２”との両方か、“条件１”と“条件２”のいずれかが成立することを示している。
【０１１４】
処理仕様１０４は表形式でなくてもよい。例えば、処理仕様１０４はＣＳＶ形式や他のテキスト形式であっても構わない。
【０１１５】
図１０に戻り、モデル生成方法の説明を続ける。
【０１１６】
画面遷移仕様１０１は、実施の形態１（図２参照）と同様である。
【０１１７】
Ｓ１１０Ｂの後、処理はＳ１２０Ｂに進む。
【０１１８】
Ｓ１２０Ｂにおいて、入力検証部２２０は仕様入力部２１０に入力された画面遷移仕様１０１と処理仕様１０４に編集ミスがあるか否かを検証する。
【０１１９】
図１２は、実施の形態３における入力検証処理（Ｓ１２０Ｂ）を示すフローチャートである。
実施の形態３における入力検証処理（Ｓ１２０Ｂ）について、図１２に基づいて以下に説明する。
【０１２０】
Ｓ１２１Ｂにおいて、入力検証部２２０は、画面遷移仕様１０１に定義されている遷移元画面の画面ＩＤが一意であるか否かを検証する（画面ＩＤ重複チェック）。
検証方法は、実施の形態１（図５のＳ１２１）と同じである。
Ｓ１２１Ｂの後、処理はＳ１２２Ｂに進む。
【０１２１】
Ｓ１２２Ｂにおいて、入力検証部２２０は、画面遷移仕様１０１に遷移先画面の画面遷移定義が有るか否かを検証する（画面定義抜けチェック）。
検証方法は、実施に形態１（図５のＳ１２２）と同じである。
Ｓ１２２Ｂの後、処理はＳ１２３Ｂに進む。
【０１２２】
Ｓ１２３Ｂにおいて、入力検証部２２０は、処理仕様１０４に設定されている「画面ＩＤ」「操作」「処理」が画面遷移仕様１０１に設定されているか否かを検証する（仕様対応抜けチェック）。
【０１２３】
例えば、入力検証部２２０は、各処理定義の「画面ＩＤ」が少なくともいずれかの画面遷移定義の遷移元画面の「画面ＩＤ」と一致するか否かを判定する。
全ての処理定義の「画面ＩＤ」が少なくともいずれかの画面遷移定義の遷移元画面の「画面ＩＤ」と一致する場合、「画面ＩＤ」のチェックは「ＯＫ」である。
少なくともいずれかの処理定義の「画面ＩＤ」がいずれの画面遷移定義の遷移元画面の「画面ＩＤ」とも一致しない場合、「画面ＩＤ」のチェックは「ＮＧ」である。
【０１２４】
また、入力検証部２２０は、各処理定義の「操作」が画面遷移仕様１０１の「操作」に定義されているか否かを判定する。
全ての処理定義の「操作」が画面遷移仕様１０１の「操作」に定義されている場合、「操作」のチェックは「ＯＫ」である。
少なくともいずれかの処理定義の「操作」が画面遷移仕様１０１の「操作」に定義されていない場合、「操作」のチェックは「ＮＧ」である。
【０１２５】
また、入力検証部２２０は、各処理定義の「処理」が少なくともいずれかの画面遷移定義に設定されているか否かを判定する。
全ての処理定義の「処理」が少なくともいずれかの画面遷移定義に設定されている場合、「処理」のチェックは「ＯＫ」である。
少なくともいずれかの処理定義の「処理」がいずれの画面遷移定義にも設定されていない場合、「処理」のチェックは「ＮＧ」である。
【０１２６】
「画面ＩＤ」「操作」「処理」の全てのチェックが「ＯＫ」の場合、仕様対応抜けチェックは「ＯＫ」である。
「画面ＩＤ」「操作」「処理」の少なくともいずれかのチェックが「ＮＧ」の場合、仕様対応抜けチェックは「ＮＧ」である。
【０１２７】
但し、「画面ＩＤ」「操作」「処理」の少なくともいずれかのチェックを省略して、仕様対応抜けチェックを行っても構わない。
【０１２８】
Ｓ１２３Ｂの後、処理はＳ１２４Ｂに進む。
【０１２９】
Ｓ１２４Ｂにおいて、入力検証部２２０は、処理仕様１０４の「処理」に条件毎に成立と不成立とが設定されているか否かを検証する（条件抜けチェック）。
【０１３０】
例えば、図１１の処理仕様１０４において、処理定義Ｙ１には“条件１成立”、処理定義Ｙ３には“条件１不成立”が設定されているため、“条件１”のチェックは「ＯＫ」である。
また、処理定義Ｙ２には“条件２成立”が処理定義Ｙ１〜３には“条件２不成立”が設定されていない。他の処理定義にも“条件２不成立”が設定されていない場合、“条件２”のチェックは「ＮＧ」である。
【０１３１】
全ての条件のチェックが「ＯＫ」の場合、条件抜けチェックは「ＯＫ」である。
少なくともいずれかの条件のチェックが「ＮＧ」の場合、条件抜けチェックは「ＮＧ」である。
【０１３２】
Ｓ１２４Ｂの後、入力検証処理（Ｓ１２０Ｂ）は終了する。
【０１３３】
画面ＩＤ重複チェック、画面定義抜けチェック、仕様対応抜けチェックおよび条件抜けチェックの全てが「ＯＫ」である場合、画面遷移仕様１０１と処理仕様１０４に編集ミスはない。
少なくともいずれかのチェックが「ＮＧ」である場合、画面遷移仕様１０１と処理仕様１０４に編集ミスがある。
【０１３４】
但し、少なくともいずれかのチェックを省略して、画面遷移仕様１０１と処理仕様１０４に編集ミスがあるか否かを検証しても構わない。
【０１３５】
図１０に戻り、モデル生成方法の説明を続ける。
【０１３６】
Ｓ１２０Ｂの後、処理はＳ１３０Ｂに進む。
【０１３７】
Ｓ１３０Ｂにおいて、画面遷移仕様１０１と処理仕様１０４に編集ミスがある場合（ＹＥＳ）、入力検証部２２０は画面遷移仕様１０１と処理仕様１０４の編集ミス情報２２１をモデル出力部２６０に出力する。
処理はＳ１３１Ｂに進む。
【０１３８】
Ｓ１３１Ｂにおいて、モデル出力部２６０は、画面遷移仕様１０１と処理仕様１０４の編集ミス情報２２１を利用者に通知（記憶、表示など）する。
Ｓ１３１Ｂの後、画面遷移モデル１０２を生成せずに処理を終了する。
【０１３９】
Ｓ１３０Ｂにおいて、画面遷移仕様１０１と処理仕様１０４に編集ミスがない場合（ＮＯ）、入力検証部２２０は画面遷移仕様１０１を初期画面検出部２３０に出力し、画面遷移仕様１０１と処理仕様１０４とを仕様解析部２７０に出力する。
処理はＳ１４０Ｂに進む。
【０１４０】
Ｓ１４０Ｂにおいて、初期画面検出部２３０は画面遷移仕様１０１に基づいて初期画面ＩＤ２３１を特定し、特定した初期画面ＩＤ２３１を記憶する。初期画面ＩＤ２３１の特定方法は実施の形態１（図３のＳ１４０）と同じである。
Ｓ１４０Ｂの後、処理はＳ１５０Ｂに進む。
【０１４１】
Ｓ１５０Ｂにおいて、仕様解析部２７０は画面遷移仕様１０１と処理仕様１０４とに基づいてモデル生成情報２４１を生成し、生成したモデル生成情報２４１をメモリ部２４０に出力する。メモリ部２４０はモデル生成情報２４１を記憶する。
【０１４２】
図１３は、実施の形態３におけるモデル生成情報２４１の一例を示す図である。
Ｓ１５０Ｂ（図１０参照）において仕様解析部２７０が生成するモデル生成情報２４１の一例について、図１３に基づいて以下に説明する。
【０１４３】
モデル生成情報２４１は、実施の形態１（図６参照）に「条件」「処理」を加えたものであり、「画面ＩＤ」「条件」「遷移先画面」「処理」を対応付けている。
「画面ＩＤ」は遷移元画面の画面ＩＤを示し、「遷移先画面」は遷移先画面の画面ＩＤを示す。
「条件」「処理」は条件を識別する条件ＩＤと、成立と不成立とのいずれかを示す識別子とを示す。
【０１４４】
例えば、モデル生成ラインＺ１〜３は、“画面１”から“画面２”に遷移したとき、“条件１”と“条件２”とのいずれか又は“条件１”と“条件２”との両方が成立することを示している。
また、モデル生成ラインＺ４、５は、“画面２”で“条件１”が成立していると“画面２”に遷移し、“画面２”で“条件１”が不成立であると“画面３”に遷移することを示している。
【０１４５】
仕様解析部２７０は、「画面ＩＤ」「条件」「遷移先画面」に画面遷移仕様１０１の設定値を設定し、「処理」に処理仕様１０４の設定値を設定する。
【０１４６】
図１４は、実施の形態３におけるモデル生成情報生成処理（Ｓ１５０Ｂ）を示すフローチャートである。
実施の形態３におけるモデル生成情報生成処理（Ｓ１５０Ｂ）について、図１４に基づいて以下に説明する。
【０１４７】
Ｓ１５１Ｂにおいて、仕様解析部２７０は、画面遷移仕様１０１から画面遷移定義を順に１つ選択する。以下、選択された画面遷移定義を画面遷移定義Ｘという。
Ｓ１５１Ｂの後、処理はＳ１５２Ｂに進む。
【０１４８】
Ｓ１５２Ｂにおいて、仕様解析部２７０は、モデル生成情報２４１にモデル生成ラインを追加する。以下、追加されたモデル生成ラインをモデル生成ラインＺという。
Ｓ１５２Ｂの後、処理はＳ１５３Ｂに進む。
【０１４９】
Ｓ１５３Ｂにおいて、仕様解析部２７０は、画面遷移定義Ｘに設定されている遷移元画面の「画面ＩＤ」と遷移先画面ＩＤと遷移条件（条件ＩＤ、成立又は不成立）とを、モデル生成ラインＺの「画面ＩＤ」と「遷移先画面」と「条件」とに設定する。
Ｓ１５３Ｂの後、処理はＳ１５４Ｂに進む。
【０１５０】
但し、画面遷移定義Ｘに遷移先画面の画面ＩＤが複数設定されている場合、その設定数だけＳ１５２ＢとＳ１５３Ｂとを実行する（図１３のモデル生成ラインＺ４、５参照）。
また、画面遷移定義Ｘに遷移条件が設定されていない場合、モデル生成ラインＺの「条件」は設定されない（図１３のモデル生成ラインＺ１〜３参照）。
【０１５１】
Ｓ１５４Ｂにおいて、仕様解析部２７０は、画面遷移定義Ｘに設定されている遷移元画面の「画面ＩＤ」と画面遷移定義Ｘに設定されている遷移先画面の画面ＩＤに対応する「操作」と一致する処理定義を検索する。以下、該当する処理定義を処理定義Ｙという。
Ｓ１５４Ｂの後、処理はＳ１５５Ｂに進む。
【０１５２】
Ｓ１５５Ｂにおいて、処理定義Ｙが存在した場合（ＹＥＳ）、処理はＳ１５６Ｂに進む。
また、処理定義Ｙが存在しなかった場合（ＮＯ）、処理はＳ１５７Ｂに進む。
【０１５３】
Ｓ１５６Ｂにおいて、仕様解析部２７０は、処理定義Ｙの「処理」をモデル生成ラインＺの「処理」に設定する。
Ｓ１５６Ｂの後、処理はＳ１５７Ｂに進む。
【０１５４】
但し、処理定義Ｙが複数存在した場合、処理定義Ｙ毎にモデル生成ラインＺを複製し、「処理」を設定する（図１３のモデル生成ラインＺ１〜３を参照）。
【０１５５】
Ｓ１５７Ｂにおいて、仕様解析部２７０は画面遷移仕様１０１の全ての画面遷移定義を選択済みであるか否かを判定する。
未選択の画面遷移定義が残っている場合（ＹＥＳ）、処理はＳ１５１Ｂに戻る。
未選択の画面遷移定義を残っていない場合（ＮＯ）、モデル生成情報生成処理（Ｓ１５０Ｂ）は終了する。
【０１５６】
図１０に戻り、モデル生成方法の説明を続ける。
【０１５７】
Ｓ１５０Ｂの後、処理はＳ１６０Ｂに進む。
【０１５８】
Ｓ１６０Ｂにおいて、モデル生成部２５０はＳ１４０Ｂで特定された初期画面ＩＤ２３１を入力し、Ｓ１５０Ｂで生成されたモデル生成情報２４１を入力する。
モデル生成部２５０は、入力した初期画面ＩＤ２３１とモデル生成情報２４１とに基づいて画面遷移モデル１０２を生成し、生成した画面遷移モデル１０２を記憶する。
【０１５９】
図１５は、実施の形態３における画面遷移モデル１０２の一例を示す図である。
Ｓ１６０Ｂ（図１０参照）においてモデル生成部２５０が生成する画面遷移モデル１０２の一例について、図１５に基づいて以下に説明する。
【０１６０】
画面遷移モデル１０２は、初期画面設定（Ｅ）とループ処理（Ａ）とエラー処理（Ｄ）とを含む。
ループ処理（Ａ）は条件分岐命令（Ｂ）（ｂ）とブレーク命令（Ｃ）とを含む。
【０１６１】
図１５の画面遷移モデル１０２が実行された場合、初期画面設定（Ｅ）において画面ＩＤに“画面１”が設定され、ループ処理（Ａ）の条件分岐命令（Ｂ）において１〜３番目のいずれかの選択子（画面ＩＤ＝＝画面１）が選択される。
いずれかの選択子が選択されると画面ＩＤに“画面２”が設定される。
また、１番目の選択子が選択されると“条件１成立”という状態が設定される。
次に、条件分岐命令（Ｂ）において選択子（画面ＩＤ＝＝画面２）が選択され、条件分岐命令（ｂ）において選択子（条件１成立）が選択され、画面ＩＤに“画面２”が設定される。
以後、画面ＩＤと状態（条件の成立・不成立）に従ってループ処理（Ａ）が繰り返される。
【０１６２】
条件分岐命令（Ｂ）（ｂ）において該当する選択子が無い場合、ブレーク命令（Ｃ）によってループ処理（Ａ）を抜け、エラー処理（Ｄ）が実行される。
【０１６３】
モデル生成部２５０は、初期画面ＩＤ２３１とモデル生成情報２４１（図１３参照）とに基づいて例えば以下のように画面遷移モデル１０２を生成する。
【０１６４】
モデル生成部２５０は、画面ＩＤ（変数）に初期画面ＩＤ２３１を設定する初期画面設定（Ｅ）を記述する。
モデル生成部２５０は、ループ処理（Ａ）の「ｄｏ」「ｏｄ」を記述する。
モデル生成部２５０は、条件分岐命令（Ｂ）の「ｉｆ」を記述する。
モデル生成部２５０は、モデル生成情報２４１からモデル生成ラインを順に一つずつ選択する。以下、選択されたモデル生成ラインをモデル生成ラインＺという。
モデル生成部２５０は、モデル生成ラインＺに「条件」が設定されている場合、条件分岐命令（ｂ）の「ｉｆ」を記述する。
モデル生成部２５０は、モデル生成ラインＺの「画面ＩＤ」を選択子の条件にして記述し、モデル生成ラインＺの「遷移先画面」と「処理」とを条件成立時の処理にして記述する。
モデル生成部２５０は、条件分岐命令（Ｂ）の最後の選択子としてブレーク命令（Ｃ）を記述する。
モデル生成部２５０は、ループ処理（Ａ）の外にエラー処理（Ｄ）を記述する。
【０１６５】
図１０に戻り、モデル生成方法の説明を続ける。
【０１６６】
Ｓ１６０Ｂの後、処理はＳ１７０Ｂに進む。
【０１６７】
Ｓ１７０Ｂにおいて、モデル出力部２６０は、Ｓ１６０Ｂで生成された画面遷移モデル１０２を入力し、入力した画面遷移モデル１０２を出力する。
Ｓ１７０Ｂにより、モデル生成方法は終了する。
【０１６８】
実施の形態３において、例えば、以下のようなモデル生成装置（および方法、プログラム）について説明した。
【０１６９】
モデル生成装置は、入力検証部と初期画面検出部とモデル生成部を備え、仕様を入力とし検証モデルを出力する。
入力する仕様は、画面遷移仕様と処理仕様である。画面遷移仕様には、画面、操作と遷移先画面との対応関係と遷移条件とが記述されている。処理仕様には、各画面における操作と状態遷移に関わる処理について記載されている。
入力検証部は、入力された画面遷移仕様において、画面が一意であること、遷移先画面が定義されていること、遷移先画面に条件が記述されている場合にその条件が成立しない場合の遷移先画面があることを検証する。また、入力検証部は、入力された処理仕様において、画面、操作、条件が画面遷移仕様に記載されていること、条件が成立する場合と成立しなくなる場合の両方の処理が記述されていることを検証する。
モデル生成部は、遷移条件を含む画面遷移モデルを生成する。
【０１７０】
本装置は、画面遷移をモデル検査にて検証するための詳細な条件を加えた画面遷移モデルを人手を介さずに自動的に作成することができる。これにより、モデル構築のために専用言語を習得する必要がなく、効率的にソフトウェア開発が実施できる。
本装置の入力検証部では、モデル作成前に画面遷移仕様や処理仕様のエディトリアルなミスを検出し、これらの整合性及び条件の記入漏れを検出することができる。これにより、仕様のあいまいさを防ぐと共にモデル検査で仕様の本質的な検証ができ、効率的にモデル検査やソフトウェア開発を実施することができる。
また、本装置に入力する画面遷移仕様や処理仕様は従来のソフトウェア開発で使用する形式であるので、新たに仕様を作成する必要がなく、開発期間を短縮することができる。
【符号の説明】
【０１７１】
１００  仕様検証システム、１０１  画面遷移仕様、１０２  画面遷移モデル、１０３  検証結果、１０４  処理仕様、２００  モデル生成装置、２１０  仕様入力部、２２０  入力検証部、２２１  編集ミス情報、２３０  初期画面検出部、２３１  初期画面ＩＤ、２４０  メモリ部、２４１  モデル生成情報、２５０  モデル生成部、２６０  モデル出力部、２７０  仕様解析部、３００  モデル検査器、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ドライブ装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2011180850.tif 000003
【図２】
2011180850.tif 000004
【図３】
2011180850.tif 000005
【図４】
2011180850.tif 000006
【図５】
2011180850.tif 000007
【図６】
2011180850.tif 000008
【図７】
2011180850.tif 000009
【図８】
2011180850.tif 000010
【図９】
2011180850.tif 000011
【図１０】
2011180850.tif 000012
【図１１】
2011180850.tif 000013
【図１２】
2011180850.tif 000014
【図１３】
2011180850.tif 000015
【図１４】
2011180850.tif 000016
【図１５】
2011180850.tif 000017