(57)【要約】【課題】  本発明の課題は、要件定義書で定義される概念データと設計書で定義される論理テーブル間におけるトレース先の複数の候補から最も適切な候補を判断可能することを目的とする。【解決手段】  上記課題は、要件定義書で定義される概念データからトレースされる設計書で定義される論理テーブルの論理テーブル名と、該論理テーブルを使用する該内部機能との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた使用確率内部テーブルの各レコードの使用確率と、該レコードの内部機能と一致する、概念データ名と、論理テーブルを使用する内部機能と、ユーザインタフェースを用いて処理された処理件数に基づく内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルのレコードの実行頻度とを乗算することによって、概念データから論理テーブルへとトレースされる確度を算出することにより達成される。【選択図】  図２
2013171411.tif 000002
【特許請求の範囲】
【請求項１】
設計書で定義された論理テーブルを使用する内部機能の内部機能名と、要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルと、該要件定義書で定義される概念データの概念データ名と、該概念データからトレースされる論理テーブルの論理テーブル名と、該論理テーブルを使用する該内部機能名との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルとを記憶した記憶部と、
前記記憶部に記憶された前記概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、該レコードの前記使用確率と、該レコードの内部機能名と一致する前記機能実行頻度内部テーブルのレコードの前記実行頻度とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出するトレース候補確度算出部
を有することを特徴とするトレース候補抽出装置。
【請求項２】
前記記憶部は、更に、前記内部機能名と、前記論理テーブル名と、該内部機能が前記論理テーブルを使用する使用確率とを対応付けた論理テーブル使用確率内部テーブルと、前記概念データ名と該概念データ名の概念データからトレースされる前記論理テーブルの前記論理テーブル名とを対応付けた概念データ・論理テーブル間トレース情報テーブルを記憶し、
前記概念データ・論理テーブル使用確率内部テーブル前記記憶部作成し、該記憶部記憶された前記論理テーブル使用確率内部テーブルら順にレコードを取得し、該レコードの内部機能名及び前記論理テーブル名と、該レコードの論理テーブル名と一致する前記概念データ・論理テーブル間トレース情報テーブルのレコードの前記使用確率とを該概念データ・論理テーブル使用確率内部テーブルに対応付けて記憶する概念データ・論理テーブル使用確率算出部有することを特徴とする請求項１記載のトレース候補抽出装置。
【請求項３】
前記記憶部、更に、前記内部機能名と、該内部機能名で識別される内部機能が使用する論理テーブルの前記論理テーブル名と、該内部機能による処理フローにおいて該論理テーブルが使用される使用経路数とを対応付けた論理テーブル使用経路数内部テーブル、該内部機能名と該内部機能名で識別される内部機能による処理フローに存在する経路数とを対応付けた経路数内部テーブルを記憶し、
前記論理テーブル使用確率内部テーブルを前記記憶部作成し、該記憶部記憶された前記論理テーブル使用経路数内部テーブルら順にレコードを取得し、該レコードの内部機能名及び論理テーブル名と、該レコードの使用経路数を該レコードの該内部機能名と一致する経路数内部テーブルレコードの前記経路数で除算した値とを該論理テーブル使用確率内部テーブルに対応付けて記憶する論理テーブル使用確率算出部有することを特徴とする請求項２記載のトレース候補抽出装置。
【請求項４】
記憶部に記憶された、要件定義書で定義される概念データの概念データ名と、概念データからトレースされる論理テーブルの論理テーブル名と、該論理テーブルを使用する内部機能との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、
前記記憶部に記憶された、設計書で定義された論理テーブルを使用する内部機能の内部機能名と、前記要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルおいて、該取得したレコードの内部機能名と一致するレコードの前記実行頻度と、前記取得したレコードの前記使用確率とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出する、
処理をコンピュータに実行させるプログラム。
【請求項５】
コンピュータによって実行されるトレース候補抽出方法であって、
記憶部に記憶された、要件定義書で定義される概念データの概念データ名と、概念データからトレースされる論理テーブルの論理テーブル名と、該論理テーブルを使用する内部機能との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、
前記記憶部に記憶された、設計書で定義された論理テーブルを使用する内部機能の内部機能名と、前記要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルおいて、該取得したレコードの内部機能名と一致するレコードの前記実行頻度と、前記取得したレコードの前記使用確率とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出する、
処理をコンピュータに実行させるトレース候補抽出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要件定義書で定義される概念データと設計書で定義される論理テーブル間におけるトレース先の複数の候補から適切な候補を判断可能とすることに関する。
【背景技術】
【０００２】
従来より、ユーザがシステムに対する要件を定義した要件定義書に基づいて、システム設計が行われている。システム設計では、要件定義書に基づいて、基本設計が行われ、設計書が作成される。基本設計の際に、開発者は、要件定義書で定義される機能、データ、画面等のユーザとのインタフェースなどで表現される要件定義の構成要素と、要件定義書によって定義される構成要素をコンピュータによって実現するために、開発者が作成した設計書で表現される設計の構成要素との対応付けがなされることがある。ある工程内の構成要素から後の工程内の構成要素への対応付け（前後の工程間の構成要素間の対応付け）を、以下、「トレース」と言う。また、対応付けを示す情報を「トレース情報」と言う。
【０００３】
システム設計中又は設計後に、ユーザが要件定義書を変更することがある。開発者は、要件定義書においてユーザの変更したい構成要素からトレースした設計書内の構成要素を特定することによって、変更する部分、変更によって影響すると考えられる部分等を候補としている。
【０００４】
例えば、プログラム修正から影響を受ける変数について、制御フローとデータフローによる実行経路との関係から影響範囲及び影響経路を分析すること、過去に行われたテストのテストケースについての情報を保存しておき、その情報と対象プログラムを解析して得られた依存関係を組み合わせることによりテストを行うことにより、変更した箇所に応じて優先的にテストすべき部分を自動的に抽出すること、名称の類似度に基づいてトレースすること等が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０６−２１４７６４号公報
【特許文献２】特開２００８−２０４４０５号公報
【非特許文献】
【０００６】
【非特許文献１】J.Huffman Hayes, etc., "Improving Requirements Tracing via Information Retrieval", Proceedings of the 11th IEEE International Requirements Engineering Conference.
【非特許文献２】Giuliano Antoniol, etc., "Recovering Traceability Links between Code and Documentation", IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 28, NO. 10, OCTOBER 2002, pp. 970-983.
【非特許文献３】鶴巻敏郎、"Pairwise法と制約表による制御パステストのテストケース自動生成"、ＳＱｉＰシンポジウム２００９
【非特許文献４】ボーリ・スバイザー著、小野間彰、山浦恒央訳，ソフトウェアテスト技法、第２版．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来技術では、開発者による基本設計の際に作成したトレース情報は、要件定義書内のユーザの変更に関連する、設計書内において変更する構成要素を必ずしも精度良く抽出することができない、と言った問題があった。
【０００８】
また、要件定義書内の変更対象となる構成要素に対して、抽出される設計書内の構成要素は、１対１とは限らない。開発者は、経験に基づいて、設計書内の変更又は影響する構成要素を判断しなければならなかった。
【０００９】
よって、本発明の目的は、前工程における構成要素の変更によって変更又は影響を受ける、前工程に基づいて作られた後工程の構成要素の変更又は影響部分の候補からの選択を効率的に行えるようにすることである。
【課題を解決するための手段】
【００１０】
開示のトレース候補抽出装置は、設計書で定義された論理テーブルを使用する内部機能の内部機能名と、要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルと、該要件定義書で定義される概念データの概念データ名と、該概念データからトレースされる論理テーブルの論理テーブル名と、該内部機能名との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルとを記憶した記憶部と、前記記憶部に記憶された前記概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、該レコードの前記使用確率と、該レコードの内部機能名と一致する前記機能実行頻度内部テーブルのレコードの前記実行頻度とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出するトレース候補確度算出部を有するように構成される。
【００１１】
また、上記課題を解決するための手段として、コンピュータに上記トレース候補抽出装置として機能させるためのプログラム、そのプログラムを記録した記録媒体、及びトレース候補抽出方法とすることもできる。
【発明の効果】
【００１２】
開示の技術では、要件定義書で定義される概念データと設計書で定義される論理テーブル間におけるトレース先の複数の候補から、算出された確度に基づいて、適切な候補を判断することができる。
【図面の簡単な説明】
【００１３】
【図１】トレース候補抽出装置のハードウェア構成を示す図である。
【図２】トレース候補抽出装置の基本機能構成を説明するための図である。
【図３】画面一覧の例を示す図である。
【図４】画面情報テーブルの例を示す図である。
【図５】業務フローの例を示す図である。
【図６】要件定義工程で作成するデータ図の例を示す図である。
【図７】業務フローやデータを表すＸＭＬ形式の例を示す図（その１）である。
【図８】業務フローやデータを表すＸＭＬ形式の例を示す図（その２）である。
【図９】業務フローやデータを表すＸＭＬ形式のスキーマをクラス図で示す図（その１）である。
【図１０】業務フローやデータを表すＸＭＬ形式のスキーマをクラス図で示す図（その２）である。
【図１１】ＸＭＬ形式で記述された保持情報と業務フロー図やデータ図におけるシェイプとの対応関係を示す図である。
【図１２】領収書情報登録機能の処理フローの例を示す図である。
【図１３】処理フローを表すＸＭＬ形式の例を示す図である。
【図１４】処理フローやデータを表すＸＭＬ形式のスキーマをクラス図で示す図（その１）である。
【図１５】処理フローやデータを表すＸＭＬ形式のスキーマをクラス図で示す図（その２）である。
【図１６】ＸＭＬ形式で記述された保持情報と処理フローにおけるシェイプとの対応関係を示す図である。
【図１７】本実施例に係るトレース候補抽出装置によって行われる全体処理について説明する図である。
【図１８】機能実行頻度取得部での処理に係るテーブルのデータ例を示す図である。
【図１９】機能実行頻度取得部による処理を説明するためのフローチャート図である。
【図２０】経路情報テーブル及び経路数内部テーブルの例を示す図である。
【図２１】機能経路数算出部による処理を説明するためのフローチャート図である。
【図２２】論理テーブル使用経路数内部テーブルの例を示す図である。
【図２３】論理テーブル使用経路数算出部による処理を説明するためのフローチャート図である。
【図２４】論理テーブル使用確率内部テーブルの例を示す図である。
【図２５】論理テーブル使用確率算出部による処理を説明するためのフローチャート図である。
【図２６】概念データ・論理テーブル間トレース情報テーブル及び概念データ・論理テーブル使用確率内部テーブルの例を示す図である。
【図２７】概念データ・論理テーブル使用確率算出部による処理を説明するためのフローチャート図である。
【図２８】トレース候補確度内部テーブルの例を示す図である。
【図２９】トレース候補確度算出部による処理を説明するためのフローチャート図である。
【図３０】トレース候補確度内部テーブルを利用した利用形態に係る構成例を示す図である。
【図３１】画面例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態を図面に基づいて説明する。本実施例に係るトレース候補抽出装置は、図１に示すようなハードウェア構成を有する。図１は、トレース候補抽出装置のハードウェア構成を示す図である。図１において、トレース候補抽出装置１００は、コンピュータによって制御される端末であって、ＣＰＵ（Central Processing Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、出力装置１６と、通信Ｉ／Ｆ（インタフェース）１７と、ドライブ１８とを有し、バスＢに接続される。
【００１５】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従ってトレース候補抽出装置１００を制御する。主記憶装置１２には、ＲＡＭ（Random Access Memory）及びＲＯＭ（Read-Only Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を格納する。また、主記憶装置１２の一部の領域が、ＣＰＵ１１での処理に利用されるワークエリアとして割り付けられている。
【００１６】
補助記憶装置１３には、ハードディスクドライブが用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。記憶部１３０は、主記憶装置１２及び／又は補助記憶装置１３を有する。
【００１７】
入力装置１４は、マウス、キーボード等を有し、ユーザがトレース候補抽出装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。出力装置１６は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。通信Ｉ／Ｆ１７は、例えばインターネット、ＬＡＮ（Local Area Network）等に接続し、外部装置との間の通信制御をするための装置である。
【００１８】
トレース候補抽出装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）等の記憶媒体１９によってトレース候補抽出装置１００に提供される。即ち、プログラムが保存された記憶媒体１９がドライブ１８にセットされると、ドライブ１８が記憶媒体１９からプログラムを読み出し、その読み出されたプログラムがバスＢを介して補助記憶装置１３にインストールされる。そして、プログラムが起動されると、補助記憶装置１３にインストールされたプログラムに従ってＣＰＵ１１がその処理を開始する。尚、プログラムを格納する媒体としてＣＤ−ＲＯＭに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００１９】
また、トレース候補抽出装置１００によって行われる処理を実現するプログラムが、通信Ｉ／Ｆ１７を介して外部装置から提供されてもよい。或いは、外部装置へ該プログラムを提供し、後述される各処理は外部装置で実現されるように構成してもよい。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。
【００２０】
次に、トレース候補抽出装置１００の基本機能構成について説明する。図２は、トレース候補抽出装置の基本機能構成を説明するための図である。図２において、トレース候補抽出装置１００は、機能実行頻度取得部２０と、機能経路数算出部２１と、論理テーブル使用経路数算出部２２と、論理テーブル使用確率算出部２３と、概念データ・論理テーブル使用確率算出部２４と、トレース候補確度算出部２５とを有する。各処理部２０〜２５は、対応するプログラムをＣＰＵ１１が実行することによって実現される。
【００２１】
また、画面データ３０と、要件・設計機能間トレース情報テーブル３１と、システム機能・画面関連テーブル３２と、機能実行頻度内部テーブル３３と、経路情報テーブル３４と、経路数内部テーブル３５と、論理テーブル使用経路数内部テーブル３６と、論理テーブル使用確率内部テーブル３７と、概念データ・論理テーブル間トレース情報テーブル３８と、概念データ・論理テーブル使用確率内部テーブル３９と、トレース候補確度内部テーブル４０とが、記憶部１３０に格納される。
【００２２】
機能実行頻度取得部２０は、要件定義書で定義されるシステム機能と設計書で定義される内部機能間のトレース関係と、要件定義書で作成された業務フローを対象に後述されるシェイプ（図形上の）間の関連から得られた画面と画面とを利用している処理の組み合わせと、画面一覧等の要件定義ドキュメントから得られた各画面の単位時間あたりの処理頻度から機能実行頻度内部テーブル３３を作成する処理部である。
【００２３】
機能経路数算出部２１は、設計書で定義されている内部機能の処理フローから経路数内部テーブル３５を作成する処理部である。
【００２４】
論理テーブル使用経路数算出部２２は、設計書で定義されている内部機能の処理フローから、論理テーブルが使用されている経路数を内部機能ごとに算出し、論理テーブル使用経路数内部テーブル３６を作成する処理部である。
【００２５】
論理テーブル使用確率算出部２３は、経路数内部テーブル３５と、論理テーブル使用経路数内部テーブル３６とから、内部機能内での論理テーブルの使用確率を算出し、論理テーブル使用確率内部テーブル３７を作成する処理部である。
【００２６】
概念データ・論理テーブル使用確率算出部２４は、システム機能と内部機能間のトレース情報から得られる概念データ・論理テーブル間トレース情報テーブル３８と、論理テーブル使用確率内部テーブル３７とから、概念データ・論理テーブル使用確率内部テーブル３９を作成する処理部である。
【００２７】
トレース候補確度算出部２５は、論理テーブル使用確率内部テーブル３７と、機能実行頻度内部テーブル３３とから概念データと論理テーブルとの組み合わせの正しさの確度を算出する処理部である。
【００２８】
本実施例では、要件定義書で定義される概念データと、設計書で定義される論理テーブルとが定義されているものとする。ある概念データのトレース先の候補となる論理テーブルが複数あり、候補となっている論理テーブルの設計ドキュメント上での出現数が等しくても、概念データのアクセス数や論理テーブルが使われる処理経路が異なれば、各候補に対して候補としての確度を算出することができる。
【００２９】
結果として、出現数をトレース情報候補の確度とするよりも、候補の確度に差異がない場合が減少し、かつ、実際の実行頻度を反映した確度をえることができるので、複数の候補の中からの選択精度を向上させることができる。
【００３０】
画面データ３０は、画面の定義、画面に関する情報を管理するためのドキュメントであり、データファイル等で管理される。画面データ３０には、画面一覧３０ａ（図３）、画面情報テーブル３０ｂ（図４）等が含まれる。
【００３１】
要件・設計機能間トレース情報テーブル３１（図１８）は、要件定義書で定義されるシステム機能名、設計書で定義される内部機能名を示す内部機能名等のフィールドを有し、要件定義書で定義されるシステム機能と設計書で定義される内部機能間とを対応付けたトレース情報を管理するためのテーブルであり、予め、記憶部１３０に格納されている。
【００３２】
システム機能・画面関連テーブル３２（図１８）は、要件定義書で定義されるシステム機能名、画面名等のフィールドを有し、システム機能名と画面名との関連付けを示すテーブルであり、予め、記憶部１３０に格納されている。
【００３３】
機能実行頻度内部テーブル３３（図１８）は、設計書で定義される内部機能名、実行頻度等のフィールドを有し、内部機能が実行された実行頻度を管理するテーブルであり、機能実行頻度取得部２０によって作成され記憶部１３０に格納される。
【００３４】
経路情報テーブル３４（図２０）は、設計書で定義される内部機能名、経路名、内部機能名に対応付けられる論理テーブル名等のフィールドを有し、処理フローに基づいて、論理テーブルが内部機能のどのパス上で使われているかを管理するテーブルである。
【００３５】
経路数内部テーブル３５（図２０）は、設計書で定義される内部機能名、カウントされた経路数等のフィールドを有し、内部機能名に対応付けて各内部機能が実行される経路数が管理されるテーブルであり、機能経路数算出部２１によって作成され記憶部１３０に格納される。
【００３６】
論理テーブル使用経路数内部テーブル３６（図２２）は、設計書で定義される内部機能名、内部機能で使用される論理テーブルの論理テーブル名、内部機能が論理テーブルを使用する経路数等のフィールドを有し、論理テーブル使用経路数算出部２２によって作成され記憶部１３０に格納される。
【００３７】
論理テーブル使用確率内部テーブル３７（図２４）は、設計書で定義される内部機能名、論理テーブル名、内部機能で論理テーブルが使用される確率等のフィールドを有し、論理テーブル使用確率算出部２３によって作成され記憶部１３０に格納される。
【００３８】
概念データ・論理テーブル間トレース情報テーブル３８（図２６）は、要件定義で定義された概念データの概念データ名、設計に関する論理テーブルの論理テーブル名等のフィールドを有し、概念データと論理テーブルとの対応付けを管理するテーブルであり、予め作成され記憶部１３０に格納されている。概念データと論理テーブルの対応付けに基づく、概念データと論理テーブルとの組み合せがトレース情報に相当する。
【００３９】
概念データ・論理テーブル使用確率内部テーブル３９（図２６）は、概念データ名、設計上の内部機能名、論理テーブル名、使用確率等のフィールドを有し、概念データ・論理テーブル使用確率算出部２４によって作成され記憶部１３０に記憶される。
【００４０】
トレース候補確度内部テーブル４０（図２８）は、概念データ名、論理テーブル名、候補としての確からしさを示す確度等のフィールドを有し、トレース候補確度算出部２５によって作成され記憶部１３０に格納される。
【００４１】
上述において、本実施例における構成部分の概要を説明したが、ここで、入力となるデータについて詳述する。
【００４２】
本実施例では、要件定義書や設計書で作成するドキュメントを入力データとして扱う。このトレース候補抽出装置１００で扱う要件定義工程で作成するドキュメントの例を説明する。画面を定義するドキュメントである画面一覧３０ａの例を図３に、業務の流れを定義するドキュメントである業務フローの例を図５に示す。
【００４３】
画面一覧３０ａには、画面を識別するためのＩＤや名称の他に処理件数が記載される。図３は、画面一覧の例を示す図である。図３に例示される画面一覧３０ａは、行番号を示すＮｏ、画面を識別するための画面ＩＤ、画面名、画面の利用形態を説明した概要、画面を利用して行われる処理区分、画面開発の困難さ示す複雑度、画面が利用される利用組織名／役割名、画面を利用した処理件数（平均）、イメージの有無、備考等の項目を有する。処理区分には、画面を利用して処理可能な、検索、参照、登録、及び更新の有無が示される。
【００４４】
一般に画面一覧３０ａと言った表形式のドキュメントは、表形式ソフトウェアで作成さえることが多い。表形式ソフトウェアは表形式ソフトウェアで作成された表を操作するためのアプリケーションプログラミングインタフェース（ＡＰＩ）を持つことが多い。このＡＰＩを利用して、表内の行や列、セルの値を取得できる。また、セル内に設定された値が文字列の場合には、文字列を操作することもできる。文字列操作とは、例えば、文字列の中から特定の文字の位置を検索し、その前後で２つの文字列に分けたりすることである。
【００４５】
これら表形式ソフトウェアのＡＰＩを利用して、図３の画面一覧３０ａのドキュメントから図４に例示されるような画面情報テーブル３０ｂを作成できる。図４は、画面情報テーブルの例を示す図である。図４において、画面情報テーブル３０ｂは、画面名、処理件数、時間、時間単位等の項目を有する。
【００４６】
画面情報テーブル３０ｂでは、画面一覧３０ａを用いて得られた、画面毎の処理件数が管理される。例えば、画面名「領収書管理」では、画面一覧３０ａより処理件数（平均）「５／日」に基づいて、処理件数「５」、時間「１」、時間単位「日」が対応付けられる。また、画面名「得意先参照」では、画面一覧３０ａより処理件数（平均）「１５／月」に基づいて、１月のうち２０日作業した場合、処理件数「０．７５」、時間「１」、時間単位「日」が対応付けられる。
【００４７】
次に、業務フローについて図５で説明する。図５に示す業務フローでは、種々のシェイプを用いて表現される。各々のシェイプを簡単に説明する。
【００４８】
開始ノード５１は、業務フローの開始を表すシェイプで示される。システム支援ノード５２は、人がシステムを利用しながら行う作業（例えば、入金情報入力、顧客情報の内容確認）を表すシェイプで示される。システム機能ノード５３は、システムによる処理（例えば、領収書発行機能、確認情報設定機能）を表すシェイプで示される。終了ノード５４は、業務フローの終了を表すシェイプで示される。
【００４９】
オブジェクトノード５５は、業務フロー中で開発者によって利用される画面、又は、システム機能によってアクセスされるＤＢ（データベース）を表すシェイプで示される。ソフトウェア開発の上流工程で概念データとされたものは、データベースにて永続化されることが多い。そこで本実施例では、ＤＢの形をしたシェイプで概念データを表している。
【００５０】
例えば、オブジェクトノードに関連するデータである画面やＤＢの例について図６に示す。図５の業務フローに係るオブジェクトノードに関連するデータの例として、「領収書管理」画面６ａ、「確認情報設定」画面６ｂ、「顧客情報参照」画面６ｃ、「顧客情報検索」画面６ｄ、「信用情報参照」画面６ｅ、及び「得意先参照」画面６ｆ、また、「金銭受領情報」ＤＢ６ｐがある。
【００５１】
制御フロー５６は、システム支援ノードやシステム機能ノード間の接続を表すシェイプで示され、システム支援ノードやシステム機能ノードの実行順序を表す。この業務フローの例では、入金情報入力ノードから領収書発行機能ノードへの接続、及び、顧客情報の内容確認ノードから確認情報設定機能ノードへの接続である。
【００５２】
オブジェクトフロー５７は、システム機能ノードとオブジェクトノード間の接続を表すシェイプで示される。このオブジェクトフロー５７の一端に接続されているシステム機能ノードが他端のオブジェクトノードを利用することを表す。この業務フローの例では、領収書発行機能が金銭受領情報を利用すること、確認情報設定機能が金銭受領情報を利用することを表す。
【００５３】
パーティション５８は、システム支援ノードやシステム機能ノードを実施する組織やシステムを表すシェイプで示される。この業務フローの例では、システム支援ノードを実施する組織として、営業部が相当し、システム機能ノードを実施するシステムとして、販売管理システムが相当する。
【００５４】
このような業務フローは、コンピュータ処理で扱えるようにトレース候補抽出装置１００内で図７及び図８に示すようなＸＭＬ形式で表すことができ、トレース候補抽出装置１００内で、例えば、ＢＬＯＢ（Binary Large OBject）形式で格納されている。図７および図８に示すＸＭＬ形式で記述された保持情報は、図１の原理構成図では業務フロー３０ｆに格納される。図７及び図８中、図５及び図６で例示されるノードに対応する記述部分には同一符号を付してある。
【００５５】
図７及び図８に示すＸＭＬ形式で記述された保持情報に関して、業務フローに係るスキーマを図９のクラス図で示し、要件定義工程で作成するデータ図に係るスキーマを図１０のクラス図で示し、ＸＭＬ形式で記述された保持情報と図５に示すシェイプとの対応関係を対応関係テーブル９１で示す図１１で示す。
【００５６】
先ず、図７及び図８に示した保持情報について説明する。ＸＭＬ形式の保持情報では、どの要素も識別子として使われるｉｄ属性を持つ。ある要素から他要素を参照する時には、この値で参照先要素を指定する。
【００５７】
業務フローは、BusinessFlow要素で表す。１つの保持情報の中に、複数の業務フローを保持することもできる。
【００５８】
業務フロー内のノードは、flowNode要素で表す。ノードには、アクティビティノードとオブジェクトノードとがある。アクティビティノードには更に様々な種類がある。それらはtype属性値で区別している。それらの値が図１１の対応関係テーブル９１に示される。
【００５９】
outgoing属性の値は、ノードから出て行くflowEdge要素（遷移）のｉｄ属性値を表している。incoming属性の値は、ノードに入っているflowEdge要素（遷移）のｉｄ属性値を表している。
【００６０】
オブジェクトノードにあるreftype属性の値は、オブジェクトノードから参照しているデータのｉｄ属性値である。それらの値は、図１１の対応関係テーブル９１に示している。
【００６１】
flowEdge要素のsource属性はエッジの矢羽側（矢がない方）に接続されているflowNode要素のｉｄ属性値を表している。また、target属性はエッジの矢側（矢のある方）に接続されているflowNode要素のｉｄ属性値を表している。
【００６２】
業務フロー内の遷移及びオブジェクトフローのエッジは、どちらもflowEdge要素で表す。遷移であるかオブジェクトフローであるかは、type属性で区別している。
【００６３】
データは、Data要素で表される。データにも様々な種類があるが、これもtype属性値を使って区別している。それらの値を図１１の対応関係テーブル９１に示している。
【００６４】
図７及び図８に示したＸＭＬ形式の保持情報に含まれる要素のタグ名やtype属性を利用して、業務フロー、ノード、エッジ等を取得することができる。また、ある要素Ｅ内の属性値に設定されている値をｉｄ属性値として持つ要素を取得すると、要素Ｅからの参照先要素を取得することができる。
【００６５】
参照先を取得することで、例えば、業務フロー内の遷移の両端のノードを取得したり、オブジェクトノードから参照しているデータ要素を取得することができる。これらの実施方法を説明する。
（Ｉ）業務フローで使われているオブジェクトノードの参照先データを取得する。
（Ｉ−１）type属性の値が"objectNode"であるflowNode要素を取得することによって、オブジェクトノードを取得する。
（Ｉ−２）flowNode要素のref属性値を取得することによって、参照先データのＩＤを取得する。
（Ｉ−３）Data要素の中で、取得したref属性値をｉｄ属性値とする要素をすることによって、参照先データを取得する。取得した参照先データが上記（Ｉ−１）のオブジェクトノードが参照しているデータである。
【００６６】
また、
（ＩＩ）業務フロー内の遷移やオブジェクトフローの両端のノードを取得する。
（ＩＩ−１）flowEdge要素を取得する。
（ＩＩ−２）flowEdge要素のsource属性値を取得し、このsource属性値をｉｄ属性値とするflowNode要素を取得することによって、source側のflowNode側要素を取得する。
（ＩＩ−３）flowEdge要素のtarget属性値を取得し、このtarget属性値をｉｄ属性値とするflowNode要素を取得することによって、target側のflowNode側要素を取得する。
【００６７】
これらの実施方法を用いて、ＸＭＬ形式で保持された業務フローデータ３０ｆからシステム機能・画面関連テーブル３２を作成できる。
【００６８】
次に、このトレース候補抽出装置１００で扱う設計書で作成する処理フローを説明する。処理フローでは、図１２に例示されるようなシェイプで表現される。各シェイプについて図１２で簡単に説明する。図１２は、領収書情報登録機能の処理フローの例を示す図である。図１２では、領収書情報登録機能を例にして説明する。
【００６９】
開始ノード６１は、処理フローの開始を表すシェイプで示される。処理ノード６２は、コンピュータで実施する処理を表すシェイプで示される。条件分岐ノード６３は、条件により処理が分岐することを表すシェイプで示される。終了ノード６４は、処理フローの終了を表すシェイプで示される。
【００７０】
オブジェクトノード６５は、処理フロー内でデータが参照されている箇所である。オブジェクトノード６５のシェイプは、参照されるデータを表現するシェイプになる。図１２に示す処理フローの例では、オブジェクトノードは、領収情報、取引先マスタなどの論理テーブルである。
【００７１】
制御フロー６６は、開始ノード６１と、処理ノード６２と、終了ノード６４とを接続するもので、処理ノードの実行順序を表すシェイプで示される。オブジェクトフロー６７は、処理ノードとオブジェクトノード間の接続を表すシェイプで示される。このオブジェクトフローの一端に接続されている処理ノードが、他端のオブジェクトノードを利用することを表す。
【００７２】
処理フローは、コンピュータ処理で扱えるようにトレース候補抽出装置１００内で図１３に示すようなＸＭＬ形式で表すことができ、トレース候補抽出装置１００内で、例えば、ＢＬＯＢ（Binary Large OBject）形式で格納されている。図１３中、図１２で例示されるノードに対応する記述部分には同一符号を付してある。
【００７３】
図１３に示すＸＭＬ形式で記述された保持情報に関して、処理フローに係るスキーマを図１４のクラス図で示し、設計工程で作成するデータ図に係るスキーマを図１５のクラス図で示し、ＸＭＬ形式で記述された保持情報と図１２に示すシェイプとの対応関係を図１６の対応関係テーブル９２で示す。
【００７４】
先ず、図１３に示した保持情報について説明する。ＸＭＬ形式の保持情報では、どの要素も識別子として使われるｉｄ属性を持つ。ある要素から他要素を参照する時には、この値で参照先要素を指定する。業務フロー等から作成したＸＭＬ形式と同様に、処理フローを表したＸＭＬ形式の保持情報から各種情報を取得できる。
【００７５】
図１２に例示されるような処理フローから経路情報テーブル３４を作成することができる。例えば、非特許文献３では、制御フローからテストケースが生成できることを示している。生成されたテストケースでは、制御フロー内の条件分岐における分岐先が示されているので、制御フロー内の処理経路が分かる。
【００７６】
非特許文献４の２．２．６節（５２頁から５５頁）では、フローチャートから制御フローへの変換手順が示されている。本実施例における業務フローは実行手順を示す点ではフローチャートと同様であるので、非特許文献４で示される方法で制御フローに変換し、更に、非特許文献３に示す方法で処理経路を生成することができる。本実施例における処理フローの開始ノードから終了ノードを結ぶ制御フロー（ControlFlow）だけを取り出したものがフローチャートと等価である。
【００７７】
以下に、トレース候補抽出装置１００により、上述したデータから、要件・設計間トレース情報候補に対して確度を算出する方法について、図５の業務フロー、図１２の処理フローに係る例で説明する。
【００７８】
図１７は、本実施例に係るトレース候補抽出装置によって行われる全体処理について説明する図である。図１７において、トレース候補抽出装置１００では、機能実行頻度取得部２０は、要件・設計機能間トレース情報テーブル３１と、システム機能・画面関連テーブル３２と画面情報テーブル３０ｂとを用いて、各画面の単位時間あたりの処理頻度を取得して、機能実行頻度内部テーブル３３を作成する（ステップＳ１１）。
【００７９】
機能経路数算出部２１は、経路情報テーブル３４を用いて、経路数内部テーブル３５を作成し（ステップＳ１２）、論理テーブル使用経路数算出部２２は、経路情報テーブル３４を用いて、論理テーブル使用経路数内部テーブル３６を作成（ステップＳ１３）。
【００８０】
論理テーブル使用確率算出部２３は、論理テーブル使用経路数内部テーブル３６と、経路数内部テーブル３５とを用いて、論理テーブル使用確率内部テーブル３７を作成する（ステップＳ１４）。
【００８１】
概念データ・論理テーブル使用確率算出部２４は、論理テーブル使用確率内部テーブル３７と概念データ・論理テーブル間トレース情報テーブル３８とを用いて、概念データ・論理テーブル使用確率内部テーブル３９を作成する（ステップＳ１５）。
【００８２】
トレース候補確度算出部２５は、概念データ・論理テーブル使用確率内部テーブル３９と機能実行頻度内部テーブル３３とを用いて、トレース候補確度内部テーブル４０を作成して、トレース候補抽出装置１００における全体処理を終了する。
【００８３】
以下に、各部の詳細な処理手順を説明する。
【００８４】
図１７のステップＳ１１での処理を行う機能実行頻度取得部２０は、単位時間当たりの内部機能の実行頻度を算出する処理部である。入力は、要件・設計機能間トレース情報テーブル３１（図１８）と、システム機能・画面関連テーブル３２（図１８）と、画面情報テーブル３０ｂ（図４）とである。図１８は、機能実行頻度取得部２０での処理に係るテーブルのデータ例を示す図である。
【００８５】
要件・設計機能間トレース情報テーブル３１は、要件定義書で定義したシステム機能と設計書で定義した内部機能間に予め何らかの手段で設定されたトレース情報を格納したテーブルである。
・システム機能名フィールドは、要件定義書で定義したシステム機能を識別するための識別子（システム機能名）を示す。
・内部機能名フィールドは、設計書で定義した内部機能を識別するための識別子（内部機能名）で、同一レコードのシステム機能フィールドで特定されるシステム機能とトレース関係があることを示す。「トレース関係」とは、要件定義書で定義されるシステム機能に基づいて設計された内部機能に関して、システム機能から設計された内部機能へとトレースされたことを意味する。
【００８６】
要件・設計機能間トレース情報テーブル３１によって、予め、システム機能から内部機能へとトレースされた情報が管理される。図５の業務フローにおいて、例えば、システム機能ノード５３で表される領収書発行機能が、内部機能名で特定される領収書情報登録機能へとトレースされている。
【００８７】
システム機能・画面関連テーブル３２は、要件定義書で定義した業務フロー内で使われているシステム機能とオブジェクトフロー（FlowEdge type="objectFlow"）で接続されている画面を表すものである。
・システム機能名フィールドは、要件定義書で定義したシステム機能を識別するための識別子（システム機能名）を示す。
・画面フィールドは、業務フロー内でシステム機能名フィールドに示されたシステム機能とオブジェクトフロー５７で接続している画面を識別するための画面名を示す。
【００８８】
システム機能・画面関連テーブル３２によって、予め、要件定義内におけるシステム機能と画面との対応関係が管理される。図５の業務フローにおいて、例えば、システム機能ノード５３で表される領収書発行機能が、オブジェクトノード５５から参照している画面に対応付けられる。
【００８９】
機能実行頻度内部テーブル３３は、機能経路数算出部２１によって出力されるテーブルである。
・内部機能名フィールドは、設計書で定義する内部機能を識別するための識別子（内部機能名）を示す。
・実行頻度フィールドには、内部機能名フィールドで指定される内部機能の実行頻度が設定される。
【００９０】
図１９は、機能実行頻度取得部２０による処理を説明するためのフローチャート図である。図１９において、機能実行頻度取得部２０は、記憶部１３０に機能実行頻度内部テーブル３３を作成する（ステップＳ１５１０）。記憶部１３０内に機能実行頻度内部テーブル３３の領域が確保され初期化される。また、機能実行頻度取得部２０は、要件・設計機能間トレース情報テーブル３１からレコードを取得するためのインデックスｉを１に設定する（ステップＳ１５２０）。
【００９１】
機能実行頻度取得部２０は、記憶部１３０に格納されている要件・設計機能間トレース情報テーブル３１からｉ番目のレコードＲ１を取得して（ステップＳ１５３０）、ｉ番目のレコードＲ１を取得できたか否かを判断する（ステップＳ１５４０）。取得できなかった場合、機能実行頻度取得部２０は、この処理を終了する。
【００９２】
一方、機能実行頻度取得部２０は、システム機能・画面関連テーブル３２から、レコードＲ１のシステム機能名フィールド値をキーにレコードＲ２を取得する（ステップＳ１５５０）。システム機能・画面関連テーブル３２から、レコードＲ１のシステム機能名フィールド値と一致するレコードＲ２が抽出される。
【００９３】
機能実行頻度取得部２０は、レコードＲ２の画面名フィールド値をキーに画面情報テーブル３０ｂからレコードＲ３を取得する（ステップＳ１５６０）。そして、機能実行頻度内部テーブル３３からレコードＲ１の機能フィールド名と同一機能フィールド値を持つレコードＲ４を取得できたか否かを判断する（ステップＳ１５７０）。取得できた場合、機能実行頻度取得部２０は、レコードＲ４の実行頻度フィールドの値に、レコードＲ３の処理件数フィールド値を加算して（ステップＳ１５８０）、インデックスｉをインクリメントした後（ステップＳ１５９１）、ステップＳ１５３０へ戻り、上記同様の処理を実行する。
【００９４】
一方、ステップＳ１５７０において、機能実行頻度内部テーブル３３からレコードＲ４を取得できた場合、機能実行頻度取得部２０は、機能実行頻度内部テーブル３３にレコードを１つ挿入し、各フィールドに値を設定して（ステップＳ１５９０）、インデックスｉをインクリメントした後（ステップＳ１５９１）、ステップＳ１５３０へ戻り、上記同様の処理を実行する。
【００９５】
図１７のステップＳ１２での処理を行う機能経路数算出部２１は、内部機能とその処理経路、処理経路上で利用する論理テーブルを管理している経路情報テーブル３４から、内部機能毎の経路数を算出し、経路数内部テーブル３５を作成する処理部である。入力は、内部機能とその処理経路、処理経路上で利用する論理テーブルを記述した経路情報テーブル３４（図２０）である。出力は、経路数内部テーブル３５である。図２０は、機能経路数算出部２１での処理に係るテーブルのデータ例を示す図である。
【００９６】
経路情報テーブル３４は、予め作成され記憶部１３０に格納されている。
・内部機能名フィールドは、内部機能を識別するための識別子（内部機能名）である。
・経路名フィールドは、内部機能が実行される経路を識別するための識別子（経路名）である。
・論理テーブル名は、各経路上で利用する論理テーブルを識別するための識別子（テーブル名）である。
【００９７】
例えば、図１２に例示されるような領収書情報登録機能の処理フローでは、パス１とパス２とが存在する。領収書情報登録機能の処理フローにおいて、パス１で利用される論理テーブル、パス２で利用される論理テーブルの夫々を特定する論理テーブル名が管理されている。領収書情報登録機能の処理フローにおけるパス１では、論理テーブル名「領収情報」が対応付けられておる。また、パス２では、２つの論理テーブルが存在し、夫々を特定する論理テーブル名「領収情報」及び「取引先マスタ」が別のレコードで管理されている。
【００９８】
経路数内部テーブル３５は、機能経路数算出部２１によって作成されるテーブルである。
・内部機能名フィールドには、経路情報テーブル３４から取得した内部機能を識別するための識別子（内部機能名）が設定される。
・経路数フィールドは、内部機能毎の経路数を示す。
【００９９】
図２１は、機能経路数算出部２１による処理を説明するためのフローチャート図である。図２１において、機能経路数算出部２１は、記憶部１３０に経路数内部テーブル３５を作成する（ステップＳ１８１０）。記憶部１３０内に経路数内部テーブル３５の領域が確保され初期化される。また、機能経路数算出部２１は、経路情報テーブル３４からレコードを取得するためのインデックスｉを１に設定する（ステップＳ１８２０）。
【０１００】
機能経路数算出部２１は、記憶部１３０に格納されている経路情報テーブル３４からｉ番目のレコードＲを取得して（ステップＳ１８３０）、ｉ番目のレコードＲを取得できたか否かを判断する（ステップＳ１８４０）。取得できなかった場合、機能経路数算出部２１は、この処理を終了する。
【０１０１】
一方、ステップＳ１８４０において、取得できた場合、機能経路数算出部２１は、同一内部機能名のレコードを経路数内部テーブル３５から取得し、取得できたか否かを判断する（ステップＳ１８５０）。取得できた場合、機能経路数算出部２１は、取得したレコードの経路数に１加算して（ステップＳ１８６０）、インデックスｉをインクリメントした後（ステップＳ１８８０）、ステップＳ１８３０へ戻り、上述同様の処理を繰り返す。
【０１０２】
一方、ステップＳ１８５０において、同一内部機能名のレコードを経路数内部テーブル３５から取得できなかった場合、機能経路数算出部２１は、経路数内部テーブル３５に１レコードを挿入し、内部機能名フィールド値を、ステップＳ１８３０にて取得したレコードＲの内部機能名に設定して、経路数を１に設定する（ステップＳ１８７０）。機能経路数算出部２１は、インデックスｉをインクリメントした後（ステップＳ１８８０）、ステップＳ１８３０へ戻り、上述同様の処理を繰り返す。
【０１０３】
図１７のステップＳ１３での処理を行う論理テーブル使用経路数算出部２２は、内部機能の中で使用されている論理テーブルが、その内部機能内の処理経路中で使用される経路数を算出する処理部である。入力は、機能経路数算出部２１での入力と同じ経路情報テーブル３４（図２０）である。出力は、論理テーブル使用経路数内部テーブル３６（図２２）である。
【０１０４】
論理テーブル使用経路数内部テーブル３６は、論理テーブル使用経路数算出部２２によって作成され、下記のフィールドを有する。
・内部機能名フィールドには、経路情報テーブル３４から取得した内部機能を識別するための識別子（内部機能名）が設定される。
・論理テーブル名フィールドには、経路情報テーブル３４から取得した、内部機能の処理経路上で参照される論理テーブルの識別子（論理テーブル名）が設定される。
・使用経路数フィールドには、論理テーブル使用経路数算出部２２によって算出された、内部機能が論理テーブルを使用する経路数が設定される。
【０１０５】
図２３は、論理テーブル使用経路数算出部２２による処理を説明するためのフローチャート図である。図２３において、論理テーブル使用経路数算出部２２は、記憶部１３０に論理テーブル使用経路数内部テーブル３６を作成する（ステップＳ２０１０）。記憶部１３０内に論理テーブル使用経路数内部テーブル３６の領域が確保され初期化される。また、論理テーブル使用経路数算出部２２は、経路情報テーブル３４からレコードを取得するためのインデックスｉを１に設定する（ステップＳ２０２０）。
【０１０６】
論理テーブル使用経路数算出部２２は、記憶部１３０に格納されている経路情報テーブル３４からｉ番目のレコードＲを取得して（ステップＳ２０３０）、ｉ番目のレコードＲを取得できたか否かを判断する（ステップＳ２０４０）。取得できなかった場合、使用経路数算出部２２は、この処理を終了する。
【０１０７】
一方、ステップＳ２０４０において、取得できた場合、論理テーブル使用経路数算出部２２は、レコードＲの内部機能名及び論理テーブル名を持つレコードを論理テーブル使用経路数内部テーブル３６から取得し、取得できたか否かを判断する（ステップＳ２０５０）。取得できた場合、論理テーブル使用経路数算出部２２は、取得したレコードの経路数に１加算して（ステップＳ２０６０）、インデックスｉをインクリメントした後（ステップＳ２０８０）、ステップＳ２０３０へ戻り、上述同様の処理を繰り返す。
【０１０８】
一方、ステップＳ２０５０において、同一内部機能名と論理テーブル名のレコードを論理テーブル使用経路数内部テーブル３６から取得できなかった場合、論理テーブル使用経路数算出部２２は、論理テーブル使用経路数内部テーブル３６に１レコードを挿入し、内部機能名フィールド値を、ステップＳ２０３０にて取得したレコードＲの内部機能名に、論理テーブル名フィールド値をレコードRの論理テーブル名フィールドに設定して、使用経路数を１に設定する（ステップＳ２０７０）。機能経路数算出部２１は、インデックスｉをインクリメントした後（ステップＳ２０８０）、ステップＳ２０３０へ戻り、上述同様の処理を繰り返す。
【０１０９】
図１７のステップＳ１４での処理を行う論理テーブル使用確率算出部２３は、内部機能と論理テーブルの組み合せに対して、内部機能内の処理経路で論理テーブルが使われる確率を算出する処理部である。入力は、論理テーブル使用経路数内部テーブル３６（図２２）と、経路数内部テーブル３５（図２０）とである。出力は、論理テーブル使用確率内部テーブル３７（図２４）である。
【０１１０】
論理テーブル使用確率内部テーブル３７は、論理テーブル使用確率算出部２３によって作成され、図２４に示されるように以下のフィールドを有する。
・内部機能名フィールドには、論理テーブル使用経路数内部テーブル３６から取得した内部機能名が設定される。
・論理テーブル名フィールドには、論理テーブル使用経路数内部テーブル３６から取得した論理テーブル名が設定される。
・使用確率フィールドには、経路数内部テーブル３５の経路数フィールド値と論理テーブル使用経路数内部テーブル３６の経路数フィールド値とから得られた使用確率が設定される。
【０１１１】
図２５は、論理テーブル使用確率算出部２３による処理を説明するためのフローチャート図である。図２５において、論理テーブル使用確率算出部２３は、記憶部１３０に論理テーブル使用確率内部テーブル３７を作成する（ステップＳ２２１０）。記憶部１３０内に論理テーブル使用確率内部テーブル３７の領域が確保され初期化される。また、論理テーブル使用確率算出部２３は、論理テーブル使用経路数内部テーブル３６からレコードを取得するためのインデックスｉを１に設定する（ステップＳ２２２０）。
【０１１２】
論理テーブル使用確率算出部２３は、記憶部１３０に格納されている論理テーブル使用経路数内部テーブル３６からｉ番目のレコードＲ１を取得して（ステップＳ２２３０）、取得できなかった場合、論理テーブル使用確率算出部２３は、この処理を終了する。
【０１１３】
一方、ステップＳ２２４０において、取得できた場合、論理テーブル使用確率算出部２３は、経路数内部テーブル３５の内部機能名フィールドの値が、ステップＳ２２３０で取得したレコードＲ１の内部機能名フィールド値と同じレコードＲ２を取得する（ステップＳ２２５０）。そして、論理テーブル使用確率算出部２３は、論理テーブル使用確率内部テーブル３７に新しいレコードＲｎｅｗを挿入する（ステップＳ２２６０）。
【０１１４】
論理テーブル使用確率算出部２３は、レコードＲｎｅｗのフィールドに値を設定する（ステップＳ２２７０）。論理テーブル使用確率算出部２３は、内部機能名フィールドに、レコードＲ１の内部機能名フィールド値を設定し、論理テーブルフィールドに、レコードＲ１の論理テーブルフィールド値を設定する。また、使用確率フィールドに、レコードＲ１の使用経路数フィールド値をレコードＲ２の経路数フィールド値で除算した値を設定する。
【０１１５】
レコードＲｎｅｗのフィールドを設定した後、論理テーブル使用確率算出部２３は、インデックスｉをインクリメントした後（ステップＳ２２８０）、ステップＳ２２３０へ戻り、上述同様の処理を繰り返す。
【０１１６】
図１７のステップＳ１５での処理を行う概念データ・論理テーブル使用確率算出部２４は、算出済みの機能内の処理経路で論理テーブルが使われる確率の組み合せに対して、論理テーブルのトレース先の概念データを関連付ける処理部である。入力は、論理テーブル使用確率内部テーブル３７（図２４）と、概念データ・論理テーブル間トレース情報テーブル３８（図２６）とである。出力は、概念データ・論理テーブル使用確率内部テーブル３９（図２６）である。
【０１１７】
入力される概念データ・論理テーブル間トレース情報テーブル３８は、予め記憶部１３０に用意されたテーブルであり、図２６に示されるように以下のフィールドを有する。
・概念データ名フィールドは、要件定義書で定義される概念データを識別するための識別子（概念データ名）を示す。
・論理テーブル名フィールドは、設計書で定義される論理テーブルを識別するための識別子（論理テーブル名）を示し、概念データ名フィールドに示される概念データとトレース関係にあるものが設定されている。
【０１１８】
上記概念データ、論理テーブルの内部テーブルは、業務フローから抽出できるシステム機能と概念データ間の連携と予め与えられている要件・設計機能間トレース情報テーブル３１と処理フローから得られる機能・論理テーブル間の関連を用いて作成され、予め記憶部１３０に記憶されている。
【０１１９】
概念データ・論理テーブル使用確率内部テーブル３９（図２６）は、概念データ・論理テーブル使用確率算出部２４によって作成され、図２６に示されるように以下のフィールドを有する。
・概念データ名フィールドには、内部機能名フィールドに設定されている内部機能名で識別される内部機能のトレース先である概念データの識別子（概念データ名）が設定される。
・内部機能名フィールドには、内部機能の識別子（内部機能名）が設定される。
・論理テーブルフィールドには、内部機能フィールドに設定されている内部機能名で識別される内部機能で使われている論理テーブル名が設定される。
・使用確率フィールドには、内部機能内の処理経路で論理テーブルが使われる確率が設定される。
【０１２０】
図２７は、概念データ・論理テーブル使用確率算出部２４による処理を説明するためのフローチャート図である。図２７において、概念データ・論理テーブル使用確率算出部２４は、記憶部１３０に概念データ・論理テーブル使用確率内部テーブル３９を作成する（ステップＳ２５１０）。記憶部１３０内に概念データ・論理テーブル使用確率内部テーブル３９の領域が確保され初期化される。また、概念データ・論理テーブル使用確率算出部２４は、論理テーブル使用確率内部テーブル３７からレコードを取得するためのインデックスｉを１に設定する（ステップＳ２５２０）。
【０１２１】
概念データ・論理テーブル使用確率算出部２４は、記憶部１３０に格納されている論理テーブル使用確率内部テーブル３７からｉ番目のレコードＲ１を取得して（ステップＳ２５３０）、取得できなかった場合、概念データ・論理テーブル使用確率算出部２４は、この処理を終了する。
【０１２２】
一方、ステップＳ２５４０において、取得できた場合、概念データ・論理テーブル使用確率算出部２４は、概念データ・論理テーブル間トレース情報テーブル３８の論理テーブル名フィールドの値が、レコードＲ１の論理テーブル名フィールド値と同じレコードＲ２を取得する（ステップＳ２５５０）。そして、概念データ・論理テーブル使用確率算出部２４は、概念データ・論理テーブル使用確率内部テーブル３９に新しいレコードＲｎｅｗを挿入する（ステップＳ２５６０）。
【０１２３】
概念データ・論理テーブル使用確率算出部２４は、レコードＲｎｅｗのフィールドに値を設定する（ステップＳ２５７０）。概念データ・論理テーブル使用確率算出部２４は、概念データフィールドに、レコードＲ２の概念データフィールド値を設定し、内部機能名フィールドに、レコードＲ１の内部機能名フィールド値を設定し、論理テーブルフィールドに、レコードＲ１の論理テーブルフィールド値を設定する。また、使用確率フィールドに、レコードＲ１の使用確率フィールド値を設定する。
【０１２４】
レコードＲｎｅｗのフィールドを設定した後、概念データ・論理テーブル使用確率算出部２４は、インデックスｉをインクリメントした後（ステップＳ２５８０）、ステップＳ２５３０へ戻り、上述同様の処理を繰り返す。
【０１２５】
図１７のステップＳ１６での処理を行うトレース候補確度算出部２５は、トレース関係にある概念データと論理テーブルに対し、トレースされることの確からしさを示す確度を算出する処理部である。入力は、機能実行頻度内部テーブル３３（図１８）と、概念データ・論理テーブル使用確率内部テーブル３９（図２６）とである。出力は、トレース候補確度内部テーブル４０（図２８）である。
【０１２６】
トレース候補確度内部テーブル４０は、トレース候補確度算出部２５によって作成され、記憶部１３０に出力されるテーブルであり、図２８に示すように以下のフィールドを有する。
・概念データ名フィールドには、概念データ・論理テーブル使用確率内部テーブル３９の概念データ名フィールドの値が設定される。
・論理テーブル名フィールドには、概念データ・論理テーブル使用確率内部テーブル３９の論理テーブル名フィールドの値が設定される。
・確度フィールドには、概念データ・論理テーブル使用確率内部テーブル３９の使用確率フィールド値に、機能実行頻度内部テーブル３３の実行頻度フィールド値を乗算した値が設定される。
【０１２７】
図２９は、トレース候補確度算出部２５による処理を説明するためのフローチャート図である。図２９において、トレース候補確度算出部２５は、記憶部１３０にトレース候補確度内部テーブル４０を作成する（ステップＳ２７１０）。記憶部１３０内にトレース候補確度内部テーブル４０の領域が確保され初期化される。また、トレース候補確度算出部２５は、概念データ・論理テーブル使用確率内部テーブル３９からレコードを取得するためのインデックスｉを１に設定する（ステップＳ２７２０）。
【０１２８】
トレース候補確度算出部２５は、記憶部１３０に格納されている概念データ・論理テーブル使用確率内部テーブル３９からｉ番目のレコードＲ１を取得して（ステップＳ２７３０）、取得できなかった場合、トレース候補確度算出部２５は、この処理を終了する。
【０１２９】
一方、ステップＳ２７４０において、取得できた場合、トレース候補確度算出部２５は、概念データ・論理テーブル使用確率内部テーブル３９の論理テーブル名フィールドの値が、レコードＲ１の論理テーブル名フィールド値と同じレコードＲ２を取得する（ステップＳ２７５０）。
【０１３０】
そして、トレース候補確度算出部２５は、トレース候補確度内部テーブル４０に１レコードを挿入して、各フィールドに値を設定する（ステップＳ２７６０）。挿入したレコードにおいて、概念データ名フィールドにレコードＲ１の概念データ名フィールド値を設定示論理、テーブル名フィールドにレコードＲ１の論理テーブル名フィールド値を設定する。また、確度フィールドに、レコードＲ１の使用確率フィールド値にレコードＲ２の実行頻度フィールド値を乗算した値を設定する。
【０１３１】
挿入したレコードのフィールドを設定した後、トレース候補確度算出部２５は、インデックスｉをインクリメントした後（ステップＳ２７７０）、ステップＳ２７３０へ戻り、上述同様の処理を繰り返す。
【０１３２】
次に、上述した本実施例によって出力されたトレース候補確度内部テーブル４０を利用した利用形態について説明する。図３０は、トレース候補確度内部テーブルを利用した利用形態に係る構成例を示す図である。図３０において、図２に示す構成部分と同様の構成部分には同一符号を付し、その説明を省略する。
【０１３３】
図３０に示す構成では、図２に示す構成部分に加えて、トレース候補確度内部テーブル４０を利用して表示装置１５又は出力装置１６に出力する出力部２６を更に有する。出力部２６は、複数のトレース先の候補を、トレース先の候補としての確からしさを示す確度とを対応付けて出力する。
【０１３４】
出力部２６は、ある概念データに対して複数の論理テーブルがトレース先の候補として存在する時、トレース候補確度内部テーブル４０を利用して、どの候補が最も確からしいかをトレース候補確度内部テーブル４０から取得して、トレース先の候補のうち確度の高いものを上位に（降順で）出力する。この場合、図２８のテーブル例に示すように、概念データ「金銭受領情報」は、論理テーブル「領収情報」へ確度「１００」でトレース先候補であることを示し、論理テーブル「取引先マスタ」へ確度「５０」でトレース先候補であることを示したトレース先一覧が出力されればよい。
【０１３５】
また、出力部２６によるトレース候補確度内部テーブル４０の他の利用方法として、論理テーブルが概念データに対してどの程度の確度でトレースされているかを、概念データから論理テーブルがトレースされる確度を用いることもできる。
【０１３６】
この出力部２６による他の利用方法によって、表示装置１５に表示された画面例について図３１で説明する。図３１は、画面例を示す図である。図３１（Ａ）に示す画面例では、論理テーブル「領収情報」が概念データからトレースされる確度の降順に示した候補一覧８１が表示されている。
【０１３７】
候補一覧８１によって、開発者は、論理テーブル「領収情報」が、確度「１００」で概念データ「金銭受領情報」からトレースされ、確度「３０」で概念データ「受注伝票」からトレースされ、確度「２０」で概念データ「出荷伝票」からトレースされていることが分かる。
【０１３８】
図３１（Ｂ）に示す画面例では、論理テーブル「取引先マスタ」が概念データからトレースされる確度の降順に示した候補一覧８２が表示されている。
【０１３９】
候補一覧８２によって、開発者は、論理テーブル「取引先マスタ」が、確度「７０」で概念データ「顧客情報」からトレースされ、確度「３０」で概念データ「金銭受領情報」からトレースされ、確度「２０」で概念データ「出荷伝票」からトレースされていることが分かる。
【０１４０】
このような表示によって、開発者によるトレース設定作業の工数を削減することができる。
【０１４１】
また、他の実施例として、下位の業務フローが存在する場合、サブフローを利用して業務フローや処理フローを階層的に作成することもできる。
【０１４２】
上述したように、本実施例では、要件定義書で定義されるユーザが行う業務に対応させたシステム機能（トレース元）から、設計書で定義される内部機能（トレース先）へとトレースされる。システム機能と要件定義書で定義されるユーザが操作する画面等のユーザインタフェースとの対応付けと、ユーザが画面等のユーザインタフェースを操作した頻度を示す情報とを用いることによって、トレース関係毎に確度を算出する。
【０１４３】
コンピュータソフトウェアを作成する際に、ユーザからの仕様を定義する要件定義書が作成され、その要件定義書の記載内容をコンピュータに行わせる機能（内部機能）として開発するための内容に落とし込んだ設計書が作成される。設計する際には、要件定義書の概念データから設計書の論理テーブルへとトレースされる。
【０１４４】
要件定義書で定義される概念データと、設計書で定義される論理テーブルとは整合が取れている必要がある。本実施例に係るトレース候補抽出装置１００による結果を用いることで、要件定義書の概念データに対応するであろう論理テーブルを確度と共に示すことができる。
【０１４５】
要件定義書の概念データが変更された際には、設計者は、トレースされる設計上の複数の論理テーブルのうち、その変更に最も影響のある論理テーブルを容易に知ることができる。
【０１４６】
一方で、設計上の変更が必要となった場合であっても、変更対象となる設計上の概念データから、設計時に作成されたトレース関係と、算出した確度とに基づいて、設計上の変更によって、影響を与える要件定義書の概念データを知ることができると共に、影響の大きさを確度によって知ることができる。
【０１４７】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【０１４８】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
設計書で定義された論理テーブルを使用する内部機能の内部機能名と、要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルと、該要件定義書で定義される概念データの概念データ名と、該概念データからトレースされる論理テーブルの論理テーブル名と、該内部機能名との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルとを記憶した記憶部と、
前記記憶部に記憶された前記概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、該レコードの前記使用確率と、該レコードの内部機能名と一致する前記機能実行頻度内部テーブルのレコードの前記実行頻度とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出するトレース候補確度算出部と
を有することを特徴とするトレース候補抽出装置。
（付記２）
前記記憶部は、更に、前記内部機能名と、前記論理テーブル名と、該内部機能が前記論理テーブルを使用する使用確率とを対応付けた論理テーブル使用確率内部テーブルと、前記概念データ名と該概念データ名の概念データからトレースされる前記論理テーブルの前記論理テーブル名とを対応付けた概念データ・論理テーブル間トレース情報テーブルとを記憶し、
前記概念データ・論理テーブル使用確率内部テーブルを前記記憶部に作成し、該記憶部に記憶された前記論理テーブル使用確率内部テーブルから順にレコードを取得し、該レコードの内部機能名及び前記論理テーブル名と、該レコードの論理テーブル名と一致する前記概念データ・論理テーブル間トレース情報テーブルのレコードの前記使用確率とを該概念データ・論理テーブル使用確率内部テーブル内に対応付けて記憶する概念データ・論理テーブル使用確率算出部を有することを特徴とする付記１記載のトレース候補抽出装置。
（付記３）
前記記憶部は、更に、前記内部機能名と、該内部機能名で識別される内部機能が使用する論理テーブルの前記論理テーブル名と、該内部機能による処理フローにおいて該論理テーブルが使用される使用経路数とを対応付けた論理テーブル使用経路数内部テーブルと、該内部機能名と該内部機能名で識別される内部機能による処理フローに存在する経路数とを対応付けた経路数内部テーブルとを記憶し、
前記論理テーブル使用確率内部テーブルを前記記憶部に作成し、該記憶部に記憶された前記論理テーブル使用経路数内部テーブルから順にレコードを取得し、該レコードの内部機能名及び論理テーブル名と、該レコードの使用経路数を該レコードの該内部機能名と一致する経路数内部テーブルのレコードの前記経路数で除算した値とを該論理テーブル使用確率内部テーブル内に対応付けて記憶する論理テーブル使用確率算出部を有することを特徴とする付記２記載のトレース候補抽出装置。
（付記４）
前記記憶部は、更に、前記内部機能名と、前記経路を特定する経路名と、該経路で使用される論理テーブルの論理テーブル名とを対応付けた経路情報テーブルを記憶し、
前記論理テーブル使用経路数内部テーブルを前記記憶部に作成し、該記憶部に記憶された前記対応付けた経路情報テーブルから順に同一内部機能名及び論理テーブル名のレコードを取得する毎に前記経路数に１加算して、該論理テーブル使用経路数内部テーブル内に記憶する論理テーブル使用経路数算出部を有することを特徴とする付記３記載のトレース候補抽出装置。
（付記５）
前記経路数内部テーブルを前記記憶部に作成し、該記憶部に記憶された前記対応付けた経路情報テーブルから順に同一内部機能名のレコードを取得する毎に前記経路数に１加算して、該経路数内部テーブル内に記憶する機能経路数算出部を有することを特徴とする付記４記載のトレース候補抽出装置。
（付記６）
前記ユーザインタフェースは、前記要件定義書で定義される画面であり、
前記記憶部は、更に、前記画面の画面名と、該画面を用いて処理された前記処理件数とを対応付けた画面情報テーブルと、前記要件定義書で定義されるシステム機能のシステム機能名と、前記設計書で定義される前記内部機能の前記内部機能名とを対応付けた要件・設計機能間トレース情報テーブルと、該システム機能名と前記画面の画面名とを対応付けたシステム機能・画面関連テーブルとを記憶し、
前記機能実行頻度内部テーブルを前記記憶部に作成し、該記憶部に記憶された前記要件・設計機能間トレース情報テーブルから順にレコードＲ１を取得し、該取得したレコードＲ１のシステム機能名と一致するレコードＲ２を前記システム機能・画面関連テーブルから取得して、該一致するレコードＲ２の画面名に一致するレコードＲ３を前記画面情報テーブルから取得する毎に該一致したレコードＲ３の処理件数を、該機能実行頻度内部テーブルの前記実行頻度に加算する機能実行頻度取得部を有することを特徴とする付記５記載のトレース候補抽出装置。
（付記７）
記憶部に記憶された、要件定義書で定義される概念データの概念データ名と、概念データからトレースされる論理テーブルの論理テーブル名と、該論理テーブルを使用する内部機能との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、
前記記憶部に記憶された、設計書で定義された論理テーブルを使用する内部機能の内部機能名と、前記要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルにおいて、該取得したレコードの内部機能名と一致するレコードの前記実行頻度と、前記取得したレコードの前記使用確率とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出する、
処理をコンピュータに実行させるプログラム。
（付記８）
コンピュータによって実行されるトレース候補抽出方法であって、
記憶部に記憶された、要件定義書で定義される概念データの概念データ名と、概念データからトレースされる論理テーブルの論理テーブル名と、該論理テーブルを使用する内部機能との組み合せ毎に、該内部機能が使用する該論理テーブルの使用確率を対応付けた概念データ・論理テーブル使用確率内部テーブルから順にレコードを取得し、
前記記憶部に記憶された、設計書で定義された論理テーブルを使用する内部機能の内部機能名と、前記要件定義書で定義されるユーザインタフェースを用いて処理された処理件数に基づく該内部機能が実行された実行頻度とを対応付けた機能実行頻度内部テーブルにおいて、該取得したレコードの内部機能名と一致するレコードの前記実行頻度と、前記取得したレコードの前記使用確率とを乗算することによって、前記概念データから前記論理テーブルへとトレースされる確度を算出する、
処理をコンピュータに実行させるトレース候補抽出方法。
【符号の説明】
【０１４９】
１１          ＣＰＵ
１２          メモリユニット
１３          表示ユニット
１４          出力ユニット
１５          入力ユニット
１６          通信ユニット
１７          記憶装置
１８          ドライバ
１９          記憶媒体
２０        機能実行頻度取得部
２１        機能経路数算出部
２２        論理テーブル使用経路数算出部
２３        論理テーブル使用確率算出部
２４        概念データ・論理テーブル使用確率算出部
２５        トレース候補確度算出部
３０        画面データ
３０ａ      画面一覧
３０ｂ      画面情報テーブル
３０ｆ      業務フローデータ
３１        要件・設計機能間トレース情報テーブル
３２        システム機能・画面関連テーブル
３３        機能実行頻度内部テーブル
３４        経路情報テーブル
３５        経路数内部テーブル
３６        論理テーブル使用経路数内部テーブル
３７        論理テーブル使用確率内部テーブル
３８        概念データ・論理テーブル間トレース情報テーブル
３９        概念データ・論理テーブル使用確率内部テーブル
４０        トレース候補確度内部テーブル
１００      トレース候補抽出装置
【図１】
2013171411.tif 000003
【図２】
2013171411.tif 000004
【図３】
2013171411.tif 000005
【図４】
2013171411.tif 000006
【図５】
2013171411.tif 000007
【図６】
2013171411.tif 000008
【図７】
2013171411.tif 000009
【図８】
2013171411.tif 000010
【図９】
2013171411.tif 000011
【図１０】
2013171411.tif 000012
【図１１】
2013171411.tif 000013
【図１２】
2013171411.tif 000014
【図１３】
2013171411.tif 000015
【図１４】
2013171411.tif 000016
【図１５】
2013171411.tif 000017
【図１６】
2013171411.tif 000018
【図１７】
2013171411.tif 000019
【図１８】
2013171411.tif 000020
【図１９】
2013171411.tif 000021
【図２０】
2013171411.tif 000022
【図２１】
2013171411.tif 000023
【図２２】
2013171411.tif 000024
【図２３】
2013171411.tif 000025
【図２４】
2013171411.tif 000026
【図２５】
2013171411.tif 000027
【図２６】
2013171411.tif 000028
【図２７】
2013171411.tif 000029
【図２８】
2013171411.tif 000030
【図２９】
2013171411.tif 000031
【図３０】
2013171411.tif 000032
【図３１】
2013171411.tif 000033