(57)【要約】【課題】回路基板の設計支援プログラムの異常終了に対する迅速な対応が困難である。【解決手段】コンピュータに要素が配置された回路基板の設計データを生成させる設計支援プログラムにおいて，前記コンピュータに，操作入力に応答して操作情報を操作記憶部に記憶する操作情報記憶工程と，前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを実行させる設計支援プログラム。【選択図】  図４
2014086044.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに要素が配置された回路基板の設計データを生成させる設計支援プログラムにおいて，
前記コンピュータに，
操作入力に応答して操作情報を操作記憶部に記憶する操作情報記憶工程と，
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，
前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，
前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを実行させる設計支援プログラム。
【請求項２】
請求項１において，
さらに，前記コンピュータに，
前記所定の機能の正常終了を検出したとき，前記関数履歴記憶部，前記操作情報記憶部及び前記要素情報記憶部を初期化する初期化工程を実行させる設計支援プログラム。
【請求項３】
請求項１において，
前記操作入力が，前記プログラムの関数に対応していない処理を前記コンピュータに実行させる操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【請求項４】
請求項３において，
前記所定の機能は，前記選択された要素の名称の変更であって，
前記操作入力が前記プログラムの関数が入力可能であると規定していない名称を入力する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【請求項５】
請求項３において，
前記所定の機能は，前記選択された要素の移動であって，
前記操作入力が前記選択された要素を他の要素の上に移動する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【請求項６】
請求項３において，
前記所定の機能は，前記選択された要素である集積回路のピンの配置変更であって，
前記操作入力が，配置変更の対象となるピンを指定せずにピンを移動させる操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【請求項７】
請求項３において，
前記操作入力が前記要素を定義する要素定義情報に存在しない要素を検索する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【請求項８】
コンピュータにより，要素が配置された集積回路の設計データが生成される設計支援方法において，
前記コンピュータが，操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶工程と，
前記コンピュータが，前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，
前記コンピュータが，前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，
前記コンピュータが，前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを有する設計支援方法。
【請求項９】
要素が配置された集積回路の設計データを生成する設計支援装置において，
操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶手段と，
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶手段と，
前記設計データを生成する所定の機能を前記設計支援装置に実行させるコマンド操作が入力された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶手段と，
前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力手段とを有する設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，設計支援プログラム，方法及び装置に関する。
【背景技術】
【０００２】
回路基板の設計では，設計者は，ＣＡＤ等の設計支援プログラムを使用し，プリント基板上に部品の配置や配線をして設計データを作成する。設計支援プログラムの使用中に異常終了が発生した場合，設計者から設計支援プログラムの開発者へ問い合わせがなされる。そして，開発者は，設計支援プログラムから出力されたログファイルを解析して異常終了の原因を解明し，設計支援プログラムの修正等を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１７０９３号公報
【特許文献２】特開２００６−９３８２４号公報
【特許文献３】特開２０００−４７９０９号公報
【特許文献４】特開２００３−９１４３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，開発者は，実行されたプログラム関数のログ情報が出力されたログファイルを解析しても，異常終了時に設計者がどのような操作をしたのかを具体的に把握するのは困難である。そのため，開発者はログファイルの解析をするとともに，設計者に異常終了時の操作内容を確認しながら異常終了時の状況を再現してその原因を解明する必要があり，迅速に対応をすることが難しかった。
【０００５】
そこで，本発明の目的は，異常終了に対する迅速な対応を可能とするログファイルを出力する設計支援プログラム，方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
設計支援プログラムの第１の側面は，
コンピュータに要素が配置された回路基板の設計データを生成させる設計支援プログラムにおいて，
前記コンピュータに，
操作入力に応答して操作情報を操作記憶部に記憶する操作情報記憶工程と，
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，
前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，
前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを実行させる。
【発明の効果】
【０００７】
第１の側面によれば，開発者は，出力されるログファイルに基づいて，異常終了に対する迅速な対応を可能となる。
【図面の簡単な説明】
【０００８】
【図１】回路基板の設計支援装置の構成を示す図である。
【図２】設計支援プログラムの画面の一例を示す図である。
【図３】ログファイルの一例を示す図である。
【図４】本実施の形態における回路基板の設計支援装置の構成を示す図である。
【図５】本実施の形態における設計支援プログラムの正常動作時のログデータ生成フローチャートである。
【図６】本実施の形態における設計支援プログラムの異常終了時のログデータ生成フローチャートである。
【図７】第1の実施の形態における設計図表示部の第１の例を示す図である。
【図８】第１の実施の形態における「要素属性変更」コマンド選択時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。
【図９】第１の実施の形態における要素属性変更操作の一例を示す図である。
【図１０】第１の実施の形態における「要素属性変更」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。
【図１１】第１の実施の形態における異常終了時に出力されるログファイルの一例である。
【図１２】第２の実施の形態における設計図表示部の第１の例を示す図である。
【図１３】第２の実施の形態における設計図表示部の第２の例を示す図である。
【図１４】第２の実施の形態における設計図表示部の第３の例を示す図である。
【図１５】第２の実施の形態における「移動」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。
【図１６】第２の実施の形態における異常終了時に出力されるログファイルの一例である。
【図１７】第３の実施の形態における画面の一例を示す図である。
【図１８】第４の実施の形態における集積回路の属性変更操作の一例を示す図である。
【図１９】第４の実施の形態における集積回路のピン編集操作画面の一例を示す図である。
【図２０】第４の実施の形態における集積回路のピン編集操作の第１の例を示す図である。
【図２１】第４の実施の形態における集積回路のピン編集操作の第２の例を示す図である。
【図２２】第３の実施の形態における「ＦＰＧＡエディタ」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。
【図２３】第２の実施の形態における異常終了時に出力されるログファイルの一例である。
【図２４】第４の実施の形態における出力装置に表示される画面の第１の例を示す図である。
【図２５】第４の実施の形態における部品選択部の一例である。
【図２６】第４の実施の形態における出力装置に表示される画面の第２の例を示す図である。
【図２７】第４の実施の形態における「部品配置」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。
【図２８】第４の実施の形態における異常終了時に出力されるログファイルの一例である。
【発明を実施するための形態】
【０００９】
以下，図面を用いて本発明の実施の形態について説明する。
【００１０】
図１は，回路基板の設計支援装置の構成を示す図である。図１の設計支援装置１０は，ＣＰＵ１１と，ＲＯＭ１２と，ＲＡＭ１３と，マウスやキーボード等の入力装置１４と，ディスプレイ等の出力装置１５と，バス１６とを有する。
【００１１】
ＲＯＭ１２は，後述する設計支援プログラム２０等の各種プログラムやプログラムの実行に必要なデータを記憶する。ＲＡＭ１３は，ＣＰＵ１１がＲＯＭ１２からロードした各種プログラムや一時的なデータ等を記憶する。
【００１２】
ＣＰＵ１１は，ＲＯＭ１２に記憶された各種プログラムを実行し，設計支援装置１０の制御を行う。例えば，ＣＰＵ１１は設計支援プログラムを実行して，入力装置１４を介して入力された操作を検出する操作検出手段２１や，予め定義された要素を格納する要素定義情報テーブル２３から要素を読み出して回路基板の設計データを新規に生成，又は設計情報テーブル２４から設計データを読み出して設計データを更新し設計情報テーブル２４に記憶する設計データ生成手段２２，コマンドやプログラム関数の実行履歴をログファイル２８に出力するログファイル出力手段２５を実現する。なお，操作とは，後述の出力装置１５に表示される画面１００上で，要素やコマンドの選択，文字の入力又は表示ボタンの押下等を行うために設計者が入力装置１４に加えた動作をいう。また，要素定義情報テーブル２３に格納されている要素とは，コンデンサ，抵抗，集積回路，信号線，信号結合子，電源，図形，テキストボックス等の回路基板の設計データに含まれる要素である。
【００１３】
図２は，設計支援プログラムの画面の一例を示す図である。ＣＰＵ１１は，設計者による入力装置１４の操作に応じて設計支援プログラム２０を起動すると，出力装置１５に画面１００を表示する。
【００１４】
画面１００は，コマンドを表示するメニュー１０１と，要素毎に設計図表示部１０４への表示・非表示及び選択の可否を設定可能にする要素制御部１０２と，設計情報テーブル２４に格納されている設計データを表示する基板選択部１０３と，作業中の設計データを表示する設計図表示部１０４と，要素定義情報テーブル２３から部品を読み出して部品の選択を可能とする部品選択部１０５と，コマンドの実行結果等を表示するメッセージ部１０６とを有する。
【００１５】
コマンドとは，要素の配置・配線，要素の移動・削除，要素の属性変更，制約条件の設定等，設計者が設計データを作成するのに必要な機能を設計支援プログラムに実行させる命令である。
【００１６】
設計者は，入力装置１４を操作してメニュー１０１からコマンドを選択して実行し，設計図表示部１０４上に部品配置や配線等を行い，設計データを作成する。また，後述するように，設計者は，設計図表示部１０４の設計データが有する要素を選択し，選択した要素に対して入力装置１４のマウスを操作してコマンドを選択することもできる。そして，設計者が「保存」コマンドを選択することで，設計図表示部１０４の設計データが設計情報テーブル２４に記憶される。
【００１７】
図３は，ログファイルの一例を示す図である。設計者がコマンドを選択すると，コマンドに対応するプログラム関数が実行される。選択されたコマンド及びそれにより実行されたプログラム関数の履歴は，それぞれログファイル２６のコマンド履歴部１１０，関数履歴部１１１に出力される。
【００１８】
ＣＰＵ１１は，設計者によるコマンドの選択操作に応じてコマンドを実行するとコマンド履歴部１１０にそのコマンド名称を出力し，そのコマンドを正常終了するとコマンド履歴部１１０にコマンド完了の旨を出力する。
【００１９】
例えば，図３のコマンド履歴部１１０には，ＣＰＵ１１が，部品を配置するための「部品配置」コマンド，部品の名称等の属性を変更するための「部品属性変更」コマンド，部品を任意の座標に移動させるための「移動」コマンドを実行して正常終了し，その後に，集積回路のピンの配置や属性等を変更するための「ＦＰＧＡエディター」コマンドを実行したことが示されている。また，図３のコマンド履歴部１１０には，「ＦＰＧＡエディター」コマンドが完了した旨の出力はされていないため，ログファイル２６は，「ＦＰＧＡエディター」コマンドの実行中である場合，又は「ＦＰＧＡエディター」コマンドの実行中の途中で異常終了した場合のいずれかであることを示している。
【００２０】
ＣＰＵ１１はコマンドを実行すると，コマンドに対応して実行したプログラム関数の名称と，そのプログラム関数を有するモジュールのパスとを関数履歴部１１１に出力する。例えば，図３の関数履歴部１１１には，実行されたプログラム関数の名称とそのプログラム関数を有するモジュールのパスとが下から順に出力されている。したがって，最後に実行されたプログラム関数は，関数履歴部１１１の最上段に出力されているように，パス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＦｐｇａＥｄｉｔｏｒ．ｄｌｌ」のプログラム関数「ＣｏｎｎｅｃｔＬｉｎｅＬｉｎｋ」である。
【００２１】
通常，設計者は，設計支援プログラムの開発においては予期されていなかったデータが取り込まれた等により設計データの作成中にＣＰＵ１１が異常終了すると，ＣＰＵ１１が異常終了までに実行したコマンドやプログラム関数の履歴が出力されているログファイル２６を，設計支援プログラムの開発者へ提供し，原因の解明等の対応を依頼する。しかし，1つのプログラム関数が複数のコマンドや操作に対応する場合があるため，開発者は，実行されたプログラム関数の履歴が出力されたログファイルを解析しても，異常終了時に設計者が行った操作を具体的に把握できない場合がある。そのような場合には，開発者は設計者に異常終了時の操作内容を確認しながら作業する必要があるため，迅速な対応が難しい。
【００２２】
例えば，「ＦＰＧＡエディター」コマンドの実行途中で異常終了が発生すると，図３のようにログファイル２６が出力される。開発者は，関数履歴部１１１の最上段を確認することでパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＦｐｇａＥｄｉｔｏｒ．ｄｌｌ」のプログラム関数「ＣｏｎｎｅｃｔＬｉｎｅＬｉｎｋ」の実行中に異常終了が発生したことを認識することができる。
【００２３】
しかし，ログファイル２６からでは，設計者が作成していた設計データが有する要素のうち，どの要素に対して「ＦＰＧＡエディター」コマンドが実行されたのかは不明である。また，「ＦＰＧＡエディター」コマンドでは，集積回路のピンの配置変更や属性変更等の操作をすることが可能であり，いずれの操作についてもモジュール「ＦｐｇａＥｄｉｔｏｒ．ｄｌｌ」のプログラム関数「ＣｏｎｎｅｃｔＬｉｎｅＬｉｎｋ」を使用するため，設計者が異常終了直前にどのような操作を行っていたのかも不明である。
【００２４】
また，開発者は異常終了した「ＦＰＧＡエディター」コマンドに対して解析を行うため，正常に終了している「部品配置」コマンド，「部品属性変更」コマンド及び「移動」コマンドに対応するプログラム関数の履歴は不要である。
【００２５】
そこで，後述するように，本実施の形態における設計支援プログラムは，設計者による操作の履歴（操作情報），コマンドの実行対象である要素（要素情報），及び実行されたプログラム関数の履歴を，解析に必要だけログファイルに出力することで，開発者がログファイルに基づいて異常終了時の状況を迅速に把握して対応できることを可能とする。
【００２６】
図４は，本実施の形態における回路基板の設計支援装置の構成を示す図である。図４では，図１の設計支援装置１０と共通する部分については同じ符号がふされている。図４の設計支援装置３０は，ＣＰＵ１１と，ＲＯＭ１２と，ＲＡＭ１３と，マウスやキーボード等の入力装置１４と，ディスプレイ等の出力装置１５と，バス１６とを有する。ＣＰＵ１１は，ＲＯＭ１２が記憶する設計支援プログラム４０を実行して，操作検出手段２１と，設計データ生成手段２２と，ログデータ生成手段４１とを実現する。
【００２７】
ログデータ生成手段４１は，設計支援プログラムの起動後に操作検出手段２１により検出された操作情報を操作情報テーブル４７（操作情報記憶部）に記憶する操作情報記憶手段４２と，コマンドの実行対象である要素を要素情報テーブル４８（要素情報記憶部）に記憶する要素情報記憶手段４３と，設計支援プログラムの起動後実行されたプログラム関数の履歴を関数履歴テーブル４９（関数履歴記憶部）に記憶する実行関数記憶手段４４と，設計データ生成手段２２が異常終了を検出すると操作情報テーブル４７，要素情報テーブル４８及び関数履歴テーブル４９をログファイル５０に出力するログ出力手段４５と，実行されたコマンドの名称をログファイル５０に出力するコマンド履歴出力手段４６とを含む。
【００２８】
ＣＰＵ１１は，設計者による入力装置１４の操作に応じて設計支援装置プログラム４０を起動すると，出力装置１５のディスプレイに図２の画面１００を表示する。設計者は，入力装置１４を操作して，画面１００を介してコマンドを実行し，設計データを作成する。
【００２９】
図５は，本実施の形態における設計支援プログラムの正常動作時のログデータ生成フローチャートである。
【００３０】
設計支援プログラム４０が起動されると，まず，ログデータ生成手段４１はログファイル５０を生成する（Ｓ１１）。このときログファイル５０には何も履歴が出力されていない。次に，ログデータ生成手段４１は，操作情報テーブル４７と，要素情報テーブル４８と，関数履歴テーブル４９とを生成し（Ｓ１２），初期化を行う（Ｓ１３，初期化工程）。
【００３１】
そして，ログデータ生成手段４１は，操作検出手段２１が検出した操作情報を取得し，操作情報テーブル４７への記憶を開始する（Ｓ１４，操作情報記憶工程）。それとともに，関数履歴テーブル４９に実行されたプログラム関数の履歴を記憶開始する（Ｓ１５，実行関数記憶工程）。なお，プログラム関数の履歴の記憶（Ｓ１５）は，コマンドの実行が完了の旨がログファイルに出力される（Ｓ２４）まで行われる。
【００３２】
ステップＳ１４にて記憶した操作情報がコマンドの選択でない場合（Ｓ１６のＮｏ），データ生成手段４１は，ステップＳ１４に戻り，操作検出手段２１が次に検出した操作情報を取得し操作情報テーブル４７への記憶をする（Ｓ１４）。
【００３３】
一方，ステップＳ１４にて記憶した操作情報がコマンドの選択である場合（Ｓ１６のＹＥＳ），ログデータ生成手段４１は，選択されたコマンドの名称をログファイルに出力する（Ｓ１７）。そして，ステップＳ１７の後，ログデータ生成手段４１はコマンドの実行対象である要素が選択されているか否かの判定を行う（Ｓ１８）。なぜならば，後述するように，設計支援プログラム４０では，要素の選択が行われた後にコマンドが選択される場合と，コマンドが選択されて単一又は複数の操作がなされた後に要素が選択される場合とがあるためである。
【００３４】
ステップＳ１９にてコマンドの実行対象である要素が選択されている場合（Ｓ１８のＹＥＳ），ログデータ生成手段４１は，選択された要素を要素情報テーブル４８に記憶する（Ｓ１９，要素情報記憶工程）。そして，データ生成手段４１は，操作検出手段２１が次に検出した操作情報を取得し操作情報テーブル４７への記憶をする（Ｓ２０，操作情報記憶工程）。
【００３５】
ステップＳ２０の後，ログデータ生成手段４１は，ステップＳ２０の操作情報がコマンド完了の操作か否かの判定を行う（Ｓ２１）。ステップＳ２１において，ステップＳ２０の操作情報がコマンド完了の操作でない場合（Ｓ２１のＮｏ），ステップＳ２０へ戻る。一方，ステップＳ２０の操作情報がコマンド完了の操作である場合（Ｓ２１のＹｅｓ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（Ｓ２４，ログ出力工程）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（Ｓ１３）。
【００３６】
ステップＳ１９において，コマンドの実行対象である要素が選択されていない場合（Ｓ１８のＮｏ），設計者の次の操作で要素が選択される可能性があるため，データ生成手段４１は，操作検出手段２１が次に検出した操作情報を取得し操作情報テーブル４７への記憶をする（Ｓ２２，操作情報記憶工程）。
【００３７】
ステップＳ２２の後，ログデータ生成手段４１は，ステップＳ２０の操作情報がコマンド完了の操作か否かの判定を行う（Ｓ２３）。ステップＳ２２の操作情報がコマンド完了の操作でない場合（Ｓ２３のＮｏ），ログデータ生成手段４１は，ステップＳ１８に戻り要素が選択されているか否かの判定を行う（Ｓ１８）。一方，ステップＳ２２の操作情報がコマンド完了の操作である場合（Ｓ２３のＹｅｓ），つまり要素が選択されずにコマンド完了の操作がされた場合，ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（Ｓ２４）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（Ｓ１３）。
【００３８】
このように，設計支援プログラムの正常動作時では，ログデータ生成手段４１は，設計支援プログラム４０の起動後又は前回のコマンドの実行完了後から，今回のコマンドの実行完了までの操作情報，選択された要素，プログラム関数の履歴がそれぞれ操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９に記憶される。そして，今回のコマンドの実行完了時に操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９が初期化される。また，正常動作時では，操作情報，要素及び実行されたプログラム関数の履歴は不要であるため，ログデータ生成手段４１はこれらをログファイル５０に出力しない。
【００３９】
図６は，本実施の形態における設計支援プログラムの異常終了時のログデータ生成フローチャートである。
【００４０】
設計支援プログラム４０が起動されると，設計データ生成手段２２にて異常終了の発生有無の判定が行われる（Ｓ３１）。設計データ生成手段２２が異常終了を検出すると，ログデータ生成手段４１はこれに応じて（Ｓ３１のＹＥＳ），図５の正常動作を中断する（Ｓ３２）。そして，ログデータ生成手段４１は，その時点での操作情報テーブル４７と，要素情報テーブル４８と，関数履歴テーブル４９とをログファイル５０に出力する（Ｓ３３）。
【００４１】
したがって，ロブファイル５０に出力されるのは，設計支援プログラム４０の起動後又は前回のコマンドの実行完了後から，異常終了までの間に操作情報テーブル４７に記憶された操作情報，要素情報テーブル４８に記憶された要素及び関数履歴テーブル４９に記憶された関数履歴である。これにより，開発者は，異常終了の原因を解析するのに必要な情報のみを取得することができる。
【００４２】
以下，第１乃至第４の実施の形態にて，設計支援プログラム４０の具体的な動作例を説明する。
【００４３】
［第１の実施の形態］
第１の実施の形態では，設計者が設計図表示部１０４に配置した部品の属性を変更するための操作をした場合の設計支援プログラム４０の動作について説明する。まず，設計支援プログラム４０の正常動作時の例について説明する。
【００４４】
図７は，第1の実施の形態における設計図表示部の第１の例を示す図である。図７は，設計者が設計データを作成している間における，出力装置１５に表示される画面１００の設計図表示部１０４の一例である。
【００４５】
図７の設計図表示部１０４には，ピンＰ１〜Ｐ８，ＶＤＤ及びＧＮＤを有する集積積回路Ｍ１５と，コンデンサＣ１〜Ｃ３と，抵抗Ｒ１〜Ｒ５と，基準電源ＧＮＤと，３．３ｖの電源と，信号結合子Ｔ１〜Ｔ８と，各要素を接続する直線の信号線とが配置されている。  図７では，設計者は，集積回路Ｍ１５の名称「Ｍ１５」を「Ｍ１６」に変更するために，まず入力装置１４のマウスを動かしてカーソル１２０を集積回路Ｍ１５上に移動させ，マウスの左クリックを押下して集積回路Ｍ１５を選択する。このとき，ログデータ生成手段４１は，設計者が行ったマウスの移動及び左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【００４６】
次に，設計者は，マウスの右クリックを押下し，ポップアップメニュー１２１を表示させる。このとき，ログデータ生成手段４１は，右クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【００４７】
この後，設計者は，マウスを動かし，ポップアップメニュー１２１に表示されている「要素属性変更」上にカーソル１２１を移動させて，マウスの左クリックを押下して「要素属性変更」コマンドを選択する。これにより「要素属性変更」コマンドが開始される。
【００４８】
このとき，ログデータ生成手段４１は，左クリックの押下により「要素属性変更」コマンドが選択されたという操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。また，当該操作情報はコマンドの選択に該当するため（図５のステップＳ１６のＹＥＳ），選択された「要素属性変更」コマンドがログファイル５０に出力される（図５のステップＳ１７）。そして，集積回路Ｍ１５が予め選択されているため（図５のステップＳ１８のＹＥＳ），ログデータ生成手段４１は，集積回路Ｍ１５を要素情報テーブル４８に記憶する（図５のステップＳ１９）。
【００４９】
図８は，第１の実施の形態における「要素属性変更」コマンド選択時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。図８は，図7の操作が行われたときの操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９及びログファイル５０を示す。
【００５０】
図８の操作情報テーブル４７には，上述のように，集積回路Ｍ１５の選択操作，ポップアップメニュー１２１の表示操作及び「要素属性変更」コマンドの選択操作の操作情報が記憶されている。操作情報テーブル４７は，操作毎に“設計データ名称”，“メイン画面名称”，“サブ画面名称”，“操作された入力装置１４”，“操作内容（座標，画面に表示されるボタン名称，入力文字，コマンド名称）”，“設計者の入力装置１４に加えた動作内容（左・右クリック，キーボードのボタン）”を操作情報として記憶する。例えば，操作情報テーブル４７の1行目の操作情報「設計図０１, 画面１００, , マウス, ｘ：２６５ｍｍ ｙ：２１５ｍｍ, 左クリック」は，集積回路Ｍ１５の選択操作を示している。すなわち，１行目は，設計者が画面１００の座標「ｘ：２６５ｍｍ ｙ：２１５ｍｍ」において，マウスの左クリックを押下したことを示している。同様に，２行目の操作情報「設計図０１, 画面１００, , マウス, ｘ：２６５ｍｍ ｙ：２１５ｍｍ, 右クリック」はポップアップメニュー１２１の表示操作を示し，３行目の操作情報「設計図０１, 画面１００, ポップアップメニュー, マウス, コマンド（要素属性変更）, 左クリック」は「要素属性変更」コマンドの選択操作を示す。
【００５１】
一方，図８の要素情報テーブル４８には，「要素属性変更」コマンドの選択操作により部品（Ｍ１５）が登録されている。
【００５２】
図８の関数履歴テーブル４９には，集積回路Ｍ１５の選択操作，ポップアップメニュー１２１の表示操作及び「要素属性変更」コマンドの選択操作により実行されたプログラム関数が下から順に記憶されている。関数履歴テーブル４９は，最上段の１行目にパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＭｅＢＰ．ｅｘｅ」のプログラム関数「Ｃｃｌａｓｓ」が実行されたことを示している。
【００５３】
図８のログファイル５０のコマンド履歴部１４１には，「要素属性変更」コマンドの選択操作によりログデータ生成手段４１が出力したコマンド名称「要素属性変更」が最下段に出力されている（図５のステップＳ１７）。なお，「要素属性変更」よりも上には，図７の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
【００５４】
図９は，第１の実施の形態における要素属性変更操作の一例を示す図である。図７で設計者が「要素属性変更」コマンドを選択すると，図９に示す要素属性変更画面１３０が出力装置１５に表示される。図９（１）のように，設計者はマウスを操作して部品名欄１３１上にカースル１２０を移動させ，左クリックを押下して部品名欄１３１を選択する。そして，設計者は部品名欄１３１に記載されている「Ｍ１５」を削除し，キーボードを使用して「Ｍ１６」を入力する。このとき，ログデータ生成手段４１は，これらの操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【００５５】
そして，図９（２）のように，設計者はマウスを操作して完了ボタン１３２上にカースル１２０を移動させ，左クリックを押下し，「要素属性変更」コマンドを完了させる。このとき，ログデータ生成手段４１は，「要素属性変更」コマンドの完了操作について操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，「要素属性変更」コマンドの完了操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。さらに，設計者により行われた操作は「要素属性変更」コマンドの完了操作であるため（図５のＳ２１のＹＥＳ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（図５のＳ２４）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（図５のＳ１３）。
【００５６】
図１０は，第１の実施の形態における「要素属性変更」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。図１０は，図９の要素属性変更」コマンドの完了操作が行われログデータ生成手段４１がコマンドの完了の旨をログファイルに出力した（図５のステップＳ２４）ときの，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９及びログファイル５０を示す。
【００５７】
図１０の操作情報テーブル４７には，図９で説明した「要素属性変更」コマンド選択操作以降の操作，すなわち部品名欄１３１の選択操作，部品名欄１３１に記載されている「Ｍ１５」の削除操作，部品名欄１３１への「Ｍ１６」の入力操作，及び「要素属性変更」コマンドの完了操作の操作情報が，４行目から１１行目に記憶されている。なお，１行目から３行目までの操作情報は，図８と同様である。
【００５８】
４行目の操作情報「設計図０１, 要素情報変更１３０, 部品情報,マウス, 部品名, 左クリック」は，部品名欄１３１の選択操作を示し，５行目〜７行目の操作情報「設計図０１, 要素情報変更１３０, 部品情報, キーボード, , Ｄｅｌｅｔｅ」は部品名欄１３１に記載されている「Ｍ１５」の削除操作を示す。また，８行目〜１０行目の操作情報「設計図０１, 要素情報変更１３０, 部品情報, キーボード, ,Ｍ」，「設計図０１, 要素情報変更１３０, 部品情報, キーボード, ,１」及び「設計図０１, 要素情報変更１３０, 部品情報, キーボード, ,６」は部品名欄１３１への「Ｍ１６」の入力操作を示す。１１行目の操作情報「設計図０１, 要素属性変更１３０, 部品情報, マウス, ＯＫ, 左クリック」は「要素属性変更」コマンドの完了操作を示す。
【００５９】
図１０の要素情報テーブル４８には，図８と同様に，「要素属性変更」コマンドの選択時に要素情報テーブル４８に記憶された「部品（Ｍ１５）」が記憶されている。
【００６０】
図１０の関数履歴テーブル４９には，図８以降実行されたプログラム関数がさらに記憶されている。図１０の関数履歴テーブル４９では，図８の１行目以下の履歴が図１０の３行目以下の履歴に該当する。また，図１０の関数履歴テーブル４９は，図８以降，２行目に出力されているパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＭｅＢＰ．ｅｘｅ」のプログラム関数「Ｆｕｎｃｔｉｏｎ」が実行され，その後に，１行目に出力されているパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＭｅＢＰ．ｅｘｅ」のプログラム関数「ＳｅｔＵｎｄｏ」が実行されたことを示している。
【００６１】
図１０のログファイル５０のコマンド履歴部１４１には，コマンド名称「要素属性変更」の下に，コマンドが完了した旨を意味する「要素属性変更完了」が出力されている（図５のＳ２４）。ログデータ生成手段４１がコマンドの完了の旨をログファイルに出力した（図５のＳ２４）後に初期化動作（図５のＳ１３）を行うと，図１０の各テーブル４７〜４９に記憶された操作情報，要素及び実行されたプログラム関数の履歴は全て削除される。
【００６２】
このように正常動作においては，ログデータ生成手段４１は，前回のコマンドの実行完了後から今回の「要素情報変更」コマンドの実行完了までの間の操作情報を操作情報テーブル４７に記憶し，選択された要素を要素情報テーブル４８に記憶し，実行された関数を関数履歴テーブル４９に記憶する。ログデータ生成手段４１は「要素情報変更」コマンドの実行完了すると，操作情報，要素及び実行されたプログラム関数の履歴は不要であるため，これらをログファイル５０に出力しない。
【００６３】
次に，設計支援プログラム４０の異常終了時の例について説明する。
【００６４】
図１１は，第１の実施の形態における異常終了時に出力されるログファイルの一例である。例えば，図９において，設計者が部品名欄１３１に「Ｍ１６」ではなく環境依存文字「Ｉ」を入力し，マウスを操作して完了ボタン１３２上にカースル１２０を移動させ左クリックを押下したときに，設計支援プログラム４０が異常終了したとする（図６のステップＳ３１のＹＥＳ）。この場合，ログデータ生成手段４１は，図５の動作を中断し（図６のステップＳ３２），図１１のように，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９をログファイル５０に出力する。
【００６５】
図１１のログファイル５０のコマンド履歴部１４１は，図８と同様である。操作情報部１４２には，ログデータ生成手段４１が異常終了により正常動作を中断するまで（図６のステップＳ３２）に操作情報テーブル４７に記憶された操作情報が出力される（図６のステップＳ３３）。８行目の操作情報では，キーボードから入力した文字が環境依存文字であったために，文字化けが生じている。要素情報部１４３には，ログデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に要素情報テーブル４８に記憶された要素が出力される（図６のステップＳ３３）。関数履歴部１４４には，グデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に関数履歴テーブル４９に記憶されたプログラム関数が出力される（図６のステップＳ３３）。
【００６６】
設計者より問い合わせを受けた開発者は，図１１のログファイル５０により，まず，部品（Ｍ１５）に対して（要素情報部１４３の１行目），「要素属性変更」コマンドが実行され（操作情報部１４２の３行目）たことを把握することができる。
【００６７】
次に，開発者は，部品情報変更画面１３０の部品情報の項目「部品名」が選択され（操作情報１４２の４行目），キーボードの「１」ボタン，「変換」ボタン，Ｅｎｔｅｒボタンが順に押されて環境依存文字「Ｉ」が入力されたことを把握することができる（操作情報１４２の８行目〜１０行目）。
【００６８】
そして，開発者は，要素属性変更画面１３０の部品情報画面に表示されるＯＫボタンに対してマウスの右クリックを押下する操作をしたとき（操作情報部１４２の１１行目）に異常終了が発生したことを把握することができる。
【００６９】
さらに，開発者は，関数履歴部１４４に基づいて，パス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＭｅＢＰ．ｅｘｅ」のプログラム関数「Ｆｕｎｃｔｉｏｎ」の実行中に，異常終了が発生したことを把握することができる。
【００７０】
そして，開発者は，設計者から作成中の設計データ「設計図０１」を受領してログファイル５０に基づいて設計者と同じ操作をしたり，プログラム関数「Ｆｕｎｃｔｉｏｎ」をデバッグしたりする等，迅速に対応をとることができる。
【００７１】
その結果，開発者は，例えば予め定めた入力可能文字以外の文字が入力された場合には警告メッセージを出力する処理がプログラム関数「Ｆｕｎｃｔｉｏｎ」に規定されていなく，プログラム関数「Ｆｕｎｃｔｉｏｎ」に対応していない処理を設計支援装置３０に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
【００７２】
このように，異常終了が発生したときに，ログデータ生成手段４１が正常動作を中断して，その時点での操作情報テーブル４７，要素情報テーブル４８及び関数履歴テーブル４９とをログファイル５０に出力する。これにより，開発者はログファイル５０に基づいて，異常終了時の状況を把握することができ迅速に対応することができる。
【００７３】
［第２の実施の形態］
第２の実施の形態では，設計者が複数の要素を任意の座標に移動させる操作をした場合の設計支援プログラム４０の動作について説明する。
【００７４】
図１２は，第２の実施の形態における設計図表示部の第１の例を示す図である。図１２は，設計者が設計データを作成している間における，出力装置１５に表示される画面１００の設計図表示部１０４の一例である。
【００７５】
図１２の設計図表示部１０４には，信号線Ｌ１１〜Ｌ１３と，コンデンサＣ１１，Ｃ１２と，グラウンド電源ＧＮＤ１１，ＧＮＤ１２と，抵抗Ｒ１２と，矢印の図形Ｏｂ１１と，テキストＣＯＭ１１と，信号結合子Ｔ１１，Ｔ１２とが配置されている。
【００７６】
第２の実施の形態では，図１２の配置状態から，設計者は，信号線Ｌ１１と，コンデンサＣ１１と，グラウンド電源ＧＮＤ１１と，図形Ｏｂ１１と，文字列ＣＯＭ１１とを選択して（以下，要素群Ｙ１０とする。），選択した要素を移動させる操作を行う。まず，設計支援プログラム４０の正常動作時の例について説明する。
【００７７】
設計者は，入力装置１４のマウスを動かしカーソル２００を座標Ｐ１（ｘ：１２０ｍｍ  ｙ：２４０ｍｍ）に移動させる。そして，設計者は，マウスの左クリックを押しながらそのままの状態でマウスを動かし，カーソル２００を座標Ｐ２（ｘ：２００ｍｍ  ｙ：１００ｍｍ）まで移動させ，マウスの左クリックを離す。これにより要素群Ｙ１０が選択される。
【００７８】
このとき，ログデータ生成手段４１は，設計者による左クリックが押されたままのマウスの移動の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【００７９】
図１３は，第２の実施の形態における設計図表示部の第２の例を示す図である。設計者は要素を選択した後，入力装置１４のマウスの右クリックを押下し，ポップアップメニュー２１０を表示させる。
【００８０】
このとき，ログデータ生成手段４１は，右クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【００８１】
そして，設計者は，マウスを動かし，ポップアップメニュー２１０内に表示されるコマンドから「移動」上にカーソル２００を移動させて，マウスの左クリックを押下して「移動」コマンドを選択する。これにより「移動」コマンドが開始される。
【００８２】
このとき，ログデータ生成手段４１は，左クリックの押下により「移動」コマンドが選択されたという操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。また，当該操作情報はコマンドの選択に該当するため（図５のステップＳ１６のＹＥＳ），選択された「移動」コマンドがログファイル５０に出力される（図５のステップＳ１７）。
【００８３】
そして，要素群Ｙ１０が予め選択されているため（図５のステップＳ１８のＹＥＳ），ログデータ生成手段４１は，信号線Ｌ１１，コンデンサＣ１１，グラウンド電源ＧＮＤ１１，図形Ｏｂ１１及び文字列ＣＯＭ１１を要素情報テーブル４８に記憶する（図５のステップＳ１９）。
【００８４】
図１４は，第２の実施の形態における設計図表示部の第３の例を示す図である。設計者は，「移動コマンド」を選択した後，マウスを動かしてカースルを座標Ｐ２から座標Ｐ３（ｘ：５０ｍｍ  ｙ：１００ｍｍ）へ移動させる。そして，設計者は，座標Ｐ３上でマウスの左クリックを押下する。これにより，要素群Ｙ１０が，座標Ｐ３を中心とする位置に移動する。すなわち，信号線Ｌ１１，コンデンサＣ１１，グラウンド電源ＧＮＤ１１，図形Ｏｂ１１及び文字列ＣＯＭ１１の移動する。また，「移動」コマンドでは，要素の移動が完了することで「移動」コマンドが完了となる。したがって，座標Ｐ３上でのマウスの左クリック押下の操作によって要素Ｙ１０の移動が完了すると，「移動」コマンドは完了する。
【００８５】
このとき，ログデータ生成手段４１は，座標Ｐ３での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。さらに，設計者により行われた操作は「移動」コマンドの完了操作であるため（図５のＳ２１のＹＥＳ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（図５のＳ２４）。さらに，座標Ｐ３での左クリックの押下の操作は「移動」コマンドの完了操作にも該当するため（図５のＳ２１のＹＥＳ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（図５のＳ２４）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（図５のＳ１３）。
【００８６】
図１５は，第２の実施の形態における「移動」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。図１５は，ログデータ生成手段４１が「移動」コマンドの完了の旨のログファイルを出力した（図５のステップＳ２４）ときの，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９及びログファイル５０を示す。
【００８７】
図１５の操作情報テーブル４７には，図１２のように，マウスの左クリックを押下したまま座標Ｐ１からＰ２へカーソルを移動させて要素群Ｙ１０を選択する操作が，１行目に操作情報「設計図０１, 画面１００, , マウス, ｘ：１２０ｍｍ-２００ｍｍ ｙ：２４０ｍｍ-１００ｍｍ, 左クリック」として記憶されている。
【００８８】
２行目には，座標Ｐ２上でポップアップメニューを表示させるために行われたマウスの左クリック押下の操作が，操作情報「設計図０１, 画面１００, , マウス, ｘ：２００ｍｍ ｙ：１００ｍｍ, 右クリック」として記憶されている。
【００８９】
３行目の操作情報「設計図０１, 画面１００, ポップアップメニュー, マウス, コマンド（移動）, 左クリック」は，図１３のように「移動」コマンドの選択操作を示す。
【００９０】
４行目の操作情報「設計図０１, 画面１００, , マウス, ｘ：５０ｍｍ ｙ：１００ｍｍ, 左クリック」は，図１４のように，座標Ｐ３上でマウスを左クリックを押下し要素群Ｙ１０を移動させる操作を示す。
【００９１】
図１５の要素情報テーブル４８には，「移動」コマンドの選択時に要素情報テーブル４８に記憶された「部品（信号線Ｌ１１）」，「部品（コンデンサＣ１１）」，「部品（グラウンド電源ＧＮＤ１１）」，「図形Ｏｂ１１」及び「文字列ＣＯＭ１１」が記憶されている。
【００９２】
図１５の関数履歴テーブル４９には，図１２〜図１４において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段１行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「Ｍｏｖｅ．ｄｌｌ」のプログラム関数「ＳｅｔＵｎｄｏｔｉｔｌｅ」が最後に実行される前に，２行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「Ｍｏｖｅ．ｄｌｌ」のプログラム関数「ＭｏｖｅＦｉｇｕｒｅ」が実行されたことが示されている。
【００９３】
図１５のログファイル５０のコマンド履歴部１４１には，コマンド名称「移動」の下に，コマンドが完了した旨を意味する「要素属性変更完了」が出力されている（図５のＳ２４）。なお，「移動」よりも上には，図１２の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
【００９４】
ログデータ生成手段４１が「移動」コマンドの完了の旨をログファイルに出力した（図５のＳ２４）後に初期化動作（図５のＳ１３）を行うと，図１５の各テーブル４７〜４９に記憶された操作情報，要素及び実行されたプログラム関数の履歴は全て削除される。
【００９５】
このように「移動」コマンドの正常動作においては，ログデータ生成手段４１は，前回のコマンドの実行完了後から「移動」コマンドの実行完了までの間の操作情報を操作情報テーブル４７に記憶し，選択された要素を要素情報テーブル４８に記憶し，実行された関数を関数履歴テーブル４９に記憶する。ログデータ生成手段４１は「移動」コマンドの実行完了すると，操作情報，要素及び実行されたプログラム関数の履歴は不要であるため，各テーブルから削除しログファイル５０に出力しない。
【００９６】
次に，設計支援プログラム４０の異常終了時の例について説明する。
【００９７】
図１６は，第２の実施の形態における異常終了時に出力されるログファイルの一例である。例えば，設計者が，図１３において「移動」コマンドを選択した後に図１４で座標Ｐ３ではなく抵抗Ｒ１１が配置されている座標（ｘ：２２０ｍｍ，ｙ：１４０ｍｍ）上へカーソルを移動させて左クリックが押下されたとき，設計支援プログラム４０が異常終了したとする（図６のステップＳ３１のＹＥＳ）。この場合，ログデータ生成手段４１は，図５の動作を中断し（図６のステップＳ３２），図１６のように，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９をログファイル５０に出力する（図６のステップＳ３３）。
【００９８】
図１６のログファイル５０のコマンド履歴部１４１は，「移動」コマンドの選択によりログデータ生成手段４１が出力したコマンド名称「移動」が最下段に出力されている（図５のステップＳ１７）。操作情報部１４２には，ログデータ生成手段４１が異常終了により正常動作を中断するまで（図６のステップＳ３２）に操作情報テーブル４７に記憶された操作情報が出力される（図６のステップＳ３３）。要素情報部１４３には，ログデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に要素情報テーブル４８に記憶された要素が出力される（図６のステップＳ３３）。関数履歴部１４４には，グデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に関数履歴テーブル４９に記憶されたプログラム関数が出力される（図６のステップＳ３３）。
【００９９】
設計者より問い合わせを受けた開発者は，図１６のログファイル５０により，信号線Ｌ１１，コンデンサＣ１１，グラウンド電源ＧＮＤ１１，図形Ｏｂ１１及び文字列ＣＯＭ１１に対して（要素情報部１４３の１〜５行目），「移動」コマンドが実行され，抵抗Ｒ１１が配置されている座標（ｘ：２２０ｍｍ，ｙ：１４０ｍｍ）上でマウスの左クリックを押下する操作をしたとき（操作情報部１４２の４行目）に異常終了が発生したことを把握することができる。
【０１００】
さらに，開発者は，関数履歴部１４４に基づいて，パス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「Ｍｏｖｅ．ｄｌｌ」のプログラム関数「ＭｏｖｅＦｉｇｕｒｅ」の実行中に，異常終了が発生したことを把握することができる。
【０１０１】
そして，開発者は，設計者から作成中の設計データ「設計図０１」を受領してログファイル５０に基づいて設計者と同じ操作をしたり，プログラム関数「ＭｏｖｅＦｉｇｕｒｅ」をデバッグしたりする等，迅速に対応をとることができる。
【０１０２】
その結果，開発者は，例えば要素が配置されている座標を選択した場合には警告メッセージを出力する処理がプログラム関数「ＭｏｖｅＦｉｇｕｒｅ」に規定されていなく，プログラム関数「ＭｏｖｅＦｉｇｕｒｅ」に対応していない処理を設計支援装置３０に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
【０１０３】
このように，異常終了が発生したときに，ログデータ生成手段４１が正常動作を中断して，その時点での操作情報テーブル４７，要素情報テーブル４８及び関数履歴テーブル４９とをログファイル５０に出力する。これにより，開発者はログファイル５０に基づいて，異常終了時の状況を把握することができ迅速に対応することができる。
【０１０４】
［第３の実施の形態］
第３の実施の形態では，集積回路のピンの配置を変更する場合の設計支援プログラム４０の動作について説明する。
【０１０５】
図１７は，第３の実施の形態における画面の一例を示す図である。図１２は，設計者が設計データを作成している間における，出力装置１５に表示される画面１００の一例である。設計者は，メニュー１０１から，集積回路の属性を変更するためのコマンドである「ＦＰＧＡエディタ」コマンドを選択し，要素情報テーブルから集積回路の一覧を読み出して任意の集積回路を選択し，選択した集積回路のピンの配置を変更する。まず，設計支援プログラム４０の正常動作時の例について説明する。
【０１０６】
図１７において，設計者は，入力装置１４のマウスを動かしてカーソル３００をメニュー１０１の「ＦＰＧＡエディタ」上に移動させる。そして，設計者は，マウスの左クリックを押下して「ＦＰＧＡエディタ」コマンドを選択する。これにより，「ＦＰＧＡエディタ」コマンドが開始される。
【０１０７】
このとき，ログデータ生成手段４１は，左クリックの押下により「ＦＰＧＡエディタ」コマンドが選択されたという操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。また，当該操作情報はコマンドの選択に該当するため（図５のステップＳ１６のＹＥＳ），選択された「ＦＰＧＡエディタ」コマンドがログファイル５０に出力される（図５のステップＳ１７）。しかし，この時点では要素は選択されていないため（図５のステップＳ１８のＮｏ），要素情報テーブル４８には要素は記憶されない。
【０１０８】
図１８は，第４の実施の形態における集積回路の属性変更操作の一例を示す図である。設計者が「ＦＰＧＡエディタ」コマンドを選択すると，出力装置１５に図１８の集積回路属性変更画面３００が表示される。集積回路属性変更画面３００は，要素情報テーブル４８に記憶されている集積回路の一覧３０２と，一覧３０２から選択した集積回路の編集を開始する編集開始ボタン３０３とを有する。
【０１０９】
設計者は，一覧３０２に表示される集積回路から，編集対象の集積回路を選択する。図１８では，設計者はマウスを動かして，一覧３０２の２列目「モジュール」列の３行目上にカーソル３００を移動させて左クリックを押下し，集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」を選択する。
【０１１０】
このとき，ログデータ生成手段４１は，左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１１１】
そして，設計者はマウスを動かして，編集開始ボタン３０３上にカーソル３００を移動させて，マウスの左クリックを押下して集積回路の編集を開始する。また，この操作により，コマンド実行対象の要素が集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」に確定する。
【０１１２】
このとき，ログデータ生成手段４１は，左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１１３】
さらに，コマンド実行対象の要素が一覧３０２から選択された集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」に確定したため（図５のステップＳ１８のＹＥＳ），ログデータ生成手段４１は，集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」を要素情報テーブル４８に記憶する（図５のステップＳ１９）。
【０１１４】
図１９は，第４の実施の形態における集積回路のピン編集操作画面の一例を示す図である。図１８の編集開始ボタン３０３が押下されると，図１９に示すピン編集画面３０４が出力装置１５に表示される。ピン編集画面３０４は，メニュー３０５と，図１８の集積回路属性画面３００で選択された集積回路が有するピンの一覧３０６と，一覧３０６から選択されたピンを任意の位置に移動させるための４方向（上下左右）の矢印からなる移動ボタン３０７とを有する。
【０１１５】
図２０は，第４の実施の形態における集積回路のピン編集操作の第１の例を示す図である。図２０では，設計者は，ピンの一覧３０６に表示されるピンから，３番目に配置されているピン「５５」と５番目に配置されているピン「５３」とを配置変更する操作を行う。
【０１１６】
まず，設計者はマウスを動かして，一覧３０６の２列目「ピン名」列の３行目上にカーソル３００を移動させて左クリックを押下し，上から３番目に配置されているピン「５５」を選択する。
【０１１７】
このとき，ログデータ生成手段４１は，一覧３０６の２列目３行目上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１１８】
そして，設計者はマウスを動かして，下方向の矢印の移動ボタン３０７上にカーソル３００を移動させて左クリックを押下し，ピン「５５」を３行目から４行目，すなわち４番目の配置に移動させる。これにより４行目にあったピン「５４」は３行目に移動する。
【０１１９】
このとき，ログデータ生成手段４１は，下方向の矢印の移動ボタン３０７上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１２０】
次に，設計者は，再び下方向の矢印の移動ボタン３０７上にカーソル３００を移動させて左クリックを押下し，ピン「５５」を４行目から５行目，すなわち５番目の配置に移動させる。これにより５行目にあったピン「５３」は４行目に移動する。
【０１２１】
このとき，ログデータ生成手段４１は，下方向の矢印の移動ボタン３０７上での左クリックの押下の操作情報を再び操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１２２】
そして，設計者はマウスを動かして，一覧３０６の２列目「ピン名」列の４行目上にカーソル３００を移動させて左クリックを押下し，上から４番目に配置されているピン「５３」を選択する。
【０１２３】
このとき，ログデータ生成手段４１は，一覧３０６の２列目４行目上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１２４】
そして，設計者はマウスを動かして，上方向の矢印の移動ボタン３０７上にカーソル３００を移動させて左クリックを押下し，ピン「５３」を４行目から３行目，すなわち３番目の配置に移動させる。これにより３行目にあったピン「５４」は４行目に移動する。
【０１２５】
このとき，ログデータ生成手段４１は，上方向の矢印の移動ボタン３０７上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１２６】
図２１は，第４の実施の形態における集積回路のピン編集操作の第２の例を示す図である。図２０での操作により，一覧３０６の２列目「ピン名」列の５行目にピン「５３」が移動し，３行目にピン「５５」が移動する。
【０１２７】
設計者はマウスを動かして，メニュー３０５の「閉じる」ボタンの上にカーソル３００を移動させ，左クリックを押下する。これにより，「ＦＰＧＡエディタ」コマンドは完了する。
【０１２８】
このとき，ログデータ生成手段４１は，「閉じる」ボタンの上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１２９】
さらに，「閉じる」ボタン上での左クリックの押下の操作は「ＦＰＧＡエディタ」コマンドの完了操作にも該当するため（図５のＳ２１のＹＥＳ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（図５のＳ２４）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（図５のＳ１３）。
【０１３０】
図２２は，第３の実施の形態における「ＦＰＧＡエディタ」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。図２２は，ログデータ生成手段４１が「ＦＰＧＡエディタ」コマンドの完了の旨のログファイルを出力した（図５のステップＳ２４）ときの，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９及びログファイル５０を示す。
【０１３１】
図２２の操作情報テーブル４７の１行目には，図１７のように，マウスの左クリックを押下してメニュー１０１の「ＦＰＧＡエディタ」コマンドを選択する操作が操作情報「設計図０１, 画面１００, メニュー１０１, マウス, コマンド（ＦＰＧＡエディタ）, 左クリック」として記憶されている。
【０１３２】
２行目には，図１８のように，マウスの左クリックを押下して集積回路属性変更画面３００の一覧３０２の２列目「モジュール」列の３行目を選択する操作が「設計図０１, 集積回路属性変更画面３００, 一覧３０２, マウス, 行：３ 列:２, 左クリック」として記憶されている。
【０１３３】
また，３行目には，マウスの左クリックを押下して編集実行ボタンを選択し集積回路の編集を開始する操作が操作情報「設計図０１, 集積回路属性変更画面３００, , マウス, 編集実行, 左クリック」として記憶されている。
【０１３４】
４行目から６行目までは，図２０のように，ピン編集画面３０４の一覧３０６の２列目３行目（ピン「５５」）を選択して５行目に移動させる操作が記憶されている。そして７行目，８行目には一覧３０６の２列目４行目（ピン「５３」）を選択して３行目に移動させる操作が記憶されている。
【０１３５】
９行目には，マウスの左クリックを押下してピン編集画面３０４のメニュー３０５の「閉じる」ボタンを選択する操作がされたことが，「設計図０１, ピン編集画面３０４, メニュー３０５, マウス, 閉じる, 左クリック」として記憶されている。
【０１３６】
図２２の要素情報テーブル４８には，集積回路属性変更画面３００の編集実行ボタンの選択時に要素情報テーブル４８に記憶された集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」が記憶されている。
【０１３７】
図２２の関数履歴テーブル４９には，図１７〜図２１において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段１行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＦｐｇａＥｄｉｔｏｒ．ｄｌｌ」のプログラム関数「ＳｅｔＵｎｄｏｔｉｔｌｅ」が最後に実行される前に，２行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＦｐｇａＥｄｉｔｏｒ．ｄｌｌ」のプログラム関数「ＭｏｖｅＰｉｎ」が実行されたことが示されている。
【０１３８】
図２２のログファイル５０のコマンド履歴部１４１には，コマンド名称「ＦＰＧＡエディタ」の下に，コマンドが完了した旨を意味する「ＦＰＧＡエディタ完了」が出力されている（図５のＳ２４）。なお，「ＦＰＧＡエディタ」よりも上には，図１７の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
【０１３９】
ログデータ生成手段４１が「ＦＰＧＡエディタ」コマンドの完了の旨をログファイルに出力した（図５のＳ２４）後に初期化動作（図５のＳ１３）を行うと，図２２の各テーブル４７〜４９に記憶された操作情報，要素及び実行されたプログラム関数の履歴は全て削除される。
【０１４０】
このように「ＦＰＧＡエディタ」コマンドの正常動作においては，ログデータ生成手段４１は，前回のコマンドの実行完了後から「ＦＰＧＡエディタ」コマンドの実行完了までの間の操作情報を操作情報テーブル４７に記憶し，「ＦＰＧＡエディタ」コマンド開始後に選択された集積回路を要素情報テーブル４８に記憶し，実行された関数を関数履歴テーブル４９に記憶する。ログデータ生成手段４１は「ＦＰＧＡエディタ」コマンドの実行完了すると，操作情報，要素及び実行されたプログラム関数の履歴は不要であるため，各テーブルから削除しログファイル５０に出力しない。
【０１４１】
次に，設計支援プログラム４０の異常終了時の例について説明する。
【０１４２】
図２３は，第２の実施の形態における異常終了時に出力されるログファイルの一例である。例えば，設計者が，図１９において一覧３０６から移動対象のピンを選択せずに移動ボタン３０７を選択したとき，設計支援プログラム４０が異常終了したとする（図６のステップＳ３１のＹＥＳ）。この場合，ログデータ生成手段４１は，図５の動作を中断し（図６のステップＳ３２），図２３のように，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９をログファイル５０に出力する（図６のステップＳ３３）。
【０１４３】
図２３のログファイル５０のコマンド履歴部１４１は，「ＦＰＧＡエディタ」コマンドの選択によりログデータ生成手段４１が出力したコマンド名称「ＦＰＧＡエディタ」が最下段に出力されている（図５のステップＳ１７）。操作情報部１４２には，ログデータ生成手段４１が異常終了により正常動作を中断するまで（図６のステップＳ３２）に操作情報テーブル４７に記憶された操作情報が出力される（図６のステップＳ３３）。要素情報部１４３には，ログデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に要素情報テーブル４８に記憶された要素が出力される（図６のステップＳ３３）。関数履歴部１４４には，グデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に関数履歴テーブル４９に記憶されたプログラム関数が出力される（図６のステップＳ３３）。
【０１４４】
設計者より問い合わせを受けた開発者は，図２３のログファイル５０により，集積回路「ＡＬＭ＿ＣＰＬＤ＿ＥＰＭ５７０Ｆ２５６Ｃ５」に対して（要素情報部１４３の１行目），「ＦＰＧＡエディタ」が実行されたことを把握することができる（操作情報部１４２の１〜３行目）。
【０１４５】
また，開発者は，集積回路属性変更画面３００の編集実行ボタンを選択した後に（操作情報部１４２の３行目），ピン編集画面３０４の下方向の移動ボタン３０７を選択したときに異常終了が発生したことを把握することができる（操作情報部１４２の４行目）。
【０１４６】
さらに，開発者は，関数履歴部１４４に基づいて，パス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＦｐｇａＥｄｉｔｏｒ.ｄｌｌ」のプログラム関数「ＭｏｖｅＰｉｎ」の実行中に，異常終了が発生したことを把握することができる。
【０１４７】
そして，開発者は，設計者から作成中の設計データ「設計図０１」を受領してログファイル５０に基づいて設計者と同じ操作をしたり，プログラム関数「ＭｏｖｅＰｉｎ」をデバッグしたりする等，迅速に対応をとることができる。
【０１４８】
その結果，開発者は，例えば移動対象のピンを選択せずに移動ボタンを選択した場合に警告メッセージを出力する処理がプログラム関数「ＭｏｖｅＰｉｎ」に規定されていなく，プログラム関数「ＭｏｖｅＰｉｎ」に対応していない処理を設計支援装置３０に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
【０１４９】
このように，異常終了が発生したときに，ログデータ生成手段４１が正常動作を中断して，その時点での操作情報テーブル４７，要素情報テーブル４８及び関数履歴テーブル４９とをログファイル５０に出力する。これにより，開発者はログファイル５０に基づいて，異常終了時の状況を把握することができ迅速に対応することができる。
【０１５０】
［第４の実施の形態］
第４の実施の形態では，設計者が要素定義情報テーブル２３から部品を検索して設計図表示部１０４に部品を配置する操作をした場合の設計支援プログラム４０の動作について説明する。まず，設計支援プログラムの正常動作時の例について説明する。
【０１５１】
図２４は，第４の実施の形態における出力装置に表示される画面の第１の例を示す図である。図２４は，設計図表示部１０４に何も要素が配置されていないときの画面１００の一例である。
【０１５２】
まず，設計者は入力装置１４のマウスを動かして，メニュー１０１の「部品配置」コマンドボダン上にカーソル４００を移動させて，マウスの左クリックを押下して「部品配置」コマンドボダンを選択する。これにより「部品配置」コマンドが開始される。
【０１５３】
このとき，ログデータ生成手段４１は，左クリックの押下により「部品配置」コマンドを選択する操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ１４）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。また，当該操作情報はコマンドの選択に該当するため（図５のステップＳ１６のＹＥＳ），選択された「部品配置」コマンドがログファイル５０に出力される（図５のステップＳ１７）。しかし，要素は選択されていないため（図５のステップＳ１８のＮｏ），この時点では要素情報テーブル４８には要素は記憶されない。
【０１５４】
図２５は，第４の実施の形態における部品選択部の一例である。図２４にてメニュ１０１の「部品配置」コマンドボタンが選択されると，部品選択部１０５に図２５の部品入力画面４０１が表示される。部品入力画面４０１は，部品の型番を入力するライブラリアクセスキー欄４０２と，ライブラリアクセスキー欄４０２に入力された型番に該当する要素を要素定義情報テーブル２３から検索する検索ボタン４０３と，その検索結果を表示する検索結果欄４０４とを有する。
【０１５５】
設計者はマウスを動かして，部品入力画面４０１のライブラリアクセスキー欄４０２上にカーソル４００を移動させ，マウスの左クリックを押下してライブラリアクセスキー欄４０２を選択する。
【０１５６】
このとき，ログデータ生成手段４１は，ライブラリアクセスキー欄４０２上での左クリックの押下の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１５７】
そして，設計者はキーボードを使用してライブラリアクセスキー欄４０２に型番「ＣＡ４６５」を入力する。
【０１５８】
このとき，ログデータ生成手段４１は，型番「ＣＡ４６５」の入力の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１５９】
設計者はマウスを動かして，検索ボタン４０３上にカーソル４００を移動させ，マウスの左クリックを押下して検索ボタン４０３を選択する。これにより，要素定義情報テーブル２３の要素のうち型番「ＣＡ４６５」に該当する部品の検索が行われる。そして，検索結果として，ＣＡ４６５を含む型番が検索結果欄４０４に表示される。
【０１６０】
このとき，ログデータ生成手段４１は，検索ボタン４０３の選択の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１６１】
設計者はマウスを動かして，検索結果欄４０４の１行目の部品「ＣＡ４６５００−０００２」上にカーソル４００を移動させ，マウスの左クリックを押下して部品「ＣＡ４６５００−０００２」を選択する。これにより，「部品配置」コマンドの対象の要素が部品「ＣＡ４６５００−０００２」であることが確定する。
【０１６２】
このとき，ログデータ生成手段４１は，部品「ＣＡ４６５００−０００２」の選択の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２２）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。さらに，当該操作によりコマンドの対象となる要素が部品「ＣＡ４６５００−０００２」に確定したため（図５のステップＳ１８のＹＥＳ），ログデータ生成手段４１は，部品「ＣＡ４６５００−０００２」を要素情報テーブル４８に記憶する（図５のステップＳ１９）。
【０１６３】
図２６は，第４の実施の形態における出力装置に表示される画面の第２の例を示す図である。
【０１６４】
設計者は図２５の部品入力画面４０１で部品「ＣＡ４６５００−０００２」を選択した後，図２６のように，マウスを動かしてカーソル４００を画面１００の設計図表示部１０４における座標Ｐ４（Ｘ：４００ｍｍ  Ｙ：２１０ｍｍ）上に移動させ，マウスの左クリックを押下する。これにより，部品「ＣＡ４６５００−０００２」が座標Ｐ４に配置され，「部品配置」コマンドが完了する。
【０１６５】
このとき，ログデータ生成手段４１は，座標Ｐ４上でのマウスの左クリック押下操作の操作情報を操作検出手段２１から取得し，操作情報テーブル４７に記憶する（図５のステップＳ２０）。それとともに，ログデータ生成手段４１は，設計者の操作に応じて実行されたプログラム関数の履歴を関数履歴テーブル４９に記憶する（図５のステップＳ１５）。
【０１６６】
さらに，座標Ｐ４上での左クリックの押下の操作は「部品配置」コマンドの完了操作にも該当するため（図５のＳ２１のＹＥＳ），ログデータ生成手段４１は，コマンドの完了の旨をログファイルに出力する（図５のＳ２４）。ステップ２４の後ステップＳ１３に戻り，ログデータ生成手段４１は，操作情報テーブル４７と要素情報テーブル４８と関数履歴テーブル４９とを初期化する（図５のＳ１３）。
【０１６７】
図２７は，第４の実施の形態における「部品配置」コマンド完了時の操作情報テーブル，要素情報テーブル，関数履歴テーブル及びログファイルの一例を示す図である。図２７は，ログデータ生成手段４１が「部品配置」コマンドの完了の旨のログファイルを出力した（図５のステップＳ２４）ときの，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９及びログファイル５０を示す。
【０１６８】
図２７の操作情報テーブル４７の１行目には，図２４のように，「部品配置」コマンドを実行するために行われた，マウスの左クリックを押下して「部品配置」コマンドボダンを選択する操作が，操作情報「設計図０１, 画面１００, メニュー１０１, マウス,コマンド（部品入力）, 左クリック」として記憶されている。
【０１６９】
２〜８行目には，図２５のように，部品入力画面４０１のライブラリアクセスキー欄４０２を選択して（２行目）型番「ＣＡ４６５」を入力し（３行目〜７行目），「ＣＡ４６５」を含む型番を検索するために検索ボタン４０３を選択する（８行目）操作情報が記憶されている。
【０１７０】
９行目には，マウスの左クリックを押下して検索結果の１行目（部品「ＣＡ４６５００−０００２」）を選択する操作が操作情報「設計図０１, 部品入力画面４０１, 検索結果欄４０４, マウス, 行：１, 左クリック」として記憶されている。
【０１７１】
そして，１０行目には，図２６のように，選択した部品「ＣＡ４６５００−０００２」を配置するために設計図表示部１０４の座標Ｐ４（Ｘ：４００ｍｍ  Ｙ：２１０ｍｍ）上でマウスの左クリックを押下する操作が，操作情報「設計図０１, 画面１００, , マウス, ｘ：４００ｍｍ ｙ：２１０ｍｍ, 左クリック」として記憶されている。
【０１７２】
図２７の要素情報テーブル４８には，検索結果から選択された部品「ＣＡ４６５００−０００２」が記憶されている。
【０１７３】
図２７の関数履歴テーブル４９には，図２４〜図２６において設計者の操作により実行されたプログラム関数が下から順に記憶されている。最上段１行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＴｏｏｌＡｄｄＦｉｇ．ｄｌｌ」のプログラム関数「ＳｅｔＵｎｄｏｔｉｔｌｅ」が最後に実行される前に，２行目のパス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＴｏｏｌＡｄｄＦｉｇ．ｄｌｌ」のプログラム関数「ＡｄｄＦｉｇ」が実行されたことが示されている。
【０１７４】
図２７のログファイル５０のコマンド履歴部１４１には，コマンド名称「部品配置」の下に，コマンドが完了した旨を意味する「部品配置完了」が出力されている（図５のＳ２４）。なお，「部品配置」よりも上には，図２４の操作の前に設計者が実行したコマンドの名称及びコマンド完了の旨が出力されている。
【０１７５】
ログデータ生成手段４１が「部品配置」コマンドの完了の旨をログファイルに出力した（図５のＳ２４）後に初期化動作（図５のＳ１３）を行うと，図２７の各テーブル４７〜４９に記憶された操作情報，要素及び実行されたプログラム関数の履歴は全て削除される。
【０１７６】
このように「部品配置」コマンドの正常動作においては，ログデータ生成手段４１は，前回のコマンドの実行完了後から「部品配置」コマンドの実行完了までの間の操作情報を操作情報テーブル４７に記憶し，要素定義情報テーブル２３の検索結果から選択された要素を要素情報テーブル４８に記憶し，実行された関数を関数履歴テーブル４９に記憶する。ログデータ生成手段４１は「部品配置」コマンドの実行完了すると，操作情報，要素及び実行されたプログラム関数の履歴は不要であるため，各テーブルから削除しログファイル５０に出力しない。
【０１７７】
次に，設計支援プログラム４０の異常終了時の例について説明する。
【０１７８】
図２８は，第４の実施の形態における異常終了時に出力されるログファイルの一例である。
【０１７９】
例えば，設計者が，図２５においてライブラリアクセスキーに型番「ＣＡ９９９」を入力して要素定義情報テーブル２３の検索を実行したとき，「ＣＡ９９９」を含む型番が要素定義情報テーブル２３に存在せず検索結果が０件となった場合に設計支援プログラム４０が異常終了したとする（図６のステップＳ３１のＹＥＳ）。この場合，ログデータ生成手段４１は，図５の動作を中断し（図６のステップＳ３２），図２８のように，操作情報テーブル４７，要素情報テーブル４８，関数履歴テーブル４９をログファイル５０に出力する（図６のステップＳ３３）。
【０１８０】
図２８のログファイル５０のコマンド履歴部１４１は，「部品配置」コマンドの選択によりログデータ生成手段４１が出力したコマンド名称「部品配置」が最下段に出力されている（図５のステップＳ１７）。操作情報部１４２には，ログデータ生成手段４１が異常終了により正常動作を中断するまで（図６のステップＳ３２）に操作情報テーブル４７に記憶された操作情報が出力される（図６のステップＳ３３）。要素情報部１４３には，ログデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に要素情報テーブル４８に記憶された要素が出力される（図６のステップＳ３３）。なお，図２８においては，異常終了が発生した時点では要素情報テーブル４８に要素が記憶されていないため，要素情報部１４３は０件である。関数履歴部１４４には，グデータ生成手段４１が異常終了により動作を中断するまで（図６のステップＳ３２）に関数履歴テーブル４９に記憶されたプログラム関数が出力される（図６のステップＳ３３）。
【０１８１】
設計者より問い合わせを受けた開発者は，図２８のログファイル５０の操作情報部１４２により，画面１００のメニュー１０１から「部品配置」コマンドが実行され（操作情報部１４２の１行目），部品入力画面４０１のライブラリアクセスキー欄４０２に「ＣＡ９９９」が入力されて検索が実行されたとき（操作情報部１４２の２行目〜８行目），異常終了が発生したことを把握することができる。
【０１８２】
さらに，開発者は，関数履歴部１４４に基づいて，パス「Ｃ：￥Ｐｒｏｇｒａｍｆｉｌｅｓ￥ＢＰ」にあるモジュール「ＴｏｏｌＡｄｄＦｉｇ」のプログラム関数「ＡｄｄＦｉｇ」の実行中に，異常終了が発生したことを把握することができる。
【０１８３】
そして，開発者は，設計者から作成中の設計データ「設計図０１」を受領してログファイル５０に基づいて設計者と同じ操作をしたり，プログラム関数「ＡｄｄＦｉｇ」をデバッグしたりする等，迅速に対応をとることができる。
【０１８４】
その結果，開発者は，例えば検索結果が０件の場合には警告メッセージを出力する処理がプログラム関数「ＡｄｄＦｉｇ」に規定されていなく，プログラム関数「ＡｄｄＦｉｇ」に対応していない処理を設計支援装置３０に実行させる操作がされたために異常終了が起きた等の異常終了の原因を発見することができる。
【０１８５】
このように，異常終了が発生したときに，ログデータ生成手段４１が正常動作を中断して，その時点での操作情報テーブル４７，要素情報テーブル４８及び関数履歴テーブル４９とをログファイル５０に出力する。これにより，開発者はログファイル５０に基づいて，異常終了時の状況を把握することができ迅速に対応することができる。
【０１８６】
以上の実施の形態をまとめると，次の付記のとおりである。
【０１８７】
（付記１）
コンピュータに要素が配置された回路基板の設計データを生成させる設計支援プログラムにおいて，
前記コンピュータに，
操作入力に応答して操作情報を操作記憶部に記憶する操作情報記憶工程と，
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，
前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，
前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを実行させる設計支援プログラム。
【０１８８】
（付記２）
付記１において，
さらに，前記コンピュータに，
前記所定の機能の正常終了を検出したとき，前記関数履歴記憶部，前記操作情報記憶部及び前記要素情報記憶部を初期化する初期化工程を実行させる設計支援プログラム。
【０１８９】
（付記３）
付記１において，
前記操作入力が，前記プログラムの関数に対応していない処理を前記コンピュータに実行させる操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【０１９０】
（付記４）
付記３において，
前記所定の機能は，前記選択された要素の名称の変更であって，
前記操作入力が前記プログラムの関数が入力可能であると規定していない名称を入力する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【０１９１】
（付記５）
付記３において，
前記所定の機能は，前記選択された要素の移動であって，
前記操作入力が前記選択された要素を他の要素の上に移動する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【０１９２】
（付記６）
付記３において，
前記所定の機能は，前記選択された要素である集積回路のピンの配置変更であって，
前記操作入力が，配置変更の対象となるピンを指定せずにピンを移動させる操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【０１９３】
（付記７）
付記３において，
前記操作入力が前記要素を定義する要素定義情報に存在しない要素を検索する操作入力である場合，前記コンピュータに前記異常終了を検出させる設計支援プログラム。
【０１９４】
（付記８）
付記１において，
前記要素情報記憶工程では，前記コマンド操作の前の操作入力により選択された要素を取得して要素記憶部に記憶する設計支援プログラム。
【０１９５】
（付記９）
付記１において，
前記要素情報記憶工程では，前記コマンド操作の後の操作入力により選択された要素を取得して要素記憶部に記憶する設計支援プログラム。
【０１９６】
（付記１０）
コンピュータにより，要素が配置された集積回路の設計データが生成される設計支援方法において，
前記コンピュータが，操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶工程と，
前記コンピュータが，前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶工程と，
前記コンピュータが，前記設計データを生成する所定の機能をコンピュータに実行させるコマンド操作が検出された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶工程と，
前記コンピュータが，前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力工程とを有する設計支援方法。
【０１９７】
（付記１１）
要素が配置された集積回路の設計データを生成する設計支援装置において，
操作入力に応答して操作情報を操作情報記憶部に記憶する操作情報記憶手段と，
前記操作入力に基づいて実行されたプログラムの関数を関数履歴記憶部に記録する実行関数記憶手段と，
前記設計データを生成する所定の機能を前記設計支援装置に実行させるコマンド操作が入力された場合に，選択された要素を取得して要素情報記憶部に記憶する要素情報記憶手段と，
前記所定の機能の異常終了を検出し，前記関数履歴記憶部の関数，前記操作情報記憶部の操作情報及び前記要素情報記憶部の要素をログファイルに出力するログ出力手段とを有する設計支援装置。
【符号の説明】
【０１９８】
１０  ：設計支援装置
１１  ：ＣＰＵ
１２  ：ＲＯＭ
１３  ：ＲＡＭ
１４  ：入力装置
１５  ：出力装置
１６  ：バス
２０，４０：設計支援プログラム
２１  ：操作検出手段
２２  ：設計データ生成手段
２３  ：要素定義情報テーブル
２４  ：設計情報テーブル
２５  ：ログファイル出力手段
２６，５０  ：ログファイル
１００  ：画面
１０１  ：メニュー
１０２  ：要素制御部
１０３  ：基板選択部
１０４  ：設計図表示部
１０５  ：部品選択部
１０６  ：メッセージ部
１１０，１４１  ：コマンド履歴部
１１１，１４４  ：関数履歴部
１４２  ：操作情報部
１４３  ：要素情報部
４１  ：ログデータ生成手段
４２  ：操作情報記憶手段
４３  ：要素情報記憶手段
４４  ：実行関数記憶手段
４５  ：ログ出力手段
４６  ：コマンド履歴出力手段
４７  ：操作情報テーブル
４８  ：要素情報テーブル
４９  ：関数履歴テーブル
【図１】
2014086044.tif 000003
【図２】
2014086044.tif 000004
【図３】
2014086044.tif 000005
【図４】
2014086044.tif 000006
【図５】
2014086044.tif 000007
【図６】
2014086044.tif 000008
【図７】
2014086044.tif 000009
【図８】
2014086044.tif 000010
【図９】
2014086044.tif 000011
【図１０】
2014086044.tif 000012
【図１１】
2014086044.tif 000013
【図１２】
2014086044.tif 000014
【図１３】
2014086044.tif 000015
【図１４】
2014086044.tif 000016
【図１５】
2014086044.tif 000017
【図１６】
2014086044.tif 000018
【図１７】
2014086044.tif 000019
【図１８】
2014086044.tif 000020
【図１９】
2014086044.tif 000021
【図２０】
2014086044.tif 000022
【図２１】
2014086044.tif 000023
【図２２】
2014086044.tif 000024
【図２３】
2014086044.tif 000025
【図２４】
2014086044.tif 000026
【図２５】
2014086044.tif 000027
【図２６】
2014086044.tif 000028
【図２７】
2014086044.tif 000029
【図２８】
2014086044.tif 000030