(57)【要約】【課題】要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生を可能とする。【解決手段】業務仕様再生装置１００を、仕様再生対象である業務システムのソースコード、業務単位の画面遷移リスト、およびアクセス基点リストを格納した記憶装置１０１と、アクセス基点リストが示す該当処理に関して、業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、アクセス基点リストが示すコード片および所属ソースに基づきソースコードから抽出し、加工処理と実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と画面遷移リストとに基づいて業務単位の決定表を生成し出力装置１０６に表示する処理を実行する演算装置１０４を含む構成とする。
2016143019.tif 000002
【特許請求の範囲】
【請求項１】
仕様再生対象である業務システムのソースコードと、業務単位の画面遷移リストと、業務データを所定処理に利用する前記ソースコード中の各コード片と該当業務データの所属ソースの関係を規定したアクセス基点リストと、を格納した記憶装置と、
前記アクセス基点リストが示す該当処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行する演算装置と、
を備えることを特徴とする業務仕様再生装置。
【請求項２】
前記演算装置は、
前記アクセス基点リストが示す出力処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行するものである、
ことを特徴とする請求項１に記載の業務仕様再生装置。
【請求項３】
前記演算装置は、
前記業務単位の決定表を生成する処理に際し、
前記ソースコードから前記画面遷移リストにおける画面毎の実行パスを抽出して、前記抽出した該当実行パス中のコード片間の依存関係を特定し、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものである、
ことを特徴とする請求項１に記載の業務仕様再生装置。
【請求項４】
前記演算装置は、
前記業務単位の決定表を生成する処理に際し、
前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、
前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、
前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものである、
するものである、
ことを特徴とする請求項１に記載の業務仕様再生装置。
【請求項５】
前記演算装置は、
前記業務単位の決定表を生成する処理に際し、
前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、
前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、
前記業務処理コードテーブルにおける所定レコードの所定モジュールを業務処理コード依存関係テーブルと照合し、該当モジュールを構成するコード片に合致するレコードを抽出し、
前記抽出したレコードと前記アクセス基点リストを照合し、前記アクセス基点リストのレコードのうち、処理が出力であるレコードのコード片と一致するコード片を持つレコードを選択し、
前記選択した、前記出力の処理までのデータフローに含まれるコード片を、前記抽出したコード片の中から抽出し、前記コード片のうち業務データの加工処理に含まれるものを抽出し、
前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれる前記コード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものである、
ことを特徴とする請求項１に記載の業務仕様再生装置。
【請求項６】
仕様再生対象である業務システムのソースコードと、業務単位の画面遷移リストと、業務データを所定処理に利用する前記ソースコード中の各コード片と該当業務データの所属ソースの関係を規定したアクセス基点リストと、を格納した記憶装置を備えた情報処理装置が、
前記アクセス基点リストが示す該当処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行する、
ことを特徴とする業務仕様再生方法。
【請求項７】
前記情報処理装置が、
前記アクセス基点リストが示す出力処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行する、
ことを特徴とする請求項６に記載の業務仕様再生方法。
【請求項８】
前記情報処理装置が、
前記業務単位の決定表を生成する処理に際し、
前記ソースコードから前記画面遷移リストにおける画面毎の実行パスを抽出して、前記抽出した該当実行パス中のコード片間の依存関係を特定し、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、
ことを特徴とする請求項６に記載の業務仕様再生方法。
【請求項９】
前記情報処理装置が、
前記業務単位の決定表を生成する処理に際し、
前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、
前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、
前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、
ことを特徴とする請求項６に記載の業務仕様再生方法。
【請求項１０】
前記情報処理装置が、
前記業務単位の決定表を生成する処理に際し、
前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、
前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、
前記業務処理コードテーブルにおける所定レコードの所定モジュールを業務処理コード依存関係テーブルと照合し、該当モジュールを構成するコード片に合致するレコードを抽出し、
前記抽出したレコードと前記アクセス基点リストを照合し、前記アクセス基点リストのレコードのうち、処理が出力であるレコードのコード片と一致するコード片を持つレコードを選択し、
前記選択した、前記出力の処理までのデータフローに含まれるコード片を、前記抽出したコード片の中から抽出し、前記コード片のうち業務データの加工処理に含まれるものを抽出し、
前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれる前記コード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、
ことを特徴とする請求項６に記載の業務仕様再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務仕様再生装置および業務仕様再生方法に関する。
【背景技術】
【０００２】
業務システムのリプレイスや保守開発に際し、該当業務システムを利用する業務のうち追加、変更が生じる業務に関しては、その要件がユーザから具体的に提示されることが一般的である。一方、そうした追加、変更が生じないその他の業務については、現行システム仕様に準ずるといった形で通知される程度で、明示的に仕様が提示されないことがある。そのため、現行システムの振る舞いから、現行の各業務に対するシステム仕様を再生する必要がある。【０００３】
ところが、長年利用されてきた業務システムでは、開発時に作成された要件や仕様に関するドキュメントが保管、保守されていないケースが頻発する。その結果、要件定義担当者は、既存システムの利用部門や運用部門に対するヒアリングやシステムの振る舞いを調査するなどし、システム仕様の再生を行うこととなる。他方、そうしたヒアリングの対象となる運用部門は、既存システムの利用者である業務部門の業務には精通していない場合が多い。そのため、業務仕様の把握漏れや調査遅延が生じ、要件定義工程の長期化、高コスト化が起こりやすくなってしまうという問題がある。【０００４】
こうした業務システムのシステム仕様を再生する従来技術として、以下の技術が提案されている。すなわち、ソースプログラムから、従来に比較して、細かく、かつ一定の粒度により、業務モデル及び物理モデルを対応させて抽出するとの目的の下、ソースプログラムのソースコードから、コード種類、コード組合せ及びコード配置と、処理機能を示す単位プログラムとの対応関係が予め設定された第１ルールに従い、ソースコードから、処理機能に対応する単位プログラムを抽出する処理機能抽出部と、単位プログラムの処理機能の種類、組合せ及び配置順番と、単位プログラムの配置順番の変更、統廃合処理との対応関係を予め設定した第２ルールに従い、単位プログラムの配置順の変更、統合及び廃棄の統廃合処理を行い、物理モデルとして出力する処理機能統廃合部とを有するリバースエンジニアリング支援装置（特許文献１参照）などが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８２０９２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術によれば、ソースコードから各業務に対応したシステム仕様情報を得ることができる。しかし、業務とシステム仕様との対応関係を定めたルールを予め用意することが前提であり、そうした対応関係に精通する人物やドキュメントの存在は必須条件となってしまう。上述のように、開発時に作成される要件や仕様に関するドキュメントが保管、保守されていない状況にあれば、従来技術により仕様再生は実行出来ない。また同様に、システム運用部門が該当業務に精通していない場合も、従来技術による仕様再生は実行出来ない。【０００７】
そこで本発明の目的は、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生を可能とする技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明の業務仕様再生装置は、仕様再生対象である業務システムのソースコードと、業務単位の画面遷移リストと、業務データを所定処理に利用する前記ソースコード中の各コード片と該当業務データの所属ソースの関係を規定したアクセス基点リストと、を格納した記憶装置と、前記アクセス基点リストが示す該当処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行する演算装置とを備えることを特徴とする。【０００９】
また、本発明の業務仕様再生方法は、仕様再生対象である業務システムのソースコードと、業務単位の画面遷移リストと、業務データを所定処理に利用する前記ソースコード中の各コード片と該当業務データの所属ソースの関係を規定したアクセス基点リストと、を格納した記憶装置を備えた情報処理装置が、前記アクセス基点リストが示す該当処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態における業務仕様再生装置の構成例を示す図である。
【図２】本実施形態の業務仕様再生方法の処理手順例１を示すフロー図である。
【図３】本実施形態における対象業務システムのソースコードの例を示す図である。
【図４】本実施形態における対象業務システムの業務データアクセス基点リストの例を示す図である。
【図５】本実施形態における対象業務システムの業務に対応する画面遷移リストの例を示す図である。
【図６】本実施形態における業務処理コードテーブルの例を示す図である。
【図７】本実施形態の業務仕様再生方法の処理手順例２を示すフロー図である。
【図８】本実施形態における画面別業務処理コードの依存関係テーブルの例を示す図である
【図９】本実施形態の業務仕様再生方法の処理手順例３を示すフロー図である。
【図１０】本実施形態における画面別業務データ出力処理の抽出結果の例を示す図である。
【図１１】本実施形態の業務仕様再生方法の処理手順例４を示すフロー図である。
【図１２】本実施形態における業務データ出力処理ごとの加工処理の抽出結果の例を示す図である。
【図１３】本実施形態における業務データ加工処理テーブルの例を示す図である。
【図１４】本実施形態における業務データ加工処理ごとの実行条件候補の抽出結果の例を示す図である。
【図１５】本実施形態における実行判定処理テーブルの例を示す図である。
【図１６】本実施形態における業務データ加工処理の実行条件の例を示す図である。
【図１７】本実施形態における画面単位決定表の例を示す図である。
【図１８】本実施形態における業務単位決定表の例を示す図である。
【発明を実施するための形態】
【００１２】
−−−システム構成の例−−−
【００１３】
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は本実施形態の業務仕様再生装置１００の構成例を示す図である。図１に示す業務仕様再生装置１００は、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生を可能とする情報処理装置である。換言すると、要件定義担当者が容易に参照できる情報から、既存の業務システムが、ユーザの行うどの業務に対応して、どのような条件下でどの業務データをどのように加工してどの業務データを生成するのかを示すシステム仕様を再生するための情報処理装置である。
【００１４】
こうした業務仕様再生装置１００のハードウェア構成は以下の如くとなる。業務仕様再生装置１００は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶装置１０１、ＲＡＭなど揮発性記憶素子で構成されるメモリ１０３、メモリ１０３に保持されるプログラム１１０〜１１５を実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうＣＰＵ１０４（演算装置）、担当者等からのデータ入力や指示を受け付けるキーボードやマウス等の入力装置１０５、処理結果を出力するディスプレイ等の出力装置１０６を備える。
【００１５】
なお、メモリ１０３内には、本実施形態の業務仕様再生装置１００として必要な機能を実装する為のプログラム１１０〜１１５が記憶されている。また、記憶装置１０１内には、各種処理に必要なデータ類１２１〜１２８が記憶されている。これらデータ類１２１〜１２８の詳細については後述する。
−−−機能の例−−−
【００１６】
続いて、本実施形態の業務仕様再生装置１００が備える機能について説明する。上述したように、以下に説明する機能は、例えば業務仕様再生装置１００がメモリ１０３で備えるプログラム１１０〜１１５をそれぞれ実行することで実装される機能と言える。
【００１７】
こうした業務仕様再生装置１００は、業務仕様再生対象となる業務システムのソースコードを、記憶装置１０１上のソースコード１２０として保存する機能を備えている。このソースコード１２０は、業務仕様再生装置１００を用いて仕様再生を行う担当者が、業務仕様再生対象の業務システムのソースコードを入力装置１０５から適宜に入力したものである。
【００１８】
また、業務仕様再生装置１００は、上述の担当者が入力装置１０５から入力する業務データアクセス基点リストを、記憶装置１０１上の業務データアクセス基点リスト１２１として保存する機能を備えている。業務データアクセス基点とは、上述の業務システムのソースコード１２０に含まれるコード片のうち業務システムの画面上のデータ項目または業務システムのＤＢシステム上のデータ項目に対するアクセス処理を記述している１つのコード片と、そのコード片のアクセス先データ項目と、このコード片のアクセス先データ項目を持つ画面またはＤＢテーブルの名前と、このコード片で行われるアクセス処理の種別との組み合わせで構成されたものである。上述のアクセス処理の種別は、「参照」または「出力」である。この業務データアクセス基点リストは、上述の担当者が、ソースコード上の設定ファイル等を参照して作成して入力装置１０５から入力したものとである。
【００１９】
また、業務仕様再生装置１００は、上述の担当者が入力装置１０５から入力する、業務単位の画面遷移リストを、記憶装置１０１上の業務単位の画面遷移リスト１２２として保存する機能を備えている。業務単位の画面遷移とは、業務システムの利用者が１つの業務を実施する際に発生する業務システム上の画面遷移の情報であり、利用者が行う業務名と、利用者が業務データを入力する遷移元画面名と、利用者が業務システムからの出力を受け取る遷移先画面名との組み合わせで構成されている。この画面遷移リストは、上述の担当者が、ユーザマニュアル等を参照して作成して入力装置１０５から入力したものである。
【００２０】
また、業務仕様再生装置１００は、上述の業務データアクセス基点リスト１２１の各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と、そのアクセス基点からの実行パスに含まれるコード片を、ソースコード１２０から抽出して、業務処理コードテーブル１２３に格納する機能を備えている。上述の業務処理コードは、画面名と、その画面上のデータを参照するアクセス基点と、そのコード片が実行される際に同時に実行される可能性があるコード片の集合との組み合わせで構成されている。この機能は、上述の実行パス抽出プログラム１１０を実行することで業務仕様再生システム１００に実装される機能である。
【００２１】
また、業務仕様再生装置１００は、業務処理コードテーブル１２３の所定のレコードを、ソースコード１２０に照合し、所定のレコードのコード片の集合に含まれるコード片それぞれのデータ依存先と制御依存先にあたるコード片を特定し、業務処理コード依存関係テーブル１２４に格納する機能を備えている。この業務処理コード依存関係テーブルは、１つの業務処理コードに含まれるコード片それぞれについて１つのレコードをもち、当該業務処理コード依存関係レコードは、１つのコード片と、そのコード片のデータ依存先のコード片と、制御依存先のコード片との組み合わせで構成されている。この機能は、上述の依存関係解析プログラム１１１を実行することで業務仕様再生システム１００に実装される機能である。
【００２２】
また、業務仕様再生装置１００は、業務処理コード依存関係テーブル１２４の所定のレコードを、業務データアクセス基点リスト１２１と照合して、画面またはＤＢのデータ項目への出力処理を行うコード片の業務処理コード依存関係レコードと、そのコード片で出力されるデータの値を生成する処理を行うコード片を持つレコードを抽出して、抽出したレコードと加工処理種別とアクセスする業務データの情報を組み合わせたレコードを業務データ加工処理テーブル１２５に格納する機能を備えている。
【００２３】
上述の加工処理種別は、業務データへの「参照」または「出力」または演算である。この機能は、上述の業務データ加工処理抽出プログラム１１２を実行することで業務仕様再生システム１００に実装される機能である。
【００２４】
また、業務仕様再生装置１００は、業務データ加工処理テーブル１２５の所定のレコードを、業務処理コード依存関係テーブル１２４と照合して、各レコードの実行条件を特定し、各レコードと実行条件の組み合わせを業務データ加工処理テーブル１２６の各レコード上に更新し、特定した実行条件を、実行判定処理テーブル１２６に格納する機能を備えている。実行条件は、実行条件の識別子と、実行条件種別と、実行条件を判定する判定コード片と、実行条件に影響する業務データと、実行条件に影響する演算を行うコード片の組み合わせである。この機能は、上述の実行判定処理抽出プログラム１１３を実行することで業務仕様再生システム１００に実装される機能である。
【００２５】
また、業務仕様再生装置１００は、業務データ加工処理テーブル１２５と、実行判定処理テーブル１２６から、画面単位決定表を作成し、画面単位決定表１２７に格納する機能を備えている。この機能は、上述の決定表作成プログラム１１４を実行することで業務仕様再生システム１００に実装される機能である。
【００２６】
また、業務仕様再生装置１００は、画面単位決定表１２７を、業務単位の画面遷移リスト１２２に照合し、１つの業務に対応する１つ以上の画面遷移に対応する画面単位決定表を１つの決定表の形式に合成し、業務単位決定表１２８へ格納する機能を備えている。この機能は、上述の決定表合成プログラム１１５を実行することで業務仕様再生システム１００に実装される機能である。
【００２７】
また、業務仕様再生装置１００は、記憶装置１０１上のデータ１２０〜１３１を、業務仕様再生装置１００を用いて仕様再生を行う担当者に開示する機能を備えている。この機能は、記憶装置１０１上のデータ１２０〜１３１を出力装置１０６に出力することで、業務仕様再生システム１００で実現される機能である。
−−−処理フローの例−−−
【００２８】
以下、本実施形態における業務仕様再生装置を用いた業務仕様再生方法の実際手順について図に基づき説明する。以下で説明する業務仕様再生方法に対応する各種動作は、業務仕様再生装置１００がメモリ１０３における各プログラム１１０〜１１５実行することで実現される。そして、これらのプログラム１１０〜１１５、以下に説明される各種の動作を行うためのコードから構成されている。
【００２９】
図２は、本実施形態における業務仕様再生方法の処理手順例１を示すフロー図である。ここでまず、業務仕様再生装置１００を利用する担当者は、業務仕様再生対象となる業務システムのソースコード１２０と、業務データアクセス基点リスト１２１と、業務単位の画面遷移リスト１２２とを、入力装置１０５を介して業務仕様再生装置１００へ入力する。一方、業務仕様再生装置１００は、入力装置１０５を介して上述のソースコード１２０、業務データアクセス基点リスト１２１、および業務単位の画面遷移リスト１２２を読み込む（Ｓ１０１０）。
【００３０】
上述のソースコード１２０は、図３に例示すように、既存システム（業務仕様再生対象である業務システム）の現在の実装プログラムに対応した、ソースコードファイルである。図３で例示するソースコードはＪａｖａ（登録商標）言語で記述されたプログラムの一部を示している。既存システムにおけるソースコードは、要件や仕様に関する開発当初のドキュメント等とは異なり、現行のものが保守されている可能性が高いため、担当者は比較的容易に入手することができる。なお、業務仕様再生装置１００は、ソースコード１２０を記述したプログラム言語やコンパイル状態に対応したソースコード解析機能を持つ必要がある。
【００３１】
また、上述の業務単位の画面遷移リスト１２０は、図５に例示するように、当該業務単位の画面遷移リスト１２０上のレコード番号（図中では「＃」）をキーとして、１つの画面遷移における遷移元画面名および遷移先画面名と、その画面遷移が発生する業務名が対応付けられたレコードの集合体となっている。担当者は、業務単位の画面遷移リスト１２０の各レコードを、業務システムの利用マニュアルを参照して作成することができる。利用マニュアルはソースコードと同じく運用中に継続的に利用されるため、開発時のドキュメントと比較して保守されている可能性が高い。加えて、利用マニュアルは利用者に読解されることを前提として作成されるため、担当者がこれを読解して業務単位の画面遷移情報を取得することは比較的容易である。また、業務システムの運用保守担当者が利用者の業務にアクセスできない場合は、業務システム自体の実行ログから画面と業務の対応関係を抽出しても良い。
【００３２】
また、上述の業務データアクセス基点リスト１２１は、図４に例示するように、当該業務データアクセス基点リスト１２１上のレコード番号（図中では「＃」）をキーとして、ソースコード１２０上のコード片の１つを示すアクセス基点と、そのアクセス基点で行われるデータアクセス処理の種別（図中では「処理」）と、アクセスされる業務データ名と、その業務データが所属している画面やＤＢテーブルの名称（図中では「業務データ所属））が対応付けられたレコードの集合体となっている。この業務データアクセス基点リスト１２１のレコードは、業務単位の画面遷移リスト１２２の情報に基づいて、一般的なリバース解析アルゴリズム等でソースコードを解析することで作成できる。
【００３３】
ここで図２のフローの説明に戻る。続いて業務仕様再生装置１００は、ステップＳ１０１１０で読み込んだソースコード１２０から画面毎の実行パスを抽出する（Ｓ１０２０）。この場合、業務仕様再生装置１００は、実行パス抽出プログラム１１０を実行することにより、下記の処理を実行する。
【００３４】
まず、業務仕様再生装置１００は、ソースコード１２０を構成するモジュール間の呼び出し関係を特定しておく。図３に示したＪａｖａ（登録商標）言語で記述されたソースコード１２０の場合、業務仕様再生装置１００は、クラスごとのフィールドおよびメソッドを１モジュールとして、モジュール毎に呼び出し元モジュールと呼び出し先モジュールを特定する。
【００３５】
加えて業務仕様再生装置１００は、業務データアクセス基点リスト１２１から、データアクセス処理の種別が「参照」であり、かつ、業務データの所属元が何れかの画面であるレコードを抽出する。さらに業務仕様再生装置１００は、ここで抽出したレコードから、業務データの所属元の画面名が共通のレコードのアクセス基点を、業務データの所属元の画面ごとに抽出する。その結果、業務仕様再生装置１００は、業務データの所属元の画面ごとに、その画面のデータを参照するアクセス基点の集合が得られる。
【００３６】
続いて、業務仕様再生装置１００は、業務データの所属元の画面ごとに、その画面のデータを参照するアクセス基点をコード片として含むモジュールを、ソースコード１２０から特定する。業務仕様再生装置１００は、ここで特定したモジュールからの呼び出し先モジュールを再帰的に辿ることで、そのモジュールを起点とした実行パスを抽出する。その結果、業務仕様再生装置１００は、業務データの所属元の画面ごとに、業務データを参照した結果を利用して処理している可能性のあるモジュールの集合が得られる。
【００３７】
最後に業務仕様再生装置１００は、業務処理コードテーブル１２３として、図６に例示するように、業務データの所属元の画面（図中では「画面」）をキーとして、その画面上のデータを参照するコード片を含むモジュールの集合（図中では「参照モジュール」）と、そこから呼び出されるモジュールの集合（図中では「実行モジュール」）とが対応付けられたレコードの集合を、記憶装置１０１に格納する。
【００３８】
ここで再び図２のフローの説明に戻る。次に業務仕様再生装置１００は、ソースコード１２０と業務処理コードテーブル１２３から、コード片間の依存関係を抽出する（Ｓ１０３０）。この場合、業務仕様再生装置１００は、依存関係解析プログラム１１１を実行することにより、業務処理コードテーブル１２３の各レコードに対して、図７に示すステップＳ１０３１〜Ｓ１０３９の各処理を、以下のフローに沿って実行する。
【００３９】
まず業務仕様再生装置１００は、業務処理コードテーブル１２３のレコードを１つ選択し、そのレコードの「参照モジュール」および「実行モジュール」をソースコード１２０と照合し、ソースコード１２０からこれらのモジュールとそのモジュールを構成するコード片の集合を抽出する（Ｓ１０３１）。
【００４０】
次に業務仕様再生装置１００は、上述のステップＳ１０３１で抽出したモジュールのうち未処理の１つを選択する（Ｓ１０３２）。また業務仕様再生装置１００は、ここで選択したモジュールに対して、モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定する（Ｓ１０３３〜Ｓ１０３７）。
【００４１】
この場合の業務仕様再生装置１００は、コード片のデータ依存先を特定するに際し、モジュール内の変数間のデータフローを作成し（Ｓ１０３３）、各コード片からデータフローを遡った先のコード片の集合を特定し取得する（Ｓ１０３４）。ただし、該当コード片で他のモジュールを呼び出してその帰り値を格納している場合は、呼び出しているモジュールの返り値をデータ依存先の集合に加える。また業務仕様再生装置１００は、コード片の制御依存先を特定するに際し、モジュール内のコード片間の制御フローを生成し（Ｓ１０３５）、各コード片から制御フローを遡った先のコード片の集合を特定し取得する（Ｓ１０３６）。
【００４２】
図３に例示したＪａｖａ（登録商標）ソースコードの場合、各コード片の制御依存先コード片はＩＦ文を表すコード片やメソッド定義を表すコード片が該当する。また、ＩＦ文のような条件を判定するコード片に制御依存している場合は、その条件判定結果がどのような場合に該当コード片が実行されるのかを含めた情報も含む。
【００４３】
ただし、モジュール内のコード片のうち、メソッド定義のようなモジュールの先頭を表すコード片の制御依存先は、上述のステップＳ１０２０で特定したモジュール間の呼び出し関係に基づき、呼び出し元モジュール内で呼出し命令が記述されているコード片とする。ただしこのとき、ステップＳ１０３１で選択したレコードの「参照モジュール」に含まれるモジュールの先頭を表すコード片の制御依存先は、コード片ではなくこのレコードの「画面」とする。
【００４４】
最後に業務仕様再生装置１００は、図８に例示するように、画面名（図８では省略）と抽出したコード片の組をキーとして、そのコード片のデータ依存先コード片の集合（図８では「データ依存先コード片」）と、そのコード片の制御依存先コード片の集合（図８では「制御依存先コード片」）を対応付けたレコードの集合を、業務処理コード依存関係テーブル１２４に格納する（Ｓ１０３７）。
【００４５】
次に業務仕様再生装置１００は、上述のステップＳ１０３１で抽出したモジュールのうちステップＳ１０３２でまだ選択していないモジュールが残っていれば（Ｓ１０３８：ＹＥＳ）、ステップＳ１０３２へ戻って続く処理を繰り返す。
【００４６】
さらに業務仕様再生装置１００は、上述のステップＳ１０３１でまだ選択していない業務処理コードテーブル１２３のレコードが残っていれば（Ｓ１０３９：ＹＥＳ）、上述のステップＳ１０３１へ戻って続く処理を繰り返す。他方、そうでなければ（Ｓ１０３９：ＮＯ）、業務仕様再生装置１００は、次のステップＳ１０４０へ処理を移行する。
【００４７】
ここで再び図２のフローの説明において戻る。次に業務仕様再生装置１００は、業務処理コード依存関係テーブル１２４から、業務データの加工処理を抽出する（Ｓ１０４０）。この場合、業務仕様再生装置１００は、業務データ加工処理抽出プログラム１１２を実行することにより、業務処理コード依存関係テーブル１２４のレコードのうち、画面が共通のレコード集合ごとに、図９に示すステップＳ１０４１〜Ｓ１０４８の各処理をフローに従って実行する。
【００４８】
ここまず、業務仕様再生装置１００は、１つの画面を選択し、その画面を起点とした実行パスに含まれるコード片の依存関係を業務処理コード依存関係テーブル１２４から抽出する。ここで業務仕様再生装置１００は、業務処理コードテーブル１２３のレコードを１つ選択し、そのレコードの「参照モジュール」および「実行モジュール」を業務処理コード依存関係テーブル１２４と照合し、業務処理コード依存関係テーブル１２４からこれらのモジュールを構成するコード片に合致するレコードを抽出する（Ｓ１０４１）。
【００４９】
次に業務仕様再生装置１００は、上述のステップＳ１０４１で抽出したレコードと、業務データアクセス基点リスト１２１を照合し、業務データアクセス基点リスト１２１のレコードのうち、処理が「出力」であるレコードのコード片と一致するコード片を持つレコードを１つ選択する（Ｓ１０４２）。
【００５０】
ここで選択されるコード片は、業務データに対する出力処理を行うアクセス基点に対応するコード片である。例として、図８に示した「旅費精算申請画面」の業務処理コード依存関係テーブル１２４のレコード集合に対して、図４に示した業務データアクセス基点リスト１２１を照合して、処理が出力であるコード片について業務データアクセス基点リスト１２１と業務処理コード依存関係テーブル１２４それぞれの該当レコードの情報を抽出した例を図１０に示す。図１０では簡単のため業務データ項目と業務データの所属を１つのカラム（図１０では「業務データ」）にまとめている。
【００５１】
次に業務仕様再生装置１００は、上述のステップＳ１０４２で選択した、その「出力」処理までのデータフローに含まれるコード片を、ステップＳ１０４１で業務処理コード依存関係テーブル１２４から抽出したコード片の中から抽出する（Ｓ１０４３）。
【００５２】
例として、図１０で示した出力処理を行うコード片である「ＰｌａｃｅＭａｓｔａｅｒＤＡＯ」モジュールの１２７行目（図４では“ＰｌａｃｅＭａｓｔａｅｒＤＡＯ＃１２７”）を起点として、図８に示した「旅費精算申請画面」の業務処理コード依存関係テーブル１２４のレコード集合に対して、データ依存先のコード片のレコードを再帰的に抽出した結果の一部を図１２に示す。ここでは、旅費精算申請画面から「ＭａｉｎＰＧＭ」モジュールが呼び出されてから、「ＰｌａｃｅＭａｓｔａｅｒＤＡＯ」モジュールでＤＢの「ＰｌａｃｅＭａｓｔｅｒＳｕｂ」テーブルに値が格納されるまでの間に、その値の加工に関わる可能性のあるコード片が抽出されている。
【００５３】
最後に業務仕様再生装置１００は、これらのコード片のうち、業務データの加工に関連するコードデータのみを抽出し、業務データ加工処理テーブル１２５に格納する（Ｓ１０４４〜１０４６）。
【００５４】
この場合まず、業務仕様再生装置１００は、図１２に示したようなレコード集合（ステップＳ１０４３で抽出したレコード集合）に対して、業務データアクセス基点リスト１２１を照合して、業務データの参照を行うコード片を持つレコードを特定し、参照している業務データを対応付ける（Ｓ１０４４）。図１２の例では、「ＭａｉｎＰＧＭ＃３４８」、「ＭａｉｎＰＧＭ＃３４７」、および「ＭａｉｎＰＧＭ＃３３５」の３つのコード片が、「旅費精算申請画面」の「添付領収書」、「交通費」、および「行き先」の業務データを参照するアクセス基点に対応している。
【００５５】
そして業務仕様再生装置１００は、出力処理を行うコード片に対して抽出したレコード集合に対して、業務データを参照しているコード片から、業務データを出力しているコード片までのデータフロー上に登場するコード片のみを抽出する（Ｓ１０４５）。これらのコード片の集合は、該当業務システムがある業務データをＤＢまたは画面へ出力する際の、既存業務データの値の取得から、その値を用いた演算を経て、演算結果を出力するまでの一連の業務データ加工処理を行うコード片である。業務データ加工処理テーブル１２５は、ここで抽出されたコード片と、出力処理を行うコード片と、呼び出し元の画面名とをキーとして、コード片のデータ依存先と制御依存先、およびそのコード片で行われる処理の種別と、加工する業務データを対応付けたものである。処理の種別と加工する業務データは、業務データアクセス基点に一致するコード片の場合はその処理及び業務データが対応し、それ以外のコード片の処理は演算とし業務データは対応しない。
【００５６】
最後に業務仕様再生装置１００は、上述のステップＳ１０４１で選択した業務処理コードレコードの「画面」と、ステップＳ１０４２で選択した出力コード片に対応するアクセス基点をキーとして、ステップＳ１０４５で抽出したコード片に対応する業務処理コード依存関係テーブルのレコードと、ステップＳ１０４５で特定した業務データに対する処理種別および対象業務データの情報を、業務データ加工処理テーブル１２５に格納する（Ｓ１０４６）。
【００５７】
図１２のレコードとして示した例の場合は、「ＰｌａｃｅＭａｓｔａｅｒＤＡＯ＃１２７」を起点として「ＭａｉｎＰＧＭ＃３４８」、「ＭａｉｎＰＧＭ＃３４７」、「ＭａｉｎＰＧＭ＃３３５」の３つのコード片いずれかにたどり着くデータ依存パス上のコード片のみを抽出した結果、図１３に示す１２レコードが業務データ加工処理テーブル１２５に格納される（図１３では、レコードのキーである画面名と出力アクセス基点を省略している）。
【００５８】
その後、業務仕様再生装置１００は、上述のステップＳ１０４２で照合した出力コード片のうち選択していないコード片が残っている場合（Ｓ１０４７：ＹＥＳ）、処理をＳ１０４２に戻して続く処理を繰り返す。
【００５９】
また業務仕様再生装置１００は、業務処理コードテーブルのレコードのうちまだステップＳ１０４１で選択していないレコードが残っている場合（Ｓ１０４８：ＹＥＳ）、上述のステップＳ１０４１へ処理を戻し、続く処理を繰り返す。他方、そうでなければ（Ｓ１０４８：ＮＯ）、業務仕様再生装置１００は、次のステップＳ１０５０へ処理を移行する。
【００６０】
ここで再び図２のフローの説明に戻る。次に業務仕様再生装置１００は、業務処理コード依存関係テーブル１２４から、実行判定処理を抽出する（Ｓ１０５０）。
【００６１】
この場合、業務仕様再生装置１００は、実行判定処理抽出プログラム１１３を実行することにより、業務データ加工処理テーブル１２５のレコードのうち画面が共通のレコード集合ごとに、図１１のステップＳ１０５１〜Ｓ１０５９に示す下記の各処理を実行する。
【００６２】
この場合まず、業務仕様再生装置１００は、業務処理コードテーブル１２３から未処理のレコードを１つ選択し、業務データ加工処理テーブル１２５から該当画面に対応するレコード集合を抽出する（Ｓ１０５１）。
【００６３】
続いて業務仕様再生装置１００は、上述のステップＳ１０５１で業務データ加工処理テーブル１２５から抽出したレコードの「制御依存先」に含まれるコード片の和集合について、業務処理コード依存関係テーブル１２４に照合し、合致するコード片を持つレコードを上述のステップＳ１０５１で選択した画面からのデータ加工処理に対応する実行条件候補として抽出する（Ｓ１０５２）。
【００６４】
続いて業務仕様再生装置１００は、実行条件候補のレコードのうち１つを選択し（Ｓ１０５３）、その種別に応じて以下の処理（Ｓ１０５４〜Ｓ１０５８）を行い、実行条件と、条件判定のために参照する業務データと、条件判定のための業務データ参照および演算処理を行うコード片集合とを対応付ける（Ｓ１０５９）。
【００６５】
図１４は、図１３で示した「旅費精算申請画面」で画面上の３つの業務データの値を参照して「ＰｌａｃｅＭａｓｔｅｒＳｕｂ」テーブルへ格納するまでの加工処理を表す業務データ加工処理テーブル１２５のレコードから、実行条件候補を抽出した例である。図１３で示したレコードには、図１４で示す「＃ｃ１」から「＃ｃ７」までの７つのコード片が制御依存先として含まれているため、これらが実行条件候補として抽出される。そして図１５は、図１４で示した実行条件候補それぞれに対して、実行条件と、条件判定のために参照する業務データと、条件判定のための演算コード片を対応付けた実行判定処理テーブルのレコードの例である。
【００６６】
上述の実行条件候補のレコードのコード片が実行モジュールの冒頭にあたるコード片である場合は、該当画面からの呼び出しで無条件に実行されるとみなすため、業務仕様再生装置１００は、実行条件を画面名とし、参照業務データと演算コード片は無しとする（Ｓ１０５４）。図１４に示す実行条件候補のうち、「＃ｃ７」のコード片「ＭａｉｎＰＧＭ＃３３３」はこれらのコード片を呼び出す画面である「旅費精算申請画面」から呼び出される実行モジュールの冒頭の定義文にあたるため、ステップＳ１０５４の処理により実行条件が画面呼び出しとなり、参照する業務データやその演算コード片はない（図１５＃７）。
【００６７】
一方、実行条件候補のレコードのコード片が参照モジュールの冒頭である場合、業務仕様再生装置１００は、業務処理コード依存関係テーブル１２４からモジュールの呼び出し元コード片を特定し、そのコード片の制御フローをさかのぼることで、上述の条件判定文または画面から呼び出されるモジュールのうち１つ以上の実行条件候補のコード片に到達する（Ｓ１０５５）。このとき業務仕様再生装置１００は、この実行条件候補を、到達した実行条件候補のコード片の分岐条件の積として表す（Ｓ１０５６）。
【００６８】
図１４に示す実行条件候補のうち、「＃ｃ１」から「＃ｃ４」までのコード片は参照メソッドの冒頭を表す定義文である。そのため、ステップＳ１０５５〜Ｓ１０５６で、呼び出し元メソッドの制御フローを遡り、いずれも条件候補の「＃ｃ６」と「＃ｃ５」が「Ｆａｌｓｅ」の場合に実行されることが分かる。
【００６９】
実行条件候補のレコードのコード片が上記いずれにも当てはまらない場合、業務仕様再生装置１００は、そのコード片で行われている条件判定処理をステップＳ１０４２で選択する業務データ出力処理とみなした場合のステップＳ１０４２〜Ｓ１０４５の処理を行うことで業務処理コード依存関係テーブル１２４からデータフローをさかのぼって業務データ加工処理にあたる業務データの参照を行うコード片とその値を加工する演算コード片を抽出する（Ｓ１０５７）。ここで抽出したコード片は、実行条件候補となるコード片の判定に影響を与える業務データと、その業務データを用いた判定のための演算処理であるため、業務仕様再生装置１００は、これらをこの実行条件候補の参照および演算処理コード片とする（Ｓ１０５８）。
【００７０】
図１４に示す実行条件候補のうち、残る「＃ｃ６」と「＃ｃ５」はそれぞれＩＦ文の条件判定を行っているため、業務仕様再生装置１００は、ステップＳ１０５７でそれぞれのデータフローを遡り、業務データを参照しているコード片から関連する業務データを特定する。
【００７１】
実行条件候補「＃ｃ５」は、データ依存先のコード片「ＭａｉｎＰＧＭ＃３４７」および「ＭａｉｎＰＧＭ＃３４８」がそれぞれ業務データの参照を行っているアクセス基点であるため、これら２つのコード片が参照している業務データが参照業務データとなり、演算コード片は無しとなる。一方、実行条件候補「＃ｃ６」はデータ依存先が「ＭａｉｎＰＧＭ＃３４１」であるが、これは業務データアクセス基点に対応するコード片ではないため、このコード片「ＭａｉｎＰＧＭ＃３４１」がデータ依存している業務データアクセス基点が参照している業務データを参照業務データとして持ち、「ＭａｉｎＰＧＭ＃３４１」は演算コード片として持つ。
【００７２】
図１５に示す実行条件により、図１３で示した出力の加工処理は、「旅費精算申請画面」からの呼び出しで無条件に実行される処理と、業務データ「交通費」「添付領収書」の値で実行可否が定まる「ＭａｉｎＰＧＭ＃３４９」と、業務データ「行先」の値で実行可否が定まる「ＭａｉｎＰＧＭ＃３４４」の２つの条件と、その結果の組み合わせによって実行可否が定まる処理から成ることがわかる。
【００７３】
業務仕様再生装置１００は、ステップＳ１０５３〜Ｓ１０５９までの処理を、ステップＳ１０５３で選択する実行条件候補がなくなるまで繰り返す。その後、業務仕様再生装置１００は、ステップＳ１０５１で選択できるレコードがなくなるまでステップＳ１０５０の処理を繰り返す。
【００７４】
ここで再び図２のフローの説明に戻る。次に業務仕様再生装置１００は、業務データの加工処理とその実行判定処理の情報に基づき、画面単位決定表を作成する（Ｓ１０６０）。この場合、業務仕様再生装置１００は、決定表生成プログラム１１４を実行することにより、業務データ加工処理テーブル１２５と実行判定処理テーブル１２６を照合して、下記の処理を実行する。
【００７５】
まず業務仕様再生装置１００は、業務データ加工処理テーブル１２５のレコードごとに、実行判定処理テーブル１２６を照合して、制御依存先と実行判定処理のコード片の一致から、業務データ加工処理ごとの実行条件を特定する。図１６は、図１３で示した出力の加工処理ごとに実行条件を特定した例である。「旅費精算申請画面」の「行先」を参照するコード片は画面呼び出しの際に必ず実行され、「旅費精算申請画面」の「交通費」を参照する処理はコード片「ＭａｉｎＰＧＭ＃３４４」の判定が「Ｆａｌｓｅ」の場合のみ実行され、以降出力までの演算処理及び出力は、コード片「ＭａｉｎＰＧＭ＃３４４」および「ＭａｉｎＰＧＭ＃３４９」の判定がいずれも「Ｆａｌｓｅ」の場合のみ実行されるという対応関係が分かる。
【００７６】
次に業務仕様再生装置１００は、業務データ加工処理ごとの実行条件の対応関係から、決定表を作成する。まず業務仕様再生装置１００は、実行判定処理テーブル１２６のレコードのうち、コード片が条件判定文であるレコードを抽出し、条件判定のために参照している業務データによって分類して、決定表の「Ｃｏｎｆｉｇｕｒｅ」行とする。次に業務仕様再生装置１００は、業務データ加工処理テーブル１２５のレコードから業務データの出力処理を行っているレコードを抽出し、出力先の業務データによって分類して、決定表の「Ａｃｔｉｏｎ」行のうち出力行とする。業務データ加工処理テーブル１２５の残りの参照および演算のコード片を持つレコードは、「Ａｃｔｉｏｎ」行の参照および演算行とする。
【００７７】
最後に業務仕様再生装置１００は、業務データ加工処理ごとの実行条件の対応関係から、決定表上のケース列を作成する。この場合の業務仕様再生装置１００は、「Ａｃｔｉｏｎ」行にあたる業務データ加工処理テーブル１２５のレコード毎に、その実行条件を「Ｃｏｎｆｉｇｕｒｅ」行の正否の組み合わせで表す。
【００７８】
図１７は図１６で特定した対応関係に基づいて業務仕様再生装置１００が作成した決定表である。「ＰｌａｃｅＭａｓｔｅｒＳｕｂ」テーブルへの出力は、「旅費精算申請画面」上の「行先」、「交通費」、および「添付領収書」の３種類の業務データの値によって定まる２つの条件で実行可否が定まり、出力される業務データの値も「行先」、「交通費」、および「添付領収書」の３種類の業務データの値から加工されることが分かる。
【００７９】
続いて業務仕様再生装置１００は、同じ業務に属する画面遷移に対応する画面単位決定表を合成した業務単位の決定表を作成する（Ｓ１０７０）。この場合、業務仕様再生装置１００は、決定表合成プログラム１１４を実行することにより、画面決定表１２７に含まれる画面ごとの決定表から、業務単位の画面遷移リスト１２２と照合して、１つの業務の遷移元画面と合致する画面の画面単位決定表を、１つの決定表として合成する。
【００８０】
この決定表の合成に際し、業務仕様再生装置１００は、まず合成元の決定表それぞれに含まれる「Ｃｏｎｆｉｇｕｒｅ」行と「Ａｃｔｉｏｎ」行の行、および「Ｃａｓｅ」列をそれぞれ独立のまま合成したのち、まず「Ｃｏｎｆｉｇｕｒｅ」行で同一条件を表す列を１つの列にまとめる。次に業務仕様再生装置１００は、「Ｃａｓｅ」列それぞれについて、「Ｃｏｎｆｉｇｕｒｅ」行の値のうち未定義のもの（他の決定表から合成された条件）については未定義すなわちその条件判定結果に影響されないものとし、その結果、条件の組み合わせとして等価な「Ｃａｓｅ」を１つの行にまとめる。
【００８１】
図５に示した業務単位の画面遷移リスト１２２から「交通費申請」業務の決定表を合成する場合、遷移元画面は「旅費申請画面」のみであるため、図１８に例示するような「旅費申請画面」に対応する画面単位決定表が出力されることとなる。
【００８２】
最後に業務仕様再生装置１００は、業務単位決定表１２６を出力装置１０６に出力し（Ｓ１０８０）、処理を終了する。
【００８３】
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００８４】
こうした本実施形態によれば、既存の業務システムのソースコードから、ユーザの行うどの業務に対応して、どのような条件下でどの業務データをどのように加工してどの業務データを生成するのかを示すシステム仕様情報を再生できる。そのため、要件定義担当者において、業務仕様の把握漏れを防ぐことができる上に、現行システムの仕様を踏襲すべき部分とそうでない部分の識別作業に注力することが可能となる。ひいては、要件定義工程の短期化、省コスト化が可能となる。
【００８５】
従って、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生が可能となる。
【００８６】
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の仕様再生装置において、前記演算装置は、前記アクセス基点リストが示す出力処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行するものである、としてもよい。
【００８７】
これによれば、業務システムの仕様においてユーザ理解が容易な出力処理に関して、加工処理および実行判定処理を双方踏まえた決定表を生成し、提示することが可能となる。
【００８８】
また、本実施形態の仕様再生装置において、前記演算装置は、前記業務単位の決定表を生成する処理に際し、前記ソースコードから前記画面遷移リストにおける画面毎の実行パスを抽出して、前記抽出した該当実行パス中のコード片間の依存関係を特定し、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものであるとしてもよい。
【００８９】
これによれば、業務単位の決定表をより効率的に生成し、ひいては、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生が可能となる。
【００９０】
また、本実施形態の仕様再生装置において、前記演算装置は、前記業務単位の決定表を生成する処理に際し、前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものであるとしてもよい。
【００９１】
これによれば、実行パス中のコード片間の依存関係をより効率的に特定し、ひいては業務単位の決定表をより効率的に生成して、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生が可能となる。
【００９２】
また、本実施形態の仕様再生装置において、前記演算装置は、前記業務単位の決定表を生成する処理に際し、前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、前記業務処理コードテーブルにおける所定レコードの所定モジュールを業務処理コード依存関係テーブルと照合し、該当モジュールを構成するコード片に合致するレコードを抽出し、前記抽出したレコードと前記アクセス基点リストを照合し、前記アクセス基点リストのレコードのうち、処理が出力であるレコードのコード片と一致するコード片を持つレコードを選択し、前記選択した、前記出力の処理までのデータフローに含まれるコード片を、前記抽出したコード片の中から抽出し、前記コード片のうち業務データの加工処理に含まれるものを抽出し、前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれる前記コード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成するものである、としてもよい。
【００９３】
これによれば、出力処理コード片ごとに、その業務データの加工処理を抽出して、前記実行判定処理の抽出等を効率化し、ひいては業務単位の決定表をより効率的に生成して、要件等のドキュメント類や知見豊富な担当者の存在が無い状況下でも、既存の業務システムから効率的かつ確実な仕様の再生が可能となる。
【００９４】
また、本実施形態の業務仕様再生方法において、前記情報処理装置が、前記アクセス基点リストが示す出力処理に関して、前記業務システムで実行される業務データの一連の加工処理および当該加工処理の実行判定処理に各々対応したコード片群を、前記アクセス基点リストが示す前記コード片および所属ソースに基づき前記ソースコードから抽出し、前記加工処理と前記実行判定処理の各コード片群の対応関係を特定し、当該特定した対応関係と前記画面遷移リストとに基づいて業務単位の決定表を生成し出力装置に表示する処理を実行する、としてもよい。
【００９５】
また、本実施形態の業務仕様再生方法において、前記情報処理装置が、前記業務単位の決定表を生成する処理に際し、前記ソースコードから前記画面遷移リストにおける画面毎の実行パスを抽出して、前記抽出した該当実行パス中のコード片間の依存関係を特定し、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、としてもよい。
【００９６】
また、本実施形態の業務仕様再生方法において、前記情報処理装置が、前記業務単位の決定表を生成する処理に際し、前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれるコード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、としてもよい。
【００９７】
また、本実施形態の業務仕様再生方法において、前記情報処理装置が、前記業務単位の決定表を生成する処理に際し、前記アクセス基点リストの各レコードから、共通の画面のデータ項目に対する参照処理を含むレコードを抽出し、この抽出したレコードに含まれる画面ごとに、該当レコードに含まれるアクセス基点と前記アクセス基点からの実行パスに含まれるコード片を、前記ソースコードから抽出して業務処理コードテーブルに格納し、前記業務処理コードテーブルの各レコードに対して、 該当レコードの参照モジュールおよび実行モジュールを前記ソースコードと照合し、前記ソースコードから前記各モジュールと該当モジュールを構成するコード片の集合を抽出し、前記抽出したモジュールに対し、該当モジュール内のデータフローと制御フローから、コード片ごとのデータ依存先コード片と制御依存先コード片を特定し、該当画面名と前記抽出したコード片の組をキーとして、該当コード片のデータ依存先コード片の集合と、該当コード片の制御依存先コード片の集合を対応付けたレコードの集合を、業務処理コード依存関係テーブルに格納し、前記業務処理コードテーブルにおける所定レコードの所定モジュールを業務処理コード依存関係テーブルと照合し、該当モジュールを構成するコード片に合致するレコードを抽出し、前記抽出したレコードと前記アクセス基点リストを照合し、前記アクセス基点リストのレコードのうち、処理が出力であるレコードのコード片と一致するコード片を持つレコードを選択し、前記選択した、前記出力の処理までのデータフローに含まれるコード片を、前記抽出したコード片の中から抽出し、前記コード片のうち業務データの加工処理に含まれるものを抽出し、前記業務処理コード依存関係テーブルから、前記業務データの加工処理に含まれる前記コード片の実行判定処理を抽出して、該当業務データの加工処理およびその実行判定処理の情報に基づき画面単位決定表を作成し、同じ業務に属する画面遷移に対応する画面単位決定表を合成して業務単位の決定表を生成する、としてもよい。
【符号の説明】
【００９８】
１００  業務仕様再生装置
１０１  記憶装置
１０３  メモリ
１０４  演算装置
１０５  入力装置
１０６  出力装置
１１０  実行パス抽出プログラム
１１１  依存関係解析プログラム
１１２  業務データ加工処理抽出プログラム
１１３  実行判定処理抽出プログラム
１１４  決定表生成プログラム
１１５  決定表合成プログラム
１２０  ソースコード
１２１  業務データアクセス基点リスト
１２２  業務単位の画面遷移リスト
１２３  業務処理コード依存関係テーブル
１２４  業務処理コード依存関係テーブル
１２５  業務データ加工処理テーブル
１２６  実行判定処理テーブル
１２７  画面単位決定表
１２８  業務単位決定表
【図１】
2016143019.tif 000003
【図２】
2016143019.tif 000004
【図３】
2016143019.tif 000005
【図４】
2016143019.tif 000006
【図５】
2016143019.tif 000007
【図６】
2016143019.tif 000008
【図７】
2016143019.tif 000009
【図８】
2016143019.tif 000010
【図９】
2016143019.tif 000011
【図１０】
2016143019.tif 000012
【図１１】
2016143019.tif 000013
【図１２】
2016143019.tif 000014
【図１３】
2016143019.tif 000015
【図１４】
2016143019.tif 000016
【図１５】
2016143019.tif 000017
【図１６】
2016143019.tif 000018
【図１７】
2016143019.tif 000019
【図１８】
2016143019.tif 000020
【国際調査報告】
2016143019.tif 000021
2016143019.tif 000022