"実装基板製造装置の駆動部の動作を制御するための制御プログラムにおける、複数のモジュールで構成される前記制御プログラムのモジュール単位での開発を、コンピュータにより支援する開発支援方法であって、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表であって、前記複数のモジュールうちの1つである対象モジュールの前記状態遷移表の入力を受け付ける状態遷移表取得ステップと、前記状態遷移表取得ステップで取得された前記状態遷移表から前記対象モジュールのソースコードを生成するソースコード生成ステップと、前記ソースコード生成ステップで生成された前記ソースコードをコンパイルして、前記対象モジュールのオブジェクトを生成するコンパイルステップと、前記ソースコード生成ステップで生成された前記ソースコードから大域変数及び前記対象モジュールで呼び出される外部関数の一覧を生成する一覧生成ステップと、前記一覧生成ステップで生成された前記大域変数及び前記外部関数の戻り値それぞれの取り得る値の入力を受け付ける値入力ステップと、前記値入力ステップで入力された値の範囲内において、前記大域変数の設定値、及び/又は、前記外部関数の戻り値を含むテストシナリオを取得するテストシナリオ取得ステップと、前記テストシナリオ取得ステップで取得された前記テストシナリオに沿って、前記コンパイルステップで生成された前記オブジェクトをテスト実行するテスト実行ステップとを含み、前記テスト実行ステップでは、前記外部関数の呼び出しに対して、前記大域変数の設定値、及び/又は、前記外部関数の戻り値を前記テストシナリオから取得し、取得した前記戻り値を返すことによって、前記オブジェクトをテスト実行する開発支援方法。前記シナリオ取得ステップでは、前記値入力ステップで入力された前記大域変数及び前記外部関数の戻り値それぞれのリストを表示し、表示されたリストから前記大域変数及び前記外部関数の戻り値の組み合わせをユーザに選択させることによって、前記テストシナリオを生成する請求項1に記載の開発支援方法。前記シナリオ取得ステップでは、前記値入力ステップで入力された前記大域変数及び前記外部関数の戻り値の全ての組み合わせを網羅した前記テストシナリオを自動生成する請求項1に記載の開発支援方法。該開発支援方法は、さらに、直近に実行された命令に対応する前記状態遷移表上の現在位置と、当該現在位置に至るまでの前記状態遷移表上の軌跡とを表示する表示ステップを含む請求項1~3のいずれか1項に記載の開発支援方法。請求項1~4のいずれか1項に記載の開発支援方法を、コンピュータに実行させるプログラム。しかし、上述のソフトウェア設計ツールにおいて、実際にシミュレーションテストを実施しようとすると、別の開発ツールで別途テスト用モジュールを作成しなければならない。すなわち、各テスト用モジュールをカスタム作成しなければならず、開発ツールとして利用されにくいという課題がある。本発明は、上記の課題に鑑みてなされたものであり、モジュール単位での開発からテストまでを連携して行なうことができる開発支援プログラムを提供することを目的とする。本発明の一形態に係る開発支援方法は、実装基板製造装置の駆動部の動作を制御するための制御プログラムにおける、複数のモジュールで構成される前記制御プログラムのモジュール単位での開発を、コンピュータにより支援する方法である。具体的には、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表であって、前記複数のモジュールうちの1つである対象モジュールの前記状態遷移表の入力を受け付ける状態遷移表取得ステップと、前記状態遷移表取得ステップで取得された前記状態遷移表から前記対象モジュールのソースコードを生成するソースコード生成ステップと、前記ソースコード生成ステップで生成された前記ソースコードをコンパイルして、前記対象モジュールのオブジェクトを生成するコンパイルステップと、前記ソースコード生成ステップで生成された前記ソースコードから大域変数及び前記対象モジュールで呼び出される外部関数の一覧を生成する一覧生成ステップと、前記一覧生成ステップで生成された前記大域変数及び前記外部関数の戻り値それぞれの取り得る値の入力を受け付ける値入力ステップと、前記値入力ステップで入力された値の範囲内において、前記大域変数の設定値、及び/又は、前記外部関数の戻り値を含むテストシナリオを取得するテストシナリオ取得ステップと、前記テストシナリオ取得ステップで取得された前記テストシナリオに沿って、前記コンパイルステップで生成された前記オブジェクトをテスト実行するテスト実行ステップとを含む。そして、前記テスト実行ステップでは、前記外部関数の呼び出しに対して、前記大域変数の設定値、及び/又は、前記外部関数の戻り値を前記テストシナリオから取得し、取得した前記戻り値を返すことによって、前記オブジェクトをテスト実行する。このように、大域変数及び/又は外部関数の戻り値等を含むテストシナリオを定義しておき、対象モジュールのオブジェクトのテスト実行時に、テストシナリオに定義された値を各変数に設定することにより、全てのモジュールが完成するのを待つことなく、モジュール単位でのテストが可能となる。また、状態遷移表からソースコードを生成し、ソースコードからオブジェクト、大域変数の一覧、及び外部関数の一覧を生成し、これらを基にして作成されたテストシナリオに沿って当該オブジェクトのテスト実行を行なうので、1つのツール上で、開発からテストまでを連携して行なうことが可能となる。一例として、前記シナリオ取得ステップでは、前記値入力ステップで入力された前記大域変数及び前記外部関数の戻り値それぞれのリストを表示し、表示されたリストから前記大域変数及び前記外部関数の戻り値の組み合わせをユーザに選択させることによって、前記テストシナリオを生成してもよい。これにより、大域変数及び外部関数の戻り値それぞれの取り得る値のうち、必要な組み合わせのみについてテストを行なうことができる。他の例として、前記シナリオ取得ステップでは、前記値入力ステップで入力された前記大域変数及び前記外部関数の戻り値の全ての組み合わせを網羅した前記テストシナリオを自動生成してもよい。これは、例えば、ホワイトボックステスト経路組み合わせ網羅等を行なう場合等に有効である。さらに、該開発支援方法は、直近に実行された命令に対応する前記状態遷移表上の現在位置と、当該現在位置に至るまでの前記状態遷移表上の軌跡とを表示する表示ステップを含んでもよい。これにより、オブジェクトが予期せぬ動作バグをした場合でも、容易に原因を特定することができる。本発明の一形態に係るプログラムは、上記記載の開発支援方法を、コンピュータに実行させる。本発明によれば、大域変数及び/又は外部関数の戻り値等を含むテストシナリオを定義しておき、対象モジュールのオブジェクトのテスト実行時に、テストシナリオに定義された値を各変数に設定することにより、全てのモジュールが完成するのを待つことなく、モジュール単位でのテストが可能となる。図1は、本発明の実施の形態における部品実装システムの外観図である。本実施の形態における部品実装システム1000は、部品実装機100と、部品実装機100を制御する制御装置200とを備えている。なお、図1では、制御装置200を部品実装機100とは別体として図示しているが、部品実装機100内に制御装置200を設けてもよい。部品実装機100は、上流から基板回路基板20を受け取り、その基板20に対して部品を実装し、その部品が実装された基板20を下流側に送り出す。なお、部品実装機100によって部品が実装された基板20を、以下、実装基板という。具体的には、部品実装機100は、複数種の部品を供給する2つの部品供給部115a、115bと、基板20を部品実装機100の内部に搬入する搬入口130とを備える。部品実装機100は、搬入口130から搬入された基板20を、所定位置で停止させる。そして、部品実装機100は、部品供給部115a、115bから供給される部品を順次取り出し、所定位置で停止している基板20に対して、取り出した部品を実装する。また、部品実装機100は、部品供給部115a、115bから供給された部品、当該部品を実装する前の基板20、及び基板20に実装された後の部品の状態等を、撮像装置等を用いて認識する。制御装置200は、部品実装機100による部品の実装条件などを決定して、その実装条件に沿って実装が行われるように部品実装機100を制御する。図2は、部品実装機100の内部の主要な機械的構成を示す構成図である。部品実装機100は、基板20に対して部品を実装する2つの実装ユニット110a、110bと、基板20を搬送するための一対の基板搬送レール122a、122bと、一対のビーム駆動ロボット140とを備えている。2つの実装ユニット110a、110bは、協調して基板搬送レール122a、122b上にある基板20に対して部品を実装する。実装ユニット110a及び実装ユニット110bは、それぞれ同様の構成を有している。つまり、実装ユニット110aは、部品供給部115a、部品検査部116a、ヘッド112a、及びビーム121aを備えている。同様に、実装ユニット110bは、部品供給部115b、部品検査部116b、ヘッド112b、及びビーム121bを備えている。ここで、実装ユニット110aの詳細な構成について説明する。なお、実装ユニット110bの詳細な構成については、実装ユニット110aと同様であるため省略する。部品供給部115aは、部品テープを収納する複数の部品カセットフィーダ114の配列からなる。また、部品供給部115aの各部品カセット114は、基板20の搬送方向X軸方向に沿って配列している。なお、部品テープとは、例えば、同一部品種の複数の部品がテープキャリアテープ上に並べられたものであり、リール等に巻かれた状態で供給される。また、部品テープに並べられる収納される部品は、例えばチップ部品であって、具体的には0402チップ部品や1005チップ部品などである。ヘッド112aは、例えばマルチ装着ヘッドと呼ばれるヘッドであって、複数の吸着ノズル以下、単にノズルというを備えることができる。例えば、部品供給部115aから10個の部品を吸着して基板20に装着することができる。このようなヘッド112aは、軸状に構成されたビーム121aに対してスライド自在に取り付けられている。ヘッド112aは、例えば、モータなどのアクチュエータの駆動により、ビーム121aに沿って移動する。また、ヘッド112aには、部品を実装する前の基板20の状態、及び基板20に実装された後の部品の状態等を検査する基板検査部図示省略が設けられている。ビーム121aは、基板20の搬送方向X軸方向と垂直な方向Y軸方向に沿って互いに平行に配置された一対のビーム駆動ロボット140上に、Y軸方向にスライド自在に取り付けられている。したがって、ビーム121aは、例えばモータなどのアクチュエータの駆動により、一対のビーム駆動ロボット140上をY軸方向に沿って移動する。すなわち、ヘッド112aは、ビーム駆動ロボット140およびビーム121aによってX軸方向およびY軸方向に移動する。基板搬送レール122a、122bは、それぞれX軸方向に対して平行となるように配置されている。ここで、基板搬送レール122aは、部品供給部115a側に寄せて固定されている。一方、基板搬送レール122bは、搬送される基板20のサイズ幅に応じてY軸方向に移動する。部品実装機100の搬入口130から搬入された基板20は、一対の基板搬送レール122a、122b上に沿って搬送されてストッパーなどにより所定位置で停止される。部品検査部116aは、ヘッド112aに吸着された部品の形状や吸着状態を2次元又は3次元的に検査するために用いられる。また、部品検査部116aは、部品供給部115aにおけるX軸方向に沿った中央付近に配置されている。このように構成された部品実装機100において、ヘッド112aは、部品供給部115aから供給される部品を吸着して基板20上に移動し、吸着している部品をその基板20の各実装点に装着し、部品供給部115a上に移動するという一連の動作を繰り返し実行する。ヘッド112bも同様に、部品供給部115bから供給される部品を吸着して基板20上に移動し、吸着している部品をその基板20の各実装点に装着し、部品供給部115b上に移動するという一連の動作を繰り返し実行する。このように実行される一連の動作、または1回あたりの一連の動作でヘッドに吸着される部品群を、以下、タスクという。また、実装点とは、基板20上の部品が実装されるべき位置である。ヘッド112aによる1つのタスクの例を具体的に説明する。まず、ヘッド112aは、X軸方向およびY軸方向に移動しながら、部品供給部115aの各部品カセット114から供給される1タスク分の部品を吸着する。その後、ヘッド112aは、部品検査部116a上を一定速度で移動する、或いは一時停止することにより、吸着している部品を部品検査部116aに撮像させ、基板20の実装領域上に入る前のポイントである突入ポイントに到達する。そして、ヘッド112aは、その突入ポイントから所定のタイミングで移動を開始して基板20の実装領域上に入る。なお、突入ポイントは複数点あってもよい。なお、実装領域とは、基板20の実装点が存在する領域であって、基板20の一部の領域や全ての領域であってもよい。実装領域上に入ったヘッド112aは、X軸方向およびY軸方向に移動しながら、吸着している部品をそれぞれ各実装点に装着する。1タスク分の全ての部品の装着が完了すると、ヘッド112aは、基板20の実装領域上から出て部品供給部115a上に移動する。一方、ヘッド112bも上述のヘッド112aの動作と同様の動作を行うが、ヘッド112a、112bは、それぞれが干渉することがないように、つまり、それぞれが同時に基板20の実装領域上の干渉する領域に入ることがないように、互いに協調して動作する。図3は、ヘッド112aと部品カセット114との位置関係を示す模式図である。上述のように、ヘッド112aには、例えば最大10個のノズルnzをX軸方向に配列させて取り付けることが可能である。10個のノズルnzが取り付けられたヘッド112aは、例えば、最大10個の部品カセット114のそれぞれから部品を順次、或いは同時に1回の上下動作で吸着することができる。同様に、ヘッド112bも例えば最大10個のノズルnzを取り付けることができる。なお、本発明では、ヘッド112a、112bに取り付けられるノズルnzの数は10個以外でもよく、X軸方向に沿うノズルnzの列を、Y軸方向に複数列取り付けてもよい。図4は、部品を収めた部品テープ及びリールの例を示す図である。チップ形電子部品などの部品423dは、図4に示すキャリアテープ424に保持されている。キャリアテープ424には、一定間隔で連続的に形成された複数の収納凹部424aが設けられている。部品は、この収納凹部424aに収納されている。さらに、キャリアテープ424の上面部品を取り出す側には、カバーテープ425が貼付けられている。カバーテープ425が貼り付けられたキャリアテープ424は、リール426に所定の数量分だけ巻回されたテーピング形態でユーザに供給される。このようなキャリアテープ424およびカバーテープ425によって部品テープが構成される。なお、部品テープの構成は、図4に示す構成以外の他の構成であってもよい。本実施の形態における部品実装機100では、上述のようにヘッド112a、112bがそれぞれ同時に基板20の実装領域上の干渉する領域に入ることがないように互いに強調して動作する。その結果、この部品実装機100は、いわゆる交互打ちと非交互打ちとを実行する。交互打ちとは、ヘッド112aによる1タスク分の部品の装着と、ヘッド112bによる1タスク分の部品の装着とが交互に行われる動作である。一方、非交互打ちとは、ヘッド112aまたはヘッド112bによる1タスク分の部品の装着が繰り返し連続して同じヘッドで行われる動作である。図5は、本実施の形態における部品実装機100の制御系の機能構成を示すブロック図である。本実施の形態における部品実装機100は、入力部151、表示部152、ヘッド制御部153、制御部154、通信部155、および格納部156を備えている。入力部151は、例えばキーボードやマウスなどで構成されており、オペレータユーザからの操作を受け付けて、その操作結果をヘッド制御部153や制御部154などに通知する。表示部152は、例えば液晶ディスプレイなどで構成されており、ヘッド制御部153などの動作状態を表示したり、格納部156などに格納されているデータを表示したりする。制御部154は、入力部151に受け付けられた操作や、通信部155で受信されたデータに応じて、部品検査部116a、116b、表示部152、及びヘッド制御部153などを制御する。また、制御部154は、基板20を搬送するためのモータなどを制御して、基板20を適切な位置に搬送する。通信部155は、制御装置200と通信する。例えば、通信部155は、基板20の各実装点に関する情報などを示すNCデータ156aと、各部品に関する情報を示す部品ライブラリ156bと、部品カセット114の配列や部品の実装順序などの実装条件を示す実装条件データ156cとを制御装置200から取得して、それらを格納部156に格納する。なお、図5では、制御装置200と制御部154とを別体として構成する例を示しているが、制御装置200を制御部154内に設けて、部品実装機100の制御系内の構成としてもよい。また、制御装置200、ヘッド制御部153、及び制御部154をまとめて制御部として構成するものであってもよい。格納部156は、通信部155により取得されたNCデータ156a、部品ライブラリ156b、及び実装条件データ156c等を格納している。図6は、NCデータ156aの一例を示す図である。NCデータ156aは、基板20において装着の対象となる全ての部品の実装点に関する情報を示す。1つの実装点piは、部品種ci、X座標xi、Y座標yi、制御データφi、および実装角度θiからなる。ここで、部品種は、部品ライブラリ156bにおける部品名に相当する図7参照。X座標およびY座標は実装点の座標である。制御データφiは、その部品の装着に関する制約情報、例えば、使用可能なノズルnzのタイプや、ヘッド112a、112bの最高移動加速度等を示す。実装角度θiは、部品種ciの部品を吸着したノズルnzが回転すべき角度を示す。図7は、部品ライブラリ156bの一例を示す図である。部品ライブラリ156bは、部品実装機100が扱うことができる全ての部品種のそれぞれについての固有の情報を集めたライブラリである。この部品ライブラリ156bは、図7に示すように、部品種部品名ごとの部品サイズ幅、奥行き、厚さ等、その部品種におけるタクト、および制約情報などからなる。なお、この部品ライブラリ156bの示すタクトは、一定条件下において部品を基板20に装着するのに要する部品種固有の時間である。制約情報は、例えば、使用可能なノズルnzのタイプSXや、SAなど、部品検査部116a、116bによる認識方式反射など、及びヘッド112a、112bの最高加速度比などである。また、図7には、参考として、各部品種の部品の外観も併せて示されている。部品ライブラリ156bには、その他に、部品の色や形状などの情報が含まれていてもよい。図8は、実装条件データ156cの一例を示す図である。実装条件データ156cは、部品供給部115a、115bにおける部品カセット114の配列部品配列、及びヘッド112a、112bのそれぞれのタスクごとの実装順序などを示す。例えば、実装条件データ156cは、部品配列として、部品供給部115aのX軸方向の一方からA1番目に部品種c1があり、A2番目に部品種c2があることを示す。同様に、部品供給部115bのX軸方向の一方からB1番目に部品種c1があり、B2番目に部品種c2があることを示す。また、実装条件データ156cは、ヘッド112aの実装順序として、部品種c1~c4の部品を含むタスク番号Ta1のタスクが実行され、次に、部品種c9~c12の部品を含むタスク番号Ta2のタスクが実行され、さらにその後、部品種c17~c20の部品を含むタスク番号Ta3のタスクが実行されることを示す。同様に、実装条件データ156cは、ヘッド112bの実装順序として、部品種c5~c8の部品を含むタスク番号Tb1のタスクが実行され、次に、部品種c13~c16の部品を含むタスク番号Tb2のタスクが実行され、さらにその後、部品種c21~c24の部品を含むタスク番号Tb3のタスクが実行されることを示す。なお、実装条件データ156cは、タスクに含まれる部品ごとに、その部品の実装点も示している。ヘッド制御部153は、格納部156に格納されているデータに基づいてモータなどを制御することにより、ヘッド112a、112bを移動させたり、そのヘッド112a、112bに部品を吸着させたり、部品を基板20上の実装点に装着させたりする。そして、ヘッド制御部153の動作は、後述する開発支援方法によって開発された制御プログラムによって制御される。例えば、ヘッド制御部153は、上述の実装条件データ156cを読み出し、ヘッド112a、112bが実装すべきタスクをタスク番号に従って特定するとともに、そのタスクの部品が供給される場所を部品配列に基づいて特定する。そして、ヘッド制御部153は、特定した場所にヘッド112a、112bを移動させ、それらのヘッド112a、112bに部品を吸着させて、その部品に対応する実装点に装着させる。また、ヘッド制御部153は、ヘッド112aを他方のヘッド112bの動きに応じて制御する。同様に、ヘッド112bを他方のヘッド112aの動きに応じて制御する。つまり、ヘッド制御部153は、制御対象となるヘッド以下、対象ヘッドというを、他方のヘッド以下、相手ヘッドというの動きに応じて制御する。ヘッド制御部153は、相手ヘッドが基板20の実装領域上にあるときに、対象ヘッドが突入ポイントに到達すると、対象ヘッドを突入ポイントに待機させておく。そして、相手ヘッドが実装領域上の互いのヘッドが干渉する領域である干渉領域から出ると、対象ヘッドを実装領域上に突入させる。また、ヘッド制御部153は、相手ヘッドが基板20の実装領域上にないときに、対象ヘッドが突入ポイントに到達すると、基本的に、その対象ヘッドを突入ポイントで待機させることなく実装領域上に突入させる。但し、本実施の形態におけるヘッド制御部153は、対象ヘッドが突入ポイントに到達したタイミングでその対象ヘッドを基板20の実装領域上に突入させることによって、非交互打ちが実行されそうな場合には、その非交互打ちを避けて強制的に交互打ちを実行させるべきか否かを判別する。非交互打ちを避けるべきと判別すると、ヘッド制御部153は、相手ヘッドが実装領域上になくても、相手ヘッドが実装領域上に入って1タスク分の部品を装着してその実装領域上から出るまで、対象ヘッドを突入ポイントに待機させておく。その結果、強制的な交互打ちが実現される。なお、交互打ちとは、上述のように、基板20へのヘッド112aによる1タスク分の部品の装着と、ヘッド112bによる1タスク分の部品の装着とが交互に行われる動作であって、例えば、ヘッド112a→ヘッド112b→ヘッド112a→ヘッド112b→の順で基板20への部品の装着が行われる動作である。また、非交互打ちとは、上述のように、ヘッド112aまたはヘッド112bによる1タスク分の部品の装着が繰り返し連続して行われる動作であって、例えば、ヘッド112a→ヘッド112b→ヘッド112b→ヘッド112a→の順で同じヘッドによる部品の装着が連続して行われる動作である。次に、上記構成のヘッド制御部153の動作を制御するためのプログラムの開発を支援する開発支援方法について説明する。なお、本発明の開発支援方法は、典型的には、コンピュータが実行するプログラム開発支援プログラムの形態で提供される。図9は、本実施の形態に係る開発支援プログラムを実行するコンピュータ10のハードウェア構成を示す図である。コンピュータ10は、図9に示されるように、CPUCentralProcessingUnit11と、ROMReadOnlyMemory12と、RAMRandomAccessMemory13と、入力部14と、表示部15とを主に備える。CPU11は、ROM12又はRAM13に記憶されているプログラムを実行する。ROM12は、例えば、コンピュータ10の起動時に必要となるプログラムBIOS等を記憶している。RAM13は、例えば、各種プログラムを記憶すると共に、CPU11による演算結果の一時記憶領域等としても利用される。本実施の形態に係る開発支援プログラムもRAM13に記憶されている。なお、RAM13の具体的な構成は特に限定されないが、例えば、DRAMDynamicrandomaccessmemory、SDRAMSynchronousdynamicrandomaccessmemory、フラッシュメモリ、又は強誘電体メモリ等のデータを記録可能な手段であればどのようなものを利用しても構わない。入力部14は、ユーザからの入力を受け付けるインタフェースであって、例えば、キーボードやマウス等である。表示部15は、各種情報をユーザに表示するディスプレイである。ディスプレイの具体的な構成は特に限定されないが、例えば、液晶ディスプレイ、プラズマディスプレイ、又は有機ELElectroLuminescenceディスプレイ等を採用することができる。本実施の形態に係る開発支援プログラムは、部品実装機100の駆動部この例ではヘッド112a、112bの動作を制御するためのプログラム以下、制御プログラムの開発を支援するものである。ここで、制御プログラムは、複数のモジュールで構成されている。そして、開発支援プログラムは、制御プログラムのモジュール単位での開発を支援する。図10を参照して、本実施の形態に係る開発支援プログラムの動作を説明する。図10は、開発支援プログラムの動作を示すフローチャートである。まず、ユーザによって設計された状態遷移表を取得するS11。具体的には、開発支援プログラムは、図11に示されるような入力画面を表示部15に表示し、ユーザからの入力を入力部14を介して受け付ける。図11は、表示部15に表示される画面例を示す図である。図12は、ユーザによって設計された対象モジュールの状態遷移表の一例を示す図である。なお、状態遷移表とは、例えば、図11及び図12に示されるように、行及び列で構成されるマトリクス状の表である。この状態遷移表の第1行一番上の行には、例えば、ヘッド112a、112b等の状態が定義される。また、第1列には、制御プログラムの外部で実行される処理の結果として生じるイベントが定義される。なお、第1列に状態を定義し、第1行にイベントを定義してもよい。さらに、第1行及び第1列以外の各セルには、状態及びイベントの組み合わせに対して、ヘッド112a、112bが実行する動作及びヘッド112a、112bの次の状態が定義される。ここで、制御プログラムの外部で実行される処理の結果として生じるイベントとは、例えば、上位システムからの通信コマンドの結果として生じるイベント、GUIGraphicalUserInterface又は操作スイッチ等のユーザ操作の結果として生じるイベント、駆動部この例では、ヘッド112a、112bの動作の結果として生じるイベント、制御プログラムの外部で実行される処理の結果として生じるイベントを擬似的に発生させるプログラムを制御プログラムの内部に予め組み込んでおき、当該プログラムを実行することにより生じるイベント等が該当する。なお、ヘッド112a、112bの状態とは、例えば図12に示されるように、停止中、部品フィーダ移動中、部品吸着中、部品吸着認識位置移動中、部品認識中、部品実装位置移動中、部品実装中、及びエラー発生中等である。また、制御プログラムの外部で実行される処理の結果として生じるイベントとは、例えば図12に示されるように、部品吸着開始、部品フィーダ位置移動完了、部品吸着完了、部品吸着認識位置移動完了、部品認識完了、部品実装位置移動完了、部品実装完了、エラー、及びエラー復帰等である。さらに、状態及びイベントに対応するヘッド112a、112bが実行する動作及びヘッド112a、112bの次の状態とは、第1行の任意のセルから下向きに、第1列の任意のセルから右向きに移動した交点のセルに定義される。例えば、第1行の部品フィーダ位置移動中及び第1列の部品フィーダ位置移動完了に対応する動作は部品吸着であり、次の状態は部品吸着中である図12のイベントID,状態ID=1,1のセル。すなわち、この状態遷移表では、ヘッド112a、112bの状態が部品フィーダ位置移動中で、且つ部品フィーダ位置移動完了イベントが発生すると、ヘッド112a、112bは、部品吸着処理を実行する。そして、部品吸着処理の結果として、ヘッド112a、112bの状態が部品吸着中に遷移する。なお、ヘッド112a、112bは、上述の交互打ち又は非交互打ちが選択されている場合は、状態及びイベントのタイミングはヘッド112a、112b間で異なる。なお、図11に示される画面には、状態遷移表の状態及びイベントを入力することができると共に、例えば、複数のボタンスイッチが表示されている。具体的には、大域変数一覧表自動生成ボタン、外部関数一覧表自動生成ボタン、ログ出力ファイル設定ボタン、テストシナリオ作成ツールボタン、テストシナリオ入力ファイル設定ボタン、テスト自動実行ボタン、及びテストステップ実行ボタンが表示されている。大域変数一覧表自動生成ボタンは、例えば、図14に示される大域変数一覧表を作成するためのボタンである。同様に、外部関数一覧表自動生成ボタンは、例えば、図15に示される外部関数一覧表を作成するためのボタンである。これらの処理は、ステップS14で説明する。ログ出力ファイル設定ボタンは、テスト実行時の時間情報等を含むログの出力先ファイル名を指定するためのボタンである。テストシナリオ作成ツールボタンは、例えば、図16又は図18に示されるテストシナリオ等を作成するためのツールを起動させるボタンである。ここで作成されるテストシナリオには、例えば、テスト実行時に発生させるイベント及び状態と、テスト実行により期待される状態テスト実行後の状態とが含まれる。この処理は、ステップS16図10参照で説明する。テストシナリオ入力ファイル設定ボタンは、既に作成されたテストシナリオファイルを選択し、選択したテストシナリオファイルの内容を読み込ませるためのボタンである。テスト自動実行ボタンは、テストシナリオに沿ってオブジェクトをテスト実行するボタンである。同様に、テストステップ実行ボタンは、オブジェクトを1ステップ毎にテスト実行するためのボタンである。これらの処理は、ステップS17で説明する。次に、開発支援プログラムは、図12に示される状態遷移表から対象モジュールのソースコードを生成するS12。図13は、ステップS12で生成されたソースコードの一例を示す図である。但し、図13では、以降の説明で取り上げられる部分を中心に記述し、それ以外の部分の記述を省略している。なお、図13において、大域変数グローバル変数のstateは、ヘッド112a、112bの状態を特定する状態ID0~7を設定する変数である。また、大域変数グローバル変数のeventは、イベントを特定するイベントID0~8を設定する変数である。また、大域変数グローバル変数のcntは、1タスクで実装する部品の個数を設定する変数である。さらに、ローカル変数のresultは、例えば、部品実装処理StmCall内で呼び出される外部関数の戻り値等を設定する変数である。また、図13において、部品フィーダ移動は、ヘッド112a、112bを部品供給部部品フィーダ115a、115bの所定位置に移動させるための外部関数である。部品吸着は、ヘッド112a、112bに部品フィーダ上の実装部品を吸着させるための外部関数である。部品吸着認識は、ヘッド112a、112bに吸着されている部品の状態を部品検査部116a、116bに検査させるための外部関数である。ログ出力は、指定されたログファイルにログを出力させるための外部関数である。また、例えば、停止、エラー内容表示、原点復帰等は、部品実装処理でエラーが発生した場合の処理を行なう外部関数である。次に、開発支援プログラムは、ステップS12で生成されたソースコードをコンパイルして、対象モジュールのオブジェクト以下、部品実装処理オブジェクトを生成するS13。なお、ステップS13と、後述するステップS14~S16とは、どちらを先に実行してもよいし、平行して実行してもよい。次に、開発支援プログラムは、ステップS12で生成されたソースコードから大域変数及び/又は対象モジュールで呼び出される外部関数の一覧を生成するS14。この処理は、例えば、図11の大域変数一覧表自動生成ボタン、及び外部関数一覧表自動生成ボタンを押下したタイミングで実行される。図14は、ステップS14で生成される大域変数の一覧を示す図である。なお、状態IDstateは、大域変数の一覧に含まれない。また、図15は、ステップS14で生成される外部関数の一覧を示す図である。なお、図15において、停止、ログ出力、原点復帰、及びエラー内容表示等の記載は省略している。次に、開発支援プログラムは、ステップS14で生成される大域変数の一覧図14に当該大域変数の取り得る値を、外部関数の一覧図15に各外部関数の戻り値の取り得る値を、ユーザにコンピュータ10の入力部14から入力させるS15。例えば、図14の例では、大域変数cntの取り得る値に3、2、1、0が入力されている。同様に、図15の例では、各外部関数の戻り値として、0正常終了であることを示す値と、-1異常終了であることを示す値とが入力されている。次に、ユーザによって設計されたテストシナリオを取得するS16。この処理は、例えば、図11のテストシナリオ作成ツールボタンを押下したタイミングで実行される。テストシナリオ作成ツールボタンを押下すると、例えば、図16に示される表形式の画面がコンピュータ10の表示部15に表示される。そして、ユーザは、入力部14を介して、大域変数や外部関数の戻り値等のテスト実行時に必要となる値、特に評価したいテストシーケンス等を、図16に示されるようなテストシナリオとして入力する。このテストシナリオには、大域変数の設定値及び/又は外部関数の戻り値を含む。具体的には、図16のテストシーケンスNo.1は、状態ID=0且つイベントID=0の場合において、大域変数cntに3が設定されている時に呼び出された外部関数部品フィーダ位置移動は戻り値として0を返し、状態ID=1に状態遷移することを示している。なお、テストシナリオに設定可能な大域変数の設定値及び/又は外部関数の戻り値は、ステップS15で設定した値の範囲に限られる。そこで、ステップS16では、図16の各セルに、ステップS15で設定した値をプルダウンメニュー等でリスト表示し、ユーザに所望の値を選択させるようにするのが望ましい。これにより、テストシナリオの設計が容易になる。一方、ステップS16において、図11に示されるテストシナリオ入力ファイル設定ボタンが押下された場合、テストシナリオファイルの選択画面が表示される。そして、ユーザが所望のテストシナリオを選択すると、選択されたテストシナリオファイルの内容が読み込まれる。なお、選択されるテストシナリオファイルには、例えば、図16に示されるようなテストシナリオが予め記載されている必要がある。また、ステップS16において、開発支援プログラムがテストシナリオを自動生成してもよい。具体的には、例えば、開発支援プログラムは、ステップS15で入力された大域変数及び外部関数の戻り値の全ての組み合わせを網羅したテストシナリオを自動生成してもよい。これは、ホワイトボックステスト経路組み合わせ網羅等を行なう場合等に有効である。次に、開発支援プログラムは、ステップS16で設計したテストシナリオに沿って、ステップS13で生成した部品実装処理オブジェクトをテスト実行するS17。この処理は、例えば、図11のテスト自動実行ボタンが押下されたタイミングで実行される。ここで、ステップS16を実行テストシナリオを設計等する段階では、ステップS13で部品実装処理オブジェクトのみが生成されており、対象モジュールが呼び出す外部関数のオブジェクトは生成されていない。そこで、開発支援プログラムは、部品実装処理オブジェクトをテスト実行する際に作成されるテストシナリオに従って、例えば、外部関数を実行したものとして外部関数の戻り値に0を設定する等、外部関数の戻り値を置き換えることによってテスト実行する。図13、図16、及び図17を参照して、部品実装処理オブジェクトをテスト実行する処理を説明する。まず、図16に示されるように、部品実装処理オブジェクトが呼び出される時の大域変数cntの初期値に3が設定される。次に、外部関数である部品フィーダ移動が呼び出されると、開発支援プログラムは、大域変数cnt=3に対応する外部関数の戻り値0を図16のテストシナリオから取得し、変数resultに設定しS21、状態IDが0停止中から1部品フィーダ位置移動中に遷移する。同様に、開発支援プログラムは、外部関数である部品吸着及び部品吸着認識の戻り値として、変数resultに0を設定しS22、S23、所定の状態IDに遷移する。次に、1つ目の実装部品の実装が完了、すなわち、状態が部品実装中で、且つ部品実装完了イベントが発生すると、大域変数cntの値がデクリメントされるS24。次に、この時点では大域変数cnt=2S24でNoなので、ステップS21~ステップS24の処理をさらに2回繰り返す。そして、大域変数cnt=0S24でYesになると、ヘッド112a、112bを原点に復帰させS25、部品実装処理オブジェクトのテスト実行が終了する。このように、大域変数及び/又は外部関数の戻り値を含むテストシナリオを定義しておき、部品実装処理オブジェクトのテスト実行時に、テストシナリオに定義された値を各変数に設定することにより、全てのモジュールが完成するのを待つことなく、モジュール単位でのテストが可能となる。また、各テストシーケンスを実行する度に、状態IDがテストシナリオに定義された遷移先の状態IDに一致するか否かを判定することにより、正常に動作していることを自動でチェックすることができる。また、本実施の形態に係る開発支援プログラムは、状態遷移表からソースコードを生成し、ソースコードからオブジェクト、大域変数の一覧、及び/又は、外部関数の一覧を生成し、これらを基にして作成されたテストシナリオに沿って当該オブジェクトのテスト実行を行なう。すなわち、1つのツール上で、開発からテストまでを連携して行なうことが可能となる。なお、図16及び図17に示されるテストシナリオに代えて、図18及び図19に示すようなテストシナリオを実行することもできる。図18及び図19に示されるテストシナリオは、大域変数cnt=3の時に部品吸着認識の戻り値が-1である点テストシーケンスNo.4が図16及び図17に示されるテストシナリオと異なる。このテストシナリオに沿って部品実装処理オブジェクトをテスト実行すると、部品フィーダ移動S31及び部品吸着S32は、図17のステップS21~ステップS22と同じである。一方、部品吸着認識S33の戻り値として、resultに-1が設定され、停止、エラー内容表示等のエラー処理S34が実行される点が図17と相違する。なお、エラー発生中から停止中に遷移するのは、状態遷移表に示されるエラー復帰イベント図12、図20参照が入力されてからである図16、図20のテストシナリオでは図示省略。エラー復帰イベントは、典型的には、人間がエラー確認してから復帰ボタンを押す等の外部からの手動イベントである。一方、ステップS17において、テストステップ実行ボタンが押下された場合、開発支援プログラムは、ユーザの指示するタイミングで、ソースコードに記述されている命令ステップを1つずつ逐次実行する。より具体的には、ユーザがキーボードのエンターキーを押下するたびに、ソースコードの次のステップを実行する。このとき、開発支援プログラムは、図20に示されるように、表示部15に状態遷移表を表示し、さらにこの状態遷移表上に、直近に実行された命令に対応する現在位置この例では部品吸着認識のセルと、当該現在位置に至るまでの軌跡この例では、部品フィーダ位置移動、部品吸着、部品吸着認識位置移動のセルとを表示する。軌跡として表示するセルの数は任意に設定することができる。さらに、図示は省略するが、現在位置における各変数の値等を表示してもよい。現在位置及び軌跡の表示例は特に限定されないが、例えば、現在位置に相当するセル及び軌跡上のセルの背景色を変更、又はハイライト表示する等、状態遷移表上に表示してもよい。または、状態遷移表とは別項目として表示してもよい。例えば、現在位置の表示例として、図20には、部品吸着認識のセルがハイライト網掛け表示される図20のイベントID,状態ID=3,3のID位置を参照と共に、状態遷移表の下に現在位置:3,3と表示される。また、現在位置に至るまでの軌跡の表示例として、図20には、部品フィーダ一移動、部品吸着、部品吸着認識位置移動の各セルがハイライト現在位置と異なる網掛け表示されると共に、状態遷移表の下に、現在のID位置に至るまでの軌跡を表す表示として、イベントID,状態IDの履歴が現在位置に至るまでの軌跡:0,0→1,1→2,2と表示される。また、状態遷移表上の軌跡としては、ログ出力直前に実行される処理時の状態遷移表における駆動部の状態、及びログ出力時における駆動部の動作によって状態遷移した遷移先の状態等の状態遷移前後の2つの状態を表示してもよい。これにより、ログ出力時の状態遷移前後の状態遷移の軌跡を明確にすることができる。このように、ステップ実行に合わせて、状態遷移表上の現在位置と、当該現在位置に至るまで状態遷移表上の軌跡とを表示部15に表示させることにより、例えば、部品実装処理オブジェクトが予期せぬ動作バグをした場合でも、容易に原因を特定することができる。但し、状態遷移表上の現在位置及び現在位置に至るまでの状態遷移表上の軌跡を表示させるのは、部品実装処理オブジェクトをステップ実行した場合に限定されない。例えば、部品実装処理オブジェクトを自動実行した場合において、エラーが発生して停止した場合等に、状態遷移表上の現在位置と、現在位置に至るまでの状態遷移表上の軌跡とを表示部15に表示させてもよい。これにより、エラーの発生原因を容易に特定することができる。なお、上記の実施の形態においては、駆動部としてヘッド112a、112bの例を説明したが、これに限ることなく、部品実装機100の他の駆動部にも適用することができる。また、上記の実施の形態においては、実装基板製造装置として部品実装機100の例を説明したが、これに限ることなく、本発明は、印刷機や印刷検査機等の実装基板の製造に用いられるあらゆる装置に適用することができる。その他の実施形態コンピュータ10は、具体的には、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。RAMまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、コンピュータ10は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。上記のコンピュータ10を構成する構成要素の一部または全部は、1個のシステムLSILargeScaleIntegration:大規模集積回路から構成されていてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。また、上記のコンピュータ10を構成する構成要素の各部は、個別に1チップ化されていてもよいし、一部又は全てを含むように1チップ化されてもよい。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGAFieldProgrammableGateArrayや、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブルプロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。本発明は、上記に示す方法であってもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであってもよいし、コンピュータプログラムからなるデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BDBlu-rayDisc、半導体メモリなどに記録したものであってもよい。また、これらの記録媒体に記録されているデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものであってもよい。また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するものであってもよい。また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施してもよい。以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。"