(57)【要約】【課題】多様な装置への実装が想定される環境でサイズを抑えたモジュールを生成する。【解決手段】各入力命令に対応した出力命令を出力するためのモジュール生成時には、モジュールの機能を入力命令及び出力命令の組合せ毎の機能に分割し（Ｓ１）、分割後機能には、出力命令が同一の機能群毎に、モジュール構成部品を共通化する機能のグループを設定し（Ｓ３）、更に入力命令群を、環境により入力されない選択入力命令とそれ以外の基本入力命令とに分類する（Ｓ４）。そして、グループ毎に機能をまとめた複合部品を生成し（Ｓ５）、部品を共通化しない各機能に関しては単独部品を生成して（Ｓ６）、モジュールを生成する（Ｓ９）。特にＳ５では、各グループに対して、選択入力命令の入力有無に応じて場合分けされる入力命令の組合せ毎に、組合せに対応した機能をまとめた複合部品を生成し、Ｓ９では、部品選択して入力命令の有無に応じたモジュールを生成する。【選択図】図２
2011198278.tif 000002
【特許請求の範囲】
【請求項１】
電子機器に実装されるモジュール群の一つであって、
上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
の生成方法であって、
前記中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎の機能に分割する手順であって、当該中間モジュールに対応する機能を、前記入力命令及び出力命令の組合せ毎に一以上の機能に分割する分割手順と、
前記分割手順による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、前記中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを特定する特定手順と、
前記中間モジュールに対して入力される前記入力命令の一群を、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令と、上位モジュールの種類に依らず前記中間モジュールに対して入力される種類の入力命令である基本入力命令と、に分類する分類手順と、
前記特定手順により特定された前記グループ毎に、このグループに属する細分化機能を複合化して、このグループに属する細分化機能共通の前記モジュール構成部品である複合部品を生成する複合部品生成手順と、
前記特定手順により特定された前記グループのいずれにも属さない前記細分化機能の夫々に関して、この細分化機能を実現するための前記モジュール構成部品である単独部品を生成する単独部品生成手順と、
前記複合部品及び前記単独部品を組み合わせて、前記中間モジュールを生成するモジュール生成手順と、
を含み、
前記複合部品生成手順では、前記各グループに対して、前記各選択入力命令の入力有無に応じて場合分けされる前記中間モジュールへ入力される前記入力命令の組合せ毎に、この組合せでは入力されない前記選択入力命令に対応する細分化機能を複合化の対象から除外して、このグループに属する残りの細分化機能を複合化した前記複合部品を生成し、
前記モジュール生成手順では、中間モジュールを実装する電子機器における前記各選択入力命令の入力有無によって定まる生成対象の前記中間モジュールに入力される入力命令の組合せに対応する前記グループ毎の前記複合部品と、この組合せで入力される各入力命令に対応した前記単独部品と、を組み合わせた前記中間モジュールを生成すること
を特徴とする中間モジュールの生成方法。
【請求項２】
前記入力命令毎に、この入力命令に対応する前記細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するための前記モジュール構成部品を生成する管理機能部品生成手順
を含み、
前記モジュール生成手順では、前記複合部品及び前記単独部品に加えて、生成対象の前記中間モジュールに入力される前記入力命令毎の前記モジュール構成部品を組み合わせて、前記中間モジュールを生成すること
を特徴とする請求項１記載の中間モジュールの生成方法。
【請求項３】
前記中間モジュールとして、
上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を前記電子機器が備えるコンピュータに実行させるためのプログラム
を生成すること
を特徴とする請求項１又は請求項２記載の中間モジュールの生成方法。
【請求項４】
生成対象の前記中間モジュールは、ハードウェア回路であり、
前記複合部品生成手順は、前記複合部品に対応する回路を基板本体に着脱可能な回路チップとして形成する手順であり、
前記単独部品生成手順は、前記単独部品に対応する回路を前記基板本体に直接形成する手順であり、
前記中間モジュール生成方法は、前記グループ毎に、前記回路チップを前記基板本体に直接形成された回路と電気的に接続可能に当該基板本体に装着するための装着部品を、前記基板本体に形成する装着部品形成手順を更に含み、
前記モジュール生成手順では、前記基板本体に、生成対象の前記中間モジュールに入力される入力命令の組合せに対応する前記グループ毎の前記回路チップを、対応する前記装着部品に装着することにより、前記中間モジュールを生成すること
を特徴とする請求項１記載の中間モジュールの生成方法。
【請求項５】
前記入力命令毎に、この入力命令に対応する前記細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するための回路を、前記基板本体に形成する管理機能部品生成手順
を含むことを特徴とする請求項４記載の中間モジュールの生成方法。
【請求項６】
電子機器に実装されるモジュール群の一つであって、
上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
に関し、ユーザによる前記中間モジュールの生成を支援するための支援装置であって、
前記中間モジュールに対して入力される入力命令群、及び、前記中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、
前記命令情報取得手段の取得情報が表す前記入力命令群の内、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、前記入力インタフェースを通じて取得する選択入力情報取得手段と、
前記選択入力情報取得手段の取得情報に基づき、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段と、
を備えることを特徴とする支援装置。
【請求項７】
前記情報提供手段は、前記命令情報取得手段の取得情報が表す前記出力命令毎に、この出力命令を出力する原因となる入力命令の組合せであって、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される当該入力命令の組合せの各パターンを表す情報を、前記画像情報として出力すること
を特徴とする請求項６記載の支援装置。
【請求項８】
前記中間モジュールに対応する機能を、前記入力インタフェースからの入力情報に従い、前記入力命令及び前記出力命令の組合せ毎に一以上の機能に分割する機能分割手段と、
前記機能分割手段による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、前記中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを表す情報を、前記入力インタフェースを通じて取得する共通化情報取得手段と、
を備え、
前記情報提供手段は、前記共通化情報取得手段の取得情報に基づき、前記グループ毎に、このグループに属する各細分化機能に対応する入力命令の組合せであって、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せについての一通りの各パターンを表す情報を、前記画像情報として出力すること
を特徴とする請求項６記載の支援装置。
【請求項９】
前記グループ毎に、このグループに属する細分化機能共通の前記モジュール構成部品である複合部品を取得する複合部品取得手段と、
前記グループのいずれにも属さない前記細分化機能の夫々に関して、前記細分化機能毎に、この細分化機能を実現するための前記モジュール構成部品である単独部品を取得する単独部品取得手段と、
前記入力命令毎に、この入力命令を受け付けて当該入力命令に対応する前記細分化機能群の動作を制御する管理機能、を実現するための前記モジュール構成部品である管理部品を取得する管理部品取得手段と、
前記入力インタフェースを通じて、生成対象の前記中間モジュールに対する前記各選択入力命令の入力有無を表す情報を取得する入力有無情報取得手段と、
前記入力有無情報取得手段の取得情報に基づいて、前記複合部品取得手段及び前記単独部品取得手段及び前記管理部品取得手段が取得した部品群の中から、生成対象の前記中間モジュールの構成要素とする部品群を抽出する抽出手段と、
を備え、
前記複合部品取得手段は、前記グループの夫々について、前記各選択入力命令の入力有無に応じて場合分けされる前記中間モジュールへ入力される前記入力命令の組合せ毎に、この組合せで入力される各入力命令に対応する前記グループ内の細分化機能が複合化された前記複合部品を取得し、
前記抽出手段は、前記入力有無情報取得手段の取得情報に基づいて、前記グループ毎に、前記生成対象の中間モジュールに入力される前記入力命令の組合せに対応した前記複合部品を、前記組合せ毎の前記複合部品の一群から抽出すると共に、前記中間モジュールに入力される各入力命令に対応した前記単独部品及び前記管理部品を抽出すること
を特徴とする請求項８記載の支援装置。
【請求項１０】
電子機器に実装されるモジュール群の一つであって、
上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
に関し、ユーザによる前記中間モジュールの生成を支援するための支援装置のコンピュータに、
前記中間モジュールに対して入力される入力命令群、及び、前記中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、
前記命令情報取得手段の取得情報が表す前記入力命令群の内、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、前記入力インタフェースを通じて取得する選択入力情報取得手段と、
前記選択入力情報取得手段の取得情報に基づき、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段
としての機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器に実装されるモジュール群の一つであって、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールへ出力するための中間モジュールの生成方法、及び、この中間モジュールの生成を支援する支援装置に関する。
【背景技術】
【０００２】
従来、ソフトウェア開発に際しては、汎用性の高いプログラムをライブラリとして登録することが行われている（例えば、特許文献１参照）。また、類似する複数の処理を、分岐を含む一連の処理としてまとめてプログラムコード化し、同一内容の手順に対応するプログラムコードの重複した記述を避けることで、これら複数の処理を実行するためのプログラムサイズを抑えることが行われている。
【０００３】
また、近年では、ソフトウェアの開発効率を向上させるために、ソフトウェアをモジュール単位で構成することが行われている。このような対応は、車両等に搭載される電子制御装置（ＥＣＵ）に対するソフトウェアの開発に対しても行われている。
【０００４】
そして、車両に搭載するソフトウェア等、開発コストの高いソフトウェアに関しては、モジュールを標準化し、同一メーカ内や同一業種の異なるメーカ間で再利用することが考えられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２２６７９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、モジュールを標準化する場合には、モジュールが使用される多様な環境において必要とされる機能の総和、に対応した複数機能を実現するための構成（プログラムコード）をモジュールに内蔵する必要があるため、モジュールサイズ（プログラムサイズ）が大きくなるといった欠点があった。
【０００７】
換言すれば、モジュールの使用時には働かない機能があるにも関わらず、その機能に対応した構成（プログラムコード）がモジュールに内在するため、モジュールを実装する電子機器においては、不要な機能のために余分なモジュールの実装領域を確保しなければならないといった欠点があった。更に言及すれば、実装に必要十分な領域を確保することができないために、標準化モジュールを装置に実装することができない問題が発生する可能性があった。尚、モジュールをプログラムで構成する場合に限らず、ハードウェア回路で構成する場合にも、従来技術では、同様の理由により、モジュールサイズ（回路規模）が大きくなるといった欠点があった。
【０００８】
本発明は、こうした問題に鑑みなされたものであり、多様な装置への適用が想定される環境で、モジュールサイズを抑えて効率的にモジュールを生成可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた本発明のモジュール生成方法は、電子機器に実装されるモジュール群の一つであって、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールへ出力するための中間モジュールの生成方法であって、分割手順と、特定手順と、分類手順と、複合部品生成手順と、単独部品生成手順と、モジュール生成手順と、を備えるものである。
【００１０】
分割手順では、中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎の機能に分割する。即ち、中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎に一以上の機能に分割する。
【００１１】
特定手順では、分割手順による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、この細分化機能群の内、中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを特定する。
【００１２】
そして、複合部品生成手順では、特定手順により特定されたグループ毎に、このグループに属する細分化機能を複合化し、このグループに属する細分化機能共通のモジュール構成部品である複合部品を生成する。一方、単独部品生成手順では、特定手順により特定された上記グループのいずれにも属さない細分化機能の夫々に関して、この細分化機能を実現するためのモジュール構成部品である単独部品を生成する。そして、モジュール生成手順では、上記複合部品及び単独部品を組み合わせて、中間モジュールを生成する。
【００１３】
特に、本発明では、分類手順によって、中間モジュールに対して入力される入力命令の一群を、上位モジュールの種類によっては中間モジュールに対して入力されない種類の入力命令である選択入力命令と、上位モジュールの種類に依らず中間モジュールに対して入力される種類の入力命令である基本入力命令と、に分類する。
【００１４】
そして、上記複合部品生成手順では、上述した各グループに対して、入力命令の組合せ毎の複合部品を生成する。各選択入力命令の入力有無に応じて場合分けされる中間モジュールへ入力される入力命令の組合せ毎に、この組合せでは入力されない選択入力命令に対応する細分化機能を複合化の対象から外して、このグループに属する残りの細分化機能を複合化した複合部品を生成するといった具合である。
【００１５】
そして、上記モジュール生成手順では、中間モジュールを実装する電子機器における各選択入力命令の入力有無によって定まる生成対象の当該中間モジュールに入力される入力命令の組合せに対応する上記グループ毎の複合部品と、この組合せで入力される各入力命令に対応した単独部品と、を組み合わせた中間モジュールを生成する。
【００１６】
上述した方法によれば、中間モジュールを生成するに際して、入力命令及び出力命令に組合せ毎に、中間モジュールの機能を分割し、各細分化機能に対応するモジュール構成部品を生成する点に第一の特徴がある。また、部品を共通化することのできる細分化機能については部品を共通化するが、この際には、中間モジュールが使用される環境（上位モジュールの種類）によって入力されなくなる命令があることを考慮して、中間モジュールへ入力される入力命令の組合せ毎に、入力されない命令に対応する構成を省いたモジュール構成部品（複合部品）を生成する点に第二の特徴がある。
【００１７】
この方法によれば、中間モジュールを実装する電子機器の構成（実際に入力される入力命令の種類）に応じて部品を選択して、これら部品の組合せによって中間モジュールを構成することができるので、実装対象の電子機器に対しては、従来のように、使用されない入力命令に対応する構成を不要に備える中間モジュールを組み込まなくても済む。
【００１８】
従って、中間モジュールのサイズを従来よりも抑えることができる。詳述すれば、従来技術では、モジュール標準化のために、多様な環境で想定される入力命令の全てが入力されるものとしてモジュールを冗長に構成する。このため、モジュール実装対象の電子機器の種類によっては、使用されない入力命令に対応する構成が中間モジュールに存在することになり、実装対象の電子機器にとっては不必要にモジュールサイズが大きくなってしまうといった欠点があった。
【００１９】
これに対して、本発明によれば、上述した第一及び第二の特徴を有するので、各種の電子機器に対して、不要な機能に対応する構成を備えない当該電子機器に適したモジュールを実装することができ、モジュールサイズの低減を図ることができる。また、モジュール構成部品の組合せによって、多様な装置に対応したモジュールを構成することができるので、多様な装置への適用が想定される環境で、モジュールサイズを抑えて効率的にモジュールを生成することができる。
【００２０】
ところで、中間モジュールに対応する機能を上述したように分割すると、一つの入力命令に対応する機能が複数機能に分割されるケースがあるため、分割された細分化機能間の協働が必要になる場合がある。この協働に必要な機能は、細分化機能の夫々に分散して組み込むことができるが、分割された細分化機能を管理する管理機能を定めて、管理機能により細分化機能の動作を制御して協働を実現し、中間モジュールとしての機能を実現できるようにすると、モジュールの開発負荷低減の点から好ましい。
【００２１】
即ち、上述の中間モジュールの生成方法は、入力命令毎に、この入力命令に対応する細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するためのモジュール構成部品（以下、「管理部品」という。）を生成する管理機能部品生成手順を含んだ構成にされると好ましく、モジュール生成手順では、複合部品及び単独部品に加えて、中間モジュールに入力される入力命令毎の上記管理部品を組み合わせて、中間モジュールを生成するとよい。
【００２２】
このようにすれば、入力命令に対応した出力命令を出力するために動作する複合部品及び単独部品に基づく機能の動作順序などの制御を管理部品によって行うことができて、各部品の設計が簡単である。
【００２３】
また、電子機器に実装するモジュールとしては、ハードウェア又はソフトウェアを挙げることができる。電子機器に実装するモジュールをプログラムで構成する場合、中間モジュールとしては、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールに向けて出力する処理を電子機器が備えるコンピュータに実行させるためのプログラムを生成することになる。この場合、モジュール構成部品としては、対応する機能を実現するためのプログラム部品を挙げることができ、モジュールとしては、プログラム部品を組み合わせて生成される実行プログラムを挙げることができる。
【００２４】
一方、中間モジュールをハードウェア回路として構成する場合、複合部品生成手順では、複合部品に対応する回路を基板本体に着脱可能な回路チップとして形成することで、複合部品を生成すればよい。また、単独部品生成手順では、単独部品に対応する回路を基板本体に直接形成することで、単独部品を生成すればよい。
【００２５】
また、中間モジュール生成方法は、上記グループ毎に、基板本体に直接形成された回路と電気的に接続可能に回路チップを当該基板本体に装着するための装着部品を、基板本体に形成する装着部品形成手順を更に含んだ構成にされ、モジュール生成手順では、基板本体に、生成対象の中間モジュールに入力される入力命令の組合せに対応するグループ毎の回路チップ（複合部品）を、対応する装着部品に装着することにより、中間モジュールを生成すればよい。この他、当該中間モジュール生成方法は、入力命令毎の上記管理機能を実現するための回路を、基板本体に形成する管理機能部品生成手順を含んだ構成にすることができる。
【００２６】
また、上述の手法による中間モジュールの生成に際しては、ユーザによる中間モジュールの生成を支援するための支援装置を用意すると、ユーザによる作業が容易になって好ましい。具体的に、支援装置は、中間モジュールに対して入力される入力命令群、及び、中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、命令情報取得手段の取得情報が表す入力命令群の内、上位モジュールの種類によっては中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、入力インタフェースを通じて取得する選択入力情報取得手段と、選択入力情報取得手段の取得情報に基づき、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段と、を備える構成にすることができる。
【００２７】
この支援装置を用いれば、ユーザは、入力命令の組合せを容易に把握することができる。従って、入力命令の組合せ毎の複合部品を生成する際のユーザ作業が容易になる。
具体的に、情報提供手段は、命令情報取得手段の取得情報が表す出力命令毎に、この出力命令を出力する原因となる入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される当該入力命令の組合せの各パターンを表す情報を、上記画像情報として出力する構成にすることができる。
【００２８】
このように組合せに関する情報を出力すれば、出力命令毎に、どのような種類の複合部品を生成すればよいかをユーザが容易に理解できるので、部品生成に関するユーザの作業性が向上する。
【００２９】
尚、ここでいう出力命令毎の「入力命令の組合せの各パターンを表す情報」は、出力命令に対応する「全ての入力命令」についての組合せの一通りの各パターンを表す情報であってもよいし、複合部品の生成に必要な情報のみを有するものであってもよい。
【００３０】
詳述すれば、情報提供手段は、部品を共通化する対象の細分化機能の上記グループ毎に、このグループに属する各細分化機能に対応する入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される入力命令の組合せについての一通りの各パターンを表す情報を、画像情報として出力する構成にされると好ましい。
【００３１】
複合部品は、部品を共通化する対象の細分化機能のグループ毎に生成されるものであるので、このようにして組合せに関する情報を出力すれば、グループ毎に、どのような種類の複合部品を生成すればよいかについての情報を簡素且つ理解しやすくユーザに表示することができる。
【００３２】
尚、このように情報提供手段を構成する場合、支援装置は、中間モジュールに対応する機能を、入力インタフェースからの入力情報に従い、入力命令及び出力命令の組合せ毎に一以上の機能に分割する機能分割手段と、機能分割手段による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、モジュール構成部品を共通化する細分化機能のグループを表す情報を、入力インタフェースを通じて取得する共通化情報取得手段と、を備えた構成にすることができる。
【００３３】
更に、支援装置は、次のような構成にすることができる。即ち、支援装置は、グループ毎に、このグループに属する細分化機能共通のモジュール構成部品である複合部品を取得する複合部品取得手段と、グループのいずれにも属さない細分化機能の夫々に関して、細分化機能毎に、この細分化機能を実現するためのモジュール構成部品である単独部品を取得する単独部品取得手段と、入力命令毎に、この入力命令を受け付けて当該入力命令に対応する細分化機能群の動作を制御する管理機能、を実現するためのモジュール構成部品である管理部品を取得する管理部品取得手段と、入力インタフェースを通じて、生成対象の中間モジュールに対する各選択入力命令の入力有無を表す情報を取得する入力有無情報取得手段と、入力有無情報取得手段の取得情報に基づいて、複合部品取得手段及び単独部品取得手段及び管理部品取得手段が取得した部品群の中から、生成対象の中間モジュールの構成要素とする部品群を抽出する抽出手段と、を備えた構成にすることができる。
【００３４】
特に、上記複合部品取得手段は、上記グループの夫々について、各選択入力命令の入力有無に応じて場合分けされる中間モジュールへ入力される入力命令の組合せ毎に、この組合せで入力される各入力命令に対応するグループ内の細分化機能が複合化された複合部品を取得する構成にすることができ、抽出手段は、入力有無情報取得手段の取得情報に基づいて、グループ毎に、生成対象の中間モジュールに入力される入力命令の組合せに対応した複合部品を、上記組合せ毎の複合部品の一群から抽出すると共に、中間モジュールに入力される各入力命令に対応した単独部品及び管理部品を抽出する構成にすることができる。また、この支援装置には、抽出手段が抽出した部品群を組み合わせて中間モジュールを生成する中間モジュール生成手段を設けることができる。
【００３５】
このような構成の支援装置によれば、取得した部品を組み合わせて、入力命令の組合せに対応した中間モジュールを生成する作業を簡易にすることができる。
尚、支援装置が備える各手段としての機能は、プログラムにより、コンピュータに実現することができ、支援装置が備える各手段としての機能をコンピュータに実現させるためのプログラムは、記録媒体（ＤＶＤ）等に記録して消費者に提供したり、電気通信回線を通じて消費者に提供したりすることが可能である。
【図面の簡単な説明】
【００３６】
【図１】電子機器１に実装される中間モジュールＭＭの構成を表す図である。
【図２】中間モジュールＭＭの生成手順を表すフローチャートである。
【図３】入力命令の組合せに応じて生成する複合プログラム部品群を表す図である。
【図４】中間モジュールＭＭの具体例である通信モジュールＭＭＥに対する入出力命令を示した図である。
【図５】通信モジュールＭＭＥによる通信初期化／管理処理を表すフローチャートである。
【図６】通信モジュールＭＭＥによる初期化メッセージ送信処理（ａ）及びデータ送信処理（ｂ）を表すフローチャートである。
【図７】通信モジュールＭＥＥに対応する機能の分割方法を説明した図である。
【図８】複合プログラム部品の構成を概念的に示した図である。
【図９】支援装置１００の構成を表すブロック図である。
【図１０】第一支援ツールによる処理の実行手順を表すフローチャートである。
【図１１】第一支援ツールによる命令登録処理を表すフローチャートである。
【図１２】第一支援ツールによる機能登録処理を表すフローチャートである。
【図１３】第一支援ツールによる内部機能詳細登録処理のフローチャートである。
【図１４】第一支援ツールによる確認画面表示処理を表すフローチャートである。
【図１５】第一支援ツールによる細分化処理を表すフローチャートである。
【図１６】細分化時のモジュール構成画面の構成を表す図である。
【図１７】第一支援ツールによる共通化対象設定処理を表すフローチャートである。
【図１８】第一支援ツールによる副管理機能登録処理を表すフローチャートである。
【図１９】副管理機能登録時のモジュール構成画面の構成を表す図である。
【図２０】第一支援ツールによる選択入力命令設定処理のフローチャートである。
【図２１】第一支援ツールによる組合せテーブル生成処理のフローチャートである。
【図２２】組合せテーブルの構成を表す図である。
【図２３】第二支援ツールによる処理の実行手順を表すフローチャートである。
【図２４】複合プログラム部品管理テーブルの構成を表す図である。
【図２５】単独プログラム部品管理テーブルの構成を表す図である。
【図２６】第三支援ツールによる処理の実行手順を表すフローチャートである。
【図２７】第三支援ツールによる入力有無設定処理を表すフローチャートである。
【図２８】第三支援ツールによるモジュール出力処理を表すフローチャートである。
【図２９】変形例の電子機器１’（特に中間モジュール１００）の構成を表す図である。
【発明を実施するための形態】
【００３７】
以下、本発明の実施例について説明する。本実施例のモジュール生成方法は、電子機器１に実装されるモジュール群の一つであって、上位モジュールＭＵから入力される命令である入力命令ＩＣ１〜ＩＣ３毎に、この入力命令ＩＣ１〜ＩＣ３に対応した下位モジュールＭＤに対する命令を生成し、この命令を出力命令ＯＣ１〜ＯＣ３として下位モジュールＭＤに出力する処理を実行するための中間モジュールＭＭの生成方法である。生成対象の中間モジュールＭＭは、上位モジュールＭＵから下位モジュールＭＤへのインタフェースとして機能する。
【００３８】
以下では、この中間モジュールＭＭをプログラムとして生成する例を説明するが、中間モジュールＭＭは、ハードウェアにより構成することも可能である。また、上位モジュールＭＵや下位モジュールＭＤは、他のモジュールがソフトウェアであるかハードウェアであるかに依らず、ソフトウェア又はハードウェアで構成することが可能である。但し、以下では、説明を簡単にするため、電子機器１に実装される各モジュールがソフトウェアであるとして話を進める。電子機器１としての機能は、これらモジュール群の動作（コンピュータによるモジュール群の実行）により実現される。
【００３９】
図１及び図２に示すように、この中間モジュールＭＭの生成に際しては、まず中間モジュールＭＭにて実現されるべき機能を、入力命令ＩＣ１〜ＩＣ３及び出力命令ＯＣ１〜ＯＣ３の組合せ毎に一つの機能に分割する（Ｓ１）。図２は、本実施例のモジュール生成方法に対応する手順を示すフローチャートであり、図２（ａ）は、モジュール生成方法における第一段階の手順を示すフローチャートであり、図２（ｂ）は、第二段階の手順を示すフローチャートである。
【００４０】
入力命令がα個、出力命令がβ個ある場合には、最大でα×β個の組合せが存在するので、これらの組合せに合わせて、α×β個の機能に分割する。図１に示す例では、α＝β＝３であるので、９個の機能ＦＮ１１〜ＦＮ３３に分割する。以下、組合せ毎に分割された機能のことを「細分化機能」ともいう。
【００４１】
但し、一つの入力命令に対して限られた出力命令のみを出力する中間モジュールＭＭの構成も考えられる。例えば、入力命令ＩＣ１の入力によっては、出力命令ＯＣ１及び出力命令ＯＣ２及び出力命令ＯＣ３の内、出力命令ＯＣ１のみしか出力がない場合（図１破線に対応する出力がない場合）や、入力命令ＩＣ３の入力によっては出力命令ＯＣ３のみしか出力がない場合（図１一点鎖線に対応する出力がない場合）がある。
【００４２】
この場合には、入力命令ＩＣ１と組み合わせられる出力命令は出力命令ＯＣ１のみであり、入力命令ＩＣ３と組み合わせられる出力命令は出力命令ＯＣ３のみであるので、入力命令及び出力命令の組合せは、α×β以下となる。
【００４３】
また、このような入力命令及び出力命令の組合せ毎の機能分割後には、入力命令ＩＣ１〜ＩＣ３毎に管理機能ＭＡ１〜ＭＡ３を定める（Ｓ２）。複数の細分化機能Ｆ１１〜Ｆ３３の協働により、一の入力命令に対する一連の機能が実現される場合には、上記機能分割により相互関係に関する情報（具体的には、動作順序の情報）が失われるので、入力命令ＩＣ１〜ＩＣ３毎には、この入力命令に対応する細分化機能の動作を制御する管理機能を定める。
【００４４】
また、この後には、出力命令毎に、プログラム部品を共通化する細分化機能のグループを定める（Ｓ３）。即ち、出力命令が同一で入力命令の異なる細分化機能の一群の中からプログラム部品を共通化する機能を選択して、出力命令が同一で入力命令の異なる細分化機能群のうち、上記選択した複数の機能を、プログラム部品を共通化する細分化機能の組合せとして、グループ化する。但し、プログラム部品の共通化が不要な出力命令に関しては、この出力命令に対する上記グループの設定は不要である。
【００４５】
更には、入力命令の一群を、上位モジュールＭＵの種類によっては中間モジュールＭＭに対して入力されない種類の入力命令である選択入力命令と、上位モジュールＭＵの種類に依らず中間モジュールＭＭに対して入力される種類の入力命令である基本入力命令と、に分類する（Ｓ４）。ここでは、中間モジュールＭＭと組み合わせられる上位モジュールＭＵの種類に応じて上記分類を行う。
【００４６】
例えば、入力命令ＩＣ１，ＩＣ２，ＩＣ３を中間モジュールＭＭに入力する上位モジュールＭＵ、入力命令ＩＣ１，ＩＣ２を中間モジュールＭＭに入力する上位モジュールＭＵ、及び、入力命令ＩＣ２，ＩＣ３を中間モジュールＭＭに入力する上位モジュールＭＵのいずれかが、中間モジュールＭＭと組み合わされて、電子機器１に実装される利用環境を考える。この場合には、入力命令ＩＣ１，ＩＣ３を選択入力命令に分類し、入力命令ＩＣ２を基本入力命令に分類する。
【００４７】
この後には、プログラム部品を共通化する上記グループ毎に、このグループに属する各細分化機能を複合化した、このグループに属する細分化機能共通のプログラム部品である複合プログラム部品を生成する（Ｓ５）。ここでは、グループに属する各細分化機能を実現するための手順を、共通部分については、共通のプログラムコードで記述したプログラム部品を上記複合プログラム部品として生成する（Ｓ５）。
【００４８】
但し、複合プログラム部品の生成に際しては、各グループに対して、中間モジュールＭＭに入力される入力命令の組合せ毎の複合プログラム部品を生成する。即ち、各グループに対しては、上記分類した選択入力命令の入力有無に応じて場合分けされる中間モジュールＭＭへ入力される入力命令の組合せ毎に、この組合せでは入力されない選択入力命令に対応する細分化機能を複合化の対象から外して、このグループに属する残りの細分化機能を複合化した上記複合プログラム部品を生成する。
【００４９】
例えば、Ｓ３では、入力命令ＩＣ２を基本入力命令に分類し、入力命令ＩＣ１，ＩＣ３を選択入力命令に分類し、Ｓ４では、出力命令ＯＣ１に対して、機能ＦＮ１１、機能ＦＮ２１及び機能Ｆ３１のグループを、プログラム部品を共通化する細分化機能のグループに設定したとする。この場合、中間モジュールＭＭに入力される入力命令の組合せとしては、｛入力命令ＩＣ１，入力命令ＩＣ２，入力命令ＩＣ３｝の組合せ（第一の組合せ）、｛入力命令ＩＣ１，入力命令ＩＣ２｝の組合せ（第二の組合せ）、｛入力命令ＩＣ２，入力命令ＩＣ３｝の組合せ（第三の組合せ）及び｛入力命令ＩＣ２｝の組合せ（第四の組合せ）がある。
【００５０】
従って、このグループに対する複合プログラム部品としては、図３に示すように、入力命令ＩＣ１，ＩＣ２，ＩＣ３が入力される場合に使用する「機能ＦＮ１１及び機能ＦＮ２１及び機能ＦＮ３１に対応する処理手順を実行可能な」複合プログラム部品、入力命令ＩＣ１，ＩＣ２が入力される場合に使用する「機能ＦＮ１１及び機能ＦＮ２１に対応する処理手順を実行可能な」複合プログラム部品、入力命令ＩＣ２，ＩＣ３が入力される場合に使用する「機能ＦＮ２１及び機能ＦＮ３１に対応する処理手順を実行可能な」複合プログラム部品、及び、入力命令ＩＣ２のみが入力される場合に使用する「機能Ｆ２１に対応する処理手順を実行可能な」複合プログラム部品を生成する。
【００５１】
尚、入力命令ＩＣ２のみが入力される場合に使用する「機能Ｆ２１に対応する処理手順を実行可能な」複合プログラム部品は、複数機能を複合化したものではないが、ここではプログラム部品を共通化する対象とした機能に対応するプログラム部品については、複合化する機能が複数か単一であるかを問わず複合プログラム部品と表現する。
【００５２】
一方で、プログラム部品を共通化する対象ではない細分化機能、即ち、Ｓ３で設定したグループのいずれにも属さない細分化機能、及び、入力命令毎の管理機能の夫々については、当該機能に対応する処理手順を実行可能な単独のプログラム部品を生成する（Ｓ６）。尚、このプログラム部品を単独プログラム部品と表現する。
【００５３】
このようして、モジュール生成方法における第一段階の手順を終了する。また、第二段階では、第一段階で生成したプログラム部品（単独プログラム部品及び複合プログラム部品）を組み合わせて、実装する電子機器１の環境に合わせた中間モジュールＭＭを生成する。
【００５４】
具体的には、実装する電子機器１において、上位モジュールＭＵから生成対象の中間モジュールＭＭに入力される入力命令の組合せを特定する（Ｓ７）。即ち、入力命令の一群の内、選択入力命令については、上位モジュールＭＵの種類によって中間モジュールＭＭに実際に入力されるか否かが変わる。従って、Ｓ７では、上位モジュールＭＵの種類を特定して、上位モジュールＭＵから生成対象の中間モジュールＭＭに入力される入力命令の組合せを特定する。
【００５５】
この後には、中間モジュールＭＭから出力する出力命令毎に、第一段階で生成したプログラム部品群の中から、この出力命令と中間モジュールＭＭに入力される入力命令との組合せに応じた複合プログラム部品及び単独プログラム部品を抽出する（Ｓ８）。具体的には、中間モジュールＭＭに入力される入力命令毎の上記管理機能に対応した単独プログラム部品を抽出すると共に、入力命令及び出力命令毎の細分化機能群の内、プログラム部品の共通化の対象となっていない各細分化機能に対応する単独プログラム部品を抽出する。更に、プログラム部品の共通化の対象となっている細分化機能のグループに関しては、グループ毎に、上位モジュールＭＵから実際に入力される入力命令の組合せに対応した複合プログラムを抽出する。
【００５６】
そして、抽出したプログラム部品群を組み合わせて中間モジュールＭＭを生成する。例えば、プログラム部品としてのオブジェクトファイル群をリンクして、中間モジュールＭＭとしての実行ファイルを生成する（Ｓ９）。
【００５７】
尚、第二段階の処理については、これを、中間モジュールＭＭを実装する電子機器１の上位モジュールＭＵの種類毎に実行することにより、実装する電子機器１の環境に合わせた中間モジュールＭＭを生成する。このように、本実施例のモジュール生成方法によれば、プログラム部品の組合せによって、入力命令の組合せに対応したモジュールを簡単に生成でき、多様な電子機器１への実装が想定される環境で、モジュールサイズを抑えつつ効率的に、電子機器１に実装する中間モジュールＭＭを生成することができる。
【００５８】
以上には、本実施例のモジュール生成方法について説明したが、続いては、このモジュール生成方法の適用例について、図４〜図８を用いて説明する。ここでは、図４に示すように、上位モジュールＭＵから入力命令としての初期化命令ＩＣ４及びデータ送信命令ＩＣ５及びデータ受信命令ＩＣ６を受けて、下位モジュールＭＤに対し通信初期化命令ＯＣ４及びメッセージ送信命令ＯＣ５及びメッセージ受信命令ＯＣ６を出力する通信制御機能を有した通信モジュールＭＭＥに、上記実施例のモジュール生成方法を適用する例について説明する。
【００５９】
但し、ここでは、通信モジュールＭＭＥを実装する電子機器１が、車両に搭載される電子制御装置（ＥＣＵ）であるものとする。電子制御装置に通信モジュールＭＭＥを実装することで、車内ＬＡＮにおけるノード間の通信を実現するといった具合である。
【００６０】
車内ＬＡＮに接続される電子制御装置としては、車両データを他の電子制御装置に送信する電子制御装置、他の電子制御装置から送信されてくる車両データを受信して車両を制御する電子制御装置、車両データを他の電子制御装置に送信する一方で他の電子制御装置から自己で検知できない車両状態を表す車両データを受信して車両を制御する電子制御装置等が知られている。
【００６１】
このような各電子制御装置に対して通信モジュールＭＭＥを個別に一から生成していたのでは手間がかかる。そこで、上記実施例を適用して、モジュールサイズを抑えつつ、各電子制御装置に利用可能な通信モジュールＭＭＥを生成する。
【００６２】
通信モジュールＭＭＥに要求される機能は、次のようなものである。具体的には、上位モジュールＭＵ（車両制御プログラム等）からの初期化命令ＩＣ４の入力を契機に、図５に示す内容の通信初期化／管理処理を実行可能な構成が通信モジュールに要求される。即ち、電子機器１（実装対象の電子制御装置）のコンピュータが上記処理を実行できるように、通信モジュールＭＭＥをプログラムとして構成することが要求される。
【００６３】
ここで、通信初期化／管理処理の内容について図５を用いて説明すると、通信初期化／管理処理では、下位モジュールＭＤを初期化するための通信初期化命令ＯＣ４を下位モジュールＭＤに出力して、下位モジュールＭＤを初期化した後（Ｓ２１１０）、初期化メッセージの送信処理を実行する（Ｓ２１２０）。
【００６４】
具体的に、Ｓ２１２０では、図６（ａ）に示すように、メッセージＩＤ及び参加状態フラグ及び自ノードが認識しているネットワークへの参加ノードを表す情報を記述したメッセージ本体を生成する（Ｓ２２１０）。尚、メッセージＩＤは、このメッセージの種類を表すものであり、ここでは、メッセージＩＤとして、初期化メッセージに対応するＩＤ番号を記述する。また、参加状態フラグは、ネットワークへの参加／ネットワークからの脱退を表すフラグである。ここでは、参加状態フラグとして「参加」を表す値を記述して、メッセージ本体を生成する。
【００６５】
更には、生成したメッセージ本体にフォーマットに従う付属情報（メッセージＩＤのＩＤ番号に依らない付属情報）を追加して送信メッセージ（ここでは初期化メッセージ）を生成する（Ｓ２２２０）。送信メッセージには、上記付属情報としてＣＲＣを記述する。そして、上記生成した送信メッセージを送信対象に設定したメッセージ送信命令ＯＣ５を下位モジュールＭＤに出力する（Ｓ２２３０）。これによって、下位モジュールＭＤを通じて上記送信メッセージ（初期化メッセージ）を送信する。Ｓ２１２０では、このようにして初期化メッセージの送信処理を行う。
【００６６】
また、Ｓ２１２０の処理後には、他ノードから送信されてくる初期化メッセージの受信処理を行う（Ｓ２１３０）。具体的に、Ｓ２１３０では、初期化メッセージを受信バッファから通信モジュールＭＭＥに取り込むためのメッセージ受信命令ＯＣ６を下位モジュールＭＤに出力して、下位モジュールＭＤを通じ、受信バッファから初期化メッセージを取り込む。そして、取り込んだ初期化メッセージが有する上記参加状態フラグに基づき、ネットワークに参加しているノードを特定すると共に、初期化メッセージ毎に、初期化メッセージが示す初期化メッセージ送信元のノードが認識しているネットワークへの参加ノードを特定する。
【００６７】
このようなＳ２１２０，Ｓ２１３０動作を、ネットワークへの参加手続きが完了するまで繰り返し実行する。具体的には、自ノードで認識するネットワーク内の参加ノードが他ノードから受信した初期化メッセージが示すネットワーク内の参加ノードと一致するまで（Ｓ２１４０でＮｏ）、Ｓ２１２０，Ｓ２１３０の処理を繰り返し、一致した場合には、ネットワークへの参加手続きが完了したと判断して（Ｓ２１４０でＹｅｓ）、Ｓ２１５０に移行する。
【００６８】
そして、Ｓ２１５０以降では、所定時間が経過する度に（Ｓ２１５０でＹｅｓ）、初期化メッセージの送信処理（Ｓ２１６０）及び初期化メッセージの受信処理（Ｓ２１７０）を行って、現時点でのネットワークへの参加ノードを特定する。
【００６９】
以上が、上位モジュールＭＵから入力される初期化命令ＩＣ４に基づく通信初期化／管理処理の内容である。
また、上記通信モジュールＭＭＥには、上位モジュールＭＵからのデータ送信命令ＩＣ５の入力に対応して図６（ｂ）に従う処理を実行可能であることが要求される。即ち、電子機器１（実装対象の電子制御装置）のコンピュータが図６（ｂ）に従うデータ送信処理を実行できるように、通信モジュールＭＭＥをプログラムとして構成することが要求される。
【００７０】
ここで、図６（ｂ）に示すデータ送信処理について説明すると、この処理では、メッセージＩＤと、上位モジュールＭＵからのデータ送信命令ＩＣ５にて指定された送信対象データとを組み合わせて、メッセージ本体を生成する。メッセージ本体には、メッセージＩＤとして、上記モジュールから指定された送信対象データの種類に対応するＩＤ番号を格納する（Ｓ２３１０）。更には、生成したメッセージ本体に、初期化メッセージと共通のフォーマットに従う付属情報（メッセージＩＤのＩＤ番号に依らない付属情報）を追加して送信メッセージを生成する（Ｓ２３２０）。送信メッセージには、上記付属情報としてＣＲＣを記述する。
【００７１】
そして、上記生成した送信メッセージを送信対象に設定したメッセージ送信命令ＯＣ５を下位モジュールＭＤに出力する（Ｓ２３３０）。これによって、下位モジュールＭＤを通じて上記送信メッセージを送信する。以上が、データ送信処理の内容である。
【００７２】
このような構成の通信モジュールＭＭＥを生成するに際して、上述したモジュール生成方法を適用すると、まず通信モジュールＭＭＥとしての機能を、図７に示すように、入力命令及び出力命令の組合せ毎の機能（ＦＥ１〜ＦＥ５）に分割する。但し、ここでは、データ送信命令ＩＣ５の入力に対応してはメッセージ送信命令ＯＣ５しか出力されず、データ受信命令ＩＣ６の入力に対応してはメッセージ受信命令ＯＣ６しか出力されないので、細分化機能は５つである（ＦＥ１〜ＦＥ５）。また、入力命令としての初期化命令ＩＣ４、データ送信命令ＩＣ５、及びデータ受信命令ＩＣ６に対しては管理機能（ＭＥ１〜ＭＥ３）を設ける（図２のＳ１，Ｓ２参照）。
【００７３】
この後、出力命令毎に、プログラム部品を共通化する細分化機能を選択してグループ化する（Ｓ３）。ここでは、出力命令であるメッセージ送信命令ＯＣ５に関して、データ送信処理（図６（ｂ））に対応する細分化機能ＦＥ４と初期化メッセージ送信処理（図６（ａ））に対応する細分化機能ＦＥ２とを、プログラム部品を共通化するグループに設定する。更に、出力命令であるメッセージ受信命令ＯＣ６に関して、細分化機能ＦＥ５及び細分化機能ＦＥ３を、プログラム部品を共通化するグループに設定する。
【００７４】
更に、初期化命令ＩＣ４、データ送信命令ＩＣ５、及び、データ受信命令ＩＣ６を選択入力命令又は基本入力命令のいずれかに分類する（Ｓ４）。ここでは、データ送信命令ＩＣ及びデータ受信命令ＩＣ６を選択入力命令に分類し、初期化命令ＩＣ４を基本入力命令に分類する。
【００７５】
この後には、細分化機能ＦＥ４及び細分化機能ＦＥ２からなるグループ（Ａグループと称する。）、並びに、細分化機能ＦＥ５及び細分化機能ＦＥ３からなるグループ（Ｂグループと称する。）の夫々に関して、入力命令の組合せ毎の複合プログラム部品を生成する（Ｓ５）。
【００７６】
詳述すると、Ａグループに関しては、細分化機能ＦＥ４に対応するデータ送信命令ＩＣ５が選択入力命令であるので、複合プログラム部品としては、初期化命令ＩＣ４及びデータ送信命令ＩＣ５が入力される場合に使用する細分化機能ＦＥ４及び細分化機能ＦＥ２を複合化した複合プログラム部品、及び、データ送信命令ＩＣ５が入力されない場合に使用する細分化機能ＦＥ２を実現可能な複合プログラム部品を生成する。
【００７７】
同様に、Ｂグループに関しては、細分化機能ＦＥ５に対応するデータ受信命令ＩＣ６が選択入力命令であるので、複合プログラム部品としては、初期化命令ＩＣ４及びデータ受信命令ＩＣ６が入力される場合に使用する細分化機能ＦＥ５及び細分化機能ＦＥ３を複合化した複合プログラム部品、及び、データ受信命令ＩＣ６が入力されない場合に使用する細分化機能ＦＥ３を実現可能な複合プログラム部品を生成する。
【００７８】
ここで、グループＡについて、細分化機能ＦＥ４及び細分化機能ＦＥ２を複合化して複合プログラム部品を生成する場合のプログラム部品の構成を、図８に示す。初期化メッセージ送信処理とデータ送信処理とでは、Ｓ２２２０及びＳ２２３０の手順と、Ｓ２３２０及びＳ２３３０の手順とで、共通する手順を有する。従って、この共通する手順に対応するプログラムコードを共通化して複合プログラム部品を生成する。グループＢについても、同様の思想に基づき、複合プログラム部品を生成する。
【００７９】
また、Ａグループ及びＢグループのいずれにも属さない細分化機能ＦＥ１及び管理機能ＭＥ１〜ＭＥ３については、単独プログラムを生成し（Ｓ６）、これら複合プログラム部品及び単独プログラム部品を組み合わせて、各電子制御装置に対応した通信モジュールＭＭＥを生成する（Ｓ７〜Ｓ９）。
【００８０】
例えば、自ノードからのデータ送信を行わず専ら他ノードからのデータ受信を行う電子制御装置に実装する通信モジュールＭＭＥに関しては、Ａグループに関して、細分化機能ＦＥ４及び細分化機能ＦＥ２を複合化した複合プログラム部品を選択せずに、細分化機能ＦＥ２のみを実現可能な複合プログラム部品を選択し、Ｂグループに関して、細分化機能ＦＥ５及び細分化機能ＦＥ３を複合化した複合プログラム部品を選択して、通信モジュールＭＭＥを生成する。
【００８１】
従って、本実施例のモジュール生成方法によれば、通信モジュールＭＭＥのプログラムサイズを、従来と比較して低減することができる。
以上に、本実施例のモジュール生成方法について説明したが、続いては、このモジュール生成方法の思想に従って、中間モジュールＭＭを生成する際に使用する支援装置１００の構成について説明する。図９に示す支援装置１００は、中間モジュールＭＭを生成する際のユーザの作業を支援するための装置である。但し、以下に説明する支援装置１００は、上記モジュール生成方法を更に発展させた方法でのモジュール生成を想定したものであるので、この点留意されたい。
【００８２】
図９に示す支援装置１００は、周知のパーソナルコンピュータと同様、演算部１０と、表示部２０と、操作部３０と、入出力部４０と、記憶部５０と、を備えるものである。表示部２０は、液晶ディスプレイ等から構成されるものであり、各種情報を画像情報として出力するものである。また、操作部３０は、ユーザ操作可能なキーボードやポインティングデバイス等で構成されるユーザインタフェースである。また、入出力部４０は、ＵＳＢインタフェースや磁気ディスクドライブ装置、ＣＤ／ＤＶＤドライブ装置等で構成されるものであり、各種データ（プログラムを含む）を、支援装置１００に入力したり、支援装置１００から取り出したりするためのものである。
【００８３】
また、記憶部５０は、ハードディスク装置等で構成されるものであり、演算部１０で実行されるプログラムやプログラムで使用されるデータ等が格納されるものである。
そして、演算部１０は、ＣＰＵ１１及びＲＡＭ１３を備えるものであり、記憶部５０が記憶するプログラムをＣＰＵ１１にて実行することにより、ユーザによる中間モジュールＭＭの生成を支援するための各種処理を行う。
【００８４】
具体的に、記憶部５０には、ユーザによる中間モジュールＭＭの生成作業を支援するためのアプリケーションプログラムとして第一支援ツール及び第二支援ツール及び第三支援ツールがインストールされている。ＣＰＵ１１は、操作部３０を通じて入力される第一支援ツール及び第二支援ツール及び第三支援ツールの起動指示に従って、ユーザによる中間モジュールＭＭの生成を支援するための各種処理を行う。
【００８５】
図１０は、第一支援ツールに従ってＣＰＵ１１が実行する処理のフローチャートを示した図である。ＣＰＵ１１は、操作部３０を通じて入力される第一支援ツールの起動指示に従って図１０に示す処理を開始すると、まず命令登録処理を実行する（Ｓ１００）。この命令登録処理は、図１１に示すように、中間モジュールＭＭに入力される入力命令及び中間モジュールＭＭから出力される出力命令の登録操作を受け付けるための処理である。
【００８６】
命令登録処理を開始すると、ＣＰＵ１１は、入力命令の識別コードを格納するための配列｛Ｉ＿ｎａ（ｎ）｝及び出力命令の識別コードを格納するための配列｛Ｏ＿ｎａ（ｍ）｝を生成する（Ｓ１１０，Ｓ１１５）。そして、変数ｎをゼロに初期化後（Ｓ１２０）、Ｓ１３０以降の処理を実行する。
【００８７】
具体的には、変数ｎを１カウントアップし（Ｓ１３０）、入力命令登録画面を表示し、操作部３０を通じて入力命令の識別コードの入力操作を受け付け（Ｓ１３５）、当該操作により入力された識別コードを、配列要素Ｉ＿ｎａ（ｎ）にセットする（Ｓ１４０）。
【００８８】
このような手順Ｓ１３０〜Ｓ１４０を、入力命令の登録完了操作がなされるまで繰り返し実行する。これにより、配列要素Ｉ＿ｎａ（１），Ｉ＿ｎａ（２），…，Ｉ＿ｎａ（Ｎ）の順に、入力命令登録画面を通じて入力された入力命令の識別コードを登録する。尚、入力命令の識別コードは、中間モジュールＭＭの構成を画面表示する際に用いられるものである。従って、識別コードとしては、入力命令の名称や内容を表す文字列コードをユーザに入力させることができる。
【００８９】
そして、入力命令の登録完了操作がなされると（Ｓ１４５でＹｅｓ）、出力命令の識別コードについても同様の手順で、その登録操作を受け付ける。即ち、変数ｍをゼロに初期化後（Ｓ１５０）、変数ｍを１カウントアップし（Ｓ１６０）、出力命令登録画面を表示し、操作部３０を通じて出力命令の識別コードの入力操作を受け付け（Ｓ１６５）、当該操作により入力された識別コードを、配列要素Ｏ＿ｎａ（ｍ）にセットする（Ｓ１７０）手順を、出力命令の登録完了操作がなされるまで繰り返し実行することにより、配列要素Ｏ＿ｎａ（１），Ｏ＿ｎａ（２），…，Ｏ＿ｎａ（Ｍ）の順に、出力命令登録画面を通じて入力された出力命令の識別コードを登録する。尚、出力命令の識別コードとしては、入力命令と同様、出力命令の名称や内容を表す文字列コードを挙げることができる。
【００９０】
そして、出力命令の登録完了操作がなされると（Ｓ１７５でＹｅｓ）、当該命令登録処理を終了する。以下では、この命令登録処理で登録された入力命令の数をＮと表現し、出力命令の数をＭと表現する。
【００９１】
この命令登録処理を終了すると、ＣＰＵ１１は、Ｓ２００に移行して、中間モジュールＭＭで実現すべき機能の登録操作を受け付けるために、図１２に示す機能登録処理を実行する。この機能登録処理では、機能の識別コードを格納するために、Ｎ×（Ｍ＋１）の二次元配列｛Ｆ１（ｎ１，ｍ１）｝を生成する（Ｓ２１０）。更に、命令登録処理で登録された入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の一覧画面（以下、「入力命令一覧画面」と表現する。）を表示して、入力命令の選択操作を受け付け（Ｓ２２０）、選択された入力命令Ｉ＿ｎａ（ｓｎ）の識別コード（名称や内容を表す文字列）及び入力ライン、並びに、登録された各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）に対応した外部機能ブロック、並びに、内部機能ブロックを、レイアウトした図１２右図に示す構成のモジュール構成画面を、表示部２０に表示する（Ｓ２３０）。
【００９２】
尚、ここでは、配列要素Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）に識別コードが登録された各入力命令の内、配列要素Ｉ＿ｎａ（ｎ）に識別コードが登録された入力命令のことを「入力命令Ｉ＿ｎａ（ｎ）」と表現する。出力命令についても同様である。
【００９３】
また、ここでいう外部機能とは、下位モジュールＭＤに命令を出力する動作を伴う機能のことであり、上記実施例のモジュール生成方法で説明した「細分化機能」に対応する。また、内部機能とは、下位モジュールＭＤに命令を出力する動作を伴わない機能のことである。このモジュール構成画面に表示される外部機能ブロックは、外部機能の登録内容を表示するためのブロックであり、モジュール構成画面には、入力命令Ｉ＿ｎａ（ｓｎ）及び出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の組合せ毎の外部機能ブロックが表示される。
【００９４】
Ｓ２３０でモジュール構成画面を表示すると、ＣＰＵ１１は、変数ｍ１をゼロに初期化後（Ｓ２４０）、Ｓ２５１以降の処理を実行する。
具体的には、変数ｍ１を１カウントアップし（Ｓ２５１）、入力命令Ｉ＿ｎａ（ｓｎ）及び出力命令Ｏ＿ｎａ（ｍ１）の組合せに対応する外部機能の登録操作を受け付けるための外部機能登録画面を表示して、操作部３０を通じて外部機能の識別コードの入力操作を受け付け（Ｓ２５３）、当該操作により入力された識別コードを、配列要素Ｆ１（ｓｎ，ｍ１）にセットすると共に、配列要素Ｆ１（ｓｎ，ｍ１）に対応するモジュール構成画面の外部機能ブロックである入力命令Ｉ＿ｎａ（ｓｎ）の入力ライン及び出力命令Ｏ＿ｎａ（ｍ１）に接続された外部機能ブロックに、登録された外部機能の識別コードを表示する（Ｓ２５５）。ここでは、識別コードが配列要素Ｆ１（ｎ１，ｍ１）にセットされる外部機能のことを、「外部機能Ｆ１（ｎ１，ｍ１）」と表現する。
【００９５】
ＣＰＵ１１は、このような手順Ｓ２５１〜Ｓ２５５を、変数ｍ１が値Ｍ以上となるまで繰り返し実行する。これによって、配列要素Ｆ１（ｓｎ，１），Ｆ１（ｓｎ，２），…，Ｆ１（ｓｎ，Ｍ）の順に、外部機能登録画面を通じて入力された外部機能の識別コードを登録し、この登録内容をモジュール構成画面に反映させる。
【００９６】
尚、外部機能の識別コードとしては、この機能の名称や内容を表す文字列コードを挙げることができる。また、Ｓ２５３では、外部機能を登録しない旨の入力操作を受け付けることも可能である。この場合には、対応する配列要素Ｆ１（ｓｎ，ｍ１）にＮＵＬＬコードをセットする。入力命令に対応する出力命令が存在しない場合には、登録すべき外部機能がないので、ユーザにより、外部機能を登録しない旨の入力操作がなされる。
【００９７】
また、変数ｍ１が値Ｍ以上となると（Ｓ２５７でＹｅｓ）、内部機能登録画面を表示して、操作部３０を通じて登録する内部機能の識別コードの入力操作を受け付け（Ｓ２６０）、当該操作により入力された識別コードを、配列要素Ｆ１（ｓｎ，Ｍ＋１）にセットする（Ｓ２７０）。そして、登録された入力命令の全てを選択する操作がなされていない場合には（Ｓ２８０でＮｏ）、Ｓ２２０に戻ってＳ２２０以降の処理を実行することで、入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）に対応した外部機能及び内部機能の登録操作を受け付ける。
【００９８】
そして、全ての入力命令についての外部機能及び内部機能の登録操作を受け付けると（Ｓ２８０でＹｅｓ）、当該機能登録処理を終了する。
また、機能登録処理を実行した後には、Ｓ３００に移行して、図１３に示す内部機能詳細登録処理を実行する。内部機能詳細登録処理では、上述した内部機能を、外部機能の動作を制御する管理機能と、その他の機能である個別機能とに分離して登録する。
【００９９】
内部機能詳細登録処理を開始すると、ＣＰＵ１１は、まず管理機能及び個別機能の識別コードを格納するために、Ｎ×（Ｍ＋２）の二次元配列｛Ｔ１（ｎ２，ｍ２）｝を生成する（Ｓ３１０）。また、ｎ２＝１，…，Ｎ及びｍ２＝１，…，Ｍの各配列要素Ｔ１（ｎ２，ｍ２）に、同一要素番号の配列要素Ｆ１（ｎ２，ｍ２）の値を設定する（Ｓ３１５）。
【０１００】
更に、入力命令一覧画面を表示して、入力命令の選択操作を受け付け（Ｓ３２０）、選択された入力命令Ｉ＿ｎａ（ｓｎ）の識別コード及び入力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）に対応した外部機能ブロック、並びに、内部機能に内在する管理機能のブロック及び個別機能のブロックを、レイアウトした図１３右図に示す構成のモジュール構成画面を、表示部２０に表示する（Ｓ３３０）。
【０１０１】
Ｓ３３０で上記モジュール構成画面を表示すると、ＣＰＵ１１は、入力命令Ｉ＿ｎａ（ｓｎ）に対応する管理機能登録用の画面である管理機能登録画面を表示部２０に表示して、操作部３０を通じて管理機能の識別コードの入力操作を受け付け（Ｓ３４０）、当該操作により入力された識別コードを、配列要素Ｔ１（ｓｎ，Ｍ＋２）にセットすると共に、モジュール構成画面の管理機能ブロックに、登録された管理機能の識別コードを表示する（Ｓ３４５）。
【０１０２】
この後、ＣＰＵ１１は、入力命令Ｉ＿ｎａ（ｓｎ）に対応する個別機能登録画面を表示し、操作部３０を通じて個別機能の識別コードの入力操作を受け付け（Ｓ３５０）、当該操作により入力された識別コードを、配列要素Ｔ１（ｓｎ，Ｍ＋１）にセットすると共に、モジュール構成画面の個別機能ブロックに、登録された個別機能の識別コードを表示する（Ｓ３５５）。
【０１０３】
また、登録された全ての入力命令を選択する操作がなされていない場合には（Ｓ３６０でＮｏ）、Ｓ３２０に戻ってＳ３２０以降の処理を実行することで、各入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）に対応した管理機能及び個別機能の登録操作を受け付ける。尚、Ｓ３５０では、個別機能を登録しない旨の入力操作を受け付けることも可能である。この場合には、対応する配列要素Ｔ１（ｓｎ，Ｍ＋１）にＮＵＬＬコードをセットする。
【０１０４】
そして、全ての入力命令についての管理機能及び個別機能の登録操作を受け付けると（Ｓ３６０でＹｅｓ）、当該内部機能詳細登録処理を終了する。
また、このようにして内部機能詳細登録処理を終えると、ＣＰＵ１１は、Ｓ４００に移行し、図１４に示す確認画面表示処理を実行する。
【０１０５】
確認画面表示処理では、各入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の識別コード及び入力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、各外部機能Ｆ１（ｎ１，ｍ１）のブロック（但し、ｎ１＝１，…，Ｎでありｍ１＝１，…，Ｍである。）をレイアウトした、図１４右上段に示す外部機能確認画面を、表示部２０に表示する（Ｓ４１０）。尚、登録されていない外部機能（ＮＵＬＬに設定された外部機能）に対応するブロックについては表示しない又はグレー表示するなどの処理を施すことができる。
【０１０６】
また、先へ進む旨の操作が操作部３０を通じてなされると（Ｓ４２０でＹｅｓ）、ＣＰＵ１１は、登録された出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の一覧画面（以下、「出力命令一覧画面」と表現する。）を表示して、出力命令の選択操作を受け付け（Ｓ４３０）、出力命令の選択操作がなされると、選択された出力命令Ｏ＿ｎａ（ｓｍ）についての外部機能確認画面を表示する。
【０１０７】
具体的には、選択された出力命令Ｏ＿ｎａ（ｓｍ）の識別コード及び出力ライン、並びに、この出力命令Ｏ＿ｎａ（ｓｍ）を出力する各外部機能Ｆ１（１，ｓｍ），Ｆ１（２，ｓｍ），…，Ｆ１（Ｎ，ｓｍ）のブロック、及び、各外部機能Ｆ１（１，ｓｍ），Ｆ１（２，ｓｍ），…，Ｆ１（Ｎ，ｓｍ）に対応する入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の識別コード及び入力ラインをレイアウトした図１４右下段に示す確認画面を表示する（Ｓ４４０）。
【０１０８】
また、この確認画面を表示すると、出力命令の切替操作又は先へ進む旨の操作が操作部３０を通じてなされるまで待機し（Ｓ４５０，Ｓ４６０）、出力命令の切替操作がなされた場合には、Ｓ４３０に移行して、後続処理を再度実行することにより、選択された出力命令に対応する上記確認画面を表示する（Ｓ４４０）。そして、先へ進む旨の操作がなされると（Ｓ４６０でＹｅｓ）、当該確認画面表示処理を終了して、Ｓ５００に移行する。尚、この確認画面表示処理は、生成する中間モジュールＭＭの構成をユーザに再確認させるための処理である。
【０１０９】
また、Ｓ５００に移行すると、ＣＰＵ１１は、図１５に示す細分化処理を実行する。図１５に示す細分化処理は、複雑な構造の中間モジュールＭＭに対応してプログラム部品を細分化する作業を支援するために、外部機能Ｆ１（１，１）〜Ｆ１（Ｎ，Ｍ）を、ユーザからの指示に従って更に細分化（分割）するものである。
【０１１０】
細分化処理を開始すると、ＣＰＵ１１は、分割数を格納するための配列｛ＤｉｖＦ（ｎ３，ｍ３）｝を生成し（Ｓ５１０）、各配列要素ＤｉｖＦ（ｎ３，ｍ３）に対して初期値１をセットする（Ｓ５１５）。但し、ｎ３＝１，…，Ｎ及びｍ３＝１，…，Ｍ＋１である。また、配列｛Ｆ２（ｎ３，ｍ３，ｌ３）｝を生成し（Ｓ５２０）、ｎ３＝１，…，Ｎ及びｍ３＝１，…，Ｍ＋１の各配列要素Ｆ２（ｎ３，ｍ３，１）に、同一要素番号の配列要素Ｆ１（ｎ３，ｍ３）の値を設定する（Ｓ５２５）。
【０１１１】
そして、各入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の識別コード及び入力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、各詳細機能Ｆ２（ｎ３，ｍ３，ｌ３）のブロック（但し、ｎ３＝１，…，Ｎでありｍ３＝１，…，Ｍであり、ｌ３＝１，…，ＤｉｖＦ（ｎ３，ｍ３）である。）をレイアウトしたモジュール構成画面を、表示部２０に表示する（Ｓ５３０）。ここでは、外部機能Ｆ１（１，１）〜Ｆ１（Ｎ，Ｍ）を細分化して得られる各機能のことを特に「詳細機能」と表現する。図１６は、Ｓ５３０で表示部２０に表示されるモジュール構成画面の構成を表す図である。但し、初回のＳ５３０実行時には、ＤｉｖＦ（ｎ３，ｍ３）＝１であるので、図１４右上段に示す確認画面と同様のモジュール構成画面が表示される。
【０１１２】
この処理を終えると、ＣＰＵ１１は、出力命令一覧画面を表示して、出力命令の選択操作を受け付け（Ｓ５４０）、Ｓ５３０で表示したモジュール構成画面を、選択された出力命令Ｏ＿ｎａ（ｓｍ）についてのモジュール構成画面に更新する（Ｓ５４５）。具体的には、出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ラインの内、選択された出力命令Ｏ＿ｎａ（ｓｍ）以外の識別コード及び出力ラインを削除したモジュール構成画面に更新する。
【０１１３】
この後、ＣＰＵ１１は、入力命令一覧画面を表示して、入力命令の選択操作を受け付け（Ｓ５５０）、選択された入力命令Ｉ＿ｎａ（ｓｎ）及び上記出力命令Ｏ＿ｎａ（ｓｍ）の組合せに対応する外部機能Ｆ１（ｓｎ，ｓｍ）を細分化対象に設定して、この外部機能Ｆ１（ｓｎ，ｓｍ）についての分割数入力画面を表示し、分割数の入力操作を受け付ける（Ｓ５６０）。
【０１１４】
そして、配列要素ＤｉｖＦ（ｓｎ，ｓｍ）の値を、入力された分割数に更新し（Ｓ５６５）、モジュール構成画面における詳細機能Ｆ２（ｓｎ，ｓｍ，ｌ）のブロックを、上記入力された分割数に応じたブロック数に更新する。即ち、上記モジュール構成画面を、外部機能Ｆ１（ｓｎ，ｓｍ）の詳細機能として、ＤｉｖＦ（ｓｎ，ｓｍ）個の各詳細機能Ｆ２（ｓｎ，ｓｍ，１），Ｆ２（ｓｎ，ｓｍ，２），…，Ｆ２（ｓｎ，ｓｍ，ＤｉｖＦ（ｓｎ，ｓｍ））のブロックをレイアウトしたモジュール構成画面に更新する（Ｓ５６９）。
【０１１５】
また、モジュール構成画面にレイアウトされたブロックの選択操作により、詳細機能Ｆ２（ｓｎ，ｓｍ，１），Ｆ２（ｓｎ，ｓｍ，２），…，Ｆ２（ｓｎ，ｓｍ，ＤｉｖＦ（ｓｎ，ｓｍ））についての選択操作を、操作部３０を通じて受け付け（Ｓ５７０）、選択された詳細機能Ｆ２（ｓｎ，ｓｍ，ｓｌ）についての詳細機能登録画面を表示して、操作部３０を通じて詳細機能の識別コードの入力操作を受け付ける（Ｓ５８０）。
【０１１６】
そして、操作部３０を通じて入力された識別コードを、配列要素Ｆ２（ｓｎ，ｓｍ，ｓｌ）にセットすると共に、配列要素Ｆ２（ｓｎ，ｓｍ，ｓｌ）に対応するモジュール構成画面の詳細機能ブロックに、登録された詳細機能の識別コードを表示する（Ｓ５８５）。尚、ここでは、配列要素Ｆ２（ｎ３，ｍ３，ｌ３）に識別コードがセットされる詳細機能のことを、「詳細機能Ｆ２（ｎ３，ｍ３，ｌ３）」と表現する。以下、配列要素をサフィックスに用いた類似の表現については、外部機能Ｆ１（ｎ１，ｍ１）や詳細機能Ｆ２（ｎ３，ｍ３，ｌ３）と同様の規則に従うものとする。
【０１１７】
そして、詳細機能Ｆ２（ｓｎ，ｓｍ，１）〜Ｆ２（ｓｎ，ｓｍ，ＤｉｖＦ（ｓｎ，ｓｍ））の全てに対する識別コードの登録作業が完了していない場合には（Ｓ５９０でＮｏ）、Ｓ５７０に移行して、Ｓ５７０以降の処理を実行し、詳細機能Ｆ２（ｓｎ，ｓｍ，１）〜Ｆ２（ｓｎ，ｓｍ，ＤｉｖＦ（ｓｎ，ｓｍ））の全てに対する識別コードの登録作業が完了すると（Ｓ５９０でＹｅｓ）、Ｓ５４０で選択された出力命令Ｏ＿ｎａ（ｓｍ）に対応する入力命令であって、外部機能の分割が必要な入力命令についての選択操作が全て完了したか否かを判断し（Ｓ５９５）、完了していないと判断すると（Ｓ５９５でＮｏ）、Ｓ５５０に戻って、Ｓ５５０以降の処理を実行する。
【０１１８】
一方、完了したと判断すると（Ｓ５９５でＹｅｓ）、ＣＰＵ１１は、出力命令Ｏ＿ｎａ（１），…，＿Ｏ＿ｎａ（Ｍ）についての出力命令一覧画面を通じた選択操作が全て完了したか否かを判断し（Ｓ５９９）、選択操作が完了していないと判断すると（Ｓ５９９でＮｏ）、Ｓ５３０に移行し、表示部２０に表示するモジュール構成画面を更新してＳ５４０以降の処理を実行する。また、選択操作が完了したと判断すると（Ｓ５９９でＹｅｓ）、当該細分化処理を終了する。
【０１１９】
この細分化処理を終えると、ＣＰＵ１１は、Ｓ６００にて共通化対象設定処理を実行する。図１７は、共通化対象設定処理を表すフローチャートである。共通化対象設定処理では、ユーザからの指示に従って、プログラム部品を共通化する機能の一群をグループ化する。
【０１２０】
共通化対象設定処理を開始すると、ＣＰＵ１１は、各入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の識別コード及び入力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、各詳細機能Ｆ２（ｎ３，ｍ３，ｌ３）のブロック（但し、ｎ３＝１，…，Ｎでありｍ３＝１，…，Ｍであり、ｌ３＝１，…，ＤｉｖＦ（ｎ３，ｍ３）である。）をレイアウトしたモジュール構成画面を、表示部２０に表示する（Ｓ６１０）。
【０１２１】
また、管理用配列｛ＦＣ２（ｘ，ｙ，ｚ）｝を生成し（Ｓ６１５）、グループ番号ｘを、値ゼロに初期化する（Ｓ６２０）。その後、Ｓ６３０以降の処理を実行する。
Ｓ６３０に移行すると、ＣＰＵ１１は、グループ番号ｘを１カウントアップし、出力命令一覧画面を表示して出力命令についての選択操作を受け付け（Ｓ６４０）、Ｓ６１０で表示したモジュール構成画面を、Ｓ５４５での処理と同様に、選択された出力命令Ｏ＿ｎａ（ｓｍ）についてのモジュール構成画面に更新する（Ｓ６５０）。更に、グループ構成要素番号ｙを値ゼロに初期化する（Ｓ６６０）。
【０１２２】
その後、ＣＰＵ１１は、グループ構成要素番号ｙを１カウントアップし（Ｓ６７１）、モジュール構成画面にレイアウトされたブロックの選択操作により、出力命令Ｏ＿ｎａ（ｓｍ）に対応する詳細機能Ｆ２（ｎ３，ｓｍ，ｌ３）であって、プログラム部品を共通化する詳細機能Ｆ２（ｎ３，ｓｍ，ｌ３）の選択操作を受け付け（Ｓ６７３）、選択された詳細機能Ｆ２（ｓｎ，ｓｍ，ｓｌ）の要素番号ｓｎを、配列要素ＦＣ２（ｘ，ｙ，１）にセットし、選択された詳細機能Ｆ２（ｓｎ，ｓｍ，ｓｌ）の要素番号ｓｌを、配列要素ＦＣ２（ｘ，ｙ，２）にセットする（Ｓ６７５）。このようにして配列要素ＦＣ２（ｘ，ｙ，１）及び配列要素ＦＣ２（ｘ，ｙ，２）には、グループ番号がｘであり、グループ構成要素番号がｙである第ｘグループ第ｙ要素の詳細機能を特定するための情報を登録する。
【０１２３】
この処理を終えると、ＣＰＵ１１は、プログラム部品を共通化する第ｘグループの詳細機能についての選択操作が完了したか否かを判断し（Ｓ６７７）、選択操作が完了していない場合には（Ｓ６７７でＮｏ）、Ｓ６７１に移行して、Ｓ６７１以降の処理を実行する。そして、選択操作が完了したと判断すると（Ｓ６７７でＹｅｓ）、第ｘグループの要素数ｙを、配列要素Ｆ２Ｃ（ｘ，０，１）にセットすると共に、Ｓ６４０で選択された出力命令Ｏ＿ｎａ（ｓｍ）の要素番号ｓｍを、配列要素ＦＣ２（ｘ，０，２）にセットする（Ｓ６８０）。
【０１２４】
このようにして第ｘグループに対応する出力命令、第ｘグループに属する詳細機能の数、及び、第ｘグループの属する詳細機能の一群を特定できるように、Ｓ６７５，Ｓ６８０で配列要素ＦＣ２（ｘ，ｙ，ｚ）に各種情報を登録する。
【０１２５】
また、この処理を終えると、ＣＰＵ１１は、プログラム部品を共通化するグループの登録操作が完了したか否かを判断し（Ｓ６９０）、完了していないと判断すると（Ｓ６９０でＮｏ））、Ｓ６３０に移行して、Ｓ６３０以降の処理を実行する。
【０１２６】
そして、グループの登録操作が完了したと判断すると（Ｓ６９０でＹｅｓ）、グループ総数ｘを、配列要素Ｆ２Ｃ（０，０，１）にセットして（Ｓ６９５）、当該共通化対象設定処理を終了する。
【０１２７】
また、共通化対象設定処理を終了すると、ＣＰＵ１１は、Ｓ７００に移行して、図１８に示す副管理機能登録処理を実行する。尚、この副管理機能登録処理は、外部機能を細分化して得られる同一外部機能に属する各詳細機能の動作を制御するための機能（以下、副管理機能という。）を、操作部３０を通じたユーザ操作に従って登録するための処理である。
【０１２８】
この副管理機能登録処理を開始すると、ＣＰＵ１１は、副管理機能を含む各機能の識別コードを格納するための配列｛Ｔ２（ｎ４，ｍ４，ｌ４）｝を生成すると共に（Ｓ７１０）、分割数を格納するための配列｛ＤｉｖＴ（ｎ４，ｍ４）｝を生成する（Ｓ７１５）。但し、ｎ４＝１，…，Ｎであり、ｍ４＝１，…，Ｍ＋２である。
【０１２９】
また、この処理を終えると、ＣＰＵ１１は、ｎ４＝１，…，Ｎ及びｍ４＝１，…，Ｍ及びｌ４＝１，…，ＤｉｖＦ（ｎ４，ｍ４）の範囲における各配列要素Ｔ２（ｎ４，ｍ４，ｌ４）に、同一要素番号の配列要素Ｆ２（ｎ４，ｍ４，ｌ４）の値をセットすると共に、ｎ４＝１，…，Ｎ及びｍ４＝１，…，Ｍの範囲における各配列要素Ｔ２（ｎ４，ｍ４，ＤｉｖＦ（ｎ４，ｍ４）＋１）に、ＮＵＬＬをセットする（Ｓ７２０）。更に、配列要素Ｔ２（ｎ４，Ｍ＋１，１）に、配列要素Ｔ１（ｎ４，Ｍ＋１）の値をセットし、配列要素Ｔ２（ｍ４，Ｍ＋２，１）に、配列要素Ｔ１（ｍ４，Ｍ＋２）の値をセットする（Ｓ７２５）。
【０１３０】
また、ｎ４＝１，…，Ｎ及びｍ４＝１，…，Ｍの範囲における各配列要素ＤｉｖＴ（ｎ４，ｍ４）に、同一要素番号の配列要素ＤｉｖＦ（ｎ４，ｍ４）の値をセットし、配列要素ＤｉｖＴ（ｎ４，Ｍ＋１）に値１をセットし、配列要素ＤｉｖＴ（ｎ４，Ｍ＋２）に、値１をセットする（Ｓ７３０）。
【０１３１】
また、この処理を終えると、Ｓ７４０に移行して、各入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の識別コード及び入力ライン、並びに、各出力命令Ｏ＿ｎａ（１）〜Ｏ＿ｎａ（Ｍ）の識別コード及び出力ライン、並びに、各詳細機能Ｔ２（ｎ４，ｍ４，ｌ４）のブロック、並びに、各個別機能Ｔ２（ｎ４，Ｍ＋１，１）のブロック、並びに、各管理機能Ｔ２（ｎ４，Ｍ＋２，１）のブロック、並びに、各外部機能Ｆ１（ｎ４，ｍ４）毎の副管理機能Ｔ２（ｎ４，ｍ４，ＤｉｖＴ（ｎ４，ｍ４）＋１）のブロックをレイアウトしたモジュール構成画面を表示部２０に表示する（但し、ｎ４＝１，…，Ｎでありｍ４＝１，…，Ｍであり、ｌ４＝１，…，ＤｉｖＴ（ｎ４，ｍ４）である）。図１９は、Ｓ７４０で表示するモジュール構成画面の構成を表す図である。
【０１３２】
そして、モジュール構成画面にレイアウトされたブロックの選択操作により、副管理機能Ｔ２（ｎ４，ｍ４，ＤｉｖＴ（ｎ４，ｍ４）＋１）についての選択操作を受け付け（Ｓ７５０）、選択された副管理機能Ｔ２（ｓｎ，ｓｍ，ＤｉｖＴ（ｓｎ，ｓｍ）＋１）についての識別コードを登録するための副管理機能登録画面を表示して、操作部３０を通じた副管理機能Ｔ２（ｓｎ，ｓｍ，ＤｉｖＴ（ｓｎ，ｓｍ）＋１）の識別コードの入力操作を受け付ける（Ｓ７６０）。そして、入力された識別コードを、配列要素Ｔ２（ｓｎ，ｓｍ，ＤｉｖＴ（ｓｎ，ｓｍ）＋１）にセットする。この際には、モジュール構成画面における副管理機能Ｔ２（ｓｎ，ｓｍ，ＤｉｖＴ（ｓｎ，ｓｍ）＋１）のブロックに、登録された識別コードを表示する。
【０１３３】
また、この処理後には、副管理機能についての識別コードの登録操作が全て完了したか否かを判断し（Ｓ７８０）、全て完了していないと判断するとＳ７４０に移行し、全て完了したと判断すると（Ｓ７８０でＹｅｓ）、当該副管理機能登録処理を終了する。
【０１３４】
また、副管理機能登録処理を終えると、ＣＰＵ１１は、Ｓ８００に移行し、選択入力命令設定処理を実行する。図２０に示す選択入力命令設定処理は、中間モジュールＭＭに入力される入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の内、上位モジュールＭＵの種類によっては中間モジュールＭＭに対して入力されない種類の入力命令である選択入力命令についての設定操作をユーザから受け付けて、中間モジュールＭＭに入力される入力命令を、上記選択入力命令又は上位モジュールＭＵの種類に依らず中間モジュールＭＭに対して入力される種類の入力命令である基本入力命令に分類するための処理である。
【０１３５】
選択入力命令設定処理を開始すると、ＣＰＵ１１は、選択入力命令の要素番号を記憶するための配列｛Ｄｎ（ｋ）｝を生成し（Ｓ８１０）、変数ｋを値ゼロに初期化する（Ｓ８２０）。その後、選択入力命令の設定を完了する旨の完了操作がなされたか否かを判断し（Ｓ８３０）、完了操作がなされていないと判断すると（Ｓ８３０でＮｏ）、変数ｋを１カウントアップし（Ｓ８４０）、入力命令一覧画面を表示して、選択入力命令に設定する入力命令の選択操作を受け付ける（Ｓ８５０）。そして、選択された入力命令Ｉ＿ｎａ（ｓｎ）の要素番号ｓｎを、配列要素Ｄｎ（ｋ）にセットする（Ｓ８６０）。その後、Ｓ８３０に移行する。このような動作により、配列要素Ｄｎ（１），Ｄｎ（２）の順に、当該配列要素に、ユーザから指定された選択入力命令の要素番号をセットする。
【０１３６】
そして、完了操作がなされたと判断すると（Ｓ８３０でＹｅｓ）、配列要素Ｄｎ（０）に選択入力命令の数ｋをセットして（Ｓ８７０）、選択入力命令設定処理を終了する。
また、選択入力命令設定処理を終了すると、ＣＰＵ１１は、Ｓ９００に移行し、図２１に示す組合せテーブル生成処理を実行する。
【０１３７】
組合せテーブル生成処理を開始すると、ＣＰＵ１１は、変数ｐに、プログラム部品を共通化するグループ総数を表す配列要素Ｆ２Ｃ（０，０，１）の値をセットした後（Ｓ９１０）、Ｓ９１５以降の処理を実行することにより、グループ毎の組合せテーブルを生成する。
【０１３８】
詳述すると、Ｓ９１５では、変数ｐがゼロよりも大きいか否かを判断し、ゼロよりも大きい場合には（Ｓ９１５でＹｅｓ）、第ｐグループについての組合せテーブルを、第ｐグループに属する詳細機能の個数を表す配列要素Ｆ２Ｃ（ｐ，０，１）の値に基づき生成する（Ｓ９２０）。ここで生成する組合せテーブルは、中間モジュールＭＭへ入力される入力命令の組合せパターン（換言すれば入力有無のパターン）を表すテーブルのことであり、具体的には、図２２上段太枠内に示すように、入力命令が入力される場合を値「１」、入力命令が入力されない場合を値ゼロで表現した組合せパターンを記したテーブルのことである。図２２は、第ｐグループの組合せテーブルの例を概念的に表したものである。
【０１３９】
第ｐグループに属する各詳細機能について、この詳細機能に対応する入力命令が上位モジュールＭＵから入力される場合及び入力されない場合を場合分けすると、詳細機能毎に、入力命令の入力有無に応じた２通りの場合分けができる。また、本実施例では、入力命令が同一の詳細機能が同一グループに複数存在することのないようにグループ化を行うルールを採用しているので、詳細機能毎に対応する入力命令は異なる。従って、中間モジュールＭＭに入力される第ｐグループに対応する入力命令の組合せパターンの総数は、２のＦ２Ｃ（ｐ，０，１）乗となる。
【０１４０】
従って、Ｓ９２０では、第ｐグループに属する各詳細機能に対応する入力命令の中間モジュールＭＭへの入力有無に応じた２のＦ２Ｃ（ｐ，０，１）乗個の入力命令の組合せパターンを記した組合せテーブル｛ＴＬＣＰ（ｐ，ｑ，ｒ）｝を生成する。ＴＬＣＰ（ｐ，ｑ，ｒ）は、第ｐグループの組合せテーブルにおける第ｑ行第ｒ列のテーブル要素を表し、ｐはグループ番号、ｑはグループ構成要素番号、ｒは組合せパターン番号に対応する。
【０１４１】
この点について詳述すると、テーブル要素ＴＬＣＰ（ｐ，ｑ，ｒ）は、ｐ＞０，ｑ＞０，ｒ＞０の範囲において、第ｐグループにおけるグループ構成要素番号ｑの詳細機能に対応する入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））の入力有無を表す値であって、第ｒ組合せパターンでの入力有無を表す値を、値１又は値０で保持するものである。値１を採るときには、上位モジュールＭＵから中間モジュールＭＭへの入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））の入力があることを示し、値ゼロを採るときには、上位モジュールＭＵから中間モジュールＭＭへの入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））の入力がないことを示す。
【０１４２】
図２２上段に示す例によれば、ＴＬＣＰ（ｐ，１，６）＝１，ＴＬＣＰ（ｐ，２，６）＝０，ＴＬＣＰ（ｐ，３，６）＝１であるので、第６組合せパターンは、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，１，１））及び入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，３，１））が中間モジュールＭＭに入力され、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，２，１））については中間モジュールＭＭに入力されないパターンであることになる。
【０１４３】
補足すると、本実施例では、テーブル要素ＴＬＣＰ（ｐ，ｑ，０）に、第ｐグループにおけるグループ構成要素番号ｑの詳細機能に対応する入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））の要素番号を表すＦ２Ｃ（ｐ，ｑ，１）の値を格納して、組合せテーブルを生成する。
【０１４４】
ちなみに、Ｓ９２０では、基本入力命令及び選択入力命令を区別することなく、各入力命令が中間モジュールＭＭに入力される場合及び入力されない場合の夫々を場合分けして、上述したように、２のＦ２Ｃ（ｐ，０，１）乗個の入力命令の組合せパターンを記した組合せテーブル｛ＴＬＣＰ（ｐ，ｑ，ｒ）｝を生成する（Ｓ９２０）。但し、基本入力命令については、必ず中間モジュールＭＭに入力されるものであるので、本来、基本入力命令の入力がない場合については考慮する必要はない。この点については、後の処理で対応して組合せテーブルを修正する。
【０１４５】
Ｓ９２０で、第ｐグループの組合せテーブル｛ＴＬＣＰ（ｐ，ｑ，ｒ）｝を生成すると、ＣＰＵ１１は、変数ｐを１減算した値に更新し（Ｓ９２５）、Ｓ９１５に移行する。このようにして、Ｓ９１５〜Ｓ９２５の処理では、プログラム部品を共通化するグループ毎に、このグループについての組合せテーブルを生成する。
【０１４６】
また、第１グループ（ｐ＝１）までの組合せテーブルを生成し、ｐ＝０になると（Ｓ９１５でＮｏ）、ＣＰＵ１１は、変数ｐをゼロに初期化する（Ｓ９３０）。また、変数ｐを１カウントアップし（Ｓ９４０）、変数ｑをゼロに初期化後（Ｓ９４５）、Ｓ９５０以降の処理を実行する。
【０１４７】
具体的に、Ｓ９５０では、グループ総数を表す配列要素Ｆ２Ｃ（０，０，１）の値に基づき、変数ｐがグループ総数以下であるか否かを判断し、グループ総数以下であると判断すると（Ｓ９５０でＹｅｓ）、Ｓ９５５に移行し、グループ総数を超えていると判断すると（Ｓ９５０でＮｏ）、当該組合せテーブル生成処理を終了する。即ち、この組合せテーブル生成処理では、Ｓ９５５以降の処理をグループ毎に実行し、全てのグループに対するＳ９５５以降の処理が完了すると、当該組合せテーブル生成処理を終了する。
【０１４８】
Ｓ９５５に移行すると、ＣＰＵ１１は、変数ｑを１カウントアップした値に更新した後、Ｓ９６０に移行して、第ｐグループの要素数を表す配列要素Ｆ２Ｃ（ｐ，０，１）の値に基づき、グループ構成要素番号に対応する変数ｑが第ｐグループの要素数以下であるか否かを判断する。そして、変数ｑが第ｐグループの要素数以下であると判断すると（Ｓ９６０でＹｅｓ）、Ｓ９７０以降の処理を実行し、変数ｑが第ｐグループの要素数を超えていると判断すると（Ｓ９６０でＮｏ）、Ｓ９４０に移行する。即ち、この組合せテーブル生成処理では、Ｓ９７０以降の処理を、グループ内の要素毎に実行して、全ての要素に対するＳ９７０以降の処理が完了すると、Ｓ９４０に移行する。このようにして、各グループについて、グループを構成する要素毎に、Ｓ９７０以降の処理を実行する。
【０１４９】
また、Ｓ９７０に移行すると、ＣＰＵ１１は、第ｐグループ第ｑ要素に対応する詳細機能に対応する入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））が、配列｛Ｄｎ（ｋ）｝に登録されているか否かを判断することによって、この入力命令が基本入力命令であるか否かを判断する。尚、基本入力命令である場合、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））は、配列｛Ｄｎ（ｋ）｝に登録されていない。
【０１５０】
そして、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））が基本入力命令ではない（換言すれば選択入力命令である）と判断すると（Ｓ９７０でＮｏ）、Ｓ９５５に移行して、変数ｑを１カウントアップし（Ｓ９５５）、Ｓ９６０以降の処理を実行する。即ち、第ｐグループの次の要素に対応するＳ９６０以降の処理を実行する。
【０１５１】
一方、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，ｑ，１））が基本入力命令であると判断すると（Ｓ９７０でＹｅｓ）、ＣＰＵ１１は、変数ｒをゼロに初期化して（Ｓ９７５）、Ｓ９８０以降の処理を実行する。
【０１５２】
具体的に、Ｓ９８０では、変数ｒを１カウントアップした値に更新し、その後のＳ９８５では、変数ｒの値が、第ｐグループに属する詳細機能に対応する入力命令の組合せパターンの総数である２のＦ２Ｃ（ｐ，０，１）乗以下であるか否かを判断する。
【０１５３】
そして、変数ｒの値が２のＦ２Ｃ（ｐ，０，１）乗以下であると判断すると（Ｓ９８５でＹｅｓ）、テーブル要素ＴＬＣＰ（ｐ，ｑ，ｒ）が値ゼロであるか否かを判断し（Ｓ９９０）、値ゼロである場合には（Ｓ９９０でＹｅｓ）、第ｐグループの第ｒ組合せパターンに対応するｑ＝１，…，Ｆ２Ｃ（ｐ，０，１）の各テーブル要素ＴＬＣＰ（ｐ，ｑ，ｒ）の値を、ＮＵＬＬに設定する（Ｓ９９５）。その後、Ｓ９８０に移行する。一方、値ゼロではない場合には、（Ｓ９９０でＮｏ）、Ｓ９９５の処理を実行することなく、Ｓ９８０に移行する。このようにして、Ｓ９８０〜Ｓ９９５の処理を繰り返し実行することにより、ＣＰＵ１１は、不適切な組合せパターンである基本入力命令が入力されないケースに対応する組合せパターンのテーブル要素の値をＮＵＬＬに設定し、これによって、組合せテーブルを修正する。
【０１５４】
そして、全組合せパターンに対してＳ９８０〜Ｓ９９５の処理を実行すると、変数ｒの値が２のＦ２Ｃ（ｐ，０，１）乗を超えていると判断して（Ｓ９８５でＮｏ）、Ｓ９５５に移行し、第ｐグループの次要素についてのＳ９６０以降の処理を実行する。
【０１５５】
尚、図２２下段は、Ｓ９２０で図２２上段に示す組合せテーブルを生成した後、Ｓ９３０〜Ｓ９９５で修正した後の組合せテーブルの構成を表す図である。但し、図２２に示す例では、入力命令Ｉ＿ｎａ（Ｆ２Ｃ（ｐ，３，１））が基本入力命令であるときの組合せテーブルの修正方法を表す図である。
【０１５６】
また、このようにして組合せテーブル生成処理を終了すると、ＣＰＵ１１は、Ｓ１０００（図１０参照）に移行して、各グループの組合せテーブルを、表示部２０に表示する。
即ち、グループ毎に、このグループに所属する詳細機能に対応する入力命令毎の識別コード、及び、入力命令の各組合せパターンを記した図２２下段に示すような構成の組合せテーブルの出力画面を表示部２０に表示する。この際には、出力命令の識別コードを併せて出力画面上に表示する。このようにして、Ｓ１０００では、プログラム部品を共通化するグループ毎に、中間モジュールＭＭに入力される入力命令の組合せの各パターンをユーザに画像情報として表示する。
【０１５７】
尚、Ｓ１０００では、操作部３０を通じて入力されるユーザによるグループの切替指示に従って、指定されたグループに対応する組合せテーブルを表示部２０に切替表示してよいし、各グループの組合せテーブルを、並べて表示部２０に一括表示してもよい。
【０１５８】
また、このような表示動作を、操作部３０を通じて第一支援ツールの終了操作がなされるまで継続し、第一支援ツールの終了操作がなされると（Ｓ１０１０でＹｅｓ）、この第一支援ツールの処理結果を第二支援ツールでも使用するために作業データとして記憶部５０に保存した後（Ｓ１０２０）、第一支援ツールを終了する。
【０１５９】
ユーザは、この第一支援ツールで表示されるグループ毎の組合せテーブルに従って、グループ毎に、生成する中間モジュールＭＭに入力される入力命令の組合せ毎の複合プログラム部品を生成する。即ち、組合せ毎に、上位モジュールＭＵから入力されない入力命令に対応した詳細機能については複合化対象から外し、上位モジュールＭＵから中間モジュールＭＭへ入力される入力命令に対応した詳細機能群のみを複合化して、これらの詳細機能を実現可能な複合プログラム部品を生成する（図１０参照）。
【０１６０】
また、グループに属さない詳細機能の夫々、並びに、副管理機能及び管理機能及び個別機能の夫々について、これら各機能をコンピュータに実現させるための機能毎のプログラム部品である単独プログラム部品を生成する（図１０右段参照）。
【０１６１】
このようにして各プログラム部品を生成した後、ユーザは、操作部３０を通じて第二支援ツールを起動する。第二支援ツールの起動操作が操作部３０を通じて入力されると、ＣＰＵ１１は、第二支援ツールに従って、図２３に示す処理を開始する。
【０１６２】
この処理を開始すると、ＣＰＵ１１は、まず、第一支援ツールで保存された作業データを記憶部５０から読み出す（Ｓ１１００）。更に、複合プログラム部品管理テーブル｛ＴＬＣＰＰ（ｐ，ｑ，ｒ）｝を生成する（Ｓ１１１０）。この際には、図２４に示すように、テーブル要素ＴＬＣＰＰ（ｐ，ｑ，ｒ）に、同一要素番号のテーブル要素ＴＬＣＰ（ｐ，ｑ，ｒ）の値をセットする。また、単独プログラム部品管理テーブル｛ＴＬＩＰＰ（ｕ，ｖ，ｗ）｝を生成する（Ｓ１１２０）。この際には、図２５に示すように、テーブル要素ＴＬＩＰＰ（ｕ，ｖ，０）に、入力命令Ｉ＿ｎａ（ｕ）及び出力命令Ｏ＿ｎａ（ｖ）に対応する機能の分割数であるＤｉｖＴ（ｕ，ｖ）をセットする。
【０１６３】
その後、変数ｐをゼロに初期化し（Ｓ１１３０）、Ｓ１１４０以降の処理を実行することにより、グループ毎に、複合プログラム部品の登録を受け付ける。具体的には、Ｓ１１４０において、変数ｐを１カウントアップして、複合プログラム部品の登録対象を第ｐグループに更新し、その後、第ｐグループに対応する入力命令の組合せの各パターンに対応した複合プログラム部品の登録操作を受け付けて、入出力部４０を通じて登録対象の複合プログラム部品を取得し記憶部５０に保存すると共に、その複合プログラム部品の格納場所を、登録情報として、図２４に示すように、複合プログラム部品管理テーブルのテーブル要素ＴＬＣＰＰ（ｐ,０,ｒ）に登録する（Ｓ１１５０）。例えば、第ｐ０グループの組合せテーブル｛ＴＬＣＰ（ｐ０，ｑ，ｒ）｝における第ｒ０組合せパターンに対応する複合プログラム部品については、その登録情報を、テーブル要素ＴＬＣＰＰ（ｐ０,０,ｒ０）に登録する。
【０１６４】
尚、複合プログラム部品の登録時には、複合プログラム部品管理テーブルにおける当該プログラム部品の登録情報にアクセス可能なリンク情報を、単独プログラム部品管理テーブルにも登録する。例えば、該当する複合プログラム部品が、機能Ｔ２（ｕ，ｖ，ｒ）を実現可能なプログラム部品である場合には、単独プログラム部品管理テーブルにおけるテーブル要素ＴＬＩＰＰ（ｕ，ｖ，ｒ）に、このプログラム部品の登録情報が記述された複合プログラム部品管理テーブルの要素番号をリンク情報として登録する。
【０１６５】
ＣＰＵ１１は、このようなＳ１１４０及びＳ１１５０の手順を繰り返し実行することにより、各グループに対しての複合プログラム部品についての登録操作を受け付ける。そして、変数ｐがグループの総数以上となると（Ｓ１１６０でＹｅｓ）、単独プログラム部品を登録すべき機能（グループに属さない詳細機能並びに個別機能及び管理機能及び副管理機能）の一覧画面を表示して、単独プログラム登録対象の機能についての選択操作を受け付け（Ｓ１１７０）、更に、選択された機能Ｔ２（ｕ，ｖ，ｒ）についての単独プログラム部品の登録操作を受け付けて、入出力部４０を通じて登録対象の単独プログラム部品を取得し記憶部５０に保存すると共に、その単独プログラム部品の格納場所を、図２５に示すように、登録情報として、テーブル要素ＴＬＩＰＰ（ｕ，ｖ，ｒ）に登録する（Ｓ１１８０）。
【０１６６】
ＣＰＵ１１は、このようなＳ１１７０，Ｓ１１８０の手順を、全ての単独プログラム部品についての登録操作を受け付けるまで繰り返し実行し、全ての登録が完了すると（Ｓ１１９０でＹｅｓ）、上記生成した複合プログラム部品管理テーブル及び単独プログラム部品管理テーブルを第三支援ツールで読出可能とするために、Ｓ１１００で読み出した作業データに上記生成した複合プログラム部品管理テーブル及び単独プログラム部品管理テーブルを追加して更新してなる作業データを、記憶部５０に保存して（Ｓ１１９５）、当該第二支援ツールに係る処理を終了する。
【０１６７】
また、第三支援ツールは、このようなプログラムの登録が完了した後、電子機器１に実装する中間モジュールＭＭを生成する際にユーザからの指示に従って起動される。具体的に、ＣＰＵ１１は、操作部３０を通じて第三支援ツールの起動指示が入力されると、図２６に示す処理を開始し、まず、記憶部５０から作業データを読み出す（Ｓ１２００）。その後、Ｓ１３００に移行して、図２７に示す入力有無設定処理を実行する。
【０１６８】
この入力有無設定処理は、入力命令Ｉ＿ｎａ（１）〜Ｉ＿ｎａ（Ｎ）の内、今回生成する中間モジュールＭＭには入力されない選択入力命令の情報を、操作部３０を通じてユーザから取得するための処理である。この入力有無設定処理を実行すると、ＣＰＵ１１は、まず配列｛ＤｎＰ（ｋ）｝を生成し（Ｓ１３１０）、変数ｋをゼロに初期化する（Ｓ１３２０）。その後、Ｓ１３３０以降の処理を実行する。
【０１６９】
Ｓ１３３０では、変数ｋを１カウントアップし、Ｓ１３４０では、選択入力命令の総数を表す配列要素Ｄｎ（０）の値に基づき、変数ｋが、選択入力命令の総数以下であるか否かを判断する。そして、総数以下であると判断すると（Ｓ１３４０でＹｅｓ）、配列要素Ｄｎ（ｋ）が示す入力命令Ｉ＿ｎａ（Ｄｎ（ｋ））が生成対象の中間モジュールＭＭに入力されるか否かを問合せる画面を表示部２０に表示して、入力命令Ｉ＿ｎａ（Ｄｎ（ｋ））が中間モジュールＭＭに入力されるか否かを表す情報を、操作部３０を通じて取得する（Ｓ１３５１）。
【０１７０】
そして、入力命令Ｉ＿ｎａ（Ｄｎ（ｋ））が中間モジュールＭＭに入力されるとの操作情報が操作部３０を通じて入力された場合には（Ｓ１３５３でＹｅｓ）、配列要素ＤｎＰ（ｋ）を値１にセットする（Ｓ１３５５）。一方、入力命令Ｉ＿ｎａ（Ｄｎ（ｋ））が中間モジュールＭＭに入力されないとの操作情報が操作部３０を通じて入力された場合には（Ｓ１３５３でＮｏ）、配列要素ＤｎＰ（ｋ）を値ゼロにセットする（Ｓ１３５７）。その後、Ｓ１３３０に移行する。
【０１７１】
このようにしてＳ１３３０〜Ｓ１３５７の処理では、配列｛Ｄｎ（ｋ）｝に登録された各選択入力命令について、この選択入力命令が、今回生成する中間モジュールＭＭに入力されるか否かを問合せ、その入力有無の情報を、ユーザから取得して、配列要素ＤｎＰ（ｋ）に記憶する。
【０１７２】
そして、変数ｋが選択入力命令の総数を超えると（Ｓ１３４０でＮｏ）、全ての選択入力命令について入力有無の情報を取得したと取り扱って、配列要素ＤｎＰ（０）に、配列要素Ｄｎ（０）の値、即ち、選択入力命令の総数をセットする（Ｓ１３６０）。その後、入力有無設定処理を終了する。
【０１７３】
また、この入力有無設定処理を終了すると、ＣＰＵ１１は、Ｓ１４００に移行し、図２８に示すモジュール出力処理を実行する（Ｓ１４００）。モジュール出力処理を開始すると、ＣＰＵ１１は、変数ｐを値ゼロに初期化した後（Ｓ１４１０）、Ｓ１４２０以降の処理を実行する。
【０１７４】
Ｓ１４２０では、変数ｐを１カウントアップし、その後、複合プログラム部品を使用するグループの総数を表す配列要素Ｆ２Ｃ（０，０，１）に基づき、変数ｐがグループ総数以下であるか否かを判断する（Ｓ１４２１）。そして、グループ総数以下であると判断すると（Ｓ１４２１でＹｅｓ）、複合プログラム部品管理テーブル｛ＴＬＣＰＰ（ｐ，ｑ，ｒ）｝を参照して、記憶部５０が記憶する第ｐグループの複合プログラム部品群の中から、配列｛ＤｎＰ（ｋ）｝が示す生成対象の中間モジュールＭＭに入力される入力命令の組合せパターンに対応する複合プログラム部品を、使用プログラム部品として抽出する（Ｓ１４２５）。その後、Ｓ１４２０に移行する。
【０１７５】
このようにして、Ｓ１４２０〜Ｓ１４２５の処理では、グループ毎に、配列｛ＤｎＰ（ｋ）｝が示す生成対象の中間モジュールＭＭに入力される入力命令の組合せパターンに対応する複合プログラム部品を、使用プログラム部品として記憶部５０から抽出する。
【０１７６】
また、全グループについてＳ１４２５の処理を実行することで、変数ｐがグループ総数を超えると（Ｓ１４２１でＮｏ）、Ｓ１４３０に移行して、単独プログラム部品管理テーブル｛ＴＬＩＰＰ（ｕ，ｖ，ｗ）｝を参照して、プログラム部品共通化の対象外である各機能に対応する単独プログラムを、使用プログラム部品として記憶部５０から抽出する。
【０１７７】
ここで抽出する単独プログラム部品は、上記グループのいずれにも属さない詳細機能、詳細機能の動作を制御する副管理機能、副管理機能を通じて上記詳細機能の動作を制御する管理機能、及び、個別機能の各機能に対応した単独プログラム部品である。但し、生成対象の中間モジュールＭＭに入力されない入力命令に対応する管理機能、副管理機能、詳細機能及び個別機能についての単独プログラム部品に関しては、抽出対象外である。
【０１７８】
また、この処理を終えると、ＣＰＵ１１は、Ｓ１４４０に移行し、使用プログラム部品として抽出した単独プログラム部品群のプログラムサイズの和（以下、この和を値ＺＩＰと表現する。）を算出する。
【０１７９】
更に、使用プログラムとして抽出した複合プログラム部品群のプログラムサイズの和（以下、この和を値ＺＣＰと表現する。）を算出する（Ｓ１４５０）。
その他、上記グループ毎に、このグループに対応する複合プログラム部品の内、プログラムサイズが最大の複合プログラム部品（以下、「最大複合プログラム部品」と表現する。）を特定し、各グループの最大複合プログラム部品に対応するプログラムサイズの和（以下、この和を値ＺＭと表現する。）を算出する（Ｓ１４６０）。
【０１８０】
そして、支援ツールで有効にサイズ低減されたプログラム部品群のプログラムサイズとして、値ＺＩＰに値ＺＣＰを加算した値ＺＡ１を算出すると共に、従来と同様に、入力されない選択入力命令に対応する機能を盛り込んだ場合のプログラム部品群のプログラムサイズとして、値ＺＩＰに値ＺＭを加算した値ＺＡ２を算出する（Ｓ１４７０）。尚、最大複合プログラム部品は、多くの場合、選択入力命令が全て入力される場合に使用するプログラム部品となるため、値ＺＡ２は、従来と同様に、選択入力命令の有無を考慮せずに中間モジュールＭＭを生成する場合のプログラムサイズに近似的に一致する。
【０１８１】
この後、ＣＰＵ１１は、支援ツールを使用した場合の中間モジュールＭＭのプログラムサイズとして、値ＺＡ１を記述し、支援ツールを使用しない場合の参考例としての中間モジュールＭＭのプログラムサイズとして、値ＺＡ２を記述し、更に、支援ツールによるプログラムサイズ低減量として、Δ＝ＺＡ１−ＺＡ２を記述したプログラムサイズ情報画面を、表示部２０に表示する（Ｓ１４８０）。
【０１８２】
また、ＣＰＵ１１は、使用プログラム部品として抽出した各複合プログラム部品及び各単独プログラム部品を、中間モジュールＭＭの構成部品のセットとして出力し（Ｓ１４９０）、当該モジュール出力処理を終了する。出力先としては、記憶部５０におけるユーザから予め指定された領域、又は、入出力部４０に装着された記憶媒体等を挙げることができる。
【０１８３】
尚、Ｓ１４９０に代えては、各使用プログラム部品を組み合わせて実行プログラム（実行ファイル）を生成することで、中間モジュールＭＭを完成した形で出力する処理（Ｓ１４９１）を実行してもよい。使用プログラム部品を組み合わせて、コンピュータが実行可能な形式の中間モジュールＭＭを生成する手続きについては、プログラム言語に依るので、ここでは、これ以上の説明を省略する。
【０１８４】
以上、本実施例の支援装置１００の構成について説明したが、上記構成の支援装置１００によれば、上述したモジュール生成方法による中間モジュールＭＭの生成に関して、ユーザ作業を支援することができ、プログラムサイズを低減しつつ、中間モジュールＭＭを効率的に生成することができる。
【０１８５】
具体的には、出力命令毎の組合せテーブルを画像情報として表示部２０に表示するので、ユーザは、入力命令の組合せを容易に把握することができ、入力命令の組合せ毎の複合プログラム部品を生成する際のユーザ作業を容易にすることができる。
【０１８６】
特に、この支援装置１００によれば、部品を共通化する対象の詳細機能のグループ毎に、このグループに属する各詳細機能に対応する入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールＭＭに入力される入力命令の組合せについての一通りの各パターンを表す情報を、組合せテーブルとしてユーザに表示するので、グループ毎に、どのような種類の複合プログラム部品を生成すればよいかについての情報を簡素且つ理解しやすくユーザに表示することができる。
【０１８７】
また、本実施例によれば、生成対象の中間モジュールＭＭに入力される選択入力命令の情報を、第三支援ツールを通じて支援装置１００に入力することで、ユーザは、生成対象の中間モジュールＭＭに適切なプログラム部品のセットを簡単に取得することができる。よって、この支援装置１００によれば、ユーザによる中間モジュールＭＭの生成作業を簡易にすることができる。
【０１８８】
尚、「特許請求の範囲」に記載の分割手順は、Ｓ１の手順に対応し、特定手順は、Ｓ３の手順に対応し、分類手順は、Ｓ４の手順に対応し、複合部品生成手順は、Ｓ５の手順に対応し、単独部品生成手順は、Ｓ６の手順に対応し、モジュール生成手順は、Ｓ７〜Ｓ９の手順に対応する。また、管理機能部品生成手順は、Ｓ２，Ｓ６の手順に対応する。
【０１８９】
また、「特許請求の範囲」に記載の支援装置は、支援装置１００に対応し、命令情報取得手段は、ＣＰＵ１１が実行する命令登録処理にて実現され、選択入力情報取得手段は、ＣＰＵ１１が実行する選択入力命令設定処理にて実現され、情報提供手段は、ＣＰＵ１１が実行するＳ９００〜Ｓ１０００の処理にて実現されている。
【０１９０】
また、機能分割手段は、ＣＰＵ１１が実行する機能登録処理及び細分化処理にて実現され、共通化情報取得手段は、ＣＰＵ１１が実行する共通化対象設定処理にて実現されている。
【０１９１】
この他、複合部品取得手段は、ＣＰＵ１１が実行するＳ１１４０〜Ｓ１１６０の処理にて実現され、単独部品取得手段及び管理部品取得手段は、ＣＰＵ１１が実行するＳ１１７０〜Ｓ１１９０の処理にて実現され、入力有無情報取得手段は、ＣＰＵ１１が実行するＳ１３００の処理にて実現され、抽出手段は、ＣＰＵ１１が実行するＳ１４２５，Ｓ１４３０の処理にて実現されている。
【０１９２】
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、モジュールをソフトウェアで構成する例を説明したが、モジュールは、電子機器１に実装可能なハードウェア回路として構成されてもよい。
【０１９３】
図２９は、変形例の電子機器１’の構成を表すブロック図である。以下に説明する変形例では、図４と同様に、上位モジュールＭＵから入力命令としての初期化命令ＩＣ４及びデータ送信命令ＩＣ５及びデータ受信命令ＩＣ６を受けて、下位モジュールＭＤに対し通信初期化命令ＯＣ４及びメッセージ送信命令ＯＣ５及びメッセージ受信命令ＯＣ６を出力する通信制御機能を有した通信モジュールＭＭＥに、上記実施例のモジュール生成方法を適用し、ハードウェア構成の中間モジュール１００を生成した場合の中間モジュール１００の構成について説明する。
【０１９４】
中間モジュール１００は、基板本体１１０に、回路チップ１３５，１３６が装着されてなる。基板本体１１０は、入力命令ＩＣ４，ＩＣ５，ＩＣ６毎に、入力命令固有の機能（管理機能及び個別機能）を実現する入力処理回路１１４，１１５，１１６が形成され、更に、出力命令（通信初期化命令）ＯＣ４固有の機能を実現する出力処理回路１２４と、出力命令（メッセージ送信命令）ＯＣ５に対応する機能を実現する回路チップ１３５を実装可能な装着部１２５と、出力命令（メッセージ受信命令）ＯＣ６に対応する機能を実現する回路チップ１３６を実装可能な装着部１２６とが形成された構成にされている。
【０１９５】
詳述すると、入力処理回路１１４，１１５，１１６及び出力処理回路１２４は、基板本体１１０に、その回路パターンが直接形成されている。
初期化命令ＩＣ４の入力を受け付ける入力処理回路１１４は、初期化命令ＩＣ４に対応する管理機能ＭＥ１（図７参照）を実現可能な回路であり、初期化命令ＩＣ４が入力される入力端子（図示せず）を備える。また、入力処理回路１１４の出力端は、基板本体１１０に形成された線路により、出力処理回路１２４、装着部１２５、及び、装着部１２６の各入力端に電気的に接続されている。
【０１９６】
一方、データ送信命令ＩＣ５の入力を受け付ける入力処理回路１１５は、データ送信命令ＩＣ５に対応する管理機能ＭＥ２（図７参照）を実現可能な回路であり、データ送信命令ＩＣ５が入力される入力端子（図示せず）を備え、入力処理回路１１５の出力端は、基板本体１１０に形成された線路により、装着部１２５の入力端に電気的に接続されている。
【０１９７】
同様に、データ受信命令ＩＣ６の入力を受け付ける入力処理回路１１６は、データ受信命令ＩＣ６に対応する管理機能ＭＥ３（図７参照）を実現可能な回路であり、データ受信命令ＩＣ６が入力される入力端子（図示せず）を備え、入力処理回路１１６の出力端は、基板本体１１０に形成された線路により、装着部１２６の入力端に電気的に接続されている。
【０１９８】
また、出力処理回路１２４は、初期化命令ＩＣ４の入力を契機に通信初期化命令ＯＣ４を出力する細分化機能ＦＥ１（図７参照）に対応する処理を実現可能な回路として構成され、初期化命令ＩＣ４が入力されると、入力処理回路１１４からの信号を受けて通信初期化命令ＯＣ４を、出力端子（図示せず）を通じて下位モジュールＭＤに出力する。
【０１９９】
また、装着部１２５は、入力処理回路１１４，１１５からの信号を受けてメッセージ送信指令ＯＣ５を出力する回路チップ１３５を、基板本体１１０に実装可能なソケット及び当該ソケットの出力端に接続された下位モジュールＭＤにメッセージ送信指令ＯＣ５を出力するための出力端子を備え、これらが基板本体１１０に形成された構成にされている。
【０２００】
この他、装着部１２６は、入力処理回路１１４，１１６からの信号を受けてメッセージ受信指令ＯＣ６を出力する回路チップ１３６を基板本体１１０に実装可能なソケット及び当該ソケットの出力端に接続された下位モジュールＭＤにメッセージ受信指令ＯＣ６を出力するための出力端子を備え、これらが基板本体１１０に形成された構成にされている。
【０２０１】
また、装着部１２５のソケットは、上記回路チップ１３５として、上位モジュールＭＵから入力される入力命令の組合せ毎に用意される回路チップ１３５ａ，１３５ｂの一つを実装可能な構成にされている。
【０２０２】
回路チップ１３５は、上記実施例における複合プログラム部品に対応する機能を専用回路により実現するものであり、入力命令の組合せ毎に用意される（回路チップ１３５ａ，１３５ｂ）。即ち、装着部１２５のソケットには、入力命令の組合せ毎の回路チップ１３５ａ，１３５ｂの内、上位モジュールＭＵから実際に入力される命令に対応した回路チップ１３５ａ，１３５ｂが実装される。
【０２０３】
具体的に、初期化命令ＩＣ４は、上位モジュールＭＵの種類に依らず必ず入力される種類の入力命令（基本入力命令）である一方、データ送信命令ＩＣ及びデータ受信命令ＩＣ６は、上位モジュールＭＵの種類によって入力有無が切り替わる選択入力命令である。
【０２０４】
回路チップ１３５ａは、初期化命令ＩＣ４及びデータ送信命令ＩＣ５が入力される場合に装着部１２５のソケットに実装される細分化機能ＦＥ４及び細分化機能ＦＥ２（図７参照）を複合化した回路チップであり、回路チップ１３５ｂは、初期化命令ＩＣ４は入力されるがデータ送信命令ＩＣ５は入力されない場合に、装着部１２５のソケットに実装される細分化機能ＦＥ２（図７参照）を実現可能な回路チップである。
【０２０５】
また、装着部１２６のソケットは、回路チップ１３６として、上位モジュールＭＵから入力される入力命令の組合せ毎に用意される回路チップ１３６ａ，１３６ｂの一つを実装可能な構成にされている。
【０２０６】
回路チップ１３６は、回路チップ１３５と同様、上記実施例における複合プログラム部品に対応する機能をハードウェア回路により実現するものであり、入力命令の組合せ毎に用意される（回路チップ１３６ａ，１３６ｂ）。そして、装着部１２６のソケットには、入力命令の組合せ毎の回路チップ１３６ａ，１３６ｂの内、上位モジュールＭＵから実際に入力される命令に対応した回路チップ１３６ａ，１３６ｂが実装される。
【０２０７】
具体的に、回路チップ１３６ａは、初期化命令ＩＣ４及びデータ受信命令ＩＣ６が入力される場合に装着部１２６のソケットに実装される細分化機能ＦＥ５及び細分化機能ＦＥ３（図７参照）を複合化した回路チップであり、回路チップ１３６ｂは、データ受信命令ＩＣ６が入力されない場合に装着部１２６のソケットに実装される細分化機能ＦＥ３（図７参照）を実現可能な回路チップである。
【０２０８】
このような中間モジュール１００の構成により、本変形例では、上位モジュールＭＵから入力される入力命令の組合せに応じて中間モジュール１００の回路構成を容易に変更できるようにしている。従って、本実施例によれば、従来のように複数種類の上位モジュールＭＵに対応可能に中間モジュール１００を構成するために、上位モジュールＭＵの種類によっては不要な回路群を基板に冗長に形成しなければならないのを抑制することができ、多様な装置への適用が想定される環境でも、中間モジュール１００のモジュールサイズ（回路規模）を抑えることができる。結果として、本実施例によれば、中間モジュール１００の製造コストを抑えることができる。
【０２０９】
以上には、通信モジュールＭＭＥをハードウェア回路化した場合の具体的な構成を説明したが、図２に示した中間モジュールＭＭの生成方法を、ハードウェア回路を採用した場合で説明し直すと、中間モジュールＭＭの生成に際しては、中間モジュールＭＭにて実現されるべき機能を、入力命令ＩＣ１〜ＩＣ３及び出力命令ＯＣ１〜ＯＣ３の組合せ毎に一つの機能に分割し（Ｓ１）、入力命令及び出力命令の組合せ毎の機能分割後には、入力命令ＩＣ１〜ＩＣ３毎に管理機能ＭＡ１〜ＭＡ３を定める（Ｓ２）。
【０２１０】
また、この後には、出力命令毎に、複数機能共通の回路チップにて実現する細分化機能のグループを定める（Ｓ３）。即ち、出力命令が同一で入力命令の異なる細分化機能の一群の中から、共通回路（回路チップ）を用いて実現する機能を選択して、出力命令が同一で入力命令の異なる細分化機能群のうち、上記選択した複数の機能を、回路を共通化する細分化機能の組合せとして、グループ化する。
【０２１１】
更には、入力命令の一群を、選択入力命令と基本入力命令とに分類する（Ｓ４）。この後には、グループ毎に、このグループに属する各細分化機能を複合化した当該グループに属する細分化機能共通の回路チップ（上記回路チップ１３５ａ，１３５ｂ，１３６ａ，１３６ｂ）を生成し（Ｓ５）、更に、基板本体には、Ｓ３で設定したグループのいずれにも属さない細分化機能（出力処理回路１２４）、及び、入力命令毎の管理機能の夫々を実現可能な回路（入力処理回路１１４，１１５，１１６）を、基板本体に直接形成する（Ｓ６）。
【０２１２】
具体的に、Ｓ５では、各グループに対して、中間モジュールＭＭに入力される入力命令の組合せ毎の回路チップを生成する。また、Ｓ６では回路チップを着脱可能な装着部（装着部１２５，１２６）を、上記グループ毎に基板本体に形成する。この際には、回路チップへの信号入力路を形成する装着部（装着部１２５，１２６）の入力端に、回路チップに対応する入力命令の管理機能を実現する各回路（入力処理回路１１４，１１５，１１６）の出力端を電気的に接続する。
【０２１３】
このようして、モジュール生成方法における第一段階の手順を終了する。また、第二段階では、第一段階で生成した回路チップ（回路チップ１３５ａ，１３５ｂ，１３６ａ，１３６ｂ）を基板本体に実装して、環境に合わせた中間モジュール１００を生成する。
【０２１４】
具体的には、上位モジュールＭＵの種類を特定して、上位モジュールＭＵから生成対象の中間モジュールＭＭに入力される入力命令の組合せを特定し（Ｓ７）、上記装着部毎に、第一段階で生成した回路チップの中から、中間モジュールＭＭに入力される入力命令の組合せに応じた回路チップを抽出する（Ｓ８）。
【０２１５】
そして、抽出した回路チップを、対応する装着部に実装して中間モジュールＭＭを生成する。この変形例によれば、実装する回路チップの組合せによって、入力命令の組合せに対応したモジュールを簡単に生成でき、多様な電子機器への実装が想定される環境で、効率的に、環境に適した中間モジュールＭＭを生成することができる。
【符号の説明】
【０２１６】
１…電子機器、１０…演算部、１１…ＣＰＵ、１３…ＲＡＭ、２０…表示部、３０…操作部、４０…入出力部、５０…記憶部、１００…支援装置、ＭＵ…上位モジュール、ＭＤ…下位モジュール、ＭＭ，１００…中間モジュール、ＭＭＥ…通信モジュール、ＭＵ…上位モジュール、ＩＣ１，ＩＣ２，ＩＣ３…入力命令、ＯＣ１，ＯＣ２，ＯＣ３…出力命令、１１０…基板本体、１１４，１１５，１１６…入力処理回路、１２４…出力処理回路、１２５，１２６…装着部、１３５，１３５ａ，１３５ｂ，１３６，１３６ａ，１３６ｂ…回路チップ
【図１】
2011198278.tif 000003
【図２】
2011198278.tif 000004
【図３】
2011198278.tif 000005
【図４】
2011198278.tif 000006
【図５】
2011198278.tif 000007
【図６】
2011198278.tif 000008
【図７】
2011198278.tif 000009
【図８】
2011198278.tif 000010
【図９】
2011198278.tif 000011
【図１０】
2011198278.tif 000012
【図１１】
2011198278.tif 000013
【図１２】
2011198278.tif 000014
【図１３】
2011198278.tif 000015
【図１４】
2011198278.tif 000016
【図１５】
2011198278.tif 000017
【図１６】
2011198278.tif 000018
【図１７】
2011198278.tif 000019
【図１８】
2011198278.tif 000020
【図１９】
2011198278.tif 000021
【図２０】
2011198278.tif 000022
【図２１】
2011198278.tif 000023
【図２２】
2011198278.tif 000024
【図２３】
2011198278.tif 000025
【図２４】
2011198278.tif 000026
【図２５】
2011198278.tif 000027
【図２６】
2011198278.tif 000028
【図２７】
2011198278.tif 000029
【図２８】
2011198278.tif 000030
【図２９】
2011198278.tif 000031