(57)【要約】【課題】プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化を実現する。【解決手段】修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得する修正指示受付手段１１０と、利用関係にある他プログラム部品を特定しこの他プログラム部品の定義情報を部品管理テーブル１２５から読み出して当該定義情報中での前記修正内容データの類似データ検索を実行し修正内容に類似するデータ項目を特定する範囲推定手段１１１と、データ項目について修正内容データで更新した場合の修正後データの情報を生成し表示する更新影響提示手段１１２と、修正後データ情報についての確定指示を受け付けて修正内容データでの更新を部品管理テーブル１２５で実行する影響確定手段１１３とからプログラム修正支援システム１００を構成する。【選択図】図１
2010015458.tif 000002
【特許請求の範囲】
【請求項１】
機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段と、
プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得する、修正指示受付手段と、
前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する、範囲推定手段と、
前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示する、更新影響提示手段と、
前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行する、影響確定手段と、
を備えることを特徴とするプログラム修正支援システム。
【請求項２】
前記影響確定手段が、前記更新後データ情報についての修正指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正指示の示す修正内容での更新を前記部品管理テーブルで実行するものである、ことを特徴とする請求項１に記載のプログラム修正支援システム。
【請求項３】
前記範囲推定手段が、前記部品管理テーブルで前記データ項目についての更新が実行された前記他プログラム部品を次修正対象プログラム部品として、前記次修正対象プログラム部品の定義情報を前記部品管理テーブルで特定し、前記次修正対象プログラム部品の定義情報をキーにして、当該次修正対象プログラム部品と同一層に属し前記修正対象プログラム部品を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中で、前記部品管理テーブルでの更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定するものであり、
前記更新影響提示手段が、前記次他プログラム部品の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイスに表示するものであり、
前記影響確定手段が、前記次更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記次他プログラム部品の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブルで実行するものである、
ことを特徴とする請求項１または２に記載のプログラム修正支援システム。
【請求項４】
前記範囲推定手段が、前記次他プログラム部品の検索と前記次データ項目の検索を、前記部品管理テーブルにおいて前記各層を跨って実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返すものであり、
前記更新影響提示手段が、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段での前記次データ項目の特定処理の繰り返しが終了するまで繰り返すものであり、
前記影響確定手段が、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返すものである、
ことを特徴とする請求項３に記載のプログラム修正支援システム。
【請求項５】
前記修正指示受付手段、前記範囲推定手段、前記更新影響提示手段、および前記影響確定手段を、前記各層毎に備えて、
層Ａの修正指示受付手段は、前記層Ａに属するプログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む前記層Ａに属する修正対象プログラム部品の属性データと修正内容データとを取得し、
前記層Ａの範囲推定手段は、前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記層Ａにおいて前記修正対象プログラム部品と互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定し、
前記層Ａの更新影響提示手段は、前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示し、
前記層Ａの影響確定手段は、前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行する、
ことを特徴とする請求項１または２に記載のプログラム修正支援システム。
【請求項６】
層Ａの範囲推定手段が、前記部品管理テーブルで前記データ項目についての更新が実行された前記他プログラム部品を次修正対象プログラム部品として、前記次修正対象プログラム部品の定義情報を前記部品管理テーブルで特定し、前記次修正対象プログラム部品の定義情報をキーにして、前記層Ａに属し前記修正対象プログラム部品を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中で、前記部品管理テーブルでの更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定するものであり、
前記層Ａの更新影響提示手段が、前記次他プログラム部品の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイスに表示するものであり、
前記層Ａの影響確定手段が、前記次更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記次他プログラム部品の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブルで実行するものである、
ことを特徴とする請求項５に記載のプログラム修正支援システム。
【請求項７】
前記層Ａの範囲推定手段が、前記次他プログラム部品の検索と前記次データ項目の検索を、前記部品管理テーブルにおいて当該層Ａ以外の他層についても実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返すものであり、
前記層Ａの更新影響提示手段が、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段での前記次データ項目の特定処理の繰り返しが終了するまで繰り返すものであり、
前記層Ａの影響確定手段が、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返すものである、
ことを特徴とする請求項６に記載のプログラム修正支援システム。
【請求項８】
請求項１乃至７のいずれかに記載のプログラム修正支援システムにおいて、
前記修正指示手段での受け付けを行った場合、受付けられた前記修正対象プログラム部品の属性データに基づいて、前記部品管理テーブルを生成する部品管理テーブル生成手段をさらに有し、
前記記憶手段は、生成された前記部品管理テーブルを記憶することを特徴とするプログラム修正支援システム。
【請求項９】
コンピュータが、
機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段を備えて、
プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得する処理と、
前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する処理と、
前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示する処理と、
前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行する処理と、
を実行することを特徴とするプログラム修正支援方法。
【請求項１０】
請求項９に記載のプログラム修正支援方法において、
前記取得する処理で前記修正指示を受付けた場合、受付けられた前記修正対象プログラム部品の属性データに基づいて、前記部品管理テーブルを生成する処理をさらに有し、
前記記憶手段は、生成された前記部品管理テーブルを記憶することを特徴とするプログラム修正支援方法。
【請求項１１】
機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段を備えるコンピュータに、
プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得するステップと、
前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定するステップと、
前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示するステップと、
前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行するステップと、
を実行させることを特徴とするプログラム修正支援プログラム。
【請求項１２】
請求項１１に記載のプログラム修正支援プログラムにおいて、
前記取得するステップで前記修正指示を受付けた場合、受付けられた前記修正対象プログラム部品の属性データに基づいて、前記部品管理テーブルを生成するステップをさらに実行させ、
前記記憶手段は、生成された前記部品管理テーブルを記憶することを特徴とするプログラム修正支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム修正支援システム、プログラム修正支援方法、およびプログラム修正支援プログラムに関し、具体的には、ERPパッケージなどWeb型業務アプリケーションの設計、開発支援技術に関し、特に開発フレームワークなどにより設計されたプログラムの内容修正を、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化を実現する技術に関する。
【背景技術】
【０００２】
Web技術を用いた業務アプリケーションの開発を効率化するにあたっては、プログラム作成の設計標準モデルやこの設計標準モデルに準拠した開発環境等の技術思想が既に存在する。例えば、設計標準モデルとしてはMVC（Model-View-Controller）モデルや、MVCモデルの拡張であるＰ／Ｃ／Ｆ／Ｄ/ＤＢ層モデルなどがある。前記MVCモデルは、プログラムの構成をModel、View、Controlの3つに区分して設計するものである。また、前記P/C/F/D/ＤＢ層モデルでは、プログラムの構成をPresent層（P層）、Control層（C層）、Function層（Ｆ層）、Data層（Ｄ層）、Database層（ＤＢ層）の４つに区分して設計するものである。
【０００３】
これらの層は、Present層（P層）：画面表示処理、Control層（C層）：複数の業務ロジック処理を制御し、画面操作単位などの処理を行う層、Function層（Ｆ層）：業務単位の業務ロジック処理を行う層（業務固有の計算処理は、この層において行われる）、Data層（Ｄ層）：テーブル、テーブル項目に対するまとまった操作を行う層、Database層（ＤＢ層）：Ｄ層での操作対象となるテーブル構成、項目からなる層、となる。
【０００４】
さらに、こうした設計標準モデルに準拠し、開発作業を支援する開発環境として、アプリケーションプログラムの動作属性の設定支援を行う情報処理装置（特許文献１参照）が提案されている。この技術においては、上述したP/C/F/D/ＤＢ層モデルに基づいてプログラム部品の構成を示し、Ｐ／Ｃ層定義情報に基づき、開発支援フレームワーク基盤が、P層およびC層に該当するプログラム部品を生成することとなる。なお、前記Ｐ／Ｃ層の定義情報は、「プログラム構成定義シート」、「画面定義シート」、「データ入出力定義シート」から構成されており、これらのシートにはＦ層もしくはＤ層に関わる設計情報が格納されている。
【０００５】
また、複数プログラムにおける修正必要個所の検出方法（特許文献２参照）なども提案されている。この技術は、プログラム部品の変更修正の影響箇所を抽出し、変更箇所を修正するものであり、既存のソフトウェアから保守に必要な情報を抽出し、それらの情報を相互に関連付けてリポジトリを構築することとなる。このリポジトリ情報から、既存ソフトウェアの修正箇所を自動的に抽出する。また、プログラムにおける代入関係、データ領域の再定義関係、プログラム間の受け渡しパラメータ/ファイル、を検出し、これらに基づき修正箇所を抽出している。
【特許文献１】特開２００８−４０７５１号公報
【特許文献２】特許第第２５７１４９２号号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、上記特許文献１に示す技術を用いて一連の業務アプリケーションを開発し、こうした業務アプリケーションを複数企業にて利用する状況を想定した場合、以下の問題点が生じる。この場合、企業別に業務の詳細内容が異なるため、開発した前記業務アプリケーションに対して、修正要求が発生することとなる。例えば、ＤＢ層の「商品テーブル」に対して、そのテーブルにおける商品カテゴリの管理区分が３階層であったものを４階層にしたい、という修正要求が発生する場合がある。こうしたＤＢ層に対する修正が発生した場合には、これを直接・間接に利用するＤ層からＰ層までのプログラム部品に対して修正要求が発生することになる。この修正作業を迅速に行うためには、影響箇所の特定と修正作業を支援する処理方式が必要とされる。しかし、従来技術ではこうした影響箇所の特定と修正作業を行うことができない。
【０００７】
他方、上記の修正要求に対して特許文献２に示す技術を採用するとしても、上記P/C/F/D/ＤＢ層モデルを前提とした場合には適切に影響箇所を特定したり、プログラム部品を修正したりすることができない。例えば、ＤＢ層とＤ層において発生する変更の影響状況は大きく異なる。例えば、Ｄ層、ＤＢ層のプログラム部品では、データベースのテーブル構造そのものの変更内容を踏まえた上で、プログラム間の変更影響箇所を特定する必要がある。また、Ｆ層プログラムがＤ層プログラムを呼び出す場合には、プログラムモジュールのもつインタフェース仕様の変更に着目し変更影響箇所を特定する必要がある。以上のように、プログラム部品の属する階層などにより、変更影響箇所を特定するための処理が異なる。しかしながら、特許文献１，２ではこうした点について考慮されておらず、P/C/F/D/ＤＢ層モデルを前提としたプログラム開発における変更影響箇所の特定と修正作業の支援を行うことができない。
【０００８】
そこで、本発明は上記課題を鑑みてなされたものであり、プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化を実現する技術の提供を目的とする。
【課題を解決するための手段】
【０００９】
本発明のプログラム修正支援システムは、機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段を備えるコンピュータシステムである。このプログラム修正支援システムは、プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得する、修正指示受付手段を備える。特に、修正依頼を受付けた際に、修正対象のプログラム部品の属性を用いて部品管理テーブルを生成し、記憶手段に記憶させることがより好適である。つまり、本態様では、上記の処理を実行する毎に、プログラム部品が一定ルール(層別の)で作成されることを利用して、部品管理テーブルを生成する。
【００１０】
また、前記プログラム修正支援システムは、前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する、範囲推定手段を備える。
【００１１】
また、前記プログラム修正支援システムは、前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示する、更新影響提示手段と、前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行する、影響確定手段を備える。
【００１２】
また、前記プログラム修正支援システムにおいて、前記影響確定手段が、前記更新後データ情報についての修正指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正指示の示す修正内容での更新を前記部品管理テーブルで実行する構成としてもよい。
【００１３】
また、前記プログラム修正支援システムにおいて、前記範囲推定手段が、前記部品管理テーブルで前記データ項目についての更新が実行された前記他プログラム部品を次修正対象プログラム部品として、前記次修正対象プログラム部品の定義情報を前記部品管理テーブルで特定し、前記次修正対象プログラム部品の定義情報をキーにして、当該次修正対象プログラム部品と同一層に属し前記修正対象プログラム部品を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中で、前記部品管理テーブルでの更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定する構成としてもよい。
【００１４】
この場合、前記更新影響提示手段は、前記次他プログラム部品の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイスに表示する。また、前記影響確定手段は、前記次更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記次他プログラム部品の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブルで実行する。
【００１５】
また、前記プログラム修正支援システムにおいて、前記範囲推定手段が、前記次他プログラム部品の検索と前記次データ項目の検索を、前記部品管理テーブルにおいて前記各層を跨って実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返す構成としてもよい。
【００１６】
この場合、前記更新影響提示手段は、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段での前記次データ項目の特定処理の繰り返しが終了するまで繰り返す。また、前記影響確定手段は、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返すこととなる。
【００１７】
また、前記プログラム修正支援システムにおいて、前記修正指示受付手段、前記範囲推定手段、前記更新影響提示手段、および前記影響確定手段を、前記各層毎に備えるとしてもよい。この場合、層Ａの修正指示受付手段は、前記層Ａに属するプログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む前記層Ａに属する修正対象プログラム部品の属性データと修正内容データとを取得する。
【００１８】
また、前記層Ａの範囲推定手段は、前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定し、前記修正対象プログラム部品の定義情報をキーにして、前記層Ａにおいて前記修正対象プログラム部品と互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する。
【００１９】
また、前記層Ａの更新影響提示手段は、前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示する。
【００２０】
また、前記層Ａの影響確定手段は、前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行することとなる。
【００２１】
また、前記プログラム修正支援システムにおいて、層Ａの範囲推定手段が、前記部品管理テーブルで前記データ項目についての更新が実行された前記他プログラム部品を次修正対象プログラム部品として、前記次修正対象プログラム部品の定義情報を前記部品管理テーブルで特定し、前記次修正対象プログラム部品の定義情報をキーにして、前記層Ａに属し前記修正対象プログラム部品を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中で、前記部品管理テーブルでの更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定する構成としてもよい。
【００２２】
この場合、前記層Ａの更新影響提示手段は、前記次他プログラム部品の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイスに表示する。また、前記層Ａの影響確定手段は、前記次更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記次他プログラム部品の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブルで実行するものとなる。
【００２３】
また、前記プログラム修正支援システムにおいて、前記層Ａの範囲推定手段が、前記次他プログラム部品の検索と前記次データ項目の検索を、前記部品管理テーブルにおいて当該層Ａ以外の他層についても実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返す構成としてもよい。
【００２４】
この場合、前記層Ａの更新影響提示手段は、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段での前記次データ項目の特定処理の繰り返しが終了するまで繰り返す。また、前記層Ａの影響確定手段は、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返すものとなる。
【００２５】
また、本発明のプログラム修正支援方法は、コンピュータが、機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段を備えて、プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得する処理と、前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する処理と、前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示する処理と、前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行する処理と、を実行することを特徴とする。
【００２６】
また、本発明のプログラム修正支援プログラムは、機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した部品管理テーブルを記憶する記憶手段を備えるコンピュータに、プログラム部品についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む修正対象プログラム部品の属性データと修正内容データとを取得するステップと、前記修正対象プログラム部品の属性データを前記部品管理テーブルに照合して該当する修正対象プログラム部品の定義情報を特定すると共に、前記修正対象プログラム部品の定義情報をキーにして、前記修正対象プログラム部品と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品の検索を実行し、ここで検索された他プログラム部品の定義情報を前記部品管理テーブルから読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定するステップと、前記他プログラム部品の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイスに表示するステップと、前記更新後データ情報についての確定指示を入力インターフェイスから受け付けて、前記他プログラム部品の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブルで実行するステップと、を実行させることを特徴とする。
【００２７】
なお、上記のプログラム修正支援方法およびプログラムにおいても、修正依頼を受付けた際に、修正対象のプログラム部品の属性を用いて部品管理テーブルを生成し、記憶手段に記憶させることがより好適である。
【００２８】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【発明の効果】
【００２９】
本発明によれば、プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化が実現できる。
【発明を実施するための最良の形態】
【００３０】
−−−システム構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図１は本実施形態におけるプログラム修正支援システム１００を含むネットワーク構成図である。本実施形態におけるプログラム修正支援システム１００（以下、システム１００）は、プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化を実現するコンピュータシステムである。
【００３１】
具体例としては、ERPパッケージなど業務アプリケーションの修正作業を支援するためのサーバ装置を想定できる。また、ERPパッケージ等は、設計モデルとして、MVC（Model-View-Controller）モデルの拡張形であるP/C/F/D/ＤＢ層モデルに基づいて設計されている例を想定する。前記P/C/F/D/ＤＢ層モデルは、プログラムの構成をPresent層（P層）、Control層（C層）、Function層（Ｆ層）、Data層（Ｄ層）、Database層（ＤＢ層）の４つに区分して設計するものである。また、これらの層は、Present層（P層）：画面表示処理、Control層（C層）：複数の業務ロジック処理を制御し、画面操作単位などの処理を行う層、Function層（Ｆ層）：業務単位の業務ロジック処理を行う層（業務固有の計算処理は、この層において行われる）、Data層（Ｄ層）：テーブル、テーブル項目に対するまとまった操作を行う層、Database層（ＤＢ層）：Ｄ層での操作対象となるテーブル構成、項目からなる層、を意味する。このように、明確に、各プログラム部品をその機能ごとに各層で分離することで、層毎に開発作業を行うことが可能であり、開発作業の分業が容易になる。
【００３２】
しかし、層内ないし層間の各プログラム部品間で互いに利用関係がある場合、あるプログラム部品での仕様変更が他プログラム部品（同じ層ないし他層のもの）に及ぼす影響を見極めにくくなっている。そこで、本実施形態のプログラム修正支援システム１００により、プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化を実現する。
【００３３】
なお、こうした設計モデルでの開発フレームワークの例を図２に示した。ここにおけるＰ／Ｃ層における定義情報（例：前記部品管理テーブル１２５にて保持）は、「プログラム構成定義」、「画面定義」、「データ入出力定義」から構成されている（特開２００８−４０７５１号公報参照）。これらには以下のように情報が格納されている。（１）プログラム構成定義：アプリケーションプログラムで利用されるプログラム部品の構成情報を定義するもので、特開２００８−４０７５１号公報におけるプログラム構成定義シートに相当する（後述する画面定義やデータ入出力定義にて利用されるプログラム部品のパッケージ名、クラス名、メソッド名などから構成される）、（２）画面定義：アプリケーションプログラムで扱われる画面属性に関わる情報を保持するもので、特開２００８−４０７５１号公報における画面定義シートに相当する（画面定義を行う対象となる画面ID、画面遷移の順番たる枝番、画面項目とその属性などから構成される）、（３）データ入出力定義：画面表示時や画面のボタン操作などを行う際に、行われるデータ入出力処理の内容を保持するもので、画面表示時などにおけるプログラム部品の実行順序やメソッドの呼び出し処理についての情報を保持する（特開２００８−４０７５１号公報におけるデータ入出力定義シートに相当）。なお、部品管理テーブル１２５は、予め格納しておかず、修正指示受付手段１１０で修正依頼を受付けた際に、修正対象のプログラム部品の属性を用いて部品管理テーブルを図示しない生成手段で生成する。
【００３４】
以上述べた「プログラム構成定義」、「画面定義」、「データ入出力定義」の情報を用いることにより、特開２００８−４０７５１号公報に示すように、アプリケーション実行時のＰ／Ｃ層に関わる処理が生成される。なお、以下の説明においては、Ｐ／Ｃ層の定義情報が独自のXML形式のデータとして保存されており、例えば「商品管理AP.xml」といったファイル名で情報が保存されているものとする。
【００３５】
また、本実施形態におけるＦ層、Ｄ層、ＤＢ層においては、図示するようなC++のプログラム部品やテーブルなどが存在する。これらの実現手段そのものは、通常のプログラム言語などにより実現されるが、設計フレームワークに準拠した部品であるため、以下の制約に基づいている。Ｆ層部品：DBMSを直接操作するSQLは記述されずＤ層部品や別のＦ層部品などを利用することで間接的にテーブル操作を行う、Ｄ層部品：複数もしくは単数のテーブルに対する検索・変更・登録に関わる操作を行う（Ｄ層部品内部ではSQL文もしくはこれに相当する記述がプログラム処理として行われる）、ＤＢ層：データベースシステムにおけるテーブルスキーマおよびテーブルスキーマにより実現される物理テーブルより構成される（このテーブルへの直接的な操作はＤ層部品により行われる）。
【００３６】
本実施形態においては、こうした構成と条件を前提とした開発フレームワークにおいて、ＥＲＰパッケージ等の業務アプリケーション開発が行われている状況を例として採用する。
【００３７】
こうした前記システム１００は、プログラム修正支援方法を実行する機能を実現すべく不揮発性メモリなどの記憶装置１０１に格納されたプログラム１０２をメモリ１０３に読み出し、演算装置たるＣＰＵ１０４により実行する。また、前記システム１００は、コンピュータ装置が一般に備えている各種ボタン類、キーボードなどの入力インターフェイス１０５や、ＬＥＤやディスプレイなどの出力インターフェイス１０６を必要に応じて備え、さらにネットワーク１４０を介したユーザ端末２００との通信を担う通信装置１０７などを有するとしてよい。
【００３８】
続いて、前記システム１００が例えばプログラム１０２に基づき構成・保持する手段につき説明を行う。各手段は、１つのサーバ装置等に一体に備わるとしてもよいが、ネットワーク１４０上に配置するコンピュータ群（前記システム１００にあたるサーバ装置を含む）に分散配置し、そのうち一つのサーバ装置（システム１００）の主導の下で協働する例も想定してよい。なお、前記システムは、記憶装置１０１において部品管理テーブル１２５を少なくとも記憶している。
【００３９】
こうした前記システム１００は、プログラム部品５０（例えば図２のＤＢ層における"商品テーブル"、同様にＤ層における"クラス定義（Class SU_TBL[・・・・・]）"など）についての修正指示を入力インターフェイス１０５から受け付けて、当該修正指示が含む修正対象プログラム部品５０の属性データと修正内容データとを取得する、修正指示受付手段１１０を備える。
【００４０】
また、前記システム１００は、前記修正対象プログラム部品５０の属性データを前記部品管理テーブル１２５に照合して該当する修正対象プログラム部品５０の定義情報を特定すると共に、前記修正対象プログラム部品５０の定義情報をキーにして、前記修正対象プログラム部品５０と同一層に属するプログラム部品であって互いに利用関係にある他プログラム部品５１の検索を実行し、ここで検索された他プログラム部品５１（例：図２のＤＢ層における"支社別売上テーブル"）の定義情報を前記部品管理テーブル１２５から読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する、範囲推定手段１１１を備える。
【００４１】
また、前記システム１００は、前記他プログラム部品５１の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイス１０６に表示する、更新影響提示手段１１２を備える。
【００４２】
また、前記システム１００は、前記更新後データ情報についての確定指示を入力インターフェイス１０５から受け付けて、前記他プログラム部品５１の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブル１２５で実行する、影響確定手段１１３を備える。
【００４３】
なお、前記影響確定手段１１３が、前記更新後データ情報についての修正指示を入力インターフェイス１０５から受け付けて、前記他プログラム部品５１の定義情報における前記データ項目について、前記修正指示の示す修正内容での更新を前記部品管理テーブル１２５で実行するものである、としてもよい。
【００４４】
なお、前記範囲推定手段１１１が、前記部品管理テーブル１２５で前記データ項目についての更新が実行された前記他プログラム部品５１を次修正対象プログラム部品５２（例えば図２のＤＢ層における"支社別売上テーブル"）として、前記次修正対象プログラム部品５２の定義情報を前記部品管理テーブル１２５で特定し、前記次修正対象プログラム部品５２の定義情報をキーにして、当該次修正対象プログラム部品５２と同一層に属し前記修正対象プログラム部品５０を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品５３（例：図２のＤＢ層における"部門別売上テーブル"）の定義情報を前記部品管理テーブル１２５から読み出して、当該定義情報中で、前記部品管理テーブル１２５での更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定するものであるとしてもよい。
【００４５】
またこの場合、前記更新影響提示手段１１２が、前記次他プログラム部品５３の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイス１０６に表示するものとなる。更に、前記影響確定手段１１３が、前記次更新後データ情報についての確定指示を入力インターフェイス１０５から受け付けて、前記次他プログラム部品５３の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブル１２５で実行するものとなる。
【００４６】
前記範囲推定手段１１１が、前記次他プログラム部品５３の検索と前記次データ項目の検索を、前記部品管理テーブル１２５において前記各層を跨って（例：図２におけるＤＢ層とＤ層との間、Ｄ層とＦ層との間、Ｆ層とＰ／Ｃ層との間など）実行し、新たな次他プログラム部品（例：図２のＤＢ層における"支社別売上テーブル"を利用するＤ層における"クラス定義（Class SU_TBL[・・・・・]）"、更にこのＤ層における"クラス定義（Class SU_TBL[・・・・・]）"を利用するＦ層における"クラス定義（Class F1[・・・・・]）"、更にこのＦ層における"クラス定義（Class F1[・・・・・]）"を利用するＰ／Ｃ層の"データ入出力定義"）の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返すものとしてもよい。この場合、前記更新影響提示手段１１２が、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段１１１での前記次データ項目の特定処理の繰り返しが終了するまで繰り返す。また、前記影響確定手段１１３が、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段１１２での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返すものとなる。
【００４７】
なお、前記プログラム修正支援システムにおいて、前記修正指示受付手段１１０、前記範囲推定手段１１１、前記更新影響提示手段１１２、および前記影響確定手段１１３を、前記各層毎（例えば、各層に対応付けて前記各手段を実現する機能モジュールを容易）に備えるとしてもよい。図１において、各層毎（ＤＢ層〜Ｐ／Ｃ層）のモジュールに前記手段１１０〜１１３が備わっている例を示している。
【００４８】
この場合、ある層Ａの修正指示受付手段１１０は、前記層Ａに属するプログラム部品５０についての修正指示を入力インターフェイスから受け付けて、当該修正指示が含む前記層Ａに属する修正対象プログラム部品５０の属性データと修正内容データとを取得する。
【００４９】
また、前記層Ａの範囲推定手段１１１は、前記修正対象プログラム部品５０の属性データを前記部品管理テーブル１２５に照合して該当する修正対象プログラム部品５０の定義情報を特定すると共に、前記修正対象プログラム部品５０の定義情報をキーにして、前記層Ａにおいて前記修正対象プログラム部品５０と互いに利用関係にある他プログラム部品５１の検索を実行し、ここで検索された他プログラム部品５１の定義情報を前記部品管理テーブル１２５から読み出して、当該定義情報中での前記修正内容データの類似データの検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する。
【００５０】
また、前記層Ａの更新影響提示手段１１２は、前記他プログラム部品５１の定義情報における前記データ項目について前記修正内容データで更新した場合の、更新後データの情報を生成し、当該更新後データ情報を出力インターフェイス１０６に表示する。
【００５１】
また、前記層Ａの影響確定手段１１３は、前記更新後データ情報についての確定指示を入力インターフェイス１０５から受け付けて、前記他プログラム部品５１の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブル１２５で実行する。
【００５２】
ここで、前記層Ａの範囲推定手段１１１が、前記部品管理テーブル１２５で前記データ項目についての更新が実行された前記他プログラム部品５１を次修正対象プログラム部品５２として、前記次修正対象プログラム部品５２の定義情報を前記部品管理テーブル１２５で特定し、前記次修正対象プログラム部品５２の定義情報をキーにして、前記層Ａに属し前記修正対象プログラム部品５０を除き利用関係にある次なる他プログラム部品の検索を実行し、ここで検索された次他プログラム部品５３の定義情報を前記部品管理テーブル１２５から読み出して、当該定義情報中で、前記部品管理テーブル１２５での更新が実行されたデータの類似データの検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定する。
【００５３】
また、前記層Ａの更新影響提示手段１１２が、前記次他プログラム部品５３の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイス１０６に表示する。この場合、前記層Ａの影響確定手段１１３が、前記次更新後データ情報についての確定指示を入力インターフェイス１０５から受け付けて、前記次他プログラム部品５３の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブル１２５で実行するものとなる。
【００５４】
また、前記層Ａの範囲推定手段１１１が、前記次他プログラム部品５３の検索と前記次データ項目の検索を、前記部品管理テーブル１２５において当該層Ａ以外の他層についても実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の検索と前記次データ項目の検索の処理を繰り返すとしてもよい。
【００５５】
この場合、前記層Ａの更新影響提示手段１１２が、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記範囲推定手段１１１での前記次データ項目の特定処理の繰り返しが終了するまで繰り返す。更に、前記層Ａの影響確定手段１１３が、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記更新影響提示手段１１２での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返す。
【００５６】
なお、これまで示した前記システム１００における各手段１１０〜１１３は、ハードウェアとして実現してもよいし、メモリやＨＤＤ（Hard Disk Drive）などの適宜な記憶装置１０１に格納したプログラムとして実現するとしてもよい。この場合、システム１００のＣＰＵ１０３がプログラム実行に合わせて記憶装置１０１より該当プログラム１０２をメモリ１０３に読み出して、これを実行することとなる。
【００５７】
−−−テーブル構造例−−−
次に、本実施形態におけるシステム１００が利用するテーブルの構造について説明する。図３は、本実施形態の部品管理テーブル１２５と部品間対応管理テーブル１２６のデータ構造例１を示す図である。
【００５８】
前記部品管理テーブル１２５は、機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層に対応付けて格納したテーブルであり、ハードディスクドライブなど不揮発性記憶装置である前記記憶手段１０１に格納されている。この部品管理テーブル１２５は、例えば、プログラム部品のＩＤ（図中：部品管理ＩＤ）、部品種別（所属する層のＩＤ）、クラス／テーブル名（該当プログラム部品のオブジェクト・クラスや、テーブル種など）、関数／項目名（プログラム部品の定義内容：テーブルのキー項目や、プログラムが用いる関数名やコードデータなど）を対応付けたレコードの集合体となっている。この部品管理テーブル１２５は、システム構築を行う技術者等が、設計したプログラム部品について、所属する層の種別データを付した上で格納する、いわば各層を跨ったプログラム部品の格納先フォルダとなる。
【００５９】
また、前記部品間対応管理テーブル１２６は、前記システム１００が、利用者らからの修正指示を受けた場合に、この修正指示と前記部品管理テーブル１２５の格納情報とに基づいてプログラム部品間の互いの利用関係を検索し、前記利用関係についてテーブル化した一時的なテーブルであり、例えば前記メモリ１０３に一時的に格納される（前記部品管理テーブル１２５と異なり、システム１００で当初から常備して利用可能なものではない）。この部品間対応管理テーブル１２６は、例えば、部品間対応管理ＩＤをキーとして、利用側プログラム部品のＩＤと、このプログラム部品より機能やデータを利用される被利用側プログラム部品のＩＤとを対応付けたレコードの集合体となっている。
【００６０】
次に、前記部品管理テーブル１２５および部品間対応管理テーブル１２６の他の例について説明する。図４は、本実施形態の部品管理テーブル１２５と部品間対応管理テーブル１２６のデータ構造例２を示す図である。ここにおける前記部品管理テーブル１２５は、機能毎に層分けされて各層間でデータをやりとりする各プログラム部品の定義情報を前記層毎に格納した層別（Ｐ／Ｃ層、Ｆ層、Ｄ層、ＤＢ層）のテーブルとなっており、ハードディスクドライブなど不揮発性記憶装置である前記記憶手段１０１に格納されている。この層毎の部品管理テーブル１２５は、例えば、プログラム部品のＩＤ（図中：部品管理ＩＤ）、クラス／テーブル名（該当プログラム部品のオブジェクト・クラスや、テーブル種など）、関数／項目名（プログラム部品の定義内容：テーブルのキー項目や、プログラムが用いる関数名やコードデータなど）を対応付けたレコードの集合体となっている。この部品管理テーブル１２５は、システム構築を行う技術者等が、設計したプログラム部品の格納先となる、いわば各層毎のプログラム部品のフォルダとなる。
【００６１】
また、前記部品間対応管理テーブル１２６は、前記システム１００が、利用者らからの修正指示を受けた場合に、この修正指示と前記部品管理テーブル１２５の格納情報とに基づいて各層間におけるプログラム部品間の互いの利用関係を検索し、前記利用関係について各層間毎にテーブル化した一時的なテーブルであり、例えば前記メモリ１０３に一時的に格納される（前記部品管理テーブル１２５と異なり、システム１００で当初から常備して利用可能なものではない）。この部品間対応管理テーブル１２６は、例えば、各層間（例：D-ＤＢ層間）毎に、部品間対応管理ＩＤをキーとして、利用側プログラム部品のＩＤと、このプログラム部品より機能やデータを利用される被利用側プログラム部品のＩＤとを対応付けたレコードの集合体となっている。
【００６２】
なお、図１に示すように、前記修正指示によるデータ更新の実行前のプログラム部品群を、変更前プログラム部品群１２５ａとし、また、前記修正指示によるデータ更新の実行後のプログラム部品群を、変更後プログラム部品群１２５ｂとしている。前記変更前プログラム部品群１２５ａは、前記部品管理テーブル１２５において、本発明のプログラム修正支援方法実行前のプログラム部品群そのものであり、前記変更後プログラム部品群１２５ｂは、本発明のプログラム修正支援方法が実行されてデータ更新がなされた後のプログラム部品群となる。また、図１における、変更影響範囲情報、テーブル変更ルール定義画面、テーブル変更ルール情報、および層別変更影響箇所表示画面群については、後述する。
【００６３】
なお、上述したように本部品管理テーブル１２５は、修正指示受付手段１１０で修正依頼を受付けた際に、修正対象のプログラム部品の属性を用いて部品管理テーブルを図示しない生成手段で生成されることがより好適である。
【００６４】
−−−処理フロー例−−−
以下、本実施形態におけるプログラム修正支援方法の実際手順について、図に基づき説明する。なお、以下で説明するプログラム修正支援方法に対応する各種動作は、前記システム１００がメモリ１０３に読み出して実行するプログラム１０２によって実現される。そしてこのプログラム１０２は、以下に説明される各種の動作を行うためのコードから構成されている。また、前記システム１００における各手段１１０〜１１３は、ＤＢ層〜Ｐ／Ｃ層の各層毎に備わる状況を想定し以下の説明を行う。勿論、前記各手段１１０〜１１３がシステム１００において１つだけ備わっていて、前記各層を全て跨って必要な処理を行うとしてもよい。
【００６５】
図５は本実施形態のプログラム修正支援方法の処理手順例１を示すフローチャートである。ここでまず、前記システム１００におけるＤＢ層の修正指示受付手段１１０は、プログラム部品５０についての修正指示をテーブル変更ルール定義画面５００などの入力インターフェイス１０５から受け付けて、当該修正指示が含む修正対象プログラム部品５０の属性データと修正内容データとを取得する（ｓ１００）
図６に示すテーブル変更ルール定義画面５００では、例えば、ＤＢ層の修正内容をテーブル単位で受付けるものとする。また、前記テーブル変更ルール定義画面５００において、「変更テーブル名」のリストボックスには、修正対象とするテーブル（プログラム部品とも言える）の名の一覧（部品管理テーブル１２５からシステム１００がリストアップ）が示される。
【００６６】
また、前記システム１００は、前記画面５００における「変更前テーブル定義」の領域で、前記ＤＢ層にてすでに定義されているテーブルの情報（変更前プログラム部品群１２５ａの格納情報）に基づき、テーブル項目の一覧を、キー項目であるものと、そうでないキー項目（非キー項目）として表示する。一方、「変更後テーブル定義」の領域には、開発者などのユーザが望む変更後のキー項目および非キー項目の一覧を表示する。
【００６７】
例えば、当該画面５００において、例えば、ユーザ端末２００を利用してシステム１００にアクセスしたユーザがマウスの右ボタンを、前記「変更後テーブル定義」の領域中の所定キー項目（ないし非キー項目）上でクリックすることにより、システム１００は、「項目追加」、「項目削除」、「項目名変更」などのサブメニューのデータを記憶装置１０１から読み出して表示する。前記ユーザはこれらのサブメニューを適宜選択することにより、キー項目一覧や非キー項目の項目名称の編集をすることができる。
【００６８】
そのため、前記システム１００は、前記サブメニューの選択を受けて、該当項目について修正内容を受付ける子画面を記憶装置１０１から読み出して前記ユーザ端末２００に送り、この子画面で修正内容のキーインを受付ける。また、前記システム１００は、各項目のデータ型などの属性編集について、「項目詳細定義」ボタンの押下を検知して、子画面を表示し、この子画面上でデータ型、桁数など、DBMS上のテーブル項目定義に必要な属性編集の指示を受付ける。
【００６９】
また、前記システム１００は、前記画面５００上の「定義登録」ボタンの押下を検知して、当該画面５００で受け付けたＤＢ層におけるテーブル："商品テーブル"についての修正指示："商品中区分"の追加、を取得し、メモリ１０３ないし記憶装置１０１に格納するのである。
【００７０】
続いて、前記システム１００におけるＤＢ層の範囲推定手段１１１は、前記修正対象プログラム部品５０たる"商品テーブル"の属性データ（例：テーブル名やテーブルＩＤなど）をキーにして、前記部品管理テーブル１２５での他レコードの格納データの検索を実行して、利用関係にある他プログラム部品５１："支社別売上テーブル"、"部門別売上テーブル"を特定する（ｓ１０１）。なお、図３の部品管理テーブル１２５での例ならば、例えば、部品管理ＩＤ"１"のレコードが前記修正対象プログラム部品５０に対応している時、前記属性データとしての例えば、"商品コード"をキーにして、定義内容に"商品コード"を含む部品管理ＩＤ"２"のレコードを特定できる。前記範囲推定手段１１１は、こうして特定したプログラム部品間の利用関係の情報は、図３，図４に示した部品間対応管理テーブル１２６としてリスト化し、メモリ１０３に格納するとしてよい。また、ｓ１００において、予め部品管理テーブルを準備しておかず、システム１００が、修正対象のプログラム部品の属性を用いて部品管理テーブル１２５を生成するとより好適である。
【００７１】
次に、前記ＤＢ層の範囲推定手段１１１は、前記他プログラム部品５１の定義情報（この場合は、テーブル構造をなすキー項目）を前記部品管理テーブル１２５から読み出して、当該定義情報中での前記修正内容データの類似データ検索を実行し、前記定義情報中で前記修正内容に類似するデータ項目を特定する（ｓ１０２）。なお、類似データ検索の処理には、従来の類似文検索技術等を採用すればよい。
【００７２】
こうした処理の結果、例えば、前記ＤＢ層における"商品テーブル"の修正指示"商品中区分"の追加、に影響を受ける他プログラム部品について、前記システム１００における前記ＤＢ層の更新影響提示手段１１２は、前記他プログラム部品５１の定義情報におけるキー項目について前記修正内容データ"商品中区分"を追加更新した場合の、更新後データの情報を生成し、当該更新後データ情報を前記ユーザ端末２００（ないし出力インターフェイス１０６）に表示する（ｓ１０３）。
【００７３】
図７、図８に前記更新後データの表示例として、ＤＢ層変更影響箇所表示画面（影響テーブル軸）６００、ＤＢ層変更影響箇所表示画面（キー項目一覧軸）７００を示す。図７に示すように、「ＤＢ層変更影響箇所表示画面６００には、「影響元テーブル名」と「表示軸パターン」の項目がある。「影響元テーブル名」には、影響発生元になったテーブル名称"商品テーブル"が表示されている。「表示軸パターン」のリスト領域には、前記更新後データの表示領域６０１における情報表示方法の選択肢が示される。図の例では、「影響先テーブル名」、「キー項目一覧」、「非キー項目一覧」などを選択することができる。
【００７４】
なお、前記「表示軸パターン」の項目にて、「影響先テーブル名」が選択された時には、システム１００は、影響先テーブル名に修正前と修正後の項目一覧情報を対応付けて表示する。また、「表示軸パターン」の項目にて「キー項目一覧」が選択された時、システム１００は、図８に示すように、キー項目別に修正前と修正後の情報を対応付けて表示する。更に、「表示軸パターン」の項目にて「非キー項目一覧」が選択された時、システム１００は、図８と同様な画面構成において、非キー項目別に変更前と変更後の情報を対応付けて表示する。また、「表示軸パターン」の項目にて「影響関連図」が選択された時、システム１００は、後述する「影響関連図画面」を記憶装置１０１から読み出して表示する。
【００７５】
ところで、図７に示す「変更後項目の類推処理」ボタン６１０の押下をシステム１００が受けると、システム１００は、図７に示す表領域６０１の行間（つまり異なるテーブル間）において、修正前と修正後のキー項目内容を自動類推し、表領域６０１に対するユーザの補正入力作業を軽減する処理を行う。この場合、システム１００は、若い行番号をもつ行に含まれる「修正前項目一覧」と「修正後項目一覧」の対応関係に基づいて、より大きな番号をもつ行における「修正前項目一覧」の内容を自動類推するものである。
【００７６】
例えば図７に示す画面例において、前記ユーザが、行番号１の修正後キー項目一覧の内容：「支社名、商品大区分、商品中区分、商品コード」の内容を、「支社名、商品大区分１、商品大区分２、商品中区分、商品コード」と修正したものとする。このとき、前記ユーザが、「変更後項目の類推処理」ボタン６１０をユーザ端末２００を介して押下すると、これを感知したシステム１００は、行番号２の修正後キー項目一覧の内容：「支社名、部門名、商品大区分、商品中区分、商品コード」を、「支社名、部門名、商品大区分１、商品大区分２、商品中区分、商品コード」に変更する。このようにシステム１００は、若い行番号にて入力された修正前と修正後の項目対応関係に基づき、より大きな行番号における修正後内容を自動類推する。システム１００がこうした機能をもつことにより、ユーザが類似項目の修正内容を、個別に手入力で修正する作業を低減することができる。
【００７７】
こうして、当該画面６００上での操作で入力された内容、つまり図１に示した「テーブル変更ルール情報」は、テキスト、DBMSのテーブルなどのフォーマットを利用してシステム１００のメモリ１０３ないし記憶装置１０１に保存される。情報の保存フォーマットや手段については、図７に示す画面表示項目相当のものを保持できれば、特に問わない。以上、ＤＢ層の場合について説明を行ったが、ＤＢ層以外のＤ層、Ｆ層、Ｐ／Ｃ層についても、各層に対応して備わる各手段１１０〜１１２が同様に処理を実行する。
【００７８】
また、前記システム１００におけるＤＢ層の影響確定手段１１３は、前記更新後データ情報についての確定指示を前記ユーザ端末２００（ないし入力インターフェイス１０５）から受け付けて、前記他プログラム部品５１の定義情報における前記データ項目について、前記修正内容データでの更新を前記部品管理テーブル１２５で実行する（ｓ１０４）。図７の例であれば、ＤＢ層変更反映ボタン６１１の押下を前記更新後データ情報についての確定指示として感知することとなる。なお、前記ＤＢ層の影響確定手段１１３が、前記更新後データ情報についての修正指示を前記画面６００など入力インターフェイス１０５から受け付けて、前記他プログラム部品５１の定義情報における前記データ項目について、前記修正指示の示す修正内容での更新を前記部品管理テーブル１２５で実行するものである、としてもよい。
【００７９】
次に、前記Ｄ層の範囲推定手段１１１は、前記部品管理テーブル１２５で前記データ項目についての更新が実行された前記他プログラム部品"支社別売上テーブル"、"部門別売上テーブル"を次修正対象プログラム部品５２として、前記次修正対象プログラム部品５２の属性データを前記部品管理テーブル１２５に照合して、前記修正対象プログラム部品５０を除き利用関係にある次なる他プログラム部品を前記Ｄ層中で特定する（ｓ１０５）。本実施形態における例では、Ｄ層に位置するC++のパッケージが、次他プログラム部品の候補となる。例えば、部品管理ＩＤ"１"のレコードが前記修正対象プログラム部品５０に対応している時、前記属性データとしての例えば、"商品コード"をキーにして、関数／項目名にて前記"商品コード"（＝関数中での特定コードに対応：例えば"input１"）を含む部品管理ＩＤ"３"のレコード（＝Ｄ層の"Class SYHN.TBL・・・"）を特定できる。
【００８０】
また、前記Ｄ層の範囲推定手段１１１は、前記ステップｓ１０５で特定した次他プログラム部品５３の定義情報（この場合、前記C++のソース）を前記部品管理テーブル１２５から読み出して、当該定義情報中で、前記部品管理テーブル１２５での更新が実行されたデータ"商品中区分"の類似データ検索、例えば"商品大区分"等を含むキー項目群の検索を実行し、前記定義情報中で前記更新の実行後のデータに類似する次データ項目を特定する（ｓ１０６）。
【００８１】
次に、前記Ｄ層の更新影響提示手段１１２は、前記次他プログラム部品５３の定義情報における前記次データ項目について前記更新実行後のデータで更新した場合の、次更新後データの情報を生成し、当該次更新後データ情報を出力インターフェイス１０６に表示する（ｓ１０７）。更に、前記Ｄ層の影響確定手段１１３は、前記次更新後データ情報についての確定指示を入力インターフェイス１０５から受け付けて、前記次他プログラム部品５３の定義情報における前記次データ項目について、前記更新実行後のデータでの更新を前記部品管理テーブル１２５で実行する（ｓ１０８）。
【００８２】
ここに、前記ＤＢ層での修正に影響を受けると特定されたＤ層についての影響を示した例を図９で説明する。図９のＤ層変更影響箇所表示画面８００は、図７と同様に「表示軸パターン」の項目が含む。この画面８００ではＤ層を操作するための表示軸パターンを選択することができる。「表示軸パターン」のリスト領域には、Ｄ層における影響箇所の表示領域８０１における情報表示方法の選択肢「影響先メソッド」、「影響発生元SQL要素」、「影響関連図」が示される。
【００８３】
また、前記表示領域８０１における「影響先メソッド」の欄では、「修正前影響先クラス名/メソッド名/IF」と「修正後影響先クラス名/メソッド名/IF」の情報が含まれる。図に示す「修正前影響先クラス名/メソッド名/IF」では、この時点で存在する修正前のプログラム部品において、前記ＤＢ層での修正の影響を受けるクラス名/メソッド名/IFを表示する。また、「修正後影響先クラス名/メソッド名/IF」では、修正後のクラス名/メソッド名/IFとして類推された結果、もしくは前記ユーザが人手入力した修正後の結果を表示する。前記ユーザが、「変更後メソッドの類推処理」ボタン８０２を押すと、システム１００はこれを検知して「修正後影響先クラス名/メソッド名/IF」の領域に、類推した前記次更新後データ情報を表示する。この時、システム１００は、類推された前記次更新後データ情報について斜体文字表示するなど強調表示処理を実行すると好適である。
【００８４】
また、システム１００は、「Ｄ層変更反映」ボタン８０４の押下を検知して、前記次更新後データ情報を記憶装置１０１に登録する。
【００８５】
また、図に示す「影響発生元SQL要素」の欄では、「SQLタイプ」、「操作句」、「Where句」のデータが表示される。「SQLタイプ」には影響発生元となるSQLのタイプが、登録（＝Insert）、更新（＝Update）、検索（＝Select）、削除（＝Delete）いずれの処理を行うものかを示す。「操作句」はさらに修正前のものと修正後のものから構成され、それぞれ修正前のプログラムにおけるSQLの操作句内の項目条件と、修正後のプログラムにおけるSQLの操作句内の項目条件を表示する。同様に、「Where句」も修正前のものと修正後のものから構成され、それぞれ修正前のプログラムにおけるSQLのWhere句内の項目条件と、修正後のプログラムにおけるSQLのWhere句内の項目条件を表示する。前記ユーザが、「変更後SQLの類推処理」ボタン８０３を押下すると、システム１００がこれを検知して「修正後操作句内項目一覧」と「修正後Where句内項目一覧」において、修正後の類推結果（次更新後データ情報）を表示する。
【００８６】
なお、前記Ｄ層の範囲推定手段１１１は、前記次他プログラム部品５３の特定と前記次データ項目の特定を前記ＤＢ層〜Ｄ層間の他に、Ｄ層〜Ｆ層、Ｆ層〜Ｐ／Ｃ層の各間を跨って実行し、新たな次他プログラム部品の特定が出来なくなるまで前記次他プログラム部品の特定と前記次データ項目の特定の処理を繰り返すとしてもよい（勿論、他の層の範囲推定手段１１１が実行するとしてもよい）。
【００８７】
同様に、前記Ｄ層の更新影響提示手段１１２は、前記次更新後データの情報の生成と、当該次更新後データ情報の表示を、前記Ｄ層の範囲推定手段１１１での前記次データ項目の特定処理の繰り返しが終了するまで繰り返す。また、前記Ｄ層の影響確定手段１１３は、前記次更新後データ情報についての確定指示の受け付けと、前記次データ項目について前記更新実行後のデータでの更新を、前記Ｄ層の更新影響提示手段１１２での前記次更新後データ情報の表示処理の繰り返しが終了するまで繰り返す。
【００８８】
こうした繰り返し処理の流れで、システム１００は、前記Ｄ層の上位層であるＦ層、Ｐ／Ｃ層についても処理を行っていく。なお、前記Ｄ層における修正の影響をうけるＦ層クラスが多く存在することが想定される場合、例えば、ユーザ端末２００から、影響発生元のクラスとして一つ選択を受け付けて、ここで受け付けた選択クラスについて表示内容を絞り込むこととする。
【００８９】
なお、Ｆ層についての処理結果である、Ｆ層変更影響箇所表示画面９００（図１０）は、図７と同様に「表示軸パターン」の項目を含む。この画面９００ではＦ層を操作するための表示軸パターンを選択することができる。「表示軸パターン」のリスト領域には、Ｆ層における前記Ｄ層からの影響箇所を示す表示領域９０１における情報表示方法の選択肢、「影響先メソッド」、「影響発生元メソッド」、「影響関連図」が示される。
【００９０】
図に示すように、前記領域９０１での表示項目は大きく分けて、「影響先メソッド」と「影響発生元メソッド」からなる。「影響先メソッド」は、図９の「Ｄ層変更影響箇所表示画面」と同様に、「修正前影響先クラス名/メソッド名/IF」と「修正後影響先クラス名/メソッド名/IF」からなる。また、図８と同様に「変更後メソッド類推処理」ボタン９０２が備わり、図８のものと同様の機能を果たす。
【００９１】
また、Ｐ／Ｃ層についての処理結果を、図１１〜１２のＰ／Ｃ層変更影響箇所表示画面１０００〜１２００に示す。「Ｐ／Ｃ層変更影響箇所表示画面」では、図９等と同様に「表示軸パターン」の項目がある。この画面ではＰ層およびＣ層を操作するための表示軸パターンを選択することができる。「表示軸パターン」のリスト領域には、Ｐ層およびＣ層での影響箇所の表示領域１００１における情報表示方法の選択肢、「影響先定義情報」、「影響発生元メソッド」、「影響関連図」が示される。
【００９２】
また、「Ｐ／Ｃ層変更影響箇所表示画面」では、「プログラム構成定義」、「画面定義」、「データ入出力定義」のタグが示さる。ユーザがこれらのタグいずれかを選ぶことにより、システム１００は図１１〜１２に示すように画面上に表示す表項目を変化させる。図１１では「プログラム構成定義」タグが選択された状態、図１２では「データ入出力定義」タグが選択された状態、図１３では「画面定義」タグが選択された状態を示している。
【００９３】
図１１〜１２に示すように前記領域１００１の表示データは、「影響先定義情報」と「影響発生元クラス」からなる。前記「影響先定義情報」には、選択されたタグ内容に応じた定義情報の詳細な項目が表示される。例えば、図１２では、「データ入出力定義」タグが選択されており、このタグに対応して「影響先定義情報」が「プログラムID」、「データ入出力定義」、といった内容から構成されている。
【００９４】
なお、図１１〜１２の画面例では、レコード単位に修正前と修正後の情報を表示する構成としている。「プログラム構成定義」、「画面定義」、「データ入出力定義」の各定義情報では、定義される項目数が非常に多いため、前記ユーザが修正前と修正後の定義項目内容を比較しやすくするため、奇数レコード列には修正前の定義情報を表示し、偶数レコードには修正後の定義情報を表示する構成としている。
【００９５】
また前記「プログラム構成定義」タグでは、システム１００が「影響プログラムID/枝番」のリスト選択をユーザから受け付けて、前記領域１００１に表示するレコード情報を絞り込むことができる。前記領域１００１上には、プログラム構成定義として定義される項目一覧が並ぶ。この項目名称および内容は、特開２００８−４０７５１号公報に述べられているものに順ずる。前記領域１００１には、修正前と修正後の内容を示すレコード情報が、交互に表示される。
【００９６】
また、「データ入出力定義」タグでは、システム１００が「影響プログラムID/枝番」のリスト選択をユーザから受け付けて、前記領域１００１に表示するレコード情報を絞り込むことができる。前記領域１００１上には、プログラム構成定義として定義される項目一覧が並ぶ。この項目名称および内容は、特開２００８−４０７５１号公報に述べられているものに順ずる。前記領域１００１には、修正前と修正後の内容を示すレコード情報が、交互に表示される。
【００９７】
また、「画面定義」タグでは、システム１００が、「影響先画面ID」のリスト選択をユーザから受け付けて、前記領域１００１に表示するレコード情報を絞り込むことができる。前記領域１００１上には、プログラム構成定義として定義される項目一覧が並ぶ。この項目名称および内容は、特開２００８−４０７５１号公報に述べられているものに順ずる。前記領域１００１には、修正前と修正後の内容を示すレコード情報が、交互に表示される。
【００９８】
以上のような処理により、システム１００は、前記ＤＢ層での修正がＤ層からＰ／Ｃ層まで及ぼす影響について特定し、その修正内容を推定してユーザに提示し、ユーザによる確定指示を受けて記憶装置１０１での格納情報の更新作業を実行した。その結果、ＤＢ層からＰ／Ｃ層に至る各プログラム部品間の影響具合は、影響関連図画面１３００としてシステム１００により生成される。図１４に影響関連図画面１３００の概要を示す。この図における画面１３００では、ＤＢ層からＤ層、Ｆ層、Ｃ層、Ｐ層にいたる各層の影響関係を示している。この影響関係については、修正の発生箇所から直接影響を受ける影響先（同一層内）と、間接的な影響先を経由してさらに派生的に影響を受ける影響先（層を跨ったもの）とがある。この直接的か間接的かの影響経路の違いをシステム１００は、直接的：実線と、間接的：点線とで区別して表示する。
【００９９】
また、システム１００は、前記ＤＢ層での修正に伴う影響発生先（＝プログラム部品）の数を各層毎にカウントしておき、そのカウント値を前記画面１３００上の対象層上に表示する。例えば、「Ｐ／Ｃ層影響個数」には、Ｐ／Ｃ層の定義情報における、定義情報の変更個数が表示される。これにより、前記ユーザなどの開発者は、前記変更個数に対し１つの変更に要する工数を乗算するなどして、変更結果による開発工数の概算などを行うことができる。勿論、こうしたあるプログラム部品に関する修正により発生するプログラム全体で増加する工数の算定をシステム１００が行って、その算定結果をユーザ端末２００に返信するとしてもよい。
【０１００】
また、前記影響関連図画面１３００上に示されるＰ／Ｃ層、Ｆ層、Ｄ層、ＤＢ層の各層の下には、ボタン１３０１〜１３０４が配置されている。この配置されているボタン１３０１〜１３０４が押下されると、前記システム１００は、各層別の変更影響箇所表示画面（既に示した図７〜１２）のデータを記憶装置１０１から読み出して、ユーザ端末２００に送信する。
【０１０１】
−−−詳細処理フロー例１（影響関連図画面表示処理）−−−
次に、上述してきた各種処理の詳細フローについて説明する。図１５は本実施形態の詳細処理手順例１を示すフローチャートである。ここで前記ＤＢ層の各手段１１０〜１１２は、テーブル変更ルール情報（図６での入力）を入力とし、図７や図８に示したＤＢ層変更箇所画面の表示処理を実行し、影響が及ぶＤＢ層の構成要素、つまりＤＢ層におけるテーブルの情報を取得する（ｓ３００）。
【０１０２】
そして前記Ｄ層の各手段１１０〜１１２は、前記ステップｓ３００で得たＤＢ層要素を入力として、図９に示したＤ層変更箇所画面の表示処理を非表示モードにて実行し、影響が及ぶＤ層の構成要素、つまりc++のソースコードなど定義情報を取得する（ｓ３０１）。また前記Ｆ層の各手段１１０〜１１２は、前記ステップｓ３０１で得たＤ層要素を入力として、図１０に示したＦ層変更箇所画面の表示処理を非表示モードにて実行し、影響がおよぶＦ層の構成要素を同様に取得する（ｓ３０２）。
【０１０３】
続いて、前記Ｐ／Ｃ層の各手段１１０〜１１２は、前記ステップｓ３０２で得たＦ層要素を入力として、図１１に示したＰ／Ｃ層変更箇所画面の表示処理を非表示モードにて実行し、影響が及ぶＰ／Ｃ層の構成要素を同様に取得する（ｓ３０３）。
【０１０４】
次に、前記各層の更新影響提示手段１１２はここまでのステップｓ３００〜ｓ３０３で得た影響要素のうち、テーブル変更ルール情報（図１等で既出）において直接影響があるものと、変更影響範囲情報（図１等で既出）にてユーザ確認されたものとを、直接関係する要素として各層に対応する画面（図７〜１３のいずれか、または図１４）にて表示する（ｓ３０４）。更に、ユーザ確認されなかったものについては、間接的に影響があるものとして図１４の画面１３００にて表示する（ｓ３０５）。そして、最終的にＤＢ層からＰ／Ｃ層への構成要素とつながらなかった要素を、他の要素と区別する形で図１４の画面１３００に表示する（ｓ３０６）。
【０１０５】
−−−詳細処理フロー例２（ＤＢ層影響結果表示処理１）−−−
図１６は本実施形態の詳細処理手順例２を示すフローチャートである。ここでシステム１００におけるＤＢ層の前記範囲推定手段１１１は、変更対象のテーブルのキー項目（例：修正指示に含まれたもの）を含むテーブル名一覧を検出し、関連テーブルとして特定する（ｓ４００）。そして、前記関連テーブルのキー項目（変更前キー項目）における、前記修正指示に対応した変更が生じる項目名（「変更後キー項目名」）の特定を行う（ｓ４０１）。また、前記関連テーブルの非キー項目における、前記修正指示に対応した変更が生じる項目名（「変更後キー項目名」）の特定を行う（ｓ４０２）。
【０１０６】
次に、前記ＤＢ層の更新影響提示手段１１２は、前記メモリ１０３上に保持した「変更後キー項目名」について、例えば、「変更前キー項目一覧」での項目数が少ない順にソートし、この結果を前記図７の画面６００にて、前記「変更前キー項目一覧」と対応付いた「変更後キー項目一覧」として表示する（ｓ４０３）。そして、前記画面６００上の「変更後キー項目一覧」欄における表示文字属性を斜体文字とし、自動的に算出した変更結果であることがわかるように表示する（ｓ４０４）。
【０１０７】
−−−詳細処理フロー例３（ＤＢ層影響結果表示処理２）−−−
図１７は本実施形態の詳細処理手順例３を示すフローチャートである。ここでシステム１００におけるＤＢ層の更新影響提示１１２は、前記関連テーブルのうち、変更前のキー項目一覧をすべて含むテーブルを例えば、「自動変更可能テーブル」として分類する（ｓ５００）。そして、前記ＤＢ層の更新影響提示手段１１２は、前記「自動変更可能テーブル」に対してはテーブル変更ルール情報の定義に基づき、各テーブルに対する変更後キー項目、変更後非キー項目を推測する（ｓ５０１）。
【０１０８】
次に、前記ＤＢ層の更新影響提示手段１１２は、変更前の項目名と、推測結果後の項目名を対応づけ、メモリ１０３上の「変更後項目名情報」として保持する（ｓ５０２）。続いて、前記ＤＢ層の更新影響提示手段１１２は、前記「自動変更可能テーブル」として分類できなかったテーブルを「自動変更不可テーブル」として分類する（ｓ５０３）。また、各自動変更不可能テーブルのキー項目から、変更対象テーブルの変更前キー項目と一致するキー項目の一覧を検出する（ｓ５０４）。そして前記ＤＢ層の更新影響提示手段１１２は、前記ステップｓ５０４で得た検出結果を、各自動変更不可能テーブルと対応づけ、変更元キー項目とし、変更後キー項目は「推定不可」として、メモリ１０３上の前記「変更後項目名情報」に保持する（ｓ５０５）。
【０１０９】
−−−詳細処理フロー例４（Ｄ層影響結果表示処理１）−−−
図１８は本実施形態の詳細処理手順例４を示すフローチャートである。ここでシステム１００におけるＤ層の更新影響提示手段１１２は、部品管理テーブル１２５が格納する、例えば、ｃ＋＋のソースコードが含むSQLを操作句と条件句に分解する（ｓ６００）。また、テーブル変更ルール情報による操作句内項目への変更処理を実行する（ｓ６０１）。続いて、テーブル変更ルール情報による条件句内項目への変更処理を実行する（ｓ６０２）。また、前記Ｄ層の更新影響提示手段１１２は、前記「変更後項目名情報」に基づき、変更前項目と変更後項目を、例えば、前記図９の画面８００等で表示する（ｓ６０３）。更に、変更前と変更後項目の変更対応がわかるように、対を成す変更前項目と変更後項目のセットについて同じ色の文字として再表示する（ｓ６０４）。そして前記Ｄ層の更新影響提示手段１１２は、検索条件句の変更前項目数が少ないもの、操作句の変更前項目数が少ないものをソート条件とし、画面上の行並びを変更し、再表示する。（ｓ６０５）。
【０１１０】
−−−詳細処理フロー例５（Ｄ層影響結果表示処理２）−−−
図１９は本実施形態の詳細処理手順例５を示すフローチャートである。ここでシステム１００における前記Ｄ層の更新影響提示手段１１２は、前記SQLの部分句における単項目名称が、テーブル変更ルール情報内に含まれているか判定する（ｓ７００）。この判定により、前記単項目名称が、テーブル変更ルール情報内に含まれていると判定できた場合（ｓ７００：YES）、前記Ｄ層の更新影響提示手段１１２は、前記テーブル変更ルール情報に基づき、該当する単項目名に対し変更後の項目名を推測する（ｓ７０１）。他方、含まれていないと判定できた場合（ｓ７００：NO）、変更後の項目名を「推測不可」とする（ｓ７０２）。
【０１１１】
次に、前記Ｄ層の更新影響提示手段１１２は、変更前の項目名と、推測結果後の変更後の項目名とを対応づけ、メモリ１０３上の「変更前操作句内項目一覧」、「変更後操作句内項目一覧」として保持する（ｓ７０３）。そして、前記SQL部分句におけるAND条件による複数項目のグループが、テーブル変更ルール情報内に含まれているか判定する（ｓ７０４）。  前記Ｄ層の更新影響提示手段１１２は、この判定により、前記複数項目のグループが、テーブル変更ルール情報内に含まれていると判定できた場合（ｓ７０４：YES）、テーブル変更ルール情報に基づき、該当する複数項目名のグループに対し変更後の項目名を推測する（ｓ７０５）。他方、含まれていないと判定できた場合（ｓ７０４：NO）、変更後の項目名を「推測不可」とする（ｓ７０６）。そして、変更前の項目名と、推測結果後の変更後の項目名とを対応づけ、メモリ１０３上の「変更前操作句内項目一覧」、「変更後操作句内項目一覧」として保持する（ｓ７０７）。
【０１１２】
−−−詳細処理フロー例６（Ｆ層影響結果表示処理）−−−
図２０は本実施形態の詳細処理手順例６を示すフローチャートである。ここでシステム１００におけるＦ層の範囲推定手段１１１は、Ｄ層変更影響情報から、変更影響を受けたクラス名称、ソースコード名を取得する（ｓ８００）。次に、前記Ｆ層の範囲推定手段１１１は、Ｆ層クラスのソースコードを解析し、前記Ｄ層クラス名称およびメソッド名称を含むものを、影響先Ｆ層として検出する（ｓ８０１）。また、前記Ｆ層の範囲推定手段１１１は、Ｄ層クラスとＦ層クラスの対応づけをＦ層変更影響範囲情報としてメモリ１０３に保存し（ｓ８０２）、Ｆ層変更影響範囲情報に基づき、Ｄ層とＦ層クラスとの対応関係を図１０の画面９００に表示する（ｓ８０３）。
【０１１３】
−−−詳細処理フロー例７（Ｐ／Ｃ層影響結果表示処理）−−−
図２１は本実施形態の詳細処理手順例７を示すフローチャートである。ここで前記システム１００におけるＰ／Ｃ層の範囲推定手段１１１は、Ｆ層変更影響範囲情報から、変更前のクラス/ソッド/引数名と、変更後のクラス/メソッド/引数名とを取得する（ｓ９００）。また、前記Ｐ／Ｃ層の範囲推定手段１１１は、前記変更前のクラス/メソッド/引数名称を検索条件として、Ｐ／Ｃ層定義情報のプログラム構成定義を前記部品管理テーブル１２５にて検索し、影響を受けるプログラム構成定義の影響箇所を特定する。前記Ｐ／Ｃ層の範囲推定手段１１１は、これを変更前のプログラム構成定義情報とする（ｓ９０１）。
【０１１４】
次に、前記Ｐ／Ｃ層の更新影響提示手段１１２は、前記Ｆ層のクラス/メソッド/引数名の変更前と変更後の対応関係に基づき、変更前のプログラム構成定義情報に対して変換処理を行うことで、仮置きの変更後のプログラム構成定義情報を算出する（ｓ９０２）。また、前記Ｐ／Ｃ層の更新影響提示手段１１２は、変更前のプログラム構成定義情報と、変更後のプログラム構成定義情報とを対応づけ、Ｐ／Ｃ層変更影響範囲情報として出力し、図１１の画面１０００における「プログラム構成定義」タグにて画面表示する（ｓ９０３）。
【０１１５】
続いて、前記Ｐ／Ｃ層の更新影響提示手段１１２は、前記変更前のクラス/メソッド/引数名称を検索条件として、Ｐ／Ｃ層定義情報の「データ入出力定義」を検索し、影響を受けるデータ入出力定義の影響箇所を特定する。これを変更前のデータ入出力定義情報とする。また前記Ｐ／Ｃ層の更新影響提示手段１１２は、データ入出力定義における引数名を特定し、この引数名に対応する項目名を「影響先項目名」とする（ｓ９０４）。
【０１１６】
また、前記Ｐ／Ｃ層の更新影響提示手段１１２は、前記述Ｆ層のクラス/メソッド/引数名の変更前と変更後の対応関係に基づき、変更前のデータ入出力定義情報に対して変換処理を行うことで、仮置きの変更後のデータ入出力情報を算出する（ｓ９０５）。次に、変更前のデータ入出力定義情報と、変更後のデータ入出力定義情報とを対応づけ、Ｐ／Ｃ層変更影響範囲情報として出力し、図１１の画面１０００にて「データ入出力定義」タグに画面表示する（ｓ９０６）。
【０１１７】
また、前記Ｐ／Ｃ層の更新影響提示手段１１２は、前記「影響先項目名」を検索条件として、Ｐ／Ｃ層定義情報の「画面定義」を検索し、影響を受ける画面定義の影響箇所を特定する。これを変更前の画面定義情報とする（ｓ９０７）。次に、前記Ｐ／Ｃ層の更新影響提示手段１１２は、前記述Ｆ層のクラス/メソッド/引数名の変更前と変更後の対応関係と、変更前および変更後データ入出情報とに基づき、変更前の画面定義情報に対して変換処理を行うことで、仮置きの変更後の画面情報を算出する（ｓ９０８）。そして、前記Ｐ／Ｃ層の更新影響提示手段１１２は、変更前の画面定義情報と、変更後の画面定義情報とを対応づけ、Ｐ／Ｃ層変更影響範囲情報として出力し、前記図１１の画面１０００にて「画面定義」タグに画面表示する（ｓ９０９）。
【０１１８】
−−−その他に想定される例−−−
なお、その他の例として、Ｐ／Ｃ層に対応する画面修正作業から下層となるＤＢ層の修正に向かう、上述の例とは逆向きの修正処理をシステム１００が実行するとしてもよい。この場合、Ｐ／Ｃ層で定義されている画面の修正内容を受けたシステム１００が、該当画面の生成に利用しているデータを提供するＦ層のプログラム部品（C++のパッケージなど）を前記部品間対応管理テーブル１２６で特定し、その影響の内容を上述同様に特定するばよい。以下、Ｆ層からＤＢ層までの処理も同様である。
【０１１９】
以上、本実施形態によれば、プログラム修正作業に際して、ソースコードの参照なしに、修正に伴う影響箇所についての漏れのない特定とカスタマイズ処理を可能とし、プログラム修正作業の効率化が実現できる。
【０１２０】
以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【図面の簡単な説明】
【０１２１】
【図１】本実施形態におけるプログラム修正支援システムを含むネットワーク構成図である。
【図２】本実施形態における開発フレームワークの例を示す図である。
【図３】本実施形態の部品管理テーブルと部品間対応管理テーブルのデータ構造例１を示す図である。
【図４】本実施形態の部品管理テーブルと部品間対応管理テーブルのデータ構造例２を示す図である。
【図５】本実施形態のプログラム修正支援方法の処理手順例１を示すフローチャートである。
【図６】本実施形態のテーブル変更ルール定義画面例を示す図である。
【図７】本実施形態のＤＢ層変更影響箇所表示画面（影響テーブル軸）例を示す図である。
【図８】本実施形態のＤＢ層変更影響箇所表示画面（キー項目一覧軸）例を示す図である。
【図９】本実施形態のＤ層変更影響箇所表示画面例を示す図である。
【図１０】本実施形態のＦ層変更影響箇所表示画面例を示す図である。
【図１１】本実施形態のＰ／Ｃ層変更影響箇所表示画面例１を示す図である。
【図１２】本実施形態のＰ／Ｃ層変更影響箇所表示画面例２を示す図である。
【図１３】本実施形態のＰ／Ｃ層変更影響箇所表示画面例３を示す図である。
【図１４】本実施形態の影響関連図画面例を示す図である。
【図１５】本実施形態の詳細処理手順例１を示すフローチャートである。
【図１６】本実施形態の詳細処理手順例２を示すフローチャートである。
【図１７】本実施形態の詳細処理手順例３を示すフローチャートである。
【図１８】本実施形態の詳細処理手順例４を示すフローチャートである。
【図１９】本実施形態の詳細処理手順例５を示すフローチャートである。
【図２０】本実施形態の詳細処理手順例６を示すフローチャートである。
【図２１】本実施形態の詳細処理手順例７を示すフローチャートである。
【符号の説明】
【０１２２】
５０  プログラム部品
１００  プログラム修正支援システム
１０１  記憶装置
１０２  プログラム
１０３  メモリ
１０４  ＣＰＵ
１０５  入力インターフェイス
１０６  出力インターフェイス
１０７  通信装置
１１０  修正指示受付手段
１１１  範囲推定手段
１１２  更新影響提示手段
１１３  影響確定手段
１２５  部品管理テーブル
１２６  部品間対応管理テーブル
１４０  ネットワーク
２００  ユーザ端末
【図１】
2010015458.tif 000003
【図２】
2010015458.tif 000004
【図３】
2010015458.tif 000005
【図４】
2010015458.tif 000006
【図５】
2010015458.tif 000007
【図６】
2010015458.tif 000008
【図７】
2010015458.tif 000009
【図８】
2010015458.tif 000010
【図９】
2010015458.tif 000011
【図１０】
2010015458.tif 000012
【図１１】
2010015458.tif 000013
【図１２】
2010015458.tif 000014
【図１３】
2010015458.tif 000015
【図１４】
2010015458.tif 000016
【図１５】
2010015458.tif 000017
【図１６】
2010015458.tif 000018
【図１７】
2010015458.tif 000019
【図１８】
2010015458.tif 000020
【図１９】
2010015458.tif 000021
【図２０】
2010015458.tif 000022
【図２１】
2010015458.tif 000023