【文献】
五十嵐 邦明,「自動テストを賢く使おう 六つの定石と環境構築の手順を学ぶ」,日経ソフトウエア,日本,日経BP社,2007年 8月24日,第10巻,第10号,pp.32−41
(58)【調査した分野】(Int.Cl.,DB名)
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第1ログと前記第2ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする、請求項1または2に記載のログ比較方法。
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行,挿入行,および置換行と判定された各行が識別可能に表示されることを特徴とする、請求項3に記載のログ比較方法。
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第1ログと前記第2ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする、請求項6または7に記載のログ比較プログラム。
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行,挿入行,および置換行と判定された各行が識別可能に表示されることを特徴とする、請求項8に記載のログ比較プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、各種装置で実行されるプロセスに並列処理が含まれていることがある。このようなケースにおいて、従来のログ比較処理によれば、バージョンアップに起因するプロセスの結果への影響を正しく把握できないことがある。例えば、バージョンアップ後のソフトウェアに不具合が含まれているか否かの判断が正しく行われないことがある。これについて以下に説明する。
【0007】
ここでは、並列処理を含むプロセスとして、
図19に示すフローで複数の処理(処理A〜D)が行われるプロセスについて考える。このプロセスでは、処理Cと処理Dとの関係については、処理Cの方が処理Dよりも先に実行されなければならないが、処理Bと「処理C、処理D」との関係については、実行順序は特に限定されない。すなわち、処理Aの実行後、「処理B、処理C、処理D」の順序で処理が実行されても良いし、「処理C、処理B、処理D」の順序で処理が実行されても良いし、「処理C、処理D、処理B」の順序で処理が実行されても良い。従って、これらの処理に関し、バージョンアップ前後でログの出力順序に変動があっても、必ずしもバージョンアップ後のソフトウェアに不具合が含まれているわけではない。
【0008】
図19に示すフロー内の処理A〜Dの具体例として、洗浄装置(半導体製造装置である基板処理装置の1つ)で実行されるプロセスの一部である次のような処理を挙げることができる。
処理A:(処理ユニットの)ドアを閉じる
処理B:基板の回転(モータの駆動)
処理C:ノズルの移動
処理D:(ノズルからの)洗浄液の吐出
この洗浄装置の例では、例えば
図20に示すように「基板の回転」と「ノズルの移動」の順序がバージョンアップ前後で入れ替わっていても、必ずしもバージョンアップ後のソフトウェアに不具合が含まれているわけではない。
【0009】
ログ比較処理において仮にバージョンアップ前後のログについて両者の各行の全体どうしが比較された場合、たとえ処理の実行順序(ログの出力順序)が同じであっても、通常、両者の時間の情報が異なるために「両者間に差異がある」と判断される。従って、上述のような並列処理の有無に関わらず、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。
【0010】
そこで、バージョンアップ前後のログについて、両者の内容の部分のみの出力順序を比較することが考えられる。しかし、
図19に示した例のプロセスを実行するソフトウェアの処理で
図20に示したようなログが得られた場合、「基板の回転」と「ノズルの移動」の出力順序が入れ替わっているために、そのような出力順序の変動は問題がないにも関わらず「両者間に差異がある」と判断される。従って、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。なお、内容の部分をソートして、ソート後の両者の内容の部分のみの比較を行った場合には、バージョンアップ後のソフトウェアの不具合が原因でログの出力順序に変動があったときに、その不具合を検出することができない。
【0011】
ところで、2つの文字列の違いの程度を算出するアルゴリズムとして、レーベンシュタイン距離の算出アルゴリズムが知られている。このレーベンシュタイン距離の算出アルゴリズムをログ比較処理に適用することが考えられる。その際、バージョンアップ前後のログについて、両者の内容の部分のみを比較することが考えられる。
【0012】
そこで、
図21〜
図24を参照しつつ、レーベンシュタイン距離の算出アルゴリズムを用いたログ比較処理の手順について説明する。
図21は、そのログ比較処理の手順の概略を示すフローチャートであり、
図22は、
図21のステップS91の詳細な手順を示すフローチャートであり、
図23は、
図21のステップS92の詳細な手順を示すフローチャートであり、
図24は、
図21のステップS93の詳細な手順を示すフローチャートである。
【0013】
このログ比較処理の開始後、まず、処理に必要な配列変数が準備される(
図21のステップS91)。なお、このステップS91で準備される配列変数の他、このログ比較処理では、L1,L2,i,j,およびcという変数が用いられる。配列変数の準備については、具体的には(以下、
図22を参照)、まず、L1にバージョンアップ前のログの行数が代入される(ステップS911)。次に、L2にバージョンアップ後のログの行数が代入される(ステップS912)。そして、A[L1+1,L2+1]という2次元の配列変数が準備される(ステップS913)。例えば、バージョンアップ前のログの行数が200で、バージョンアップ後のログの行数が201であれば、配列変数A[201,202]が準備される。
【0014】
配列変数の準備後、その配列変数に対して値の初期設定が行われる(
図21のステップS92)。具体的には(以下、
図23を参照)、まず、iに0が代入される(ステップS921)。次、A[i,0]にi(変数iの値)が代入される(ステップS922)。次に、iにi+1が代入される(ステップS923)。その後、iがL1よりも大きいか否かの判定が行われる(ステップS924)。その結果、iがL1よりも大きければ、処理はステップS925に進む。一方、iがL1以下であれば、処理はステップS922に戻る。以上より、例えば、バージョンアップ前のログの行数が200であれば、A[0,0]〜A[200,0]にそれぞれ0〜200が代入される。
【0015】
ステップS925では、jに0が代入される。次、A[0,j]にj(変数jの値)が代入される(ステップS926)。次に、jにj+1が代入される(ステップS927)。その後、jがL2よりも大きいか否かの判定が行われる(ステップS928)。その結果、jがL2よりも大きければ、この初期設定の処理は終了する。一方、jがL2以下であれば、処理はステップS926に戻る。以上より、例えば、バージョンアップ後のログの行数が201であれば、A[0,0]〜A[0,201]にそれぞれ0〜201が代入される。
【0016】
初期設定の終了後、レーベンシュタイン距離の算出が行われる(
図21のステップS93)。具体的には(以下、
図24を参照)、まず、iに1が代入される(ステップS931)。次、jに1が代入される(ステップS932)。その後、バージョンアップ前のログのi行目とバージョンアップ後のログのj行目とが一致しているか否かの判定が行われる(ステップS933)。その結果、両者が一致していればcに0が代入され(ステップS934a)、両者が一致していなければcに1が代入される(ステップS934b)。
【0017】
その後、A[i,j]に、A[i−1,j]+1,A[i,j−1]+1,およびA[i−1,j−1]+cのうちの最小値が代入される(ステップS935)。このステップS935の処理によって、バージョンアップ前のログの或る行とバージョンアップ後のログの或る行とを比較して行の挿入,行の削除,および行の置換のいずれかが行われていると、レーベンシュタイン距離に1が加算されることになる。
【0018】
ステップS935の終了後、jにj+1が代入される(ステップS936)。その後、jがL2よりも大きいか否かの判定が行われる(ステップS937)。その結果、jがL2よりも大きければ処理はステップS938に進み、jがL2以下であれば処理はステップS933に戻る。ステップS938では、iにi+1が代入される。その後、iがL1よりも大きいか否かの判定が行われる(ステップS939)。その結果、iがL1よりも大きければ、A[L1,L2]がレーベンシュタイン距離とされる(ステップS940)。一方、iがL1以下であれば、処理はステップS932に戻る。
【0019】
以上のようにして、バージョンアップ前のログの各行とバージョンアップ後のログの各行とが順次に比較され、仮にログの行毎に挿入,削除,および置換の操作が行われた場合にバージョンアップ前のログからバージョンアップ後のログを得るのに必要な操作回数の最小値がレーベンシュタイン距離とされる。そして、レーベンシュタイン距離が0であれば、バージョンアップ前後のログの間に差異はないと判断され、レーベンシュタイン距離が1以上であれば、バージョンアップ前後のログの間に差異があると判断される。
【0020】
レーベンシュタイン距離の算出アルゴリズムを用いた以上のようなログ比較処理が行われると、
図20に示したログが得られているケースでは、行の置換が2回発生するため、レーベンシュタイン距離は2となる。従って、バージョンアップ前後のログの間に差異があると判断される。このように、レーベンシュタイン距離の算出アルゴリズムを用いた場合にも、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。
【0021】
そこで本発明は、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を正しく把握することのできるログ比較方法、ログ比較プログラム、およびログ比較装置を提供することを目的とする。
【課題を解決するための手段】
【0022】
第1の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第1ログと第2ログとを比較するログ比較方法であって、
前記第1ログに含まれる複数の行と前記第2ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
を含
み、
前記マッチングステップでは、前記第1ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第2ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする。
【0023】
第2の発明は、第1の発明において、
前記第1ログおよび前記第2ログは、更に、1または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第1ログに含まれる複数の行と前記第2ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする。
【0026】
第
3の発明は、第1
または第2の発明において、
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第1ログと前記第2ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする。
【0027】
第
4の発明は、第
3の発明において、
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行,挿入行,および置換行と判定された各行が識別可能に表示されることを特徴とする。
【0028】
第
5の発明は、第
3または第
4の発明において、
前記比較結果表示ステップでは、前記第1ログと前記第2ログとの差異の程度を示す差異度が更に表示されることを特徴とする。
【0029】
第
6の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第1ログと第2ログとを比較するログ比較プログラムであって、
前記第1ログに含まれる複数の行と前記第2ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
をコンピュータのCPUがメモリを利用して実行
し、
前記マッチングステップでは、前記第1ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第2ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする。
【0030】
第
7の発明は、第
6の発明において、
前記第1ログおよび前記第2ログは、更に、1または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第1ログに含まれる複数の行と前記第2ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする。
【0033】
第
8の発明は、第6
または第7の発明において、
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第1ログと前記第2ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする。
【0034】
第
9の発明は、第
8の発明において、
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行,挿入行,および置換行と判定された各行が識別可能に表示されることを特徴とする。
【0035】
第
10の発明は、第
8または第
9の発明において、
前記比較結果表示ステップでは、前記第1ログと前記第2ログとの差異の程度を示す差異度が更に表示されることを特徴とする。
【0036】
第
11の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第1ログと第2ログとを比較するログ比較装置であって、
前記第1ログに含まれる複数の行と前記第2ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチング処理部と、
前記マッチング処理によって一致する旨の判定結果が得られた2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別部と
を備え
、
前記マッチング処理部は、前記第1ログに含まれる各行について、一致行または削除行のいずれであるかの判定を行うとともに、前記第2ログに含まれる各行について、一致行または挿入行のいずれであるかの判定を行い、
前記マッチング処理部によって一致行と判定された2つの行である前記第1ログに含まれる行と前記第2ログに含まれる行とに着目すると、前記差異有無判別部は、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定を行う、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定を行い、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定を行うことを特徴とする。
【発明の効果】
【0037】
上記第1の発明によれば、ソフトウェアのバージョンアップ前後のログ(第1ログと第2ログ)を比較する際、まず、時間および処理の内容のうちの処理の内容のみに基づくマッチング処理が行われる。
その際、バージョンアップ前後のログの各行を「削除行」,「挿入行」,「置換行」,および「差異なし行」に分類することができる。そして、マッチング処理によって互いに一致する旨の判定結果が得られた2つの行(第1ログの行と第2ログの行)の間の差異の有無についての最終的な判断が、両者の時間差が予め設定された許容範囲内であるか否かに基づいて行われる
(両者の出力順序・時間差を考慮して行われる)。このため、バージョンアップ前後でのログの出力順序の変動が単に並列処理が行われることに起因する場合には、当該出力順序の変動を生じている処理のログについてはバージョンアップ前後で差異がない旨の判断(すなわち、処理に問題がない旨の判断)が行われる。また、並列処理が行われる部分であっても、バージョンアップ前後のログの時間差が大きい場合には、バージョンアップ前後で差異がある旨の判断が行われる。以上より、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を従来よりも正しく把握することが可能となる。
【0038】
上記第2の発明によれば、処理と処理ステージとの関係も考慮しつつ、ソフトウェアのバージョンアップに起因するプロセスの結果への影響を把握することが可能となる。
【0041】
上記第
3の発明によれば、比較結果表示ステップで第1ログと第2ログとの差異の有無が表示される。このため、バージョンアップがプロセスに何らかの影響を及ぼしたか否かを迅速に把握することが可能となる。
【0042】
上記第
4の発明によれば、比較結果の詳細が表示されるので、バージョンアップがプロセスに及ぼした影響をより詳しく把握することが可能となる。
【0043】
上記第
5の発明によれば、バージョンアップがプロセスに及ぼした影響の程度を把握することが可能となる。
【0044】
上記第
6から上記第
10までの発明によれば、それぞれ上記第1から上記第
5までの発明と同様の効果をログ比較プログラムの発明において奏することができる。
【0045】
上記第
11の発明によれば、上記第1の発明と同様の効果をログ比較装置の発明において奏することができる。
【図面の簡単な説明】
【0046】
【
図1】本発明の一実施形態に係る半導体製造装置である基板処理装置の概略構成を示すブロック図である。
【
図2】上記実施形態において、主装置の機能について説明するための図である。
【
図3】上記実施形態において、ログ比較装置として機能する主装置のハードウェア構成を示すブロック図である。
【
図4】上記実施形態において、ログファイルに書き込まれているログの一例を示す図である。
【
図5】上記実施形態の説明における具体的な処理内容の表記について説明するための図である。
【
図6】上記実施形態において、ログ比較装置の機能構成を示す機能ブロック図である。
【
図7】上記実施形態において、ログ比較処理の概略手順を示すフローチャートである。
【
図8】上記実施形態において、マッチング処理の詳細な手順を示すフローチャートである。
【
図9】上記実施形態において、具体的な処理内容を示す情報が記述されている行とステップの開始・終了を示す情報が記述されている行との関係について説明するための図である。
【
図10】上記実施形態において、差異有無判別処理の詳細な手順を示すフローチャートである。
【
図11】上記実施形態における比較の具体例(第1のケース)について説明するための図である。
【
図12】上記実施形態における比較の具体例(第2のケース)について説明するための図である。
【
図13】上記実施形態における比較の具体例(第3のケース)について説明するための図である。
【
図14】上記実施形態における比較の具体例(第4のケース)について説明するための図である。
【
図15】上記実施形態において、シーケンシャルで実行されるべき2つの処理に関するログの出力順序の変動について説明するための図である。
【
図16】上記実施形態において、比較結果画面の一構成例について説明するための図である。
【
図17】上記実施形態において、ログ比較処理が行われた結果、2つのログの間に差異がある旨の判断がなされたときの比較結果画面の一例を示す図である。
【
図18】上記実施形態において、ログ比較処理が行われた結果、2つのログの間に差異がない旨の判断がなされたときの比較結果画面の一例を示す図である。
【
図19】並列処理を含むプロセスのフローの一例を示す図である。
【
図20】バージョンアップ前後で処理の順序が入れ替わっていても問題がない場合について説明するための図である。
【
図21】従来例において、レーベンシュタイン距離の算出アルゴリズムを用いたログ比較処理の手順の概略を示すフローチャートである。
【
図22】
図21のステップS91の詳細な手順を示すフローチャートである。
【
図23】
図21のステップS92の詳細な手順を示すフローチャートである。
【
図24】
図21のステップS93の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【0047】
以下、添付図面を参照しつつ本発明の一実施形態について説明する。
【0048】
<1.概略構成>
図1は、本発明の一実施形態に係る半導体製造装置である基板処理装置1の概略構成を示すブロック図である。なお、基板処理装置1の具体的な例としては、洗浄装置,熱処理装置,露光装置などが挙げられる。
図1に示すように、この基板処理装置1は、主装置10と、複数の制御基板20と、複数の処理ユニット30とによって構成されている。複数の制御基板20と複数の処理ユニット30とは1対1で対応している。主装置10は、この基板処理装置1の全体の動作を制御する。具体的には、主装置10は、各処理ユニット30で所望の処理が行われるよう、各制御基板20に対して各種のコマンドを出力する。各処理ユニットでのプロセスの実行状況を示す情報はログとして出力される。また、本実施形態においては、主装置10は、ソフトウェアのバージョンアップが行われた際に当該バージョンアップに起因するプロセスの結果への影響を正しく把握するために(例えば、当該バージョンアップ後のソフトウェアに不具合が含まれているか否かを判断するために)、バージョンアップ前後のログを比較するログ比較処理を行う。以上のように、本実施形態における主装置10は、模式的には
図2に示すように、各処理ユニット30の動作を制御する処理制御装置102として機能するとともに、ログ比較処理を実行するログ比較装置104としても機能する。
【0049】
各制御基板20は、主装置10から与えられるコマンドに基づいて、対応する処理ユニット30の動作を制御する。各処理ユニット30は、対応する制御基板20による制御に基づいて、所定の処理を行う。例えば、処理ユニット30に基板回転用のモータが含まれていると仮定する。この場合、制御基板20から処理ユニット30に対して例えばパルス信号が与えられ、そのパルス信号に基づいて処理ユニット30内のモータが駆動する。このようにして処理ユニット30で処理が行われると、上述したように当該処理ユニット30でのプロセスの実行状況を示す情報がログとして出力される。本実施形態では、ログは制御基板20から主装置10へと送られて主装置10内の記憶部(後述する補助記憶装置120)に保存される。但し、ログの保存場所については特に限定されない。
【0050】
<2.主装置の構成>
図3は、ログ比較装置104として機能する主装置10(基板処理装置1内の主装置10)のハードウェア構成を示すブロック図である。主装置10は、CPU110と補助記憶装置120と表示部130と入力部140とメモリ150とネットワークインタフェース部160とを備えている。CPU110は、与えられた命令に従い各種演算処理等を行う。補助記憶装置120は、各種データ等を記憶する。ログ比較処理に関連するものとしては、ログファイル122およびログ比較プログラム124が補助記憶装置120に格納される。表示部130は、例えば、オペレータが作業を行うための各種画面を表示する。入力部140は、マウスやキーボードによるオペレータからの入力を受け付ける。メモリ150には、CPU110の演算処理に必要なデータが一時的に格納される。ネットワークインタフェース部160は、LAN9等を介してこの主装置10と制御基板20との間でのデータ通信が可能となるように機能する。
【0051】
主装置10においてオペレータによってログ比較処理の実行が指示されると、ログ比較プログラム124がメモリ150に読み込まれ、そのメモリ150に読み込まれたログ比較プログラム124をCPU110が実行する。これにより、主装置10はログ比較装置104として機能し、ログ比較処理が実行される。なお、ログ比較プログラム124は、CD−ROM,DVD−ROM,フラッシュメモリ等の記録媒体に記録された形態あるいはネットワークを介したダウンロードの形態で提供される。
【0052】
ここで、ログファイル122内のログについて説明する。
図4は、ログファイル122に書き込まれているログの一例を示す図である。
図4に示すように、ログの各行は「時間(時刻)」の情報および「内容」の情報によって構成されている。各行の「内容」の情報は、ステップ(処理ステージ)の開始・終了を示す情報または具体的な処理内容を示す情報である。例えば1行目に着目すると、18時00分00秒100に「ステップ1」というステップが開始されたことが把握される。なお、1つのステップは、1または複数の処理によって構成されている。また、例えば3行目に着目すると、18時00分00秒101に「基板の回転」という処理が行われたことが把握される。なお、以下、説明の便宜上、
図5で符号61で示す部分のように、具体的な処理内容を「処理A」などと表記する。
【0053】
<3.ログ比較装置の機能構成および動作概要>
上述したように、主装置10のCPU110がログ比較プログラム124を実行することにより、主装置10はログ比較装置104として機能する。
図6は、そのログ比較装置104の機能構成を示す機能ブロック図である。
図6に示すように、ログ比較装置104は、機能的には、比較部40と比較結果表示部42とを有している。比較部40には、マッチング処理部402と差異有無判別部404とが含まれている。
【0054】
比較部40内のマッチング処理部402は、バージョンアップ前のログファイル122aとバージョンアップ後のログファイル122bを読み込み、バージョンアップ前のログファイル122aに含まれている複数の行とバージョンアップ後のログファイル122bに含まれている複数の行との間でマッチング処理を行う。なお、以下、バージョンアップ前のログファイル122a内のログ(複数の行)を「第1ログ」といい、バージョンアップ後のログファイル122b内のログ(複数の行)を「第2ログ」という。バージョンアップ前後の2つのログ(第1ログおよび第2ログ)に対するマッチング処理によって、第1ログおよび第2ログに含まれる各行について、比較結果として、「一致」,「挿入」,および「削除」のうちのいずれかの判定が行われる。
【0055】
比較部40内の差異有無判別部404は、マッチング処理によって「一致」と判定された行(第1ログに含まれる行および第2ログに含まれる行)について、一方の時間と他方の時間との差(時間差)に基づいて、両者間の差異の有無を判別する。なお、その際、各行の時間はプロセスの開始時間(
図4に示す例では、ステップ1の開始時間)からの経過時間である相対時間に変換され、相対時間についての時間差に基づいて差異の有無の判別が行われる。差異有無判別部404で差異がない旨の判別がなされた行については、比較結果が「一致」から「差異なし」に変更される。差異有無判別部404で差異がある旨の判別がなされた行については、比較結果が「一致」から「置換」に変更される。
【0056】
比較部40(マッチング処理部402および差異有無判別部404)での処理によって、第1ログおよび第2ログに含まれる各行についての比較結果は、「挿入」,「削除」,「置換」,および「差異なし」のいずれかとなる。比較結果は、結果データ48として比較部40から出力される。
【0057】
比較結果表示部42は、結果データ48に基づいて、表示部130(
図3参照)に比較結果画面50を表示する。なお、比較結果画面50についての詳しい説明は後述する。
【0058】
<4.ログ比較処理の手順>
次に、本実施形態におけるログ比較処理の手順について説明する。
図7は、ログ比較処理の概略手順を示すフローチャートである。ログ比較処理の開始後、まず、マッチング処理部402によって、バージョンアップ前後の2つのログ(第1ログおよび第2ログ)に対するマッチング処理が行われる(ステップS10)。次に、差異有無判別部404によって、ステップS10で「一致」と判定された行(第1ログおよび第2ログの両者の行)についての差異の有無を判別する処理(差異有無判別処理)が行われる(ステップS20)。その後、比較結果表示部42によって、表示部130への比較結果画面50の表示が行われる(ステップS30)。
【0059】
なお、本実施形態においては、上記ステップS10によってマッチングステップが実現され、上記ステップS20によって差異有無判別ステップが実現され、上記ステップS30によって比較結果表示ステップが実現されている。
【0060】
図8は、マッチング処理(
図7のステップS10)の詳細な手順を示すフローチャートである。マッチング処理の開始後、まず、第1ログに関して、具体的な処理内容を示す情報が記述されている行(換言すれば、ステップの開始・終了を示す情報が記述されている行以外の行)のうちの1行目が現在行に設定される(ステップS100)。次に、第2ログに関して、具体的な処理内容を示す情報が書き込まれている行のうちの1行目が現在行に設定される(ステップS110)。なお、現在行とは、ログ比較プログラム124の実行中において処理対象となっている行のことである。また、以下、便宜上、具体的な処理内容を示す情報が記述されている行のみに着目して処理のフローの説明を行う。
【0061】
ステップS110の終了後、第1ログの現在行と第2ログの現在行とが比較され、両者間で内容およびステップ番号の双方が一致しているか否かの判定が行われる(ステップS120)。その結果、双方が一致していれば、処理はステップS130に進む。一方、内容およびステップ番号の少なくとも一方が一致していなければ、処理はステップS140に進む。ところで、上述したように、ログの各行の「内容」の情報は、ステップの開始・終了を示す情報または具体的な処理内容を示す情報である。すなわち、具体的な処理内容を示す情報が記述されている行は、例えば
図9に示すように、対応するステップの開始を示す情報が記述されている行と当該ステップの終了を示す情報が記述されている行との間に含まれている。これにより、ステップS120において、第1ログの現在行と第2ログの現在行との間でステップ番号が一致しているか否かを判定することができる。
【0062】
ステップS130では、第1ログおよび第2ログの双方の現在行についての比較結果が「一致」に設定される。なお、このステップS130で比較結果が「一致」に設定された行については、後述するように、差異有無判別処理で比較結果が「差異なし」または「置換」に変更される。ステップS130の終了後、処理はステップS150に進む。
【0063】
ステップS140では、第2ログに関して、次の未判定行(比較結果が設定されていない行)が現在行に設定される。その後、第2ログの全ての行について第1ログの現在行との比較が終了したか否かの判定が行われる(ステップS142)。その結果、比較が終了していれば処理はステップS144に進み、比較が終了していなければ処理はステップS120に戻る。処理がステップS144に進むことは、第1ログの現在行に対応する行(ログ)が第2ログに存在しないことを意味する。従って、ステップS144では、第1ログの現在行についての比較結果が「削除」に設定される。ステップS144の終了後、処理はステップS150に進む。
【0064】
ステップS150では、第1ログに関して、次の未判定行が現在行に設定される。その後、第1ログの全ての行について第2ログの各行との比較が終了したか否かの判定が行われる(ステップS160)。その結果、比較が終了していれば処理はステップS170に進み、比較が終了していなければ処理はステップS110に戻る。
【0065】
ステップS170では、第2ログに関して、上述したステップS100〜ステップS160の処理で比較結果が設定されなかった行についての比較結果が「挿入」に設定される。これにより、マッチング処理が終了する。
【0066】
以上のようなマッチング処理の結果、第1ログおよび第2ログの双方に存在する内容の行(第1ログおよび第2ログの両者の行)については比較結果が「一致」に設定され、第2ログのみに存在する内容の行(第2ログの行)については比較結果が「挿入」に設定され、第1ログのみに存在する内容の行(第1ログの行)については比較結果が「削除」に設定される。以下、比較結果が「一致」に設定された行のことを「一致行」ともいい、比較結果が「挿入」に設定された行のことを「挿入行」ともいい、比較結果が「削除」に設定された行のことを「削除行」ともいう。
【0067】
図10は、差異有無判別処理の詳細な手順を示すフローチャートである。差異有無判別処理の開始後、まず、第1ログに関して、比較結果が「一致」に設定されている行のうちの最初の行が現在行に設定される(ステップS200)。次に、第2ログに関して、比較結果が「一致」に設定されている行のうちの最初の行が現在行に設定される(ステップS210)。その後、第1ログの現在行と第2ログの現在行とが比較され、両者間で内容が一致しているか否かの判定が行われる(ステップS220)。その結果、内容が一致していれば、処理はステップS230に進む。一方、内容が一致していなければ、処理はステップS260に進む。
【0068】
ステップS230では、第1ログの現在行についての出力順序と第2ログの現在行についての出力順序とが一致しているか否かの判定が行われる。この判定は、例えば現在行の1つ前の行の内容を比較することによって行うことができる。判定の結果、出力順序が一致していれば、処理はステップS250に進む。一方、出力順序が一致していなければ、処理はステップS240に進む。
【0069】
ステップS240では、第1ログの現在行についての上述した相対時間(プロセスの開始時間からの経過時間)と第2ログの現在行についての相対時間との差(時間差)が予め設定されている許容範囲内であるか否かの判定が行われる。その結果、時間差が許容範囲内であれば、処理はステップS250に進む。一方、時間差が許容範囲内でなければ、処理はステップS242に進む。なお、許容範囲は例えば「10ms」などと設定される。
【0070】
ステップS242では、第1ログおよび第2ログの双方の現在行についての比較結果が「一致」から「置換」に変更される。ステップS242の終了後、処理はステップS270に進む。
【0071】
ステップS250では、第1ログおよび第2ログの双方の現在行についての比較結果が「一致」から「差異なし」に変更される。ステップS250の終了後、処理はステップS270に進む。
【0072】
ステップS260では、第2ログに関して、比較結果が「一致」に設定されている次の行が現在行に設定される。その後、比較結果が「一致」に設定されている行に関し、第2ログの全ての行について第1ログの現在行との比較が終了したか否かの判定が行われる(ステップS262)。その結果、比較が終了していれば処理はステップS270に進み、比較が終了していなければ処理はステップS220に戻る。
【0073】
ステップS270では、第1ログに関して、比較結果が「一致」に設定されている次の行が現在行に設定される。その後、比較結果が「一致」に設定されている行に関し、第1ログの全ての行について第2ログの各行との比較が終了したか否かの判定が行われる(ステップS280)。その結果、比較が終了していれば、差異有無判別処理が終了する。一方、比較が終了していなければ、処理はステップS210に戻る。
【0074】
以上のような差異有無判別処理の結果、第1ログおよび第2ログの双方に存在する内容の行(第1ログおよび第2ログの両者の行)について、次のような設定が行われる。時間差が許容範囲内の行については、比較結果が「差異なし」に設定される。時間差が許容範囲外の行については、比較結果が「置換」に設定される。以下、比較結果が「差異なし」に設定された行のことを「差異なし行」ともいい、比較結果が「置換」に設定された行のことを「置換行」ともいう。
【0075】
<5.比較の具体例>
ここで、上述したログ比較処理によるバージョンアップ前後のログの比較の具体例について説明する。なお、以下の各ケースでは、処理A〜Dの処理フローは特に断らない限り
図19に示した処理フローであると仮定する。また、上述した許容範囲が10msに設定されているものと仮定する。
【0076】
<5.1 第1のケース>
図11に示すようなバージョンアップ前後のログが得られているケースを第1のケースとする。
図11に示すように、このケースでは、バージョンアップ前後で処理Bと処理Cの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Bと処理Cとが並列して実行されることに起因している(
図19参照)。すなわち、このケースは、第1ログ(バージョンアップ前のログ)と第2ログ(バージョンアップ後のログ)との間には差異がない旨の判定が行われるべきケースである(ここでは、ステップ1に含まれる処理に関するログのみに着目する)。
【0077】
第1ログには、ステップ1に含まれる処理のログとして、処理A,処理B,処理C,および処理Dの4つの処理のログが含まれている。第2ログには、ステップ1に含まれる処理のログとして、処理A,処理C,処理B,および処理Dの4つの処理のログが含まれている。第1ログに含まれている4つの処理のログと第2ログに含まれている4つの処理のログとは1対1で対応している。従って、まず、マッチング処理(
図8を参照)によって、第1ログおよび第2ログの双方に関し、2行目から5行目までの全ての行(行番号が2から5までの行)についての比較結果が「一致」に設定される。
【0078】
次に、差異有無判別処理(
図10を参照)では、処理A〜Dのそれぞれのログ(行)について、比較結果を「差異なし」または「置換」のいずれかに設定する処理が行われる。ここでは、出力順序が入れ替わっている処理Bと処理Cのログに着目して説明する。第1ログの処理Bのログ(行)と第2ログの処理Bのログ(行)とが比較されるとき、
図10のステップS220では「内容が一致している」旨の判定が行われ、
図10のステップS230では「出力順序が一致していない」旨の判定が行われる。従って、処理はステップS240に進む。第1ログの処理Cのログ(行)と第2ログの処理Cのログ(行)とが比較されるときも同様である。ここで、処理Bのログに着目すると、第1ログと第2ログとの間の時間差は1msである。この時間差は許容範囲内である。従って、第1ログの3行目についての比較結果および第2ログの4行目についての比較結果が「差異なし」に設定される(「一致」から「差異なし」に変更される)。また、処理Cのログに着目すると、第1ログと第2ログとの間の時間差は0msである。この時間差は許容範囲内である。従って、第1ログの4行目についての比較結果および第2ログの3行目についての比較結果が「差異なし」に設定される(「一致」から「差異なし」に変更される)。なお、処理Aおよび処理Dのログについての比較結果、すなわち、第1ログの2行目についての比較結果,第2ログの2行目についての比較結果,第1ログの5行目についての比較結果,および第2ログの5行目についての比較結果も、「差異なし」に設定される(「一致」から「差異なし」に変更される)。
【0079】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がない」という比較結果が得られる。すなわち、ログ比較処理の結果として、所望の結果が得られている。
【0080】
<5.2 第2のケース>
図12に示すようなバージョンアップ前後のログが得られているケースを第2のケースとする。
図12に示すように、このケースでは、バージョンアップ前には処理Bは処理Aの次に実行されていたが、バージョンアップ後には処理Bは処理Dの次に実行されている。また、バージョンアップ前の処理Bの時間とバージョンアップ後の処理Bの時間との差(時間差)は許容範囲(10ms)を超えている。すなわち、このケースは、第1ログ(バージョンアップ前のログ)と第2ログ(バージョンアップ後のログ)との間に差異がある旨の判定が行われるべきケースである。
【0081】
このケースでは、まず、第1のケースと同様、マッチング処理(
図8を参照)によって、第1ログおよび第2ログの双方に関し、2行目から5行目までの全ての行についての比較結果が「一致」に設定される。
【0082】
次に、差異有無判別処理(
図10を参照)によって、処理A〜Dのそれぞれのログについて、比較結果を「差異なし」または「置換」のいずれかに設定する処理が行われる。ここでは、処理Bのログに着目して説明する。第1ログの処理Bのログ(行)と第2ログの処理Bのログ(行)とが比較されるとき、
図10のステップS220では「内容が一致している」旨の判定が行われ、
図10のステップS230では「出力順序が一致していない」旨の判定が行われる。従って、処理はステップS240に進む。ここで、処理Bのログに着目すると、第1ログと第2ログとの間の時間差は244msである。この時間差は許容範囲外である。従って、第1ログの3行目についての比較結果および第2ログの5行目についての比較結果が「置換」に設定される(「一致」から「置換」に変更される)。
【0083】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。すなわち、ログ比較処理の結果として、所望の結果が得られている。
【0084】
<5.3 第3のケース>
図13に示すようなバージョンアップ前後のログが得られているケースを第3のケースとする。ここでは、バージョンアップ前後のログの3〜5行目に着目する。
図13に示すように、バージョンアップ前後で処理Bと処理Cの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Bと処理Cとが並列して実行されることに起因している(
図19参照)。また、
図13に示すように、処理Xのログは第1ログ(バージョンアップ前のログ)のみに存在し、処理Yのログは第2ログ(バージョンアップ後のログ)のみに存在する。以上より、このケースは、第1ログ(バージョンアップ前のログ)と第2ログ(バージョンアップ後のログ)との間に差異がある旨の判定が行われるべきケースである。但し、処理Bのログ(行)および処理Cのログ(行)については、「差異なし」という比較結果が得られるべきである。
【0085】
このケースでは、処理Bのログ(行)および処理Cのログ(行)については、第1のケースと同様、マッチング処理(
図8を参照)によって比較結果が「一致」に設定される。第1ログの処理Xのログ(行)については、マッチング処理のステップS120において、第2ログのいずれのログ(行)とも「一致している」旨の判定は行われない。従って、第1ログの処理Xのログ(行)については、比較結果が「削除」に設定される。第2ログの処理Yのログ(行)については、マッチング処理のステップS120において、第1ログのいずれのログ(行)とも「一致している」旨の判定は行われない。従って、第2ログの処理Yのログ(行)については、比較結果が「挿入」に設定される。
【0086】
差異有無判別処理(
図10を参照)では、第1のケースと同様にして、処理Bのログ(行)についても処理Cのログ(行)についても比較結果が「差異なし」に設定される(「一致」から「差異なし」に変更される)。
【0087】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。但し、処理Bのログ(行)および処理Cのログ(行)については、「差異なし」という比較結果が得られる。以上より、ログ比較処理の結果として、所望の結果が得られている。
【0088】
<5.4 第4のケース>
図14に示すようなバージョンアップ前後のログが得られているケースを第4のケースとする。ここでは、処理B,処理C,および処理Dのログに着目する。
図14に示すように、バージョンアップ前後で処理Bと処理Cの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Bと処理Cとが並列して実行されることに起因している(
図19参照)。また、
図14に示すように、バージョンアップ前には処理Dはステップ2に含まれていたが、バージョンアップ後には処理Dはステップ1に含まれている。本実施形態では、各ステップに含まれる(1または複数の)処理の構成はバージョンアップ前後で同じになるべきである。従って、このケースは、第1ログ(バージョンアップ前のログ)と第2ログ(バージョンアップ後のログ)との間に差異がある旨の判定が行われるべきケースである。但し、処理Bのログ(行)および処理Cのログ(行)については、「差異なし」という比較結果が得られるべきである。
【0089】
このケースでは、処理Bのログ(行)および処理Cのログ(行)については、第1のケースと同様、マッチング処理(
図8を参照)によって比較結果が「一致」に設定される。第1ログの処理Dのログ(行)については、マッチング処理のステップS120において、第2ログのいずれのログ(行)とも「内容およびステップ番号の双方が一致している」旨の判定は行われない。何故ならば、第2ログにも処理Dのログ(行)は存在するが、第1ログの処理Dはステップ2に含まれているのに対して第2ログの処理Dはステップ1に含まれているからである。従って、第1ログの処理Dのログ(行)については、比較結果が「削除」に設定される。第2ログの処理Dのログ(行)については、マッチング処理のステップS120において、第1ログのいずれのログ(行)とも「内容およびステップ番号の双方が一致している」旨の判定は行われない。何故ならば、第1ログにも処理Dのログ(行)は存在するが、第2ログの処理Dはステップ1に含まれているのに対して第1ログの処理Dはステップ2に含まれているからである。従って、第2ログの処理Dのログ(行)については、比較結果が「挿入」に設定される。
【0090】
差異有無判別処理(
図10を参照)では、第1のケースと同様にして、処理Bのログ(行)についても処理Cのログ(行)についても比較結果が「差異なし」に設定される(「一致」から「差異なし」に変更される)。
【0091】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。但し、処理Bのログ(行)および処理Cのログ(行)については、「差異なし」という比較結果が得られる。以上より、ログ比較処理の結果として、所望の結果が得られている。
【0092】
<5.5 備考>
ところで、シーケンシャルで実行されるべき2つの処理(ここでは、処理Cと処理Dに着目する)に関するログの出力順序が
図15に示すようにバージョンアップ前後で変動するケースが考えられる。このようなケースでは、本来的には、ログ比較処理によって「差異あり」という比較結果が得られることが好ましい。ところが、本実施形態によれば、
図15に示すケースでは、処理Cのログ(行)および処理Dのログ(行)の双方に関し、第1ログと第2ログとの間の時間差が許容範囲内であるため、「差異なし」という比較結果が得られる。すなわち、バージョンアップが処理Cと処理Dの実行順序に影響を及ぼしている旨を把握することができない。しかしながら、このようなケースに関しては、従来のログ比較処理によって、バージョンアップ前後に処理Cと処理Dの実行順序(ログの出力順序)に変動があることを把握することができる。つまり、本実施形態に係るログ比較処理と従来のログ比較処理とを併用することによって、シーケンシャルで実行されるべき処理に対するバージョンアップに起因する影響を正しく把握しつつ、並列処理を含むプロセスに対するバージョンアップに起因する影響を正しく把握することが可能となる。
【0093】
<6.比較結果の表示>
次に、比較結果の表示について説明する。上述したように、マッチング処理および差異有無判別処理が終了すると、表示部130への比較結果画面50の表示が行われる(
図7のステップS30)。
図16は、比較結果画面50の一構成例について説明するための図である。
図16に示すように、この比較結果画面50には、比較を行った2つのログ(第1ログと第2ログ)の間の差異の有無を表示する差異有無表示領域51と、差異の程度を示す差異度を表示する差異度表示領域52と、第1ログのファイル名を表示するバージョンアップ前ログファイル名表示領域53aと、第2ログのファイル名を表示するバージョンアップ後ログファイル名表示領域53bと、比較結果の詳細を表示する詳細表示領域54と、選択したファイルの中身(ログ)の表示を指示するためのログ閲覧ボタン55とが含まれている。詳細表示領域54には、ステップ番号を表示するステップ番号表示領域541と、カテゴリを表示するカテゴリ表示領域542と、具体的な処理内容を表示する処理内容表示領域543と、該当行に対応するファイル名を表示するファイル名表示領域544と、行番号を表示する行番号表示領域545とが含まれている。なお、差異度表示領域52には、第1ログの削除行の数,第2ログの挿入行の数,および第2ログの置換行の数の合計が差異度として表示される。
【0094】
カテゴリ表示領域542には、「OK」,「不足」,「過多」,および「移動」のうちのいずれかが表示される。但し、これらの表現については特に限定されない。「OK」は、該当のステップに含まれる(1または複数の)処理に関するログが書き込まれた全ての行が「差異なし行」であることを意味する。「不足」は、該当のログファイル内の該当の行が「削除行」であることを意味する。「過多」は、該当のログファイル内の該当の行が「挿入行」であることを意味する。「移動」は、該当のログファイル内の該当の行が「置換行」であることを意味する。以下、具体的な表示例について説明する。
【0095】
図17は、ログ比較処理が行われた結果、2つのログ(バージョンアップ前後のログ)の間に差異がある旨の判断がなされたときの比較結果画面50の一例を示す図である。差異有無表示領域51には「あり」と表示されており、差異度は「21」となっている。これにより、2つのログの間に差異があることを把握することができる。また、詳細表示領域54の表示内容から、バージョンアップ前のログファイル内のいずれの行が削除行であるのか、バージョンアップ後のログファイル内のいずれの行が挿入行であるのか、および、バージョンアップ後のログファイル内のいずれの行が置換行であるのかを把握することができる。例えば
図17で符号62で示す行に着目すると、バージョンアップ後のログファイル(ログ2.log)の138行目に「処理F」という処理に関するログが挿入されていることが把握される。
【0096】
図17に示すような比較結果画面50が表示されているときに、詳細表示領域54のファイル名表示領域544が空白になっている行以外のいずれかの行が選択された状態でログ閲覧ボタン55が押下されると、その選択された行のファイル名表示領域544に表示されているファイル名を持つファイルに書き込まれているログが表示される。このように、バージョンアップ前後のファイルの中身(ログ)を確認することができる。
【0097】
図18は、ログ比較処理が行われた結果、2つのログ(バージョンアップ前後のログ)の間に差異がない旨の判断がなされたときの比較結果画面50の一例を示す図である。差異有無表示領域51には「なし」と表示されており、差異度は「0」となっている。これにより、2つのログの間に差異がないことを把握することができる。2つのログの間に差異がないため、全てのステップについて、カテゴリが「OK」となっている。
【0098】
<7.効果>
本実施形態によれば、ソフトウェアのバージョンアップ前後のログ(第1ログと第2ログ)を比較する際、まず、時間および処理内容のうちの処理内容のみに基づくマッチング処理が行われる。そして、マッチング処理によって互いに一致する旨の判定結果が得られた2つの行(第1ログの行と第2ログの行)の間の差異の有無についての最終的な判断が、両者の時間差が予め設定された許容範囲内であるか否かに基づいて行われる。このため、バージョンアップ前後でのログの出力順序の変動が単に並列処理が行われることに起因する場合には、当該出力順序の変動を生じている処理のログについてはバージョンアップ前後で差異がない旨の判断(すなわち、処理に問題がない旨の判断)が行われる。また、並列処理が行われる部分であっても、バージョンアップ前後のログの時間差が大きい場合には、バージョンアップ前後で差異がある旨の判断が行われる。以上より、本実施形態によれば、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を従来よりも正しく把握することが可能となる。
【0099】
また、本実施形態によれば、バージョンアップ前後のログの差異の有無や差異の程度の大きさを示す差異度を表示する比較結果画面50が表示部130に表示される。このため、バージョンアップがプロセスに何らかの影響を及ぼしたか否かを迅速に把握することが可能となる。また、比較結果画面50には比較結果の詳細を表示する詳細表示領域54が設けられているので、バージョンアップがプロセスに及ぼした影響をより詳しく把握することが可能となる。
【0100】
<8.その他>
上記実施形態では、本発明を基板処理装置におけるソフトウェアのバージョンアップ前後のログの比較に適用する例を挙げて説明した。しかしながら、本発明はこれに限定されない。コンピュータを用いた処理が行われる各種装置(各種システム)におけるソフトウェアのバージョンアップ前後のログの比較にも本発明を適用することができる。