(57)【要約】  第１のプログラムと第２のプログラムとの差分を検出し、差分のうちのあらかじめ定められた条件を満たす流用箇所を示す情報である区分情報を求めるプログラム差分検出部（１２）と、区分情報を記憶する記憶部（１４）と、を備える。
2018123039.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうちのあらかじめ定められた条件を満たす流用箇所を求め、前記流用箇所を示す情報である区分情報を求める差分演算部と、
前記区分情報を記憶する記憶部と、
を備えることを特徴とするプログラム比較装置。
【請求項２】
前記第１のプログラムおよび前記第２のプログラムはラダープログラムであることを特徴とする請求項１に記載のプログラム比較装置。
【請求項３】
前記あらかじめ定められた条件は、前記第１のプログラムおよび前記第２のプログラムとでロジックが同一であるという条件を含むことを特徴とする請求項１または２に記載のプログラム比較装置。
【請求項４】
前記あらかじめ定められた条件は、前記第１のプログラムおよび前記第２のプログラムとでパラメータが異なるという条件を含むことを特徴とする請求項１から３のいずれか１つに記載のプログラム比較装置。
【請求項５】
前記区分情報は、１つ以上の命令で構成されるステップごとの、各ステップが前記流用箇所であるか否かを示す情報を含むことを特徴とする請求項３または４に記載のプログラム比較装置。
【請求項６】
前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムを表示する表示部、
を備えることを特徴とする請求項１から４のいずれか１つに記載のプログラム比較装置。
【請求項７】
前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムを表示する表示部、
を備えることを特徴とする請求項５に記載のプログラム比較装置。
【請求項８】
前記表示部は、前記流用箇所のステップの数を表示することを特徴とする請求項７に記載のプログラム比較装置。
【請求項９】
前記表示部は、色または記号により前記流用箇所であるか否かを区別して表示することを特徴とする請求項７または８に記載のプログラム比較装置。
【請求項１０】
前記表示部は、前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムが表示される第１の領域と、前記第１のプログラムが表示される第２の領域とを含む表示画面を表示することを特徴とする請求項６から９のいずれか１つに記載のプログラム比較装置。
【請求項１１】
前記差分演算部は、前記差分のうち前記流用箇所以外を、さらに、前記第１のプログラムに存在せず前記第２のプログラムに存在する新規部、前記第１のプログラムと前記第２のプログラムとでロジックの異なる変更部、および前記第２のプログラムに存在せず前記第１のプログラムに存在する削除部に分類することを特徴とする請求項１から１０のいずれか１つに記載のプログラム比較装置。
【請求項１２】
プログラム比較装置が、第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうちのあらかじめ定められた条件を満たす流用箇所を求め、前記流用箇所を示す情報である区分情報を求める第１のステップと、
前記プログラム比較装置が、前記区分情報を記憶部へ格納する第２のステップと、
を含むことを特徴とするプログラム差分照合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変更前後のプログラムの差分を照合するプログラム比較装置およびプログラム差分照合方法に関する。
【背景技術】
【０００２】
近年、工場をはじめとした産業分野ではＦＡ（Factory  Automation）技術の普及が進んでいる。ＦＡ技術の適用対象が増えるに伴い、ＦＡシステムの大規模化が進んでいる。このため、ＦＡシステムを制御するために用いられるプログラムも大規模化し、プログラムの品質確保が重要な課題となっている。【０００３】
ＦＡシステムは、一般に、ＰＬＣ（Programmable  Logic  Controller）などを用いたシーケンス制御により制御される。シーケンス制御はシーケンスプログラムと呼ばれるプログラムで記述される。シーケンスプログラムは、ラダー言語、ＳＦＣ（Sequential  Function  Chart）などの言語により記述される。【０００４】
品質確保のための試験の費用および工数を抑えるために、シーケンスプログラムの作成では、新規作成よりも、既存の稼働実績のあるシーケンスプログラムを複製し再利用する場合が多い。一般的に、シーケンスプログラムの再利用では、既存のシーケンスプログラムに新規に処理を追加すること、既存のシーケンスプログラムから不要な処理を削除すること、既存のシーケンスプログラムのロジックを変更すること、既存のシーケンスプログラムのデータを変更すること、などが実施される。【０００５】
再利用されたシーケンスプログラムを試験する際には、既存のシーケンスプログラムからの変更箇所を正しく把握する必要がある。特許文献１には、ラダープログラムの変更箇所および変更内容を把握するための技術として、変更前と変更後のソースファイルを比較し、比較結果を表示する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−９４０８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
既存のシーケンスプログラムを再利用してプログラムが作成される場合、変更の内容には様々な種類がある。以下では、既存のシーケンスプログラムを再利用して作成されたプログラムにおいて、新規に追加されたステップを「新規ステップ」、既存のシーケンスプログラムから削除されたステップを「削除ステップ」、既存のシーケンスプログラムからロジックが変更されたステップを「変更ステップ」と呼ぶ。ここで、「ステップ」とは、シーケンスプログラムを構成する個々の命令、または複数の命令の集合を示す。また、新規ステップ、削除ステップ、変更ステップ以外であり既存のシーケンスプログラムからの変更のあるステップ、すなわち、再利用の対象となった既存のシーケンスプログラムのロジックはそのまま使用されており、処理対象のデータだけが異なるステップを「流用ステップ」と呼ぶ。また、既存のシーケンスプログラムから全く変更の無いステップを「既存ステップ」と呼ぶ。【０００８】
品質確保のためには、作成されたシーケンスプログラムに対して試験が行われる必要がある。既存のシーケンスプログラムを再利用して作成されたプログラムである再利用プログラムの試験をする際には、少なくとも、新規ステップ、変更ステップおよび流用ステップの試験が実施される。【０００９】
一般に、新規ステップおよび変更ステップについては、ロジックが追加または変更になるため、試験項目が多い。このため、新規ステップおよび変更ステップに対しては、試験を実施するため試験工数が多くなる。一方、流用ステップは、試験済みのロジックを用いているため、試験項目が少なくてよい。しかしながら、特許文献１に記載の技術では、変更箇所を、「追加」、「削除」、「変更」、または「移動」のいずれであるかを判定しているだけであり、ロジックの変更であるのか、ロジックは変更されずにデータだけの変更であるのかが区別できない。このため、ロジックは変更されずにデータだけが変更される箇所も、ロジックが変更された場合と同等の試験を実施することになり、ロジックが変更された場合と同様の試験工数を要する可能性があるという問題がある。【００１０】
以上のことから、シーケンスプログラムの品質確保を、より少ない工数で実施するためには、再利用プログラムにおける変更箇所が、流用ステップであるか否か、すなわちロジックの変更を伴わない変更であるか否かが明らかになることが望ましい。【００１１】
本発明は、上記に鑑みてなされたものであって、再利用により作成されたシーケンスプログラムの変更箇所がロジックの変更を伴わない変更であるか否かを判別することができるプログラム比較装置およびプログラム差分照合方法を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム比較装置は、第１のプログラムと第２のプログラムとの差分を検出し、差分のうちのあらかじめ定められた条件を満たす流用箇所を求め、流用箇所を示す情報である区分情報を求める差分演算部と、区分情報を記憶する記憶部と、を備える。
【発明の効果】
【００１３】
本発明にかかるプログラム比較装置は、再利用により作成されたシーケンスプログラムの変更箇所がロジックの変更を伴わない変更であるか否かを判別することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態にかかるプログラム作成装置の機能構成例を示す図
【図２】変更前後のプログラムにおける各ステップを説明するための図
【図３】プログラム作成装置を実現する計算機システムの構成例を示す図
【図４】プログラム選択部の処理手順の一例を示すフローチャート
【図５】変更前プログラムの選択画面の一例を示す図
【図６】変更後プログラムの選択画面の一例を示す図
【図７】プログラム作成部による編集画面を利用した場合の変更後プログラムの選択画面の一例を示す図
【図８】プログラム差分検出部の処理手順の一例を示す図
【図９】差分情報の構成例を示す図
【図１０】差分情報の別の構成例を示す図
【図１１】差分表示画面の一例を示す図
【発明を実施するための形態】
【００１５】
以下に、本発明の実施の形態にかかるプログラム作成装置およびプログラム差分照合方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１６】
実施の形態．
図１は、本発明の実施の形態にかかるプログラム作成装置の機能構成例を示す図である。図１に示すように、本発明にかかるプログラム比較装置の一例であるプログラム作成装置１は、プログラム選択部１１、プログラム差分検出部１２、プログラム差分表示部１３、記憶部１４およびプログラム作成部１５を備える。
【００１７】
プログラム選択部１１は、記憶部１４に格納されているシーケンスプログラムまたはプログラム作成部１５により編集中のシーケンスプログラムのなかからの、変更前プログラムおよび変更後プログラムの選択を受け付け、受け付けた選択結果をプログラム差分検出部１２へ通知する。シーケンスプログラムの一例は、ラダー言語で記述されたラダープログラムである。プログラム選択部１１による変更前プログラムおよび変更後プログラムの選択の詳細については後述する。
【００１８】
記憶部１４に格納されているシーケンスプログラムは、例えば、プログラム作成部１５により作成されたシーケンスプログラムであるが、プログラム作成部１５により作成されたシーケンスプログラム以外のシーケンスプログラムであってもよい。例えば、記憶部１４に格納されているシーケンスプログラムは、他の装置により作成されて、記憶部１４に格納されたシーケンスプログラムであってもよい。他の装置により作成されたシーケンスプログラムである場合には、プログラム作成装置１は、他の装置から、記憶媒体または通信媒体などを介して該シーケンスプログラムを取得して記憶部１４に格納する。
【００１９】
変更前プログラムは、既に作成されたシーケンスプログラムすなわち既存のシーケンスログラムである。変更後プログラムは、変更前プログラムを再利用して作成されたまたは再利用して作成される途中のシーケンスプログラムである。
【００２０】
プログラム差分検出部１２は、プログラム選択部１１から通知された選択結果に基づいて、変更前プログラムおよび変更後プログラムを記憶部１４またはプログラム作成部１５から取得し、差分を検出し、検出した結果を差分情報として記憶部１４へ格納する。詳細には、プログラム差分検出部１２は、第１のプログラムである変更前プログラムと第２のプログラムである変更後プログラムとの差分を検出し、差分のうちのあらかじめ定められた条件を満たす流用部すなわち流用箇所を求め、流用箇所を示す情報である区分情報を求める差分演算部である。流用部は、ステップ単位で区分が判定される場合、流用ステップに対応する。区分情報は、各ステップの区分を示す情報であり、流用ステップすなわち流用箇所を示す情報である。あらかじめ定められた条件の例は、後述するように流用ステップであるか否かを示す条件である。具体的には、あらかじめ定められた条件は、第１のプログラムおよび第２のプログラムとでロジックが同一であるという条件を含む。また、あらかじめ定められた条件は、第１のプログラムおよび第２のプログラムとでパラメータが異なるという条件を含む。ここで、ロジックとは、論理式または算術式等で示される演算の内容を示す規則である。したがって、流用ステップは、変更前プログラムおよび変更後プログラムの両方にステップ自体は存在し、変更前プログラムおよび変更後プログラムとでロジックが同一であり、データが異なるステップである。
【００２１】
また、プログラム差分検出部１２は、差分のうち流用部すなわち流用ステップ以外を、さらに、第１のプログラムに存在せず第２のプログラムに存在する新規部、第１のプログラムと第２のプログラムとでロジックの異なる変更部、および第２のプログラムに存在せず第１のプログラムに存在する削除部に分類する。新規部、変更部および削除部は、ステップ単位で区分が判定される場合、それぞれ新規ステップ、変更ステップおよび削除ステップに対応する。
【００２２】
ここで、新規ステップ、削除ステップ、変更ステップおよび流用ステップについて、具体例を挙げて説明する。図２は、変更前後のプログラムにおける各ステップを説明するための図である。図２の最上段には、元プログラムすなわち変更前のプログラムが示されている。図２の例では、元プログラムは１ステップからなる。この元プログラムを変更して作成された変更後プログラムの３つの例が変更後プログラム＃１、変更後プログラム＃２および変更後プログラム＃３である。変更後プログラム＃１では、元プログラムに含まれていたステップがそのまま残っているとともに、新規にステップが追加されている。このように変更後プログラムにおいて新規に追加されたステップすなわち、変更前プログラムに存在せずかつ変更後プログラムに存在するステップが、新規ステップである。変更後プログラム＃２では、元プログラムに存在したステップが削除されている。このように、変更前プログラムに存在しかつ変更後プログラムに存在しないステップが削除ステップである。変更後プログラム＃３では、元プログラムに存在したステップのロジックが変更されている。このように、変更前プログラムおよび変更後プログラムの両方にステップ自体は存在するものの該ステップのロジックが異なるものが変更ステップである。
【００２３】
したがって、プログラム差分検出部１２は、例えば、変更前プログラムおよび変更後プログラムにより検出された差分を、ステップごとに、変更前プログラムに存在せずかつ変更後プログラムに存在するステップであるか、変更前プログラムに存在しかつ変更後プログラムに存在しないステップであるか、または変更前プログラムおよび変更後プログラムの両方に存在するステップであるかを判別することにより、各ステップを新規ステップ、変更ステップおよび削除ステップに分類することができる。
【００２４】
プログラム差分表示部１３は、記憶部１４に格納されている変更前プログラム、変更後プログラムおよび差分情報を表示する。
【００２５】
記憶部１４は、プログラム作成部１５により作成されたシーケンスプログラムを記憶する。なお、上述した通り、記憶部１４は、プログラム作成部１５以外により作成されたシーケンスプログラムも記憶していてもよい。図１では、記憶部１４が、少なくともプログラムＡ、プログラムＢおよびプログラムＣを含むプログラムを記憶している例を示している。また、記憶部１４は、プログラム差分検出部１２により生成された差分情報を記憶する。
【００２６】
プログラム作成部１５は、シーケンスプログラムを作成および編集する。プログラム作成部１５は、例えば、プログラムエディタと呼ばれるプログラムにより実現される。なお、以下では、本実施の形態にかかるプログラム比較装置が、プログラム作成部１５を備える例を示すが、本発明にかかるプログラム比較装置は、プログラム作成機能を備えていなくてもよい。すなわち、本発明にかかるプログラム比較装置は、プログラム作成部１５を備えていなくてもよい。プログラム作成部１５を備えない場合、プログラム比較装置は、記憶部１４に格納されたプログラム同士を比較対象として本発明にかかる差分照合方法を実施する。
【００２７】
次に、プログラム作成装置１のハードウェア構成について説明する。プログラム作成装置１は、例えば、パーソナルコンピュータなどの計算機システムにより実現することができる。
【００２８】
図３は、プログラム作成装置１を実現する計算機システムの構成例を示す図である。図３に示すように、プログラム作成装置１を実現する計算機システムの一例である計算機システム２０は、プロセッサ２１、メモリ２２、表示装置２３、入力装置２４および通信部２５を備える。
【００２９】
プロセッサ２１は、中央処理装置、処理装置、演算装置などとも呼ばれ、具体的には、ＣＰＵ（Central  Processing  Unit）、マイクロプロセッサ、ＤＳＰ（Digital  Signal  Processor）などである。メモリ２２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリー、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read-Only  Memory）をはじめとした不揮発性または揮発性の半導体メモリ、磁気ディスクなどのうちのうちの少なくとも１つを含む。
【００３０】
表示装置２３は、プロセッサ２１からの制御により、画面表示を行う。表示装置２３は、液晶パネル、ディスプレイなどである。入力装置２４は、ユーザからの入力を受け付ける。入力装置２４は、具体的には、ユーザからの操作を受け付け、受け付けた操作を対応する入力情報に変換してプロセッサ２１に出力する。入力装置２４は、キーボード、マウス、ボタンなどである。
【００３１】
通信部２５は、受信機および送信機である。なお、図３に示した計算機システム２０は、通信部２５を備えているが、本実施の形態にかかるプログラムの取得に通信部２５を用いない場合には、本実施の形態のプログラム作成装置１を実現する計算機システムは通信部２５を備えていなくてもよい。
【００３２】
本実施の形態のプログラム作成装置１を実現するためのプログラムは、メモリ２２に格納される。メモリ２２に格納されるプログラム作成装置１を実現するためのプログラムは、記録媒体から読み出されたものであってもよいし、プログラム作成装置１が通信部２５を介して他の装置から取得したものであってもよい。本実施の形態のプログラム作成装置１の各部のうち記憶部１４以外は、プロセッサ２１が、メモリ２２に格納されたプログラムを読み出して実行することにより実現される。記憶部１４は、メモリ２２の一部または全部により実現される。メモリ２２は、プロセッサ２１がプログラムを実行する際の一次記憶領域としても使用される。
【００３３】
また、プログラム作成部１５と、プログラム選択部１１、プログラム差分検出部１２およびプログラム差分表示部１３とは、別のプログラムにより実現されてされてもよい。または、プログラム選択部１１、プログラム差分検出部１２およびプログラム差分表示部１３が、プログラム作成部１５を実現するプログラムに対する追加機能のプログラムであってもよい。
【００３４】
なお、図３では、表示装置２３と入力装置２４とが個別に設けられる例を示しているが、これに限らず、入力装置２４の少なくとも一部が表示装置２３と一体化されて構成されてもよい。
【００３５】
図１に示したプログラム選択部１１およびプログラム作成部１５は、上述したように、プロセッサ２１がプログラムを実行することにより実現されるとともに、プログラム選択部１１およびプログラム作成部１５の動作時には、入力装置２４および表示装置２３が用いられる。図１に示したプログラム差分表示部１３は、上述したように、プロセッサ２１がプログラムを実行することにより実現され、プログラム差分表示部１３の動作時には、表示装置２３が用いられる。
【００３６】
次に、本実施の形態の動作について説明する。図４は、本実施の形態のプログラム選択部１１の処理手順の一例を示すフローチャートである。図４に示すように、プログラム選択部１１は、変更前プログラムを選択する（ステップＳ１）。具体的には、プログラム選択部１１は、ユーザからの変更前プログラムの選択の入力を受け付け、受け付けた入力情報に基づいて、プログラム作成部１５により編集中のプログラム、または記憶部１４に保存されているプログラムを示す選択して、選択したプログラムを示す情報を変更前プログラムとして、プログラム差分検出部１２へ通知する。プログラム選択部１１は、選択したプログラムを示す情報とともに、該プログラムの取得元、すなわち記憶部１４であるかプログラム作成部１５であるかを示す情報をプログラム差分検出部１２へ通知する。
【００３７】
具体的には、ステップＳ１では、まず、プログラム選択部１１は、例えば、図５に示す変更前プログラムの選択画面を表示装置２３に表示させて、ユーザによるプログラムの選択を待機する。図５は、変更前プログラムの選択画面の一例を示す図である。図５に示した表示画面では、記憶部１４に保存されているプログラムおよびプログラム作成部１５により編集中のプログラムのうちからプログラムの選択を受け付ける場合の表示画面である変更前プログラムの選択画面の一例を示している。ユーザは、変更前プログラムの選択画面に表示されたプログラムから１つを選択する。変更前プログラムの選択画面には、図５に示したプログラムＡ、プログラムＢ、プログラムＣなどのように、プログラムの識別情報、具体的にはプログラムの名称などが一覧表示される。プログラム選択部１１は、プログラム作成部１５により編集中のプログラムについては、プログラム作成部１５からプログラムの識別情報を取得し、記憶部１４に格納されているプログラムについては、記憶部１４からプログラムの識別情報を取得する。
【００３８】
プログラム選択部１１が、ユーザからの選択を受け付ける方法は、どのような方法でもよく、マウスのクリックにより所望のプログラムの選択を受け付ける方法、キーボードの上下ボタンとエンターキーにより選択を受け付ける方法をはじめとして任意の方法を用いることができる。
【００３９】
次に、プログラム選択部１１は、変更後プログラムを選択し（ステップＳ２）、処理を終了する。具体的には、ステップＳ２では、プログラム選択部１１は、ユーザからの変更後プログラムの選択の入力を受け付け、受け付けた入力情報に基づいて、プログラム作成部１５により編集中のプログラム、または記憶部１４に保存されているプログラムを選択して、選択したプログラムを示す情報を変更後プログラムとして、プログラム差分検出部１２へ通知する。ステップＳ２では、ステップＳ１と同様に、プログラム選択部１１は、選択したプログラムを示す情報とともに、該プログラムの取得元、すなわち記憶部１４であるかプログラム作成部１５であるかを示す情報をプログラム差分検出部１２へ通知する。
【００４０】
具体的には、ステップＳ２では、まず、プログラム選択部１１は、例えば、図６に示す変更後プログラムの選択画面を表示装置２３に表示させて、ユーザによるプログラムの選択を待機する。図６は、変更後プログラムの選択画面の一例を示す図である。図６に示した表示画面では、ステップＳ１で選択された変更前プログラムとともに、変更後プログラムとなり得るプログラムの一覧を示している。変更後プログラムとなり得るプログラムは、変更前プログラムを除いたプログラムである。記憶部１４に保存されているプログラムおよびプログラム作成部１５により編集中のプログラムのうちからプログラムの選択を受け付ける場合の表示画面である変更前プログラムの選択画面の一例を示している。ユーザは、変更後プログラムの選択画面に表示されたプログラムから１つを選択する。変更後プログラムの選択画面には、図６に示したプログラムＡ、プログラムＢ、プログラムＣなどのように、プログラムの識別情報、具体的にはプログラムの名称などが一覧表示される。図６の例では、ステップＳ１において、プログラムＡが変更前プログラムとして選択された例を示しているため、図６に示した画面では、図５に示したプログラムの一覧のうちプログラムＡを除いたものが表示されている。
【００４１】
なお、上述したステップＳ１とステップＳ２の実行の順序は逆であってもよい。以上のステップＳ１およびステップＳ２の後、プログラム差分検出部１２は、記憶部１４またはプログラム作成部１５から変更前プログラムおよび変更後プログラムを取得する。なお、プログラム選択部１１が変更前プログラムおよび変更後プログラムを記憶部１４からまたはプログラム作成部１５から取得してプログラム差分検出部１２へ出力するようにしてもよい。
【００４２】
図５および図６に示した表示画面は、一例であり、具体的な表示画面は図５および図６に示した例に限定されない。例えば、プログラム作成部１５により編集中のプログラムが、変更前プログラムおよび変更後プログラムとして選択される場合に、プログラム作成部１５による編集画面が利用されてもよい。図７は、プログラム作成部１５による編集画面を利用した場合の変更後プログラムの選択画面の一例を示す図である。図７に示した画面は、プログラム作成部１５による編集画面である編集内容表示部分１０１と差分表示ボタン１０４とを含む。編集内容表示部分１０１は、プログラム名表示部分１０２とプログラム表示部分１０３とを含む。編集内容表示部分１０１は、プログラム作成部１５により、シーケンスプログラムの作成および編集のために表示される画面である。この画面に、差分表示ボタン１０４を追加しておき、差分表示ボタン１０４がマウスなどにより押下されることにより、この編集中のプログラムが変更後プログラムとして選択される。この場合、例えば、プログラム作成部１５は、編集前のプログラムの名称を保持しておき、差分表示ボタン１０４が押下された場合、編集前のプログラムを変更前プログラムとしてプログラム差分検出部１２へ出力し、現在編集中のプログラムを変更後プログラムとしてプログラム差分検出部１２へ出力するようにしてもよい。
【００４３】
また、変更前プログラムとしては、既存のシーケンスプログラムが選択され、変更後プログラムとしては、該既存のシーケンスプログラムが再利用されて作成されたシーケンスプログラムであることが想定されるが、変更前プログラムおよび変更後プログラムはこれらに限定されず、任意のシーケンスプログラムを指定可能である。
【００４４】
次に、プログラム差分検出部１２の動作について説明する。プログラム差分検出部１２は、図１に示すように、新規検出部１２１、削除検出部１２２、変更検出部１２３、流用検出部１２４および出力部１２５を備える。
【００４５】
新規検出部１２１は、プログラム選択部１１により指定された変更前プログラムと変更後プログラムとをステップごとに比較し、新規ステップであるか否かを確認し、新規ステップの数を計数する。新規ステップは、変更前プログラムに存在せず変更後プログラムに存在するステップである。
【００４６】
削除検出部１２２は、プログラム選択部１１により指定された変更前プログラムと変更後プログラムとをステップごとに比較し、削除ステップであるか否かを確認し、削除ステップの数を計数する。削除ステップは、変更前プログラムに存在し、変更後プログラムに存在しないステップである。
【００４７】
変更検出部１２３は、プログラム選択部１１により指定された変更前プログラムと変更後プログラムとをステップごとに比較し、変更ステップであるか否かを確認し、変更ステップの数を計数する。変更ステップは、変更前プログラムと変更後プログラムとでロジックの異なるステップである。
【００４８】
流用検出部１２４は、プログラム選択部１１により指定された変更前プログラムと変更後プログラムとをステップごとに比較し、流用ステップであるか否かを確認し、流用ステップの数を計数する。流用ステップは、変更前プログラムと変更後プログラムとでロジックが同一で、処理対象のデータが異なるステップである。
【００４９】
出力部１２５は、変更前プログラムおよび変更後プログラムのそれぞれの全ステップの数を計数し、既存ステップの数を計数する。また、出力部１２５は、変更前プログラムと変更後プログラムとの比較が全ステップについて終了した場合に、区分情報と、ステップ数情報とを含む差分情報を記憶部１４へ格納する。区分情報は、変更前プログラムと変更後プログラムとの各ステップが既存ステップ、新規ステップ、削除ステップ、変更ステップおよび流用ステップのうちいずれであるかを示す情報である。ステップ数情報は、変更前プログラムのステップの数、変更後プログラムのステップの数、新規ステップの数、削除ステップの数、変更ステップの数および流用ステップの数を含む。
【００５０】
図８は、プログラム差分検出部１２の処理手順の一例を示す図である。プログラム差分検出部１２は、変更後プログラムのステップごとに図８に示す処理を実施する。まず、はじめは、変更前プログラムおよび変更後プログラムの両プログラムの１ステップ目を比較対象として、図８に示す処理を実施する。図８に示すように、まず、プログラム差分検出部１２は、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、新規ステップであるか否かを判断する（ステップＳ１１）。
【００５１】
ステップＳ１１では、具体的には、新規検出部１２１が、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、両者が一致していれば、新規ステップではないと判断する。両者が一致していない場合、新規検出部１２１は、変更前プログラムの比較対象のステップと、変更後プログラムの比較対象のステップの次のステップとを比較し、両者が一致していれば、変更後プログラムの比較対象のステップは新規ステップであると判断する。変更前プログラムの比較対象のステップと、変更後プログラムの比較対象のステップの次のステップとを比較し、両者が一致していない場合、新規検出部１２１は、変更前プログラムの比較対象のステップと、変更後プログラムの比較対象のステップの次のステップの次のステップとを比較する。このようにして、変更後プログラムの比較対象のステップを順次後ろにずらしていき、あらかじめ定めた上限数分ずらした比較を行っても両者が一致しない場合、新規検出部１２１は、変更後プログラムの比較対象のステップは新規ステップでないと判断する。あらかじめ定めた上限数分ずらした比較までの間に両者が一致した場合、新規検出部１２１は、変更後プログラムの比較対象のステップは新規ステップであると判断する。
【００５２】
新規ステップであると判断した場合（ステップＳ１１  Ｙｅｓ）、新規検出部１２１は、処理対象ステップが新規ステップと判断されたことを出力部１２５へ通知するとともに、該ステップを新規ステップとしてカウントし（ステップＳ１７）、該ステップに関する処理を終了する。具体的には、新規検出部１２１は、新規ステップの数を計数するためのカウンタＮ1に１を加算する。なお、Ｎ1の初期値は０である。
【００５３】
新規ステップでないと判断した場合（ステップＳ１１  Ｎｏ）、プログラム差分検出部１２は、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、削除ステップであるか否かを判断する（ステップＳ１２）。
【００５４】
ステップＳ１２では、具体的には、削除検出部１２２が、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、両者が一致していれば、削除ステップではないと判断する。両者が一致していない場合、削除検出部１２２は、変更前プログラムの比較対象のステップの次のステップと、変更後プログラムの比較対象のステップとを比較し、両者が一致していれば、変更前プログラムの比較対象のステップは削除ステップであると判断する。変更前プログラムの比較対象のステップの次のステップと、変更後プログラムの比較対象のステップとを比較し、両者が一致していない場合、削除検出部１２２は、変更前プログラムの比較対象のステップの次のステップの次のステップと、変更後プログラムの比較対象のステップとを比較する。このようにして、変更前プログラムの比較対象のステップを順次後ろにずらしていき、あらかじめ定めた上限数分ずらした比較を行っても両者が一致しない場合、削除検出部１２２は、変更後プログラムの比較対象のステップは削除ステップでないと判断する。あらかじめ定めた上限数分ずらした比較までの間に両者が一致した場合、削除検出部１２２は、変更前プログラムの比較対象のステップは削除ステップであると判断する。
【００５５】
削除ステップであると判断した場合（ステップＳ１２  Ｙｅｓ）、削除検出部１２２は、処理対象ステップが削除ステップと判断されたことを出力部１２５へ通知するとともに、該ステップを削除ステップとしてカウントし（ステップＳ１８）、該ステップに関する処理を終了する。具体的には、削除検出部１２２は、削除ステップの数を計数するためのカウンタＮ2に１を加算する。なお、Ｎ2の初期値は０である。
【００５６】
削除ステップでないと判断した場合（ステップＳ１２  Ｎｏ）、プログラム差分検出部１２は、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、変更ステップであるか否かを判断する（ステップＳ１３）。
【００５７】
ステップＳ１３では、具体的には、変更検出部１２３が、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、両者が一致していれば、変更ステップではないと判断する。両者が一致していない場合、変更検出部１２３は、変更前プログラムの比較対象のステップと、変更後プログラムの比較対象のステップとを比較し、両者でロジックが異なるかを判断する。この際、変更検出部１２３は、処理対象ステップに対応する個々の命令、または複数の命令の集合に対して、例えば最長共通部分列を検出するアルゴリズムを適用することで、ロジックの変更を検出することができる。具体的には、例えば、変更前プログラムおよび変更後プログラムに対して最長共通部分列を検出するアルゴリズムを適用して共通する部分と異なる部分とを判別し、異なる部分が、論理式などロジックを表す記述であった場合には変更ステップであると判断する。すなわち、変更検出部１２３は、最長共通部分列を検出するアルゴリズムの適用により異なる部分と判別された部分が、あらかじめ定められた、ロジックを表す記述の条件と一致するか否かを判断する。ロジックを表す記述の条件とは、例えば、論理演算子を含んでいるか等の条件である。ロジックを表す記述の条件は変更検出部１２３にあらかじめ設定されていてもよいし、記憶部１４に格納されていてもよい。後者の場合は、変更検出部１２３は記憶部１４に格納された、ロジックを表す記述の条件を参照して、ロジックを示す部分であるか否かを判定する。なお、変更ステップを検出するためのアルゴリズムは、最長共通部分列検出アルゴリズムに限定されない。両者でロジックが異なる場合、変更検出部１２３は、変更後プログラムの比較対象のステップは変更ステップであると判断する。また、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップとが異なり、かつ両者でロジックが同一の場合には、変更検出部１２３は、変更ステップではないと判断する。
【００５８】
変更ステップであると判断した場合（ステップＳ１３  Ｙｅｓ）、変更検出部１２３は、処理対象ステップが変更ステップと判断されたことを出力部１２５へ通知するとともに、該ステップを変更ステップとしてカウントし（ステップＳ１９）、該ステップに関する処理を終了する。具体的には、変更検出部１２３は、変更ステップの数を計数するためのカウンタＮ3に１を加算する。なお、Ｎ3の初期値は０である。
【００５９】
変更ステップでないと判断した場合（ステップＳ１３  Ｎｏ）、プログラム差分検出部１２は、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、流用ステップであるか否かを判断する（ステップＳ１４）。
【００６０】
ステップＳ１４では、具体的には、流用検出部１２４が、変更前すなわち変更前プログラムの比較対象のステップと変更後すなわち変更後プログラムの比較対象のステップと、を比較し、両者が一致していれば、流用ステップではないと判断する。両者が一致していない場合、流用検出部１２４は、変更後プログラムの比較対象のステップは流用ステップであると判断する。
【００６１】
流用ステップであると判断した場合（ステップＳ１４  Ｙｅｓ）、流用検出部１２４は、処理対象ステップが流用ステップと判断されたことを出力部１２５へ通知するとともに、該ステップを流用ステップとしてカウントし（ステップＳ１６）、該ステップに関する処理を終了する。具体的には、流用検出部１２４は、流用ステップの数を計数するためのカウンタＮ4に１を加算する。なお、Ｎ4の初期値は０である。
【００６２】
流用ステップでないと判断した場合（ステップＳ１４  Ｎｏ）、プログラム差分検出部１２は、変更後プログラムの比較対象のステップは、既存ステップであると判断し、該ステップを既存ステップとしてカウントし（ステップＳ１５）、該ステップに関する処理を終了する。具体的には、出力部１２５は、既存ステップの数を計数するためのカウンタＮ5に１を加算する。なお、Ｎ5の初期値は０である。
【００６３】
以上の処理により、処理対象のステップが既存ステップ、変更ステップまたは流用ステップと判定された場合は、変更後プログラムの比較対象のステップを次のステップに変更するとともに、変更前プログラムの比較対象のステップを次のステップに変更して、再度、図８に示す処理を実施する。処理対象のステップが新規ステップと判定された場合は、変更後プログラムの比較対象のステップを次のステップに変更するとともに、変更前プログラムの比較対象のステップはそのままとして、再度、図８に示す処理を実施する。処理対象のステップが削除ステップと判定された場合は、変更後プログラムの比較対象のステップをそのままとし、変更前プログラムの比較対象のステップを次にステップに変更して、再度、図８に示す処理を実施する。以降、同様に、変更後プログラムおよび変更前プログラムにおいて、処理対象とされていないステップがなくなるまで、比較対象のステップを変更して図８に示す処理を実施する。処理対象とするステップは、出力部１２５が、新規検出部１２１、削除検出部１２２、変更検出部１２３および流用検出部１２４へ指示する。出力部１２５は、変更前プログラムの比較対象のステップのステップ番号と、変更後プログラムの比較対象のステップのステップ番号とを管理する。
【００６４】
なお、図８に示した処理は一例であり、新規ステップ、変更ステップ、流用ステップおよび既存ステップの判別方法は上記の例に限定されない。
【００６５】
出力部１２５は、上述したように、変更前プログラムと変更後プログラムとの比較が全ステップについて終了した場合に、区分情報と、ステップ数情報とを含む差分情報を記憶部１４へ格納する。図９は、差分情報の構成例を示す図である。図９に示した例では、差分情報は、区分情報とステップ数情報とで構成される。区分情報には、変更前プログラムおよび変更後プログラムのそれぞれについて、図８に示した処理により決定された各ステップの区分と各ステップの内容とが格納される。すなわち、区分情報は、１つ以上の命令で構成されるステップごとの、各ステップが流用部であるか否かを示す情報を含む。
【００６６】
また、ステップ数情報は、変更前プログラムおよび変更後プログラムのそれぞれの総ステップ数、新規ステップ、削除ステップ、変更ステップ、流用ステップおよび既存ステップのそれぞれのステップの数を含む。図９に示したステップ数情報のうち、総ステップ数は、変更前プログラムおよび変更後プログラムのそれぞれの、実際に含まれるステップの総数を示している。図９に示した例では、変更前プログラムの総ステップ数は、ステップ数情報の総ステップ数の左側の欄に示すように１３である。図９に示したステップ数情報のうち新規ステップ、すなわち新規ステップのステップ数は、変更後プログラムにおいて変更前プログラムに対して新規に追加された新規ステップの数を示す。図９に示した例では、新規ステップの数は２である。図９に示したステップ数情報のうち削除ステップ、すなわち削除ステップの数は、変更後プログラムにおいて変更前プログラムから削除されたステップの数を示し、図９に示した例では、削除ステップの数は１である。変更後プログラムの総ステップ数は、変更前のプログラムの総ステップ数に新規ステップの数を加算し削除ステップの数を減算したものであるから、図９に示した例では、変更後プログラムの総ステップ数は、１３＋２−１＝１４である。既存ステップは変更前プログラムと変更後プログラムとで同一のステップである。流用ステップは、変更後のプログラムのうち変更前プログラムのステップが流用されたステップである。したがって、既存ステップおよび流用ステップは、変更前プログラムおよび変更後プログラムとでそれぞれ同一の数となる。以上のことから、変更前プログラムの総ステップ数は、削除ステップ、変更ステップ、流用ステップおよび既存ステップの合計の数となり、図９に示した例では、１＋１＋５＋６＝１３である。変更前プログラムの総ステップ数は、削除ステップ、新規ステップ、流用ステップおよび既存ステップの合計の数となり、図９に示した例では、２＋１＋５＋６＝１４である。
【００６７】
図１０は、差分情報の別の構成例を示す図である。図１０に示すように、差分情報にプログラムの内容自体は含めずに、各プログラムにおけるステップ番号を含めるようにしてもよい。区分情報は、図８に示した処理により決定された各ステップの区分が、変更前プログラムおよび変更後プログラムにおけるそれぞれのステップ番号とともに示されている。区分情報における括弧内の数値は、変更前プログラムおよび変更後プログラムにおけるそれぞれのステップ番号を示す。図１０では、変更前プログラムおよび変更後プログラムが図９に示した例と同一である場合の差分情報の別の一例を示している。
【００６８】
プログラム差分表示部１３は、記憶部１４に格納された差分情報に基づいて、差分表示画面を表示する。具体的には、プログラム差分表示部１３は、差分表示画面を表示装置２３に表示させる。なお、図１０に示す差分情報を用いる場合、プログラム差分表示部１３は、差分表示画面が表示する場合に、記憶部１４から、差分情報、変更前プログラムおよび変更後プログラムを読み出して、差分情報、変更前プログラムおよび変更後プログラムに基づいて、差分表示画面を表示する。
【００６９】
図１１は、差分表示画面の一例を示す図である。図１１に示した差分表示画面は、変更前プログラムおよび変更後プログラムのそれぞれの総ステップ数が表示される第１のステップ数表示部２０１、新規ステップの数が表示される第２のステップ数表示部２０２、および削除ステップの数が表示される第３のステップ数表示部２０３を含む。さらに、図１１に示した差分表示画面は、変更ステップの数が表示される第４のステップ数表示部２０４、流用ステップの数が表示される第５のステップ数表示部２０５および既存ステップの数が表示される第６のステップ数表示部２０６を含む。さらに、図１１に示した差分表示画面は、変更前プログラムに関する情報が表示される第１の領域である変更前プログラム表示領域２０７、および変更後プログラムに関する情報が表示される第２の領域である変更後プログラム表示領域２０８を含む。
【００７０】
また、図１１に示すように、変更前プログラム表示領域２０７は、プログラム名表示領域２０９、ステップ番号表示領域２１０および差分表示領域２１１を含む。プログラム名表示領域２０９には、変更前プログラムの名称が表示され、ステップ番号表示領域２１０には、変更前プログラムのステップ番号が表示され、差分表示領域２１１には変更前プログラムの内容が表示される。変更後プログラム表示領域２０８は、プログラム名表示領域２１２、ステップ番号表示領域２１３および差分表示領域２１４を含む。プログラム名表示領域２１２には、変更後プログラムの名称が表示され、ステップ番号表示領域２１３には、変更後プログラムのステップ番号が表示され、差分表示領域２１４には変更後プログラムの内容が表示される。
【００７１】
差分表示領域２１１および差分表示領域２１４では、それぞれ変更前プログラムおよび変更前プログラムにおける各ステップが、各ステップの区分、すなわち、各ステップが既存ステップ、新規ステップ、変更ステップおよび流用ステップのいずれであるかが区別可能なように表示される。例えば、既存ステップ、新規ステップ、変更ステップおよび流用ステップのいずれであるかの区分ごとに異なる色で各ステップに対応する部分がハッチングされる。具体的には、例えば、新規ステップを赤色で、削除ステップを青色で、変更ステップを緑色で、流用ステップを紫色で、既存ステップを白色でそれぞれハッチングする。または、区分ごとに異なる色で各ステップが表示されてもよい。または、区分ごとに異なる記号を付す等により各ステップを表示してもよい。具体的な表示方法は上述した例に限定されず、各ステップの種別が区別可能なような表示であれば、任意の方法を用いることができる。
【００７２】
図１１では、各ステップが異なる色でハッチングされる例を示しているが、紙面が白黒表示であるため、ハッチング種別により各ステップを区別して示している。図１１に示した新規ステップ部３０１は、新規ステップに対応するハッチングがなされたステップを示している。図１１に示した削除ステップ部３０２は、削除ステップに対応するハッチングがなされたステップを示している。図１１に示した変更ステップ部３０３，３０４は、変更ステップに対応するハッチングがなされたステップを示している。図１１に示した流用ステップ表示部３０５〜３１０は、流用ステップに対応するハッチングがなされたステップを示している。なお、図１１では、既存ステップについては、透明ハッチングがなされる例を示している。
【００７３】
以上のように、プログラム差分表示部１３は、第２のプログラムすなわち変更後プログラムを構成する各要素が流用部であるか否かを区別して第２のプログラムを表示する表示部である。プログラム差分表示部１３は、例えば、色または記号により流用部であるか否かを区別して表示する。また、プログラム差分表示部１３は、流用部のステップの数を表示する。また、プログラム差分表示部１３は、第２のプログラムを構成する各要素が流用部であるか否かを区別して第２のプログラムが表示される第１の領域と、第１のプログラムが表示される第２の領域とを含む表示画面を表示する。
【００７４】
また、図１１に示した例では、第１のステップ数表示部２０１、第２のステップ数表示部２０２、第３のステップ数表示部２０３、第４のステップ数表示部２０４、第５のステップ数表示部２０５および第６のステップ数表示部２０６は、差分表示領域２１１および差分表示領域２１４におけるそれぞれが対応するステップと同一のハッチングがなされる例を示している。第１のステップ数表示部２０１、第２のステップ数表示部２０２、第３のステップ数表示部２０３、第４のステップ数表示部２０４、第５のステップ数表示部２０５および第６のステップ数表示部２０６のハッチングを、これに限定されないが、図１１のように、差分表示領域２１１および差分表示領域２１４におけるそれぞれが対応するステップと同一のハッチングとする場合、ユーザが各区分のステップのステップ数と具体的なステップの内容との対応を容易に把握することができる。
【００７５】
図１１に示した画面では、差分表示領域２１１が上段に示され、差分表示領域２１４が下段に示されており、差分表示領域２１１の上にステップの種別ごとのステップ数が表示されているが、これらの配置は図１１の配置に限定されない。例えば、差分表示領域２１１を下段に、差分表示領域２１４を上段に表示してもよいし、差分表示領域２１１および差分表示領域２１４を左右に並べて表示してもよい。また、図１１に示した例では、差分表示領域２１１および差分表示領域２１４の各ステップの種別を判別するためのハッチングを示しているが、両方の領域で各ステップの種別が区別されていなくてもよく、少なくとも変更後プログラムが表示される差分表示領域２１４において、各ステップの種別が判別可能なような表示がなされていればよい。さらには、変更前プログラムが表示される差分表示領域２１１自体を表示しなくてもよい。また、差分表示領域２１１および差分表示領域２１４と、ステップの種別ごとのステップ数とを別の画面に表示してもよい。
【００７６】
以上のように、本実施の形態のプログラム作成装置１は、変更前プログラムと変更後プログラムを比較し、比較により得られた差分が、それぞれ新規、削除、変更、流用のいずれであるかを判別し、判別結果を差分情報として記憶部１４に記憶するようにした。このように、本実施の形態のプログラム作成装置１は、差分が流用であるか否か、すなわち、ロジックは変更されずにデータだけが変更される箇所であるか否かを判別することができる。したがって、変更前プログラムが再利用されたプログラムであり、変更後プログラムが再利用により作成されたシーケンスプログラムである場合、再利用により作成されたシーケンスプログラムの変更箇所がロジックの変更を伴わない変更であるか否かを判別することができる。したがって、ロジックは変更されずにデータだけが変更される箇所に対して、ロジックが変更された場合と同等の試験が実施されることを防ぐことができ、試験工数を抑制することができる。また、差分情報を表示することにより、ユーザが、ロジックは変更されずにデータだけが変更される箇所を容易に把握できるという効果を奏することができる。
【００７７】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００７８】
１  プログラム作成装置、１１  プログラム選択部、１２  プログラム差分検出部、１３  プログラム差分表示部、１４  記憶部、１５  プログラム作成部、２０  計算機システム、２１  プロセッサ、２２  メモリ、２３  表示装置、２４  入力装置、２５  通信部。
【図１】
2018123039.tif 000003
【図２】
2018123039.tif 000004
【図３】
2018123039.tif 000005
【図４】
2018123039.tif 000006
【図５】
2018123039.tif 000007
【図６】
2018123039.tif 000008
【図７】
2018123039.tif 000009
【図８】
2018123039.tif 000010
【図９】
2018123039.tif 000011
【図１０】
2018123039.tif 000012
【図１１】
2018123039.tif 000013
【手続補正書】
【提出日】平成30年2月15日(2018.2.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、前記流用箇所を示す情報である区分情報を求める差分演算部と、
前記区分情報を記憶する記憶部と、
を備えることを特徴とするプログラム比較装置。
【請求項２】
前記第１のプログラムおよび前記第２のプログラムはラダープログラムであることを特徴とする請求項１に記載のプログラム比較装置。
【請求項３】
前記流用箇所は、前記第１のプログラムおよび前記第２のプログラムとでパラメータが異なる箇所を含むことを特徴とする請求項１または２に記載のプログラム比較装置。
【請求項４】
前記区分情報は、１つ以上の命令で構成されるステップごとの、各ステップが前記流用箇所であるか否かを示す情報を含むことを特徴とする請求項３に記載のプログラム比較装置。
【請求項５】
前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムを表示する表示部、
を備えることを特徴とする請求項１から３のいずれか１つに記載のプログラム比較装置。
【請求項６】
前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムを表示する表示部、
を備えることを特徴とする請求項４に記載のプログラム比較装置。
【請求項７】
前記表示部は、前記流用箇所のステップの数を表示することを特徴とする請求項６に記載のプログラム比較装置。
【請求項８】
前記表示部は、色または記号により前記流用箇所であるか否かを区別して表示することを特徴とする請求項６または７に記載のプログラム比較装置。
【請求項９】
前記表示部は、前記第２のプログラムを構成する各要素が前記流用箇所であるか否かを区別して前記第２のプログラムが表示される第１の領域と、前記第１のプログラムが表示される第２の領域とを含む表示画面を表示することを特徴とする請求項５から８のいずれか１つに記載のプログラム比較装置。
【請求項１０】
前記差分演算部は、前記差分のうち前記流用箇所以外を、さらに、前記第１のプログラムに存在せず前記第２のプログラムに存在する新規部、前記第１のプログラムと前記第２のプログラムとでロジックの異なる変更部、および前記第２のプログラムに存在せず前記第１のプログラムに存在する削除部に分類することを特徴とする請求項１から９のいずれか１つに記載のプログラム比較装置。
【請求項１１】
プログラム比較装置が、第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、前記流用箇所を示す情報である区分情報を求める第１のステップと、
前記プログラム比較装置が、前記区分情報を記憶部へ格納する第２のステップと、
を含むことを特徴とするプログラム差分照合方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム比較装置は、第１のプログラムと第２のプログラムとの差分を検出し、差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、流用箇所を示す情報である区分情報を求める差分演算部と、区分情報を記憶する記憶部と、を備える。
【手続補正書】
【提出日】平成30年7月11日(2018.7.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、前記流用箇所を示す情報である区分情報を求める差分演算部と、
前記区分情報を記憶する記憶部と、
前記第１のプログラムおよび前記第２のプログラムを構成するステップについてステップ番号ごとに前記区分情報を前記ステップ番号とともに表示する表示部と、
を備えることを特徴とするプログラム比較装置。
【請求項２】
前記第１のプログラムおよび前記第２のプログラムはラダープログラムであることを特徴とする請求項１に記載のプログラム比較装置。
【請求項３】
前記流用箇所は、前記第１のプログラムおよび前記第２のプログラムとでパラメータが異なる箇所を含むことを特徴とする請求項１または２に記載のプログラム比較装置。
【請求項４】
前記区分情報は、１つ以上の命令で構成されるステップごとの、各ステップが前記流用箇所であるか否かを示す情報を含むことを特徴とする請求項３に記載のプログラム比較装置。
【請求項５】
前記表示部は、前記流用箇所のステップの数を表示することを特徴とする請求項１から４のいずれか１つに記載のプログラム比較装置。
【請求項６】
前記差分演算部は、前記差分のうち前記流用箇所以外を、さらに、前記第１のプログラムに存在せず前記第２のプログラムに存在する新規部、前記第１のプログラムと前記第２のプログラムとでロジックの異なる変更部、および前記第２のプログラムに存在せず前記第１のプログラムに存在する削除部に分類することを特徴とする請求項１から５のいずれか１つに記載のプログラム比較装置。
【請求項７】
プログラム比較装置が、第１のプログラムと第２のプログラムとの差分を検出し、前記差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、前記流用箇所を示す情報である区分情報を求める第１のステップと、
前記プログラム比較装置が、前記区分情報を記憶部へ格納する第２のステップと、
前記第１のプログラムおよび前記第２のプログラムを構成するステップについてステップ番号ごとに前記区分情報を前記ステップ番号とともに表示する第３のステップと、
を含むことを特徴とするプログラム差分照合方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるプログラム比較装置は、第１のプログラムと第２のプログラムとの差分を検出し、差分のうち前記第１のプログラムと前記第２のプログラムとで演算の内容が同一でデータが異なる箇所である流用箇所を求め、流用箇所を示す情報である区分情報を求める差分演算部と、区分情報を記憶する記憶部と、第１のプログラムおよび第２のプログラムを構成するステップについてステップ番号ごとに区分情報をステップ番号とともに表示する表示部と、を備える。
【国際調査報告】
2018123039.tif 000014
2018123039.tif 000015
2018123039.tif 000016