(57)【特許請求の範囲】
【請求項１】
処理内容を表わす情報と前記処理内容を実行するモジュール名とを処理する順に列挙した概略処理手順情報と、メソッド名と前記メソッドを含むモジュール名と前記メソッドが実行する処理を表わす情報とを含む詳細設計情報とを受付ける受付手段を備え、
前記詳細設計情報の前記メソッドが実行する処理を表わす情報は、当該メソッドが実行する処理が他のメソッドを呼び出す処理である場合に当該メソッドが呼び出す前記他のメソッドを特定する情報を含み、
前記概略処理手順情報から、前記処理する順において最初に実行する処理である開始処理を抽出する開始処理抽出手段と、
前記詳細設計情報と前記開始処理抽出手段で抽出された前記開始処理を表わす情報とから、メソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報を作成する処理手順抽出手段と、
前記概略処理手順情報と前記詳細設計処理手順情報とを比較して、不整合情報を検出する手順情報検証手段とをさらに備える、設計検証装置。
【請求項２】
検証を行なう概略処理手順情報を指定する手段をさらに備え、
前記開始処理抽出手段は指定された前記概略処理手順情報から開始処理を抽出する、請求項１に記載の設計検証装置。
【請求項３】
前記処理手順抽出手段は、
前記概略処理手順情報から、前記開始処理の処理内容と前記開始処理の次に実行する第１モジュール名とを読込む処理と、
前記詳細設計情報から、前記第１モジュールに含まれる第１メソッドが実行する処理の処理内容を読込む処理と、
前記第１メソッドが実行する処理の処理内容から、当該処理の次に実行する第２モジュール名および第２メソッド名を特定する処理と、
前記詳細設計情報から、前記第２モジュールに含まれる前記第２メソッドが実行する処理の処理内容を読込む処理と、
前記第２メソッドが実行する処理の処理内容から、当該処理の次に実行する第３モジュール名および第３メソッド名を特定する処理とを実行して前記詳細設計処理手順情報を作成する、請求項１に記載の設計検証装置。
【請求項４】
前記第２メソッドが実行する処理は第１処理と第２処理とを含み、
前記処理手順抽出手段は、前記第２メソッドが実行する前記第１処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、前記第２モジュール名を第３モジュール名とし、前記第２処理を実行する前記第２メソッド名を第３メソッド名とする、請求項３に記載の設計検証装置。
【請求項５】
特定されたモジュール名および第Ｎ処理を実行するメソッド名を順次格納する次モジュールスタックをさらに含み、
前記処理手順抽出手段は、前記第２メソッドが実行する処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、前記次モジュールスタックより第４モジュール名および第Ｎ処理を実行する第４メソッド名を取出し、前記第４モジュール名を第３モジュール名とし、前記第Ｎ処理の次の処理である第（Ｎ＋１）処理を実行する前記第４メソッド名を第３メソッド名とする、請求項３に記載の設計検証装置。
【請求項６】
コンピュータにコンピュータソフトウェアの設計検証を実行させるプログラムであって、
処理内容を表わす情報と前記処理内容を実行するモジュール名とを処理する順に列挙した概略処理手順情報と、メソッド名と前記メソッドを含むモジュール名と前記メソッドが実行する処理を表わす情報とを含む詳細設計情報とを入力するステップを前記コンピュータに実行させ、
前記詳細設計情報の前記メソッドが実行する処理を表わす情報は、当該メソッドが実行する処理が他のメソッドを呼び出す処理である場合に当該メソッドが呼び出す前記他のメソッドを特定する情報を含み、
前記概略処理手順情報から、前記処理する順において最初に実行する処理である開始処理を抽出する開始処理抽出ステップと、
前記詳細設計情報と前記開始処理抽出ステップで抽出された前記開始処理を表わす情報とから、メソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報を作成する処理手順抽出ステップと、
前記概略処理手順情報と前記詳細設計処理手順情報とを比較して、不整合情報を検出する手順情報検証ステップとをさらに前記コンピュータに実行させる、設計検証プログラム。
【請求項７】
検証を行なう概略処理手順情報を指定するステップをさらに実行させ、
前記開始処理抽出ステップにおいて指定された前記概略処理手順情報から開始処理を抽出する、請求項６に記載の設計検証プログラム。
【請求項８】
前記処理手順抽出ステップは、
前記概略処理手順情報から、前記開始処理の処理内容と前記開始処理の次に実行する第１モジュール名とを読込むステップと、
前記詳細設計情報から、前記第１モジュールに含まれる第１メソッドが実行する処理の処理内容を読込むステップと、
前記第１メソッドが実行する処理の処理内容から、当該処理の次に実行する第２モジュール名および第２メソッド名を特定するステップと、
前記詳細設計情報から、前記第２モジュールに含まれる前記第２メソッドが実行する処理の処理内容を読込むステップと、
前記第２メソッドが実行する処理の処理内容から、当該処理の次に実行する第３モジュール名および第３メソッド名を特定するステップとをさらに含む、請求項６に記載の設計検証プログラム。
【請求項９】
前記第２メソッドが実行する処理は第１処理と第２処理とを含み、
前記処理手順抽出ステップにおいて、前記第２メソッドが実行する前記第１処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、前記第２モジュール名を第３モジュール名とし、前記第２処理を実行する前記第２メソッド名を第３メソッド名とする、請求項８に記載の設計検証プログラム。
【請求項１０】
特定されたモジュール名および第Ｎ処理を実行するメソッド名を次モジュールスタック順次格納するステップをさらに実行させ、
前記処理手順抽出ステップは、前記第２メソッドが実行する処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、前記次モジュールスタックより第４モジュール名および第Ｎ処理を実行する第４メソッド名を取出し、前記第４モジュール名を第３モジュール名とし、前記第Ｎ処理の次の処理である第（Ｎ＋１）処理を実行する前記第４メソッド名を第３メソッド名とする、請求項８に記載の設計検証プログラム。
【請求項１１】
請求項６〜１０のいずれかに記載の設計検証プログラムを記録する、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は設計検証装置、設計検証プログラム、および設計検証プログラムを記録する記録媒体に関し、特に、コンピュータソフトウェア設計において、設計情報を比較することで設計の不整合を検出する設計検証装置、設計検証プログラム、および設計検証プログラムを記録する記録媒体に関する。
【背景技術】
【０００２】
ソフトウェアの設計は、要求仕様を実現するためのモジュール構成と、モジュール間の概略処理を決定する基本設計とを行なった後、複数の設計者が、基本設計に沿って各モジュールのメソッドと、メソッドの処理内容とを決定する詳細設計を行なう。そのため、設計者のミス等により、基本設計により作成された情報と、詳細設計により作成された情報との間に不整合が生じるという問題があった。特許文献１はこの問題を解決することのできる開発支援方法および装置を開示している。
【０００３】
特許文献１に開示の方法および装置は、基本設計により作成された情報から、詳細設計を自動化することで不整合を防止する。
【特許文献１】特開２００４−１１０３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示の技術では、ディスパッチャーとそのディスパッチャーから呼出される複数のモジュールとからなり、ディスパッチャーより振り分けたユーザの入力を各モジュールで処理するソフトウェア構成しか設計できないという制限があった。このため、前記ソフトウェア構成以外のソフトウェア構成においては、基本設計と詳細設計との情報の不整合をなくすことはできなかった。
【０００５】
本発明はこのような問題に鑑みてなされたものであって、適用できるソフトウェア構成に関わらず、モジュール間の処理手順とメソッドの仕様との不整合を検出することができる設計検証装置、設計検証プログラム、および設計検証プログラムを記録する記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明のある局面に従うと、設計検証装置は、処理内容を表わす情報と処理内容を実行するモジュール名とを処理する順に列挙した概略処理手順情報と、メソッド名とメソッドを含むモジュール名とメソッドが実行する処理を表わす情報とを含む詳細設計情報とを受付ける受付手段を備え、詳細設計情報のメソッドが実行する処理を表わす情報は、当該メソッドが実行する処理が他のメソッドを呼び出す処理である場合に当該メソッドが呼び出す他のメソッドを特定する情報を含み、概略処理手順情報から、処理する順において最初に実行する処理である開始処理を抽出する開始処理抽出手段と、詳細設計情報と開始処理抽出手段で抽出された開始処理を表わす情報とから、メソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報を作成する処理手順抽出手段と、概略処理手順情報と詳細設計処理手順情報とを比較して、不整合情報を検出する手順情報検証手段とをさらに備える。
【０００７】
また、設計検証装置は、検証を行なう概略処理手順情報を指定する手段をさらに備え、開始処理抽出手段は指定された概略処理手順情報から開始処理を抽出することが好ましい。
【０００８】
また、処理手順抽出手段は、概略処理手順情報から、開始処理の処理内容と開始処理の次に実行する第１モジュール名とを読込む処理と、詳細設計情報から、第１モジュールに含まれる第１メソッドが実行する処理の処理内容を読込む処理と、第１メソッドが実行する処理の処理内容から、当該処理の次に実行する第２モジュール名および第２メソッド名を特定する処理と、詳細設計情報から、第２モジュールに含まれる第２メソッドが実行する処理の処理内容を読込む処理と、第２メソッドが実行する処理の処理内容から、当該処理の次に実行する第３モジュール名および第３メソッド名を特定する処理とを実行して詳細設計処理手順情報を作成することが好ましい。
【０００９】
さらに、第２メソッドが実行する処理は第１処理と第２処理とを含み、処理手順抽出手段は、第２メソッドが実行する第１処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、第２モジュール名を第３モジュール名とし、第２処理を実行する第２メソッド名を第３メソッド名とすることが好ましい。
【００１０】
または、設計検証装置は特定されたモジュール名および第Ｎ処理を実行するメソッド名を順次格納する次モジュールスタックをさらに含み、処理手順抽出手段は、第２メソッドが実行する処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、次モジュールスタックより第４モジュール名および第Ｎ処理を実行する第４メソッド名を取出し、第４モジュール名を第３モジュール名とし、第Ｎ処理の次の処理である第（Ｎ＋１）処理を実行する第４メソッド名を第３メソッド名とすることが好ましい。
【００１１】
本発明の他の局面に従うと、設計検証プログラムは、コンピュータにコンピュータソフトウェアの設計検証を実行させるプログラムであって、処理内容を表わす情報と処理内容を実行するモジュール名とを処理する順に列挙した概要処理手順情報と、メソッド名とメソッドを含むモジュール名とメソッドが実行する処理を表わす情報とを含む詳細設計情報とを入力するステップをコンピュータに実行させ、詳細設計情報のメソッドが実行する処理を表わす情報は、当該メソッドが実行する処理が他のメソッドを呼び出す処理である場合に当該メソッドが呼び出す他のメソッドを特定する情報を含み、概略処理手順情報から、処理する順において最初に実行する処理である開始処理を抽出する開始処理抽出ステップと、詳細設計情報と開始処理抽出ステップで抽出された開始処理を表わす情報とから、メソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報を作成する処理手順抽出ステップと、概略処理手順情報と詳細設計処理手順情報とを比較して、不整合情報を検出する手順情報検証ステップとをさらにコンピュータに実行させる。
【００１２】
また、設計検証プログラムは、検証を行なう概略処理手順情報を指定するステップをさらに実行させ、開始処理抽出ステップにおいて指定された概略処理手順情報から開始処理を抽出することが好ましい。
【００１３】
また、処理手順抽出ステップは、概略処理手順情報から、開始処理の処理内容と開始処理の次に実行する第１モジュール名とを読込むステップと、詳細設計情報から、第１モジュールに含まれる第１メソッドが実行する処理の処理内容を読込むステップと、第１メソッドが実行する処理の処理内容から、当該処理の次に実行する第２モジュール名および第２メソッド名を特定するステップと、詳細設計情報から、第２モジュールに含まれる第２メソッドが実行する処理の処理内容を読込むステップと、第２メソッドが実行する処理の処理内容から、当該処理の次に実行する第３モジュール名および第３メソッド名を特定するステップとをさらに含むことが好ましい。
【００１４】
さらに、第２メソッドが実行する処理は第１処理と第２処理とを含み、処理手順抽出ステップにおいて、第２メソッドが実行する第１処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、第２モジュール名を第３モジュール名とし、第２処理を実行する第２メソッド名を第３メソッド名とすることが好ましい。
【００１５】
または、設計検証プログラムは特定されたモジュール名および第Ｎ処理を実行するメソッド名を次モジュールスタック順次格納するステップをさらに実行させ、処理手順抽出ステップは、第２メソッドが実行する処理の処理内容から当該処理の次に実行する第３モジュール名および第３メソッド名が特定されない場合、次モジュールスタックより第４モジュール名および第Ｎ処理を実行する第４メソッド名を取出し、第４モジュール名を第３モジュール名とし、第Ｎ処理の次の処理である第（Ｎ＋１）処理を実行する第４メソッド名を第３メソッド名とすることが好ましい。
【００１６】
本発明のさらに他の局面に従うと、記録媒体はコンピュータ読取可能な記録媒体であって、上記設計検証プログラムを記録する。
【発明の効果】
【００１７】
本発明にかかる設計検証装置によれば、適用できるソフトウェア構成に関わらず、モジュール間の処理手順とメソッドの仕様との不整合を検出することができ、設計の不備を早期に改善できる。そのため、本発明にかかる設計検証装置を用いて効率的なソフトウェア開発を行なうことができる。
【発明を実施するための最良の形態】
【００１８】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【００１９】
本実施の形態にかかる設計検証装置１は、一般的なパーソナルコンピュータによって実現され、そのハードウェア構成は、ＣＰＵ（Central Processing Unit）やＲＡＭ（Random Access Memory）等を備える一般的なコンピュータのハードウェア構成と同様である。
【００２０】
設計検証装置１では、ＣＰＵがＲＡＭ等の記憶装置に記憶される設計検証プログラムを実行することで、モジュール間の処理手順となる、各処理内容を表わす情報と処理内容を実行するモジュール名とを処理する順が列挙された概略処理手順情報（Ｉ１）と、メソッドの仕様となる、メソッド名とメソッドを備えるモジュール名とメソッドが実行する処理を表わす情報とを含む詳細設計情報（Ｉ２）と、検証者が検証したい設計情報を指示する概略処理手順ＩＤ（Ｉ３）とから、メソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報（Ｉ４）を作成し、概略処理手順情報（Ｉ１）と詳細設計処理手順情報（Ｉ４）とから不整合情報（Ｉ５）を出力する。
【００２１】
概略処理手順情報（Ｉ１）は基本設計者によって作成され、詳細設計情報（Ｉ２）は概略処理手順情報（Ｉ１）に基づいて詳細設計者によって作成され、概略処理手順ＩＤ（Ｉ３）は概略処理手順情報（Ｉ１）および不整合情報（Ｉ５）に基づいて検証者によって作成される。
【００２２】
図１は、本実施の形態にかかる設計検証装置１の機能構成の具体例を示すブロック図である。図１に示される各機能は、パーソナルコンピュータ等である設計検証装置１において、ＣＰＵがＲＡＭ等の記憶装置に記憶される設計検証プログラムを実行することで主にＣＰＵに形成される機能であり、その一部はハードウェアによって実現される機能であってもよい。
【００２３】
設計検証装置１で設計検証処理を行なうための機能構成は、図１を参照して、詳細設計処理手順情報作成部１０と、手順情報検証部２０とを含んで構成される。さらに、詳細設計処理手順情報作成部１０には、開始処理抽出部１１と、処理手順抽出部１２とが含まれる。
【００２４】
詳細設計処理手順情報作成部１０は、概略処理手順情報（Ｉ１）、詳細設計情報（Ｉ２）、および概略処理手順ＩＤ（Ｉ３）の入力を受付ける。開始処理抽出部１１は、概略処理手順情報（Ｉ１）および概略処理手順ＩＤ（Ｉ３）からモジュール間の処理手順において最初に実行する処理の情報を抽出し、処理手順抽出部１２に入力する。処理手順抽出部１２は、開始処理抽出部１１から入力された最初に実行する処理の情報と詳細設計情報（Ｉ２）とから詳細設計処理手順情報（Ｉ４）を作成し、手順情報検証部２０に入力する。
【００２５】
手順情報検証部２０は、概略処理手順情報（Ｉ１）の入力を受付け、概略処理手順情報（Ｉ１）と処理手順抽出部１２から入力された詳細設計処理手順情報（Ｉ４）とを比較して不整合情報（Ｉ５）を出力する。
【００２６】
図２は概略処理手順情報（Ｉ１）の第１の具体例を示す図であり、図３は概略処理手順情報（Ｉ１）の第２の具体例を示す図である。図２および図３に示される概略処理手順情報は、携帯電話で「かかってきた電話を受ける」という要求を実現する概略処理手順を表わしている情報である。
【００２７】
図２はシーケンス図で概略処理手順を表現した情報を表わし、図３はテーブルで概略処理手順を表現した情報を表わしており、これらの情報量は等しい。また、これらの情報は、システム開発支援ツールと開発方法論の統合、システム開発作業の効率化を目的としたコンピュータ支援ソフトウェアであるＣＡＳＥ（Computer Aided Software Engineering）ツールと言われるソフトウェアを用いることで、容易に相互変換され得る。また、概略処理手順情報（Ｉ１）の形式はシーケンス図およびテーブルに限定されず、その他の形式であってもよい。たとえば、ＯＭＧ（Object Management Group）が標準化しているＸＭＩ（Extensible Markup Language Metadata Interchange）形式等であってもよい。
【００２８】
図２および図３を参照して、概略処理手順情報（Ｉ１）には、複数の概略処理手順情報から１つを特定し得る識別情報である概略処理手順ＩＤ１００が含まれる。
【００２９】
図２に示されるシーケンス図による表現では、モジュール名１０１が上部に列挙され、２つのモジュール名間が矢印でつながれ、矢印の上部に処理内容が記載される。
【００３０】
詳しくは、矢印の根元は処理内容を実行するモジュール名を、矢印の先端は次の処理を実行するモジュール名を示している。具体的に、矢印１０２および処理内容１０３は、通信管理モジュールがアプリ管理モジュールに対して着信を通知し、アプリ管理モジュールに次の処理を実行させることを示している。
【００３１】
根元がモジュール名上にない矢印は、ユーザまたはハードウェアからの入力によるソフトウェアの開始処理を表わす。具体的に、矢印１０４は、無線通信ハードウェアにより着信信号を受信し、通信管理モジュールに次の処理を実行させることを示している。
【００３２】
先端がモジュール名上にない矢印は、ユーザまたはハードウェアへの出力によるソフトウェアの終了処理を表わす。具体的に、矢印１０５は、表示管理モジュールが表示装置に表示し、実行結果をユーザに提示することを示している。
【００３３】
複数の矢印の記載順序は、各処理の実行順序を表わしており、上部に記載された矢印から順に処理されることを示している。具体的には、図２に示された処理の場合、矢印１０４から順に１４種類の処理が順に実行されることを示している。
【００３４】
また、図３に示されるテーブルによる表現では、１行に処理内容を実行するモジュール名１０６と、処理内容１０７と、次に実行するモジュール名１０８とが含まれ、処理される順に上の行から下の行へ処理が列挙される。
【００３５】
詳しくは、開始処理は、第１１０行，第１２０行に示されるように、処理内容を実行するモジュール名１０６に開始処理であることを表わす記号が付されている。図３では記号「−」が使用されている。同様に、終了処理は、第１１６行，第１２６行に示されるように、次に実行するモジュール名１０８に終了処理であることを表わす記号が付されている。図３では記号「−」が使用されている。なお、図３に示されるテーブルによる表現では、記載順がモジュールの処理順を表わす場合には、次に実行するモジュール名１０８が必ずしも含まれていなくてもよい。
【００３６】
図４は、図２および図３に示された概略処理手順情報に基づいて作成された詳細設計情報（Ｉ２）の具体例を示す図である。詳細設計情報（Ｉ２）はモジュールごとに作成され、図４では６種類のモジュールの詳細設計情報が示されている。図４（Ａ）〜図４（Ｆ）に示された、キー入力管理モジュール２２０、アプリ管理モジュール２２１、表示管理モジュール２２２、通信管理モジュール２２３、電話アプリモジュール２２４、およびメールアプリモジュール２２５に対応した各詳細設計情報には、モジュール名２０１が付されている。また、詳細設計情報（Ｉ２）は、モジュールが備える複数のメソッド名２０２と、各メソッドで実施される複数の処理の順番を示す処理番号２０３と、処理の内容を示す処理内容２０４とを含む。
【００３７】
詳しくは、図４（Ｂ）を参照して、アプリ管理モジュール２２１には、２種類のメソッドaddKeyEvent()とaddTelEvent()とが含まれ、メソッドaddTelEvent()では、メールアプリモジュールのメソッドkillApli()を呼出してアプリを終了させる第１の処理と、電話アプリモジュールを起動させて電話アプリモジュールのメソッドaddTelEvent()を呼出し、着信を通知する第２の処理とが実行されることが示されている。
【００３８】
メソッド名２０２では、メソッドを実行する際の引数がある場合、その引数が入力用か出力用かを示す情報と引数名とが空白文字で区切られ、括弧内に記載される。引数が複数の場合、入出力を示す情報と引数名との組が記号「,」で区切られ列挙される。具体的に、図４（Ｂ）を参照して、アプリ管理モジュール２２１のメソッド名addKeyEvent（in Key）は、メソッドaddkeyEvent()が引数を１つ持ち、引数KeyがメソッドaddKeyEvent()の入力であることが示されている。
【００３９】
メソッド名２０２では、メソッドを実行後、そのメソッドから返される戻り値がある場合、その戻り値の型が記号「:」に続けて記載される。具体的に、図４（Ｄ）を参照して、通信管理モジュール２２３のメソッド名connectPhone():Resultは、メソッドconnectPhone()実行後の戻り値の型がResultであることが示されている。
【００４０】
また、メソッド名２０２が「−」である場合、そのメソッドは開始処理であることが示されている。具体的に、図４（Ａ）を参照して、キー入力管理モジュール２２０のメソッド名「−」が、開始処理であることを示している。
【００４１】
メソッドの処理内容２０４は、他のメソッドを呼出す処理である場合に呼出す他のメソッドを容易に認識できるように記載される。具体例としては、図４に示されるように、記号「<  >」が他の文字列と区別するために用いられて、<モジュール名：メソッド名>のように記載される。具体的に、図４（Ｂ）を参照して、アプリ管理モジュール２２１のメソッドaddKeyEvent()の第１の処理で電話アプリモジュールのaddKeyEvent()メソッドが呼出されることが示されている。
【００４２】
図５は、本実施の形態にかかる設計検証装置１での設計検証処理を示すフローチャートである。図５のフローチャートに示される処理は、パーソナルコンピュータ等である設計検証装置１において、ＣＰＵがＲＡＭ等の記憶装置に記憶される設計検証プログラムを実行し、図１に示される各部を制御することで実現される。
【００４３】
図５を参照して、本実施の形態にかかる設計検証装置１では、始めに、図示されない入力装置を介して概略処理手順情報（Ｉ１）、詳細設計情報（Ｉ２）、および概略処理手順ＩＤ（Ｉ３）の入力を受付け（ステップ、以下Ｓ１）、開始処理抽出部１１において概略処理手順情報（Ｉ１）および概略処理手順ＩＤ（Ｉ３）からモジュール間の処理手順において最初に実行する処理である開始処理の情報が抽出される（Ｓ２）。次に、処理手順抽出部１２において、Ｓ１で抽出された実行する処理の情報と詳細設計情報（Ｉ２）とから詳細設計処理手順情報（Ｉ４）が作成される（Ｓ３）。そして、手順情報検証部２０において、概略処理手順情報（Ｉ１）およびＳ３で作成された詳細設計処理手順情報（Ｉ４）から不整合情報（Ｉ５）が作成され、出力される（Ｓ４）。
【００４４】
上記ステップＳ２で、開始処理抽出部１１は、検証者が指定した概略処理手順ＩＤ（Ｉ３）の入力を受付けてそのＩＤを持つ概略処理手順情報（Ｉ１）を特定し、概略処理手順情報（Ｉ１）より開始処理情報を抽出して処理手順抽出部１２に入力する。
【００４５】
検証者により、図２または図３において示された概略処理手順ＩＤ１００が指定された場合、開始処理抽出部１１は、そのＩＤに対応した概略処理手順情報として図２または図３に示された概略処理手順情報（Ｉ１）を特定し、図３において第１１０行、および第１２０行で表わされた開始処理情報を抽出して処理手順抽出部１２に入力する。
【００４６】
上記ステップＳ３で、処理手順抽出部１２は、開始処理抽出部１１から入力された開始処理から詳細設計情報（Ｉ２）の処理を順にたどることで、詳細設計処理手順情報（Ｉ４）を作成し、不整合検出部２０に入力する。図６および図７は、上記ステップＳ３での処理手順抽出部１２における処理を示すフローチャートである。
【００４７】
また、図８は、処理手順抽出部１２でステップＳ３の処理を行なう際に用いられる、次モジュールスタックの動作を説明する図である。次モジュールスタックは、処理手順抽出部１２の内部、またはＣＰＵ等の他に含まれ、次に実行するモジュール名、メソッド名、および処理番号を一時的に格納するために用いられる。
【００４８】
また、図９は、詳細設計処理手順情報（Ｉ４）の具体例を示す図である。図９を参照して、詳細設計処理手順情報（Ｉ４）には、処理の呼び出し元のモジュール名、処理を実行するメソッド名、および呼び出し元のメソッドが実行する処理の順番を示す処理番号が、記号「：」で区切って記載された呼び出し元情報５０１と、呼び出し元のメソッドが実行する処理内容を示す処理内容５０２と、呼び出し先または次に実行するモジュール名、処理を実行するメソッド名、および呼び出し先のメソッドが実行する処理の順番を示す処理番号が、記号で区切って記載された呼び出し先情報５０３とが含まれる。なお、詳細設計処理手順情報においてその記載順がモジュールおよびメソッドの処理順を表わす場合には、呼び出し先情報５０３が必ずしも含まれていなくてもよい。
【００４９】
図８および図９を用いて図６および図７に示されたステップＳ３の処理を説明する。
図６を参照して、始めに、処理手順抽出部１２は、上記ステップＳ２の処理の結果として開始処理抽出部１１から開始処理情報を受取ると次モジュールスタックを初期化する（Ｓ３０１）。図８の次モジュールスタック４０１は、ステップＳ３０１で初期化された状態を示している。
【００５０】
次に、処理手順抽出部１２は、開始処理抽出部１１から入力された開始処理情報から１行分の情報を読込んで（Ｓ３０２）、詳細設計処理手順情報の１行分を作成し（Ｓ３０３）、作成された詳細設計処理手順情報を１行分書出す（Ｓ３０４）。
【００５１】
上記ステップＳ２の処理の結果として、図３に第１１０行、第１２０行に示される開始処理の情報を受取った場合、処理手順抽出部１２は、上記ステップＳ３０２で、まず第１１０行の開始処理情報を読込み、ステップＳ３０３で、その開始処理情報の実行中モジュール名「−」から、モジュール名「−」、メソッド名なし、処理番号なしとして、詳細設計処理手順情報の呼び出し元情報「−」を作成する。また、第１１０行の開始処理情報の処理内容「着信信号を受信する」を詳細設計処理手順情報の処理内容にコピーし、第１１０行の開始処理情報の次実行モジュール名「通信管理」から、モジュール名「通信管理」、開始処理を表わすメソッド名「−」、最初の処理を表わす処理番号「１」により、詳細設計処理手順情報の呼び出し先情報として「通信管理：−：１」を作成する。
【００５２】
ステップＳ３０４で、作成した詳細設計処理手順情報が書出される。図９に示される詳細設計処理手順情報（Ｉ４）の第５１０行は、上記具体例によって書出された詳細設計処理手順情報を表わしている。
【００５３】
次に、処理手順抽出部１２は、前回の処理で書出された詳細設計処理手順情報から呼び出し先情報を読込み、今回の処理で作成する詳細設計処理手順情報の呼び出し元情報に設定する（Ｓ３０５）。なお、詳細設計処理手順情報に呼び出し先情報が含まれない場合には、上記ステップＳ３０３で詳細設計処理手順情報が１行分作成された際に、呼び出し先情報に該当する情報を、直接、次回の処理で作成する詳細設計処理手順情報の呼び出し元情報とする。以降、同様である。
【００５４】
さらに、ステップＳ３０５で設定された呼び出し元情報が指し示す詳細設計情報の処理内容を詳細設計情報（Ｉ２）から読込み（Ｓ３０６）、読込んだ処理内容を、モジュール名・メソッド名と残りの処理内容とに分離する（Ｓ３０７）。
【００５５】
ステップＳ３０４で図９の第５１０行に示される詳細設計処理手順情報が書出された場合、上記ステップＳ３０５で処理手順抽出部１２は呼び出し先情報として「通信管理：−：１」を読込み、今回の処理で作成する詳細設計処理手順情報の呼び出し元情報を「通信管理：−：１」に設定する。次に、ステップＳ３０６で、図４に示される詳細設計情報（Ｉ２）より、設定された呼び出し元情報「通信管理：−：１」で指し示される通信管理モジュール２２３にある、メソッド名「−」で処理番号「１」の行から、処理内容「<アプリ管理:addTelEvent()>に着信を通知する」を読込み、ステップＳ３０７で、モジュール名「アプリ管理」、メソッド名addTelEvent()と、処理内容「着信を通知する」とに分離する。
【００５６】
次に、処理手順抽出部１２は、Ｓ３０７で分離されたメソッド名にメソッド名情報が含まれていることが検出された場合（Ｓ３０８で「あり」）、ステップＳ３０７で分離して得られた処理内容を今回の処理で作成する詳細設計処理手順情報の処理内容に設定する（Ｓ３１０）。また、ステップＳ３０７で分離したモジュール名とメソッド名と処理番号「１」とを、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報に設定する（Ｓ３１１）。そして、上記ステップＳ３０５，Ｓ３１０，Ｓ３１１で設定された呼び出し元情報、処理内容、および呼び出し先情報を、詳細設計処置手順情報の１行分として書出す（Ｓ３１２）。
【００５７】
上記具体例では、ステップＳ３０７で分離して得られたメソッド名にはメソッド名情報「addTelEvent()」が含まれるため、上記ステップＳ３１０では、今回の処理で作成する詳細設計処理手順情報の処理内容として、ステップＳ３０７で分離して得られた処理内容「着信を通知する」が設定される。また、上記ステップＳ３１１では、ステップＳ３０７で分離して得られたモジュール名「アプリ管理」、メソッド名addTelEvent()、および処理番号「１」から、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報として「アプリ管理:addTelEvent():1」が設定される。
【００５８】
ステップＳ３１２で、以上の設定を含んだ詳細設計処理手順情報が今回の処理で作成する詳細設計処理手順情報として書出される。図９に示される詳細設計処理手順情報（Ｉ４）の第５１１行は、上記具体例によって書出された詳細設計処理手順情報を表わしている。
【００５９】
そして、処理手順抽出部１２は、上記ステップＳ３０５で設定された呼び出し元情報を次モジュールスタックに追加し（Ｓ３１３）、ステップＳ３０５に処理を戻す。上記具体例の場合、ステップＳ３１３では、上記ステップＳ３０５で設定された呼び出し元情報「通信管理：−：１」が次モジュールスタックに追加される。図８の次モジュールスタック４０２は、ステップＳ３１３で呼び出し元情報が追加された状態を示している。
【００６０】
上記ステップＳ３０５に処理が戻された後、同様にステップＳ３０５〜Ｓ３０８，Ｓ３１０〜Ｓ３１３の処理が繰返されて、図４に示された詳細設計情報（Ｉ２）に含まれる処理情報が順に処理され、ステップＳ３１２で詳細設計処理手順情報の１行分が書出される。図９に示される詳細設計処理手順情報（Ｉ４）の第５１２行は、上記具体例によって次に書出された詳細設計処理手順情報を表わしている。
【００６１】
そして、処理手順抽出部１２は、ステップＳ３１３で、上記ステップＳ３０５で設定された呼び出し元情報を次モジュールスタックに追加し、ステップＳ３０５に処理を戻す。図８の次モジュールスタック４０３は、ステップＳ３１３で呼び出し元情報が追加された状態を示している。
【００６２】
上記ステップＳ３０５〜Ｓ３０８，Ｓ３１０〜Ｓ３１３の処理は、ステップＳ３０８においてステップＳ３０７で分離して得られたメソッド名にメソッド名情報が含まれていることが検出されなくなるまで繰返され、メソッド名情報が含まれていることが検出されなかった場合（Ｓ３０８で「なし」）、図７を参照して、ステップＳ３０６で読込んだ処理内容を今回の処理で作成する詳細設計処理手順情報の処理内容に設定し（Ｓ３２０）、さらに処理内容に次の処理が含まれているか否かを判定する（Ｓ３２１）。処理内容に次の処理が含まれていないと判定された場合（Ｓ３２１で「なし」）、次モジュールスタックに呼び出し元情報が記憶されているかどうかを判定し（Ｓ３３０）、次モジュールスタックに呼び出し元情報がある場合は（Ｓ３３０で「あり」）、次モジュールスタックから呼び出し元情報を取出して（Ｓ３３１）、ステップＳ３２１に処理を戻し、ステップＳ３３１で次モジュールスタックから取出した呼び出し元情報のメソッドの処理内容に次の処理が含まれているか否かを判定する。次の処理が含まれていると判定された場合（Ｓ３２１で「あり」）、次モジュールスタックから取出した呼び出し元情報の処理番号に１を加え、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報に設定する（Ｓ３２２）。そして、上記ステップＳ３０５，Ｓ３２０，Ｓ３２２で設定された呼び出し元情報、処理内容、および呼び出し先情報を、詳細設計処置手順情報の１行分として書出し（Ｓ３２３）、処理をステップＳ３０５に戻す。
【００６３】
上記具体例で図９に示される詳細設計処理手順情報（Ｉ４）の第５１２行が書出された後、上記ステップＳ３０５〜Ｓ３０７の処理が実行されると、図３，図４より、ステップＳ３０７で分離してメールアプリモジュールのメソッドkillApli()が得られる。図４より、メールアプリモジュール２２５のメソッドkillApli()の処理内容「終了通知を返す」にはメソッド名が含まれていないため（Ｓ３０８で「なし」）、処理手順抽出部１２は、上記ステップＳ３２０で、メールアプリモジュール２２５のメソッドkillApli()の処理内容「終了通知を返す」を、今回の処理で作成する詳細設計処理手順情報の処理内容に設定する。また、上記ステップＳ３２１でメールアプリモジュール２２５のメソッド「killApli()」に次の処理（処理番号２）が含まれているか否かを判定する。図４より、メールアプリモジュール２２５のメソッドkillApli()には次の処理（処理番号２）が含まれていないため、処理手順抽出部１２は、上記ステップＳ３３０で、次モジュールスタックに呼び出し元情報が含まれているか否かを判定する。図８より、次モジュールスタック４０３には上記ステップＳ３１３で追加された呼び出し元情報が含まれているため、処理手順抽出部１２は、上記ステップＳ３３１で、次モジュールスタック４０３から呼び出し元情報「アプリ管理:addTelEvent():1」を取出し、上記ステップＳ３２１で、アプリ管理モジュールのメソッドaddTelEvent()に次の処理（処理番号２）が含まれているか否かを判定する。図４より、アプリ管理モジュール２２１のメソッドaddTelEvent()には処理番号２の処理が含まれるため、処理手順抽出部１２は、上記ステップＳ３２１で、メソッドaddTelEvent()の処理に次の処理（処理番号２）が含まれていると判定し、ステップＳ３２２で、処理番号に１を加えた処理番号２を、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報「アプリ管理:addTelEvent():2」として設定する。そして、ステップＳ３２３で、呼び出し元情報「メールアプリ:killApli():1」、処理内容「終了通知を返す」、呼び出し先情報「アプリ管理:addTelEvent():2」を、詳細設計処置手順情報の１行分として書出す。図９に示される詳細設計処理手順情報（Ｉ４）の第５１３行は、上記具体例によって次に書出された詳細設計処理手順情報を表わしている。
【００６４】
同様に、上記処理が繰返されることで、図９に示される詳細設計処理手順情報（Ｉ４）の第５１４行〜第５１５行が書出される。図８の次モジュールスタック４０４は詳細設計処理手順情報（Ｉ４）が第５１５行まで書出されたときの状態を示している。
【００６５】
ステップＳ３０６で読込んだ処理内容に次の処理が含まれておらず（Ｓ３２１で「なし」）、さらに次モジュールスタックに呼び出し元情報がなくなった場合（Ｓ３３０で「なし」、処理手順抽出部１２は、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報に「−」を設定し（Ｓ３３２）、上記ステップＳ３０５，Ｓ３２０，Ｓ３３２で設定された呼び出し元情報、処理内容、および呼び出し先情報を、詳細設計処置手順情報の１行分として書出す（Ｓ３３３）。
【００６６】
上記具体例で図９に示される詳細設計処理手順情報（Ｉ４）の第５１５行が書出された後、さらに、上記ステップＳ３０５〜Ｓ３０８の処理が実行され、ステップＳ３０７で分離して表示管理モジュールのメソッドsetDisplay()の処理内容「表示装置に表示する」が得られると、図４より、表示管理モジュール２２１のメソッドsetDisplay()の処理内容にはメソッド名が含まれないため、処理がステップＳ３２０へ進む。さらに、処理内容に次処理が含まれていないため、ステップＳ３３１で、次モジュールスタック４０４から呼び出し元情報「電話アプリ:addTelEvent():1」が取出される。ステップＳ３２１では、図４より、この電話アプリ２２４のメソッドaddTelEvent()に次の処理（処理番号２）が含まれていないことが判定されるため、次モジュールスタック４０４から呼び出し元情報「アプリ管理:addTelEvent():2」，「通信管理:−:1」も取出されるが、図４より、これらの呼び出し元情報についても同様に、ステップＳ３２１で次の処理が含まれていないことが判定される。図８の次モジュールスタック４０１は、このときの状態を示している。
【００６７】
この場合、ステップＳ３３２で処理手順抽出部１２は、今回の処理で作成する詳細設計処理手順情報の呼び出し先情報に「−」を設定し、詳細設計処置手順情報の１行分として書出す。図９に示される詳細設計処理手順情報（Ｉ４）の第５１６行は、上記具体例によって次に書出された詳細設計処理手順情報を表わしている。
【００６８】
上記ステップＳ３０２〜Ｓ３３４の処理は、開始処理抽出部１１から入力された開始処理情報のすべての情報について処理が終了するまで繰返され、すべての情報について処理が終了すると、本処理が終了する。上記具体例の場合、上記処理が繰返されることで、図９に示される詳細設計処理手順情報（Ｉ４）の第５２５行までが書出される。
【００６９】
上記ステップＳ４で、手順情報検証部２０は、概略処理手順情報（Ｉ１）と、上記処理で作成された詳細設計処理手順情報（Ｉ４）とを比較し、不整合情報（Ｉ５）を作成して出力する。図１０および図１１は、上記ステップＳ４での手順情報検証部２０における処理を示すフローチャートである。
【００７０】
図１０を参照して、始めに、手順情報検証部２０は、概略処理手順情報（Ｉ１）のうちの検証の対象とする行、および上記ステップＳ３で作成された詳細設計処理手順情報（Ｉ４）のうちの検証の対象とする行を、各々の先頭行に設定する（Ｓ６０１）。処理対象の概略処理手順情報（Ｉ１）が図３に示された情報であり、詳細設計処理手順情報（Ｉ４）が図９に示された情報である場合、ステップＳ６０１では、概略処理手順情報（Ｉ１）の第１１０行、および詳細設計処理手順情報（Ｉ４）の第５１０行が各々検証対象行に設定される。
【００７１】
次に、手順情報検証部２０は、概略処理手順情報から検証対象行の情報を１行分取出し（Ｓ６０２）、詳細設計処理手順情報から検証対象行の情報を１行分取出し（Ｓ６０３）、含まれる情報をそれぞれ比較し、すべての情報が一致しているかどうかを判定する（Ｓ６０４）。上記具体例の場合、ステップＳ６０４では、概略処理手順情報の実行中モジュール名１０６と詳細設計処理手順情報の呼び出し元情報５０１の呼び出し元モジュール名とを、概略処理手順情報の処理内容１０７と詳細設計処理手順情報の処理内容５０２とを、概略処理手順情報の次実行モジュール名１０８と詳細設計処理手順情報の呼び出し先情報５０３の呼び出し先／次に実行するモジュール名とを、それぞれ比較する。
【００７２】
上記具体例では、より具体的に、手順情報検証部２０は、上記ステップＳ６０２で図３の概略処理手順情報の検証対象行である第１１０行から、実行中モジュール名「−」、処理内容「着信信号を受信する」、および次実行モジュール「通信管理」を取出し、上記ステップＳ６０３で、図９の詳細設計処理手順情報の検証対象行である第５１０行から、呼び出し元情報「−」、処理内容「着信信号を受信する」、および呼び出し先情報「通信管理:−:1」を取出す。そして、ステップＳ６０４で、概略処理手順情報の実行中モジュール名「−」と詳細設計処理手順情報の呼び出し元情報のモジュール名「−」とを比較し、概略処理手順情報の処理内容「着信信号を受信する」と詳細設計処理手順情報の処理内容「着信信号を受信する」とを比較し、概略処理手順情報の次実行モジュール「通信管理」と詳細設計処理手順情報の呼び出し先情報のモジュール名「通信管理」とを比較する。
【００７３】
ステップＳ６０４での比較の結果すべての情報が一致した場合には（Ｓ６０４で「一致」）、図１１を参照して、手順情報検証部２０は、概略処理手順情報および詳細設計処理手順情報の検証対象行を、各々、次の行とする（Ｓ６１３，Ｓ６１４）。上記具体例の場合、図３の概略処理手順情報の検証対象行は第１１０行から第１１１行となり、図９の詳細設計処理手順情報の検証対象行は第５１０行から第５１１行となる。
【００７４】
ステップＳ６０４での比較の結果含まれる情報のいずれかが一致していないと判定した場合（Ｓ６０４で「不一致」）、手順情報検証部２０は、概略処理手順情報および詳細設計処理手順情報の検証対象行を、各々、不一致行として記憶する（Ｓ６０５，６０６）。
【００７５】
上記具体例で、検証対象行が図３の概略処理手順情報の第１２４行および図９の詳細設計処理手順情報の第５２４行である場合、上記ステップＳ６０４で、図３の概略処理手順情報の第１２４行の実行中モジュール名「通信管理」、処理内容「通信結果を返す」、および次実行モジュール名「電話アプリ」と、図９の詳細設計処理手順情報の第５２４行の、呼び出し元情報のモジュール名“通信管理”、処理内容「回線を接続する」、および呼び出し先情報のモジュール名「通信管理」とは、含まれる情報のすべてが一致していないと判定され、上記ステップＳ６０５で概略処理手順情報の不一致行として第１２４行が記憶され、上記ステップＳ６０６で詳細設計処理手順情報の不一致行として第５２４行が記憶される。
【００７６】
次に、詳細設計処理情報の検証対象行を次の行とし（Ｓ６０７）、図１１を参照して、詳細設計処理手順情報の検証対象行に情報が含まれている場合（Ｓ６０８で「あり」）、手順情報検証部２０は詳細設計処理手順情報から検証対象行の情報を１行分取出し（Ｓ６１０）、上記ステップＳ６０４と同様に、先に設定された概略処理手順情報の検証対象行と含まれる情報をそれぞれ比較し、すべての情報が一致しているかどうかを判定する（Ｓ６１１）。
【００７７】
上記具体例の場合、上記ステップＳ６０６で詳細設計処理手順情報の不一致行として第５２４行が記憶された後、上記テップＳ６０７で検証対象行が第５２５行となる。上記ステップＳ６０８では、図９より、第５２５行には情報が含まれると判定され、上記ステップＳ６１０で、第５２５行より、新たに呼び出し元情報「通信管理:conncetPhone():2」、処理内容「通信結果を返す」、および呼び出し先情報「−」が取出される。上記ステップＳ６１１で、手順情報検証部２０は、上記ステップＳ６１１で不一致行とされた概略処理手順情報の実行中モジュール名「通信管理」、処理内容「通信結果を返す」、および次実行モジュール「電話アプリ」と、上記ステップＳ６１０で新たに取り出した、呼び出し元情報のモジュール名「通信管理」、処理内容「通信結果を返す」、および呼び出し先情報のモジュール名「−」とを比較する。
【００７８】
ステップＳ６１１での比較の結果すべての情報が一致した場合には（Ｓ６１１で「一致」）、上記ステップＳ６０６で記憶された詳細設計処理手順の不一致行は詳細設計時に追加された処理手順と判定できるため、上記ステップＳ６０５で記憶した概略処理手順情報の不一致行と、上記ステップＳ６０６で記憶した詳細設計情報の不一致行とを破棄する（Ｓ６１２）。
【００７９】
ステップＳ６１１での比較の結果含まれる情報のいずれかが一致していないと判定した場合（Ｓ６１１で「不一致」）、処理はステップＳ６０７に戻り、手順情報検証部２０は、詳細設計処理手順情報をさらに検証対象として次の行を検証する。
【００８０】
詳細設計処理手順情報の検証対象行に情報が含まれていない場合（Ｓ６０８で「なし」）すべての詳細設計情報を検証したこととなるため、概略処理手順情報の不一致行は詳細設計時に設計されたものではないと判定できる。そこで、手順情報検証部２０は、ステップＳ６０５，Ｓ６０６で記憶した不一致行に関する情報を不整合情報として出力する（Ｓ６２０）。
【００８１】
上記具体例で、詳細設計処理手順情報の第５２５行の情報と概略処理手順情報の第１２４行の情報とが比較されると、ステップＳ６１１で不一致と判定されてステップＳ６０６にて詳細設計処理手順情報の不一致行が更新され、ステップＳ６０７で詳細設計処理手順情報の次の行が検証対象行となる。しかし、図９より、ステップＳ６０８で詳細設計処理手順情報の検証対象行とする第５２５行の次の行には情報がないことが判定されるため、概略処理手順情報の不一致行と判定された第１２４行の情報が不整合情報として出力される。
【００８２】
次に、手順情報検証部２０は、概略処理手順情報の検証対象行を次の行とする（Ｓ６２１）。
【００８３】
上記ステップＳ６０７で設定されてステップＳ６１１で概略処理手順情報の検証対象行と不一致とされた詳細設計処理手順情報の検証対象行にも、ステップＳ６２１で設定された概略処理手順情報の検証対象行にも情報がある場合には（Ｓ６１５で「あり」、かつＳ６１６で「あり」）、処理をステップＳ６０２へ戻して、上記処理を繰返す。また、ステップＳ６２１で概略処理手順情報の検証対象行に情報がない場合には（Ｓ６１５で「なし」）、処理を終了する。また、ステップＳ６２１で概略処理手順情報の検証対象行に情報がある場合であっても、ステップＳ６０７で設定された詳細設計処理手順情報の検証対象行に情報がない場合には（Ｓ６１５で「あり」、かつＳ６１６で「なし」）、概略処理手順情報の検証対象行以降のすべての行を不整合情報として出力する（Ｓ６３０）。
【００８４】
上記具体例の場合、ステップＳ６２０で概略処理手順情報の不一致行である第１２４行を不整合情報として出力した後、手順情報検証部２０は、ステップＳ６２１で概略処理手順情報の検証対象行を第１２５行にし、概略処理手順情報の検証対象行を第１２５行と、ステップＳ６０７で設定された詳細設計処理手順情報の検証対象行である第５２５行とに対してステップＳ６１５以降の処理を行なう。そして、ステップＳ６０２以降の処理が繰返されることで、図３の概略処理手順情報の第１２５行、および第１２６行が不一致情報として出力される。
【００８５】
図１２は、上記処理によって作成される不整合情報（Ｉ５）の具体例を示す図である。上記具体例の場合、上記ステップＳ６２０，Ｓ６３０で図３の概略処理手順情報の第１２４行、第１２５行、および第１２６行が出力され、図１２の不整合情報（Ｉ５）の第１行〜第３行にその旨が示されている。
【００８６】
以上のように、本実施の形態にかかる設計検証装置１では、基本設計者によって作成された概略処理手順情報（Ｉ１）と、詳細設計者によって作成された詳細設計情報（Ｉ２）と、検証者によって作成された概略処理手順ＩＤ（Ｉ３）とからメソッドが実行される順に各メソッドの処理を列挙した詳細設計処理手順情報（Ｉ４）を作成し、概略処理手順情報（Ｉ１）と詳細設計処理手順情報（Ｉ４）とを比較する。したがって、ソフトウェア構成に関わらずメソッド単位で比較することができるため、適用できるソフトウェア構成に関わらず、モジュール間の処理手順とメソッドの仕様との不整合を検出することができ、設計の不備を早期に改善できる。そのため、設計検証装置１を用いて効率的なソフトウェア開発を行なうことができる。
【００８７】
さらに、設計検証装置１での設計検証処理をコンピュータに実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００８８】
なお、本発明にかかるプログラムは、コンピュータのオペレーションシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【００８９】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【００９０】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【００９１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９２】
【図１】本実施の形態にかかる設計検証装置１の機能構成の具体例を示すブロック図である。
【図２】概略処理手順情報（Ｉ１）の第１の具体例を示す図である。
【図３】概略処理手順情報（Ｉ１）の第２の具体例を示す図である。
【図４】詳細設計情報（Ｉ２）の具体例を示す図である。
【図５】設計検証装置１での設計検証処理を示すフローチャートである。
【図６】ステップＳ３での処理手順抽出部１２における処理を示すフローチャートである。
【図７】ステップＳ３での処理手順抽出部１２における処理を示すフローチャートである。
【図８】処理手順抽出部１２でステップＳ３の処理を行なう際に用いられる、次モジュールスタックの動作を説明する図である。
【図９】詳細設計処理手順情報（Ｉ４）の具体例を示す図である。
【図１０】ステップＳ４での手順情報検証部２０における処理を示すフローチャートである。
【図１１】ステップＳ４での手順情報検証部２０における処理を示すフローチャートである。
【図１２】不整合情報（Ｉ５）の具体例を示す図である。
【符号の説明】
【００９３】
１  設計検証装置、１０  詳細設計処理手順情報作成部、２０  手順情報検証部、１１  開始処理抽出部、１２  処理手順抽出部、１０１，１０６，１０８，２０１  モジュール名、１０２，１０４，１０５  矢印、１０３，１０７，２０４，５０２  処理内容、２０２  メソッド名、２２０  キー入力管理モジュール、２２１  アプリ管理モジュール、２２２  表示管理モジュール、２２３  通信管理モジュール、２２４  電話アプリモジュール、２２５  メールアプリモジュール、４０１，４０２，４０３，４０４  次モジュールスタック、５０１  呼び出し元情報、５０３  呼び出し先情報。
【図１】
0004781163.tif 000002
【図２】
0004781163.tif 000003
【図３】
0004781163.tif 000004
【図４】
0004781163.tif 000005
【図５】
0004781163.tif 000006
【図６】
0004781163.tif 000007
【図７】
0004781163.tif 000008
【図８】
0004781163.tif 000009
【図９】
0004781163.tif 000010
【図１０】
0004781163.tif 000011
【図１１】
0004781163.tif 000012
【図１２】
0004781163.tif 000013