(57)【要約】【課題】設計段階においてデータベースのデッドロックを検証する。【解決手段】本発明の一態様は、経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する経路抽出ステップと、検証部が、経路抽出ステップによって抽出された経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した基準アクセス順序情報とが整合するか否かを検証する検証ステップとを含むことを特徴とするデータベースアクセス検証方法である。【選択図】図１
2014167674.tif 000002
【特許請求の範囲】
【請求項１】
経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、前記情報処理の経路を抽出する経路抽出ステップと、
検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップと
を含むことを特徴とするデータベースアクセス検証方法。
【請求項２】
前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、
前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、
前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出する
ことを特徴とする請求項１に記載のデータベースアクセス検証方法。
【請求項３】
前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図に含まれる分岐処理に応じて複数の前記経路を抽出し、
前記検証ステップにおいて、前記検証部は、前記複数の経路それぞれに対して、各経路における前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合するか否かを検証する
ことを特徴とする請求項２に記載のデータベースアクセス検証方法。
【請求項４】
前記基準アクセス順序情報は、データベースのテーブル名と前記テーブル名に対応するアクセス順序を示す順序番号とを含み、
前記検証ステップにおいて、前記検証部は、前記経路においてアクセスするデータベースのテーブル名と、前記基準アクセス順序情報において当該テーブル名に対応する前記順序番号とを関連付けたアクセス情報を、前記抽出アクセス順序情報として前記経路の順番に検証記憶部に記憶させ、前記検証記憶部における前記アクセス情報の前記順序番号が昇番順に記憶されている場合に、前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合していると判定する
ことを特徴とする請求項１から請求項３のいずれか一項に記載のデータベースアクセス検証方法。
【請求項５】
ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出部と、
前記経路抽出部によって抽出された前記情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証部と
を備えることを特徴とするデータベースアクセス検証装置。
【請求項６】
コンピュータに、
経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出ステップと、
検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースアクセス検証方法、データベースアクセス検証装置、及びプログラムに関する。
【背景技術】
【０００２】
近年、手作業及び目視によって行っていたソフトウェアの検証を支援する技術が知られている。例えば、特許文献１及び特許文献２には、従来は手作業及び目視によって行っていたシーケンス図の検証を、シーケンス図を解析することにより支援する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−９０８５７号公報
【特許文献２】特開２００８−１９７９７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、データベースを利用したソフトウェアにおいて、データベースのデッドロックを予防することが重要であり、その検証は、プログラムの実装段階やテスト段階において実装したプログラムを動作させることにより行われることが一般的である。
しかしながら、実装段階やテスト段階における検証では、例えば、データベースのデッドロックが発生することが判明した場合の手戻り工数が大きくなるため、設計段階などの早い時期に検証することが望ましい。ただし、ソフトウェアの設計段階において検証を行う場合には、例えば、手作業及び目視によりデータベースのアクセス順序の確認を行う必要があるため、抜け漏れなく検証することが困難である。また、シーケンス図の検証を支援するための上記の特許文献１及び特許文献２に記載の技術では、データベースのデッドロックを設計段階で検証することはできなかった。
【０００５】
本発明は、上記問題を解決すべくなされたもので、その目的は、設計段階においてデータベースのデッドロックを検証することができるデータベースアクセス検証方法、データベースアクセス検証装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様は、経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、前記情報処理の経路を抽出する経路抽出ステップと、検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップとを含むことを特徴とするデータベースアクセス検証方法である。
【０００７】
また、本発明の一態様は、上記のデータベースアクセス検証方法において、前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出することを特徴とする。
【０００８】
また、本発明の一態様は、上記のデータベースアクセス検証方法において、前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図に含まれる分岐処理に応じて複数の前記経路を抽出し、前記検証ステップにおいて、前記検証部は、前記複数の経路それぞれに対して、各経路における前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合するか否かを検証することを特徴とする。
【０００９】
また、本発明の一態様は、上記のデータベースアクセス検証方法において、前記基準アクセス順序情報は、データベースのテーブル名と前記テーブル名に対応するアクセス順序を示す順序番号とを含み、前記検証ステップにおいて、前記検証部は、前記経路においてアクセスするデータベースのテーブル名と、前記基準アクセス順序情報において当該テーブル名に対応する前記順序番号とを関連付けたアクセス情報を、前記抽出アクセス順序情報として前記経路の順番に検証記憶部に記憶させ、前記検証記憶部における前記アクセス情報の前記順序番号が昇番順に記憶されている場合に、前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合していると判定することを特徴とする。
【００１０】
また、本発明の一態様は、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出部と、前記経路抽出部によって抽出された前記情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証部とを備えることを特徴とするデータベースアクセス検証装置である。
【００１１】
また、本発明の一態様は、コンピュータに、経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出ステップと、検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップとを実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、設計段階においてデータベースのデッドロックを検証することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態によるデータベースアクセス検証装置の一例を示すブロック図である。
【図２】本実施形態における設計書記憶部の構成例を示す模式図である。
【図３】本実施形態におけるオンライン処理設計書情報のフロー情報シートの一例を示す図である。
【図４】本実施形態における解析可能なフローチャート図の種類の一例を示す図である。
【図５】本実施形態におけるオンライン処理設計書情報の基本情報シートの一例を示す図である。
【図６】本実施形態におけるサービス系設計書情報のフロー情報シートの一例を示す図である。
【図７】本実施形態におけるサービス系設計書情報の基本情報シートの一例を示す図である。
【図８】本実施形態における取得情報シートの一例を示す図である。
【図９】本実施形態における出力情報シートの一例を示す図である。
【図１０】本実施形態におけるパラメタライズドロジック情報シートの一例を示す図である。
【図１１】本実施形態における基準アクセス順序情報の一例を示す図である。
【図１２】本実施形態における検証結果の一例を示す図である。
【図１３】本実施形態におけるデータベースアクセス検証の手順の一例を示すフローチャートである。
【図１４】本実施形態における入力情報の事前チェック処理の一例を示すフローチャートである。
【図１５】本実施形態における経路抽出処理の一例を示すフローチャートである。
【図１６】本実施形態における分岐パターンの抽出処理の一例を示すフローチャートである。
【図１７】本実施形態における経路生成処理の一例を示すフローチャートである。
【図１８】本実施形態における経路抽出の一例を示す模式図である。
【図１９】本実施形態における経路抽出の別の一例を示す模式図である。
【図２０】本実施形態におけるアクセス順序の検証処理の一例を示すフローチャートである。
【図２１】本実施形態におけるアクセス順序の検証処理の一例を示すイメージ図である。
【図２２】第２の実施形態によるデータベースアクセス検証装置の一例を示すブロック図である。
【図２３】本実施形態における一括検証結果の一例を示す図である。
【図２４】本実施形態における一括検証処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態によるデータベースアクセス検証装置、及びデータベースアクセス検証方法について、図面を参照して説明する。
［第１の実施形態］
図１は、本実施形態によるデータベースアクセス検証装置（ＤＢアクセス検証装置１）の一例を示すブロック図である。なお、以下の説明において、「データベース」を省略して「ＤＢ」と表記することがある。
【００１５】
本実施形態におけるＤＢアクセス検証装置１は、複数の設計書（設計書情報）によって規定されたソフトウェア（システム）において、データベースの手順を検証することにより、ソフトウェアの設計段階でデータベースのデッドロックが発生するか否かを判定することができるソフトウェアの設計支援ツールである。なお、「データベースのデッドロック」とは、複数の処理において、同一のデータベースにアクセスした場合に、互いの処理終了を待ち、結果としてどの処理も先に進めなくなってしまう状態のことである。
なお、本実施形態において、設計対象のソフトウェアは、データベースへのアクセスをデータベース言語（例えば、ＳＱＬ（エスキューエル））によって実現される。
【００１６】
まず、ここでは、ＤＢアクセス検証装置１が備える各構成の概要について説明する。
図１において、ＤＢアクセス検証装置１は、設計書記憶部１０、アクセス順序記憶部２０、制御部３０、及び検証記憶部４０を備えている。
【００１７】
設計書記憶部１０は、入力情報となる設計書情報を記憶する。ここで設計書情報とは、設計対象となるソフトウェアにおける情報処理の手順を規定する情報であり、設計者がソフトウェアを設計する際に用いられる設計書としても使用される。設計書記憶部１０は、設計対象となるソフトウェアを設計するための複数の設計書情報を記憶している。なお、設計書情報の詳細については、後述する。
【００１８】
アクセス順序記憶部２０（順序記憶部）は、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する。ここで、基準アクセス順序情報は、設計対象となるソフトウェアにおいてアクセスするデータベースに対して正しいアクセス順序を示しており、データベースの仕様に応じて、データベースにデッドロックが発生しないアクセス順序を予め定めている。アクセス順序記憶部２０は、例えば、データベース名とアクセス順序番号とを関連付けた一覧を基準アクセス順序情報として記憶している。なお、基準アクセス順序情報の詳細については、後述する。
【００１９】
制御部３０は、例えば、ＣＰＵ（Central Processing Unit）などを含むプロセッサであり、ＤＢアクセス検証装置１を統括的に制御する。制御部３０は、入力情報として設計書記憶部１０が記憶する設計書情報と、アクセス順序記憶部２０が記憶する基準アクセス順序情報とに基づいて、設計対象のソフトウェアにおけるデータベースへのアクセス順序を検証し、検証結果を出力する。制御部３０は、検証結果を出力情報として、検証記憶部４０に記憶させる。
また、制御部３０は、事前チェック部３１、経路抽出部３２、ＤＢアクセス検証部３３、及び検証結果出力部３４を備えている。
【００２０】
事前チェック部３１は、データベースのアクセス順序の検証処理を実行するにあたり、設計書記憶部１０が記憶する設計書情報である入力情報が、この検証処理を正しく実行できるか否かを判定（チェック）する処理（事前チェック処理）を実行する。
【００２１】
経路抽出部３２は、設計書記憶部１０から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。経路抽出部３２は、設計書情報における処理の分岐や設計書情報から他の設計書情報の参照先などを解析し、情報処理の経路を抽出する。例えば、設計書情報に分岐処理が含まれる場合には、経路抽出部３２は、分岐処理に応じて複数の経路を抽出する。
【００２２】
ＤＢアクセス検証部３３（検証部）は、経路抽出部３２によって抽出された経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部２０から取得した基準アクセス順序情報とが整合するか否かを検証する。すなわち、ＤＢアクセス検証部３３は、経路抽出部３２によって抽出された複数の経路それぞれに対して、データベースのアクセス順序を抽出し、抽出した各経路における抽出アクセス順序情報と、アクセス順序記憶部２０から取得した基準アクセス順序情報とが整合するか否かを検証する。
【００２３】
具体的に、ＤＢアクセス検証部３３は、例えば、経路抽出部３２によって抽出された経路においてアクセスするデータベースのテーブル名を抽出する。また、ＤＢアクセス検証部３３は、抽出した当該テーブル名と、アクセス順序記憶部２０が記憶する基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、抽出アクセス順序情報として経路の順番に検証記憶部４０に記憶させる。そして、ＤＢアクセス検証部３３は、経路においてデータベースにアクセスする全てのテーブル名についてのアクセス情報を検証記憶部４０に記憶させる。ＤＢアクセス検証部３３は、例えば、検証記憶部４０におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。また、ＤＢアクセス検証部３３は、例えば、検証記憶部４０におけるアクセス情報の順序番号が昇番順に記憶されていない場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とにおいて不整合が生していると判定する。
【００２４】
なお、このように不整合が生している場合、設計書情報で規定している手順が正しくないため、データベースにデッドロックが発生する可能性がある。そのため、設計者は、設計対象のソフトウェアにおけるデータベースにデッドロックが発生する可能性を、設計書情報の段階（設計書の段階）、すなわち設計段階で知ることができる。
【００２５】
検証結果出力部３４は、ＤＢアクセス検証部３３が検証した検証結果を検証記憶部４０に記憶させることにより出力する。具体的に、検証結果出力部３４は、各経路における抽出アクセス順序情報と、アクセス順序記憶部２０から取得した基準アクセス順序情報とが整合するか否かを示す検証結果を検証記憶部４０に記憶させる。
【００２６】
検証記憶部４０は、データベースのアクセス検証に関する情報を記憶する。検証記憶部４０は、例えば、制御部３０によって検証された抽出アクセス順序情報を記憶するとともに、その検証結果を記憶する。また、検証記憶部４０は、経路抽出部３２が抽出した経路を示す経路情報を記憶してもよい。検証記憶部４０が記憶する情報の詳細については、後述する。
【００２７】
＜設計書情報の構成＞
次に、設計書記憶部１０が記憶する設計書情報の構成について説明する。
図２は、本実施形態における設計書記憶部１０の構成例を示す模式図である。
この図において、設計書記憶部１０は、オンライン処理設計書情報１１、サービス系設計書情報１２、及びパラメタライズドロジック設計書情報１３を記憶している。すなわち、設計書情報には、例えば、オンライン処理設計書情報１１、サービス系設計書情報１２、及びパラメタライズドロジック設計書情報１３が含まれる。なお、図２に示す一例では、設計書記憶部１０は、オンライン処理設計書情報１１、サービス系設計書情報１２、及びパラメタライズドロジック設計書情報１３のそれぞれを複数記憶する。
【００２８】
オンライン処理設計書情報１１は、メッセージの入出力に関連する処理であり、メッセージから処理が開始される情報処理の手順を示す設計書情報である。オンライン処理設計書情報１１は、主に起点となる処理を規定する設計書情報であり、オンライン処理設計書情報１１から後述するサービス系設計書情報１２の処理、又はパラメタライズドロジック設計書情報１３の処理に遷移する。例えば、１つのオンライン処理が、１つのトランザクション処理に対応する。オンライン処理設計書情報１１は、フロー情報シートＳＴ１１（フロー情報）と基本情報シートＳＴ２１（基本情報）とを含み、フロー情報シートＳＴ１１と基本情報シートＳＴ２１とが対応付けられている。ここで、「シート」とは、表計算ソフトで用いられる、行と列で構成される表を示すワークシートのことであり、本実施形態において設計書情報は、ワークシートを用いたファイルとして、設計書記憶部１０に記憶されている。
【００２９】
また、サービス系設計書情報１２は、例えば、各種のサービスの処理を規定する仕様書情報や、所定の処理を行う各種共通部品を規定する共通部品設計書情報などであり、後述する開始端子から処理が開始される情報処理の手順を示す設計書情報である。サービス系設計書情報１２は、フロー情報シートＳＴ１２（フロー情報）と基本情報シートＳＴ２２（基本情報）とを含んでいる。また、データベースにアクセスする場合には、サービス系設計書情報１２は、さらに、取得情報シートＳＴ３又は出力情報シートＳＴ４を含んでいる。
なお、オンライン処理設計書情報１１のフロー情報シートＳＴ１１と、サービス系設計書情報１２のフロー情報シートＳＴ１２とは、特に区別しない場合、又は、単にフロー情報シートを示す場合には、フロー情報シートＳＴ１として説明する。また、オンライン処理設計書情報１１の基本情報シートＳＴ２１と、サービス系設計書情報１２の基本情報シートＳＴ２２とは、特に区別しない場合、又は、単に基本情報シートを示す場合には、基本情報シートＳＴ２として説明する。
【００３０】
また、パラメタライズドロジック設計書情報１３は、例えば、所定のパラメータに基づいて分岐する処理を規定する仕様書情報であり、パラメタライズドロジック情報シートＳＴ５（パラメタライズドロジック情報）を含んでいる。パラメタライズドロジック設計書情報１３は、サービス系設計書情報１２から参照される設計書情報である。
【００３１】
このように、設計書情報は、複数の設計書情報（オンライン処理設計書情報１１、サービス系設計書情報１２、及びパラメタライズドロジック設計書情報１３）を含んでおり、設計書情報から他の設計書情報を参照することにより、複数の設計書情報により、開発対象のソフトウェア（システム）の処理手順を規定している。
【００３２】
＜オンライン処理設計書情報１１の構成＞
次に、オンライン処理設計書情報１１におけるフロー情報シートＳＴ１１、及び基本情報シートＳＴ２１の構成について説明する。なお、図３及び図４に示す一例は、「オンライン処理名」が“４＿０２＿オンライン処理”である場合のオンライン処理設計書情報１１におけるフロー情報シートＳＴ１１、及び基本情報シートＳＴ２１を示している。
【００３３】
図３は、オンライン処理設計書情報１１におけるフロー情報シートＳＴ１１の一例を示す図である。
この図に示すように、フロー情報シートＳＴ１１は、「章・節・項」と、「オンライン処理名」と、「処理フロー」とを有している。「章・節・項」は、設計書情報の階層構造を示しており、「オンライン処理名」は、この設計書で規定するオンライン処理の処理名を示している。また、「処理フロー」は、情報処理の手順を視覚化したフロー図を含んでいる。図３に示す例では、フロー図として、「１．処理Ａ」を実行するフローチャートＦ１が書かれて（描画されて）いる。
【００３４】
なお、本実施形態におけるＤＢアクセス検証装置１により、フロー図をフロー情報として読み込むためには、図４に示すように、予め定められた所定のルールによりフロー図が書かれている必要がある。ここで、本実施形態におけるフロー図の作成ルールについて説明する。
【００３５】
図４は、本実施形態における解析可能なフローチャート図の種類の一例を示す図である。図４（ａ）における基本図形が「テキストボックス」であり、且つ、「正方形／長方形」の四角形の図形は、「処理」を示し、フローチャートにおいて「処理」を記述する際に使用される。なお、フロー図において、枠線なしのテキストボックスは無視される。
また、図４（ｂ）における「角丸四角形」の四角形の図形は、「代替処理」示し、フローチャートにおいてサービスを呼ぶ際に使用される。
また、図４（ｃ）における基本図形が「ひし形」の図形は、「判断」示し、フローチャートにおいて処理の分岐の際に使用される。
【００３６】
また、図４（ｄ）における基本図形が「台形」の図形は、フローチャートにおいてループの開始点として使用される。
また、図４（ｅ）における「手作業」（逆台形）の図形は、フローチャートにおいてループの終了点として使用される。
また、図４（ｆ）における線「矢印」又は「カギ線矢印コネクター」の図形は、フローチャートにおいて処理を繋ぐコネクターとして使用される。
また、図４（ｇ）における「端子」の図形は、サービス系の設計書情報のフローチャートにおいて開始又は終了に使用される。
また、図４（ｈ）における「結合子」の図形は、他のページのフローチャートとの結合子として使用される。
なお、図４（ａ）〜（ｈ）以外の図形は、フロー図に書かれていた場合であっても、解析対象にはならずに無視される。
【００３７】
次に、図５を参照して、オンライン処理設計書情報１１における基本情報シートＳＴ２１の構成について説明する。
図５は、オンライン処理設計書情報１１における基本情報シートＳＴ２１の一例を示す図である。
【００３８】
この図に示すように、基本情報シートＳＴ２１は、情報処理の手順を規定する設計書情報であり、「章・節・項」、「オンライン処理名」、「メッセージ」テーブル、「サービス／部品」テーブル、及び「内容」テーブルを有している。「メッセージ」テーブルは、入力メッセージ又は出力メッセージを規定するテーブルであり、「項番」、「メッセージ名」、「出力条件」、「出力先」、「種別」、「出力単位」、及び「備考」が対応付けられている。
なお、図５に示す一例では、「メッセージ」テーブルにおいて、「項番」の“１”に対応する「メッセージ名」が“入力メッセージ”であり、「項番」の“２”に対応する「メッセージ名」が“出力メッセージ”であることを示している。
【００３９】
また、「サービス／部品」テーブルは、この設計書情報で参照する（呼出す）サービス又は共通部品を規定するテーブルであり、「項番」、「サービス名／部品名」、「種別」、及び「備考」が対応付けられている。
なお、図５に示す一例では、「サービス／部品」テーブルにおいて、「項番」の“１”に対応する「サービス名／部品名」が“４＿０２＿共通サービス”であり、「種別」が“共通サービス”であることを示している。
【００４０】
また、「内容」テーブルは、フロー情報シートＳＴ１１のフロー図に対応する処理手順を規定するテーブルであり、「項番」、「処理手順」、「詳細」、及び「備考」が対応付けられている。ここで、「項番」及び「処理手順」は、フロー情報シートＳＴ１１のフロー図の各処理に対応した処理を示し、「詳細」は、当該処理を規定する参照先の仕様書情報を示している。
なお、図５に示す一例では、「内容」テーブルにおいて、「項番」の“１”に対応する「処理手順」が“処理Ａ”であり、「備考」が“共通サービス設計書「４＿０２＿共通サービス」参照”であることを示している。ここで、「備考」の内容は、他のシート又は他の設計書情報への参照先を示している。また、「内容」テーブルにおける「項番」と「処理手順」とは、フロー情報シートＳＴ１１におけるフローチャートＦ１の処理手順と一致して作成されている。
このように、設計書記憶部１０は、オンライン処理設計書情報１１として、フロー情報シートＳＴ１１と基本情報シートＳＴ２１とを対応付けて記憶している。
【００４１】
＜サービス系設計書情報１２の構成＞
次に、サービス系設計書情報１２におけるフロー情報シートＳＴ１２、基本情報シートＳＴ２２、取得情報シートＳＴ３、及び出力情報シートＳＴ４の構成について説明する。なお、図６〜図９に示す一例は、「サービス名」が“４＿０２＿共通サービス”である場合のサービス系設計書情報１２におけるフロー情報シートＳＴ１２、及び基本情報シートＳＴ２２を示している。
【００４２】
図６は、サービス系設計書情報１２におけるフロー情報シートＳＴ１２の一例を示す図である。
この図に示すように、フロー情報シートＳＴ１２は、「章・節・項」と、「サービス名」と、「処理フロー」とを有している。このフロー情報シートＳＴ１２の構成は、オンライン処理設計書情報１１のフロー情報シートＳＴ１１と同様である。
図６に示す例では、フロー図として、「１．処理Ａ」から「５．処理Ｄ」を実行するフローチャートＦ２が書かれて（描画されて）いる。
なお、フロー情報シートＳＴ１２において、フロー図をフロー情報として読み込むための所定のルールは、オンライン処理設計書情報１１のフロー情報シートＳＴ１１と同様であり、図４に示すルールに従う必要がある。そのため、フロー情報シートＳＴ１２において、破線の矢印によって接続されている処理（例えば、「取得テーブル１」などは、ＤＢアクセス検証装置１においては無視され、設計書情報としては読み込まれない。この破線の矢印によって接続されている処理は、設計者が設計書情報を見た場合に、処理を理解し易いように描画されている。
【００４３】
図７は、サービス系設計書情報１２における基本情報シートＳＴ２２の一例を示す図である。
この図に示すように、基本情報シートＳＴ２２は、情報処理の手順を規定する設計書情報であり、「章・節・項」、「サービス名」、「ＤＢアクセス」テーブル、「部品」テーブル、及び「内容」テーブルを有している。
【００４４】
「ＤＢアクセス」テーブルは、データベースとしてアクセスする「テーブル名」に関する情報を規定するテーブルであり、「項番」、「テーブル名」、「Ｃ／Ｒ／Ｕ／Ｄ」、及び「備考」が対応付けられている。ここで、「Ｃ／Ｒ／Ｕ／Ｄ」は、アクセスの種別を示しており、「Ｃ」が「追加（作成）」、「Ｒ」が「参照」、「Ｕ」が「更新」、「Ｄ」が「削除」を示している。
なお、図７に示す一例では、「ＤＢアクセス」テーブルにおいて、「項番」の“１”に対応する「テーブル名」が“取得テーブル１”であり、「Ｃ／Ｒ／Ｕ／Ｄ」が“Ｒ”（参照）であることを示している。また、「項番」の“２”に対応する「テーブル名」が“取得テーブル２”であり、「Ｃ／Ｒ／Ｕ／Ｄ」が“Ｒ”（参照）であることを示している。また、「項番」の“３”に対応する「テーブル名」が“取得テーブル３”であり、「Ｃ／Ｒ／Ｕ／Ｄ」が“Ｒ”（参照）であることを示している。また、「項番」の“４”に対応する「テーブル名」が“出力テーブル”であり、「Ｃ／Ｒ／Ｕ／Ｄ」が“Ｃ”（追加）であることを示している。
【００４５】
また、「部品」テーブルは、“４＿０２＿共通サービス”において参照する「部品名」に関する情報を規定するテーブルであり、「項番」、「部品名」、及び「備考」が対応付けられている。
なお、図７に示す一例では、「部品」テーブルにおいて、「部品名」が“５＿０１＿共通部品”、“５＿０２＿共通部品”、“５＿０３＿共通部品”、“５＿０４＿共通部品”、及び“５＿０５＿共通部品”である５つの共通部品を参照する。
【００４６】
また、「内容」テーブルは、フロー情報シートＳＴ１２のフロー図に対応する処理手順を規定するテーブルであり、「項番」、「処理手順」、「詳細」、及び「備考」が対応付けられている。ここで、「項番」及び「処理手順」は、フロー情報シートＳＴ１２のフロー図の各処理に対応した処理を示し、「詳細」は、当該処理を規定する参照先の仕様書情報、及びデータベースの取得情報又は出力情報を示している。
なお、図７に示す一例では、「内容」テーブルにおいて、「項番」の“１”に対応する「処理手順」が“データ取得処理”であり、“取得テーブル１”〜“取得テーブル３”の取得情報シートＳＴ３を参照することを示している。また、「項番」の“４”に対応する「処理手順」が“処理Ｃ”であり、“出力テーブル”の出力情報シートＳＴ４を参照することを示している。
【００４７】
図８は、サービス系設計書情報１２における取得情報シートＳＴ３の一例を示す図である。
この図に示すように、取得情報シートＳＴ３は、データベースからの情報の取得に関して規定する設計書情報であり、「章・節・項」、「サービス名」、「取得情報」テーブル、及び「取得項目」テーブルを有している。
【００４８】
「取得情報」テーブルは、「対応処理手順」と、「取得元種別」と、「取得元」と、「アクセス種別」と、「取得件数」とが対応付けられている。ここで、「対応処理手順」は、対応する処理手順を示している。また、「取得元種別」は、取得元の種別を示しており、“ＤＢ”（データベース）又は“ファイル”を規定する。また、「取得元」は、情報を取得するテーブル名を示しており、「取得件数」は、情報を取得する件数を示している。また、「アクセス種別」は、情報の取得におけるアクセスの種類（データベースを操作する種類）を示しており、“参照”又は“更新を伴う参照”を規定する。
なお、図８に示す一例では、「取得情報」テーブルにおいて、「対応処理手順」が“取得処理”であり、「取得元種別」が“ＤＢ”であり、「取得元」が“取得テーブル１”であり、「アクセス種別」が“参照”であることを示している。
また、上述の「取得元」には、１つ又は複数のテーブル名を設定することが可能である。具体的に複数のテーブル名を設定する場合には、「，」（カンマ）により区切ることにより設定することが可能である。例えば、「取得元」として“取得テーブル１”と“取得テーブル２”の２つを記憶させる場合には、“取得テーブル１，取得テーブル２”とする。この場合、ＤＢアクセス検証部３３は、先頭に記載したテーブルから順番にアクセスするとしてアクセス検証を行う。
【００４９】
また、「取得項目」テーブルは、情報として取得する項目に関する情報を規定するテーブルであり、「項番」、「項目名」、「設定内容」、及び「備考」が対応付けられている。
なお、図８に示す一例では、「取得項目」テーブルにおいて、「項番」の“１”に対応する「項目名」が“○○データ”であり、「項番」の“２”に対応する「項目名」が“××データ”であることを示している。
【００５０】
図９は、サービス系設計書情報１２における出力情報シートＳＴ４の一例を示す図である。
この図に示すように、出力情報シートＳＴ４は、データベースへの情報の出力に関して規定する設計書情報であり、「章・節・項」、「サービス名」、「出力情報」テーブル、及び「出力項目」テーブルを有している。
【００５１】
「出力情報」テーブルは、「対応処理手順」と、「出力先種別」と、「出力先」と、「アクセス種別」とが対応付けられている。ここで、「対応処理手順」は、対応する処理手順を示している。また、「出力先種別」は、出力先の種別を示しており、“ＤＢ”（データベース）又は“ファイル”を規定する。また、「出力先」は、情報を出力するテーブル名を示している。また、「アクセス種別」は、情報の出力におけるアクセスの種類（データベースを操作する種類）を示しており、“作成”（追加）、“更新”、又は“削除”を規定する。
なお、図９に示す一例では、「出力情報」テーブルにおいて、「対応処理手順」が“出力処理”であり、「出力先種別」が“ＤＢ”であり、「出力先」が“出力テーブル”であり、「アクセス種別」が“更新”であることを示している。
【００５２】
また、「出力項目」テーブルは、情報として出力する項目に関する情報を規定するテーブルであり、「項番」、「項目名」、「設定内容」、及び「備考」が対応付けられている。
なお、図９に示す一例では、「出力項目」テーブルにおいて、「項番」の“１”に対応する「項目名」が“データＡ”であり、「項番」の“２”に対応する「項目名」が“データＢ”であることを示している。
【００５３】
このように、設計書記憶部１０は、サービス系設計書情報１２として、フロー情報シートＳＴ１２と、基本情報シートＳＴ２２と、取得情報シートＳＴ３と、出力情報シートＳＴ４とを対応付けて記憶している。また、設計書情報は、情報処理の手順を視覚化したフロー図（例えば、フロー情報シートＳＴ１２）と、情報処理の手順（例えば、基本情報シートＳＴ２２の「内容」テーブル）と、情報処理においてアクセスするデータベースのテーブル名及びアクセス種別とを対応付けて含んでいる。ここで、データベースのテーブル名及びアクセス種別には、例えば、基本情報シートＳＴ２２の「ＤＢアクセス」テーブル、取得情報シートＳＴ３の「取得情報」テーブル、出力情報シートＳＴ４の「出力情報」テーブルが対応する。
【００５４】
＜パラメタライズドロジック設計書情報１３の構成＞
次に、パラメタライズドロジック設計書情報１３におけるパラメタライズドロジック情報シートＳＴ５の構成について説明する。
【００５５】
図１０は、パラメタライズドロジック設計書情報１３におけるパラメタライズドロジック情報シートＳＴ５の一例を示す図である。
図１０（ａ）に示すように、パラメタライズドロジック情報シートＳＴ５は、パラメタライズドロジック処理に関して規定する設計書情報であり、「章・節・項」、「パラメタライズドロジック名」、及び「マッピング定義」テーブルを有している。
【００５６】
「マッピング定義」テーブルは、「項番」と、「パラメータの組み合わせ」と、「処理ロジック」とが対応付けられている。ここで、「パラメータの組み合わせ」は、分岐に利用するパラメータの組み合わせ（分岐する条件）を示しており、「パラメータの組み合わせ」は、「パラメータ属性１」と、「パラメータ属性２」と、「説明」とを含んでいる。また、「処理ロジック」は、分岐により参照される処理を示している。
なお、図１０（ａ）に示す一例では、「マッピング定義」テーブルにおいて、「項番」の“１”に対応する「パラメータ属性１」が“１”であり、「パラメータ属性２」が“Ａ”であり、「処理ロジック」が“共通部品設計書「Ａ共通部品」参照”であることを示している。また、「項番」の“２”に対応する「パラメータ属性１」が“１”であり、「パラメータ属性２」が“Ｂ”であり、「処理ロジック」が“共通部品設計書「Ｂ共通部品」参照”であることを示している。また、「項番」の“３”に対応する「パラメータ属性１」が“２”であり、「パラメータ属性２」が“Ａ”であり、「処理ロジック」が“共通部品設計書「Ｃ共通部品」参照”であることを示している。
【００５７】
また、図１０（ｂ）に示すフローチャートＦ３は、図１０（ａ）に示されるパラメタライズドロジック情報シートＳＴ５により規定されるパラメタライズドロジック処理を示している。フローチャートＦ３は、パラメタライズドロジック情報シートＳＴ５の規定に従い、パラメータ属性の値に応じて、「Ａ共通部品」の処理、「Ｂ共通部品」の処理、及び「Ｃ共通部品」の処理のいずれか１つの処理に分岐する処理を示している。
なお、本実施形態では、パラメタライズドロジック設計書情報１３において、図１０（ｂ）に示すようなフロー図を含んでいない。そのため、制御部３０の経路抽出部３２は、経路を抽出する際に、パラメタライズドロジック情報シートＳＴ５に基づいて、図１０（ｂ）に示すようなフロー図を生成する。
【００５８】
＜基準アクセス順序情報の構成＞
次に、アクセス順序記憶部２０が記憶する基準アクセス順序情報の構成について説明する。
図１１は、本実施形態における基準アクセス順序情報の一例を示す図である。
この図において、アクセス順序記憶部２０は、基準アクセス順序情報（アクセス順序情報シートＳＴ６）として、「章・節・項」、「サブシステム名」、及びアクセス順序一覧テーブルを記憶している。
アクセス順序一覧テーブルは、データベースのアクセス順序の一覧を示しており、「項番」、「テーブル名」、及び「アクセス順」が対応付けられている。ここで、「テーブル名」は、データベースにおけるテーブル名を示し、「アクセス順」は、アクセスする順序番号を示している。
【００５９】
なお、図１１に示す一例では、アクセス順序一覧テーブルにおいて、「項番」の“１”に対応する「テーブル名」が“取得テーブル１”であり、「アクセス順」が“１”であることを示している。また、「項番」の“２”に対応する「テーブル名」が“出力テーブル”であり、「アクセス順」が“２”であることを示している。
また、図１１に示す一例では、「項番」と「アクセス順」とが一致している場合の例を示しているが、一致していなくてもよい。
このように、基準アクセス順序情報は、データベースのテーブル名とテーブル名に対応するアクセス順序を示す順序番号とを含んでいる。
【００６０】
＜検証結果の構成＞
次に、検証記憶部４０が記憶する検証結果を示す情報の構成について説明する。
図１２は、本実施形態における検証結果の一例を示す図である。
図１２（ａ）は、例えば、或るオンライン処理設計書情報１１における検証結果の一例を示している。図１２（ａ）において、検証結果は、検証結果シートＳＴ４１として検証記憶部４０に記憶されている。
【００６１】
検証結果シートＳＴ４１は、「経路」、「判定」、「Ｃ／Ｒ／Ｕ／Ｄ」、「テーブル経路」、及び「処理経路のハッシュ値」を有している。ここで、「経路」は、経路抽出部３２によって抽出された情報処理の経路を示している。ＤＢアクセス検証部３３は、複数の経路それぞれに対して、データベースのアクセス順序の検証を実行するため、検証結果シートＳＴ４１には、複数の経路に対応する検証結果が含まれる。
また、「判定」は、データベースのアクセス順序の判定結果を示し、「ツール」と「目視」との２つの判定結果を含んでいる。なお、「ツール」は、本実施形態におけるＤＢアクセス検証装置１による判定結果を示し、「目視」は、人手による判定結果を別途記入するための記入欄を示している。ＤＢアクセス検証部３３は、データベースへのアクセス順序が昇番順である場合に、「ツール」を“○”と判定し、昇番順でない場合に、「ツール」を“×”と判定する。
【００６２】
また、「Ｃ／Ｒ／Ｕ／Ｄ」は、各アクセス種別におけるデータベースへのアクセス回数を示し、「追加」（作成）、「参照」、「更新」、及び「削除」におけるアクセス回数を含んでいる。また、「テーブル経路」は、各経路におけるテーブルのアクセス順の一覧を示している。なお、「テーブル経路」において、“（）”（カッコ）は、ループ内でのアクセス順を示している。また、「処理経路のハッシュ値」は、例えば、“設計書名＋処理名＋テーブル名”を、ハッシュ関数ＳＨＡ１（Secure Hash Algorithm １）を使用して算出したハッシュ値を示している。
【００６３】
なお、図１２（ａ）に示す一例では、検証結果シートＳＴ４１において、「経路」が“経路１”に対応する「判定」の「ツール」が“○”であり、「テーブル経路」が“１，２”であることを示している。この場合、ＤＢアクセス検証部３３は、“１，２”が昇番順であるため、「判定」の「ツール」を“○”と判定する。また、「経路」が“経路３”に対応する「判定」の「ツール」が“×”であり、「テーブル経路」が“１，２，（９，２０，１３），２２，２３，２５”であることを示している。この場合、ＤＢアクセス検証部３３は、“１，２，（９，２０，１３），２２，２３，２５”が昇番順でないため、「判定」の「ツール」を“×”と判定する。
【００６４】
また、上述した「処理経路のハッシュ値」は、検証結果出力部３４によって算出され、アクセス順序の検証処理と検証結果に基づく設計書情報の修正（更新）とが繰り返し実行される場合に、効率よく修正（更新）した設計書情報を含む経路の検証結果を発見するために用いる。例えば、検証結果出力部３４は、「処理経路のハッシュ値」に基づいて、修正（更新）した設計書情報を含む経路を抽出し、修正（更新）した設計書情報を含む経路の検証結果一覧を検証結果として生成してもよい。
具体的に、検証結果出力部３４は、例えば、１つの経路内の全ての「設計書名」、「処理項番」、「処理名」、「テーブル名」、「アクセス種別」、及び「順序」を羅列した文字列でハッシュ値を算出する。例えば、図１２（ｂ）に示す場合には、検証結果出力部３４は、「処理Ａ設計書，１．○○処理サービス，更新を伴う参照，取得テーブル１，１，処理Ａ設計書，１．○○処理サービス，更新を伴う参照，出力テーブル，２，処理Ａ設計書，ループ１ｓｔａｒｔ…」のハッシュ値を算出する。
【００６５】
また、検証結果は、図１２（ｂ）に示すような各経路におけるアクセス情報の一覧を含んでもよい。検証記憶部４０は、図１２（ｂ）に示すようなアクセス情報シートＳＴ４２を検証結果として記憶している。なお、図１２（ｂ）に示すアクセス情報シートＳＴ４２は、１つの経路に対するものであり、検証記憶部４０は、各経路に対応するアクセス情報シートＳＴ４２を複数記憶している。
【００６６】
アクセス情報シートＳＴ４２は、「設計書名」、「処理項番」、「処理名」、「ＤＢアクセス」、及び「順序」を関連付けたアクセス情報と、「結果」とを有し、このアクセス情報が経路の順番に記憶されている。ここで、「設計書名」は、解析（検証）した設計書名、又は参照先設計書名を示し、「ＤＢアクセス」は、アクセス先の「テーブル名」と「アクセス種別」とを示している。また、「順番」は、基準アクセス順序情報（アクセス順序情報シートＳＴ６）において、「テーブル名」に対応する「アクセス順」の番号を示している。
なお、本実施形態では、１つのデータベースは、１つのサブシステム内で使用されることを前提とする。そのため、「テーブル名」が、起点となる設計書情報（起点設計書情報）から取得したサブシステム以外のテーブルである場合に、「順番」には、“−”又は“×”が記憶される。例えば、取得したサブシステム以外のテーブルであり、且つ「アクセス種別」が“参照”である場合、ＤＢアクセス検証部３３は、「順番」に“−”を記憶させる。また、例えば、取得したサブシステム以外のテーブルであり、且つ「アクセス種別」が“追加”、“更新”、又は“削除”である場合、ＤＢアクセス検証部３３は、「順番」に“×”を記憶させる。
【００６７】
また、「結果」は、経路抽出部３２が抽出したこの経路におけるアクセス手順が、基準アクセス順序情報と整合しているか否かを判定した検証結果を示している。ＤＢアクセス検証部３３は、例えば、「順序」が昇番順である場合に、この経路におけるアクセス手順が、基準アクセス順序情報と整合していると判定し、検証結果出力部３４は、「結果」に“○”を記憶させる。また、ＤＢアクセス検証部３３は、例えば、「順序」が昇番順でない場合に、この経路におけるアクセス手順が、基準アクセス順序情報と整合していないと判定し、検証結果出力部３４は、「結果」に“×”を記憶させる。
なお、図１２（ｂ）に示す一例では、アクセス情報シートＳＴ４２において、「順序」が昇番順であるので、「結果」が“○”であることを示している。
【００６８】
また、ＤＢアクセス検証部３３は、「順序」が“−”である場合には、この判定から除外する。また、ＤＢアクセス検証部３３は、「順序」が“×”である場合には、この経路におけるアクセス手順が、基準アクセス順序情報と整合していないと判定し、検証結果出力部３４は、「結果」に“×”を記憶させる。このように、本実施形態では、データベースからのデータ取得するアクセス検証と、データベースへのデータ出力するアクセス検証とを個別に判定基準を設けることができる。
【００６９】
次に、本実施形態におけるＤＢアクセス検証装置１の動作について説明する。
図１３は、本実施形態におけるＤＢアクセス検証の手順の一例を示すフローチャートである。なお、図１３に示すフローチャートの処理は、起点となる設計書情報が選択された後に開始される。
【００７０】
この図において、まず、ＤＢアクセス検証装置１の制御部３０は、入力情報の事前チェック処理を実行する（ステップＳ１０１）。具体的に、制御部３０の事前チェック部３１は、ＤＢアクセス検証を実行する上で入力情報が正しく読み込める状態であることをチェックする。すなわち、事前チェック部３１は、設計書記憶部１０が記憶する設計書情報を正しく解析できる状態にあるか否かをチェックする。なお、入力情報の事前チェック処理の詳細については、図１４を参照して後述する。
【００７１】
次に、制御部３０は、事前チェックがＯＫ（問題ない）か否かを判定する（ステップＳ１０２）。すなわち、制御部３０は、事前チェック部３１による事前チェックの結果に基づいて、事前チェックが問題ないか否かを判定する。制御部３０は、事前チェックが問題ない場合（ステップＳ１０２：ＹＥＳ）に、処理をステップＳ１０３に進める。また、制御部３０は、事前チェックが問題ありである場合（ステップＳ１０２：ＮＯ）に、ＤＢアクセス検証の処理を終了させる。
【００７２】
次に、ステップＳ１０３（経路抽出ステップ）において、経路抽出部３２は、設計書情報に基づいて経路を抽出する（経路抽出処理）。経路抽出部３２は、設計書記憶部１０から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。具体的に、経路抽出部３２は、設計書情報に含まれるフロー情報シートＳＴ１（フロー図）と、基本情報シートＳＴ２（情報処理の手順）とに基づいて、経路を抽出する。ここで、経路抽出部３２は、フロー情報シートＳＴ１に含まれる分岐処理に応じて複数の経路を抽出する。なお、この経路抽出処理の詳細については、図１５を参照して後述する。
【００７３】
次に、ＤＢアクセス検証部３３は、経路抽出部３２が抽出した経路に基づいて、アクセス順序の検証処理を実行する（ステップＳ１０４：検証ステップ）。ＤＢアクセス検証部３３は、経路抽出部３２によって抽出された経路における抽出アクセス順序情報と、アクセス順序記憶部２０から取得した基準アクセス順序情報とが整合するか否かを検証する。
具体的に、ＤＢアクセス検証部３３は、経路抽出部３２によって抽出された経路と、情報処理の手順（基本情報シートＳＴ２の「内容」テーブル）と、テーブル名及びアクセス種別とに基づいて経路における抽出アクセス順序情報を抽出する。ＤＢアクセス検証部３３は、抽出した抽出アクセス順序情報と、アクセス順序記憶部２０から取得した基準アクセス順序情報とが整合するか否かを検証する。なお、このアクセス順序の検証処理の詳細については、図２０及び図２１を参照して後述する。
【００７４】
次に、検証結果出力部３４は、検証結果を出力する（ステップＳ１０５）。すなわち、検証結果出力部３４は、ＤＢアクセス検証部３３によって検証された検証結果（例えば、図１２に示す検証結果シートＳＴ４１及びアクセス情報シートＳＴ４２）を出力情報として、検証記憶部４０に記憶させる。
【００７５】
＜入力情報の事前チェック処理＞
次に、図１３のステップＳ１０１における処理である入力情報の事前チェック処理の詳細な手順について説明する。
図１４は、本実施形態における入力情報の事前チェック処理の一例を示すフローチャートである。
【００７６】
この図において、まず、事前チェック部３１は、基本情報（基本情報シートＳＴ２）があるか否かを判定する（ステップＳ２０１）。すなわち、事前チェック部３１は、起点となる設計書情報及び参照される設計書情報を含む各種設計書情報の各基本情報シートＳＴ２が設計書記憶部１０に記憶されているか否かを判定する。事前チェック部３１は、各種設計書情報の各基本情報シートＳＴ２が設計書記憶部１０に記憶されている場合（ステップＳ２０１：ＹＥＳ）に処理をステップＳ２０２に進める。また、事前チェック部３１は、各種設計書情報の各基本情報シートＳＴ２が設計書記憶部１０に記憶されていない場合（ステップＳ２０１：ＮＯ）に処理を終了させる。
【００７７】
次に、ステップＳ２０２において、事前チェック部３１は、フロー情報（フロー情報シートＳＴ１）があるか否かを判定する。すなわち、事前チェック部３１は、起点となる設計書情報及び参照される設計書情報を含む各種設計書情報のフロー情報シートＳＴ１が設計書記憶部１０に記憶されているか否かを判定する。事前チェック部３１は、各種設計書情報のフロー情報シートＳＴ１が設計書記憶部１０に記憶されている場合（ステップＳ２０２：ＹＥＳ）に処理をステップＳ２０３に進める。また、事前チェック部３１は、各種設計書情報のフロー情報シートＳＴ１が設計書記憶部１０に記憶されていない場合（ステップＳ２０２：ＮＯ）に処理を終了させる。
【００７８】
次に、ステップＳ２０３において、事前チェック部３１は、基本情報（基本情報シートＳＴ２）のチェック処理を実行する。すなわち、事前チェック部３１は、各基本情報シートＳＴ２の「内容」テーブルの情報に問題がないかをチェックする。
具体的に、事前チェック部３１は、「内容」テーブルの「順番」及び「詳細」に記憶されている情報があるか否かをチェックする。
なお、事前チェック部３１は、基本情報シートＳＴ２に問題がある場合に、問題がある箇所及び問題の内容を含む警告情報を検証記憶部４０に記憶させることにより出力してもよい。
【００７９】
次に、事前チェック部３１は、フロー情報（フロー情報シートＳＴ１）のチェック処理を実行する（ステップＳ２０４）。すなわち、事前チェック部３１は、各フロー情報シートＳＴ１の「処理フロー」（フロー図）に問題がないかをチェックする。
【００８０】
具体的に、事前チェック部３１は、「処理フロー」（フロー図）の以下に示す項目をチェックする。
（１）図形を接続するコネクターが正しく接続されているか否か。
（２）コネクターの形状が矢印の形状になっているか否か。
事前チェック部３１は、例えば、コネクターの形状が両端とも矢印、又は矢印なしである場合に、問題がある（エラー）と判定する。
（３）図４（ｈ）示す「結合子」がある場合に、呼び先の「結合子」に対応する呼ばれ先の「結合子」があるか否か。
（４）図形の処理内容に記載されている順番が、基本情報シートＳＴ２の「内容」テーブルの「順番」に存在しているか否か。
（５）図形の処理内容が、「順番．処理手順」（例えば「１．処理Ａ」など）の様式で記載されているか否か。
【００８１】
なお、事前チェック部３１は、フロー情報シートＳＴ１に問題がある場合に、問題がある箇所及び問題の内容を含む警告情報を検証記憶部４０に記憶させることにより出力してもよい。
事前チェック部３１は、フロー情報シートＳＴ１のチェック処理を実行して、入力情報の事前チェック処理を終了する。
【００８２】
＜経路抽出処理＞
次に、図１３のステップＳ１０３における処理である経路抽出処理の詳細な手順について説明する。
図１５は、本実施形態における経路抽出処理の一例を示すフローチャートである。
【００８３】
この図において、まず、経路抽出部３２は、サブシステムを取得する（ステップＳ３０１）。すなわち、経路抽出部３２は、起点となる設計書情報の基本情報シートＳＴ２に基づいてサブシステム名を取得する。
【００８４】
次に、経路抽出部３２は、アクセス順序記憶部２０が記憶する基準アクセス順序情報を取得する（ステップＳ３０２）。
次に、経路抽出部３２は、基準アクセス順序情報が取得できたか否かを判定する（ステップＳ３０３）。経路抽出部３２は、ステップＳ３０２において基準アクセス順序情報が取得できた場合（ステップＳ３０３：ＹＥＳ）に、処理をステップＳ３０４に進める。また、経路抽出部３２は、ステップＳ３０２において基準アクセス順序情報が取得できなかった場合（ステップＳ３０３：ＮＯ）に、経路抽出処理を終了させる。
【００８５】
次に、ステップＳ３０４において、経路抽出部３２は、元設計書情報の解析処理を実行する。すなわち、経路抽出部３２は、起点となる設計書情報（元設計書情報）のフロー情報シートＳＴ１と基本情報シートＳＴ２とを解析する。経路抽出部３２は、例えば、フロー図において、各アイテム（フローの図形）を読み込んで矢印を解析し、起点となるアイテムを検出する。なお、経路抽出部３２は、経路作成の開始点として、起点となるアイテムの上位にダミー用親アイテム（仮想の開始アイテム）を作成する。このダミー用親アイテムは、起点となるアイテムの形状がフローにより様々であるため、経路作成の開始点を統一する目的により作成される。
【００８６】
次に、経路抽出部３２は、参照設計書情報の解析処理を実行する（ステップＳ３０５）。すなわち、経路抽出部３２は、元設計書情報から順に参照される参照設計書情報のフロー情報シートＳＴ１と基本情報シートＳＴ２とを解析する。経路抽出部３２は、例えば、フロー図において、各アイテムを読み込んで矢印を解析し、起点となるアイテムを検出する。なお、経路抽出部３２は、参照設計書情報についても元設計書情報と同様に、経路作成の開始点として、起点となるアイテムの上位にダミー用親アイテム（仮想の開始アイテム）を作成する。
【００８７】
次に、経路抽出部３２は、基本情報シートＳＴ２の参照先を解析し、解析していない参照先があるか否かを判定する（ステップＳ３０６）。経路抽出部３２は、解析していない参照先がある場合（ステップＳ３０６：ＹＥＳ）に、処理をステップＳ３０５に戻して、参照設計書情報の解析処理を繰り返す。また、経路抽出部３２は、解析していない参照先がある場合（ステップＳ３０６：ＮＯ）に、処理をステップＳ３０７に進める。
【００８８】
次に、ステップＳ３０７において、経路抽出部３２は、分岐パターンの抽出処理を実行する。すなわち、経路抽出部３２は、解析した元設計書情報、及び参照設計書情報に含まれる分岐処理を抽出し、分岐パターン（分岐の組み合わせパターン）を作成する。なお、この分岐パターンの抽出処理（第１の抽出ステップの処理）の詳細については、図１６を参照して後述する。
【００８９】
次に、経路抽出部３２は、分岐パターンに基づいて、経路を抽出する経路生成処理を実行する（ステップＳ３０８）。すなわち、経路抽出部３２は、分岐パターンに応じた複数の経路を生成し、処理を終了する。なお、この経路生成処理（第２の抽出ステップの処理）の詳細については、図１７を参照して後述する。
【００９０】
＜分岐パターンの抽出処理＞
次に、図１５のステップＳ３０７における処理である分岐パターンの抽出処理の詳細な手順について説明する。
図１６は、本実施形態における分岐パターンの抽出処理の一例を示すフローチャートである。
【００９１】
この図において、まず、経路抽出部３２は、１経路に分岐が最大何回あるかを算出する（ステップＳ４０１）。すなわち、経路抽出部３２は、起点となる起点設計書情報から全ての参照設計書情報の分岐を抽出し、分岐が最大何回あるかを算出する。経路抽出部３２は、例えば、起点設計書情報から全ての参照設計書情報の分岐の数、参照設計書情報の数、及び参照設計書情報が呼び出される回数に基づいて、分岐の最大回数を算出する。
【００９２】
次に、経路抽出部３２は、１回の経路で通過する分岐の一覧を生成する（ステップＳ４０２）。経路抽出部３２は、上述した分岐の最大回数分、分岐が実行されると仮定して、全分岐パターンを算出し、分岐の一覧を生成する。例えば、２つの経路に分岐する分岐が３回ある場合に、全分岐パターンの数は、３つの分岐（例、「分岐Ａ」、「分岐Ｂ」、「分岐Ｃ」）のうちのいずれかを３回呼び出し組み合わせになるため、下記の式（１）に示すように２１６通りとなる。
【００９３】
２×２×２×３×３×３＝２１６通り  ・・・  （１）
【００９４】
次に、経路抽出部３２は、最初の分岐、及び起点設計書情報の分岐を抽出する（ステップＳ４０３）。経路抽出部３２は、起点設計書情報から順に参照設計書情報を解析し、最初の分岐、及び起点設計書情報の分岐を抽出する。
【００９５】
次に、経路抽出部３２は、分岐パターンの組み合わせを作成する（ステップＳ４０４）。具体的に、経路抽出部３２は、次の２つの仕組みを利用して、分岐の一覧から組み合わせを絞り込むことにより、分岐パターンの組み合わせを作成する。
まず、経路抽出部３２は、最初の分岐は不変であることを利用して、組み合わせを絞り込む。例えば、上述した例において、「分岐Ａ」が最初の分岐である場合、分岐パターンの組み合わせは、下記の式（２）に示すように７２通りとなる。
【００９６】
２×２×２×１×３×３＝７２通り  ・・・  （２）
【００９７】
さらに、経路抽出部３２は、起点設計書情報の分岐は１回しか通過しないことを利用して、組み合わせを絞り込む。例えば、上述した例において、「分岐Ｂ」及び「分岐Ｃ」が起点設計書情報の分岐である場合、分岐パターンの組み合わせは、下記の式（３）に示すように１６通りとなる。この場合、分岐の経路は、「分岐Ａ」→「分岐Ｂ」→「分岐Ｃ」と、「分岐Ａ」→「分岐Ｃ」→「分岐Ｂ」との２つになる。
【００９８】
２×２×２×１×２×１＝１６通り  ・・・  （３）
【００９９】
このように、経路抽出部３２は、組み合わせを絞り込むことにより、分岐パターンの組み合わせを作成する。これにより、組み合わせパターンが低減されるので、本実施形態におけるＤＢアクセス検証装置１は、後述する経路生成処理の際に、使用する記憶部の記憶容量を低減することができる。また、ＤＢアクセス検証装置１は、演算量を低減できるので処理時間の短縮することができる。
【０１００】
＜経路生成処理＞
次に、図１５のステップＳ３０８における処理である経路生成処理の詳細な手順について説明する。
図１７は、本実施形態における経路生成処理の一例を示すフローチャートである。
なお、図１７に示す処理は、分岐パターンの組み合わせのうちの１つに対して実行される処理であり、経路抽出部３２は、図１７に示す処理を、分岐パターンの組み合わせそれぞれに対して順番に実行することにより、複数の経路を抽出する。
【０１０１】
この図において、まず、経路抽出部３２は、分岐ポインタを初期化する（ステップＳ５０１）。ここで、分岐ポインタとは、分岐パターンによる分岐の経路において、どの分岐を探索しているかを示す情報である。経路抽出部３２は、例えば、分岐ポインタの値を“０”にし、上述したダミー用親アイテムから経路生成処理を開始する。
【０１０２】
次に、経路抽出部３２は、アイテム（フローアイテム）を読み込む（ステップＳ５０２）。すなわち、経路抽出部３２は、フロー情報シートＳＴ１のフロー図のアイテムを読み込む。
【０１０３】
次に、経路抽出部３２は、読み込んだアイテムが分岐であるか否かを判定する（ステップＳ５０３）。経路抽出部３２は、読み込んだアイテムが分岐である場合（ステップＳ５０３：ＹＥＳ）に、処理をステップＳ５０４に進める。また、経路抽出部３２は、読み込んだアイテムが分岐でない場合（ステップＳ５０３：ＮＯ）に、処理をステップＳ５０５に進める。
【０１０４】
次に、ステップＳ５０４において、経路抽出部３２は、分岐が正しい分岐であるか否かを判定する。すなわち、経路抽出部３２は、上述した分岐パターンの抽出処理によって抽出された分岐パターンの経路に従った分岐であるか否かを判定する。経路抽出部３２は、分岐が正しい分岐である場合（ステップＳ５０４：ＹＥＳ）に、処理をステップＳ５０５に進める。また、経路抽出部３２は、分岐が正しい分岐でない場合（ステップＳ５０４：ＮＯ）に、処理をステップＳ５１０に進める。
【０１０５】
次に、ステップＳ５０５において、経路抽出部３２は、他の設計書情報（参照設計書情報）に遷移するか否かを判定する。経路抽出部３２は、他の設計書情報（参照設計書情報）に遷移する場合（ステップＳ５０５：ＹＥＳ）に、処理をステップＳ５０６に進める。また、経路抽出部３２は、他の設計書情報（参照設計書情報）に遷移しない場合（ステップＳ５０５：ＮＯ）に、処理をステップＳ５１１に進める。
【０１０６】
次に、ステップＳ５０６において、経路抽出部３２は、フローアイテムが前のフローアイテムと接続されているか否かを判定する。すなわち、経路抽出部３２は、ステップＳ５０２において読み込んだフローアイテムが、これまで辿ってきた経路に接続されたものであるか否かを判定する。経路抽出部３２は、フローアイテムが前のフローアイテムと接続されている場合（ステップＳ５０６：ＹＥＳ）に、辿ってきた経路が正しいと判定し、処理をステップＳ５０７に進める。また、経路抽出部３２は、フローアイテムが前のフローアイテムと接続されていない場合（ステップＳ５０６：ＮＯ）に、辿ってきた経路が正しくないと判定し、処理をステップＳ５１０に進める。
【０１０７】
次に、ステップＳ５０７において、経路抽出部３２は、フローアイテム経路として採用する。すなわち、経路抽出部３２は、ステップＳ５０２において読み込んだフローアイテムを経路に追加する。
【０１０８】
次に、経路抽出部３２は、分岐ポインタを更新する（ステップＳ５０８）。すなわち、経路抽出部３２は、次の分岐の探索に移すために、分岐ポインタに“１”を加算する（インクリメントする）。
【０１０９】
次に、経路抽出部３２は、参照元設計書情報を検証記憶部４０に記憶させる（ステップＳ５０９）。ここで、参照元設計書情報とは、参照元の設計書情報を識別するための情報であり、経路抽出部３２は、参照元設計書情報を戻り先の情報として、検証記憶部４０に記憶させる。
【０１１０】
次に、経路抽出部３２は、次のフローアイテムがあるか否かを判定する（ステップＳ５１０）。経路抽出部３２は、次のフローアイテムがある場合に、処理をステップＳ５０２に戻し、次のフローアイテムを読み込む。また、経路抽出部３２は、次のフローアイテムがない場合に、処理を終了する。これにより、経路抽出部３２は、１つの経路の分岐パターンに沿った経路の作成が終了する。なお、経路抽出部３２は、次の分岐パターンについては、再度、ステップＳ５０１からの経路生成処理を実行する。
【０１１１】
また、他の設計書情報（参照設計書情報）に遷移しない場合のステップＳ５１１において、経路抽出部３２は、フローアイテムが前のフローアイテムと接続されているか否かを判定する。この処理は、上述したステップＳ５０６の処理と同様である。経路抽出部３２は、フローアイテムが前のフローアイテムと接続されている場合（ステップＳ５１１：ＹＥＳ）に、辿ってきた経路が正しいと判定し、処理をステップＳ５１２に進める。また、経路抽出部３２は、フローアイテムが前のフローアイテムと接続されていない場合（ステップＳ５１１：ＮＯ）に、辿ってきた経路が正しくないと判定し、処理をステップＳ５１０に進める。
【０１１２】
次に、ステップＳ５１２において、経路抽出部３２は、他の仕様書情報（参照設計書情報）からの戻りか否かを判定する。経路抽出部３２は、他の設計書情報（参照設計書情報）からの戻りである場合（ステップＳ５１２：ＹＥＳ）に、処理をステップＳ５１３に進める。また、経路抽出部３２は、他の設計書情報（参照設計書情報）からの戻りでない場合（ステップＳ５１２：ＮＯ）に、処理をステップＳ５１４に進める。
【０１１３】
次に、ステップＳ５１３において、経路抽出部３２は、記憶した参照元設計書情報を検証記憶部４０から削除する。ここでは、他の設計書情報（参照設計書情報）からの戻って来たため、経路抽出部３２は、ステップＳ５０９において検証記憶部４０記憶させた参照元設計書情報を削除する。
【０１１４】
次に、ステップＳ５１４において、経路抽出部３２は、フローアイテム経路として採用する。すなわち、経路抽出部３２は、ステップＳ５０２において読み込んだフローアイテムを経路に追加する。
【０１１５】
次に、経路抽出部３２は、分岐ポインタを更新する（ステップＳ５１５）。すなわち、経路抽出部３２は、次の分岐の探索に移すために、分岐ポインタに“１”を加算する（インクリメントする）。経路抽出部３２は、ステップＳ５１５の処理が終了した後に、処理をステップＳ５１０に進める。
【０１１６】
次に、経路抽出部３２が上述した経路抽出処理により抽出した経路の例について説明する。
図１８及び図１９は、本実施形態もおける経路抽出の一例を示す模式図である。
図１８に示す例は、処理の分岐のない場合の一例を示している。図１８（ａ）は、フロー情報シートＳＴ１の「処理フロー」を示し、フローチャートＦ４は、「１．読込処理」→「２．書込処理」→「３．更新処理」の手順を示している。経路抽出部３２は、フロー情報シートＳＴ１及び基本情報シートＳＴ２を解析し、図１８（ｂ）に示すような経路を示す情報を生成する。そして、経路抽出部３２は、図１８（ｂ）に示す情報に基づいて、図１８（ｃ）に示すような経路を作成し、検証記憶部４０に記憶させる。
【０１１７】
また、図１９に示す例は、処理に分岐を含む場合の一例を示している。図１９（ａ）は、フロー情報シートＳＴ１の「処理フロー」を示し、フローチャートＦ５は、「１．処理Ａ」、「分岐」、「２．処理Ｂ」、「３．処理Ｃ」、及び「４．処理Ｄ」を有する処理の手順を示している。この場合、経路Ｋ１と経路Ｋ２との２つの経路が考えられる。経路抽出部３２は、フロー情報シートＳＴ１及び基本情報シートＳＴ２を解析し、経路Ｋ１と経路Ｋ２との分岐パターンを生成する。そして、経路抽出部３２は、生成した分岐パターンに基づいて、図１９（ｂ）に示す「経路１」と、図１９（ｃ）に示す「経路２」とを作成する。ここで、「経路１」は、「１．処理Ａ」→「２．処理Ｂ」→「４．処理Ｄ」となる経路であり、「経路２」は、「１．処理Ａ」→「２．処理Ｃ」→「４．処理Ｄ」となる経路である。経路抽出部３２は、作成した経路（「経路１」及び「経路２」）を検証記憶部４０に記憶させる。
【０１１８】
＜アクセス順序の検証処理＞
次に、図１３のステップＳ１０５における処理であるアクセス順序の検証処理の詳細な手順について説明する。
図２０は、本実施形態におけるアクセス順序の検証処理の一例を示すフローチャートである。また、図２１は、本実施形態におけるアクセス順序の検証処理の一例を示すイメージ図である。
なお、図２０に示す処理は、経路抽出部３２が抽出した複数の経路のうちの１つに対して実行される処理であり、ＤＢアクセス検証部３３は、図２０に示す処理を、複数の経路それぞれに対して順番に実行することにより、複数の経路におけるアクセス順序を検証する。
【０１１９】
図２０において、まず、ＤＢアクセス検証部３３は、経路の起点における処理の番号を取得する（ステップＳ６０１）。すなわち、ＤＢアクセス検証部３３は、起点となる起点設計書情報のフロー情報シートＳＴ１における最初の処理の「番号」を取得する。例えば、図２１（ａ）に示すフロー情報シートＳＴ１では、フローチャートＦ６の起点となる処理は、「１．○○処理サービス」であり、この場合、ＤＢアクセス検証部３３は、「番号」として“１”を取得する。
【０１２０】
次に、ＤＢアクセス検証部３３は、取得した「番号」を基本情報シートＳＴ２の内容テーブルから検索する（ステップＳ６０２）。例えば、上述の取得した「番号」が“１”である場合、ＤＢアクセス検証部３３は、図２１（ｂ）に示すように、基本情報シートＳＴ２（「内容」テーブル）の「順番」における“１”を検索する。この場合、「順番」が“１”である「処理手順」は、“○○処理サービス”に対応する。
【０１２１】
次に、ＤＢアクセス検証部３３は、該当する詳細欄（「詳細」）の文字列を解析する（ステップＳ６０３）。すなわち、ＤＢアクセス検証部３３は、取得した「番号」に該当する「内容」テーブルにおける処理の「詳細」に記憶されている参照先を解析する。なお、図２１（ｂ）に示す例では、「詳細」は、“取得情報（取得テーブル１）参照”という文字列が記憶されている。
【０１２２】
次に、ＤＢアクセス検証部３３は、文字列がＤＢ（データベース）に対する参照であるか否かを判定する（ステップＳ６０４）。すなわち、ＤＢアクセス検証部３３は、「詳細」の文字列が示す参照先が、取得情報シートＳＴ３又は出力情報シートＳＴ４であるか否かを判定する。なお、文字列には、参照先が取得情報シートＳＴ３である場合、「取得情報」が含まれ、参照先が出力情報シートＳＴ４である場合、「出力情報」が含まれる。
例えば、図２１（ｂ）に示す例では、「順番」が“１”に対応する「詳細」には、文字列“取得情報（取得テーブル１）参照”が記憶されており、この場合、取得情報シートＳＴ３を参照していることを示している。
ＤＢアクセス検証部３３は、文字列がＤＢ（データベース）に対する参照である場合（ステップＳ６０４：ＹＥＳ）に、処理をステップＳ６０５に進める。また、ＤＢアクセス検証部３３は、文字列がＤＢ（データベース）に対する参照でない場合（ステップＳ６０４：ＮＯ）に、処理をステップＳ６０７に進める。
【０１２３】
次に、ステップＳ６０５において、ＤＢアクセス検証部３３は、参照先の情報シートからテーブル名（「取得元」）と「アクセス種別」とを取得する。例えば、図２１（ｃ）に示す例では、ＤＢアクセス検証部３３は、参照先の情報シートである取得情報シートＳＴ３から、テーブル名として“取得テーブル１”を取得し、「アクセス種別」として“更新を伴う参照”を取得する。なお、上述したように、取得情報シートＳＴ３は、複数のテーブル名（「取得元」）を設定することが可能である。ＤＢアクセス検証部３３は、取得情報シートＳＴ３に複数のテーブル名（「取得元」）が設定されている場合には、先頭のテーブル名から順番に、複数のテーブル名を取得する。
【０１２４】
次に、ＤＢアクセス検証部３３は、基準アクセス順序情報から該当テーブルの順序番号を取得する（ステップＳ６０６）。すなわち、ＤＢアクセス検証部３３は、アクセス順序記憶部２０が記憶する基準アクセス順序情報（図１１のＳＴ６）からステップＳ６０５において取得したテーブル名に対応する「アクセス順」（順序番号）を所得する。例えば、図１１に示す基準アクセス順序情報では、“取得テーブル１”に対応する「アクセス順」は、“１”であり、ＤＢアクセス検証部３３は、順序番号として“１”を取得する。
【０１２５】
次に、ＤＢアクセス検証部３３は、抽出アクセス順序情報を検証記憶部４０に記憶させる（ステップＳ６０７）。具体的に、ＤＢアクセス検証部３３は、図１２（ｂ）に示すように、取得した「処理手順」（処理名）と、「アクセス種別」と、テーブル名と、「アクセス順」（順序番号）とを対応付けてアクセス情報として検証記憶部４０に記憶させる。このように、ＤＢアクセス検証部３３は、経路においてアクセスするデータベースのテーブル名と、基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、抽出アクセス順序情報として経路の順番に検証記憶部４０に記憶させる。
【０１２６】
次に、ＤＢアクセス検証部３３は、経路の次の処理があるか否かを判定する（ステップＳ６０８）。すなわち、ＤＢアクセス検証部３３は、経路抽出部３２が抽出した経路に基づいて、次の処理があるか否かを判定する。ＤＢアクセス検証部３３は、次の処理がある場合（ステップＳ６０８：ＹＥＳ）に、処理をステップＳ６０９に進める。また、ＤＢアクセス検証部３３は、次の処理がない場合（ステップＳ６０８：ＮＯ）に、処理をステップＳ６１０に進める。
【０１２７】
次に、ステップＳ６０９において、ＤＢアクセス検証部３３は、次の処理の番号を取得する。すなわち、ＤＢアクセス検証部３３は、経路抽出部３２が抽出した経路における次野の処理の「番号」を取得し、処理をステップＳ６０２に戻す。
【０１２８】
また、ステップＳ６１０において、ＤＢアクセス検証部３３は、テーブルの順序番号が昇番順であるか否かを判定する。なお、この場合は、次の処理がない場合であり、１つの経路の抽出アクセス順序情報の抽出が完了した状態である。ＤＢアクセス検証部３３は、図１２（ｂ）に示すような、検証記憶部４０が記憶するアクセス情報シートＳＴ４２を参照し、「アクセス順」（順序番号）が昇番順であるか否かを判定する。ＤＢアクセス検証部３３は、「アクセス順」（順序番号）が昇番順である場合（ステップＳ６１０：ＹＥＳ）に、処理をステップＳ６１１に進める。また、ＤＢアクセス検証部３３は、「アクセス順」（順序番号）が昇番順でない場合（ステップＳ６１０：ＮＯ）に、処理をステップＳ６１２に進める。
【０１２９】
ステップＳ６１１において、ＤＢアクセス検証部３３は、抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定し、検証結果出力部３４が、検証結果を検証記憶部４０に記憶させる。検証結果出力部３４が検証結果を検証記憶部４０に記憶させた後に、ＤＢアクセス検証部３３は、アクセス順序の検証処理を終了する。なお、検証結果出力部３４が記憶させる検証結果は、例えば、アクセス情報シートＳＴ４２の「結果」である。
このように、ＤＢアクセス検証部３３は、検証記憶部４０におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。
【０１３０】
また、ステップＳ６１２において、ＤＢアクセス検証部３３は、抽出アクセス順序情報と、基準アクセス順序情報とが整合していない（不整合である）と判定し、検証結果出力部３４が、検証結果を検証記憶部４０に記憶させる。検証結果出力部３４が検証結果を検証記憶部４０に記憶させた後に、ＤＢアクセス検証部３３は、アクセス順序の検証処理を終了する。
【０１３１】
なお、上述したように、ＤＢアクセス検証部３３は、図２０に示すアクセス順序の検証処理を、複数の経路それぞれに対して順番に実行する。全ての経路に対してアクセス順序の検証処理が完了した場合に、検証結果出力部３４は、各経路に対応するアクセス情報シートＳＴ４２に基づいて、各経路に対応する検証結果シートＳＴ４１の情報を生成する。そして、検証結果出力部３４は、生成した検証結果シートＳＴ４１の情報を検証記憶部４０に記憶させる。
【０１３２】
以上説明したように、本実施形態におけるデータベースアクセス検証方法は、経路抽出ステップと、検証ステップとを含んでいる。経路抽出ステップにおいて、経路抽出部３２が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部１０から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。そして、検証ステップにおいて、ＤＢアクセス検証部３３（検証部）が、経路抽出ステップによって抽出された経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部２０（順序記憶部）から取得した基準アクセス順序情報とが整合するか否かを検証する。なお、アクセス順序記憶部２０は、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する。
これにより、設計段階（例えば、設計書の段階）においてデータベースにアクセスする順序を検証することができるので、本実施形態におけるデータベースアクセス検証方法は、設計段階においてデータベースのデッドロックを検証することができる。また、本実施形態におけるデータベースアクセス検証方法は、データベースのアクセス検証を経路抽出部３２及びＤＢアクセス検証部３３により実行されるので、例えば、手作業及び目視によりデータベースのアクセス順序の確認する場合に比べて、抜け漏れなく検証することができる。
【０１３３】
また、本実施形態におけるデータベースアクセス検証方法は、設計段階においてデータベースのデッドロックを検証することができるので、例えば、実装段階やテスト段階における検証でデータベースのデッドロックが発生することが判明した場合の手戻り工数を低減することができる。また、本実施形態におけるデータベースアクセス検証方法は、手戻りが低減することにより、ソフトウェアの設計期間を短縮することができる。
【０１３４】
また、本実施形態では、設計書情報は、情報処理の手順を視覚化したフロー図と、情報処理の手順と、情報処理においてアクセスするデータベースのテーブル名と、情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含んでいる。経路抽出ステップにおいて、経路抽出部３２は、フロー図と、情報処理の手順とに基づいて、経路を抽出する。そして、検証ステップにおいて、ＤＢアクセス検証部３３は、経路抽出ステップによって抽出された経路と、情報処理の手順と、テーブル名及びアクセス種別とに基づいて経路における抽出アクセス順序情報を抽出する。
これにより、本実施形態におけるデータベースアクセス検証方法は、ソフトウェアの設計に用いるフロー図と、情報処理の手順と、データベースのテーブル名及びアクセス種別とを含む設計書情報に基づいて、データベースのアクセス検証を行う。そのため、検証のための入力情報を別途作成する必要がなく、ソフトウェアの設計に用いる設計書を流用することができる。よって、本実施形態におけるデータベースアクセス検証方法は、ソフトウェアの設計及び検証の作業効率を向上させることができる。
【０１３５】
また、本実施形態では、経路抽出ステップにおいて、経路抽出部３２は、フロー図に含まれる分岐処理に応じて複数の経路を抽出する。そして、検証ステップにおいて、ＤＢアクセス検証部３３は、複数の経路それぞれに対して、各経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合するか否かを検証する。
これにより、本実施形態におけるデータベースアクセス検証方法は、分岐処理に応じた複数の経路に対して、アクセス順序の検証を実行するので、設計段階において、分岐処理に応じた経路を抜け漏れなく検証することができる。
【０１３６】
また、本実施形態では、基準アクセス順序情報は、データベースのテーブル名とテーブル名に対応するアクセス順序を示す順序番号とを含んでいる。検証ステップにおいて、ＤＢアクセス検証部３３は、経路においてアクセスするデータベースのテーブル名と、基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、アクセス順序として経路の順番に検証記憶部４０に記憶さる。そして、ＤＢアクセス検証部３３は、検証記憶部４０におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。
これにより、本実施形態におけるデータベースアクセス検証方法は、検証記憶部４０が記憶するアクセス情報の順序番号が昇番順であるか否かにより結果判定することができるので、簡易な判定手段により、データベースのアクセス検証を実行することができる。
【０１３７】
また、本実施形態では、設計書情報には、データベースからのデータの取得に関する取得情報（例えば、取得情報シートＳＴ３）と、データベースへのデータの出力に関する出力情報（例えば、出力情報シートＳＴ４）とが含まれる。
これにより、本実施形態におけるデータベースアクセス検証方法は、データベースからのデータ取得するアクセス検証と、データベースへのデータ出力するアクセス検証とを個別に判定基準を設けることができる。
【０１３８】
また、本実施形態では、経路抽出ステップにおいて、経路抽出部３２は、設計書情報に基づいて、分岐パターンの組み合わせを抽出する第１の抽出ステップと、抽出した分岐パターンに応じた複数の経路を作成する第２の抽出ステップとを実行する。
これにより、本実施形態におけるデータベースアクセス検証方法は、先に抽出した分岐パターンに基づいて経路を作成するので、経路を作成する際に分岐を判定する必要がない。そのため、本実施形態におけるデータベースアクセス検証方法は、経路を作成する処理を簡略化することができるとともに、経路を作成する処理時間を短縮することができる。
【０１３９】
また、本実施形態では、分岐パターンの組み合わせを抽出する第１の抽出ステップにおいて、経路抽出部３２は、仕様書情報に基づいて、最初の分岐、及び、起点となる仕様書情報に含まれる分岐を抽出し、抽出した最初の分岐、及び、起点となる仕様書情報に含まれる分岐に基づいて、分岐パターンの組み合わせの数を低減する。
これにより、経路抽出部３２は、経路を作成する際に使用する記憶部の記憶容量を低減することができるとともに、経路を作成する際の演算量を低減できるので処理時間の短縮することができる。
【０１４０】
また、本実施形態によれば、ＤＢアクセス検証装置１は、経路抽出部３２と、ＤＢアクセス検証部３３とを備えている。経路抽出部３２は、設計書記憶部１０から設計書情報を取得し、取得した設計書情報に基づいて、データベースへのアクセスを含む情報処理の経路を抽出する。そして、ＤＢアクセス検証部３３は、経路抽出部３２によって抽出された情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部２０が記憶する、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報とが整合するか否かを検証する。
これにより、本実施形態におけるＤＢアクセス検証装置１は、本実施形態におけるデータベースアクセス検証方法と同様の効果を奏する。
【０１４１】
［第２の実施形態］
次に、第２の実施形態によるデータベースアクセス検証装置、及びデータベースアクセス検証方法について、図面を参照して説明する。
図２２は、第２の実施形態によるデータベースアクセス検証装置（ＤＢアクセス検証装置１ａ）の一例を示すブロック図である。この図において、図１と同一の構成については同一の符号を付し、その説明を省略する。
【０１４２】
本実施形態におけるＤＢアクセス検証装置１ａは、制御部３０ａが一括検証制御部３５を備え、設計対象のソフトウェアごとの複数の起点となる設計書情報に対して、一括にデータベースのアクセス検証を実行する点が、第１の実施形態におけるＤＢアクセス検証装置１と異なる。なお、ＤＢアクセス検証装置１ａは、この一括にデータベースのアクセス検証を実行する一括検証モードと、第１の実施形態と同様の起点となる設計書情報が選択された後に検証を実行する選択検証モードとを使用者（ソフトウェアの設計者）からの指定により切り替えて実行してもよい。
【０１４３】
図２２において、ＤＢアクセス検証装置１ａは、設計書記憶部１０、アクセス順序記憶部２０、制御部３０ａ、及び検証記憶部４０ａを備えている。
また、制御部３０ａは、事前チェック部３１、経路抽出部３２、ＤＢアクセス検証部３３、検証結果出力部３４、及び一括検証制御部３５を備えている。
【０１４４】
一括検証制御部３５は、設計書記憶部１０が記憶する設計書情報を解析し、設計対象のソフトウェアにおいて、例えば、オンライン処理設計書情報１１などの起点となる起点設計書情報を抽出する。一括検証制御部３５は、抽出した起点設計書情報を起点として、事前チェック部３１、経路抽出部３２、ＤＢアクセス検証部３３、及び検証結果出力部３４に対して、データベースのアクセス検証を実行させる制御を行う。なお、一括検証制御部３５は、複数の起点設計書情報が抽出された場合に、複数の起点設計書情報のそれぞれに対して、データベースのアクセス検証を実行させる制御を行う。
【０１４５】
また、本実施形態における検証記憶部４０ａは、第１の実施形態において説明した、検証結果シートＳＴ４１及びアクセス情報シートＳＴ４２の他に、図２３に示す一括検証結果シートＳＴ４３を検証結果として記憶している。
図２３は、本実施形態における一括検証結果の一例を示す図である。
図２３に示すように、一括検証結果シートＳＴ４３は、「項番」、「成果物名」、「エラー数」、及び「結果」を有している。ここで、「成果物名」は、例えば、起点設計書情報の名前を示している。また、「エラー数」は、事前チェック部３１による事前チェックにおいてエラーの検出された設計書情報の数を示している。この「エラー数」には、基本情報シートＳＴ２のエラー数とフロー情報シートＳＴ１のエラー数とが含まれる。
【０１４６】
また、「結果」は、データベースのアクセス検証の検証結果を示しており、「○」と、「×」とを含んでいる。なお、「結果」の「○」は、経路抽出部３２によって抽出された経路のうち、“○”と判定された数を示しており、「結果」の「×」は、経路抽出部３２によって抽出された経路のうち、“×”と判定された数を示している。なお、事前チェックでエラーが発生した場合には、ＤＢアクセス検証装置１ａは、データベースのアクセス検証を実行しないため、この場合、「結果」の「○」及び「×」はともに“０”になる。
【０１４７】
なお、図２３に示す例では、「項番」の“１”に対応する「成果物名」が“０１＿処理設計書”であり、「エラー数」の「基本情報」が“２”であり、「エラー数」の「フロー情報」が“０”であることを示している。また、「項番」の“７”に対応する「成果物名」が“○○処理設計書”であり、「エラー数」の「基本情報」及び「フロー情報」が“０”であり、「結果」の「○」が“５”であり、「結果」の「×」が“４”であることを示している。
【０１４８】
次に、本実施形態におけるＤＢアクセス検証装置１ａの動作について説明する。
図２４は、本実施形態における一括検証処理の一例を示すフローチャートである。
図２４において、まず、ＤＢアクセス検証装置１ａの制御部３０ａは、起点設計書情報の抽出処理を実行する（ステップＳ７０１）。具体的に、制御部３０ａの一括検証制御部３５は、例えば、オンライン処理設計書情報１１などの起点となる起点設計書情報を抽出する。
【０１４９】
一括検証制御部３５は、抽出した起点設計書情報に対して、続く、ステップＳ７０３からステップＳ７０６の処理において、データベースのアクセス検証を実行する制御を行う。なお、ステップＳ７０３からステップＳ７０６の処理は、図１３に示すステップＳ１０１からステップＳ１０５の処理と同様であるので、ここでは説明を省略する。
【０１５０】
次に、ステップＳ７０７において、一括検証制御部３５は、次の起点設計書情報があるか否かを判定する。一括検証制御部３５は、次に起点設計書情報がある場合（ステップＳ７０７：ＹＥＳ）に、処理をステップＳ７０８に進める。また、一括検証制御部３５は、次の起点設計書情報がない場合（ステップＳ７０７：ＮＯ）に、処理をステップＳ７０９に進める。
【０１５１】
ステップＳ７０８において、一括検証制御部３５は、起点設計書情報を変更して、処理をステップＳ７０２に戻す。これにより、一括検証制御部３５は、次の起点設計書情報に対するデータベースのアクセス検証を実行する制御を行う。
【０１５２】
また、ステップＳ７０８において、一括検証制御部３５は、一括検証結果を出力して処理を終了する。すなわち、一括検証制御部３５は、図２３に示すような一括検証結果（一括検証結果シートＳＴ４３）を生成し、生成した一括検証結果を検証記憶部４０ａに記憶させる。
【０１５３】
以上説明したように、本実施形態におけるＤＢアクセス検証装置１ａは、一括検証制御部３５を備えている。一括検証制御部３５は、ソフトウェアの所定の単位ごと（例えば、設計対象のソフトウェアごと）の複数の起点となる設計書情報に対して、一括にデータベースのアクセス検証を実行する制御を行う。
これにより、本実施形態におけるＤＢアクセス検証装置１ａ及びデータベースアクセス検証方法は、ソフトウェアの所定の単位ごとに一括してデータベースのアクセス検証を行うことができる。この場合、起点となる設計書情報をデータベースのアクセス検証ごとに選択する必要がなくなるため、本実施形態におけるＤＢアクセス検証装置１ａ及びデータベースアクセス検証方法は、データベースのアクセス検証を実行する期間を短縮することができる。
【０１５４】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、ＤＢアクセス検証装置１（１ａ）が、設計書記憶部１０、アクセス順序記憶部２０、及び検証記憶部４０（４０ａ）を備える場合について説明したが、設計書記憶部１０、アクセス順序記憶部２０、及び検証記憶部４０（４０ａ）を、例えば、サーバ装置などの外部装置が備えてもよい。また、制御部３０（３０ａ）は、例えば、クライアント端末やアプリケーションサーバなどのコンピュータ装置であってもよい。
【０１５５】
また、上記の各実施形態において、設計書記憶部１０、アクセス順序記憶部２０、及び検証記憶部４０（４０ａ）は、個別に構成する場合について説明したが、設計書記憶部１０、アクセス順序記憶部２０、及び検証記憶部４０（４０ａ）のうちのいずれかの組み合わせを１つに構成してもよい。
また、上記の各実施形態において、テーブル単位のアクセス順序を検証する場合について説明したが、テーブル内のカラム単位においてアクセス順序を検証してもよい。
【０１５６】
また、上記の第２の実施形態において、設計書記憶部１０が複数のソフトウェアに対応する設計書情報を記憶している場合に、一括検証制御部３５は、複数のソフトウェアのうちの１つを選択して、選択したソフトウェアに対応して、一括検証モードによりデータベースのアクセス検証を実行してもよい。
【０１５７】
なお、本発明におけるＤＢアクセス検証装置１（１ａ）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したＤＢアクセス検証装置１（１ａ）の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。
なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にＤＢアクセス検証装置１（１ａ）で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１５８】
また、上述した機能の一部または全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１５９】
１、１ａ  ＤＢアクセス検証装置
１０  設計書記憶部
１１  オンライン処理設計書情報
１２  サービス系設計書情報
１３  パラメタライズドロジック設計書情報
２０  アクセス順序記憶部
３０、３０ａ  制御部
３１  事前チェック部
３２  経路抽出部
３３  ＤＢアクセス検証部
３４  検証結果出力部
３５  一括検証制御部
４０、４０ａ  検証記憶部
【図１】
2014167674.tif 000003
【図２】
2014167674.tif 000004
【図３】
2014167674.tif 000005
【図４】
2014167674.tif 000006
【図５】
2014167674.tif 000007
【図６】
2014167674.tif 000008
【図７】
2014167674.tif 000009
【図８】
2014167674.tif 000010
【図９】
2014167674.tif 000011
【図１０】
2014167674.tif 000012
【図１１】
2014167674.tif 000013
【図１２】
2014167674.tif 000014
【図１３】
2014167674.tif 000015
【図１４】
2014167674.tif 000016
【図１５】
2014167674.tif 000017
【図１６】
2014167674.tif 000018
【図１７】
2014167674.tif 000019
【図１８】
2014167674.tif 000020
【図１９】
2014167674.tif 000021
【図２０】
2014167674.tif 000022
【図２１】
2014167674.tif 000023
【図２２】
2014167674.tif 000024
【図２３】
2014167674.tif 000025
【図２４】
2014167674.tif 000026