(57)【要約】【課題】適切かつ容易に、アイテムの影響範囲を特定する技術を提供する。【解決手段】  影響範囲特定装置であって、機器に対する命令文が複数含まれる複数のプログラムファイルを格納する記憶部と、複数のプログラムに含まれる命令文と、命令文で用いる入力アイテムの指定と、命令文の処理結果を格納する出力アイテムの指定とを、命令文の実行順を特定可能に抽出する構造解析部と、検索する対象の検索アイテムの指定を受け付けて、実行順または実行順の逆方向のいずれかの方向に走査して、検索アイテムを少なくとも入力アイテムまたは出力アイテムのいずれかとして含む命令文を特定する影響範囲特定部と、特定した命令文と、命令文で用いる入力アイテムと、命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示部と、を備えることを特徴とする。【選択図】図１
2015099532.tif 000002
【特許請求の範囲】
【請求項１】
機器に対する命令文が複数含まれる複数のプログラムファイルを格納する記憶部と、
前記複数のプログラムに含まれる前記命令文と、該命令文で用いる入力アイテムの指定と、該命令文の処理結果を格納する出力アイテムの指定とを、前記命令文の実行順を特定可能に抽出する構造解析部と、
検索する対象の検索アイテムの指定を受け付けて、前記実行順または前記実行順の逆方向のいずれかの方向に走査して、前記検索アイテムを少なくとも前記入力アイテムまたは前記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定部と、
特定した前記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示部と、
を備えることを特徴とする影響範囲特定装置。
【請求項２】
請求項１に記載の影響範囲特定装置であって、
前記記憶部には、前記入力アイテム及び前記出力アイテムのデータ構造の情報が含まれるファイルレイアウトが格納されており、
前記影響範囲特定部は、前記特定した命令文で用いる前記入力アイテムおよび前記出力アイテムに関しての情報が含まれる前記ファイルレイアウトを特定し、
前記影響範囲提示部は、前記ファイルレイアウトについても影響範囲として提示する、
ことを特徴とする影響範囲特定装置。
【請求項３】
請求項１または２に記載の影響範囲特定装置であって、
前記記憶部には、前記プログラムファイルの実行を制御するジョブを規定するジョブ制御ファイルが格納されており、
前記構造解析部は、前記ジョブ制御ファイルを用いて前記プログラムファイル間の実行順を特定する、
ことを特徴とする影響範囲特定装置。
【請求項４】
請求項１〜３のいずれか一項に記載の影響範囲特定装置であって、
前記影響範囲特定部は、
前記抽出した命令文が命令文纏りに属する場合、同一の纏りの実行順の逆方向に含まれる命令文であって、起点が属する階層より浅い階層にある命令文についても特定する、
ことを特徴とする影響範囲特定装置。
【請求項５】
請求項１〜４のいずれか一項に記載の影響範囲特定装置であって、
前記影響範囲特定部は、
前記命令文を走査する処理において、他のプログラムを呼び出す命令文においては、当該他のプログラムに対しても走査する、
ことを特徴とする影響範囲特定装置。
【請求項６】
請求項１〜５のいずれか一項に記載の影響範囲特定装置であって、
前記影響範囲特定部は、
前記命令文を走査する処理において、走査する方向が実行順の逆方向の場合には、出力アイテムが、検索アイテムまたは当該検索アイテムに影響を与えたアイテム、のいずれかに該当する命令文を抽出する、
ことを特徴とする影響範囲特定装置。
【請求項７】
請求項１〜６のいずれか一項に記載の影響範囲特定装置であって、
前記影響範囲特定部は、
前記命令文を走査する処理において、走査する方向が実行順の場合には、入力アイテムが、検索アイテムまたは当該検索アイテムを用いて決定されたアイテム、のいずれかに該当する命令文を抽出する、
ことを特徴とする影響範囲特定装置。
【請求項８】
コンピューターに、プログラムの影響範囲を特定する処理を実行させるプログラムであって、
前記コンピューターを、制御手段と、機器に対する命令文が複数含まれる複数のプログラムファイルが格納された記憶手段、として機能させ、
前記制御手段に対して、
前記複数のプログラムに含まれる前記命令文と、該命令文で用いる入力アイテムの指定と、該命令文の処理結果を格納する出力アイテムの指定とを、前記命令文の実行順を特定可能に抽出する構造解析ステップと、
検索する対象の検索アイテムの指定を受け付けて、前記実行順または前記実行順の逆方向のいずれかの方向に走査して、前記検索アイテムを少なくとも前記入力アイテムまたは前記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定ステップと、
特定した前記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示ステップと、
を実行させることを特徴とする影響範囲特定プログラム。
【請求項９】
コンピューターを用いたプログラムの影響範囲を特定する影響範囲特定方法であって、
前記コンピューターは、
機器に対する命令文が複数含まれる複数のプログラムファイルが格納された記憶部を備え、
検索する対象の検索アイテムの指定を受け付けて、前記実行順または前記実行順の逆方向のいずれかの方向に走査して、前記検索アイテムを少なくとも前記入力アイテムまたは前記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定ステップと、
特定した前記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示ステップと、
を実行することを特徴とする影響範囲特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するものである。
【背景技術】
【０００２】
従来、既存コンピュータ・ソフトウエアを自動解析して、ソフトウエア中に存在する任意の基点データ項目と同義のデータ項目を波及的に追跡し、特定する方法がある。当該方法においては、ソフトウエアを自動解析し、予め設定した要素分類に従ってソフトウエアを構成する要素を分類し、次いで、分類した要素の集合を予め設定した関係モデルに従ってリレーショナル・データベースとして作成し、かつ、記憶手段に記憶させるステップと、ソフトウエア中の任意の一のデータ項目を基点データ項目として選定するステップと、ソース・プログラムの移送命令文における移送元のデータ項目と移送先のデータ項目との移送関係、及び、比較参照文における比較元のデータ項目と比較先のデータ項目との等価関係の少なくとも一方の関係に基づいて、記憶手段に記憶されたデータベース内の要素のうち基点データ項目と同義のデータ項目を、順次、追跡して特定するステップとを有する技術がある。特許文献１には、このような技術について記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１８７４３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記技術では、ソフトウエア中の移送命令文における移送元のデータ項目と移送先のデータ項目との移送関係、及び、比較参照文における比較元のデータ項目と比較先のデータ項目との等価関係の少なくとも一方の関係に基づいて、記憶手段に記憶されたデータベース内の要素のうち基点データ項目と同義のデータ項目を、順次、追跡して特定するものであり、移送関係あるいは等価関係にないデータを追跡できない。
【０００５】
本発明の目的は、適切かつ容易に、アイテムの影響範囲を特定する技術を提供することにある。
【課題を解決するための手段】
【０００６】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。上記課題を解決すべく、本発明に係る情報処理装置は、機器に対する命令文が複数含まれる複数のプログラムファイルを格納する記憶部と、上記複数のプログラムに含まれる上記命令文と、該命令文で用いる入力アイテムの指定と、該命令文の処理結果を格納する出力アイテムの指定とを、上記命令文の実行順を特定可能に抽出する構造解析部と、検索する対象の検索アイテムの指定を受け付けて、上記実行順または上記実行順の逆方向のいずれかの方向に走査して、上記検索アイテムを少なくとも上記入力アイテムまたは上記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定部と、特定した上記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示部と、を備えることを特徴とする。
【０００７】
また、上記の影響範囲特定装置においては、上記記憶部には、上記入力アイテム及び上記出力アイテムのデータ構造の情報が含まれるファイルレイアウトが格納されており、上記影響範囲特定部は、上記特定した命令文で用いる上記入力アイテムおよび上記出力アイテムに関しての情報が含まれる上記ファイルレイアウトを特定し、上記影響範囲提示部は、上記ファイルレイアウトについても影響範囲として提示する、ことを特徴とするものであってもよい。
【０００８】
また、上記の影響範囲特定装置においては、上記記憶部には、上記プログラムファイルの実行を制御するジョブを規定するジョブ制御ファイルが格納されており、上記構造解析部は、上記ジョブ制御ファイルを用いて上記プログラムファイル間の実行順を特定する、ことを特徴とするものであってもよい。
【０００９】
また、上記の影響範囲特定装置においては、上記影響範囲特定部は、上記抽出した命令文が命令文纏りに属する場合、同一の纏りの実行順の逆方向に含まれる命令文であって、起点が属する階層より浅い階層にある命令文についても特定する、ことを特徴とするものであってもよい。
【００１０】
また、上記の影響範囲特定装置においては、上記影響範囲特定部は、上記命令文を走査する処理において、他のプログラムを呼び出す命令文においては、当該他のプログラムに対しても走査する、ことを特徴とするものであってもよい。
【００１１】
また、上記の影響範囲特定装置においては、上記影響範囲特定部は、上記命令文を走査する処理において、走査する方向が実行順の逆方向の場合には、出力アイテムが、検索アイテムまたは当該検索アイテムに影響を与えたアイテム、のいずれかに該当する命令文を抽出する、ことを特徴とするものであってもよい。
【００１２】
また、上記の影響範囲特定装置においては、上記影響範囲特定部は、上記命令文を走査する処理において、走査する方向が実行順の場合には、入力アイテムが、検索アイテムまたは当該検索アイテムを用いて決定されたアイテム、のいずれかに該当する命令文を抽出する、ことを特徴とするものであってもよい。
【００１３】
また、本発明に係るプログラムは、コンピューターに、プログラムの影響範囲を特定する処理を実行させるプログラムであって、上記コンピューターを、制御手段と、機器に対する命令文が複数含まれる複数のプログラムファイルが格納された記憶手段、として機能させ、上記制御手段に対して、上記複数のプログラムに含まれる上記命令文と、該命令文で用いる入力アイテムの指定と、該命令文の処理結果を格納する出力アイテムの指定とを、上記命令文の実行順を特定可能に抽出する構造解析ステップと、検索する対象の検索アイテムの指定を受け付けて、上記実行順または上記実行順の逆方向のいずれかの方向に走査して、上記検索アイテムを少なくとも上記入力アイテムまたは上記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定ステップと、特定した上記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示ステップと、を実行させることを特徴とする。
【００１４】
また、本発明に係る情報処理方法は、コンピューターを用いたプログラムの影響範囲を特定する影響範囲特定方法であって、上記コンピューターは、機器に対する命令文が複数含まれる複数のプログラムファイルが格納された記憶部を備え、検索する対象の検索アイテムの指定を受け付けて、上記実行順または上記実行順の逆方向のいずれかの方向に走査して、上記検索アイテムを少なくとも上記入力アイテムまたは上記出力アイテムのいずれかとして含む命令文を特定する影響範囲特定ステップと、特定した上記命令文と、該命令文で用いる入力アイテムと、該命令文の処理結果を格納する出力アイテムとを、影響範囲として提示する影響範囲提示ステップと、を実行することを特徴とする。
【００１５】
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【発明の効果】
【００１６】
本発明によると、適切かつ容易に、アイテムの影響範囲を特定する技術を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係る保守支援システムの構成例を示す図である。
【図２】ジョブ入出力情報記憶部に格納されるデータ構造を示す図である。
【図３】命令文情報記憶部に格納されるデータ構造を示す図である。
【図４】ファイルレイアウト情報記憶部に格納されるデータ構造を示す図である。
【図５】影響範囲情報記憶部に格納されるデータ構造を示す図である。
【図６】プログラム関連記憶部に格納されるデータ構造を示す図である。
【図７】影響範囲特定装置のハードウェア構成を示す図である。
【図８】影響範囲特定処理のフローを示す図である。
【図９】命令文検索処理のフローを示す図である。
【図１０】ファイルレイアウト検索処理のフローを示す図である。
【図１１】検索入力画面の例を示す図である。
【図１２】影響範囲表示画面の例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本発明に係る第一の実施形態を適用した保守支援システム１を用いた実施形態について、図面を参照して説明する。
【００１９】
図１は、本発明の第一の実施形態における保守支援システム１の概要を示す図である。本実施形態において想定する保守支援システム１においては、影響範囲特定装置１００と、操作端末２００と、が利用される。影響範囲特定装置１００は、例えば、いわゆるサーバー装置である。操作端末２００は、例えば、いわゆるパーソナルコンピューターや、タブレットパソコン等の情報処理装置である。
【００２０】
影響範囲特定装置１００と、操作端末２００とは、ネットワーク１０を介して互いに通信可能に接続される。
【００２１】
当該システムにおいては、操作者は、操作端末２００を操作して、影響範囲特定装置１００に影響範囲を特定させ、特定した結果の提示を受けるものとする。
【００２２】
その際、操作端末２００は、操作者から検索対象のアイテムの指定と、検索を開始する起点となるプログラムの指定と、検索において走査する方向の指定等と、を受け付けて、影響範囲特定装置１００へ送信する。
【００２３】
影響範囲特定装置１００は、操作端末２００から、検索対象のアイテムの指定と、検索を開始する起点となるプログラムの指定と、検索において走査する方向の指定等を受け付けて、検索アイテムを起点から指定された走査方向に走査し、検索アイテムを入力または出力に含んでいる命令文を抽出する。また、影響範囲特定装置１００は、抽出した命令文およびアイテム、ファイルレイアウト等について、影響範囲にあるとして一覧を表示出力させる。
【００２４】
影響範囲特定装置１００は、サーバー、パソコンやスマートフォン、ワークステーション、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ）、タブレット装置等各種の情報処理装置である。
【００２５】
ネットワーク１０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信網である。なお、携帯電話通信網等の無線通信網上のＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）等であってもよい。
【００２６】
操作端末２００は、パソコンやサーバー等の情報処理装置である。ほかにも例えば、操作端末２００は、スマートフォン、ワークステーション、ＰＤＡ、アプライアンス機器等各種の情報処理装置であってもよい。
【００２７】
影響範囲特定装置１００には、制御部１１０と、記憶部１２０と、通信部１３０と、が含まれる。制御部１１０には、構造解析部１１１と、影響範囲特定部１１２と、影響範囲提示部１１３と、入力受付部１１４と、出力処理部１１５と、が含まれる。記憶部１２０には、ジョブ入出力情報記憶部１２１と、命令文情報記憶部１２２と、ファイルレイアウト情報記憶部１２３と、影響範囲情報記憶部１２４と、プログラム関連記憶部１２５と、が含まれる。
【００２８】
図２は、ジョブ入出力情報記憶部１２１の構成例を示す図である。ジョブ入出力情報記憶部１２１には、処理順１２１Ａと、ジョブ識別子１２１Ｂと、実行プログラム識別子１２１Ｃと、第一の入力ファイル１２１Ｄと、第二の入力ファイル１２１Ｅと、第一の出力ファイル１２１Ｆと、第二の出力ファイル１２１Ｇと、が対応付けられている。なお、入力ファイルについては、第一の入力ファイル１２１Ｄ、第二の入力ファイル１２１Ｅ以外にも、第三の入力ファイルや第四の入力ファイル以降の入力ファイルが含まれるものであってもよいし、出力ファイルについては、第一の出力ファイル１２１Ｆ、第二の出力ファイル１２１Ｇ以外にも、第三の出力ファイルや第四の出力ファイル以降の出力ファイルが含まれるものであってもよい。
【００２９】
処理順１２１Ａは、複数のジョブ間の実行順序をも含むプログラムごとの処理の順を示す連番である。すなわち、処理順１２１Ａは、ジョブネットやジョブセット等に規定されたジョブが実行するプログラムを、実行順に実行した場合の順序を示す情報である。ジョブ識別子１２１Ｂは、実行されるプログラムの開始終了を指示するジョブを特定する情報である。実行プログラム識別子１２１Ｃは、ジョブ識別子１２１Ｂにて実行されるプログラムを識別する情報である。なお、実行プログラム識別子１２１Ｃは、実行形式のバイナリファイルへとコンパイルされる単位のプログラムを想定しているが、これに限られない。たとえば、実行時に実行する処理単位でコンパイルされるインタプリタ形式のプログラムである場合には、ファイルとして管理する単位あるいは関数またはプロシージャ等のルーチン単位であってもよい。また、サブルーチンやユーティリティクラス等、管理単位が異なり、他のプログラム内から呼ばれるプログラム単位であってもよい。
【００３０】
第一の入力ファイル１２１Ｄは、実行プログラム識別子１２１Ｃにより識別されるプログラムに対して入力として受け渡すファイルを特定する情報である。第二の入力ファイル１２１Ｅについても、実行プログラム識別子１２１Ｃにより識別されるプログラムに対して複数のファイルを入力として与える場合に用いるファイルの情報である。
【００３１】
第一の出力ファイル１２１Ｆは、実行プログラム識別子１２１Ｃにより識別されるプログラムから出力されるファイルを特定する情報である。第二の出力ファイル１２１Ｇについても、実行プログラム識別子１２１Ｃにより識別されるプログラムから複数のファイルが出力される場合に用いられるファイルの情報である。
【００３２】
図３は、命令文情報記憶部１２２の構成例を示す図である。命令文情報記憶部１２２には、プログラム識別子１２２Ａと、命令文１２２Ｂと、第一入力１２２Ｃと、第二入力１２２Ｄと、第三入力１２２Ｅと、出力１２２Ｆと、命令文纏り１２２Ｇと、階層１２２Ｈと、が対応付けられている。なお、入力については、第一入力１２２Ｃ、第二入力１２２Ｄ、第三入力１２２Ｅ以外にも、第四入力や第五入力以降の入力情報が含まれるものであってもよいし、出力については、出力１２２Ｆ以外にも、第二出力以降の出力情報が含まれるものであってもよい。
【００３３】
プログラム識別子１２２Ａは、実行されるプログラムを識別する情報である。命令文１２２Ｂは、プログラム識別子１２２Ａにて識別されるプログラムに含まれる命令文を特定する情報である。例えば、本実施形態においては、命令文１２２Ｂには、「ＭＯＶＥ」、「ＣＯＭＰＵＴＥ」等の処理命令に限られず、「ＩＦ」、「ＥＶＡＬＵＡＴＥ」等の制御文も含まれるものとする。
【００３４】
第一入力１２２Ｃは、命令文１２２Ｂにおいて入力情報として受け渡されるアイテムを特定する情報である。すなわち、命令文１２２Ｂに受け渡される一つ目のパラメータの格納されたメモリのアドレスを特定しうる識別子の情報である。第二入力１２２Ｄ、第三入力１２２Ｅについても同様に、命令文１２２Ｂに受け渡されるそれぞれ二つ目、三つ目のパラメータの格納されたアドレスを特定しうる識別子の情報である。
【００３５】
出力１２２Ｆは、命令文１２２Ｂにおいて出力情報として受け渡されるアイテムを特定する情報である。すなわち、命令文１２２Ｂにおいて出力される一つ目のパラメータの格納されたメモリアドレスを特定しうる識別子の情報である。
【００３６】
命令文纏り１２２Ｇは、命令文１２２Ｂがいずれのネストに含まれるかを特定する情報である。例えば、条件分岐により分岐する場合には、分岐のいずれの肢も含む単位を同一のネストとして識別した場合に、当該ネストを他の条件分岐等のネストから識別する情報である。
【００３７】
階層１２２Ｈは、命令文纏り１２２Ｇによって特定される纏りの中でさらに複数のネストが形成されている場合に、ネストの深さを特定する情報である。すなわち、命令文纏りの中に一つネストが形成されている場合には、当該ネストに属する命令文はネストの２階層目に存在するものであるため、階層は「２」であるといえる。
【００３８】
図４は、ファイルレイアウト情報記憶部１２３の構成例を示す図である。ファイルレイアウト情報記憶部１２３には、ファイル識別子１２３Ａと、アイテム１２３Ｂと、が対応付けられている。ファイル識別子１２３Ａは、アイテム１２３Ｂで識別される変数等のアイテムの定義情報が格納されているファイルを識別する情報である。アイテム１２３Ｂは、変数や構造体等の所定のデータ構造が対応付けられたデータ定義を識別する情報である。
【００３９】
図５は、影響範囲情報記憶部１２４の構成例を示す図である。影響範囲情報記憶部１２４には、影響する範囲を特定する情報が格納される。すなわち、検索アイテムにより影響する命令文を特定する情報が格納される。例えば、影響範囲情報記憶部１２４には、ジョブ識別子１２４Ａと、プログラム識別子１２４Ｂと、第一入力１２４Ｃと、第二入力１２４Ｄと、第三入力１２４Ｅと、出力１２４Ｆと、纏り１２４Ｇと、命令文１２４Ｈと、が含まれる。ジョブ識別子１２４Ａは、実行されるプログラムの開始と終了とを指示するジョブを特定する情報である。プログラム識別子１２４Ｂは、ジョブ識別子１２４Ａにて実行されるプログラムを識別する情報である。なお、プログラム識別子１２４Ｂは、実行形式のバイナリファイルへとコンパイルされる単位のプログラムを想定しているが、これに限られない。たとえば、実行時に実行する処理単位でコンパイルされるインタプリタ形式のプログラムである場合には、ファイルとして管理する単位であってもよい。また、サブルーチンやユーティリティクラス等、管理単位が異なり、他のプログラム内から呼ばれるプログラム単位であってもよい。
【００４０】
第一入力１２４Ｃは、命令文１２４Ｈにおいて入力情報として受け渡されるアイテムを特定する情報である。すなわち、命令文１２４Ｈに受け渡される一つ目のパラメータの格納されたメモリアドレスを特定しうる識別子の情報である。第二入力１２４Ｄ、第三入力１２４Ｅについても同様に、命令文１２４Ｈに受け渡されるそれぞれ二つ目、三つ目のパラメータの格納されたメモリアドレスを特定しうる識別子の情報である。
【００４１】
出力１２４Ｆは、命令文１２４Ｈにおいて出力情報として受け渡されるアイテムを特定する情報である。すなわち、命令文１２４Ｈにおいて出力される一つ目のパラメータの格納されたメモリアドレスを特定しうる識別子の情報である。
【００４２】
纏り１２４Ｇは、命令文１２４Ｈが同一のネストに含まれるか否かを特定する情報である。例えば、条件分岐により分岐する場合には、分岐のいずれも含む単位を同一のネストとして識別した場合に、当該ネストを他のネストから識別する情報である。
【００４３】
命令文１２４Ｈは、プログラム識別子１２４Ｂにて識別されるプログラムに含まれる命令文を特定する情報である。
【００４４】
図６は、プログラム関連記憶部１２５の構成例を示す図である。プログラム関連記憶部１２５には、プログラム間の呼び出し関係を特定する情報が格納される。例えば、プログラム関連記憶部１２５は、プログラム識別子１２５Ａと、下位プログラム１２５Ｂと、が対応付けられて格納される。プログラム識別子１２５Ａは、プログラムを呼び出す側のプログラムを識別する情報である。下位プログラム１２５Ｂは、プログラム識別子１２５Ａにより識別されるプログラムから呼び出されるプログラムを識別する情報である。なお、下位プログラム１２５Ｂ、プログラム識別子１２５Ａともに、重複があってもよい。
【００４５】
図１の説明に戻る。構造解析部１１１は、プログラムに含まれる命令文と、該命令文で用いる入力アイテムの指定と、該命令文の処理結果を格納する出力アイテムの指定とを、命令文の実行順を特定可能に抽出する。
【００４６】
また、構造解析部１１１は、特定した命令文で用いる入力アイテムおよび出力アイテムに関しての情報が含まれるファイルレイアウトを特定する。また、構造解析部１１１は、ジョブ制御言語（ＪＣＬ：Ｊｏｂ  Ｃｏｎｔｒｏｌ  Ｌａｕｇｕａｇｅ）等によりプログラムの実行制御が記述されたファイルを用いて、プログラム間の実行順を特定するものであってもよい。
【００４７】
影響範囲特定部１１２は、検索する対象の検索アイテムの指定を受け付けて、実行順または実行順の逆方向のいずれかの方向に走査して、検索アイテムを少なくとも入力アイテムまたは出力アイテムのいずれかとして含む命令文を特定する。具体的には、影響範囲特定部１１２は、実行順または実行順の逆方向のいずれかの方向のうち、指定された方向に、検索アイテムを含む命令文を走査して特定するとともに、影響範囲情報記憶部１２４に格納する。その際、影響範囲特定部１１２は、走査方向が実行順の場合には、命令文の入力アイテムに、検索アイテムまたは検索アイテムを用いて決定されたアイテムが含まれる命令文を特定する。一方で、影響範囲特定部１１２は、走査方向が実行順の逆方向の場合には、命令文の出力アイテムに、検索アイテムまたは検索アイテムに影響を与えたアイテムが含まれる命令文を特定する。
【００４８】
また、影響範囲特定部１１２は、抽出した命令文が命令文纏りに属する場合、同一の纏りの実行順の逆方向に含まれる命令文であって、起点が属する階層より浅い階層にある命令文についても抽出するものであってもよい。
【００４９】
また、影響範囲特定部１１２は、命令文を走査する処理において、他のプログラムを呼び出す命令文においては、当該他のプログラムに対しても走査するものであってもよい。
【００５０】
影響範囲提示部１１３は、影響範囲に関する情報を、他の装置からの要求に応じて提示する。当該提示に関しては、影響範囲提示部１１３は、影響範囲情報記憶部１２４に格納された影響範囲の情報を読み出し、所定の表示情報を構成して要求元の装置に対して送信する。なお、当該表示画面は、検索アイテムに影響のある命令文を一覧化して表示する画面であるが、これに限られず、プログラムやジョブ単位で一覧化する等、他の表示態様であってもよい。
【００５１】
入力受付部１１４は、通信部１３０を介して、操作端末２００から送信された入力情報を受け付ける。また、入力受付部１１４は、キーボード等の入力装置を介して操作者からの入力を受け付ける。
【００５２】
出力処理部１１５は、通信部１３０を介して、操作端末２００に対して出力情報を送信する。また、出力処理部１１５は、ディスプレイ等の出力装置を介して操作者に対し情報を表示する。
【００５３】
通信部１３０は、ネットワーク１０を介して他の装置、例えば操作端末２００との通信を行う。
【００５４】
操作端末２００には、制御部２１０と、通信部２２０と、が含まれる。制御部２１０には、画面制御部２１１と、入力受付部２１２と、出力処理部２１３と、が含まれる。
【００５５】
画面制御部２１１は、影響範囲特定装置１００から送信される画面構成情報を受け付けて、画面上で行われる操作者による操作を制御する。例えば、出力処理部２１３が出力した画面上に表示されるカーソルの制御を行い、メニュー等の起動制御を行う。
【００５６】
入力受付部２１２は、キーボード等の入力装置を介して操作者からの入力を受け付ける。
【００５７】
出力処理部２１３は、通信部２２０を介して、影響範囲特定装置１００から出力情報を受信する。また、出力処理部２１３は、受信した出力情報について、ディスプレイ等の出力装置を介して操作者に対し情報を表示する。
【００５８】
通信部２２０は、ネットワーク１０を介して他の装置、例えば影響範囲特定装置１００との通信を行う。
【００５９】
図７は、影響範囲特定装置１００のハードウェア構成例を示す図である。影響範囲特定装置１００は、演算装置１０２と、外部記憶装置１０３と、主記憶装置１０４と、出力装置１０５と、通信装置１０６と、各装置をつなぐバス１０７と、を少なくとも備える。また、他に、影響範囲特定装置１００は、入力装置１０１を備える。
【００６０】
演算装置１０２は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置である。
【００６１】
外部記憶装置１０３は、デジタル情報を記憶可能な、いわゆるハードディスク（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）あるいはフラッシュメモリなどの不揮発性記憶装置である。
【００６２】
主記憶装置１０４は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのメモリ装置である。
【００６３】
出力装置１０５は、例えば液晶ディスプレイや、有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等の表示装置である。
【００６４】
通信装置１０６は、ネットワーク１０等を介して操作端末２００等の他の装置と通信経路を確立し、情報を送受信するネットワークカード等の装置である。
【００６５】
入力装置１０１は、キーボードやマウス、タッチパネル等の各種入力装置である。
【００６６】
入力装置１０１と、演算装置１０２と、外部記憶装置１０３と、主記憶装置１０４と、出力装置１０５と、通信装置１０６とは、バス１０７等の接続導線により互いに接続される。
【００６７】
上記した影響範囲特定装置１００の構造解析部１１１、影響範囲特定部１１２、影響範囲提示部１１３、入力受付部１１４、出力処理部１１５は、演算装置１０２に処理を行わせるプログラムによって実現される。このプログラムは、主記憶装置１０４、外部記憶装置１０３または図示しないＲＯＭ装置内に記憶され、実行にあたって主記憶装置１０４上にロードされ、演算装置１０２により実行される。
【００６８】
また、影響範囲特定装置１００の記憶部１２０は、主記憶装置１０４及び外部記憶装置１０３により実現される。また、影響範囲特定装置１００の通信部１３０は、通信装置１０６により実現される。以上が、影響範囲特定装置１００のハードウェア構成例である。
【００６９】
図示しないが、操作端末２００のハードウェア構成は、図７に示した影響範囲特定装置１００のハードウェア構成例と略同様である。
【００７０】
影響範囲特定装置１００、操作端末２００のそれぞれの構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。
【００７１】
また、各制御部は、ハードウェア（ＡＳＩＣ、ＧＰＵなど）により構築されてもよい。また、各制御部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００７２】
[動作の説明]次に、本実施形態における保守支援システム１の動作を説明する。図８は、本実施形態における影響範囲特定処理のフロー図である。
【００７３】
影響範囲特定処理は、記憶部１２０に格納されたＪＣＬ、プログラムファイル、ファイルレイアウト等の情報を読み出して、所定のアイテムの影響がある部分を抽出し影響範囲を特定する処理である。影響範囲特定処理は、影響範囲特定装置１００の稼動が開始され、所定の操作端末２００あるは特定のランチャーにより開始指示を受け付けると、開始される。
【００７４】
まず、構造解析部１１１は、記憶部１２０に格納されているＪＣＬをジョブの実行順に読み込んで、ジョブ入出力情報を取得する（ステップＳ００１）。具体的には、構造解析部１１１は、ＪＣＬで記述されたファイルから、実行するプログラムの識別子と、当該プログラムの入力に用いるファイルと、当該プログラムで出力されるファイルと、を読み出し、ジョブ入出力情報記憶部１２１に処理順に従って格納する。
【００７５】
そして、構造解析部１１１は、記憶部１２０に格納されているプログラムファイルを実行順に読み込んで、命令文情報を取得する（ステップＳ００２）。具体的には、構造解析部１１１は、プログラムファイルのソースコードから、実行する命令文と、当該命令文に入力する入力アイテムと、当該命令文で出力される出力アイテムと、を読み出し、命令文情報記憶部１２２に処理順に従って格納する。
【００７６】
そして、構造解析部１１１は、記憶部１２０に格納されているレコードレイアウトを読み込んで、ファイルレイアウト情報を取得する（ステップＳ００３）。具体的には、構造解析部１１１は、レコードレイアウトの定義文から、アイテムを読み出し、ファイルレイアウト情報記憶部１２３に格納する。
【００７７】
そして、構造解析部１１１は、記憶部１２０に格納されているリンケージテーブルを読み込んで、プログラム関連情報を取得する（ステップＳ００４）。具体的には、構造解析部１１１は、リンケージテーブルのリンケージの関係から、呼ぶ側と呼ばれる側のプログラム（下位プログラム）の関係が成立するプログラム間の関係を読み出し、プログラム関連記憶部１２５に格納する。
【００７８】
そして、影響範囲特定部１１２は、影響範囲を特定したいアイテムと、検索方向と、開始点と、の入力を受け付ける（ステップＳ００５）。具体的には、影響範囲特定部１１２は、操作端末２００の入力受付部２１２が受け付けて送信する影響範囲を特定したいアイテムと、検索方向と、開始点と、の入力情報を、通信部１３０あるいは入力受付部１１４を介して受け付ける。
【００７９】
そして、影響範囲特定部１１２は、受け付けたアイテムの影響がある命令文およびファイルレイアウトを特定する（ステップＳ００６）。具体的には、影響範囲特定部１１２は、ステップＳ００５にて受け付けた影響範囲を特定したいアイテムと、検索方向と、開始点と、の入力情報を用いて、ステップＳ００１からステップＳ００４において取得した情報を検索して、検索条件を満たす命令文およびファイルレイアウトを特定し、命令文については影響範囲情報記憶部１２４に格納する。当該命令文の検索と、ファイルレイアウトの検索の具体的な処理内容は、後述する。
【００８０】
そして、影響範囲提示部１１３は、特定した命令文およびファイルレイアウトを提示する（ステップＳ００７）。具体的には、影響範囲提示部１１３は、ステップＳ００６において影響範囲特定部１１２が特定した命令文およびファイルレイアウトを、所定の画面構成情報に取り込んで画面情報を生成し、画面情報を通信部１３０を介して操作端末２００の通信部２２０に送信する。操作端末２００の出力処理部２１３は、当該画面情報を出力する処理を行う。これにより、操作者は影響範囲を特定した結果を把握することができる。
【００８１】
以上が、影響範囲特定処理の処理フローである。影響範囲特定処理により、適切かつ容易に、アイテムの影響範囲を特定可能となる。
【００８２】
図９は、命令文検索処理の処理フローである。命令文検索処理は、影響範囲特定処理のステップＳ００６において、命令文を検索する処理である。
【００８３】
まず、影響範囲特定部１１２は、検索開始点となるジョブ、プログラムは指定済みであるか否かを判定する（ステップＳ１０１）。具体的には、影響範囲特定部１１２は、影響範囲特定処理のステップＳ００５において開始点の入力を受け付けたか否かを判定する。受け付けた場合には、影響範囲特定部１１２は、ステップＳ１０３へ制御を進める。
【００８４】
開始点となるジョブ、プログラムが指定済みでない場合（ステップＳ１０１にて「Ｎｏ」の場合）には、影響範囲特定部１１２は、検索開始点を、先頭のジョブの先頭のプログラムとする（ステップＳ１０２）。
【００８５】
そして、影響範囲特定部１１２は、検索方向は上流方向であるか否かを判定する（ステップＳ１０３）。具体的には、影響範囲特定部１１２は、ステップＳ００５において受け付けた検索方向の入力が、上流すなわち命令文の実行順の逆方向であるか否かを特定する。
【００８６】
検索方向が上流方向である場合（ステップＳ１０３にて「Ｙｅｓ」の場合）には、影響範囲特定部１１２は、検索開始点のプログラムの命令文のうち検索アイテムを処理する最後尾の命令文を起点とする（ステップＳ１０４）。具体的には、影響範囲特定部１１２は、検索開始点に設定されたプログラムに含まれる命令文のうち、検索アイテムとして指定されたアイテムが入力あるいは出力に指定されている命令文を抽出し、最後尾に記載されている命令文をプログラム内の検索の起点とする。すなわち、検索アイテムとして指定されたアイテムが入力あるいは出力に指定されている最後尾の命令文以降の命令文については、検索対象から除外することとなる。
【００８７】
そして、影響範囲特定部１１２は、プログラムの命令文について、起点から実行の逆順に辿り、検索アイテム又は検索アイテムに影響を与えたアイテムをアウトプットとする命令文を抽出し、影響範囲情報に格納する（ステップＳ１０５）。具体的には、影響範囲特定部１１２は、プログラムの命令文ごとに、起点から実行の逆順に辿り、すなわち命令文情報記憶部１２２において起点となる命令文からプログラムの先頭方向へ向かってレコードを順に読み出し、アウトプットアイテムすなわち出力１２２Ｆに検索アイテムが存在する命令文を抽出する。また、あわせて、影響範囲特定部１１２は、他の命令文によって検索アイテムがアウトプットとされている場合にその命令文のインプットとして与えられるアイテムが出力１２２Ｆに存在する命令文を特定する。
【００８８】
そして、影響範囲特定部１１２は、抽出した命令文が命令文纏りに属する場合、同一の纏りの実行の逆順方向に含まれる命令文であって、起点が属する階層より浅い階層にある命令文を抽出し、影響範囲情報に格納する（ステップＳ１０６）。
【００８９】
そして、影響範囲特定部１１２は、下位のプログラムに対してステップＳ１０４〜ステップＳ１０６の処理を実施する（ステップＳ１０７）。具体的には、影響範囲特定部１１２は、ステップＳ１０５において抽出した範囲において、下位のプログラムすなわちサブルーチンコール等により呼び出すプログラムに対して、ステップＳ１０４〜ステップＳ１０６の処理を実施する。
【００９０】
そして、影響範囲特定部１１２は、先に実行されるプログラムがあるか否かを判定する（ステップＳ１０８）。具体的には、影響範囲特定部１１２は、ジョブ入出力情報記憶部１２１の処理順１２１Ａにしたがって、先行するプログラムの有無を判定する。先行するプログラムが無い場合には、影響範囲特定部１１２は、命令文検索処理を終了させる。
【００９１】
先行するプログラムが有る場合（ステップＳ１０８において「Ｙｅｓ」の場合）には、影響範囲特定部１１２は、先に実行されるプログラムを検索開始点とする（ステップＳ１０９）。そして、影響範囲特定部１１２は、制御をステップＳ１０４に戻す。
【００９２】
検索方向が上流方向でない場合（ステップＳ１０３にて「Ｎｏ」の場合）には、影響範囲特定部１１２は、検索開始点のプログラムの命令文のうち検索アイテムを処理する最先の命令文を起点とする（ステップＳ１１０）。具体的には、影響範囲特定部１１２は、検索開始点に設定されたプログラムに含まれる命令文のうち、検索アイテムとして指定されたアイテムが入力あるいは出力に指定されている命令文を抽出し、最先に記載されている命令文をプログラム内の検索の起点とする。すなわち、検索アイテムとして指定されたアイテムが入力あるいは出力に指定されている最先の命令文以前の命令文については、検索対象から除外することとなる。
【００９３】
そして、影響範囲特定部１１２は、プログラムの命令文について、起点から実行順に辿り、検索アイテム又は検索アイテムに由来するアイテムをインプットとする命令文を抽出し、影響範囲情報に格納する（ステップＳ１１１）。具体的には、影響範囲特定部１１２は、プログラムの命令文ごとに、起点から実行の順に辿り、すなわち命令文情報記憶部１２２において起点となる命令文からプログラムの終了端方向へ向かってレコードを順に読み出し、インプットアイテムすなわち第一入力１２２Ｃ、第二入力１２２Ｄ、第三入力１２２Ｅに検索アイテムが存在する命令文を抽出する。また、あわせて、影響範囲特定部１１２は、他の命令文において検索アイテムをインプットとする場合にその命令文のアウトプットとされるアイテムが出力１２２Ｆに存在する命令文を特定する。
【００９４】
そして、影響範囲特定部１１２は、抽出した命令文が命令文纏りに属する場合、同一の纏りの実行の順方向に含まれる命令文であって、起点が属する階層より浅い階層にある命令文を抽出し、影響範囲情報に格納する（ステップＳ１１２）。
【００９５】
そして、影響範囲特定部１１２は、下位のプログラムに対してステップＳ１１０〜ステップＳ１１２の処理を実施する（ステップＳ１１３）。具体的には、影響範囲特定部１１２は、ステップＳ１１１において抽出した範囲において、下位のプログラムすなわちサブルーチンコール等により呼び出すプログラムに対して、ステップＳ１１０〜ステップＳ１１２の処理を実施する。
【００９６】
そして、影響範囲特定部１１２は、後に実行されるプログラムがあるか否かを判定する（ステップＳ１１４）。具体的には、影響範囲特定部１１２は、ジョブ入出力情報記憶部１２１の処理順１２１Ａにしたがって、後続するプログラムの有無を判定する。後続するプログラムが無い場合には、影響範囲特定部１１２は、命令文検索処理を終了させる。
【００９７】
後続するプログラムが有る場合（ステップＳ１１４において「Ｙｅｓ」の場合）には、影響範囲特定部１１２は、後に実行されるプログラムを検索開始点とする（ステップＳ１１５）。そして、影響範囲特定部１１２は、制御をステップＳ１１０に戻す。
【００９８】
以上が、命令文検索処理の処理フローである。命令文検索処理によれば、検索方向に応じて、命令文を走査して、検索対象のアイテムの影響を受ける命令文を特定することができる。
【００９９】
図１０は、本実施形態におけるファイルレイアウト検索処理のフロー図である。
【０１００】
ファイルレイアウト検索処理は、記憶部１２０に格納されたファイルレイアウト情報記憶部１２３の情報を読み出して、命令文検索処理により抽出された命令文に関連するアイテムのファイルレイアウト情報を含むファイル識別子を特定する処理である。ファイルレイアウト検索処理は、影響範囲特定処理のステップＳ００６において、命令文検索処理に続けて開始される。
【０１０１】
まず、影響範囲特定部１１２は、検索方向は上流方向であるか否かを判定する（ステップＳ２０１）。具体的には、影響範囲特定部１１２は、影響範囲特定処理のステップＳ００５において受け付けた検索方向の入力が、上流すなわち命令文の実行順の逆方向であるか否かを特定する。
【０１０２】
検索方向が上流方向である場合（ステップＳ２０１にて「Ｙｅｓ」の場合）には、影響範囲特定部１１２は、影響範囲情報記憶部１２４に格納された命令文の出力アイテムを含むファイル識別子を、ファイルレイアウト情報記憶部１２３から特定する（ステップＳ２０２）。そして、影響範囲特定部１１２は、ファイルレイアウト検索処理を終了させる。
【０１０３】
検索方向が上流方向でない場合（ステップＳ２０１にて「Ｎｏ」の場合）には、影響範囲特定部１１２は、影響範囲情報記憶部１２４に格納された命令文の入力アイテムを含むファイル識別子を、ファイルレイアウト情報記憶部１２３から特定する（ステップＳ２０３）。そして、影響範囲特定部１１２は、ファイルレイアウト検索処理を終了させる。
【０１０４】
以上が、ファイルレイアウト検索処理の処理フローである。ファイルレイアウト検索処理によれば、命令文検索処理により抽出された命令文に関連するアイテムのファイルレイアウト情報を含むファイル識別子を特定することができる。
【０１０５】
図１１は、影響範囲特定処理のステップＳ００５において受け付ける影響範囲を特定したいアイテムと、検索方向と、開始点と、の入力を受け付ける画面である検索入力画面３００の例を示す図である。検索入力画面３００は、影響範囲特定処理の開始前に、操作端末２００の画面制御部２１１により、操作端末２００のディスプレイ等に表示される。
【０１０６】
検索入力画面３００には、検索開始点と、検索アイテム識別子とについての入力を受け付ける領域と、入力された情報を影響範囲特定装置１００へ通信部２２０を介して送信するとともに影響範囲特定処理の開始指示を送信する指示を受け付ける実行ボタン３５０が設けられている。検索開始点の入力を受け付ける領域には、ジョブ識別子を指定する入力を受け付けるジョブ識別子入力領域３１０と、プログラム識別子を指定する入力を受け付けるプログラム識別子入力領域３２０と、走査の方向を指定する入力を受け付ける方向入力領域３３０と、が含まれる。検索アイテム識別子の入力を受け付ける領域には、検索アイテム名の入力を受け付ける検索アイテム識別子入力領域３４０が含まれる。
【０１０７】
図１２は、影響範囲特定処理のステップＳ００７において出力される影響範囲を提示する影響範囲表示画面４００の例を示す図である。
【０１０８】
影響範囲表示画面４００には、検索の条件を表示する検索条件表示領域４１０と、影響範囲を示す情報が表示される影響範囲表示領域４２０と、が含まれる。検索条件表示領域４１０には、検索開始点であるジョブ識別子表示領域４１０Ａと、プログラム識別子表示領域４１０Ｂと、方向表示領域４１０Ｃと、検索対象である検索アイテム識別子表示領域４１０Ｄと、が含まれる。
【０１０９】
影響範囲表示領域４２０には、影響範囲情報記憶部１２４と略同様のデータ構造を表示する表に、影響範囲として抽出された命令文とファイルレイアウトとの情報が示される。
【０１１０】
以上、本発明に係る第一の実施形態を適用した保守支援システム１について説明した。当該実施形態によると、利用者は、適切かつ容易に、アイテムの影響範囲を特定する情報を取得することができる。
【０１１１】
本発明は、上記の第一の実施形態に制限されない。上記の第一の実施形態は、本発明の技術的思想の範囲内で様々な変形が可能である。例えば、上記の第一の実施形態においては、影響範囲特定装置１００は影響範囲となる結果の情報を一覧形式で利用者に提示しているが、これに限られない。例えば、影響範囲となる命令文が記載されたプログラムファイルを編集可能に開くものであってもよい。または、影響範囲となる命令文のステップ数を表示するものであってもよい。また例えば、影響藩にとなる命令文の重複を計数して、重複が所定以上ある命令文については修正ミスが波及する範囲が多くなるため、重点的に修正すべきものとして重要である旨を併せて表示するようにしてもよい。上記いずれの変形例についても、影響範囲提示部１１３が出力する処理において行うことができる。このようにすることで、影響範囲が大きい場合に修正モレを防ぎ、修正時のバグの混入の可能性を抑制することが可能となる。
【０１１２】
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
【０１１３】
以上、本発明について、実施形態を中心に説明した。
【符号の説明】
【０１１４】
１・・・保守支援システム、１０・・・ネットワーク、１００・・・影響範囲特定装置、１１０・・・制御部、１１１・・・構造解析部、１１２・・・影響範囲特定部、１１３・・・影響範囲提示部、１１４・・・入力受付部、１１５・・・出力処理部、１２０・・・記憶部、１２１・・・ジョブ入出力情報記憶部、１２２・・・命令文情報記憶部、１２３・・・ファイルレイアウト情報記憶部、１２４・・・影響範囲情報記憶部、１２５・・プログラム関連記憶部、１３０・・・通信部、２００・・・操作端末、２１０・・・制御部、２１１・・・画面制御部、２１２・・・入力受付部、２１３・・・出力処理部、２２０・・・通信部
【図１】
2015099532.tif 000003
【図２】
2015099532.tif 000004
【図３】
2015099532.tif 000005
【図４】
2015099532.tif 000006
【図５】
2015099532.tif 000007
【図６】
2015099532.tif 000008
【図７】
2015099532.tif 000009
【図８】
2015099532.tif 000010
【図９】
2015099532.tif 000011
【図１０】
2015099532.tif 000012
【図１１】
2015099532.tif 000013
【図１２】
2015099532.tif 000014