(57)【要約】【課題】プログラム改修に於いて、効率のよい調査を行い、修正漏れを防止することができる改修項目調査漏れ防止支援システムを提供する。【解決手段】コンピュータ上に於いて、プログラム改修要望項目からプログラム内に存在する修正対象項目の抽出を行い、改修項目の調査漏れ防止を支援する改修項目調査漏れ防止支援システムであって、修正対象となるプログラムに行番号を付与する行番号付与部１ａと、改修項目の指定及び各格納部の親フォルダの指定を行わせる指定項目入力部１１と、指定された改修項目からＤＢ項目の抽出を行うＤＢ項目抽出部１２と、ＤＢ項目抽出結果又は指定項目入力部１１で指定された改修項目からＩＦ項目の抽出を行うＩＦ項目抽出部１４と、ＤＢ項目抽出結果又はＩＦ項目抽出結果から修正該当箇所のプログラムの抽出を行う修正対象抽出部１６と、修正対象抽出結果を出力する修正対象出力部１８とを備えている。【選択図】図１
2008242716.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上に於いて、指定されたプログラム改修要望項目からプログラム内に存在する修正対象項目の抽出を行い、改修項目の調査漏れ防止を支援する改修項目調査漏れ防止支援システムであって、
前記コンピュータは、
修正対象となるプログラムに行番号を付与する行番号付与手段と、
改修項目の指定及び各格納部の親フォルダの指定を行わせる指定項目入力手段と、
指定された前記改修項目からデータベース項目の抽出を行うデータベース項目抽出手段と、
データベース項目抽出結果又は前記指定項目入力手段で指定された改修項目からインターフェース項目の抽出を行うインターフェース項目抽出手段と、
前記データベース項目抽出結果又はインターフェース項目抽出結果から修正該当箇所のプログラムの抽出を行う修正対象抽出手段と、
前記修正対象抽出手段によって抽出された修正対象抽出結果をソートし、重複行を削除して結果ファイルを出力する修正対象出力手段とを備えたことを特徴とする改修項目調査漏れ防止支援システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務ソフトやパッケージソフトなどのプログラム改修に於いて、改修範囲を特定することによって調査漏れ、調査漏れによる修正漏れを防止する改修項目調査漏れ防止支援システムに関するものである。
【背景技術】
【０００２】
業務ソフトとは発注者のための仕様に基づき独自に開発するものであるが、稼動後に仕様変更などによりプログラムの改修を行うことがある。また、パッケージソフトとは本来、特定の業務用にあらかじめ作成され市販されるコンピュータープログラムであり、手軽に利用できることが利点であるが、稀に特定の業務部分などを顧客の要望などにより、カスタマイズと呼ばれる顧客独自の修正を加え、特別注文の販売を行うこともある。
これらの修正に於いては、その修正を行う機能やプログラムに関してその影響を受ける他のプログラムについても修正が必要になる場合があり、その修正を実施しない場合、その機能は従来通りの動作が行なわれなくなり、不良が発生することがある。
【０００３】
然しながら、この影響範囲の調査は人的作業に寄ることが多く、そのため「調査漏れ」というミスが伴う。そして、調査漏れにより修正が行われなかった部分が、不良の発生につながる虞がある。
そこで、影響範囲の調査漏れを防止する必要がある。
影響調査に於いては調査に掛ける人数と時間をいかに効率良く配分するか、そして信頼性の高い調査結果が得られるかが課題となる。
【０００４】
尚、本発明に関連する公知技術文献としては下記の特許文献１、２がある。
特許文献１は、ソースコードの修正があった場合、修正によって生じる修正必要箇所とその内容を解析し、その修正によって影響を受ける人に通知することによってソースコードの修正漏れを防ぐものである。
特許文献２は、オンラインＤＢシステムの検査作業における、大量の実データ入力によるデグレード確認を行なう場合、プログラム改善前後の処理結果が異なるデータ項目の検証作業において、改善対象のデータ項目で処理結果が異なるデータ項目については警告表示して区別できるようにし、また、警告表示の出力要否を指定することにより、デグレード確認作業の支援を行なうものである。
【特許文献１】特開平８−１９４６１１号公報
【特許文献２】特開２００５−２７６０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、プログラムに修正を行う際の影響範囲の調査方法であるが、これは通常、改修要望ごとに調査者を決め、その調査者が調査範囲を特定する方法で行われている。
大規模な業務ソフト又はパッケージソフトである場合、その修正対象となるプログラム数は多く、１プログラム内の量も多いため、改修要望の修正箇所が１プログラムの範囲内にある場合は良いが、大抵の場合、修正範囲は多岐にわたる場合が多く、調査対象となるプログラムも多くなる。
【０００６】
個々の調査に不安が残る場合、同じ改修要望に対し、人を変えることにより観点を変え、調査の精度を上げる方法や、人員を追加し、何人かでレビューなどを行い１つの改修要望の調査を行うなどの調査方法も考えられるが、工数が増大するためにこれらの調査方法は現実的ではない。
また、これらの調査方法によっても人間が調査を行うことに関しては変わらず、そのため「調査漏れ」というミスが伴うことは変わらない。
【０００７】
以上の現状に鑑み、本発明は、プログラム改修に於いて、効率のよい調査を行い、修正漏れを防止することができる改修項目調査漏れ防止支援システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決すべく、本発明は以下の構成を提供する。
請求項１に係る発明は、コンピュータ上に於いて、指定されたプログラム改修要望項目からプログラム内に存在する修正対象項目の抽出を行い、改修項目の調査漏れ防止を支援する改修項目調査漏れ防止支援システムであって、
修正対象となるプログラムに行番号を付与する行番号付与手段と、
改修項目の指定及び各格納部の親フォルダの指定を行わせる指定項目入力手段と、
指定された前記改修項目からデータベース項目の抽出を行うデータベース項目抽出手段と、
データベース項目抽出結果又は前記指定項目入力手段で指定された改修項目からインターフェース項目の抽出を行うインターフェース項目抽出手段と、
前記データベース項目抽出結果又はインターフェース項目抽出結果から修正該当箇所のプログラムの抽出を行う修正対象抽出手段と、
前記修正対象抽出手段によって抽出された修正対象抽出結果をソートし、重複行を削除して結果ファイルを出力する修正対象出力手段とを備えたことを特徴とする改修項目調査漏れ防止支援システムを提供するものである。
【発明の効果】
【０００９】
本発明の改修項目調査漏れ防止支援システムによれば、プログラム改修に於いて、「調査漏れ」のミスを防止し、効率のよい調査を行うことができる改修項目調査漏れ防止支援システムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、実施例を示した図面を参照しつつ本発明の実施の形態を説明する。
図１は本発明の改修項目調査漏れ防止支援システムを示す全体構成図である。本改修項目調査漏れ防止支援システムは、行番号を付与する行番号付与部１ａと、後述する画面項目、ＤＢ（データベース）項目格納部、ＩＦ（インタフェース）項目格納部、修正対象のプログラムを格納する修正対象格納部及び修正結果出力フォルダを指定するための指定項目入力部１１と、画面の指定項目からＤＢ項目の検索を行うＤＢ項目抽出部１２と、ＤＢの各種テーブル項目などが格納されたＤＢ項目格納部１３と、ＤＢ項目からＩＦ項目の検索を行うＩＦ項目抽出部１４と、画面の項目が記述されたＩＦ項目格納部１５と、ＤＢ項目又はＩＦ項目から修正対象プログラムを検索する修正対象抽出部１６と、検索対象となるプログラムが格納された修正対象格納部１７と、修正結果をまとめる修正対象出力部１８と、出力結果を媒体に出力する結果出力部１９と、ＤＢ項目の抽出結果を出力するＤＢ項目抽出結果１ｂと、ＩＦ項目の抽出結果を出力するＩＦ項目抽出結果１ｃと、修正対象の抽出結果を出力する修正対象抽出結果１ｄと、最終的な結果を出力する結果ファイル１ｅとから構成されている。
【００１１】
行番号付与部１ａでは修正対象となるプログラムに行番号を付与し、新たなプログラムを作成する機能である。後に検索を行うプログラムはこの機能で付与されたプログラムを使用する。
【００１２】
指定項目入力部１１は図２に示すように改修項目の指定及び各格納部の親フォルダの指定などを行う画面である。図２の改修項目指定画面では、まずＤＢ項目格納部１３が格納されている親フォルダ２１、ＩＦ項目格納部１５が格納されている親フォルダ２２、修正対象格納部１７が格納される親フォルダ２３を指定する。
ＤＢ項目格納部指定２１及びＩＦ項目格納部指定２２はフォルダを指定することにより親フォルダ以下を検索するための指定である。修正対象格納部指定２３で指定するフォルダは行番号付与プログラム作成機能１aで行番号を付与したプログラムを格納する場所であり、画面項目の選択２４は改修項目調査漏れ防止支援システムを実行する際の基点となる改修項目の指定を行う項目である。画面名、画面項目名が表示されており、チェックボックスにより複数項目の選択を可能とする。
【００１３】
ＤＢ項目抽出部１２は指定項目入力部１１で指定された改修項目からＤＢ項目の抽出を行う機能である。ＤＢ項目格納部１３に格納されている項目を検索し、指定された項目がどのテーブルの項目に登録されているかの検索を行う。指定項目入力部１１で指定された改修項目からＳＱＬ（Structured Query Language）格納フォルダ内に格納されているＳＱＬを検索し、該当項目を抽出する。抽出された結果をＤＢ項目抽出結果１ｂに出力する。
【００１４】
ＤＢ項目格納部１３は図３に示すようにＤＢ項目抽出部１２で使用するＳＱＬ格納フォルダ３１及びテーブルの定義格納フォルダ３２で構成されている。
ＳＱＬ格納フォルダ３１にはテーブルのレコードが登録（INSERT）又は更新（UPDATE）処理されるＳＱＬが格納されている。
【００１５】
ＩＦ項目抽出部１４はＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）又は指定項目入力部１１で指定された改修項目からＩＦ項目の抽出を行う機能である。ＩＦ項目格納部１５に格納されている項目を検索し、指定された項目がどのＩＦで使用されているかの検索を行う。
ＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）でＳＱＬ格納フォルダ内に格納されているＳＱＬを検索し、該当項目を抽出する。抽出された結果をＩＦ項目抽出結果１ｃに出力する。
【００１６】
次に、指定項目入力部１１で指定された改修項目でＳＱＬ格納フォルダ内に格納されているＳＱＬを検索し、該当項目を抽出する。抽出された結果をＩＦ項目抽出結果１ｃに出力する。
ＩＦ項目格納部１５は図４に示すようにＩＦ項目抽出部１４で使用するＳＱＬ格納フォルダ４１及びテーブルの定義４２で構成されている。ＳＱＬ格納フォルダ４１はテーブルのレコードが抽出（SELECT）されるＳＱＬが格納されている。
【００１７】
修正対象抽出部１６はＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）又はＩＦ項目抽出部１４で抽出された結果（ＩＦ項目抽出結果１ｃ）から修正該当箇所の抽出を行う機能である。修正対象格納部１７に格納されているプログラム内を検索し、修正該当箇所の検索を行う。
ＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）でプログラム格納フォルダを検索し抽出された結果を修正対象抽出結果１ｄに出力する。
次に、ＩＦ項目抽出部１４で抽出された結果（ＩＦ項目抽出結果１ｃ）でプログラム格納フォルダを検索し、該当項目を抽出する。抽出された結果を修正対象抽出結果１ｄに出力する。
【００１８】
修正対象格納部１７は図５に示すように改修対象の行番号付与済プログラムが格納されている。図６は修正該当箇所が存在しない場合、図７は修正該当箇所が判定文内に存在しない場合、図８及び図９は修正該当箇所が判定文内に存在する場合、図１０は修正該当箇所が判定文内にあり、かつ他の判定文内にも存在する場合をそれぞれ示している。
【００１９】
修正対象出力部１８は修正対象抽出部１６で抽出された結果（修正対象抽出結果１ｄ）を集計し、画面に出力する機能である。修正対象抽出結果１ｄを指定項目名、プログラムＩＤ、該当行の昇順にソートし、重複行を削除した結果ファイル１ｅを出力する。
結果出力部１９は修正対象抽出部１６で抽出された検索結果ファイルを媒体へ出力する機能である。
【００２０】
図１１は検索結果をまとめ、画面に出力した結果一覧である。指定項目名１１１には指定項目入力部で指定した項目名が表示される。該当プログラム数１１２には指定項目で修正該当箇所が存在したプログラム数が表示される。１１３の詳細を押下すると、図１２に示す、検索結果詳細画面が表示される。
【００２１】
図１２は図１１から遷移した画面である。指定項目名１２１は指定項目名１１１と同項目が表示される。該当プログラム名１２２は修正該当箇所が存在したプログラム名である。プログラム内該当数１２３は修正該当プログラム内に存在した修正該当数である。行数１２４は該当プログラムの総行数である。ＤＢ項目名１２５はＤＢ項目を検索した結果、抽出されたＤＢ項目名を表示する。ＩＦ項目名１２６はＩＦ項目を検索した結果、抽出されたＩＦ項目名を表示する。プログラム名１２７はＤＢ項目、ＩＦ項目が存在したプログラム名を表示する。行番号１２８はＤＢ項目又はＩＦ項目で検索した結果、修正該当箇所が存在した行番号を表示する。判定文開始位置１２９は修正該当箇所が判定文内に存在した場合、その判定文の開始位置を表示する。他判定文有無１２ａは修正該当項目が判定文内に存在した場合、その該当項目が他の判定文内に存在している場合に出力する。セクション名１２ｂは修正該当項目が存在するブロック名を表示する。媒体出力ボタン１２ｃは図１２を媒体に出力する機能である。
【００２２】
改修項目調査漏れ防止支援システムの処理の流れについて図１３に示すフローチャートを用いて詳細に説明する。
まず、ユーザがコンピュータなどの操作手段を用いて、改修項目調査漏れ防止支援システムを起動させ（ステップ１３０１）、指定項目入力部１１より、ＤＢ項目格納部１３が格納されている親フォルダ２１、ＩＦ項目格納部１５が格納されている親フォルダ２２、修正対象格納部１７が格納される親フォルダ２３及び改修予定項目を指定すると（ステップ１３０２）、改修項目調査漏れ防止支援システムは改修対象となるすべてのプログラムに独自に行番号を付与し、修正対象格納部１７が格納される親フォルダ２３以下へ格納する（ステップ１３０３）。
【００２３】
次に改修項目調査漏れ防止支援システムはＤＢ項目の検索を開始する。ＤＢ項目の検索はまず、ＤＢ項目格納部１３が格納されているＳＱＬフォルダ内にあるＳＱＬの検索を開始する（ステップ１３０４）。指定された項目が登録又は更新されているＤＢ項目をＳＱＬから検索し、検索されたＤＢ項目が他のテーブルにないかどうか検索を行う（ステップ１３０５）。検索の結果をＤＢ項目抽出結果１ｂへ出力する（ステップ１３０６）。ＳＱＬで検索されたデータがＤＢ項目になくなるまでＤＢ項目の検索及びＤＢ項目抽出結果１ｂへの出力を繰り返す（ステップ１３０５、１３０６）。ＤＢ項目の検索が終了した場合、次の項目の抽出を開始する。指定した修正項目がＳＱＬの検索で抽出されなくなるまで処理を繰り返す（ステップ１３０４、１３０５、１３０６）。
【００２４】
次に改修項目調査漏れ防止支援システムはＩＦ項目の検索を開始する。ＩＦ項目の検索はまず、ＩＦ項目格納部１５が格納されているＳＱＬフォルダ内にあるＳＱＬの検索を開始する（ステップ１３０７）。ＤＢ項目の検索で抽出されたＤＢ項目をＳＱＬから検索する。ＳＱＬによって検索されたＤＢ項目からＩＦ項目を抽出し（ステップ１３０８）、結果をＩＦ項目抽出結果１ｃへ出力する（ステップ１３０９）。ＳＱＬで検索されたデータがＩＦ項目になくなるまでＩＦ項目の検索及びＩＦ項目抽出結果１ｃへの出力を繰り返す（ステップ１３０８、１３０９）。
ＩＦ項目の検索が終了した場合、次の項目の抽出を開始する。指定した修正項目がＳＱＬの検索で抽出されなくなるまで処理を繰り返す（ステップ１３０７、１３０８、１３０９）。
【００２５】
次に、ＤＢ項目の検索結果の有無の判定を行う（ステップ１３１０）。ＤＢ項目の検索結果が存在する場合、後述するステップ１３１４の処理に移行する。ＤＢ項目の検索結果が存在しない場合、以下の処理を行う。改修項目調査漏れ防止支援システムはＩＦ項目の検索を開始する。ＩＦ項目の検索はまず、指定項目入力部１１から指定された項目をＳＱＬから検索する（ステップ１３１１）。ＳＱＬから検索されたＩＦ項目を抽出し（ステップ１３１２）、ＩＦ項目抽出結果１ｃへ出力する（ステップ１３１３）。ＳＱＬで検索されたデータがＩＦ項目になくなるまでＩＦ項目の検索及びＩＦ項目抽出結果１ｃへの出力を繰り返す（ステップ１３１２、１３１３）。ＩＦ項目の検索が終了した場合、次の項目の抽出を開始する。指定した修正項目がＳＱＬの検索で抽出されなくなるまで処理を繰り返す（ステップ１３１１、１３１２、１３１３）。
【００２６】
次に改修項目調査漏れ防止支援システムはプログラムの検索を開始する。まず、ＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）をもとにプログラム内の検索を開始する（ステップ１３１４）。該当行が存在した場合、該当行を修正対象抽出結果１ｄへ出力する（ステップ１３１５）。その後、該当箇所から、該当のブロック開始位置まで検索を逆に進めていく（ステップ１００１、１００２）。該当箇所が判定文内にある場合、判定文の開始位置を修正対象抽出結果１ｄへ出力する。（判定文が複数存在する場合は、行番号が最も小さい判定文開始位置を出力する。）さらに、該当のブロック開始位置まで検索を逆に進めていく（ステップ１００２、１００３）。該当行が判定文内に存在する場合で、他の判定文内である場合は他の判定文内であることを修正対象抽出結果１ｄへ出力する（ステップ１３１５）。さらに、該当ブロック開始位置まで検索を行い（ステップ１００３、１００４）、修正対象が存在するセクション名を修正対象抽出結果１ｄへ出力する（ステップ１３１５）。
【００２７】
ＤＢ項目抽出部１２で抽出された結果（ＤＢ項目抽出結果１ｂ）をもとにした検索が終了した場合、ＩＦ項目抽出部１４で抽出された結果（ＩＦ項目抽出結果１ｃ）をもとにし、同様の処理を開始する（ステップ１３１４、１３１５）。
【００２８】
次に改修項目調査漏れ防止支援システムは修正対象抽出部１６で抽出された結果（修正対象抽出結果１ｄ）を集計し、画面に出力する。修正対象出力部１８は、修正対象抽出結果１ｄを指定項目名、プログラムＩＤ、該当行の昇順にソートし、重複行を削除した結果ファイル１ｅを出力する（ステップ１３１６）。
修正対象出力部１８で出力された結果（結果ファイル１ｅ）をもとに画面への表示を行う（ステップ１３１７）。画面の一覧に表示される該当プログラム数は結果ファイル１ｅ内のプログラム該当数をカウントしたものである。
尚、プログラムの記述例はＣＯＢＯＬで記述されているが、他の言語でも同様の方法に於いて検索及び抽出を行うことは可能である。
【図面の簡単な説明】
【００２９】
【図１】本発明による改修項目調査漏れ防止支援システムを概略的に示す説明図である。
【図２】本発明による格納フォルダ及び改修項目を指定する画面の説明図である。
【図３】本発明によるＤＢ項目格納部の構成図である。
【図４】本発明によるＩＦ項目格納部の構成図である。
【図５】本発明による修正対象格納部の構成図である。
【図６】本発明による修正対象格納部に格納されているプログラムの該当項目がない場合の説明図である。
【図７】本発明による修正対象格納部に格納されているプログラムの該当項目が判定文内にない場合の説明図である。
【図８】本発明による修正対象格納部に格納されているプログラムの該当項目が判定文内にある場合の説明図である。
【図９】本発明による修正対象格納部に格納されているプログラムの該当項目が判定文内にある場合の他の例の説明図である。
【図１０】本発明による修正対象格納部に格納されているプログラムの該当項目が判定文内にあり、且つ、他の判定文内に存在する場合の説明図である。
【図１１】本発明による抽出結果を表示する画面の説明図である。
【図１２】本発明による抽出結果の詳細を表示する画面の説明図である。
【図１３】本発明の改修項目調査漏れ防止支援システムによる処理の流れを示すフローチャートである。
【符号の説明】
【００３０】
１ｂ  ＤＢ項目抽出結果
１ｃ  ＩＦ項目抽出結果
１ｄ  修正対象抽出結果
１ｅ  結果ファイル
【図１】
2008242716.tif 000003
【図２】
2008242716.tif 000004
【図３】
2008242716.tif 000005
【図４】
2008242716.tif 000006
【図５】
2008242716.tif 000007
【図６】
2008242716.tif 000008
【図７】
2008242716.tif 000009
【図８】
2008242716.tif 000010
【図９】
2008242716.tif 000011
【図１０】
2008242716.tif 000012
【図１１】
2008242716.tif 000013
【図１２】
2008242716.tif 000014
【図１３】
2008242716.tif 000015