(57)【要約】【課題】  ソフトウェア開発に関し、特に基本制御プログラムを利用して製品個別の特性を付与した個別制御プログラムを自動生成する際に修正誤りを防止した個別プログラム生成装置を提供する。【解決手段】  ベースプログラムから個別プログラムを生成する個別プログラム生成装置２０は、ベースプログラムと個別プログラムとの間の第１の変更差分を抽出する手段２４と、前記ベースプログラムと新ベースプログラムとの間の第２の変更差分を抽出する手段２５と、前記ベースプログラムに前記第２の変更差分を加えて擬似新ベースプログラムを作成する手段２６と、前記擬似新ベースプログラムに前記第１の変更差分を加えて新個別プログラムを生成する手段２３と、を有する。【選択図】      図３
2007047971.tif 000002
【特許請求の範囲】
【請求項１】
ベースプログラムから個別プログラムを生成する個別プログラム生成装置であって、
ベースプログラムと個別プログラムとの間の第１の変更差分を抽出する手段と、
前記ベースプログラムと新ベースプログラムとの間の第２の変更差分を抽出する手段と、
前記ベースプログラムに前記第２の変更差分を加えて擬似新ベースプログラムを作成する手段と、
前記擬似新ベースプログラムに前記第１の変更差分を加えて新個別プログラムを生成する手段と、
を有することを特徴とする個別プログラム生成装置。
【請求項２】
さらに、前記変更差分を管理する管理手段を有し、
前記管理手段は、前記擬似新ベースプログラムを前記ベースプログラムと前記第２の変更差分によって管理することを特徴とする請求項１記載の個別プログラム生成装置。
【請求項３】
前記管理手段は、さらに前記新個別プログラムを前記ベースプログラムと前記第１及び２の変更差分によって管理することを特徴とする請求項１記載の個別プログラム生成装置。
【請求項４】
さらに、出力表示手段を有し、
前記出力表示手段は、前記変更差分をその内容に基づいて表示色を変えて表示することを特徴とする請求項１〜３のいずれか一つに記載の個別プログラム生成装置。
【請求項５】
前記出力表示手段は、さらに前記第１及び第２の変更差分の相互の対応関係を視認可能な手段で表示することを特徴とする請求項１〜３のいずれか一つに記載の個別プログラム生成装置。
【請求項６】
ベースプログラムから個別プログラムを生成する個別プログラム生成方法であって、
ベースプログラムと個別プログラムとの間の第１の変更差分を抽出するステップと、
前記ベースプログラムと新ベースプログラムとの間の第２の変更差分を抽出するステップと、
前記ベースプログラムに前記第２の変更差分を加えて擬似新ベースプログラムを作成するステップと、
前記擬似新ベースプログラムに前記第１の変更差分を加えて新個別プログラムを生成するステップと、
を有することを特徴とする個別プログラム生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェア開発に関し、特に基本制御プログラムを利用して、それに製品個別の特性を付与した個別制御プログラムを生成する個別プログラム生成装置及び方法に関するものである。
【背景技術】
【０００２】
従来から、組込みソフトウェア産業等においては、ソフトウェア開発のベースとなる基本制御プログラム（以降、「ベースプログラム」又は「標準部品」とよぶ）を利用して、それに製品個別の制御処理を付与した個別制御プログラム（以降、「個別プログラム」又は「個別部品」とよぶ）を作成している。
【０００３】
ベースプログラム作成者は、制御の基本となる処理プログラムを作成・管理し、それを製品開発者へ提供する。製品開発者は、ベースプログラム作成者から提供されるベースプログラム群から製品に必要なベースプログラムを適宜選択し、その選択したベースプログラムに該当製品の個別の特徴を付与することで個別プログラムを作成する。そして、それを実際の製品で使用する個別部品として使用する。
【０００４】
ところで、基本となるベースプログラムに何らかの変更が加えられると、変更前のベースプログラムを利用した個別プログラムを改変する必要が生じる。従来から、変更元のプログラムとそれを利用する変更先のプログラムとの２者間の比較によってプログラム変更箇所を自動的に検出するツールが存在しており、製品開発者がその変更箇所を参照しながら手作業で既存の個別プログラムに修正を加えていた（特許文献１参照）。
【０００５】
図１には、従来におけるプログラム変更箇所の自動検出ツールの一例を示している。
自動検出ツールは、変更前のベースプログラムｂ０とそれを利用して作成した個別プログラムｍ０とを比較して、その間の差分情報からなる差分情報リスト１１を作成する。また、変更前のベースプログラムｂ０と変更後の新ベースプログラムｂ１とを比較して、その間の差分情報からなる差分情報リスト１２を作成する。
【０００６】
製品開発者（個別プログラムのプログラマー）は、前記差分情報リスト１１及び差分情報リスト１２のプログラム変更箇所を参照しながら、新ベースプログラムｂ１を参照して新個別プログラムｍ１を自ら作成していた。また、該自動検出ツールにはプログラム自動生成機能を有しているものがあり、現状の個別プログラムｍ０と変更後の新ベースプログラムｂ１とを比較してその間の差分を求め、その差分内容を変更後の新ベースプログラムｂ１に加えることで新個別プログラムｍ１を自動生成することも行われていた（後述の図２参照）。
【０００７】
【特許文献１】特開平４−１７８８３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来においてはベースプログラムｂ０と新ベースプログラムｂ１との比較によって得られた差分情報リスト１２と、ベースプログラムｂ０と個別プログラムｍ０との比較によって得られた差分情報リスト１１との間の変更内容を、製品開発者が個別に把握・理解して新ベースプログラムｂ１に手作業で変更を加える必要が生じるため、人為的な修正漏れや、修正規模に応じた確認工数が必要になる等の問題があった。
【０００９】
一方、自動検出ツールのプログラム自動生成機能を用いる場合は、以下に示すような問題があった。図２は、従来のプログラム自動生成機能１３を使って新ベースプログラムｂ１から新個別プログラムｍ１を自動生成する一例を示している。
【００１０】
本例において、個別プログラムｍ０は、ベースプログラムｂ０に個別制御用の追加設定値「ｂ００４」（点線枠で示す）を付加したものである。また、新ベースプログラムｂ１は、ベースプログラムｂ０に主制御用の追加設定値「ｂ００４」（実線枠で示す）を付加したものである。
【００１１】
プログラム自動生成機能１３は、最終生成物である個別プログラムｍ０と新ベースプログラムｂ１とを比較して互いのプログラム構成の差分を求め、その差分を新ベースプログラムｂ１に付加することで新個別プログラムｍ１を生成していた。ここでは、そのような差分が検出されないことから、新ベースプログラムｂ１をそのまま用いた新個別プログラムｍ１を生成する。
【００１２】
プログラム自動生成機能１３は、プログラムを構成する個々のプログラム機能の生成過程や具体的な処理内容を判別しないことから、プログラム機能の単純な有無を比較することによって新個別プログラムｍ１を生成していた。その結果、本例の新個別プログラムｍ１は「主制御用の追加設定値ｂ００４（実線枠で囲む）」だけを含み、「個別制御用の追加設定値ｂ００４（点線枠で囲む）」はプログラムの生成過程で消失していいた。
【００１３】
上記の例のように、ベースプログラム改修後と個別プログラム作成後の各プログラム構成要素の単純な比較が意味をなさず、作成される新個別プログラムｍ１に個別プログラムｍ０の変更内容が反映されないような場合、機械作業による誤修正やその修正規模に応じた確認工数が発生するという問題があった。
【００１４】
そこで本発明の目的は、上記の問題点に鑑み、ベースプログラムに固有の特徴を付与して製品用の個別プログラムを生成する装置において、ベースプログラムの変更に伴う個別プログラムの誤修正を防止して、安全に変更後のベースプログラムに対応した新個別プログラムを生成できる個別プログラム生成装置及びその方法を提供することにある。
【００１５】
本発明によれば、ベースプログラムから個別プログラムを生成する個別プログラム生成装置であって、ベースプログラムと個別プログラムとの間の第１の変更差分を抽出する手段と、前記ベースプログラムと新ベースプログラムとの間の第２の変更差分を抽出する手段と、前記ベースプログラムに前記第２の変更差分を加えて擬似新ベースプログラムを作成する手段と、前記擬似新ベースプログラムに前記第１の変更差分を加えて新個別プログラムを生成する手段と、を有する個別プログラム生成装置が提供される。
【００１６】
前記個別プログラム生成装置は、さらに前記変更差分を管理する管理手段を有し、前記管理手段は前記擬似新ベースプログラムを前記ベースプログラムと前記第２の変更差分によって管理する。前記管理手段は、さらに前記新個別プログラムを前記ベースプログラムと前記第１及び２の変更差分によって管理する。
【００１７】
前記個別プログラム生成装置は、さらに出力表示手段を有し、前記出力表示手段は前記変更差分をその内容に基づいて表示色を変えて表示する。また、前記出力表示手段は前記第１及び第２の変更差分の相互の対応関係を視認可能な手段で表示する。
【００１８】
また、本発明によれば、ベースプログラムから個別プログラムを生成する個別プログラム生成方法であって、ベースプログラムと個別プログラムとの間の第１の変更差分を抽出するステップと、前記ベースプログラムと新ベースプログラムとの間の第２の変更差分を抽出するステップと、前記ベースプログラムに前記第２の変更差分を加えて擬似新ベースプログラムを作成するステップと、前記擬似新ベースプログラムに前記第１の変更差分を加えて新個別プログラムを生成するステップと、を有する個別プログラム生成方法が提供される。
【発明の効果】
【００１９】
本発明によれば、ベースプログラムに対する新ベースプログラム及び製品個別プログラムの各差分情報を抽出し、前記ベースプログラムを基準にその差分情報を使って新個別プログラムを自動生成するため、変更情報が確実に承継され、修正誤りのない安全性で効率的な個別プログラムの生成が可能となる。また、プログラム変更箇所を着色等によって強調表示することで変更箇所の特定も容易となる。
【発明を実施するための最良の形態】
【００２０】
図３は、本発明による個別プログラム生成装置の基本構成を示したものである。
図３において、ベースプログラムｂ０は製品のバリエーションに共通する処理を集約したプログラムである。個別プログラムｍ０は製品に固有の処理を前記ベースプログラムｂ０に付与したプログラムである。新ベースプログラムｂ１は、ベースプログラムｂ０に各種変更を加えた更新後のベースプログラムである。
【００２１】
擬似新ベースプログラムｂ２は、ベースプログラムｂ０を基準とし、それに新ベースプログラムｂ１との変更情報（差分情報）を加えて得られた新ベースプログラムｂ１と等価なベースプログラム（新ベースプログラムｂ１を擬似するプログラム自動生成処理用の新ベースプログラムｂ２）である。擬似新ベースプログラムｂ２は、新個別プログラムｍ１を自動生成する際に新ベースプログラムｂ１に代えて使用される。新個別プログラムｍ１は、新ベースプログラムｂ１に製品固有の処理を付与したプログラムである。
【００２２】
個別プログラム生成装置２０において、差分情報抽出部２４は、ベースプログラムｂ０を基準とした個別プログラムｍ０との差分情報ｄ１（＝ｍ０−ｂ０）、すなわち差分内容、差分位置、及び差分区分（追加・変更・削除）等、を抽出して管理する。また、前記差分情報抽出部２４は、差分情報ｄ１やその差分ステップ前後の個別プログラムの構文情報によって変更箇所を制御単位で管理する。
【００２３】
もう一つの差分情報抽出部２５は、ベースプログラムｂ０と新ベースプログラムｂ１との間の差分情報ｄ２（＝ｂ１−ｂ０）、すなわち差分内容、差分位置、及び差分区分（追加・変更・削除）等、を抽出して管理する。前記差分情報抽出部２５は、また差分情報ｄ２やその差分ステップ前後の個別プログラムの構文情報によって変更箇所を制御単位で管理する。
【００２４】
個別プログラム差分情報ＤＢ２１は、オペレータ等が外部から入力するベースプログラムｂ０と個別プログラムｍ０の差分情報βを、外部データベースで管理する。ベースプログラム差分情報ＤＢ２２は、オペレータ等が外部入力するベースプログラムｂ０と新ベースプログラムｂ１の差分情報αを外部データベースで管理する。
【００２５】
ベース更新情報管理部２６は、差分情報抽出部２５で抽出した差分情報ｄ２を保持し、それとベースプログラムｂ０を加えることで擬似新ベースプログラムｂ２（＝ｂ０＋ｄ２）を作成する。ベース更新情報管理部２６は、必要ならベースプログラム差分情報ＤＢ２２から与えられる差分情報αの差分内容、差分位置、及び差分区分を、前記擬似新ベースプログラムｂ２に含めることができる。この場合、差分情報αを含む擬似新ベースプログラムｂ２（＝ｂ０＋ｄ２＋α）が作成される。
【００２６】
プログラム生成部２３は、擬似新ベースプログラムｂ２（＝ｂ０＋ｄ２）の情報に差分情報抽出部２４からの差分情報ｄ１を加えることで新個別プログラムｍ１（＝（ｂ０＋ｄ２）＋ｄ１）を生成する。本発明はベースプログラムｂ０を基準とし、それに差分情報ｄ１及びｄ２を加える構成をとるため、新ベースプログラムｂ１（＝ｂ０＋ｄ２）との整合性を維持したまま新個別プログラムｍ１（＝ｂ０＋ｄ２＋ｄ１）を自動生成することができる。その結果、図２の従来例で示したように、生成後のプログラム要素の単純な比較によって生じ得る誤修正が防止される。
【００２７】
プログラム生成部２３は、必要ならベースプログラム差分情報ＤＢ２１から与えられる差分情報βを自動生成する新個別プログラムｍ１に含めることができる。この場合、差分情報βをさらに含む新個別プログラムｍ１（＝ｂ０＋ｄ２＋ｄ１＋β）が生成される。
【００２８】
図４は、図３の個別プログラム生成装置の基本的な処理手順の例を示したものである。
ここでは、先ず、差分情報抽出部２４が、個別プログラムｍ０とベースプログラムｂ０の差分ｄ１（＝ｍ０−ｂ０）を抽出する（Ｓ１０１）。同様に、差分情報抽出部２５が、新ベースプログラムｂ１とベースプログラムｂ０の差分情報ｄ２（＝ｂ１−ｂ０）を抽出する（Ｓ１０２）。次に、ベース更新情報管理部２６が、ベースプログラムｂ０に差分情報ｄ２を加えて新ベースプログラムｂ１と等価な擬似新ベースプログラムｂ２（＝ｂ０＋ｄ２）を作成する（Ｓ１０３）。最後に、プログラム生成部２３が、擬似新ベースプログラムｂ２に差分情報ｄ１の変更情報を加えて新個別プログラムｍ１（＝ｂ０＋ｄ１＋ｄ２）を作成する（Ｓ１０４）。
【００２９】
図５は、図３及び４の入出力データの一例を示したものである。
図５において、ＩＮ１は処理の基本となるベースプログラムｂ０である。ＩＮ２は、ベースプログラムに製品固有の追加、編集を実施した個別プログラムｍ０である。本例では、ベースプログラムｂ０のｂ１０２がＣ１０２に「個別変更」の差分区分を付して変更されており、また「個別追加」の差分区分を付したＡ１０４が新たに追加されている。このため、本例における差分情報ｄ１は（個別変更Ｃ１０２−ｂ１０２）と個別追加Ａ１０４とからなる。
【００３０】
一方、ＩＮ３は、処理の基本となるベースプログラムｂ０に変更を実施した新ベースプログラムｂ１である。本例では、ベースプログラムｂ０のｂ１０３が「ベース変更」の差分区分を付したＣ２０３に変更されている。このため、本例における差分情報ｄ２は（ベース変更Ｃ２０３−ｂ１０３）である。従って、ｂ２＝ｂ０＋ｄ２＝（ｂ１０１＋ｂ１０２＋ｂ１０３）＋（ベース変更Ｃ２０３−ｂ１０３）＝ｂ１０１＋ｂ１０２＋ベース変更Ｃ２０３となる。
【００３１】
同様に、新個別プログラムｍ１＝ｂ２＋ｄ１＝（ｂ１０１＋ｂ１０２＋ベース変更Ｃ２０３）＋（（個別変更Ｃ１０２−ｂ１０２）＋個別追加Ａ１０４）＝ｂ１０１＋個別変更Ｃ１０２＋ベース変更Ｃ２０３＋個別追加Ａ１０４となる。しかしながら、ｂ０→ｂ１への更新の際にベースプログラムｂ０のｂ１０２が修正等される場合があり、この場合には修正前のｂ１０２の存在を前提とする個別変更Ｃ１０２の使用が修正誤りを生じさせることになる。
【００３２】
そのため、本発明の新個別プログラムｍ１には、個別変更Ｃ１０２に加えてその変更元であるベースプログラムｂ０のｂ１０２を対で含めるようにしている。これにより、新個別プログラムｍ１においてｂ１０２→個別変更Ｃ１０２への修正が正しく実行される。上述した本発明の構成により、図２の従来例とは異なり、ベースプログラムｂ０用のｂ１０２が新個別プログラムｍ１用の個別変更Ｃ１０２へ正しく修正される。
【００３３】
図６は、差分情報ｄ１及びｄ２の位置情報を検出して保持する処理例を示したものである。図７には、制御構造の判定対象となるプログラムの一例を示している。
図６の処理の前提として、先ず差分抽出対象となる変更元プログラムと変更先プログラムとを指定し、変更元プログラムと変更先プログラムの差分情報を抽出する。次に、変更先プログラムが条件式及び定義式等のプログラム構文解析を実施し（Ｓ１０１）、制御構造を形成するキーワードを検出した場合にはその制御構造の開始位置や終了位置を判定する（Ｓ１０２）。図７には、ｉｆ文の条件式で始まる制御構造や真偽等の定義式からなる非制御構造を含むプログラムの一例を示している。
【００３４】
抽出した差分情報のうち位置情報が構文解析（Ｓ１０１）で検出したプログラムブロック内にある場合には、そのブロック構造の開始位置から終了位置までのプログラムステップを変更情報として記憶する（Ｓ１０３及び１０５）。一方、抽出した差分情報のうち位置情報が構文解析で検出したプログラムブロック外のときは、当該位置前後の所定のプログラムステップ数を変更情報として記憶する（Ｓ１０３及び１０４）。変更先プログラムの構文解析が終了したときに本処理は終了する（Ｓ１０６）。
【００３５】
図８は、変更・追加されたプログラム要素の挿入位置決定処理の一例を示したものである。
図８において、初期化処理を実行した後、新ベースプログラムｂ１との差分情報ｄ２の読込を行い（Ｓ２０１）、次にベースプログラムｂ０の読込を行う（Ｓ２０２）。その間の差分情報ｄ２から図６で抽出した位置変更情報及び周辺ステップ情報を元に、文字列比較、位置情報比較、空行補正比較等の手法を用いてベースプログラムｂ０への挿入位置を検索する（Ｓ２０３）。その後、対象位置に変更情報を挿入し、ベースプログラムｂ０に対する差分挿入前後位置における位置情報の補正を行う（Ｓ２０４）。これらの処理をベースプログラムｂ０の全てのプログラム要素に対して実行した後、そこで得られた変更情報を含む擬似新ベースプログラムｂ１を作成する（Ｓ２０２及び２０５）。
【００３６】
次に、作成された擬似新ベースプログラムを用いて新個別プログラムの生成処理を実行する。先ず個別プログラムｍ０の差分情報読込ｄ１を行い（Ｓ２０６）、そして作成された擬似新ベースプログラムｂ１の読込を行う（Ｓ２０７）。ここでも、差分情報ｄ１から図６で抽出した位置変更情報及び周辺ステップ情報を元に、文字列比較、位置情報比較、空行補正比較等の手法を用いて擬似新ベースプログラムｂ１への挿入位置を検索し、対象位置に変更情報を挿入する（Ｓ２０９）。
【００３７】
その後、擬似新ベースプログラムｂ１に対する差分挿入前後位置における位置情報の補正を行う（Ｓ２１０）。これらの処理を擬似新ベースプログラムｂ１の全てのプログラム要素に対して実行した後、そこで得られた変更情報を有する新個別プログラムｍ１を作成する（Ｓ２０７及び２０８）。
【００３８】
図９には、図６及び８の処理を実行して得られたプログラム構造の一例を示している。
ここでは、ベースプログラムｂ０、それをベースに作成される新ベースプログラムｂ１、そして新ベースプログラムｂ１をベースに作成される新個別プログラムｍ１、の三者の関係が分かるように変更位置情報が付されている。本例のプログラム構造は、ｂ１０１等のラベルが付与されたプログラム内容と、ｂ０、ｂ２、ｍ１にそれぞれ対応するプログラムのステップ位置情報を含む。
【００３９】
図中の具体例で説明すると、ＩＮ１のベースプログラムｂ０は、処理の基本となるベースプログラム内容（ｂ１０１〜ｂ１０５）とそれぞれのプログラムステップ位置（１〜５）で管理される。ＩＮ２の個別プログラムｍ０は、ベースプログラムｂ０に製品固有の追加、編集を実施（個別変更Ｃ１０２、個別追加Ａ１０４）した個別プログラムの内容と対応するプログラムステップ位置（１〜５）で管理される。
【００４０】
ＩＮ３の新ベースプログラムｂ１は、処理の基本となるベースプログラムに変更を実施（ベース変更Ｃ１０３）した新ベースプログラムの内容と対応するプログラムステップ位置（１〜５）で管理される。また、ＩＮ１に差分情報ｄ２（＝ＩＮ４−ＩＮ３）を加えて作成されるＩＮ４の擬似新ベースプログラムｂ２では、ｂ１で更新されたプログラム内容（ベース変更Ｃ２０３）とそのステップ位置情報（３）をｂ０のものと区別して並列に配置（ｂ１の欄参照）される。これにより、ｂ０とｂ１との間のプログラム内容及びステップ位置情報の相違及び相互の関連が管理される。
【００４１】
最後に生成されるＯＵＴ１の新個別プログラムｍ１は、ｂ２に差分情報ｄ１を加えて作成される。本例でもＩＮ４の場合と同様に、ｂ０、ｂ１、ｍ１の間のプログラム内容及びステップ位置情報の相違を明確に区別して管理するため、ｍ１で更新されたプログラム内容（個別変更Ｃ１０２、個別追加Ａ１０４）とそのステップ位置情報（２及び４）を、ｂ０及びｂ１のものとは別に配置（ｍ１の欄参照）される。なお、新個別プログラムｍ１の実際の動作では、ステップ位置２で個別変更Ｃ１０２が実行され、ステップ位置４では個別追加Ａ１０４が実行される。
【００４２】
図１０は、ベースプログラムｂ０の更新毎に、本発明の個別プログラム生成装置（本ツール）を継続的に使用して、対応する新個別プログラムｍ１を生成するプログラム更新作業の一例を図式的に示したものである。
本例のベースプログラムＶＥＲ００１は全てのプログラムに共通となる基本制御プログラムである。個別プログラムＶＥＲ００１’は前記基本制御プログラムに製品固有の処理を追加した製品プログラムである。
【００４３】
ここで、ベースプログラムＶＥＲ００１が新ベースプログラムＶＥＲ００２に更新されると、本ツールは、これまで述べてきたように新ベースプログラムＶＥＲ００２とベースプログラムＶＥＲ００１との差分情報ｄ２−１を抽出し、また現状の個別プログラムＶＥＲ００１’とベースプログラムＶＥＲ００１との差分情報ｄ１−１を抽出する。本ツールはＶＥＲ００１とｄ２−１から擬似新ベースプログラムを作成し、それにｄ１−１を加えることで新個別プログラムＶＥＲ００２’を生成する。
【００４４】
生成された新個別プログラムＶＥＲ００２’は、図９のＯＵＴ１に示すようにベースプログラムＶＥＲ００１、新ベースプログラムＶＥＲ００２、新個別プログラムＶＥＲ００２’の相互の構成比較が可能な形式で保存される。
【００４５】
次に、更新されたベースプログラムＶＥＲ００２をさらに新ベースプログラムＶＥＲ００３に更新すると、本ツールは、上記と同様に新ベースプログラムＶＥＲ００３とベースプログラムＶＥＲ００２との差分情報ｄ２−２を抽出し、また現状の個別プログラムＶＥＲ００２’とベースプログラムＶＥＲ００２との差分情報ｄ１−２を抽出する。本ツールはＶＥＲ００２とｄ２−２から擬似新ベースプログラムを作成し、それにｄ１−２を加えることで新個別プログラムＶＥＲ００３’を生成する。
【００４６】
但し、ここで生成される新個別プログラムＶＥＲ００３’の保存では、その基本制御プログラムであるＶＥＲ００２が、初期ベースプログラムＶＥＲ００１からＶＥＲ００２に至る更新履歴を含む形式に変換されて保存される。図９のＯＵＴ１の例で示せば、ステップ位置情報のｂ０の欄が初期ベースプログラムからの更新履歴を含む複数の欄に置き換えられる。本例では、初期ベースプログラムから最新の個別プログラムを生成するまでの履歴が保存されるため、更新を繰り返すことによる誤修正の発生が確実に防止される。
【００４７】
図１１及び１２は、本発明と関連したユーザインタフェースの改善に関するものである。
図１１には、新個別プログラム構成の変更箇所に、変更内容を示す変更記号や特定色を付してディスプレイ表示する一例を示している。本例では、変更記号として「個別変更開始記号」、「個別変更終了記号」等の例を、また特定色としては個別プログラムで変更された要素に「青色」、新ベースプログラムで変更された要素に「桃色」等を着色する例をそれぞれ示している。
【００４８】
このように、差分として判断される箇所を記号表示、ハイライト表示、着色表示等を行うことで、複雑な更新履歴情報をユーザが容易に理解することが可能になる。これにより、変更意図の伝達が可能となりコードの誤修正防止が可能となる。
【００４９】
図１２には、生成された個別プログラムｍ１の各プログラム要素と、その元となったベースプログラムｂ０、新ベースプログラムｂ１及び個別プログラムｍ０のそれぞれのプログラム要素との関連を矢印で１つのディスプレイ画面上に表示している。このように、差分として判断される箇所を関連箇所とリンクさせることで、複雑な更新履歴情報をユーザが容易に理解することが可能となり、変更意図の伝達が容易となる。
【図面の簡単な説明】
【００５０】
【図１】従来のプログラム変更箇所の自動検出ツールの一例を示した図である。
【図２】従来のプログラム自動生成の一例を示した図である。
【図３】本発明による個別プログラム生成装置の基本構成を示した図である。
【図４】図３の基本的な処理手順を示した図である。
【図５】図３及び４の入出力データの一例を示した図である。
【図６】位置情報を検出して保持する処理の一例を示した図である。
【図７】制御構造の判定対象となるプログラムの一例を示した図である。
【図８】プログラム要素の挿入位置決定処理の一例を示した図である。
【図９】図６及び８の処理を行ったプログラム構造の一例を示した図である。
【図１０】プログラム更新作業の一例を図式的に示した図である。
【図１１】プログラム変更箇所のディスプレイ表示の一例（１）を示した図である。
【図１２】プログラム変更箇所のディスプレイ表示の一例（２）を示した図である。
【符号の説明】
【００５１】
１１、１２    差分リスト
１３    プログラム生成ツール
２０    個別プログラム生成装置
２１、２２    差分情報データベース
２３    プログラム生成部
２４、２５    差分情報抽出部
２６    ベース更新情報管理部
【図１】
2007047971.tif 000003
【図２】
2007047971.tif 000004
【図３】
2007047971.tif 000005
【図４】
2007047971.tif 000006
【図５】
2007047971.tif 000007
【図６】
2007047971.tif 000008
【図７】
2007047971.tif 000009
【図８】
2007047971.tif 000010
【図９】
2007047971.tif 000011
【図１０】
2007047971.tif 000012
【図１１】
2007047971.tif 000013
【図１２】
2007047971.tif 000014