(57)【要約】【課題】実装の前段階において、仕様書の曖昧、矛盾、漏れを取り除くことにより、設計品質の向上、設計期間の短縮化および設計労力の軽減を図ること。【解決手段】仕様書確認装置２００は、ユースケース抽出部２０２により、未処理のユースケースを仕様書情報２０１から抽出する。つぎに第１の設定部２０３により、ユースケースに関する事前条件（ＵＰＲＥ）、事後条件（ＵＰＯＳ）および不変条件（ＵＩＮＶ）を用いて条件Ａを設定する。そして操作抽出部２０４により、仕様書情報２０１から当該未処理のパスのイベントフローを選択し、そのイベントフローから未処理の操作（記述）を抽出する。この後、第２の設定部２０５は、抽出された操作（記述）から、当該操作に関する事前条件（ＯｉＰＲＥ）および事後条件（ＯｉＰＯＳ）を設定する。そして、判定部２０６は、ユースケースに関する不変条件（ＵＩＮＶ）が成立するか否かを判定する。【選択図】        図２
2006323694.tif 000002
【特許請求の範囲】
【請求項１】
設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出するユースケース抽出工程と、
前記抽出工程によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定する第１の設定工程と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出する操作抽出工程と、
前記操作抽出工程によって抽出された操作に関する条件を設定する第２の設定工程と、
前記第２の設定工程によって設定された操作に関する条件を用いて、前記第１の設定工程によって設定された条件が成立するか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする仕様書確認方法。
【請求項２】
前記第１の設定工程は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定し、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定工程は、
前記第１の設定工程によって設定された事前条件および事後条件を、前記第２の設定工程によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定することを特徴とする請求項１に記載の仕様書確認方法。
【請求項３】
前記第１の設定工程は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定し、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定工程は、
前記第２の設定工程によって設定された事前条件が前記第１の設定工程によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定工程によって設定された事後条件が前記第１の設定工程によって設定された事後条件に包含されるか否かを判定することを特徴とする請求項１に記載の仕様書確認方法。
【請求項４】
設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出させるユースケース抽出工程と、
前記抽出工程によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定させる第１の設定工程と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出させる操作抽出工程と、
前記操作抽出工程によって抽出された操作に関する条件を設定させる第２の設定工程と、
前記第２の設定工程によって設定された操作に関する条件を用いて、前記第１の設定工程によって設定された条件が成立するか否かを判定させる判定工程と、
前記判定工程によって判定された判定結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする仕様書確認プログラム。
【請求項５】
前記第１の設定工程は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定させ、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定させ、
前記判定工程は、
前記第１の設定工程によって設定された事前条件および事後条件を、前記第２の設定工程によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定させることを特徴とする請求項４に記載の仕様書確認プログラム。
【請求項６】
前記第１の設定工程は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定させ、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定させ、
前記判定工程は、
前記第２の設定工程によって設定された事前条件が前記第１の設定工程によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定工程によって設定された事後条件が前記第１の設定工程によって設定された事後条件に包含されるか否かを判定させることを特徴とする請求項４に記載の仕様書確認プログラム。
【請求項７】
請求項４〜６のいずれか一つに記載の仕様書確認プログラムを記録したコンピュータに読み取り可能な記録媒体。
【請求項８】
設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出するユースケース抽出手段と、
前記抽出手段によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定する第１の設定手段と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出する操作抽出手段と、
前記操作抽出手段によって抽出された操作に関する条件を設定する第２の設定手段と、
前記第２の設定手段によって設定された操作に関する条件を用いて、前記第１の設定手段によって設定された条件が成立するか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする仕様書確認装置。
【請求項９】
前記第１の設定手段は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定し、
前記第２の設定手段は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定手段は、
前記第１の設定手段によって設定された事前条件および事後条件を、前記第２の設定手段によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定することを特徴とする請求項８に記載の仕様書確認装置。
【請求項１０】
前記第１の設定手段は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定し、
前記第２の設定手段は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定手段は、
前記第２の設定手段によって設定された事前条件が前記第１の設定手段によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定手段によって設定された事後条件が前記第１の設定手段によって設定された事後条件に包含されるか否かを判定することを特徴とする請求項８に記載の仕様書確認装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソフトウェアやハードウェアなどの設計対象の仕様書を確認する仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置に関する。
【背景技術】
【０００２】
現在、ソフトウェアやハードウェアの大規模化、多機能化により、システムの正しさを保証するための検証作業がますます困難になっている。特に、ソフトウェアでは開発工程の５０％が検証であり、ハードウェアでは開発工程の７０％〜８０％が検証に費やされる。とりわけ、仕様による手戻り作業が多発しており、ＬＳＩシステムの手戻り設計は７５％が仕様に起因している。
【０００３】
上述したシステムの品質を保証するためには、２つの作業が必要である。その一つは設計の正しさの保証であり、もう一つは実装の正しさの保証である。現状の検証・テストの技術は、基本的に後者の『実装の正しさの保証』に着目しているが、前者の『設計の正しさの保証』に対して、多くの場合、仕様書が自然言語で記述されているため、今までデザインレビュー、つまり目視でチェックすることとしている。また、仕様の検証、確認に関しては、下記特許文献１〜５が開示されている。
【０００４】
【特許文献１】特開２００１−２０２３９８号公報
【特許文献２】特開２００４−７８５０１号公報
【特許文献３】特開平８−６７７８号公報
【特許文献４】特開平６−７５７６１号公報
【特許文献５】特開平８−１６６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のように、目視で仕様書をチェックする場合、仕様書の曖昧さ、矛盾、漏れ、ミスを完全に取り除くことができない。また、その中の一部はそのまま実装にも反映されてしまい、誤った設計になってしまうケースも多くなる。したがって、設計品質が低下するという問題があった。また、誤った設計を実装段階の検証・テストで取り除こうとすると、多大な時間や手間がかかり、設計期間の長期化および設計者の負担増大を招くという問題があった。
【０００６】
また、上記特許文献１の仕様検証支援装置では、ユースケースを用いていないため、仕様を機能として捉えておらず、仕様の機能に関するエラーを取り除くことができず、設計品質が低下するという問題があった。
【０００７】
また、上記特許文献２の設計支援装置及び設計結果評価方法では、要求に満足するかどうかだけをチェックしており、仕様書の曖昧さ、矛盾、漏れ、ミスを除去することができず、設計品質が低下するという問題があった。
【０００８】
また、上記特許文献３のソフトウェア仕様の検証装置では、仕様の状態の抜けをチェックしているが、実際の外部装置からのイベントフローにおけるイベントの抜け、矛盾について触れていないため、仕様書の曖昧さ、矛盾、漏れ、ミスを完全に取り除くことができず、設計品質が低下するという問題があった。
【０００９】
また、上記特許文献４の仕様検証装置では、代数記述言語処理系で仕様を記述しなければならないが、具体的にどのように記述するのかなど、現実の仕様をすべて代数記述言語処理系で記述することは困難であり、設計者の負担が増大するという問題があった。
【００１０】
また、上記特許文献５の仕様実行検証装置では、仕様をモデルにしなければならないため、作業工数が増加して、設計期間の長期化および設計者の負担増大を招くという問題があった。
【００１１】
このように、結局、上記特許文献１〜５の従来技術においても、仕様書の曖昧さ、矛盾、漏れ、ミスを完全に取り除くことができず、設計品質の低下、設計期間の長期化および設計者の負担増大を招くという問題があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するため、実装の前段階において、仕様書の曖昧、矛盾、漏れを取り除くことにより、設計品質の向上、設計期間の短縮化および設計労力の軽減を図ることができる仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、この発明にかかる仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置は、設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出し、抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定し、前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出し、抽出された操作に関する条件を設定し、設定された操作に関する条件を用いて、設定された条件が成立するか否かを判定し、判定された判定結果を出力することを特徴とする。
【００１４】
この発明によれば、設計対象の実装前に仕様書が正しいか否か（正当性）を確認することができる。
【００１５】
また、上記発明において、前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定し、前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、設定された事前条件および事後条件を、設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定することとしてもよい。
【００１６】
この発明によれば、ユースケースの機能が、その事前条件と事後条件との間で変化しているか否かを確認することができる。
【００１７】
また、上記発明において、前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定し、前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、設定された事前条件が、設定された事前条件に包含されるか否かを判定するとともに、設定された事後条件が、設定された事後条件に包含されるか否かを判定することとしてもよい。
【００１８】
この発明によれば、パスが正しく実行されるか否かを確認することができる。
【００１９】
また、上記発明において、前記パスは、前記設計対象の基本動作を示す基本パスとしてもよく、また、前記設計対象の基本動作と代替可能な代替動作を示す代替パスとしてもよく、さらに、前記設計対象の例外的な動作を示す例外パスとしてもよい。
【００２０】
この発明によれば、パスの種類に応じて、パスが正しく実行されるか否かを確認することができる。
【発明の効果】
【００２１】
本発明にかかる仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置によれば、実装の前段階において、仕様書の曖昧、矛盾、漏れを取り除くことにより、設計品質の向上、設計期間の短縮化および設計労力の軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明にかかる仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置の好適な実施の形態を詳細に説明する。
【００２３】
（仕様書確認装置のハードウェア構成）
まず、この発明の実施の形態にかかる仕様書確認装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかる仕様書確認装置のハードウェア構成を示すブロック図である。
【００２４】
図１において、仕様書確認装置は、ＣＰＵ１０１と、ＲＯＭ１０２と、ＲＡＭ１０３と、ＨＤＤ（ハードディスクドライブ）１０４と、ＨＤ（ハードディスク）１０５と、ＦＤＤ（フレキシブルディスクドライブ）１０６と、着脱可能な記録媒体の一例としてのＦＤ（フレキシブルディスク）１０７と、ディスプレイ１０８と、Ｉ／Ｆ（インターフェース）１０９と、キーボード１１０と、マウス１１１と、スキャナ１１２と、プリンタ１１３と、を備えている。また、各構成部はバス１００によってそれぞれ接続されている。
【００２５】
ここで、ＣＰＵ１０１は、仕様書確認装置の全体の制御を司る。ＲＯＭ１０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ１０３は、ＣＰＵ１０１のワークエリアとして使用される。ＨＤＤ１０４は、ＣＰＵ１０１の制御にしたがってＨＤ１０５に対するデータのリード／ライトを制御する。ＨＤ１０５は、ＨＤＤ１０４の制御で書き込まれたデータを記憶する。
【００２６】
ＦＤＤ１０６は、ＣＰＵ１０１の制御にしたがってＦＤ１０７に対するデータのリード／ライトを制御する。ＦＤ１０７は、ＦＤＤ１０６の制御で書き込まれたデータを記憶したり、ＦＤ１０７に記憶されたデータを仕様書確認装置に読み取らせたりする。
【００２７】
また、着脱可能な記録媒体として、ＦＤ１０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ１０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ１０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２８】
Ｉ／Ｆ１０９は、通信回線を通じてインターネットなどのネットワーク１１４に接続され、このネットワーク１１４を介して他の装置に接続される。そして、Ｉ／Ｆ１０９は、ネットワーク１１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ１０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２９】
キーボード１１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス１１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００３０】
スキャナ１１２は、画像を光学的に読み取り、仕様書確認装置内に画像データを取り込む。なお、スキャナ１１２は、ＯＣＲ機能を持たせてもよい。また、プリンタ１１３は、画像データや文書データを印刷する。プリンタ１１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００３１】
（仕様書確認装置の機能的構成）
つぎに、この発明の実施の形態にかかる仕様書確認装置の機能的構成について説明する。図２は、この発明の実施の形態にかかる仕様書確認装置の機能的構成を示すブロック図である。図２において、仕様書確認装置２００は、仕様書情報２０１と、ユースケース抽出部２０２と、第１の設定部２０３と、操作抽出部２０４と、第２の設定部２０５と、判定部２０６と、出力部２０７と、から構成されている。
【００３２】
まず、仕様書情報２０１とは、ソフトウェアやハードウェアなどの設計対象の仕様書を示すコンピュータに読み取り可能な電子情報である。仕様書情報２０１には、具体的には、たとえば、設計対象の機能を示すユースケース図、ユースケース図内の各ユースケースに定義された条件、設計対象の動作を示すパスに関するイベントフロー（シーケンス図）、当該各イベントフロー内の操作（操作記述）が含まれている。
【００３３】
ユースケースに定義された条件には、事前条件、事後条件および不変条件がある。この事前条件とは、当該ユースケースの実行前に満たすべき条件である。また、事後条件とは、当該ユースケースの実行後に満たすべき条件である。また、不変条件とは、ユースケースに関する事後条件が発生するまでの間にユースケースに要求される不変の条件である。
【００３４】
また、設計対象の動作を示すパスには、基本パス、代替パスおよび例外パスがある。基本パスとは、設計対象の基本動作を示すパスである。また、代替パスとは、基本動作に対して代替可能な代替動作を示すパスである。また、例外パスとは、基本動作および代替動作以外の例外的な動作を示すパスである。
【００３５】
また、操作記述には、その事前条件および事後条件が定義されている。操作記述に定義された事前条件とは、当該操作の実行前に満たすべき条件である。また、操作記述に定義された事後条件とは、当該操作の実行後に満たすべき条件である。
【００３６】
また、ユースケース抽出部２０２は、仕様書情報２０１に含まれているユースケース図の中から任意のユースケースを抽出する。この抽出処理は、未抽出のユースケースがなくなるまで実行される。
【００３７】
また、第１の設定部２０３は、ユースケース抽出部２０２によって抽出されたユースケースに基づいて、仕様書情報２０１の正当性に関する条件を設定する。具体的には、任意のユースケースが抽出された場合、当該ユースケースに定義された事前条件、事後条件および不変条件を仕様書情報２０１から抽出する。そして、下記の条件Ａを設定する。
Ａ．事前条件（ＵＰＲＥ）−＞不変条件（ＵＩＮＶ）ｕｎｔｉｌ事後条件（ＵＰＯＳ）
【００３８】
条件Ａは、事前条件（ＵＰＲＥ）を満たしている場合、事後条件（ＵＰＯＳ）を満たすまでの間、不変条件（ＵＩＮＶ）を満たす、という条件である。
【００３９】
上記条件Ａにおいて、事前条件（ＵＰＲＥ）は、ユースケースに定義された事前条件に基づいて設定される。たとえば、ユースケースに定義された事前条件が単一である場合、その事前条件がそのまま、事前条件（ＵＰＲＥ）に設定される。一方、ユースケースに定義された事前条件が複数ある場合、当該各事前条件をすべてＡＮＤで結合することにより、事前条件（ＵＰＲＥ）に設定される。すなわち、ユースケースに定義された複数の事前条件をすべて満足する条件が、事前条件（ＵＰＲＥ）となる。
【００４０】
同様に、事後条件（ＵＰＯＳ）は、ユースケースに定義された事後条件に基づいて設定される。たとえば、ユースケースに定義された事後条件が単一である場合、その事後条件がそのまま、事後条件（ＵＰＯＳ）に設定される。一方、ユースケースに定義された事後条件が複数ある場合、当該各事後条件をすべてＡＮＤで結合することにより、事後条件（ＵＰＯＳ）に設定される。すなわち、ユースケースに定義された複数の事後条件をすべて満足する条件が、事後条件（ＵＰＯＳ）となる。
【００４１】
同様に、不変条件（ＵＩＮＶ）は、ユースケースに定義された不変条件に基づいて設定される。たとえば、ユースケースに定義された不変条件が単一である場合、その不変条件がそのまま、不変条件（ＵＩＮＶ）に設定される。一方、ユースケースに定義された不変条件が複数ある場合、当該各不変条件をすべてＡＮＤで結合することにより、不変条件（ＵＩＮＶ）に設定される。すなわち、ユースケースに定義された複数の不変条件をすべて満足する条件が、不変条件（ＵＩＮＶ）となる。
【００４２】
また、第１の設定部２０３は、設計対象の動作を示すパスと、当該パスの実行前におけるユースケースに関する事前条件と、パスの実行後におけるユースケースに関する事後条件とを設定する。具体的には、任意のユースケースが抽出された場合、当該ユースケースに定義された事前条件、事後条件およびパスに関するイベントフローを仕様書情報２０１から抽出する。そして、下記の条件Ｂ〜Ｄを設定する。
【００４３】
Ｂ．事前条件（ＵＰＲＥ）−＞基本パス−＞事後条件（ＵＰＯＳ）
Ｃ．事前条件（ＵＰＲＥ）−＞代替パス−＞事後条件（ＵＰＯＳ）
Ｄ．事前条件（ＵＰＲＥ）−＞例外パス−＞例外事後条件（ＵＰＯＳ）
【００４４】
条件Ｂは、事前条件（ＵＰＲＥ）を満たしている場合、基本パスを実行すると、事後条件（ＵＰＯＳ）を満たすという条件である。また、条件Ｃは、事前条件（ＵＰＲＥ）を満たしている場合、代替パスを実行すると、事後条件（ＵＰＯＳ）を満たすという条件である。また、条件Ｄは、事前条件（ＵＰＲＥ）を満たしている場合、例外パスを実行すると、例外事後条件（ＵＰＯＳ）を満たすという条件である。
【００４５】
上記条件Ｂ〜Ｄにおいて、事前条件（ＵＰＲＥ）は、ユースケースに定義された事前条件にもとづいて設定される。たとえば、ユースケースに定義された事前条件が単一である場合、その事前条件がそのまま、事前条件（ＵＰＲＥ）に設定される。一方、ユースケースに定義された事前条件が複数ある場合、当該各事前条件をすべてＡＮＤで結合することにより、事前条件（ＵＰＲＥ）に設定される。すなわち、ユースケースに定義された複数の事前条件をすべて満足する条件が、事前条件（ＵＰＲＥ）となる。
【００４６】
同様に、事後条件（例外事後条件含む）（ＵＰＯＳ）は、ユースケースに定義された事後条件にもとづいて設定される。たとえば、ユースケースに定義された事後条件が単一である場合、その事後条件がそのまま、事後条件（ＵＰＯＳ）に設定される。一方、ユースケースに定義された事後条件が複数ある場合、当該各事後条件をすべてＡＮＤで結合することにより、事後条件（ＵＰＯＳ）に設定される。すなわち、ユースケースに定義された複数の事後条件をすべて満足する条件が、事後条件（ＵＰＯＳ）となる。
【００４７】
また、操作抽出部２０４は、設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出する。具体的には、仕様書情報２０１内における、ユースケース抽出部２０２によって抽出されたユースケースの動作を示すパスに関するイベントフローの中から任意の操作記述を抽出する。この抽出処理は、未抽出の操作記述がなくなるまで実行される。
【００４８】
また、第２の設定部２０５は、操作抽出部２０４によって抽出された操作に関する事前条件（ＯｉＰＲＥ）および事後条件（ＯｉＰＯＳ）を設定する。ｉ（ｉ＝１〜ｎ）は操作記述の番号である。上記条件Ａ〜Ｄにおいて、事前条件（ＯｉＰＲＥ）は、操作記述に定義された事前条件に基づいて設定される。たとえば、操作記述に定義された事前条件が単一である場合、その事前条件がそのまま、事前条件（ＯｉＰＲＥ）に設定される。一方、操作記述に定義された事前条件が複数ある場合、当該各事前条件をすべてＡＮＤで結合することにより、事前条件（ＯｉＰＲＥ）に設定される。すなわち、操作記述に定義された複数の事前条件をすべて満足する条件が、事前条件（ＯｉＰＲＥ）となる。
【００４９】
同様に、事後条件（ＯｉＰＯＳ）は、操作記述に定義された事後条件に基づいて設定される。たとえば、操作記述に定義された事後条件が単一である場合、その事後条件がそのまま、事後条件（ＯｉＰＯＳ）に設定される。一方、操作記述に定義された事後条件が複数ある場合、当該各事後条件をすべてＡＮＤで結合することにより、事後条件（ＯｉＰＯＳ）に設定される。すなわち、操作記述に定義された複数の事後条件をすべて満足する条件が、事後条件（ＯｉＰＯＳ）となる。
【００５０】
また、判定部２０６は、第２の設定部２０５によって設定された操作に関する条件を用いて、第１の設定部２０３によって設定された条件が成立するか否かを判定する。これにより、仕様書が正しいかどうかを確認（検証）することができる。具体的には、上記条件Ａの場合、第１の設定部２０３によって設定された事前条件（ＵＰＲＥ）および事後条件（ＵＰＯＳ）を、第２の設定部２０５によって設定された事前条件（ＯｉＰＲＥ）および事後条件（ＯｉＰＯＳ）とした場合、不変条件（ＵＩＮＶ）が成立するか否かを判定する。
【００５１】
また、判定部２０６は、第２の設定部２０５によって設定された事前条件（ＯｉＰＲＥ）が第１の設定部２０３によって設定された事前条件（ＵＰＲＥ）に包含されるか否かを判定するとともに、第２の設定部２０５によって設定された事後条件（ＯｉＰＯＳ）が第１の設定部２０３によって設定された事後条件（ＵＰＯＳ）に包含されるか否かを判定する。
【００５２】
また、出力部２０７は、判定部２０６によって判定された判定結果を出力する。具体的には、たとえば、判定結果ＯＫや判定結果ＮＧをディスプレイ１０８に表示したり、プリンタ１１３から印刷出力したり、スピーカから音声出力する。
【００５３】
なお、上述した仕様書情報２０１は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体によって、その機能を実現する。また、ユースケース抽出部２０２、第１の設定部２０３、操作抽出部２０４、第２の設定部２０５、判定部２０６、および出力部２０７は、具体的には、たとえば、図１に示したＲＯＭ１０２、ＲＡＭ１０３、ＨＤ１０５などの記録媒体に記録されたプログラムを、ＣＰＵ１０１が実行することによって、またはＩ／Ｆ１０９によって、その機能を実現する。
【００５４】
（仕様書確認処理手順）
つぎに、この発明の実施の形態にかかる仕様書確認装置の仕様書確認処理手順について説明する。図３および図４は、この発明の実施の形態にかかる仕様書確認装置の仕様書確認処理手順を示すフローチャートである。なお、図３のフローチャートは、上記条件Ａを確認するためのフローチャートであり、図４のフローチャートは、上記条件Ｂ〜Ｄを確認するためのフローチャートである。
【００５５】
まず、図３において、未処理のユースケースがあるか否かを判断する（ステップＳ３０１）。未処理のユースケースがある場合（ステップＳ３０１：Ｙｅｓ）、当該未処理のユースケースを仕様書情報２０１から抽出する（ステップＳ３０２）。そして、ユースケースに関する事前条件（ＵＰＲＥ）、事後条件（ＵＰＯＳ）および不変条件（ＵＩＮＶ）を用いて上記条件Ａを設定する（ステップＳ３０３）。
【００５６】
このあと、抽出されたユースケースに関して、未処理のパスがあるか否かを判断する（ステップＳ３０４）。未処理のパスがない場合（ステップＳ３０４：Ｎｏ）、ステップＳ３０１に戻る。一方、未処理のパスがある場合（ステップＳ３０４：Ｙｅｓ）、仕様書情報２０１から当該未処理のパスのイベントフローを選択する（ステップＳ３０５）。そして、選択されたイベントフローの中に、未処理の操作があるか否かを判断する（ステップＳ３０６）。
【００５７】
未処理の操作がない場合（ステップＳ３０６：Ｎｏ）、ステップＳ３０４に戻る。一方、未処理の操作がある場合（ステップＳ３０６：Ｙｅｓ）、選択されたイベントフローから当該未処理の操作（記述）を抽出する（ステップＳ３０７）。そして、抽出された操作（記述）から、当該操作に関する事前条件（ＯｉＰＲＥ）を設定するとともに（ステップＳ３０８）、事後条件（ＯｉＰＯＳ）も設定する（ステップＳ３０９）。
【００５８】
そして、条件Ａの事前条件（ＵＰＲＥ）および事後条件（ＵＰＯＳ）を、事前条件（ＯｉＰＲＥ）および事後条件（ＯｉＰＯＳ）に変え、ユースケースに関する不変条件（ＵＩＮＶ）が成立するか否かを判定する（ステップＳ３１０）。成立しない場合（ステップＳ３１０：Ｎｏ）、ＮＧ結果を表示して（ステップＳ３１１）、一連の処理を終了する。
【００５９】
一方、不変条件（ＵＩＮＶ）が成立する場合（ステップＳ３１０：Ｙｅｓ）、ステップＳ３０６に戻る。このあと、ステップＳ３０６において、未処理の操作がなく（ステップＳ３０６：Ｎｏ）、ステップＳ３０４に戻って、未処理のパスもない場合（ステップＳ３０４）、ステップＳ３０１に戻る。そして、ステップＳ３０１において、未処理のユースケースがない場合（ステップＳ３０１：Ｎｏ）、全ユースケースにおいて、ステップＳ３１０の判定が正しいこととなり、ＯＫ結果を表示して（ステップＳ３１２）、一連の処理を終了する。
【００６０】
つぎに、図４のフローチャートについて説明する。まず、未処理のユースケースがあるか否かを判断する（ステップＳ４０１）。未処理のユースケースがある場合（ステップＳ４０１：Ｙｅｓ）、当該未処理のユースケースを仕様書情報２０１から抽出する（ステップＳ４０２）。そして、ユースケースに関する事前条件（ＵＰＲＥ）、事後条件（ＵＰＯＳ）および不変条件（ＵＩＮＶ）を用いて上記条件Ｂ（またはＣ、Ｄ）を設定する（ステップＳ４０３）。
【００６１】
このあと、抽出されたユースケースに関して、未処理のパスがあるか否かを判断する（ステップＳ４０４）。未処理のパスがない場合（ステップＳ４０４：Ｎｏ）、ステップＳ４０１に戻る。一方、未処理のパスがある場合（ステップＳ４０４：Ｙｅｓ）、仕様書情報２０１から当該未処理のパスのイベントフローを選択する（ステップＳ４０５）。そして、選択されたイベントフローの中に、未処理の操作があるか否かを判断する（ステップＳ４０６）。
【００６２】
未処理の操作がない場合（ステップＳ４０６：Ｎｏ）、ステップＳ４１０に移行する。一方、未処理の操作がある場合（ステップＳ４０６：Ｙｅｓ）、選択されたイベントフローから当該未処理の操作（記述）を抽出する（ステップＳ４０７）。そして、抽出された操作（記述）から、当該操作に関する事前条件（ＯｉＰＲＥ）を設定して保持するとともに（ステップＳ４０８）、事後条件（ＯｉＰＯＳ）も設定して保持する（ステップＳ４０９）。そして、ステップＳ４０６に戻る。
【００６３】
このステップＳ４０６〜Ｓ４０９までの一連の処理手順を、ｎ個の操作記述すべてについておこない、事前条件（Ｏ１ＰＲＥ）〜（ＯｎＰＲＥ）および事後条件（Ｏ１ＰＯＳ）〜（ＯｎＰＯＳ）を保持する。
【００６４】
このあと、ステップＳ４１０において、ステップＳ４０８において保持された操作に関する事前条件（Ｏ１ＰＲＥ）〜（ＯｎＰＲＥ）が、条件Ｂ（ＣまたはＤ）のユースケースに関する事前条件（ＵＰＲＥ）のサブセット（部分集合）、すなわち、事前条件（ＵＰＲＥ）に包含されているか否かを判定する（ステップＳ４１０）。
【００６５】
包含されていないと判定された場合（ステップＳ４１０：Ｎｏ）、仕様書に誤りがあることとなり、ＮＧ結果を表示して（ステップＳ４１２）、一連の処理を終了する。一方、包含されていると判定された場合（ステップＳ４１０：Ｙｅｓ）、ステップＳ４０９において保持された操作に関する事後条件（Ｏ１ＰＯＳ）〜（ＯｎＰＯＳ）が、条件Ｂ（ＣまたはＤ）のユースケースに関する事後条件（ＵＰＯＳ）のサブセット（部分集合）、すなわち、事後条件（ＵＰＯＳ）に包含されているか否かを判定する（ステップＳ４１１）。
【００６６】
包含されていないと判定された場合（ステップＳ４１１：Ｎｏ）、仕様書に誤りがあることとなり、ＮＧ結果を表示して（ステップＳ４１２）、一連の処理を終了する。一方、包含されていると判定された場合（ステップＳ４１１：Ｙｅｓ）、ステップＳ４０４に戻る。そして、ステップＳ４０４において、未処理のパスがない場合（ステップＳ４０４：Ｎｏ）、ステップＳ４０１に戻る。そして、未処理のユースケースがない場合（ステップＳ４０１：Ｎｏ）、仕様書が正しいこととなり、ＯＫ結果を表示して（ステップＳ４１３）、一連の処理を終了する。
【００６７】
このように、上述した実施の形態によれば、実装の検証・テストの前に仕様書のミス、矛盾、曖昧を取り除くことができる。また、外部からどのように使うかといった観点からイベントの抜けやイベント列のミスを取り除くことができる。さらに、仕様書に近い形のモデル（仕様書情報）を用いているため、現実的な確認（検証）をおこなうことができる。さらに、スタティックな確認であるため、実行させるための工数が発生せず効率的である。
【実施例】
【００６８】
つぎに、上述した実施の形態の実施例について説明する。ここでは、設計対象を銀行のＡＴＭシステムとし、このＡＴＭシステムを用いて預金する場合を例に挙げて説明する。図５は、仕様書情報２０１に定義されているＡＴＭシステムのユースケース図である。図５において、符号５００はＡＴＭシステムである。また、符号５０１は、ＡＴＭシステム５００を利用する顧客をあらわすアクターである。また、符号５０２は、『預金する』というＡＴＭシステム５００の一機能をあらわすユースケースである。
【００６９】
つぎに、ユースケース５０２を機能させるために定義された条件（事前条件、事後条件および不変条件）を下記表１に示す。
【表１】
2006323694.tif 000003
【００７０】
つぎに、仕様書情報２０１に定義されているＡＴＭシステムの基本パスについて説明する。ここでは、基本パスは、キャッシュカードを用いて預金するイベントフローである。図６は、基本パスのイベントフローを示すシーケンス図である。図中の数字１．０〜２．５は、シーケンス番号である。
【００７１】
図６のイベントフローＦ１において、まず、顧客５０１は、ＡＴＭシステム５００に顧客５０１のキャッシュカードを挿入する（１．０）。そして、顧客５０１は、ＡＴＭシステム５００にお金を入れる（２．０）。つぎに、ＡＴＭシステム５００は、顧客５０１に対し、シーケンス番号２．０で入れたお金の金額を確認する（２．１）。そして、顧客５０１は、シーケンス番号２．１による金額を確認した後、確認ボタンを押下するなどして預金する（２．２）。
【００７２】
このあと、ＡＴＭシステム５００は、データベース６００に対し、顧客５０１の残高を更新する（２．３）。そして、ＡＴＭシステム５００は、顧客５０１のキャッシュカードを返却し（２．４）、預金伝票を発行する（２．５）。
【００７３】
つぎに、仕様書情報２０１に定義されているＡＴＭシステムの代替パスについて説明する。ここでは、代替パスは、通帳を用いて預金するイベントフローである。図７は、代替パスのイベントフローを示すシーケンス図である。図中の数字１．０〜２．５は、シーケンス番号である。
【００７４】
図７のイベントフローＦ２において、まず、顧客５０１は、ＡＴＭシステム５００に顧客５０１の通帳を挿入する（１．０）。そして、顧客５０１は、ＡＴＭシステム５００にお金を入れる（２．０）。つぎに、ＡＴＭシステム５００は、顧客５０１に対し、シーケンス番号２．０で入れたお金の金額を確認する（２．１）。そして、顧客５０１は、シーケンス番号２．１による金額を確認した後、確認ボタンを押下するなどして預金する（２．２）。
【００７５】
このあと、ＡＴＭシステム５００は、データベース６００に対し、顧客５０１の残高を更新する（２．３）。そして、ＡＴＭシステム５００は、顧客５０１の通帳を返却し（２．４）、預金伝票を発行する（２．５）。
【００７６】
つぎに、仕様書情報２０１に定義されているＡＴＭシステム５００の例外パス１について説明する。ここでは、例外パス１は、無効なキャッシュカードを用いたイベントフローである。図８は、例外パス１のイベントフローを示すシーケンス図である。図中の数字１．０〜１．１は、シーケンス番号である。
【００７７】
図８のイベントフローＦ３において、まず、顧客５０１は、ＡＴＭシステム５００にキャッシュカードを挿入する（１．０）。このキャッシュカードは無効なキャッシュカードであるため、ＡＴＭシステム５００は、キャッシュカードを返却する（１．１）。
【００７８】
この図８に示した例外パス１の事後条件ＵＥ１ＰＯＳ−１およびＵＥ１ＰＯＳ−２は以下の通りである。
・ＵＥ１ＰＯＳ−１：キャッシュカードが返却される。
・ＵＥ１ＰＯＳ−２：ＡＴＭシステム５００を待機状態にする。
【００７９】
つぎに、仕様書情報２０１に定義されているＡＴＭシステムの例外パス２について説明する。ここでは、例外パス２は、無効なキャッシュカードを用いたイベントフローである。図９は、例外パス２のイベントフローを示すシーケンス図である。図中の数字１．０および１．１は、シーケンス番号である。
【００８０】
図９のイベントフローＦ４において、まず、顧客５０１は、ＡＴＭシステム５００に通帳を挿入する（１．０）。この通帳は無効な通帳であるため、ＡＴＭシステム５００は、通帳を返却する（１．１）。
【００８１】
この図９に示した例外パス１の事後条件ＵＥ２ＰＯＳ−１およびＵＥ２ＰＯＳ−２は以下の通りである。
・ＵＥ２ＰＯＳ−１：通帳が返却される。
・ＵＥ２ＰＯＳ−２：ＡＴＭシステム５００を待機状態にする。
【００８２】
つぎに、仕様書情報２０１に定義されているＡＴＭシステムの例外パス３について説明する。ここでは、例外パス３は、預金を途中でキャンセルした場合のイベントフローである。図１０は、例外パス３のイベントフローを示すシーケンス図である。図中の数字２．０〜２．４は、シーケンス番号である。
【００８３】
図１０のイベントフローＦ５において、顧客５０１は、ＡＴＭシステム５００にお金を入れる（２．０）。つぎに、ＡＴＭシステム５００は、顧客５０１に対し、シーケンス番号２．０で入れたお金の金額を確認する（２．１）。そして、顧客５０１は、シーケンス番号２．１による金額を確認した後、キャンセルボタンを押下するなどして預金をキャンセルする（２．２）。
【００８４】
このあと、ＡＴＭシステム５００は、データベース６００に対し、キャッシュカードが挿入された場合には、当該キャッシュカードを返却し（２．３）、通帳が挿入された場合には、当該通帳を返却する（２．４）。
【００８５】
この図１０に示した例外パス３の事後条件ＵＥ３ＰＯＳ−１〜ＵＥ３ＰＯＳ−４は以下の通りである。
・ＵＥ３ＰＯＳ−１：お金が返却される。
・ＵＥ３ＰＯＳ−２：キャッシュカードが挿入された場合、当該キャッシュカードが返却される。
・ＵＥ３ＰＯＳ−１：通帳が挿入された場合、当該通帳が返却される。
・ＵＥ３ＰＯＳ−２：ＡＴＭシステム５００を待機状態にする。
【００８６】
つぎに、図７〜図１０に示したイベントフローに現れたＡＴＭシステム５００の操作を下記表２〜表９を用いて説明する。下記表２〜表９の各操作は、仕様書情報２０１に定義されている。
【００８７】
表２は、キャッシュカード挿入の操作記述を示す表である。
【表２】
2006323694.tif 000004
【００８８】
表３は、お金を入れる操作記述を示す表である。
【表３】
2006323694.tif 000005
【００８９】
表４は、預金する操作記述を示す表である。
【表４】
2006323694.tif 000006
【００９０】
表５は、残高を更新する操作記述を示す表である。
【表５】
2006323694.tif 000007
【００９１】
表６は、キャッシュカードを返却する操作記述を示す表である。
【表６】
2006323694.tif 000008
【００９２】
表７は、預金伝票を発行する操作記述を示す表である。
【表７】
2006323694.tif 000009
【００９３】
表８は、通帳を記入する操作記述を示す表である。
【表８】
2006323694.tif 000010
【００９４】
表９は、通帳を返却する操作記述を示す表である。
【表９】
2006323694.tif 000011
【００９５】
つぎに、仕様書の正しさの検証について説明する。まず、条件Ａ『事前条件−＞不変条件ｕｎｔｉｌ事後条件』のチェックをおこなう。この検証は、図３のフローチャートにしたがって実行する。まず、表１に示したユースケース５０２を機能させるために定義された条件を式に展開する。
【００９６】
まず、事前条件ＵＰＲＥ−１〜ＵＰＲＥ−３を式に展開すると下記式（１）の事前条件（ＵＰＲＥ）が設定される。
【００９７】
【数１】
2006323694.tif 000012
【００９８】
この式（１）の事前条件（ＵＰＲＥ）は、表１の事前条件ＵＰＲＥ−１〜ＵＰＲＥ−３をＡＮＤで結合した式である。したがって、ＡＴＭシステム５００においては、事前条件として、ＵＰＲＥ−１〜ＵＰＲＥ−３をすべて満たしている。
【００９９】
つぎに、表１に示した事後条件ＵＰＯＳ−１〜ＵＰＯＳ−６を式に展開すると下記式（２）の事後条件（ＵＰＯＳ）が設定される。
【０１００】
【数２】
2006323694.tif 000013
【０１０１】
この式（２）の事後条件（ＵＰＯＳ）は、表１の事後条件ＵＰＯＳ−１〜ＵＰＯＳ−６をＡＮＤで結合した式である。したがって、ＡＴＭシステム５００においては、事後条件として、ＵＰＯＳ−１〜ＵＰＯＳ−６をすべて満たしている。
【０１０２】
つぎに、表１に示した不変条件ＵＩＮＶ−１〜ＵＩＮＶ−２を式に展開すると下記式（３）の不変条件（ＵＩＮＶ）が設定される。
【０１０３】
【数３】
2006323694.tif 000014
【０１０４】
この式（３）の不変条件（ＵＩＮＶ）は、表１の不変条件ＵＩＮＶ−１〜ＵＩＮＶ−２をＡＮＤで結合した式である。したがって、ＡＴＭシステム５００においては、不変条件として、ＵＩＮＶ−１〜ＵＩＮＶ−２をすべて満たしている。
【０１０５】
そして、式（１）で示した事前条件（ＵＰＲＥ）、式（２）で示した事後条件（ＵＰＯＳ）、および式（３）で示した不変条件（ＵＩＮＶ）が、図６に示した基本パスと図７に示した代替パスについて、下記式（４）で示した条件Ａが成立するかどうかを確認する。
ＵＰＲＥ−＞ＵＩＮＶ  ｕｎｔｉｌ  ＵＰＯＳ・・・（４）
【０１０６】
つぎに、上記式（４）が正しいか否かを判定する。具体的には、基本パスと代替パスを選択して判定処理をおこなう。まず、図６に示した基本パスのイベントフローＦ１が選択されると、イベントフローＦ１のすべての操作（１．０〜２．５）の操作記述（表２〜表７の操作記述）を抽出する。イベントフローＦ１の操作（１．０）に着目すると、イベントフローＦ１の操作（１．０）に関する事前条件（Ｏ１ＰＲＥ）および事後条件（Ｏ１ＰＯＳ）は、下記式（５）および式（６）のように設定される。
【０１０７】
【数４】
2006323694.tif 000015
【０１０８】
【数５】
2006323694.tif 000016
【０１０９】
イベントフローＦ１の操作（１．０）の場合、電源および残高に対して、事前および事後のいずれも変更されていないので、イベントフローＦ１の操作（１．０）に関して不変条件（ＵＩＮＶ）が成立している（下記式（７））。
ＵＩＮＶ＝＝ＴＲＵＥ・・・（７）
【０１１０】
また、イベントフローＦ１の操作（２．３）に着目すると、イベントフローＦ１の操作（２．３）に関する事前条件（Ｏ４ＰＲＥ）および事後条件（Ｏ４ＰＯＳ）は、下記式（８）および式（９）のように設定される。
【０１１１】
【数６】
2006323694.tif 000017
【０１１２】
【数７】
2006323694.tif 000018
【０１１３】
イベントフローＦ１の操作（２．３）の場合、操作に関する事後条件（Ｏ４ＰＯＳ−１）は、残高を更新しているため（表５を参照）、イベントフローＦ１の操作（２．３）に関して不変条件（ＵＩＮＶ）は不成立となる（下記式（１０））。
ＵＩＮＶ＝＝ＦＡＬＳＥ・・・（１０）
【０１１４】
これにより、仕様書に誤りがあることがわかる。不成立と判定された時点でＮＧ結果を出力する。一方、すべてのイベントフローおよびすべての操作において成立と判定された場合、仕様書が正しいことが確認できる。
【０１１５】
上記例では、操作（２．３）において途中で残高を更新したために、ユースケースに関する事後条件（ＵＰＯＳ）を満たさず、不成立と判定されている。これを改善するには、不変条件を削除するか、または基本パスのイベントフローＦ１を変更する必要がある。図１１は、変更後のイベントフローＦ６を示すシーケンス図である。
【０１１６】
図１１において、操作（２．３）が『キャッシュカードを返却する（）』に、操作（２．４）が『預金伝表を発行する（）』に、操作（２．５）が『残高を更新する（）』に変更されている。
【０１１７】
つぎに、仕様書の検証をおこなう。この検証は、図４のフローチャートにしたがって実行する。上記例と同様、イベントフローＦ１の操作（１．０）に着目すると、イベントフローＦ１の操作（１．０）に関する事前条件（Ｏ１ＰＲＥ）および事後条件（Ｏ１ＰＯＳ）は、上記式（５）および式（６）のように設定される。
【０１１８】
そして、この事前条件（Ｏ１ＰＲＥ）を保持する。具体的には、下記式（１１）のように保持する。同様に、事後条件（Ｏ１ＰＯＳ）も、下記式（１２）のように保持する。
【０１１９】
【数８】
2006323694.tif 000019
【０１２０】
【数９】
2006323694.tif 000020
【０１２１】
このような処理を、イベントフローＦ１の操作（１．０）から操作（２．５）まで繰り返して、事前条件（Ｏ１ＰＲＥ）および事後条件（Ｏ１ＰＯＳ）を保持する。
【０１２２】
イベントフローＦ１の操作（１．０）〜（２．５）の場合、保持された事前条件（ＴＰＲＥ）は、ユースケースに関する事前条件（ＵＰＲＥ）を満たすこととなる（下記式（１３））。
【０１２３】
【数１０】
2006323694.tif 000021
【０１２４】
なお、ユースケースに関する事後条件（ＵＰＯＳ）についても同様の手法により判定する。また、上記例では、基本パスについて説明したが、代替パスに関しても同様に実行することで、仕様書の確認をおこなうことができる。また、例外パスに関しても同様に実行することで、仕様書の確認をおこなうことができる。この場合、事後条件として例外事後条件を適用する。
【０１２５】
以上説明したように、仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置によれば、仕様書をユースケース、イベントフロー、パス、事前条件、事後条件、不変条件によって定義することで、仕様書を明確化することができる。また、ユースケースに関する事前条件、事後条件および不変条件をチェックすることによって、仕様書の矛盾、ミス、漏れを検出することができる。また、実装前に仕様書の正しさを保証できるため、検証作業の工数削減を図ることができる。
【０１２６】
なお、本実施の形態で説明した仕様書確認方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１２７】
（付記１）設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出するユースケース抽出工程と、
前記抽出工程によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定する第１の設定工程と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出する操作抽出工程と、
前記操作抽出工程によって抽出された操作に関する条件を設定する第２の設定工程と、
前記第２の設定工程によって設定された操作に関する条件を用いて、前記第１の設定工程によって設定された条件が成立するか否かを判定する判定工程と、
前記判定工程によって判定された判定結果を出力する出力工程と、
を含んだことを特徴とする仕様書確認方法。
【０１２８】
（付記２）前記第１の設定工程は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定し、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定工程は、
前記第１の設定工程によって設定された事前条件および事後条件を、前記第２の設定工程によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定することを特徴とする付記１に記載の仕様書確認方法。
【０１２９】
（付記３）前記第１の設定工程は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定し、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定工程は、
前記第２の設定工程によって設定された事前条件が前記第１の設定工程によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定工程によって設定された事後条件が前記第１の設定工程によって設定された事後条件に包含されるか否かを判定することを特徴とする付記１に記載の仕様書確認方法。
【０１３０】
（付記４）前記パスは、前記設計対象の基本動作を示す基本パスを含むことを特徴とする付記３に記載の仕様書確認方法。
【０１３１】
（付記５）前記パスは、前記設計対象の基本動作と代替可能な代替動作を示す代替パスを含むことを特徴とする付記３または４に記載の仕様書確認方法。
【０１３２】
（付記６）前記パスは、前記設計対象の例外的な動作を示す例外パスを含むことを特徴とする付記３〜５のいずれか一つに記載の仕様書確認方法。
【０１３３】
（付記７）設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出させるユースケース抽出工程と、
前記抽出工程によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定させる第１の設定工程と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出させる操作抽出工程と、
前記操作抽出工程によって抽出された操作に関する条件を設定させる第２の設定工程と、
前記第２の設定工程によって設定された操作に関する条件を用いて、前記第１の設定工程によって設定された条件が成立するか否かを判定させる判定工程と、
前記判定工程によって判定された判定結果を出力させる出力工程と、
をコンピュータに実行させることを特徴とする仕様書確認プログラム。
【０１３４】
（付記８）前記第１の設定工程は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定させ、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定させ、
前記判定工程は、
前記第１の設定工程によって設定された事前条件および事後条件を、前記第２の設定工程によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定させることを特徴とする付記７に記載の仕様書確認プログラム。
【０１３５】
（付記９）前記第１の設定工程は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定させ、
前記第２の設定工程は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定させ、
前記判定工程は、
前記第２の設定工程によって設定された事前条件が前記第１の設定工程によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定工程によって設定された事後条件が前記第１の設定工程によって設定された事後条件に包含されるか否かを判定させることを特徴とする付記７に記載の仕様書確認プログラム。
【０１３６】
（付記１０）付記７〜９のいずれか一つに記載の仕様書確認プログラムを記録したコンピュータに読み取り可能な記録媒体。
【０１３７】
（付記１１）設計対象の機能を示すユースケース図を含む仕様書情報の中から任意のユースケースを抽出するユースケース抽出手段と、
前記抽出手段によって抽出されたユースケースに基づいて、前記仕様書情報の正当性に関する条件を設定する第１の設定手段と、
前記設計対象の動作を示すパスに関するイベントフローの中から任意の操作を抽出する操作抽出手段と、
前記操作抽出手段によって抽出された操作に関する条件を設定する第２の設定手段と、
前記第２の設定手段によって設定された操作に関する条件を用いて、前記第１の設定手段によって設定された条件が成立するか否かを判定する判定手段と、
前記判定手段によって判定された判定結果を出力する出力手段と、
を備えることを特徴とする仕様書確認装置。
【０１３８】
（付記１２）前記第１の設定手段は、
前記ユースケースに関する事前条件と、前記ユースケースに関する事後条件と、前記事後条件が発生するまでの間に前記ユースケースに要求される不変条件とを設定し、
前記第２の設定手段は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定手段は、
前記第１の設定手段によって設定された事前条件および事後条件を、前記第２の設定手段によって設定された事前条件および事後条件とした場合、前記不変条件が成立するか否かを判定することを特徴とする付記１１に記載の仕様書確認装置。
【０１３９】
（付記１３）前記第１の設定手段は、
前記設計対象の動作を示すパスと、当該パスの実行前における前記ユースケースに関する事前条件と、前記パスの実行後における前記ユースケースに関する事後条件とを設定し、
前記第２の設定手段は、
前記操作に関する事前条件と、前記操作に関する事後条件とを設定し、
前記判定手段は、
前記第２の設定手段によって設定された事前条件が前記第１の設定手段によって設定された事前条件に包含されるか否かを判定するとともに、前記第２の設定手段によって設定された事後条件が前記第１の設定手段によって設定された事後条件に包含されるか否かを判定することを特徴とする付記１１に記載の仕様書確認装置。
【産業上の利用可能性】
【０１４０】
以上のように、本発明にかかる仕様書確認方法、仕様書確認プログラム、該プログラムを記録した記録媒体、および仕様書確認装置は、各種ソフトウェアやハードウェアなどの設計対象に有用である。
【図面の簡単な説明】
【０１４１】
【図１】この発明の実施の形態にかかる仕様書確認装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態にかかる仕様書確認装置の機能的構成を示すブロック図である。
【図３】この発明の実施の形態にかかる仕様書確認装置の仕様書確認処理手順を示すフローチャートである。
【図４】この発明の実施の形態にかかる仕様書確認装置の仕様書確認処理手順を示すフローチャートである。
【図５】仕様書情報に定義されているＡＴＭシステムのユースケース図である。
【図６】基本パスのイベントフローを示すシーケンス図である。
【図７】代替パスのイベントフローを示すシーケンス図である。
【図８】例外パス１のイベントフローを示すシーケンス図である。
【図９】例外パス２のイベントフローを示すシーケンス図である。
【図１０】例外パス３のイベントフローを示すシーケンス図である。
【図１１】変更後のイベントフローＦ６を示すシーケンス図である。
【符号の説明】
【０１４２】
２００  仕様書確認装置
２０１  仕様書情報
２０２  ユースケース抽出部
２０３  第１の設定部
２０４  操作抽出部
２０５  第２の設定部
２０６  判定部
２０７  出力部
【図１】
2006323694.tif 000022
【図２】
2006323694.tif 000023
【図３】
2006323694.tif 000024
【図４】
2006323694.tif 000025
【図５】
2006323694.tif 000026
【図６】
2006323694.tif 000027
【図７】
2006323694.tif 000028
【図８】
2006323694.tif 000029
【図９】
2006323694.tif 000030
【図１０】
2006323694.tif 000031
【図１１】
2006323694.tif 000032