JP6040055B2 - データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム - Google Patents

データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム Download PDF

Info

Publication number
JP6040055B2
JP6040055B2 JP2013038653A JP2013038653A JP6040055B2 JP 6040055 B2 JP6040055 B2 JP 6040055B2 JP 2013038653 A JP2013038653 A JP 2013038653A JP 2013038653 A JP2013038653 A JP 2013038653A JP 6040055 B2 JP6040055 B2 JP 6040055B2
Authority
JP
Japan
Prior art keywords
information
access
verification
design document
route
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013038653A
Other languages
English (en)
Other versions
JP2014167674A (ja
Inventor
博史 立見
博史 立見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2013038653A priority Critical patent/JP6040055B2/ja
Publication of JP2014167674A publication Critical patent/JP2014167674A/ja
Application granted granted Critical
Publication of JP6040055B2 publication Critical patent/JP6040055B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、データベースアクセス検証方法、データベースアクセス検証装置、及びプログラムに関する。
近年、手作業及び目視によって行っていたソフトウェアの検証を支援する技術が知られている。例えば、特許文献1及び特許文献2には、従来は手作業及び目視によって行っていたシーケンス図の検証を、シーケンス図を解析することにより支援する技術が記載されている。
特開2008−90857号公報 特開2008−197975号公報
ところで、データベースを利用したソフトウェアにおいて、データベースのデッドロックを予防することが重要であり、その検証は、プログラムの実装段階やテスト段階において実装したプログラムを動作させることにより行われることが一般的である。
しかしながら、実装段階やテスト段階における検証では、例えば、データベースのデッドロックが発生することが判明した場合の手戻り工数が大きくなるため、設計段階などの早い時期に検証することが望ましい。ただし、ソフトウェアの設計段階において検証を行う場合には、例えば、手作業及び目視によりデータベースのアクセス順序の確認を行う必要があるため、抜け漏れなく検証することが困難である。また、シーケンス図の検証を支援するための上記の特許文献1及び特許文献2に記載の技術では、データベースのデッドロックを設計段階で検証することはできなかった。
本発明は、上記問題を解決すべくなされたもので、その目的は、設計段階においてデータベースのデッドロックを検証することができるデータベースアクセス検証方法、データベースアクセス検証装置、及びプログラムを提供することにある。
上記問題を解決するために、本発明の一態様は、経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、前記情報処理の経路を抽出する経路抽出ステップと、検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップとを含み、前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出することを特徴とするデータベースアクセス検証方法である。
また、本発明の一態様は、上記のデータベースアクセス検証方法において、前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図に含まれる分岐処理に応じて複数の前記経路を抽出し、前記検証ステップにおいて、前記検証部は、前記複数の経路それぞれに対して、各経路における前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合するか否かを検証することを特徴とする。
また、本発明の一態様は、上記のデータベースアクセス検証方法において、前記基準アクセス順序情報は、データベースのテーブル名と前記テーブル名に対応するアクセス順序を示す順序番号とを含み、前記検証ステップにおいて、前記検証部は、前記経路においてアクセスするデータベースのテーブル名と、前記基準アクセス順序情報において当該テーブル名に対応する前記順序番号とを関連付けたアクセス情報を、前記抽出アクセス順序情報として前記経路の順番に検証記憶部に記憶させ、前記検証記憶部における前記アクセス情報の前記順序番号が昇番順に記憶されている場合に、前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合していると判定することを特徴とする。
また、本発明の一態様は、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出部と、前記経路抽出部によって抽出された前記情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証部とを備え、前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、前記検証部は、前記経路抽出部によって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出することを特徴とするデータベースアクセス検証装置である。
また、本発明の一態様は、コンピュータに、経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出ステップと、検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップとを実行させ、前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出することを実行させるためのプログラムである。
本発明によれば、設計段階においてデータベースのデッドロックを検証することができる。
第1の実施形態によるデータベースアクセス検証装置の一例を示すブロック図である。 本実施形態における設計書記憶部の構成例を示す模式図である。 本実施形態におけるオンライン処理設計書情報のフロー情報シートの一例を示す図である。 本実施形態における解析可能なフローチャート図の種類の一例を示す図である。 本実施形態におけるオンライン処理設計書情報の基本情報シートの一例を示す図である。 本実施形態におけるサービス系設計書情報のフロー情報シートの一例を示す図である。 本実施形態におけるサービス系設計書情報の基本情報シートの一例を示す図である。 本実施形態における取得情報シートの一例を示す図である。 本実施形態における出力情報シートの一例を示す図である。 本実施形態におけるパラメタライズドロジック情報シートの一例を示す図である。 本実施形態における基準アクセス順序情報の一例を示す図である。 本実施形態における検証結果の一例を示す図である。 本実施形態におけるデータベースアクセス検証の手順の一例を示すフローチャートである。 本実施形態における入力情報の事前チェック処理の一例を示すフローチャートである。 本実施形態における経路抽出処理の一例を示すフローチャートである。 本実施形態における分岐パターンの抽出処理の一例を示すフローチャートである。 本実施形態における経路生成処理の一例を示すフローチャートである。 本実施形態における経路抽出の一例を示す模式図である。 本実施形態における経路抽出の別の一例を示す模式図である。 本実施形態におけるアクセス順序の検証処理の一例を示すフローチャートである。 本実施形態におけるアクセス順序の検証処理の一例を示すイメージ図である。 第2の実施形態によるデータベースアクセス検証装置の一例を示すブロック図である。 本実施形態における一括検証結果の一例を示す図である。 本実施形態における一括検証処理の一例を示すフローチャートである。
以下、本発明の一実施形態によるデータベースアクセス検証装置、及びデータベースアクセス検証方法について、図面を参照して説明する。
[第1の実施形態]
図1は、本実施形態によるデータベースアクセス検証装置(DBアクセス検証装置1)の一例を示すブロック図である。なお、以下の説明において、「データベース」を省略して「DB」と表記することがある。
本実施形態におけるDBアクセス検証装置1は、複数の設計書(設計書情報)によって規定されたソフトウェア(システム)において、データベースの手順を検証することにより、ソフトウェアの設計段階でデータベースのデッドロックが発生するか否かを判定することができるソフトウェアの設計支援ツールである。なお、「データベースのデッドロック」とは、複数の処理において、同一のデータベースにアクセスした場合に、互いの処理終了を待ち、結果としてどの処理も先に進めなくなってしまう状態のことである。
なお、本実施形態において、設計対象のソフトウェアは、データベースへのアクセスをデータベース言語(例えば、SQL(エスキューエル))によって実現される。
まず、ここでは、DBアクセス検証装置1が備える各構成の概要について説明する。
図1において、DBアクセス検証装置1は、設計書記憶部10、アクセス順序記憶部20、制御部30、及び検証記憶部40を備えている。
設計書記憶部10は、入力情報となる設計書情報を記憶する。ここで設計書情報とは、設計対象となるソフトウェアにおける情報処理の手順を規定する情報であり、設計者がソフトウェアを設計する際に用いられる設計書としても使用される。設計書記憶部10は、設計対象となるソフトウェアを設計するための複数の設計書情報を記憶している。なお、設計書情報の詳細については、後述する。
アクセス順序記憶部20(順序記憶部)は、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する。ここで、基準アクセス順序情報は、設計対象となるソフトウェアにおいてアクセスするデータベースに対して正しいアクセス順序を示しており、データベースの仕様に応じて、データベースにデッドロックが発生しないアクセス順序を予め定めている。アクセス順序記憶部20は、例えば、データベース名とアクセス順序番号とを関連付けた一覧を基準アクセス順序情報として記憶している。なお、基準アクセス順序情報の詳細については、後述する。
制御部30は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、DBアクセス検証装置1を統括的に制御する。制御部30は、入力情報として設計書記憶部10が記憶する設計書情報と、アクセス順序記憶部20が記憶する基準アクセス順序情報とに基づいて、設計対象のソフトウェアにおけるデータベースへのアクセス順序を検証し、検証結果を出力する。制御部30は、検証結果を出力情報として、検証記憶部40に記憶させる。
また、制御部30は、事前チェック部31、経路抽出部32、DBアクセス検証部33、及び検証結果出力部34を備えている。
事前チェック部31は、データベースのアクセス順序の検証処理を実行するにあたり、設計書記憶部10が記憶する設計書情報である入力情報が、この検証処理を正しく実行できるか否かを判定(チェック)する処理(事前チェック処理)を実行する。
経路抽出部32は、設計書記憶部10から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。経路抽出部32は、設計書情報における処理の分岐や設計書情報から他の設計書情報の参照先などを解析し、情報処理の経路を抽出する。例えば、設計書情報に分岐処理が含まれる場合には、経路抽出部32は、分岐処理に応じて複数の経路を抽出する。
DBアクセス検証部33(検証部)は、経路抽出部32によって抽出された経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部20から取得した基準アクセス順序情報とが整合するか否かを検証する。すなわち、DBアクセス検証部33は、経路抽出部32によって抽出された複数の経路それぞれに対して、データベースのアクセス順序を抽出し、抽出した各経路における抽出アクセス順序情報と、アクセス順序記憶部20から取得した基準アクセス順序情報とが整合するか否かを検証する。
具体的に、DBアクセス検証部33は、例えば、経路抽出部32によって抽出された経路においてアクセスするデータベースのテーブル名を抽出する。また、DBアクセス検証部33は、抽出した当該テーブル名と、アクセス順序記憶部20が記憶する基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、抽出アクセス順序情報として経路の順番に検証記憶部40に記憶させる。そして、DBアクセス検証部33は、経路においてデータベースにアクセスする全てのテーブル名についてのアクセス情報を検証記憶部40に記憶させる。DBアクセス検証部33は、例えば、検証記憶部40におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。また、DBアクセス検証部33は、例えば、検証記憶部40におけるアクセス情報の順序番号が昇番順に記憶されていない場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とにおいて不整合が生していると判定する。
なお、このように不整合が生している場合、設計書情報で規定している手順が正しくないため、データベースにデッドロックが発生する可能性がある。そのため、設計者は、設計対象のソフトウェアにおけるデータベースにデッドロックが発生する可能性を、設計書情報の段階(設計書の段階)、すなわち設計段階で知ることができる。
検証結果出力部34は、DBアクセス検証部33が検証した検証結果を検証記憶部40に記憶させることにより出力する。具体的に、検証結果出力部34は、各経路における抽出アクセス順序情報と、アクセス順序記憶部20から取得した基準アクセス順序情報とが整合するか否かを示す検証結果を検証記憶部40に記憶させる。
検証記憶部40は、データベースのアクセス検証に関する情報を記憶する。検証記憶部40は、例えば、制御部30によって検証された抽出アクセス順序情報を記憶するとともに、その検証結果を記憶する。また、検証記憶部40は、経路抽出部32が抽出した経路を示す経路情報を記憶してもよい。検証記憶部40が記憶する情報の詳細については、後述する。
<設計書情報の構成>
次に、設計書記憶部10が記憶する設計書情報の構成について説明する。
図2は、本実施形態における設計書記憶部10の構成例を示す模式図である。
この図において、設計書記憶部10は、オンライン処理設計書情報11、サービス系設計書情報12、及びパラメタライズドロジック設計書情報13を記憶している。すなわち、設計書情報には、例えば、オンライン処理設計書情報11、サービス系設計書情報12、及びパラメタライズドロジック設計書情報13が含まれる。なお、図2に示す一例では、設計書記憶部10は、オンライン処理設計書情報11、サービス系設計書情報12、及びパラメタライズドロジック設計書情報13のそれぞれを複数記憶する。
オンライン処理設計書情報11は、メッセージの入出力に関連する処理であり、メッセージから処理が開始される情報処理の手順を示す設計書情報である。オンライン処理設計書情報11は、主に起点となる処理を規定する設計書情報であり、オンライン処理設計書情報11から後述するサービス系設計書情報12の処理、又はパラメタライズドロジック設計書情報13の処理に遷移する。例えば、1つのオンライン処理が、1つのトランザクション処理に対応する。オンライン処理設計書情報11は、フロー情報シートST11(フロー情報)と基本情報シートST21(基本情報)とを含み、フロー情報シートST11と基本情報シートST21とが対応付けられている。ここで、「シート」とは、表計算ソフトで用いられる、行と列で構成される表を示すワークシートのことであり、本実施形態において設計書情報は、ワークシートを用いたファイルとして、設計書記憶部10に記憶されている。
また、サービス系設計書情報12は、例えば、各種のサービスの処理を規定する仕様書情報や、所定の処理を行う各種共通部品を規定する共通部品設計書情報などであり、後述する開始端子から処理が開始される情報処理の手順を示す設計書情報である。サービス系設計書情報12は、フロー情報シートST12(フロー情報)と基本情報シートST22(基本情報)とを含んでいる。また、データベースにアクセスする場合には、サービス系設計書情報12は、さらに、取得情報シートST3又は出力情報シートST4を含んでいる。
なお、オンライン処理設計書情報11のフロー情報シートST11と、サービス系設計書情報12のフロー情報シートST12とは、特に区別しない場合、又は、単にフロー情報シートを示す場合には、フロー情報シートST1として説明する。また、オンライン処理設計書情報11の基本情報シートST21と、サービス系設計書情報12の基本情報シートST22とは、特に区別しない場合、又は、単に基本情報シートを示す場合には、基本情報シートST2として説明する。
また、パラメタライズドロジック設計書情報13は、例えば、所定のパラメータに基づいて分岐する処理を規定する仕様書情報であり、パラメタライズドロジック情報シートST5(パラメタライズドロジック情報)を含んでいる。パラメタライズドロジック設計書情報13は、サービス系設計書情報12から参照される設計書情報である。
このように、設計書情報は、複数の設計書情報(オンライン処理設計書情報11、サービス系設計書情報12、及びパラメタライズドロジック設計書情報13)を含んでおり、設計書情報から他の設計書情報を参照することにより、複数の設計書情報により、開発対象のソフトウェア(システム)の処理手順を規定している。
<オンライン処理設計書情報11の構成>
次に、オンライン処理設計書情報11におけるフロー情報シートST11、及び基本情報シートST21の構成について説明する。なお、図3及び図4に示す一例は、「オンライン処理名」が“4_02_オンライン処理”である場合のオンライン処理設計書情報11におけるフロー情報シートST11、及び基本情報シートST21を示している。
図3は、オンライン処理設計書情報11におけるフロー情報シートST11の一例を示す図である。
この図に示すように、フロー情報シートST11は、「章・節・項」と、「オンライン処理名」と、「処理フロー」とを有している。「章・節・項」は、設計書情報の階層構造を示しており、「オンライン処理名」は、この設計書で規定するオンライン処理の処理名を示している。また、「処理フロー」は、情報処理の手順を視覚化したフロー図を含んでいる。図3に示す例では、フロー図として、「1.処理A」を実行するフローチャートF1が書かれて(描画されて)いる。
なお、本実施形態におけるDBアクセス検証装置1により、フロー図をフロー情報として読み込むためには、図4に示すように、予め定められた所定のルールによりフロー図が書かれている必要がある。ここで、本実施形態におけるフロー図の作成ルールについて説明する。
図4は、本実施形態における解析可能なフローチャート図の種類の一例を示す図である。図4(a)における基本図形が「テキストボックス」であり、且つ、「正方形/長方形」の四角形の図形は、「処理」を示し、フローチャートにおいて「処理」を記述する際に使用される。なお、フロー図において、枠線なしのテキストボックスは無視される。
また、図4(b)における「角丸四角形」の四角形の図形は、「代替処理」示し、フローチャートにおいてサービスを呼ぶ際に使用される。
また、図4(c)における基本図形が「ひし形」の図形は、「判断」示し、フローチャートにおいて処理の分岐の際に使用される。
また、図4(d)における基本図形が「台形」の図形は、フローチャートにおいてループの開始点として使用される。
また、図4(e)における「手作業」(逆台形)の図形は、フローチャートにおいてループの終了点として使用される。
また、図4(f)における線「矢印」又は「カギ線矢印コネクター」の図形は、フローチャートにおいて処理を繋ぐコネクターとして使用される。
また、図4(g)における「端子」の図形は、サービス系の設計書情報のフローチャートにおいて開始又は終了に使用される。
また、図4(h)における「結合子」の図形は、他のページのフローチャートとの結合子として使用される。
なお、図4(a)〜(h)以外の図形は、フロー図に書かれていた場合であっても、解析対象にはならずに無視される。
次に、図5を参照して、オンライン処理設計書情報11における基本情報シートST21の構成について説明する。
図5は、オンライン処理設計書情報11における基本情報シートST21の一例を示す図である。
この図に示すように、基本情報シートST21は、情報処理の手順を規定する設計書情報であり、「章・節・項」、「オンライン処理名」、「メッセージ」テーブル、「サービス/部品」テーブル、及び「内容」テーブルを有している。「メッセージ」テーブルは、入力メッセージ又は出力メッセージを規定するテーブルであり、「項番」、「メッセージ名」、「出力条件」、「出力先」、「種別」、「出力単位」、及び「備考」が対応付けられている。
なお、図5に示す一例では、「メッセージ」テーブルにおいて、「項番」の“1”に対応する「メッセージ名」が“入力メッセージ”であり、「項番」の“2”に対応する「メッセージ名」が“出力メッセージ”であることを示している。
また、「サービス/部品」テーブルは、この設計書情報で参照する(呼出す)サービス又は共通部品を規定するテーブルであり、「項番」、「サービス名/部品名」、「種別」、及び「備考」が対応付けられている。
なお、図5に示す一例では、「サービス/部品」テーブルにおいて、「項番」の“1”に対応する「サービス名/部品名」が“4_02_共通サービス”であり、「種別」が“共通サービス”であることを示している。
また、「内容」テーブルは、フロー情報シートST11のフロー図に対応する処理手順を規定するテーブルであり、「項番」、「処理手順」、「詳細」、及び「備考」が対応付けられている。ここで、「項番」及び「処理手順」は、フロー情報シートST11のフロー図の各処理に対応した処理を示し、「詳細」は、当該処理を規定する参照先の仕様書情報を示している。
なお、図5に示す一例では、「内容」テーブルにおいて、「項番」の“1”に対応する「処理手順」が“処理A”であり、「備考」が“共通サービス設計書「4_02_共通サービス」参照”であることを示している。ここで、「備考」の内容は、他のシート又は他の設計書情報への参照先を示している。また、「内容」テーブルにおける「項番」と「処理手順」とは、フロー情報シートST11におけるフローチャートF1の処理手順と一致して作成されている。
このように、設計書記憶部10は、オンライン処理設計書情報11として、フロー情報シートST11と基本情報シートST21とを対応付けて記憶している。
<サービス系設計書情報12の構成>
次に、サービス系設計書情報12におけるフロー情報シートST12、基本情報シートST22、取得情報シートST3、及び出力情報シートST4の構成について説明する。なお、図6〜図9に示す一例は、「サービス名」が“4_02_共通サービス”である場合のサービス系設計書情報12におけるフロー情報シートST12、及び基本情報シートST22を示している。
図6は、サービス系設計書情報12におけるフロー情報シートST12の一例を示す図である。
この図に示すように、フロー情報シートST12は、「章・節・項」と、「サービス名」と、「処理フロー」とを有している。このフロー情報シートST12の構成は、オンライン処理設計書情報11のフロー情報シートST11と同様である。
図6に示す例では、フロー図として、「1.処理A」から「5.処理D」を実行するフローチャートF2が書かれて(描画されて)いる。
なお、フロー情報シートST12において、フロー図をフロー情報として読み込むための所定のルールは、オンライン処理設計書情報11のフロー情報シートST11と同様であり、図4に示すルールに従う必要がある。そのため、フロー情報シートST12において、破線の矢印によって接続されている処理(例えば、「取得テーブル1」などは、DBアクセス検証装置1においては無視され、設計書情報としては読み込まれない。この破線の矢印によって接続されている処理は、設計者が設計書情報を見た場合に、処理を理解し易いように描画されている。
図7は、サービス系設計書情報12における基本情報シートST22の一例を示す図である。
この図に示すように、基本情報シートST22は、情報処理の手順を規定する設計書情報であり、「章・節・項」、「サービス名」、「DBアクセス」テーブル、「部品」テーブル、及び「内容」テーブルを有している。
「DBアクセス」テーブルは、データベースとしてアクセスする「テーブル名」に関する情報を規定するテーブルであり、「項番」、「テーブル名」、「C/R/U/D」、及び「備考」が対応付けられている。ここで、「C/R/U/D」は、アクセスの種別を示しており、「C」が「追加(作成)」、「R」が「参照」、「U」が「更新」、「D」が「削除」を示している。
なお、図7に示す一例では、「DBアクセス」テーブルにおいて、「項番」の“1”に対応する「テーブル名」が“取得テーブル1”であり、「C/R/U/D」が“R”(参照)であることを示している。また、「項番」の“2”に対応する「テーブル名」が“取得テーブル2”であり、「C/R/U/D」が“R”(参照)であることを示している。また、「項番」の“3”に対応する「テーブル名」が“取得テーブル3”であり、「C/R/U/D」が“R”(参照)であることを示している。また、「項番」の“4”に対応する「テーブル名」が“出力テーブル”であり、「C/R/U/D」が“C”(追加)であることを示している。
また、「部品」テーブルは、“4_02_共通サービス”において参照する「部品名」に関する情報を規定するテーブルであり、「項番」、「部品名」、及び「備考」が対応付けられている。
なお、図7に示す一例では、「部品」テーブルにおいて、「部品名」が“5_01_共通部品”、“5_02_共通部品”、“5_03_共通部品”、“5_04_共通部品”、及び“5_05_共通部品”である5つの共通部品を参照する。
また、「内容」テーブルは、フロー情報シートST12のフロー図に対応する処理手順を規定するテーブルであり、「項番」、「処理手順」、「詳細」、及び「備考」が対応付けられている。ここで、「項番」及び「処理手順」は、フロー情報シートST12のフロー図の各処理に対応した処理を示し、「詳細」は、当該処理を規定する参照先の仕様書情報、及びデータベースの取得情報又は出力情報を示している。
なお、図7に示す一例では、「内容」テーブルにおいて、「項番」の“1”に対応する「処理手順」が“データ取得処理”であり、“取得テーブル1”〜“取得テーブル3”の取得情報シートST3を参照することを示している。また、「項番」の“4”に対応する「処理手順」が“処理C”であり、“出力テーブル”の出力情報シートST4を参照することを示している。
図8は、サービス系設計書情報12における取得情報シートST3の一例を示す図である。
この図に示すように、取得情報シートST3は、データベースからの情報の取得に関して規定する設計書情報であり、「章・節・項」、「サービス名」、「取得情報」テーブル、及び「取得項目」テーブルを有している。
「取得情報」テーブルは、「対応処理手順」と、「取得元種別」と、「取得元」と、「アクセス種別」と、「取得件数」とが対応付けられている。ここで、「対応処理手順」は、対応する処理手順を示している。また、「取得元種別」は、取得元の種別を示しており、“DB”(データベース)又は“ファイル”を規定する。また、「取得元」は、情報を取得するテーブル名を示しており、「取得件数」は、情報を取得する件数を示している。また、「アクセス種別」は、情報の取得におけるアクセスの種類(データベースを操作する種類)を示しており、“参照”又は“更新を伴う参照”を規定する。
なお、図8に示す一例では、「取得情報」テーブルにおいて、「対応処理手順」が“取得処理”であり、「取得元種別」が“DB”であり、「取得元」が“取得テーブル1”であり、「アクセス種別」が“参照”であることを示している。
また、上述の「取得元」には、1つ又は複数のテーブル名を設定することが可能である。具体的に複数のテーブル名を設定する場合には、「,」(カンマ)により区切ることにより設定することが可能である。例えば、「取得元」として“取得テーブル1”と“取得テーブル2”の2つを記憶させる場合には、“取得テーブル1,取得テーブル2”とする。この場合、DBアクセス検証部33は、先頭に記載したテーブルから順番にアクセスするとしてアクセス検証を行う。
また、「取得項目」テーブルは、情報として取得する項目に関する情報を規定するテーブルであり、「項番」、「項目名」、「設定内容」、及び「備考」が対応付けられている。
なお、図8に示す一例では、「取得項目」テーブルにおいて、「項番」の“1”に対応する「項目名」が“○○データ”であり、「項番」の“2”に対応する「項目名」が“××データ”であることを示している。
図9は、サービス系設計書情報12における出力情報シートST4の一例を示す図である。
この図に示すように、出力情報シートST4は、データベースへの情報の出力に関して規定する設計書情報であり、「章・節・項」、「サービス名」、「出力情報」テーブル、及び「出力項目」テーブルを有している。
「出力情報」テーブルは、「対応処理手順」と、「出力先種別」と、「出力先」と、「アクセス種別」とが対応付けられている。ここで、「対応処理手順」は、対応する処理手順を示している。また、「出力先種別」は、出力先の種別を示しており、“DB”(データベース)又は“ファイル”を規定する。また、「出力先」は、情報を出力するテーブル名を示している。また、「アクセス種別」は、情報の出力におけるアクセスの種類(データベースを操作する種類)を示しており、“作成”(追加)、“更新”、又は“削除”を規定する。
なお、図9に示す一例では、「出力情報」テーブルにおいて、「対応処理手順」が“出力処理”であり、「出力先種別」が“DB”であり、「出力先」が“出力テーブル”であり、「アクセス種別」が“更新”であることを示している。
また、「出力項目」テーブルは、情報として出力する項目に関する情報を規定するテーブルであり、「項番」、「項目名」、「設定内容」、及び「備考」が対応付けられている。
なお、図9に示す一例では、「出力項目」テーブルにおいて、「項番」の“1”に対応する「項目名」が“データA”であり、「項番」の“2”に対応する「項目名」が“データB”であることを示している。
このように、設計書記憶部10は、サービス系設計書情報12として、フロー情報シートST12と、基本情報シートST22と、取得情報シートST3と、出力情報シートST4とを対応付けて記憶している。また、設計書情報は、情報処理の手順を視覚化したフロー図(例えば、フロー情報シートST12)と、情報処理の手順(例えば、基本情報シートST22の「内容」テーブル)と、情報処理においてアクセスするデータベースのテーブル名及びアクセス種別とを対応付けて含んでいる。ここで、データベースのテーブル名及びアクセス種別には、例えば、基本情報シートST22の「DBアクセス」テーブル、取得情報シートST3の「取得情報」テーブル、出力情報シートST4の「出力情報」テーブルが対応する。
<パラメタライズドロジック設計書情報13の構成>
次に、パラメタライズドロジック設計書情報13におけるパラメタライズドロジック情報シートST5の構成について説明する。
図10は、パラメタライズドロジック設計書情報13におけるパラメタライズドロジック情報シートST5の一例を示す図である。
図10(a)に示すように、パラメタライズドロジック情報シートST5は、パラメタライズドロジック処理に関して規定する設計書情報であり、「章・節・項」、「パラメタライズドロジック名」、及び「マッピング定義」テーブルを有している。
「マッピング定義」テーブルは、「項番」と、「パラメータの組み合わせ」と、「処理ロジック」とが対応付けられている。ここで、「パラメータの組み合わせ」は、分岐に利用するパラメータの組み合わせ(分岐する条件)を示しており、「パラメータの組み合わせ」は、「パラメータ属性1」と、「パラメータ属性2」と、「説明」とを含んでいる。また、「処理ロジック」は、分岐により参照される処理を示している。
なお、図10(a)に示す一例では、「マッピング定義」テーブルにおいて、「項番」の“1”に対応する「パラメータ属性1」が“1”であり、「パラメータ属性2」が“A”であり、「処理ロジック」が“共通部品設計書「A共通部品」参照”であることを示している。また、「項番」の“2”に対応する「パラメータ属性1」が“1”であり、「パラメータ属性2」が“B”であり、「処理ロジック」が“共通部品設計書「B共通部品」参照”であることを示している。また、「項番」の“3”に対応する「パラメータ属性1」が“2”であり、「パラメータ属性2」が“A”であり、「処理ロジック」が“共通部品設計書「C共通部品」参照”であることを示している。
また、図10(b)に示すフローチャートF3は、図10(a)に示されるパラメタライズドロジック情報シートST5により規定されるパラメタライズドロジック処理を示している。フローチャートF3は、パラメタライズドロジック情報シートST5の規定に従い、パラメータ属性の値に応じて、「A共通部品」の処理、「B共通部品」の処理、及び「C共通部品」の処理のいずれか1つの処理に分岐する処理を示している。
なお、本実施形態では、パラメタライズドロジック設計書情報13において、図10(b)に示すようなフロー図を含んでいない。そのため、制御部30の経路抽出部32は、経路を抽出する際に、パラメタライズドロジック情報シートST5に基づいて、図10(b)に示すようなフロー図を生成する。
<基準アクセス順序情報の構成>
次に、アクセス順序記憶部20が記憶する基準アクセス順序情報の構成について説明する。
図11は、本実施形態における基準アクセス順序情報の一例を示す図である。
この図において、アクセス順序記憶部20は、基準アクセス順序情報(アクセス順序情報シートST6)として、「章・節・項」、「サブシステム名」、及びアクセス順序一覧テーブルを記憶している。
アクセス順序一覧テーブルは、データベースのアクセス順序の一覧を示しており、「項番」、「テーブル名」、及び「アクセス順」が対応付けられている。ここで、「テーブル名」は、データベースにおけるテーブル名を示し、「アクセス順」は、アクセスする順序番号を示している。
なお、図11に示す一例では、アクセス順序一覧テーブルにおいて、「項番」の“1”に対応する「テーブル名」が“取得テーブル1”であり、「アクセス順」が“1”であることを示している。また、「項番」の“2”に対応する「テーブル名」が“出力テーブル”であり、「アクセス順」が“2”であることを示している。
また、図11に示す一例では、「項番」と「アクセス順」とが一致している場合の例を示しているが、一致していなくてもよい。
このように、基準アクセス順序情報は、データベースのテーブル名とテーブル名に対応するアクセス順序を示す順序番号とを含んでいる。
<検証結果の構成>
次に、検証記憶部40が記憶する検証結果を示す情報の構成について説明する。
図12は、本実施形態における検証結果の一例を示す図である。
図12(a)は、例えば、或るオンライン処理設計書情報11における検証結果の一例を示している。図12(a)において、検証結果は、検証結果シートST41として検証記憶部40に記憶されている。
検証結果シートST41は、「経路」、「判定」、「C/R/U/D」、「テーブル経路」、及び「処理経路のハッシュ値」を有している。ここで、「経路」は、経路抽出部32によって抽出された情報処理の経路を示している。DBアクセス検証部33は、複数の経路それぞれに対して、データベースのアクセス順序の検証を実行するため、検証結果シートST41には、複数の経路に対応する検証結果が含まれる。
また、「判定」は、データベースのアクセス順序の判定結果を示し、「ツール」と「目視」との2つの判定結果を含んでいる。なお、「ツール」は、本実施形態におけるDBアクセス検証装置1による判定結果を示し、「目視」は、人手による判定結果を別途記入するための記入欄を示している。DBアクセス検証部33は、データベースへのアクセス順序が昇番順である場合に、「ツール」を“○”と判定し、昇番順でない場合に、「ツール」を“×”と判定する。
また、「C/R/U/D」は、各アクセス種別におけるデータベースへのアクセス回数を示し、「追加」(作成)、「参照」、「更新」、及び「削除」におけるアクセス回数を含んでいる。また、「テーブル経路」は、各経路におけるテーブルのアクセス順の一覧を示している。なお、「テーブル経路」において、“()”(カッコ)は、ループ内でのアクセス順を示している。また、「処理経路のハッシュ値」は、例えば、“設計書名+処理名+テーブル名”を、ハッシュ関数SHA1(Secure Hash Algorithm 1)を使用して算出したハッシュ値を示している。
なお、図12(a)に示す一例では、検証結果シートST41において、「経路」が“経路1”に対応する「判定」の「ツール」が“○”であり、「テーブル経路」が“1,2”であることを示している。この場合、DBアクセス検証部33は、“1,2”が昇番順であるため、「判定」の「ツール」を“○”と判定する。また、「経路」が“経路3”に対応する「判定」の「ツール」が“×”であり、「テーブル経路」が“1,2,(9,20,13),22,23,25”であることを示している。この場合、DBアクセス検証部33は、“1,2,(9,20,13),22,23,25”が昇番順でないため、「判定」の「ツール」を“×”と判定する。
また、上述した「処理経路のハッシュ値」は、検証結果出力部34によって算出され、アクセス順序の検証処理と検証結果に基づく設計書情報の修正(更新)とが繰り返し実行される場合に、効率よく修正(更新)した設計書情報を含む経路の検証結果を発見するために用いる。例えば、検証結果出力部34は、「処理経路のハッシュ値」に基づいて、修正(更新)した設計書情報を含む経路を抽出し、修正(更新)した設計書情報を含む経路の検証結果一覧を検証結果として生成してもよい。
具体的に、検証結果出力部34は、例えば、1つの経路内の全ての「設計書名」、「処理項番」、「処理名」、「テーブル名」、「アクセス種別」、及び「順序」を羅列した文字列でハッシュ値を算出する。例えば、図12(b)に示す場合には、検証結果出力部34は、「処理A設計書,1.○○処理サービス,更新を伴う参照,取得テーブル1,1,処理A設計書,1.○○処理サービス,更新を伴う参照,出力テーブル,2,処理A設計書,ループ1start…」のハッシュ値を算出する。
また、検証結果は、図12(b)に示すような各経路におけるアクセス情報の一覧を含んでもよい。検証記憶部40は、図12(b)に示すようなアクセス情報シートST42を検証結果として記憶している。なお、図12(b)に示すアクセス情報シートST42は、1つの経路に対するものであり、検証記憶部40は、各経路に対応するアクセス情報シートST42を複数記憶している。
アクセス情報シートST42は、「設計書名」、「処理項番」、「処理名」、「DBアクセス」、及び「順序」を関連付けたアクセス情報と、「結果」とを有し、このアクセス情報が経路の順番に記憶されている。ここで、「設計書名」は、解析(検証)した設計書名、又は参照先設計書名を示し、「DBアクセス」は、アクセス先の「テーブル名」と「アクセス種別」とを示している。また、「順番」は、基準アクセス順序情報(アクセス順序情報シートST6)において、「テーブル名」に対応する「アクセス順」の番号を示している。
なお、本実施形態では、1つのデータベースは、1つのサブシステム内で使用されることを前提とする。そのため、「テーブル名」が、起点となる設計書情報(起点設計書情報)から取得したサブシステム以外のテーブルである場合に、「順番」には、“−”又は“×”が記憶される。例えば、取得したサブシステム以外のテーブルであり、且つ「アクセス種別」が“参照”である場合、DBアクセス検証部33は、「順番」に“−”を記憶させる。また、例えば、取得したサブシステム以外のテーブルであり、且つ「アクセス種別」が“追加”、“更新”、又は“削除”である場合、DBアクセス検証部33は、「順番」に“×”を記憶させる。
また、「結果」は、経路抽出部32が抽出したこの経路におけるアクセス手順が、基準アクセス順序情報と整合しているか否かを判定した検証結果を示している。DBアクセス検証部33は、例えば、「順序」が昇番順である場合に、この経路におけるアクセス手順が、基準アクセス順序情報と整合していると判定し、検証結果出力部34は、「結果」に“○”を記憶させる。また、DBアクセス検証部33は、例えば、「順序」が昇番順でない場合に、この経路におけるアクセス手順が、基準アクセス順序情報と整合していないと判定し、検証結果出力部34は、「結果」に“×”を記憶させる。
なお、図12(b)に示す一例では、アクセス情報シートST42において、「順序」が昇番順であるので、「結果」が“○”であることを示している。
また、DBアクセス検証部33は、「順序」が“−”である場合には、この判定から除外する。また、DBアクセス検証部33は、「順序」が“×”である場合には、この経路におけるアクセス手順が、基準アクセス順序情報と整合していないと判定し、検証結果出力部34は、「結果」に“×”を記憶させる。このように、本実施形態では、データベースからのデータ取得するアクセス検証と、データベースへのデータ出力するアクセス検証とを個別に判定基準を設けることができる。
次に、本実施形態におけるDBアクセス検証装置1の動作について説明する。
図13は、本実施形態におけるDBアクセス検証の手順の一例を示すフローチャートである。なお、図13に示すフローチャートの処理は、起点となる設計書情報が選択された後に開始される。
この図において、まず、DBアクセス検証装置1の制御部30は、入力情報の事前チェック処理を実行する(ステップS101)。具体的に、制御部30の事前チェック部31は、DBアクセス検証を実行する上で入力情報が正しく読み込める状態であることをチェックする。すなわち、事前チェック部31は、設計書記憶部10が記憶する設計書情報を正しく解析できる状態にあるか否かをチェックする。なお、入力情報の事前チェック処理の詳細については、図14を参照して後述する。
次に、制御部30は、事前チェックがOK(問題ない)か否かを判定する(ステップS102)。すなわち、制御部30は、事前チェック部31による事前チェックの結果に基づいて、事前チェックが問題ないか否かを判定する。制御部30は、事前チェックが問題ない場合(ステップS102:YES)に、処理をステップS103に進める。また、制御部30は、事前チェックが問題ありである場合(ステップS102:NO)に、DBアクセス検証の処理を終了させる。
次に、ステップS103(経路抽出ステップ)において、経路抽出部32は、設計書情報に基づいて経路を抽出する(経路抽出処理)。経路抽出部32は、設計書記憶部10から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。具体的に、経路抽出部32は、設計書情報に含まれるフロー情報シートST1(フロー図)と、基本情報シートST2(情報処理の手順)とに基づいて、経路を抽出する。ここで、経路抽出部32は、フロー情報シートST1に含まれる分岐処理に応じて複数の経路を抽出する。なお、この経路抽出処理の詳細については、図15を参照して後述する。
次に、DBアクセス検証部33は、経路抽出部32が抽出した経路に基づいて、アクセス順序の検証処理を実行する(ステップS104:検証ステップ)。DBアクセス検証部33は、経路抽出部32によって抽出された経路における抽出アクセス順序情報と、アクセス順序記憶部20から取得した基準アクセス順序情報とが整合するか否かを検証する。
具体的に、DBアクセス検証部33は、経路抽出部32によって抽出された経路と、情報処理の手順(基本情報シートST2の「内容」テーブル)と、テーブル名及びアクセス種別とに基づいて経路における抽出アクセス順序情報を抽出する。DBアクセス検証部33は、抽出した抽出アクセス順序情報と、アクセス順序記憶部20から取得した基準アクセス順序情報とが整合するか否かを検証する。なお、このアクセス順序の検証処理の詳細については、図20及び図21を参照して後述する。
次に、検証結果出力部34は、検証結果を出力する(ステップS105)。すなわち、検証結果出力部34は、DBアクセス検証部33によって検証された検証結果(例えば、図12に示す検証結果シートST41及びアクセス情報シートST42)を出力情報として、検証記憶部40に記憶させる。
<入力情報の事前チェック処理>
次に、図13のステップS101における処理である入力情報の事前チェック処理の詳細な手順について説明する。
図14は、本実施形態における入力情報の事前チェック処理の一例を示すフローチャートである。
この図において、まず、事前チェック部31は、基本情報(基本情報シートST2)があるか否かを判定する(ステップS201)。すなわち、事前チェック部31は、起点となる設計書情報及び参照される設計書情報を含む各種設計書情報の各基本情報シートST2が設計書記憶部10に記憶されているか否かを判定する。事前チェック部31は、各種設計書情報の各基本情報シートST2が設計書記憶部10に記憶されている場合(ステップS201:YES)に処理をステップS202に進める。また、事前チェック部31は、各種設計書情報の各基本情報シートST2が設計書記憶部10に記憶されていない場合(ステップS201:NO)に処理を終了させる。
次に、ステップS202において、事前チェック部31は、フロー情報(フロー情報シートST1)があるか否かを判定する。すなわち、事前チェック部31は、起点となる設計書情報及び参照される設計書情報を含む各種設計書情報のフロー情報シートST1が設計書記憶部10に記憶されているか否かを判定する。事前チェック部31は、各種設計書情報のフロー情報シートST1が設計書記憶部10に記憶されている場合(ステップS202:YES)に処理をステップS203に進める。また、事前チェック部31は、各種設計書情報のフロー情報シートST1が設計書記憶部10に記憶されていない場合(ステップS202:NO)に処理を終了させる。
次に、ステップS203において、事前チェック部31は、基本情報(基本情報シートST2)のチェック処理を実行する。すなわち、事前チェック部31は、各基本情報シートST2の「内容」テーブルの情報に問題がないかをチェックする。
具体的に、事前チェック部31は、「内容」テーブルの「順番」及び「詳細」に記憶されている情報があるか否かをチェックする。
なお、事前チェック部31は、基本情報シートST2に問題がある場合に、問題がある箇所及び問題の内容を含む警告情報を検証記憶部40に記憶させることにより出力してもよい。
次に、事前チェック部31は、フロー情報(フロー情報シートST1)のチェック処理を実行する(ステップS204)。すなわち、事前チェック部31は、各フロー情報シートST1の「処理フロー」(フロー図)に問題がないかをチェックする。
具体的に、事前チェック部31は、「処理フロー」(フロー図)の以下に示す項目をチェックする。
(1)図形を接続するコネクターが正しく接続されているか否か。
(2)コネクターの形状が矢印の形状になっているか否か。
事前チェック部31は、例えば、コネクターの形状が両端とも矢印、又は矢印なしである場合に、問題がある(エラー)と判定する。
(3)図4(h)示す「結合子」がある場合に、呼び先の「結合子」に対応する呼ばれ先の「結合子」があるか否か。
(4)図形の処理内容に記載されている順番が、基本情報シートST2の「内容」テーブルの「順番」に存在しているか否か。
(5)図形の処理内容が、「順番.処理手順」(例えば「1.処理A」など)の様式で記載されているか否か。
なお、事前チェック部31は、フロー情報シートST1に問題がある場合に、問題がある箇所及び問題の内容を含む警告情報を検証記憶部40に記憶させることにより出力してもよい。
事前チェック部31は、フロー情報シートST1のチェック処理を実行して、入力情報の事前チェック処理を終了する。
<経路抽出処理>
次に、図13のステップS103における処理である経路抽出処理の詳細な手順について説明する。
図15は、本実施形態における経路抽出処理の一例を示すフローチャートである。
この図において、まず、経路抽出部32は、サブシステムを取得する(ステップS301)。すなわち、経路抽出部32は、起点となる設計書情報の基本情報シートST2に基づいてサブシステム名を取得する。
次に、経路抽出部32は、アクセス順序記憶部20が記憶する基準アクセス順序情報を取得する(ステップS302)。
次に、経路抽出部32は、基準アクセス順序情報が取得できたか否かを判定する(ステップS303)。経路抽出部32は、ステップS302において基準アクセス順序情報が取得できた場合(ステップS303:YES)に、処理をステップS304に進める。また、経路抽出部32は、ステップS302において基準アクセス順序情報が取得できなかった場合(ステップS303:NO)に、経路抽出処理を終了させる。
次に、ステップS304において、経路抽出部32は、元設計書情報の解析処理を実行する。すなわち、経路抽出部32は、起点となる設計書情報(元設計書情報)のフロー情報シートST1と基本情報シートST2とを解析する。経路抽出部32は、例えば、フロー図において、各アイテム(フローの図形)を読み込んで矢印を解析し、起点となるアイテムを検出する。なお、経路抽出部32は、経路作成の開始点として、起点となるアイテムの上位にダミー用親アイテム(仮想の開始アイテム)を作成する。このダミー用親アイテムは、起点となるアイテムの形状がフローにより様々であるため、経路作成の開始点を統一する目的により作成される。
次に、経路抽出部32は、参照設計書情報の解析処理を実行する(ステップS305)。すなわち、経路抽出部32は、元設計書情報から順に参照される参照設計書情報のフロー情報シートST1と基本情報シートST2とを解析する。経路抽出部32は、例えば、フロー図において、各アイテムを読み込んで矢印を解析し、起点となるアイテムを検出する。なお、経路抽出部32は、参照設計書情報についても元設計書情報と同様に、経路作成の開始点として、起点となるアイテムの上位にダミー用親アイテム(仮想の開始アイテム)を作成する。
次に、経路抽出部32は、基本情報シートST2の参照先を解析し、解析していない参照先があるか否かを判定する(ステップS306)。経路抽出部32は、解析していない参照先がある場合(ステップS306:YES)に、処理をステップS305に戻して、参照設計書情報の解析処理を繰り返す。また、経路抽出部32は、解析していない参照先がある場合(ステップS306:NO)に、処理をステップS307に進める。
次に、ステップS307において、経路抽出部32は、分岐パターンの抽出処理を実行する。すなわち、経路抽出部32は、解析した元設計書情報、及び参照設計書情報に含まれる分岐処理を抽出し、分岐パターン(分岐の組み合わせパターン)を作成する。なお、この分岐パターンの抽出処理(第1の抽出ステップの処理)の詳細については、図16を参照して後述する。
次に、経路抽出部32は、分岐パターンに基づいて、経路を抽出する経路生成処理を実行する(ステップS308)。すなわち、経路抽出部32は、分岐パターンに応じた複数の経路を生成し、処理を終了する。なお、この経路生成処理(第2の抽出ステップの処理)の詳細については、図17を参照して後述する。
<分岐パターンの抽出処理>
次に、図15のステップS307における処理である分岐パターンの抽出処理の詳細な手順について説明する。
図16は、本実施形態における分岐パターンの抽出処理の一例を示すフローチャートである。
この図において、まず、経路抽出部32は、1経路に分岐が最大何回あるかを算出する(ステップS401)。すなわち、経路抽出部32は、起点となる起点設計書情報から全ての参照設計書情報の分岐を抽出し、分岐が最大何回あるかを算出する。経路抽出部32は、例えば、起点設計書情報から全ての参照設計書情報の分岐の数、参照設計書情報の数、及び参照設計書情報が呼び出される回数に基づいて、分岐の最大回数を算出する。
次に、経路抽出部32は、1回の経路で通過する分岐の一覧を生成する(ステップS402)。経路抽出部32は、上述した分岐の最大回数分、分岐が実行されると仮定して、全分岐パターンを算出し、分岐の一覧を生成する。例えば、2つの経路に分岐する分岐が3回ある場合に、全分岐パターンの数は、3つの分岐(例、「分岐A」、「分岐B」、「分岐C」)のうちのいずれかを3回呼び出し組み合わせになるため、下記の式(1)に示すように216通りとなる。
2×2×2×3×3×3=216通り ・・・ (1)
次に、経路抽出部32は、最初の分岐、及び起点設計書情報の分岐を抽出する(ステップS403)。経路抽出部32は、起点設計書情報から順に参照設計書情報を解析し、最初の分岐、及び起点設計書情報の分岐を抽出する。
次に、経路抽出部32は、分岐パターンの組み合わせを作成する(ステップS404)。具体的に、経路抽出部32は、次の2つの仕組みを利用して、分岐の一覧から組み合わせを絞り込むことにより、分岐パターンの組み合わせを作成する。
まず、経路抽出部32は、最初の分岐は不変であることを利用して、組み合わせを絞り込む。例えば、上述した例において、「分岐A」が最初の分岐である場合、分岐パターンの組み合わせは、下記の式(2)に示すように72通りとなる。
2×2×2×1×3×3=72通り ・・・ (2)
さらに、経路抽出部32は、起点設計書情報の分岐は1回しか通過しないことを利用して、組み合わせを絞り込む。例えば、上述した例において、「分岐B」及び「分岐C」が起点設計書情報の分岐である場合、分岐パターンの組み合わせは、下記の式(3)に示すように16通りとなる。この場合、分岐の経路は、「分岐A」→「分岐B」→「分岐C」と、「分岐A」→「分岐C」→「分岐B」との2つになる。
2×2×2×1×2×1=16通り ・・・ (3)
このように、経路抽出部32は、組み合わせを絞り込むことにより、分岐パターンの組み合わせを作成する。これにより、組み合わせパターンが低減されるので、本実施形態におけるDBアクセス検証装置1は、後述する経路生成処理の際に、使用する記憶部の記憶容量を低減することができる。また、DBアクセス検証装置1は、演算量を低減できるので処理時間の短縮することができる。
<経路生成処理>
次に、図15のステップS308における処理である経路生成処理の詳細な手順について説明する。
図17は、本実施形態における経路生成処理の一例を示すフローチャートである。
なお、図17に示す処理は、分岐パターンの組み合わせのうちの1つに対して実行される処理であり、経路抽出部32は、図17に示す処理を、分岐パターンの組み合わせそれぞれに対して順番に実行することにより、複数の経路を抽出する。
この図において、まず、経路抽出部32は、分岐ポインタを初期化する(ステップS501)。ここで、分岐ポインタとは、分岐パターンによる分岐の経路において、どの分岐を探索しているかを示す情報である。経路抽出部32は、例えば、分岐ポインタの値を“0”にし、上述したダミー用親アイテムから経路生成処理を開始する。
次に、経路抽出部32は、アイテム(フローアイテム)を読み込む(ステップS502)。すなわち、経路抽出部32は、フロー情報シートST1のフロー図のアイテムを読み込む。
次に、経路抽出部32は、読み込んだアイテムが分岐であるか否かを判定する(ステップS503)。経路抽出部32は、読み込んだアイテムが分岐である場合(ステップS503:YES)に、処理をステップS504に進める。また、経路抽出部32は、読み込んだアイテムが分岐でない場合(ステップS503:NO)に、処理をステップS505に進める。
次に、ステップS504において、経路抽出部32は、分岐が正しい分岐であるか否かを判定する。すなわち、経路抽出部32は、上述した分岐パターンの抽出処理によって抽出された分岐パターンの経路に従った分岐であるか否かを判定する。経路抽出部32は、分岐が正しい分岐である場合(ステップS504:YES)に、処理をステップS505に進める。また、経路抽出部32は、分岐が正しい分岐でない場合(ステップS504:NO)に、処理をステップS510に進める。
次に、ステップS505において、経路抽出部32は、他の設計書情報(参照設計書情報)に遷移するか否かを判定する。経路抽出部32は、他の設計書情報(参照設計書情報)に遷移する場合(ステップS505:YES)に、処理をステップS506に進める。また、経路抽出部32は、他の設計書情報(参照設計書情報)に遷移しない場合(ステップS505:NO)に、処理をステップS511に進める。
次に、ステップS506において、経路抽出部32は、フローアイテムが前のフローアイテムと接続されているか否かを判定する。すなわち、経路抽出部32は、ステップS502において読み込んだフローアイテムが、これまで辿ってきた経路に接続されたものであるか否かを判定する。経路抽出部32は、フローアイテムが前のフローアイテムと接続されている場合(ステップS506:YES)に、辿ってきた経路が正しいと判定し、処理をステップS507に進める。また、経路抽出部32は、フローアイテムが前のフローアイテムと接続されていない場合(ステップS506:NO)に、辿ってきた経路が正しくないと判定し、処理をステップS510に進める。
次に、ステップS507において、経路抽出部32は、フローアイテム経路として採用する。すなわち、経路抽出部32は、ステップS502において読み込んだフローアイテムを経路に追加する。
次に、経路抽出部32は、分岐ポインタを更新する(ステップS508)。すなわち、経路抽出部32は、次の分岐の探索に移すために、分岐ポインタに“1”を加算する(インクリメントする)。
次に、経路抽出部32は、参照元設計書情報を検証記憶部40に記憶させる(ステップS509)。ここで、参照元設計書情報とは、参照元の設計書情報を識別するための情報であり、経路抽出部32は、参照元設計書情報を戻り先の情報として、検証記憶部40に記憶させる。
次に、経路抽出部32は、次のフローアイテムがあるか否かを判定する(ステップS510)。経路抽出部32は、次のフローアイテムがある場合に、処理をステップS502に戻し、次のフローアイテムを読み込む。また、経路抽出部32は、次のフローアイテムがない場合に、処理を終了する。これにより、経路抽出部32は、1つの経路の分岐パターンに沿った経路の作成が終了する。なお、経路抽出部32は、次の分岐パターンについては、再度、ステップS501からの経路生成処理を実行する。
また、他の設計書情報(参照設計書情報)に遷移しない場合のステップS511において、経路抽出部32は、フローアイテムが前のフローアイテムと接続されているか否かを判定する。この処理は、上述したステップS506の処理と同様である。経路抽出部32は、フローアイテムが前のフローアイテムと接続されている場合(ステップS511:YES)に、辿ってきた経路が正しいと判定し、処理をステップS512に進める。また、経路抽出部32は、フローアイテムが前のフローアイテムと接続されていない場合(ステップS511:NO)に、辿ってきた経路が正しくないと判定し、処理をステップS510に進める。
次に、ステップS512において、経路抽出部32は、他の仕様書情報(参照設計書情報)からの戻りか否かを判定する。経路抽出部32は、他の設計書情報(参照設計書情報)からの戻りである場合(ステップS512:YES)に、処理をステップS513に進める。また、経路抽出部32は、他の設計書情報(参照設計書情報)からの戻りでない場合(ステップS512:NO)に、処理をステップS514に進める。
次に、ステップS513において、経路抽出部32は、記憶した参照元設計書情報を検証記憶部40から削除する。ここでは、他の設計書情報(参照設計書情報)からの戻って来たため、経路抽出部32は、ステップS509において検証記憶部40記憶させた参照元設計書情報を削除する。
次に、ステップS514において、経路抽出部32は、フローアイテム経路として採用する。すなわち、経路抽出部32は、ステップS502において読み込んだフローアイテムを経路に追加する。
次に、経路抽出部32は、分岐ポインタを更新する(ステップS515)。すなわち、経路抽出部32は、次の分岐の探索に移すために、分岐ポインタに“1”を加算する(インクリメントする)。経路抽出部32は、ステップS515の処理が終了した後に、処理をステップS510に進める。
次に、経路抽出部32が上述した経路抽出処理により抽出した経路の例について説明する。
図18及び図19は、本実施形態もおける経路抽出の一例を示す模式図である。
図18に示す例は、処理の分岐のない場合の一例を示している。図18(a)は、フロー情報シートST1の「処理フロー」を示し、フローチャートF4は、「1.読込処理」→「2.書込処理」→「3.更新処理」の手順を示している。経路抽出部32は、フロー情報シートST1及び基本情報シートST2を解析し、図18(b)に示すような経路を示す情報を生成する。そして、経路抽出部32は、図18(b)に示す情報に基づいて、図18(c)に示すような経路を作成し、検証記憶部40に記憶させる。
また、図19に示す例は、処理に分岐を含む場合の一例を示している。図19(a)は、フロー情報シートST1の「処理フロー」を示し、フローチャートF5は、「1.処理A」、「分岐」、「2.処理B」、「3.処理C」、及び「4.処理D」を有する処理の手順を示している。この場合、経路K1と経路K2との2つの経路が考えられる。経路抽出部32は、フロー情報シートST1及び基本情報シートST2を解析し、経路K1と経路K2との分岐パターンを生成する。そして、経路抽出部32は、生成した分岐パターンに基づいて、図19(b)に示す「経路1」と、図19(c)に示す「経路2」とを作成する。ここで、「経路1」は、「1.処理A」→「2.処理B」→「4.処理D」となる経路であり、「経路2」は、「1.処理A」→「2.処理C」→「4.処理D」となる経路である。経路抽出部32は、作成した経路(「経路1」及び「経路2」)を検証記憶部40に記憶させる。
<アクセス順序の検証処理>
次に、図13のステップS105における処理であるアクセス順序の検証処理の詳細な手順について説明する。
図20は、本実施形態におけるアクセス順序の検証処理の一例を示すフローチャートである。また、図21は、本実施形態におけるアクセス順序の検証処理の一例を示すイメージ図である。
なお、図20に示す処理は、経路抽出部32が抽出した複数の経路のうちの1つに対して実行される処理であり、DBアクセス検証部33は、図20に示す処理を、複数の経路それぞれに対して順番に実行することにより、複数の経路におけるアクセス順序を検証する。
図20において、まず、DBアクセス検証部33は、経路の起点における処理の番号を取得する(ステップS601)。すなわち、DBアクセス検証部33は、起点となる起点設計書情報のフロー情報シートST1における最初の処理の「番号」を取得する。例えば、図21(a)に示すフロー情報シートST1では、フローチャートF6の起点となる処理は、「1.○○処理サービス」であり、この場合、DBアクセス検証部33は、「番号」として“1”を取得する。
次に、DBアクセス検証部33は、取得した「番号」を基本情報シートST2の内容テーブルから検索する(ステップS602)。例えば、上述の取得した「番号」が“1”である場合、DBアクセス検証部33は、図21(b)に示すように、基本情報シートST2(「内容」テーブル)の「順番」における“1”を検索する。この場合、「順番」が“1”である「処理手順」は、“○○処理サービス”に対応する。
次に、DBアクセス検証部33は、該当する詳細欄(「詳細」)の文字列を解析する(ステップS603)。すなわち、DBアクセス検証部33は、取得した「番号」に該当する「内容」テーブルにおける処理の「詳細」に記憶されている参照先を解析する。なお、図21(b)に示す例では、「詳細」は、“取得情報(取得テーブル1)参照”という文字列が記憶されている。
次に、DBアクセス検証部33は、文字列がDB(データベース)に対する参照であるか否かを判定する(ステップS604)。すなわち、DBアクセス検証部33は、「詳細」の文字列が示す参照先が、取得情報シートST3又は出力情報シートST4であるか否かを判定する。なお、文字列には、参照先が取得情報シートST3である場合、「取得情報」が含まれ、参照先が出力情報シートST4である場合、「出力情報」が含まれる。
例えば、図21(b)に示す例では、「順番」が“1”に対応する「詳細」には、文字列“取得情報(取得テーブル1)参照”が記憶されており、この場合、取得情報シートST3を参照していることを示している。
DBアクセス検証部33は、文字列がDB(データベース)に対する参照である場合(ステップS604:YES)に、処理をステップS605に進める。また、DBアクセス検証部33は、文字列がDB(データベース)に対する参照でない場合(ステップS604:NO)に、処理をステップS607に進める。
次に、ステップS605において、DBアクセス検証部33は、参照先の情報シートからテーブル名(「取得元」)と「アクセス種別」とを取得する。例えば、図21(c)に示す例では、DBアクセス検証部33は、参照先の情報シートである取得情報シートST3から、テーブル名として“取得テーブル1”を取得し、「アクセス種別」として“更新を伴う参照”を取得する。なお、上述したように、取得情報シートST3は、複数のテーブル名(「取得元」)を設定することが可能である。DBアクセス検証部33は、取得情報シートST3に複数のテーブル名(「取得元」)が設定されている場合には、先頭のテーブル名から順番に、複数のテーブル名を取得する。
次に、DBアクセス検証部33は、基準アクセス順序情報から該当テーブルの順序番号を取得する(ステップS606)。すなわち、DBアクセス検証部33は、アクセス順序記憶部20が記憶する基準アクセス順序情報(図11のST6)からステップS605において取得したテーブル名に対応する「アクセス順」(順序番号)を所得する。例えば、図11に示す基準アクセス順序情報では、“取得テーブル1”に対応する「アクセス順」は、“1”であり、DBアクセス検証部33は、順序番号として“1”を取得する。
次に、DBアクセス検証部33は、抽出アクセス順序情報を検証記憶部40に記憶させる(ステップS607)。具体的に、DBアクセス検証部33は、図12(b)に示すように、取得した「処理手順」(処理名)と、「アクセス種別」と、テーブル名と、「アクセス順」(順序番号)とを対応付けてアクセス情報として検証記憶部40に記憶させる。このように、DBアクセス検証部33は、経路においてアクセスするデータベースのテーブル名と、基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、抽出アクセス順序情報として経路の順番に検証記憶部40に記憶させる。
次に、DBアクセス検証部33は、経路の次の処理があるか否かを判定する(ステップS608)。すなわち、DBアクセス検証部33は、経路抽出部32が抽出した経路に基づいて、次の処理があるか否かを判定する。DBアクセス検証部33は、次の処理がある場合(ステップS608:YES)に、処理をステップS609に進める。また、DBアクセス検証部33は、次の処理がない場合(ステップS608:NO)に、処理をステップS610に進める。
次に、ステップS609において、DBアクセス検証部33は、次の処理の番号を取得する。すなわち、DBアクセス検証部33は、経路抽出部32が抽出した経路における次野の処理の「番号」を取得し、処理をステップS602に戻す。
また、ステップS610において、DBアクセス検証部33は、テーブルの順序番号が昇番順であるか否かを判定する。なお、この場合は、次の処理がない場合であり、1つの経路の抽出アクセス順序情報の抽出が完了した状態である。DBアクセス検証部33は、図12(b)に示すような、検証記憶部40が記憶するアクセス情報シートST42を参照し、「アクセス順」(順序番号)が昇番順であるか否かを判定する。DBアクセス検証部33は、「アクセス順」(順序番号)が昇番順である場合(ステップS610:YES)に、処理をステップS611に進める。また、DBアクセス検証部33は、「アクセス順」(順序番号)が昇番順でない場合(ステップS610:NO)に、処理をステップS612に進める。
ステップS611において、DBアクセス検証部33は、抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定し、検証結果出力部34が、検証結果を検証記憶部40に記憶させる。検証結果出力部34が検証結果を検証記憶部40に記憶させた後に、DBアクセス検証部33は、アクセス順序の検証処理を終了する。なお、検証結果出力部34が記憶させる検証結果は、例えば、アクセス情報シートST42の「結果」である。
このように、DBアクセス検証部33は、検証記憶部40におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。
また、ステップS612において、DBアクセス検証部33は、抽出アクセス順序情報と、基準アクセス順序情報とが整合していない(不整合である)と判定し、検証結果出力部34が、検証結果を検証記憶部40に記憶させる。検証結果出力部34が検証結果を検証記憶部40に記憶させた後に、DBアクセス検証部33は、アクセス順序の検証処理を終了する。
なお、上述したように、DBアクセス検証部33は、図20に示すアクセス順序の検証処理を、複数の経路それぞれに対して順番に実行する。全ての経路に対してアクセス順序の検証処理が完了した場合に、検証結果出力部34は、各経路に対応するアクセス情報シートST42に基づいて、各経路に対応する検証結果シートST41の情報を生成する。そして、検証結果出力部34は、生成した検証結果シートST41の情報を検証記憶部40に記憶させる。
以上説明したように、本実施形態におけるデータベースアクセス検証方法は、経路抽出ステップと、検証ステップとを含んでいる。経路抽出ステップにおいて、経路抽出部32が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部10から設計書情報を取得し、取得した設計書情報に基づいて、情報処理の経路を抽出する。そして、検証ステップにおいて、DBアクセス検証部33(検証部)が、経路抽出ステップによって抽出された経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部20(順序記憶部)から取得した基準アクセス順序情報とが整合するか否かを検証する。なお、アクセス順序記憶部20は、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する。
これにより、設計段階(例えば、設計書の段階)においてデータベースにアクセスする順序を検証することができるので、本実施形態におけるデータベースアクセス検証方法は、設計段階においてデータベースのデッドロックを検証することができる。また、本実施形態におけるデータベースアクセス検証方法は、データベースのアクセス検証を経路抽出部32及びDBアクセス検証部33により実行されるので、例えば、手作業及び目視によりデータベースのアクセス順序の確認する場合に比べて、抜け漏れなく検証することができる。
また、本実施形態におけるデータベースアクセス検証方法は、設計段階においてデータベースのデッドロックを検証することができるので、例えば、実装段階やテスト段階における検証でデータベースのデッドロックが発生することが判明した場合の手戻り工数を低減することができる。また、本実施形態におけるデータベースアクセス検証方法は、手戻りが低減することにより、ソフトウェアの設計期間を短縮することができる。
また、本実施形態では、設計書情報は、情報処理の手順を視覚化したフロー図と、情報処理の手順と、情報処理においてアクセスするデータベースのテーブル名と、情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含んでいる。経路抽出ステップにおいて、経路抽出部32は、フロー図と、情報処理の手順とに基づいて、経路を抽出する。そして、検証ステップにおいて、DBアクセス検証部33は、経路抽出ステップによって抽出された経路と、情報処理の手順と、テーブル名及びアクセス種別とに基づいて経路における抽出アクセス順序情報を抽出する。
これにより、本実施形態におけるデータベースアクセス検証方法は、ソフトウェアの設計に用いるフロー図と、情報処理の手順と、データベースのテーブル名及びアクセス種別とを含む設計書情報に基づいて、データベースのアクセス検証を行う。そのため、検証のための入力情報を別途作成する必要がなく、ソフトウェアの設計に用いる設計書を流用することができる。よって、本実施形態におけるデータベースアクセス検証方法は、ソフトウェアの設計及び検証の作業効率を向上させることができる。
また、本実施形態では、経路抽出ステップにおいて、経路抽出部32は、フロー図に含まれる分岐処理に応じて複数の経路を抽出する。そして、検証ステップにおいて、DBアクセス検証部33は、複数の経路それぞれに対して、各経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合するか否かを検証する。
これにより、本実施形態におけるデータベースアクセス検証方法は、分岐処理に応じた複数の経路に対して、アクセス順序の検証を実行するので、設計段階において、分岐処理に応じた経路を抜け漏れなく検証することができる。
また、本実施形態では、基準アクセス順序情報は、データベースのテーブル名とテーブル名に対応するアクセス順序を示す順序番号とを含んでいる。検証ステップにおいて、DBアクセス検証部33は、経路においてアクセスするデータベースのテーブル名と、基準アクセス順序情報において当該テーブル名に対応する順序番号とを関連付けたアクセス情報を、アクセス順序として経路の順番に検証記憶部40に記憶さる。そして、DBアクセス検証部33は、検証記憶部40におけるアクセス情報の順序番号が昇番順に記憶されている場合に、経路における抽出アクセス順序情報と、基準アクセス順序情報とが整合していると判定する。
これにより、本実施形態におけるデータベースアクセス検証方法は、検証記憶部40が記憶するアクセス情報の順序番号が昇番順であるか否かにより結果判定することができるので、簡易な判定手段により、データベースのアクセス検証を実行することができる。
また、本実施形態では、設計書情報には、データベースからのデータの取得に関する取得情報(例えば、取得情報シートST3)と、データベースへのデータの出力に関する出力情報(例えば、出力情報シートST4)とが含まれる。
これにより、本実施形態におけるデータベースアクセス検証方法は、データベースからのデータ取得するアクセス検証と、データベースへのデータ出力するアクセス検証とを個別に判定基準を設けることができる。
また、本実施形態では、経路抽出ステップにおいて、経路抽出部32は、設計書情報に基づいて、分岐パターンの組み合わせを抽出する第1の抽出ステップと、抽出した分岐パターンに応じた複数の経路を作成する第2の抽出ステップとを実行する。
これにより、本実施形態におけるデータベースアクセス検証方法は、先に抽出した分岐パターンに基づいて経路を作成するので、経路を作成する際に分岐を判定する必要がない。そのため、本実施形態におけるデータベースアクセス検証方法は、経路を作成する処理を簡略化することができるとともに、経路を作成する処理時間を短縮することができる。
また、本実施形態では、分岐パターンの組み合わせを抽出する第1の抽出ステップにおいて、経路抽出部32は、仕様書情報に基づいて、最初の分岐、及び、起点となる仕様書情報に含まれる分岐を抽出し、抽出した最初の分岐、及び、起点となる仕様書情報に含まれる分岐に基づいて、分岐パターンの組み合わせの数を低減する。
これにより、経路抽出部32は、経路を作成する際に使用する記憶部の記憶容量を低減することができるとともに、経路を作成する際の演算量を低減できるので処理時間の短縮することができる。
また、本実施形態によれば、DBアクセス検証装置1は、経路抽出部32と、DBアクセス検証部33とを備えている。経路抽出部32は、設計書記憶部10から設計書情報を取得し、取得した設計書情報に基づいて、データベースへのアクセスを含む情報処理の経路を抽出する。そして、DBアクセス検証部33は、経路抽出部32によって抽出された情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した抽出アクセス順序情報と、アクセス順序記憶部20が記憶する、データベースにアクセスする予め定められた順序を示す基準アクセス順序情報とが整合するか否かを検証する。
これにより、本実施形態におけるDBアクセス検証装置1は、本実施形態におけるデータベースアクセス検証方法と同様の効果を奏する。
[第2の実施形態]
次に、第2の実施形態によるデータベースアクセス検証装置、及びデータベースアクセス検証方法について、図面を参照して説明する。
図22は、第2の実施形態によるデータベースアクセス検証装置(DBアクセス検証装置1a)の一例を示すブロック図である。この図において、図1と同一の構成については同一の符号を付し、その説明を省略する。
本実施形態におけるDBアクセス検証装置1aは、制御部30aが一括検証制御部35を備え、設計対象のソフトウェアごとの複数の起点となる設計書情報に対して、一括にデータベースのアクセス検証を実行する点が、第1の実施形態におけるDBアクセス検証装置1と異なる。なお、DBアクセス検証装置1aは、この一括にデータベースのアクセス検証を実行する一括検証モードと、第1の実施形態と同様の起点となる設計書情報が選択された後に検証を実行する選択検証モードとを使用者(ソフトウェアの設計者)からの指定により切り替えて実行してもよい。
図22において、DBアクセス検証装置1aは、設計書記憶部10、アクセス順序記憶部20、制御部30a、及び検証記憶部40aを備えている。
また、制御部30aは、事前チェック部31、経路抽出部32、DBアクセス検証部33、検証結果出力部34、及び一括検証制御部35を備えている。
一括検証制御部35は、設計書記憶部10が記憶する設計書情報を解析し、設計対象のソフトウェアにおいて、例えば、オンライン処理設計書情報11などの起点となる起点設計書情報を抽出する。一括検証制御部35は、抽出した起点設計書情報を起点として、事前チェック部31、経路抽出部32、DBアクセス検証部33、及び検証結果出力部34に対して、データベースのアクセス検証を実行させる制御を行う。なお、一括検証制御部35は、複数の起点設計書情報が抽出された場合に、複数の起点設計書情報のそれぞれに対して、データベースのアクセス検証を実行させる制御を行う。
また、本実施形態における検証記憶部40aは、第1の実施形態において説明した、検証結果シートST41及びアクセス情報シートST42の他に、図23に示す一括検証結果シートST43を検証結果として記憶している。
図23は、本実施形態における一括検証結果の一例を示す図である。
図23に示すように、一括検証結果シートST43は、「項番」、「成果物名」、「エラー数」、及び「結果」を有している。ここで、「成果物名」は、例えば、起点設計書情報の名前を示している。また、「エラー数」は、事前チェック部31による事前チェックにおいてエラーの検出された設計書情報の数を示している。この「エラー数」には、基本情報シートST2のエラー数とフロー情報シートST1のエラー数とが含まれる。
また、「結果」は、データベースのアクセス検証の検証結果を示しており、「○」と、「×」とを含んでいる。なお、「結果」の「○」は、経路抽出部32によって抽出された経路のうち、“○”と判定された数を示しており、「結果」の「×」は、経路抽出部32によって抽出された経路のうち、“×”と判定された数を示している。なお、事前チェックでエラーが発生した場合には、DBアクセス検証装置1aは、データベースのアクセス検証を実行しないため、この場合、「結果」の「○」及び「×」はともに“0”になる。
なお、図23に示す例では、「項番」の“1”に対応する「成果物名」が“01_処理設計書”であり、「エラー数」の「基本情報」が“2”であり、「エラー数」の「フロー情報」が“0”であることを示している。また、「項番」の“7”に対応する「成果物名」が“○○処理設計書”であり、「エラー数」の「基本情報」及び「フロー情報」が“0”であり、「結果」の「○」が“5”であり、「結果」の「×」が“4”であることを示している。
次に、本実施形態におけるDBアクセス検証装置1aの動作について説明する。
図24は、本実施形態における一括検証処理の一例を示すフローチャートである。
図24において、まず、DBアクセス検証装置1aの制御部30aは、起点設計書情報の抽出処理を実行する(ステップS701)。具体的に、制御部30aの一括検証制御部35は、例えば、オンライン処理設計書情報11などの起点となる起点設計書情報を抽出する。
一括検証制御部35は、抽出した起点設計書情報に対して、続く、ステップS703からステップS706の処理において、データベースのアクセス検証を実行する制御を行う。なお、ステップS703からステップS706の処理は、図13に示すステップS101からステップS105の処理と同様であるので、ここでは説明を省略する。
次に、ステップS707において、一括検証制御部35は、次の起点設計書情報があるか否かを判定する。一括検証制御部35は、次に起点設計書情報がある場合(ステップS707:YES)に、処理をステップS708に進める。また、一括検証制御部35は、次の起点設計書情報がない場合(ステップS707:NO)に、処理をステップS709に進める。
ステップS708において、一括検証制御部35は、起点設計書情報を変更して、処理をステップS702に戻す。これにより、一括検証制御部35は、次の起点設計書情報に対するデータベースのアクセス検証を実行する制御を行う。
また、ステップS708において、一括検証制御部35は、一括検証結果を出力して処理を終了する。すなわち、一括検証制御部35は、図23に示すような一括検証結果(一括検証結果シートST43)を生成し、生成した一括検証結果を検証記憶部40aに記憶させる。
以上説明したように、本実施形態におけるDBアクセス検証装置1aは、一括検証制御部35を備えている。一括検証制御部35は、ソフトウェアの所定の単位ごと(例えば、設計対象のソフトウェアごと)の複数の起点となる設計書情報に対して、一括にデータベースのアクセス検証を実行する制御を行う。
これにより、本実施形態におけるDBアクセス検証装置1a及びデータベースアクセス検証方法は、ソフトウェアの所定の単位ごとに一括してデータベースのアクセス検証を行うことができる。この場合、起点となる設計書情報をデータベースのアクセス検証ごとに選択する必要がなくなるため、本実施形態におけるDBアクセス検証装置1a及びデータベースアクセス検証方法は、データベースのアクセス検証を実行する期間を短縮することができる。
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、DBアクセス検証装置1(1a)が、設計書記憶部10、アクセス順序記憶部20、及び検証記憶部40(40a)を備える場合について説明したが、設計書記憶部10、アクセス順序記憶部20、及び検証記憶部40(40a)を、例えば、サーバ装置などの外部装置が備えてもよい。また、制御部30(30a)は、例えば、クライアント端末やアプリケーションサーバなどのコンピュータ装置であってもよい。
また、上記の各実施形態において、設計書記憶部10、アクセス順序記憶部20、及び検証記憶部40(40a)は、個別に構成する場合について説明したが、設計書記憶部10、アクセス順序記憶部20、及び検証記憶部40(40a)のうちのいずれかの組み合わせを1つに構成してもよい。
また、上記の各実施形態において、テーブル単位のアクセス順序を検証する場合について説明したが、テーブル内のカラム単位においてアクセス順序を検証してもよい。
また、上記の第2の実施形態において、設計書記憶部10が複数のソフトウェアに対応する設計書情報を記憶している場合に、一括検証制御部35は、複数のソフトウェアのうちの1つを選択して、選択したソフトウェアに対応して、一括検証モードによりデータベースのアクセス検証を実行してもよい。
なお、本発明におけるDBアクセス検証装置1(1a)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したDBアクセス検証装置1(1a)の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。
なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にDBアクセス検証装置1(1a)で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
1、1a DBアクセス検証装置
10 設計書記憶部
11 オンライン処理設計書情報
12 サービス系設計書情報
13 パラメタライズドロジック設計書情報
20 アクセス順序記憶部
30、30a 制御部
31 事前チェック部
32 経路抽出部
33 DBアクセス検証部
34 検証結果出力部
35 一括検証制御部
40、40a 検証記憶部

Claims (5)

  1. 経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、前記情報処理の経路を抽出する経路抽出ステップと、
    検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップと
    を含み、
    前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、
    前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、
    前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出する
    とを特徴とするデータベースアクセス検証方法。
  2. 前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図に含まれる分岐処理に応じて複数の前記経路を抽出し、
    前記検証ステップにおいて、前記検証部は、前記複数の経路それぞれに対して、各経路における前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合するか否かを検証する
    ことを特徴とする請求項に記載のデータベースアクセス検証方法。
  3. 前記基準アクセス順序情報は、データベースのテーブル名と前記テーブル名に対応するアクセス順序を示す順序番号とを含み、
    前記検証ステップにおいて、前記検証部は、前記経路においてアクセスするデータベースのテーブル名と、前記基準アクセス順序情報において当該テーブル名に対応する前記順序番号とを関連付けたアクセス情報を、前記抽出アクセス順序情報として前記経路の順番に検証記憶部に記憶させ、前記検証記憶部における前記アクセス情報の前記順序番号が昇番順に記憶されている場合に、前記抽出アクセス順序情報と、前記基準アクセス順序情報とが整合していると判定する
    ことを特徴とする請求項1又は請求項に記載のデータベースアクセス検証方法。
  4. ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出部と、
    前記経路抽出部によって抽出された前記情報処理の経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証部と
    を備え
    前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、
    前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、
    前記検証部は、前記経路抽出部によって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出する
    とを特徴とするデータベースアクセス検証装置。
  5. コンピュータに、
    経路抽出部が、ソフトウェアにおける情報処理の手順を規定する設計書情報を記憶する設計書記憶部から前記設計書情報を取得し、取得した前記設計書情報に基づいて、データベースへのアクセスを含む前記情報処理の経路を抽出する経路抽出ステップと、
    検証部が、前記経路抽出ステップによって抽出された前記経路におけるデータベースのアクセス順序を示す抽出アクセス順序情報を抽出し、抽出した前記抽出アクセス順序情報と、前記データベースにアクセスする予め定められた順序を示す基準アクセス順序情報を記憶する順序記憶部から取得した前記基準アクセス順序情報とが整合するか否かを検証する検証ステップと
    を実行させ
    前記設計書情報は、前記情報処理の手順を視覚化したフロー図と、前記情報処理の手順と、前記情報処理においてアクセスするデータベースのテーブル名と、前記情報処理においてアクセスするデータベースを操作する種類を示すアクセス種別とを対応付けて含み、
    前記経路抽出ステップにおいて、前記経路抽出部は、前記フロー図と、前記情報処理の手順とに基づいて、前記経路を抽出し、
    前記検証ステップにおいて、前記検証部は、前記経路抽出ステップによって抽出された前記経路と、前記情報処理の手順と、前記テーブル名及び前記アクセス種別とに基づいて前記抽出アクセス順序情報を抽出する
    ことを実行させるためのプログラム。
JP2013038653A 2013-02-28 2013-02-28 データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム Active JP6040055B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013038653A JP6040055B2 (ja) 2013-02-28 2013-02-28 データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013038653A JP6040055B2 (ja) 2013-02-28 2013-02-28 データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム

Publications (2)

Publication Number Publication Date
JP2014167674A JP2014167674A (ja) 2014-09-11
JP6040055B2 true JP6040055B2 (ja) 2016-12-07

Family

ID=51617344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013038653A Active JP6040055B2 (ja) 2013-02-28 2013-02-28 データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP6040055B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116798099B (zh) * 2023-07-07 2024-01-12 广州广旭科技有限公司 一种劳务人员身份智能识别、管理方法以及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222228A (ja) * 1999-01-29 2000-08-11 Hitachi Ltd リソース占有順序の検証によるデッドロック防止方法
JP2005122560A (ja) * 2003-10-17 2005-05-12 Fujitsu Ltd デッドロック事前検出プログラム

Also Published As

Publication number Publication date
JP2014167674A (ja) 2014-09-11

Similar Documents

Publication Publication Date Title
JP6417791B2 (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
JP7157716B2 (ja) データベースサーバ装置、サーバシステム及びリクエスト処理方法
JP7015319B2 (ja) データ分析支援装置、データ分析支援方法およびデータ分析支援プログラム
JP2019021341A (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
JP2008112268A (ja) タイミング検証方法、タイミング検証装置及びタイミング検証プログラム
JP6446819B2 (ja) 文書差分表示プログラム及び情報処理装置
JPWO2018092237A1 (ja) プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム
US9881073B2 (en) Method for reconfiguration of database, recording medium, and reconfiguration device
JP5555550B2 (ja) データ変換方法、その装置およびそのプログラム
US10628619B2 (en) Analysis mesh data generating method and analysis mesh data generating device
JP5634374B2 (ja) 仕様作成支援装置、及び、プログラム
JP6040055B2 (ja) データベースアクセス検証方法、データベースアクセス検証装置、及びプログラム
JP7015320B2 (ja) データ分析支援装置、データ分析支援方法およびデータ分析支援プログラム
JP6364332B2 (ja) 仕様生成方法、仕様生成装置、及びプログラム
JP5578625B2 (ja) プログラム分析装置、プログラム分析方法、及びプログラム
JP4787935B2 (ja) データベース検索支援方法、その装置およびプログラム
JP2013142971A (ja) プログラム処理装置およびプログラム処理方法
JP2015166895A (ja) 設計情報検索装置、設計情報検索方法および設計情報検索プログラム
JP2008257510A (ja) 設計支援システム、方法及びプログラム
JP6107488B2 (ja) 有向グラフ生成方法、有向グラフ生成プログラム、及び有向グラフ生成装置
JP5316273B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JP7100991B2 (ja) データ変換装置およびデータ変換方法
JP4580670B2 (ja) テストケース生成方法及びテストケース生成装置
JP5602087B2 (ja) データ連携装置、データ連携方法及びデータ連携プログラム
JP2012164081A (ja) 中間コード検査システム、中間コード検査方法、及び中間コード検査プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160510

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161107

R150 Certificate of patent or registration of utility model

Ref document number: 6040055

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250