(57)【特許請求の範囲】
【請求項１】
時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較方法であって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
を含み、
前記マッチングステップでは、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする、ログ比較方法。
【請求項２】
前記第１ログおよび前記第２ログは、更に、１または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする、請求項１に記載のログ比較方法。
【請求項３】
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第１ログと前記第２ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする、請求項１または２に記載のログ比較方法。
【請求項４】
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行，挿入行，および置換行と判定された各行が識別可能に表示されることを特徴とする、請求項３に記載のログ比較方法。
【請求項５】
前記比較結果表示ステップでは、前記第１ログと前記第２ログとの差異の程度を示す差異度が更に表示されることを特徴とする、請求項３または４に記載のログ比較方法。
【請求項６】
時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較プログラムであって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
をコンピュータのＣＰＵがメモリを利用して実行し、
前記マッチングステップでは、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする、ログ比較プログラム。
【請求項７】
前記第１ログおよび前記第２ログは、更に、１または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする、請求項６に記載のログ比較プログラム。
【請求項８】
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第１ログと前記第２ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする、請求項６または７に記載のログ比較プログラム。
【請求項９】
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行，挿入行，および置換行と判定された各行が識別可能に表示されることを特徴とする、請求項８に記載のログ比較プログラム。
【請求項１０】
前記比較結果表示ステップでは、前記第１ログと前記第２ログとの差異の程度を示す差異度が更に表示されることを特徴とする、請求項８または９に記載のログ比較プログラム。
【請求項１１】
時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較装置であって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチング処理部と、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別部と
を備え、
前記マッチング処理部は、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定を行うとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定を行い、
前記マッチング処理部によって一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別部は、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定を行う、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定を行い、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定を行うことを特徴とする、ログ比較装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアのバージョンアップ前後のログを比較するログ比較方法、ログ比較プログラム、およびログ比較装置に関する。
【背景技術】
【０００２】
従来より、コンピュータを用いたソフトウェア処理が行われる各種装置では、例えばプロセス（一連の処理）の動作状況の調査やソフトウェアの不具合の原因調査を行うことができるよう、ログの出力・保存が行われている。例えば、ソフトウェア制御による処理が行われる基板処理装置などの半導体製造装置においても、ログの出力・保存が行われている。
【０００３】
ソフトウェアについては、機能追加や不具合の修正のためにバージョンアップが行われることがある。ソフトウェアのバージョンアップが行われたときには、プロセスの結果への影響を確認する必要がある。例えば、不具合の修正のためにバージョンアップが行われた場合、バージョンアップ後のソフトウェア（プログラム）に新たな不具合が含まれていると、プロセスの実行が正しく行われず、所望の結果が得られない。そこで、バージョンアップに起因するプロセスの結果への影響の確認（例えば、バージョンアップ後のソフトウェアに不具合が含まれているか否かの確認）が、バージョンアップ前後のログに基づいて行われることがある。これに関し、ソフトウェアのバージョンアップが行われた場合、通常、そのバージョンアップに関連するプロセス以外のプロセスについては、バージョンアップの前後で同じような挙動が生じるべきである。すなわち、実行した日時等の情報を除けば、バージョンアップ前後のログは概ね一致すべきである。従って、バージョンアップ前後のログを比較することによって、バージョンアップに起因するプロセスの結果への影響を確認することができる。以下、ソフトウェアのバージョンアップ前後のログを比較する処理のことを「ログ比較処理」という。
【０００４】
なお、本件発明に関連して、特開２０１２−９４０４６号公報には、機器の稼動ログを分析して障害検知または障害原因分析を行う機器障害分析装置の発明が開示されている。この機器障害分析装置では、正常時のログの特徴を示すパターン情報を含む正常時パターンが予め記憶され、稼動ログに含まれるイベントの順列と正常時パターンに含まれるパターン情報の順列との比較が行われる。そして、両者の一致度がしきい値を超えているか否かによって、処理の正常／異常の判別が行われる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−９４０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、各種装置で実行されるプロセスに並列処理が含まれていることがある。このようなケースにおいて、従来のログ比較処理によれば、バージョンアップに起因するプロセスの結果への影響を正しく把握できないことがある。例えば、バージョンアップ後のソフトウェアに不具合が含まれているか否かの判断が正しく行われないことがある。これについて以下に説明する。
【０００７】
ここでは、並列処理を含むプロセスとして、図１９に示すフローで複数の処理（処理Ａ〜Ｄ）が行われるプロセスについて考える。このプロセスでは、処理Ｃと処理Ｄとの関係については、処理Ｃの方が処理Ｄよりも先に実行されなければならないが、処理Ｂと「処理Ｃ、処理Ｄ」との関係については、実行順序は特に限定されない。すなわち、処理Ａの実行後、「処理Ｂ、処理Ｃ、処理Ｄ」の順序で処理が実行されても良いし、「処理Ｃ、処理Ｂ、処理Ｄ」の順序で処理が実行されても良いし、「処理Ｃ、処理Ｄ、処理Ｂ」の順序で処理が実行されても良い。従って、これらの処理に関し、バージョンアップ前後でログの出力順序に変動があっても、必ずしもバージョンアップ後のソフトウェアに不具合が含まれているわけではない。
【０００８】
図１９に示すフロー内の処理Ａ〜Ｄの具体例として、洗浄装置（半導体製造装置である基板処理装置の１つ）で実行されるプロセスの一部である次のような処理を挙げることができる。
処理Ａ：（処理ユニットの）ドアを閉じる
処理Ｂ：基板の回転（モータの駆動）
処理Ｃ：ノズルの移動
処理Ｄ：（ノズルからの）洗浄液の吐出
この洗浄装置の例では、例えば図２０に示すように「基板の回転」と「ノズルの移動」の順序がバージョンアップ前後で入れ替わっていても、必ずしもバージョンアップ後のソフトウェアに不具合が含まれているわけではない。
【０００９】
ログ比較処理において仮にバージョンアップ前後のログについて両者の各行の全体どうしが比較された場合、たとえ処理の実行順序（ログの出力順序）が同じであっても、通常、両者の時間の情報が異なるために「両者間に差異がある」と判断される。従って、上述のような並列処理の有無に関わらず、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。
【００１０】
そこで、バージョンアップ前後のログについて、両者の内容の部分のみの出力順序を比較することが考えられる。しかし、図１９に示した例のプロセスを実行するソフトウェアの処理で図２０に示したようなログが得られた場合、「基板の回転」と「ノズルの移動」の出力順序が入れ替わっているために、そのような出力順序の変動は問題がないにも関わらず「両者間に差異がある」と判断される。従って、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。なお、内容の部分をソートして、ソート後の両者の内容の部分のみの比較を行った場合には、バージョンアップ後のソフトウェアの不具合が原因でログの出力順序に変動があったときに、その不具合を検出することができない。
【００１１】
ところで、２つの文字列の違いの程度を算出するアルゴリズムとして、レーベンシュタイン距離の算出アルゴリズムが知られている。このレーベンシュタイン距離の算出アルゴリズムをログ比較処理に適用することが考えられる。その際、バージョンアップ前後のログについて、両者の内容の部分のみを比較することが考えられる。
【００１２】
そこで、図２１〜図２４を参照しつつ、レーベンシュタイン距離の算出アルゴリズムを用いたログ比較処理の手順について説明する。図２１は、そのログ比較処理の手順の概略を示すフローチャートであり、図２２は、図２１のステップＳ９１の詳細な手順を示すフローチャートであり、図２３は、図２１のステップＳ９２の詳細な手順を示すフローチャートであり、図２４は、図２１のステップＳ９３の詳細な手順を示すフローチャートである。
【００１３】
このログ比較処理の開始後、まず、処理に必要な配列変数が準備される（図２１のステップＳ９１）。なお、このステップＳ９１で準備される配列変数の他、このログ比較処理では、Ｌ１，Ｌ２，ｉ，ｊ，およびｃという変数が用いられる。配列変数の準備については、具体的には（以下、図２２を参照）、まず、Ｌ１にバージョンアップ前のログの行数が代入される（ステップＳ９１１）。次に、Ｌ２にバージョンアップ後のログの行数が代入される（ステップＳ９１２）。そして、Ａ［Ｌ１＋１，Ｌ２＋１］という２次元の配列変数が準備される（ステップＳ９１３）。例えば、バージョンアップ前のログの行数が２００で、バージョンアップ後のログの行数が２０１であれば、配列変数Ａ［２０１，２０２］が準備される。
【００１４】
配列変数の準備後、その配列変数に対して値の初期設定が行われる（図２１のステップＳ９２）。具体的には（以下、図２３を参照）、まず、ｉに０が代入される（ステップＳ９２１）。次、Ａ［ｉ，０］にｉ（変数ｉの値）が代入される（ステップＳ９２２）。次に、ｉにｉ＋１が代入される（ステップＳ９２３）。その後、ｉがＬ１よりも大きいか否かの判定が行われる（ステップＳ９２４）。その結果、ｉがＬ１よりも大きければ、処理はステップＳ９２５に進む。一方、ｉがＬ１以下であれば、処理はステップＳ９２２に戻る。以上より、例えば、バージョンアップ前のログの行数が２００であれば、Ａ［０，０］〜Ａ［２００，０］にそれぞれ０〜２００が代入される。
【００１５】
ステップＳ９２５では、ｊに０が代入される。次、Ａ［０，ｊ］にｊ（変数ｊの値）が代入される（ステップＳ９２６）。次に、ｊにｊ＋１が代入される（ステップＳ９２７）。その後、ｊがＬ２よりも大きいか否かの判定が行われる（ステップＳ９２８）。その結果、ｊがＬ２よりも大きければ、この初期設定の処理は終了する。一方、ｊがＬ２以下であれば、処理はステップＳ９２６に戻る。以上より、例えば、バージョンアップ後のログの行数が２０１であれば、Ａ［０，０］〜Ａ［０，２０１］にそれぞれ０〜２０１が代入される。
【００１６】
初期設定の終了後、レーベンシュタイン距離の算出が行われる（図２１のステップＳ９３）。具体的には（以下、図２４を参照）、まず、ｉに１が代入される（ステップＳ９３１）。次、ｊに１が代入される（ステップＳ９３２）。その後、バージョンアップ前のログのｉ行目とバージョンアップ後のログのｊ行目とが一致しているか否かの判定が行われる（ステップＳ９３３）。その結果、両者が一致していればｃに０が代入され（ステップＳ９３４ａ）、両者が一致していなければｃに１が代入される（ステップＳ９３４ｂ）。
【００１７】
その後、Ａ［ｉ，ｊ］に、Ａ［ｉ−１，ｊ］＋１，Ａ［ｉ，ｊ−１］＋１，およびＡ［ｉ−１，ｊ−１］＋ｃのうちの最小値が代入される（ステップＳ９３５）。このステップＳ９３５の処理によって、バージョンアップ前のログの或る行とバージョンアップ後のログの或る行とを比較して行の挿入，行の削除，および行の置換のいずれかが行われていると、レーベンシュタイン距離に１が加算されることになる。
【００１８】
ステップＳ９３５の終了後、ｊにｊ＋１が代入される（ステップＳ９３６）。その後、ｊがＬ２よりも大きいか否かの判定が行われる（ステップＳ９３７）。その結果、ｊがＬ２よりも大きければ処理はステップＳ９３８に進み、ｊがＬ２以下であれば処理はステップＳ９３３に戻る。ステップＳ９３８では、ｉにｉ＋１が代入される。その後、ｉがＬ１よりも大きいか否かの判定が行われる（ステップＳ９３９）。その結果、ｉがＬ１よりも大きければ、Ａ［Ｌ１，Ｌ２］がレーベンシュタイン距離とされる（ステップＳ９４０）。一方、ｉがＬ１以下であれば、処理はステップＳ９３２に戻る。
【００１９】
以上のようにして、バージョンアップ前のログの各行とバージョンアップ後のログの各行とが順次に比較され、仮にログの行毎に挿入，削除，および置換の操作が行われた場合にバージョンアップ前のログからバージョンアップ後のログを得るのに必要な操作回数の最小値がレーベンシュタイン距離とされる。そして、レーベンシュタイン距離が０であれば、バージョンアップ前後のログの間に差異はないと判断され、レーベンシュタイン距離が１以上であれば、バージョンアップ前後のログの間に差異があると判断される。
【００２０】
レーベンシュタイン距離の算出アルゴリズムを用いた以上のようなログ比較処理が行われると、図２０に示したログが得られているケースでは、行の置換が２回発生するため、レーベンシュタイン距離は２となる。従って、バージョンアップ前後のログの間に差異があると判断される。このように、レーベンシュタイン距離の算出アルゴリズムを用いた場合にも、バージョンアップ後のソフトウェアに不具合が含まれているか否かを正しく判断することはできない。
【００２１】
そこで本発明は、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を正しく把握することのできるログ比較方法、ログ比較プログラム、およびログ比較装置を提供することを目的とする。
【課題を解決するための手段】
【００２２】
第１の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較方法であって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
を含み、
前記マッチングステップでは、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする。
【００２３】
第２の発明は、第１の発明において、
前記第１ログおよび前記第２ログは、更に、１または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする。
【００２６】
第３の発明は、第１または第２の発明において、
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第１ログと前記第２ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする。
【００２７】
第４の発明は、第３の発明において、
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行，挿入行，および置換行と判定された各行が識別可能に表示されることを特徴とする。
【００２８】
第５の発明は、第３または第４の発明において、
前記比較結果表示ステップでは、前記第１ログと前記第２ログとの差異の程度を示す差異度が更に表示されることを特徴とする。
【００２９】
第６の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較プログラムであって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチングステップと、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別ステップと
をコンピュータのＣＰＵがメモリを利用して実行し、
前記マッチングステップでは、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定が行われるとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定が行われ、
前記マッチングステップで一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別ステップでは、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定が行われ、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定が行われることを特徴とする。
【００３０】
第７の発明は、第６の発明において、
前記第１ログおよび前記第２ログは、更に、１または複数の処理からなる処理ステージの開始または終了の情報が記述された行を含み、
前記マッチングステップでは、前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容と当該処理を含む処理ステージの番号とに基づくマッチング処理が行われることを特徴とする。
【００３３】
第８の発明は、第６または第７の発明において、
前記マッチングステップおよび前記差異有無判別ステップで得られた判定結果に基づいて前記第１ログと前記第２ログとの差異の有無を表示する比較結果表示ステップを更に含むことを特徴とする。
【００３４】
第９の発明は、第８の発明において、
前記比較結果表示ステップでは、前記マッチングステップおよび前記差異有無判別ステップで削除行，挿入行，および置換行と判定された各行が識別可能に表示されることを特徴とする。
【００３５】
第１０の発明は、第８または第９の発明において、
前記比較結果表示ステップでは、前記第１ログと前記第２ログとの差異の程度を示す差異度が更に表示されることを特徴とする。
【００３６】
第１１の発明は、時間の情報と処理の内容の情報とが記述された複数の行を含む第１ログと第２ログとを比較するログ比較装置であって、
前記第１ログに含まれる複数の行と前記第２ログに含まれる複数の行との間で、処理の内容に基づくマッチング処理を行うマッチング処理部と、
前記マッチング処理によって一致する旨の判定結果が得られた２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行との差異の有無を、両者の時間の差が予め設定された許容範囲内であるか否かに基づいて判別する差異有無判別部と
を備え、
前記マッチング処理部は、前記第１ログに含まれる各行について、一致行または削除行のいずれであるかの判定を行うとともに、前記第２ログに含まれる各行について、一致行または挿入行のいずれであるかの判定を行い、
前記マッチング処理部によって一致行と判定された２つの行である前記第１ログに含まれる行と前記第２ログに含まれる行とに着目すると、前記差異有無判別部は、
両者の出力順序が一致していれば、両者について差異なし行である旨の最終的な判定を行う、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内であれば、両者について差異なし行である旨の最終的な判定を行い、
両者の出力順序が一致せず、かつ、両者の時間の差が予め設定された許容範囲内でなければ、両者について置換行である旨の最終的な判定を行うことを特徴とする。
【発明の効果】
【００３７】
上記第１の発明によれば、ソフトウェアのバージョンアップ前後のログ（第１ログと第２ログ）を比較する際、まず、時間および処理の内容のうちの処理の内容のみに基づくマッチング処理が行われる。その際、バージョンアップ前後のログの各行を「削除行」，「挿入行」，「置換行」，および「差異なし行」に分類することができる。そして、マッチング処理によって互いに一致する旨の判定結果が得られた２つの行（第１ログの行と第２ログの行）の間の差異の有無についての最終的な判断が、両者の時間差が予め設定された許容範囲内であるか否かに基づいて行われる（両者の出力順序・時間差を考慮して行われる）。このため、バージョンアップ前後でのログの出力順序の変動が単に並列処理が行われることに起因する場合には、当該出力順序の変動を生じている処理のログについてはバージョンアップ前後で差異がない旨の判断（すなわち、処理に問題がない旨の判断）が行われる。また、並列処理が行われる部分であっても、バージョンアップ前後のログの時間差が大きい場合には、バージョンアップ前後で差異がある旨の判断が行われる。以上より、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を従来よりも正しく把握することが可能となる。
【００３８】
上記第２の発明によれば、処理と処理ステージとの関係も考慮しつつ、ソフトウェアのバージョンアップに起因するプロセスの結果への影響を把握することが可能となる。
【００４１】
上記第３の発明によれば、比較結果表示ステップで第１ログと第２ログとの差異の有無が表示される。このため、バージョンアップがプロセスに何らかの影響を及ぼしたか否かを迅速に把握することが可能となる。
【００４２】
上記第４の発明によれば、比較結果の詳細が表示されるので、バージョンアップがプロセスに及ぼした影響をより詳しく把握することが可能となる。
【００４３】
上記第５の発明によれば、バージョンアップがプロセスに及ぼした影響の程度を把握することが可能となる。
【００４４】
上記第６から上記第１０までの発明によれば、それぞれ上記第１から上記第５までの発明と同様の効果をログ比較プログラムの発明において奏することができる。
【００４５】
上記第１１の発明によれば、上記第１の発明と同様の効果をログ比較装置の発明において奏することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態に係る半導体製造装置である基板処理装置の概略構成を示すブロック図である。
【図２】上記実施形態において、主装置の機能について説明するための図である。
【図３】上記実施形態において、ログ比較装置として機能する主装置のハードウェア構成を示すブロック図である。
【図４】上記実施形態において、ログファイルに書き込まれているログの一例を示す図である。
【図５】上記実施形態の説明における具体的な処理内容の表記について説明するための図である。
【図６】上記実施形態において、ログ比較装置の機能構成を示す機能ブロック図である。
【図７】上記実施形態において、ログ比較処理の概略手順を示すフローチャートである。
【図８】上記実施形態において、マッチング処理の詳細な手順を示すフローチャートである。
【図９】上記実施形態において、具体的な処理内容を示す情報が記述されている行とステップの開始・終了を示す情報が記述されている行との関係について説明するための図である。
【図１０】上記実施形態において、差異有無判別処理の詳細な手順を示すフローチャートである。
【図１１】上記実施形態における比較の具体例（第１のケース）について説明するための図である。
【図１２】上記実施形態における比較の具体例（第２のケース）について説明するための図である。
【図１３】上記実施形態における比較の具体例（第３のケース）について説明するための図である。
【図１４】上記実施形態における比較の具体例（第４のケース）について説明するための図である。
【図１５】上記実施形態において、シーケンシャルで実行されるべき２つの処理に関するログの出力順序の変動について説明するための図である。
【図１６】上記実施形態において、比較結果画面の一構成例について説明するための図である。
【図１７】上記実施形態において、ログ比較処理が行われた結果、２つのログの間に差異がある旨の判断がなされたときの比較結果画面の一例を示す図である。
【図１８】上記実施形態において、ログ比較処理が行われた結果、２つのログの間に差異がない旨の判断がなされたときの比較結果画面の一例を示す図である。
【図１９】並列処理を含むプロセスのフローの一例を示す図である。
【図２０】バージョンアップ前後で処理の順序が入れ替わっていても問題がない場合について説明するための図である。
【図２１】従来例において、レーベンシュタイン距離の算出アルゴリズムを用いたログ比較処理の手順の概略を示すフローチャートである。
【図２２】図２１のステップＳ９１の詳細な手順を示すフローチャートである。
【図２３】図２１のステップＳ９２の詳細な手順を示すフローチャートである。
【図２４】図２１のステップＳ９３の詳細な手順を示すフローチャートである。
【発明を実施するための形態】
【００４７】
以下、添付図面を参照しつつ本発明の一実施形態について説明する。
【００４８】
＜１．概略構成＞
図１は、本発明の一実施形態に係る半導体製造装置である基板処理装置１の概略構成を示すブロック図である。なお、基板処理装置１の具体的な例としては、洗浄装置，熱処理装置，露光装置などが挙げられる。図１に示すように、この基板処理装置１は、主装置１０と、複数の制御基板２０と、複数の処理ユニット３０とによって構成されている。複数の制御基板２０と複数の処理ユニット３０とは１対１で対応している。主装置１０は、この基板処理装置１の全体の動作を制御する。具体的には、主装置１０は、各処理ユニット３０で所望の処理が行われるよう、各制御基板２０に対して各種のコマンドを出力する。各処理ユニットでのプロセスの実行状況を示す情報はログとして出力される。また、本実施形態においては、主装置１０は、ソフトウェアのバージョンアップが行われた際に当該バージョンアップに起因するプロセスの結果への影響を正しく把握するために（例えば、当該バージョンアップ後のソフトウェアに不具合が含まれているか否かを判断するために）、バージョンアップ前後のログを比較するログ比較処理を行う。以上のように、本実施形態における主装置１０は、模式的には図２に示すように、各処理ユニット３０の動作を制御する処理制御装置１０２として機能するとともに、ログ比較処理を実行するログ比較装置１０４としても機能する。
【００４９】
各制御基板２０は、主装置１０から与えられるコマンドに基づいて、対応する処理ユニット３０の動作を制御する。各処理ユニット３０は、対応する制御基板２０による制御に基づいて、所定の処理を行う。例えば、処理ユニット３０に基板回転用のモータが含まれていると仮定する。この場合、制御基板２０から処理ユニット３０に対して例えばパルス信号が与えられ、そのパルス信号に基づいて処理ユニット３０内のモータが駆動する。このようにして処理ユニット３０で処理が行われると、上述したように当該処理ユニット３０でのプロセスの実行状況を示す情報がログとして出力される。本実施形態では、ログは制御基板２０から主装置１０へと送られて主装置１０内の記憶部（後述する補助記憶装置１２０）に保存される。但し、ログの保存場所については特に限定されない。
【００５０】
＜２．主装置の構成＞
図３は、ログ比較装置１０４として機能する主装置１０（基板処理装置１内の主装置１０）のハードウェア構成を示すブロック図である。主装置１０は、ＣＰＵ１１０と補助記憶装置１２０と表示部１３０と入力部１４０とメモリ１５０とネットワークインタフェース部１６０とを備えている。ＣＰＵ１１０は、与えられた命令に従い各種演算処理等を行う。補助記憶装置１２０は、各種データ等を記憶する。ログ比較処理に関連するものとしては、ログファイル１２２およびログ比較プログラム１２４が補助記憶装置１２０に格納される。表示部１３０は、例えば、オペレータが作業を行うための各種画面を表示する。入力部１４０は、マウスやキーボードによるオペレータからの入力を受け付ける。メモリ１５０には、ＣＰＵ１１０の演算処理に必要なデータが一時的に格納される。ネットワークインタフェース部１６０は、ＬＡＮ９等を介してこの主装置１０と制御基板２０との間でのデータ通信が可能となるように機能する。
【００５１】
主装置１０においてオペレータによってログ比較処理の実行が指示されると、ログ比較プログラム１２４がメモリ１５０に読み込まれ、そのメモリ１５０に読み込まれたログ比較プログラム１２４をＣＰＵ１１０が実行する。これにより、主装置１０はログ比較装置１０４として機能し、ログ比較処理が実行される。なお、ログ比較プログラム１２４は、ＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，フラッシュメモリ等の記録媒体に記録された形態あるいはネットワークを介したダウンロードの形態で提供される。
【００５２】
ここで、ログファイル１２２内のログについて説明する。図４は、ログファイル１２２に書き込まれているログの一例を示す図である。図４に示すように、ログの各行は「時間（時刻）」の情報および「内容」の情報によって構成されている。各行の「内容」の情報は、ステップ（処理ステージ）の開始・終了を示す情報または具体的な処理内容を示す情報である。例えば１行目に着目すると、１８時００分００秒１００に「ステップ１」というステップが開始されたことが把握される。なお、１つのステップは、１または複数の処理によって構成されている。また、例えば３行目に着目すると、１８時００分００秒１０１に「基板の回転」という処理が行われたことが把握される。なお、以下、説明の便宜上、図５で符号６１で示す部分のように、具体的な処理内容を「処理Ａ」などと表記する。
【００５３】
＜３．ログ比較装置の機能構成および動作概要＞
上述したように、主装置１０のＣＰＵ１１０がログ比較プログラム１２４を実行することにより、主装置１０はログ比較装置１０４として機能する。図６は、そのログ比較装置１０４の機能構成を示す機能ブロック図である。図６に示すように、ログ比較装置１０４は、機能的には、比較部４０と比較結果表示部４２とを有している。比較部４０には、マッチング処理部４０２と差異有無判別部４０４とが含まれている。
【００５４】
比較部４０内のマッチング処理部４０２は、バージョンアップ前のログファイル１２２ａとバージョンアップ後のログファイル１２２ｂを読み込み、バージョンアップ前のログファイル１２２ａに含まれている複数の行とバージョンアップ後のログファイル１２２ｂに含まれている複数の行との間でマッチング処理を行う。なお、以下、バージョンアップ前のログファイル１２２ａ内のログ（複数の行）を「第１ログ」といい、バージョンアップ後のログファイル１２２ｂ内のログ（複数の行）を「第２ログ」という。バージョンアップ前後の２つのログ（第１ログおよび第２ログ）に対するマッチング処理によって、第１ログおよび第２ログに含まれる各行について、比較結果として、「一致」，「挿入」，および「削除」のうちのいずれかの判定が行われる。
【００５５】
比較部４０内の差異有無判別部４０４は、マッチング処理によって「一致」と判定された行（第１ログに含まれる行および第２ログに含まれる行）について、一方の時間と他方の時間との差（時間差）に基づいて、両者間の差異の有無を判別する。なお、その際、各行の時間はプロセスの開始時間（図４に示す例では、ステップ１の開始時間）からの経過時間である相対時間に変換され、相対時間についての時間差に基づいて差異の有無の判別が行われる。差異有無判別部４０４で差異がない旨の判別がなされた行については、比較結果が「一致」から「差異なし」に変更される。差異有無判別部４０４で差異がある旨の判別がなされた行については、比較結果が「一致」から「置換」に変更される。
【００５６】
比較部４０（マッチング処理部４０２および差異有無判別部４０４）での処理によって、第１ログおよび第２ログに含まれる各行についての比較結果は、「挿入」，「削除」，「置換」，および「差異なし」のいずれかとなる。比較結果は、結果データ４８として比較部４０から出力される。
【００５７】
比較結果表示部４２は、結果データ４８に基づいて、表示部１３０（図３参照）に比較結果画面５０を表示する。なお、比較結果画面５０についての詳しい説明は後述する。
【００５８】
＜４．ログ比較処理の手順＞
次に、本実施形態におけるログ比較処理の手順について説明する。図７は、ログ比較処理の概略手順を示すフローチャートである。ログ比較処理の開始後、まず、マッチング処理部４０２によって、バージョンアップ前後の２つのログ（第１ログおよび第２ログ）に対するマッチング処理が行われる（ステップＳ１０）。次に、差異有無判別部４０４によって、ステップＳ１０で「一致」と判定された行（第１ログおよび第２ログの両者の行）についての差異の有無を判別する処理（差異有無判別処理）が行われる（ステップＳ２０）。その後、比較結果表示部４２によって、表示部１３０への比較結果画面５０の表示が行われる（ステップＳ３０）。
【００５９】
なお、本実施形態においては、上記ステップＳ１０によってマッチングステップが実現され、上記ステップＳ２０によって差異有無判別ステップが実現され、上記ステップＳ３０によって比較結果表示ステップが実現されている。
【００６０】
図８は、マッチング処理（図７のステップＳ１０）の詳細な手順を示すフローチャートである。マッチング処理の開始後、まず、第１ログに関して、具体的な処理内容を示す情報が記述されている行（換言すれば、ステップの開始・終了を示す情報が記述されている行以外の行）のうちの１行目が現在行に設定される（ステップＳ１００）。次に、第２ログに関して、具体的な処理内容を示す情報が書き込まれている行のうちの１行目が現在行に設定される（ステップＳ１１０）。なお、現在行とは、ログ比較プログラム１２４の実行中において処理対象となっている行のことである。また、以下、便宜上、具体的な処理内容を示す情報が記述されている行のみに着目して処理のフローの説明を行う。
【００６１】
ステップＳ１１０の終了後、第１ログの現在行と第２ログの現在行とが比較され、両者間で内容およびステップ番号の双方が一致しているか否かの判定が行われる（ステップＳ１２０）。その結果、双方が一致していれば、処理はステップＳ１３０に進む。一方、内容およびステップ番号の少なくとも一方が一致していなければ、処理はステップＳ１４０に進む。ところで、上述したように、ログの各行の「内容」の情報は、ステップの開始・終了を示す情報または具体的な処理内容を示す情報である。すなわち、具体的な処理内容を示す情報が記述されている行は、例えば図９に示すように、対応するステップの開始を示す情報が記述されている行と当該ステップの終了を示す情報が記述されている行との間に含まれている。これにより、ステップＳ１２０において、第１ログの現在行と第２ログの現在行との間でステップ番号が一致しているか否かを判定することができる。
【００６２】
ステップＳ１３０では、第１ログおよび第２ログの双方の現在行についての比較結果が「一致」に設定される。なお、このステップＳ１３０で比較結果が「一致」に設定された行については、後述するように、差異有無判別処理で比較結果が「差異なし」または「置換」に変更される。ステップＳ１３０の終了後、処理はステップＳ１５０に進む。
【００６３】
ステップＳ１４０では、第２ログに関して、次の未判定行（比較結果が設定されていない行）が現在行に設定される。その後、第２ログの全ての行について第１ログの現在行との比較が終了したか否かの判定が行われる（ステップＳ１４２）。その結果、比較が終了していれば処理はステップＳ１４４に進み、比較が終了していなければ処理はステップＳ１２０に戻る。処理がステップＳ１４４に進むことは、第１ログの現在行に対応する行（ログ）が第２ログに存在しないことを意味する。従って、ステップＳ１４４では、第１ログの現在行についての比較結果が「削除」に設定される。ステップＳ１４４の終了後、処理はステップＳ１５０に進む。
【００６４】
ステップＳ１５０では、第１ログに関して、次の未判定行が現在行に設定される。その後、第１ログの全ての行について第２ログの各行との比較が終了したか否かの判定が行われる（ステップＳ１６０）。その結果、比較が終了していれば処理はステップＳ１７０に進み、比較が終了していなければ処理はステップＳ１１０に戻る。
【００６５】
ステップＳ１７０では、第２ログに関して、上述したステップＳ１００〜ステップＳ１６０の処理で比較結果が設定されなかった行についての比較結果が「挿入」に設定される。これにより、マッチング処理が終了する。
【００６６】
以上のようなマッチング処理の結果、第１ログおよび第２ログの双方に存在する内容の行（第１ログおよび第２ログの両者の行）については比較結果が「一致」に設定され、第２ログのみに存在する内容の行（第２ログの行）については比較結果が「挿入」に設定され、第１ログのみに存在する内容の行（第１ログの行）については比較結果が「削除」に設定される。以下、比較結果が「一致」に設定された行のことを「一致行」ともいい、比較結果が「挿入」に設定された行のことを「挿入行」ともいい、比較結果が「削除」に設定された行のことを「削除行」ともいう。
【００６７】
図１０は、差異有無判別処理の詳細な手順を示すフローチャートである。差異有無判別処理の開始後、まず、第１ログに関して、比較結果が「一致」に設定されている行のうちの最初の行が現在行に設定される（ステップＳ２００）。次に、第２ログに関して、比較結果が「一致」に設定されている行のうちの最初の行が現在行に設定される（ステップＳ２１０）。その後、第１ログの現在行と第２ログの現在行とが比較され、両者間で内容が一致しているか否かの判定が行われる（ステップＳ２２０）。その結果、内容が一致していれば、処理はステップＳ２３０に進む。一方、内容が一致していなければ、処理はステップＳ２６０に進む。
【００６８】
ステップＳ２３０では、第１ログの現在行についての出力順序と第２ログの現在行についての出力順序とが一致しているか否かの判定が行われる。この判定は、例えば現在行の１つ前の行の内容を比較することによって行うことができる。判定の結果、出力順序が一致していれば、処理はステップＳ２５０に進む。一方、出力順序が一致していなければ、処理はステップＳ２４０に進む。
【００６９】
ステップＳ２４０では、第１ログの現在行についての上述した相対時間（プロセスの開始時間からの経過時間）と第２ログの現在行についての相対時間との差（時間差）が予め設定されている許容範囲内であるか否かの判定が行われる。その結果、時間差が許容範囲内であれば、処理はステップＳ２５０に進む。一方、時間差が許容範囲内でなければ、処理はステップＳ２４２に進む。なお、許容範囲は例えば「１０ｍｓ」などと設定される。
【００７０】
ステップＳ２４２では、第１ログおよび第２ログの双方の現在行についての比較結果が「一致」から「置換」に変更される。ステップＳ２４２の終了後、処理はステップＳ２７０に進む。
【００７１】
ステップＳ２５０では、第１ログおよび第２ログの双方の現在行についての比較結果が「一致」から「差異なし」に変更される。ステップＳ２５０の終了後、処理はステップＳ２７０に進む。
【００７２】
ステップＳ２６０では、第２ログに関して、比較結果が「一致」に設定されている次の行が現在行に設定される。その後、比較結果が「一致」に設定されている行に関し、第２ログの全ての行について第１ログの現在行との比較が終了したか否かの判定が行われる（ステップＳ２６２）。その結果、比較が終了していれば処理はステップＳ２７０に進み、比較が終了していなければ処理はステップＳ２２０に戻る。
【００７３】
ステップＳ２７０では、第１ログに関して、比較結果が「一致」に設定されている次の行が現在行に設定される。その後、比較結果が「一致」に設定されている行に関し、第１ログの全ての行について第２ログの各行との比較が終了したか否かの判定が行われる（ステップＳ２８０）。その結果、比較が終了していれば、差異有無判別処理が終了する。一方、比較が終了していなければ、処理はステップＳ２１０に戻る。
【００７４】
以上のような差異有無判別処理の結果、第１ログおよび第２ログの双方に存在する内容の行（第１ログおよび第２ログの両者の行）について、次のような設定が行われる。時間差が許容範囲内の行については、比較結果が「差異なし」に設定される。時間差が許容範囲外の行については、比較結果が「置換」に設定される。以下、比較結果が「差異なし」に設定された行のことを「差異なし行」ともいい、比較結果が「置換」に設定された行のことを「置換行」ともいう。
【００７５】
＜５．比較の具体例＞
ここで、上述したログ比較処理によるバージョンアップ前後のログの比較の具体例について説明する。なお、以下の各ケースでは、処理Ａ〜Ｄの処理フローは特に断らない限り図１９に示した処理フローであると仮定する。また、上述した許容範囲が１０ｍｓに設定されているものと仮定する。
【００７６】
＜５．１  第１のケース＞
図１１に示すようなバージョンアップ前後のログが得られているケースを第１のケースとする。図１１に示すように、このケースでは、バージョンアップ前後で処理Ｂと処理Ｃの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Ｂと処理Ｃとが並列して実行されることに起因している（図１９参照）。すなわち、このケースは、第１ログ（バージョンアップ前のログ）と第２ログ（バージョンアップ後のログ）との間には差異がない旨の判定が行われるべきケースである（ここでは、ステップ１に含まれる処理に関するログのみに着目する）。
【００７７】
第１ログには、ステップ１に含まれる処理のログとして、処理Ａ，処理Ｂ，処理Ｃ，および処理Ｄの４つの処理のログが含まれている。第２ログには、ステップ１に含まれる処理のログとして、処理Ａ，処理Ｃ，処理Ｂ，および処理Ｄの４つの処理のログが含まれている。第１ログに含まれている４つの処理のログと第２ログに含まれている４つの処理のログとは１対１で対応している。従って、まず、マッチング処理（図８を参照）によって、第１ログおよび第２ログの双方に関し、２行目から５行目までの全ての行（行番号が２から５までの行）についての比較結果が「一致」に設定される。
【００７８】
次に、差異有無判別処理（図１０を参照）では、処理Ａ〜Ｄのそれぞれのログ（行）について、比較結果を「差異なし」または「置換」のいずれかに設定する処理が行われる。ここでは、出力順序が入れ替わっている処理Ｂと処理Ｃのログに着目して説明する。第１ログの処理Ｂのログ（行）と第２ログの処理Ｂのログ（行）とが比較されるとき、図１０のステップＳ２２０では「内容が一致している」旨の判定が行われ、図１０のステップＳ２３０では「出力順序が一致していない」旨の判定が行われる。従って、処理はステップＳ２４０に進む。第１ログの処理Ｃのログ（行）と第２ログの処理Ｃのログ（行）とが比較されるときも同様である。ここで、処理Ｂのログに着目すると、第１ログと第２ログとの間の時間差は１ｍｓである。この時間差は許容範囲内である。従って、第１ログの３行目についての比較結果および第２ログの４行目についての比較結果が「差異なし」に設定される（「一致」から「差異なし」に変更される）。また、処理Ｃのログに着目すると、第１ログと第２ログとの間の時間差は０ｍｓである。この時間差は許容範囲内である。従って、第１ログの４行目についての比較結果および第２ログの３行目についての比較結果が「差異なし」に設定される（「一致」から「差異なし」に変更される）。なお、処理Ａおよび処理Ｄのログについての比較結果、すなわち、第１ログの２行目についての比較結果，第２ログの２行目についての比較結果，第１ログの５行目についての比較結果，および第２ログの５行目についての比較結果も、「差異なし」に設定される（「一致」から「差異なし」に変更される）。
【００７９】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がない」という比較結果が得られる。すなわち、ログ比較処理の結果として、所望の結果が得られている。
【００８０】
＜５．２  第２のケース＞
図１２に示すようなバージョンアップ前後のログが得られているケースを第２のケースとする。図１２に示すように、このケースでは、バージョンアップ前には処理Ｂは処理Ａの次に実行されていたが、バージョンアップ後には処理Ｂは処理Ｄの次に実行されている。また、バージョンアップ前の処理Ｂの時間とバージョンアップ後の処理Ｂの時間との差（時間差）は許容範囲（１０ｍｓ）を超えている。すなわち、このケースは、第１ログ（バージョンアップ前のログ）と第２ログ（バージョンアップ後のログ）との間に差異がある旨の判定が行われるべきケースである。
【００８１】
このケースでは、まず、第１のケースと同様、マッチング処理（図８を参照）によって、第１ログおよび第２ログの双方に関し、２行目から５行目までの全ての行についての比較結果が「一致」に設定される。
【００８２】
次に、差異有無判別処理（図１０を参照）によって、処理Ａ〜Ｄのそれぞれのログについて、比較結果を「差異なし」または「置換」のいずれかに設定する処理が行われる。ここでは、処理Ｂのログに着目して説明する。第１ログの処理Ｂのログ（行）と第２ログの処理Ｂのログ（行）とが比較されるとき、図１０のステップＳ２２０では「内容が一致している」旨の判定が行われ、図１０のステップＳ２３０では「出力順序が一致していない」旨の判定が行われる。従って、処理はステップＳ２４０に進む。ここで、処理Ｂのログに着目すると、第１ログと第２ログとの間の時間差は２４４ｍｓである。この時間差は許容範囲外である。従って、第１ログの３行目についての比較結果および第２ログの５行目についての比較結果が「置換」に設定される（「一致」から「置換」に変更される）。
【００８３】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。すなわち、ログ比較処理の結果として、所望の結果が得られている。
【００８４】
＜５．３  第３のケース＞
図１３に示すようなバージョンアップ前後のログが得られているケースを第３のケースとする。ここでは、バージョンアップ前後のログの３〜５行目に着目する。図１３に示すように、バージョンアップ前後で処理Ｂと処理Ｃの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Ｂと処理Ｃとが並列して実行されることに起因している（図１９参照）。また、図１３に示すように、処理Ｘのログは第１ログ（バージョンアップ前のログ）のみに存在し、処理Ｙのログは第２ログ（バージョンアップ後のログ）のみに存在する。以上より、このケースは、第１ログ（バージョンアップ前のログ）と第２ログ（バージョンアップ後のログ）との間に差異がある旨の判定が行われるべきケースである。但し、処理Ｂのログ（行）および処理Ｃのログ（行）については、「差異なし」という比較結果が得られるべきである。
【００８５】
このケースでは、処理Ｂのログ（行）および処理Ｃのログ（行）については、第１のケースと同様、マッチング処理（図８を参照）によって比較結果が「一致」に設定される。第１ログの処理Ｘのログ（行）については、マッチング処理のステップＳ１２０において、第２ログのいずれのログ（行）とも「一致している」旨の判定は行われない。従って、第１ログの処理Ｘのログ（行）については、比較結果が「削除」に設定される。第２ログの処理Ｙのログ（行）については、マッチング処理のステップＳ１２０において、第１ログのいずれのログ（行）とも「一致している」旨の判定は行われない。従って、第２ログの処理Ｙのログ（行）については、比較結果が「挿入」に設定される。
【００８６】
差異有無判別処理（図１０を参照）では、第１のケースと同様にして、処理Ｂのログ（行）についても処理Ｃのログ（行）についても比較結果が「差異なし」に設定される（「一致」から「差異なし」に変更される）。
【００８７】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。但し、処理Ｂのログ（行）および処理Ｃのログ（行）については、「差異なし」という比較結果が得られる。以上より、ログ比較処理の結果として、所望の結果が得られている。
【００８８】
＜５．４  第４のケース＞
図１４に示すようなバージョンアップ前後のログが得られているケースを第４のケースとする。ここでは、処理Ｂ，処理Ｃ，および処理Ｄのログに着目する。図１４に示すように、バージョンアップ前後で処理Ｂと処理Ｃの出力順序が入れ替わっている。但し、ここでの出力順序の変動は、単に処理Ｂと処理Ｃとが並列して実行されることに起因している（図１９参照）。また、図１４に示すように、バージョンアップ前には処理Ｄはステップ２に含まれていたが、バージョンアップ後には処理Ｄはステップ１に含まれている。本実施形態では、各ステップに含まれる（１または複数の）処理の構成はバージョンアップ前後で同じになるべきである。従って、このケースは、第１ログ（バージョンアップ前のログ）と第２ログ（バージョンアップ後のログ）との間に差異がある旨の判定が行われるべきケースである。但し、処理Ｂのログ（行）および処理Ｃのログ（行）については、「差異なし」という比較結果が得られるべきである。
【００８９】
このケースでは、処理Ｂのログ（行）および処理Ｃのログ（行）については、第１のケースと同様、マッチング処理（図８を参照）によって比較結果が「一致」に設定される。第１ログの処理Ｄのログ（行）については、マッチング処理のステップＳ１２０において、第２ログのいずれのログ（行）とも「内容およびステップ番号の双方が一致している」旨の判定は行われない。何故ならば、第２ログにも処理Ｄのログ（行）は存在するが、第１ログの処理Ｄはステップ２に含まれているのに対して第２ログの処理Ｄはステップ１に含まれているからである。従って、第１ログの処理Ｄのログ（行）については、比較結果が「削除」に設定される。第２ログの処理Ｄのログ（行）については、マッチング処理のステップＳ１２０において、第１ログのいずれのログ（行）とも「内容およびステップ番号の双方が一致している」旨の判定は行われない。何故ならば、第１ログにも処理Ｄのログ（行）は存在するが、第２ログの処理Ｄはステップ１に含まれているのに対して第１ログの処理Ｄはステップ２に含まれているからである。従って、第２ログの処理Ｄのログ（行）については、比較結果が「挿入」に設定される。
【００９０】
差異有無判別処理（図１０を参照）では、第１のケースと同様にして、処理Ｂのログ（行）についても処理Ｃのログ（行）についても比較結果が「差異なし」に設定される（「一致」から「差異なし」に変更される）。
【００９１】
以上のようにして、「バージョンアップ前のログとバージョンアップ後のログとの間には差異がある」という比較結果が得られる。但し、処理Ｂのログ（行）および処理Ｃのログ（行）については、「差異なし」という比較結果が得られる。以上より、ログ比較処理の結果として、所望の結果が得られている。
【００９２】
＜５．５  備考＞
ところで、シーケンシャルで実行されるべき２つの処理（ここでは、処理Ｃと処理Ｄに着目する）に関するログの出力順序が図１５に示すようにバージョンアップ前後で変動するケースが考えられる。このようなケースでは、本来的には、ログ比較処理によって「差異あり」という比較結果が得られることが好ましい。ところが、本実施形態によれば、図１５に示すケースでは、処理Ｃのログ（行）および処理Ｄのログ（行）の双方に関し、第１ログと第２ログとの間の時間差が許容範囲内であるため、「差異なし」という比較結果が得られる。すなわち、バージョンアップが処理Ｃと処理Ｄの実行順序に影響を及ぼしている旨を把握することができない。しかしながら、このようなケースに関しては、従来のログ比較処理によって、バージョンアップ前後に処理Ｃと処理Ｄの実行順序（ログの出力順序）に変動があることを把握することができる。つまり、本実施形態に係るログ比較処理と従来のログ比較処理とを併用することによって、シーケンシャルで実行されるべき処理に対するバージョンアップに起因する影響を正しく把握しつつ、並列処理を含むプロセスに対するバージョンアップに起因する影響を正しく把握することが可能となる。
【００９３】
＜６．比較結果の表示＞
次に、比較結果の表示について説明する。上述したように、マッチング処理および差異有無判別処理が終了すると、表示部１３０への比較結果画面５０の表示が行われる（図７のステップＳ３０）。図１６は、比較結果画面５０の一構成例について説明するための図である。図１６に示すように、この比較結果画面５０には、比較を行った２つのログ（第１ログと第２ログ）の間の差異の有無を表示する差異有無表示領域５１と、差異の程度を示す差異度を表示する差異度表示領域５２と、第１ログのファイル名を表示するバージョンアップ前ログファイル名表示領域５３ａと、第２ログのファイル名を表示するバージョンアップ後ログファイル名表示領域５３ｂと、比較結果の詳細を表示する詳細表示領域５４と、選択したファイルの中身（ログ）の表示を指示するためのログ閲覧ボタン５５とが含まれている。詳細表示領域５４には、ステップ番号を表示するステップ番号表示領域５４１と、カテゴリを表示するカテゴリ表示領域５４２と、具体的な処理内容を表示する処理内容表示領域５４３と、該当行に対応するファイル名を表示するファイル名表示領域５４４と、行番号を表示する行番号表示領域５４５とが含まれている。なお、差異度表示領域５２には、第１ログの削除行の数，第２ログの挿入行の数，および第２ログの置換行の数の合計が差異度として表示される。
【００９４】
カテゴリ表示領域５４２には、「ＯＫ」，「不足」，「過多」，および「移動」のうちのいずれかが表示される。但し、これらの表現については特に限定されない。「ＯＫ」は、該当のステップに含まれる（１または複数の）処理に関するログが書き込まれた全ての行が「差異なし行」であることを意味する。「不足」は、該当のログファイル内の該当の行が「削除行」であることを意味する。「過多」は、該当のログファイル内の該当の行が「挿入行」であることを意味する。「移動」は、該当のログファイル内の該当の行が「置換行」であることを意味する。以下、具体的な表示例について説明する。
【００９５】
図１７は、ログ比較処理が行われた結果、２つのログ（バージョンアップ前後のログ）の間に差異がある旨の判断がなされたときの比較結果画面５０の一例を示す図である。差異有無表示領域５１には「あり」と表示されており、差異度は「２１」となっている。これにより、２つのログの間に差異があることを把握することができる。また、詳細表示領域５４の表示内容から、バージョンアップ前のログファイル内のいずれの行が削除行であるのか、バージョンアップ後のログファイル内のいずれの行が挿入行であるのか、および、バージョンアップ後のログファイル内のいずれの行が置換行であるのかを把握することができる。例えば図１７で符号６２で示す行に着目すると、バージョンアップ後のログファイル（ログ２．ｌｏｇ）の１３８行目に「処理Ｆ」という処理に関するログが挿入されていることが把握される。
【００９６】
図１７に示すような比較結果画面５０が表示されているときに、詳細表示領域５４のファイル名表示領域５４４が空白になっている行以外のいずれかの行が選択された状態でログ閲覧ボタン５５が押下されると、その選択された行のファイル名表示領域５４４に表示されているファイル名を持つファイルに書き込まれているログが表示される。このように、バージョンアップ前後のファイルの中身（ログ）を確認することができる。
【００９７】
図１８は、ログ比較処理が行われた結果、２つのログ（バージョンアップ前後のログ）の間に差異がない旨の判断がなされたときの比較結果画面５０の一例を示す図である。差異有無表示領域５１には「なし」と表示されており、差異度は「０」となっている。これにより、２つのログの間に差異がないことを把握することができる。２つのログの間に差異がないため、全てのステップについて、カテゴリが「ＯＫ」となっている。
【００９８】
＜７．効果＞
本実施形態によれば、ソフトウェアのバージョンアップ前後のログ（第１ログと第２ログ）を比較する際、まず、時間および処理内容のうちの処理内容のみに基づくマッチング処理が行われる。そして、マッチング処理によって互いに一致する旨の判定結果が得られた２つの行（第１ログの行と第２ログの行）の間の差異の有無についての最終的な判断が、両者の時間差が予め設定された許容範囲内であるか否かに基づいて行われる。このため、バージョンアップ前後でのログの出力順序の変動が単に並列処理が行われることに起因する場合には、当該出力順序の変動を生じている処理のログについてはバージョンアップ前後で差異がない旨の判断（すなわち、処理に問題がない旨の判断）が行われる。また、並列処理が行われる部分であっても、バージョンアップ前後のログの時間差が大きい場合には、バージョンアップ前後で差異がある旨の判断が行われる。以上より、本実施形態によれば、並列処理を含むプロセスを実行するソフトウェアのバージョンアップに起因するプロセスの結果への影響を従来よりも正しく把握することが可能となる。
【００９９】
また、本実施形態によれば、バージョンアップ前後のログの差異の有無や差異の程度の大きさを示す差異度を表示する比較結果画面５０が表示部１３０に表示される。このため、バージョンアップがプロセスに何らかの影響を及ぼしたか否かを迅速に把握することが可能となる。また、比較結果画面５０には比較結果の詳細を表示する詳細表示領域５４が設けられているので、バージョンアップがプロセスに及ぼした影響をより詳しく把握することが可能となる。
【０１００】
＜８．その他＞
上記実施形態では、本発明を基板処理装置におけるソフトウェアのバージョンアップ前後のログの比較に適用する例を挙げて説明した。しかしながら、本発明はこれに限定されない。コンピュータを用いた処理が行われる各種装置（各種システム）におけるソフトウェアのバージョンアップ前後のログの比較にも本発明を適用することができる。
【符号の説明】
【０１０１】
１…基板処理装置
１０…主装置
２０…制御基板
３０…処理ユニット
４０…比較部
４２…比較結果表示部
５０…比較結果画面
１０２…処理制御装置
１０４…ログ比較装置
１２２…ログファイル
１２４…ログ比較プログラム
４０２…マッチング処理部
４０４…差異有無判別部
【図１】
0006579911.tif 000002
【図２】
0006579911.tif 000003
【図３】
0006579911.tif 000004
【図４】
0006579911.tif 000005
【図５】
0006579911.tif 000006
【図６】
0006579911.tif 000007
【図７】
0006579911.tif 000008
【図８】
0006579911.tif 000009
【図９】
0006579911.tif 000010
【図１０】
0006579911.tif 000011
【図１１】
0006579911.tif 000012
【図１２】
0006579911.tif 000013
【図１３】
0006579911.tif 000014
【図１４】
0006579911.tif 000015
【図１５】
0006579911.tif 000016
【図１６】
0006579911.tif 000017
【図１７】
0006579911.tif 000018
【図１８】
0006579911.tif 000019
【図１９】
0006579911.tif 000020
【図２０】
0006579911.tif 000021
【図２１】
0006579911.tif 000022
【図２２】
0006579911.tif 000023
【図２３】
0006579911.tif 000024
【図２４】
0006579911.tif 000025