JP2011198278A - 中間モジュールの生成方法及び支援装置 - Google Patents

中間モジュールの生成方法及び支援装置 Download PDF

Info

Publication number
JP2011198278A
JP2011198278A JP2010066713A JP2010066713A JP2011198278A JP 2011198278 A JP2011198278 A JP 2011198278A JP 2010066713 A JP2010066713 A JP 2010066713A JP 2010066713 A JP2010066713 A JP 2010066713A JP 2011198278 A JP2011198278 A JP 2011198278A
Authority
JP
Japan
Prior art keywords
input
module
command
group
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010066713A
Other languages
English (en)
Other versions
JP5110111B2 (ja
Inventor
Masayuki Kobayashi
正幸 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2010066713A priority Critical patent/JP5110111B2/ja
Priority to US13/053,341 priority patent/US8561018B2/en
Priority to DE102011005976A priority patent/DE102011005976A1/de
Publication of JP2011198278A publication Critical patent/JP2011198278A/ja
Application granted granted Critical
Publication of JP5110111B2 publication Critical patent/JP5110111B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

【課題】多様な装置への実装が想定される環境でサイズを抑えたモジュールを生成する。
【解決手段】各入力命令に対応した出力命令を出力するためのモジュール生成時には、モジュールの機能を入力命令及び出力命令の組合せ毎の機能に分割し(S1)、分割後機能には、出力命令が同一の機能群毎に、モジュール構成部品を共通化する機能のグループを設定し(S3)、更に入力命令群を、環境により入力されない選択入力命令とそれ以外の基本入力命令とに分類する(S4)。そして、グループ毎に機能をまとめた複合部品を生成し(S5)、部品を共通化しない各機能に関しては単独部品を生成して(S6)、モジュールを生成する(S9)。特にS5では、各グループに対して、選択入力命令の入力有無に応じて場合分けされる入力命令の組合せ毎に、組合せに対応した機能をまとめた複合部品を生成し、S9では、部品選択して入力命令の有無に応じたモジュールを生成する。
【選択図】図2

Description

本発明は、電子機器に実装されるモジュール群の一つであって、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールへ出力するための中間モジュールの生成方法、及び、この中間モジュールの生成を支援する支援装置に関する。
従来、ソフトウェア開発に際しては、汎用性の高いプログラムをライブラリとして登録することが行われている(例えば、特許文献1参照)。また、類似する複数の処理を、分岐を含む一連の処理としてまとめてプログラムコード化し、同一内容の手順に対応するプログラムコードの重複した記述を避けることで、これら複数の処理を実行するためのプログラムサイズを抑えることが行われている。
また、近年では、ソフトウェアの開発効率を向上させるために、ソフトウェアをモジュール単位で構成することが行われている。このような対応は、車両等に搭載される電子制御装置(ECU)に対するソフトウェアの開発に対しても行われている。
そして、車両に搭載するソフトウェア等、開発コストの高いソフトウェアに関しては、モジュールを標準化し、同一メーカ内や同一業種の異なるメーカ間で再利用することが考えられている。
特開2007−226793号公報
しかしながら、モジュールを標準化する場合には、モジュールが使用される多様な環境において必要とされる機能の総和、に対応した複数機能を実現するための構成(プログラムコード)をモジュールに内蔵する必要があるため、モジュールサイズ(プログラムサイズ)が大きくなるといった欠点があった。
換言すれば、モジュールの使用時には働かない機能があるにも関わらず、その機能に対応した構成(プログラムコード)がモジュールに内在するため、モジュールを実装する電子機器においては、不要な機能のために余分なモジュールの実装領域を確保しなければならないといった欠点があった。更に言及すれば、実装に必要十分な領域を確保することができないために、標準化モジュールを装置に実装することができない問題が発生する可能性があった。尚、モジュールをプログラムで構成する場合に限らず、ハードウェア回路で構成する場合にも、従来技術では、同様の理由により、モジュールサイズ(回路規模)が大きくなるといった欠点があった。
本発明は、こうした問題に鑑みなされたものであり、多様な装置への適用が想定される環境で、モジュールサイズを抑えて効率的にモジュールを生成可能な技術を提供することを目的とする。
上記目的を達成するためになされた本発明のモジュール生成方法は、電子機器に実装されるモジュール群の一つであって、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールへ出力するための中間モジュールの生成方法であって、分割手順と、特定手順と、分類手順と、複合部品生成手順と、単独部品生成手順と、モジュール生成手順と、を備えるものである。
分割手順では、中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎の機能に分割する。即ち、中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎に一以上の機能に分割する。
特定手順では、分割手順による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、この細分化機能群の内、中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを特定する。
そして、複合部品生成手順では、特定手順により特定されたグループ毎に、このグループに属する細分化機能を複合化し、このグループに属する細分化機能共通のモジュール構成部品である複合部品を生成する。一方、単独部品生成手順では、特定手順により特定された上記グループのいずれにも属さない細分化機能の夫々に関して、この細分化機能を実現するためのモジュール構成部品である単独部品を生成する。そして、モジュール生成手順では、上記複合部品及び単独部品を組み合わせて、中間モジュールを生成する。
特に、本発明では、分類手順によって、中間モジュールに対して入力される入力命令の一群を、上位モジュールの種類によっては中間モジュールに対して入力されない種類の入力命令である選択入力命令と、上位モジュールの種類に依らず中間モジュールに対して入力される種類の入力命令である基本入力命令と、に分類する。
そして、上記複合部品生成手順では、上述した各グループに対して、入力命令の組合せ毎の複合部品を生成する。各選択入力命令の入力有無に応じて場合分けされる中間モジュールへ入力される入力命令の組合せ毎に、この組合せでは入力されない選択入力命令に対応する細分化機能を複合化の対象から外して、このグループに属する残りの細分化機能を複合化した複合部品を生成するといった具合である。
そして、上記モジュール生成手順では、中間モジュールを実装する電子機器における各選択入力命令の入力有無によって定まる生成対象の当該中間モジュールに入力される入力命令の組合せに対応する上記グループ毎の複合部品と、この組合せで入力される各入力命令に対応した単独部品と、を組み合わせた中間モジュールを生成する。
上述した方法によれば、中間モジュールを生成するに際して、入力命令及び出力命令に組合せ毎に、中間モジュールの機能を分割し、各細分化機能に対応するモジュール構成部品を生成する点に第一の特徴がある。また、部品を共通化することのできる細分化機能については部品を共通化するが、この際には、中間モジュールが使用される環境(上位モジュールの種類)によって入力されなくなる命令があることを考慮して、中間モジュールへ入力される入力命令の組合せ毎に、入力されない命令に対応する構成を省いたモジュール構成部品(複合部品)を生成する点に第二の特徴がある。
この方法によれば、中間モジュールを実装する電子機器の構成(実際に入力される入力命令の種類)に応じて部品を選択して、これら部品の組合せによって中間モジュールを構成することができるので、実装対象の電子機器に対しては、従来のように、使用されない入力命令に対応する構成を不要に備える中間モジュールを組み込まなくても済む。
従って、中間モジュールのサイズを従来よりも抑えることができる。詳述すれば、従来技術では、モジュール標準化のために、多様な環境で想定される入力命令の全てが入力されるものとしてモジュールを冗長に構成する。このため、モジュール実装対象の電子機器の種類によっては、使用されない入力命令に対応する構成が中間モジュールに存在することになり、実装対象の電子機器にとっては不必要にモジュールサイズが大きくなってしまうといった欠点があった。
これに対して、本発明によれば、上述した第一及び第二の特徴を有するので、各種の電子機器に対して、不要な機能に対応する構成を備えない当該電子機器に適したモジュールを実装することができ、モジュールサイズの低減を図ることができる。また、モジュール構成部品の組合せによって、多様な装置に対応したモジュールを構成することができるので、多様な装置への適用が想定される環境で、モジュールサイズを抑えて効率的にモジュールを生成することができる。
ところで、中間モジュールに対応する機能を上述したように分割すると、一つの入力命令に対応する機能が複数機能に分割されるケースがあるため、分割された細分化機能間の協働が必要になる場合がある。この協働に必要な機能は、細分化機能の夫々に分散して組み込むことができるが、分割された細分化機能を管理する管理機能を定めて、管理機能により細分化機能の動作を制御して協働を実現し、中間モジュールとしての機能を実現できるようにすると、モジュールの開発負荷低減の点から好ましい。
即ち、上述の中間モジュールの生成方法は、入力命令毎に、この入力命令に対応する細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するためのモジュール構成部品(以下、「管理部品」という。)を生成する管理機能部品生成手順を含んだ構成にされると好ましく、モジュール生成手順では、複合部品及び単独部品に加えて、中間モジュールに入力される入力命令毎の上記管理部品を組み合わせて、中間モジュールを生成するとよい。
このようにすれば、入力命令に対応した出力命令を出力するために動作する複合部品及び単独部品に基づく機能の動作順序などの制御を管理部品によって行うことができて、各部品の設計が簡単である。
また、電子機器に実装するモジュールとしては、ハードウェア又はソフトウェアを挙げることができる。電子機器に実装するモジュールをプログラムで構成する場合、中間モジュールとしては、上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として下位モジュールに向けて出力する処理を電子機器が備えるコンピュータに実行させるためのプログラムを生成することになる。この場合、モジュール構成部品としては、対応する機能を実現するためのプログラム部品を挙げることができ、モジュールとしては、プログラム部品を組み合わせて生成される実行プログラムを挙げることができる。
一方、中間モジュールをハードウェア回路として構成する場合、複合部品生成手順では、複合部品に対応する回路を基板本体に着脱可能な回路チップとして形成することで、複合部品を生成すればよい。また、単独部品生成手順では、単独部品に対応する回路を基板本体に直接形成することで、単独部品を生成すればよい。
また、中間モジュール生成方法は、上記グループ毎に、基板本体に直接形成された回路と電気的に接続可能に回路チップを当該基板本体に装着するための装着部品を、基板本体に形成する装着部品形成手順を更に含んだ構成にされ、モジュール生成手順では、基板本体に、生成対象の中間モジュールに入力される入力命令の組合せに対応するグループ毎の回路チップ(複合部品)を、対応する装着部品に装着することにより、中間モジュールを生成すればよい。この他、当該中間モジュール生成方法は、入力命令毎の上記管理機能を実現するための回路を、基板本体に形成する管理機能部品生成手順を含んだ構成にすることができる。
また、上述の手法による中間モジュールの生成に際しては、ユーザによる中間モジュールの生成を支援するための支援装置を用意すると、ユーザによる作業が容易になって好ましい。具体的に、支援装置は、中間モジュールに対して入力される入力命令群、及び、中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、命令情報取得手段の取得情報が表す入力命令群の内、上位モジュールの種類によっては中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、入力インタフェースを通じて取得する選択入力情報取得手段と、選択入力情報取得手段の取得情報に基づき、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段と、を備える構成にすることができる。
この支援装置を用いれば、ユーザは、入力命令の組合せを容易に把握することができる。従って、入力命令の組合せ毎の複合部品を生成する際のユーザ作業が容易になる。
具体的に、情報提供手段は、命令情報取得手段の取得情報が表す出力命令毎に、この出力命令を出力する原因となる入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される当該入力命令の組合せの各パターンを表す情報を、上記画像情報として出力する構成にすることができる。
このように組合せに関する情報を出力すれば、出力命令毎に、どのような種類の複合部品を生成すればよいかをユーザが容易に理解できるので、部品生成に関するユーザの作業性が向上する。
尚、ここでいう出力命令毎の「入力命令の組合せの各パターンを表す情報」は、出力命令に対応する「全ての入力命令」についての組合せの一通りの各パターンを表す情報であってもよいし、複合部品の生成に必要な情報のみを有するものであってもよい。
詳述すれば、情報提供手段は、部品を共通化する対象の細分化機能の上記グループ毎に、このグループに属する各細分化機能に対応する入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールに入力される入力命令の組合せについての一通りの各パターンを表す情報を、画像情報として出力する構成にされると好ましい。
複合部品は、部品を共通化する対象の細分化機能のグループ毎に生成されるものであるので、このようにして組合せに関する情報を出力すれば、グループ毎に、どのような種類の複合部品を生成すればよいかについての情報を簡素且つ理解しやすくユーザに表示することができる。
尚、このように情報提供手段を構成する場合、支援装置は、中間モジュールに対応する機能を、入力インタフェースからの入力情報に従い、入力命令及び出力命令の組合せ毎に一以上の機能に分割する機能分割手段と、機能分割手段による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、モジュール構成部品を共通化する細分化機能のグループを表す情報を、入力インタフェースを通じて取得する共通化情報取得手段と、を備えた構成にすることができる。
更に、支援装置は、次のような構成にすることができる。即ち、支援装置は、グループ毎に、このグループに属する細分化機能共通のモジュール構成部品である複合部品を取得する複合部品取得手段と、グループのいずれにも属さない細分化機能の夫々に関して、細分化機能毎に、この細分化機能を実現するためのモジュール構成部品である単独部品を取得する単独部品取得手段と、入力命令毎に、この入力命令を受け付けて当該入力命令に対応する細分化機能群の動作を制御する管理機能、を実現するためのモジュール構成部品である管理部品を取得する管理部品取得手段と、入力インタフェースを通じて、生成対象の中間モジュールに対する各選択入力命令の入力有無を表す情報を取得する入力有無情報取得手段と、入力有無情報取得手段の取得情報に基づいて、複合部品取得手段及び単独部品取得手段及び管理部品取得手段が取得した部品群の中から、生成対象の中間モジュールの構成要素とする部品群を抽出する抽出手段と、を備えた構成にすることができる。
特に、上記複合部品取得手段は、上記グループの夫々について、各選択入力命令の入力有無に応じて場合分けされる中間モジュールへ入力される入力命令の組合せ毎に、この組合せで入力される各入力命令に対応するグループ内の細分化機能が複合化された複合部品を取得する構成にすることができ、抽出手段は、入力有無情報取得手段の取得情報に基づいて、グループ毎に、生成対象の中間モジュールに入力される入力命令の組合せに対応した複合部品を、上記組合せ毎の複合部品の一群から抽出すると共に、中間モジュールに入力される各入力命令に対応した単独部品及び管理部品を抽出する構成にすることができる。また、この支援装置には、抽出手段が抽出した部品群を組み合わせて中間モジュールを生成する中間モジュール生成手段を設けることができる。
このような構成の支援装置によれば、取得した部品を組み合わせて、入力命令の組合せに対応した中間モジュールを生成する作業を簡易にすることができる。
尚、支援装置が備える各手段としての機能は、プログラムにより、コンピュータに実現することができ、支援装置が備える各手段としての機能をコンピュータに実現させるためのプログラムは、記録媒体(DVD)等に記録して消費者に提供したり、電気通信回線を通じて消費者に提供したりすることが可能である。
電子機器1に実装される中間モジュールMMの構成を表す図である。 中間モジュールMMの生成手順を表すフローチャートである。 入力命令の組合せに応じて生成する複合プログラム部品群を表す図である。 中間モジュールMMの具体例である通信モジュールMMEに対する入出力命令を示した図である。 通信モジュールMMEによる通信初期化/管理処理を表すフローチャートである。 通信モジュールMMEによる初期化メッセージ送信処理(a)及びデータ送信処理(b)を表すフローチャートである。 通信モジュールMEEに対応する機能の分割方法を説明した図である。 複合プログラム部品の構成を概念的に示した図である。 支援装置100の構成を表すブロック図である。 第一支援ツールによる処理の実行手順を表すフローチャートである。 第一支援ツールによる命令登録処理を表すフローチャートである。 第一支援ツールによる機能登録処理を表すフローチャートである。 第一支援ツールによる内部機能詳細登録処理のフローチャートである。 第一支援ツールによる確認画面表示処理を表すフローチャートである。 第一支援ツールによる細分化処理を表すフローチャートである。 細分化時のモジュール構成画面の構成を表す図である。 第一支援ツールによる共通化対象設定処理を表すフローチャートである。 第一支援ツールによる副管理機能登録処理を表すフローチャートである。 副管理機能登録時のモジュール構成画面の構成を表す図である。 第一支援ツールによる選択入力命令設定処理のフローチャートである。 第一支援ツールによる組合せテーブル生成処理のフローチャートである。 組合せテーブルの構成を表す図である。 第二支援ツールによる処理の実行手順を表すフローチャートである。 複合プログラム部品管理テーブルの構成を表す図である。 単独プログラム部品管理テーブルの構成を表す図である。 第三支援ツールによる処理の実行手順を表すフローチャートである。 第三支援ツールによる入力有無設定処理を表すフローチャートである。 第三支援ツールによるモジュール出力処理を表すフローチャートである。 変形例の電子機器1’(特に中間モジュール100)の構成を表す図である。
以下、本発明の実施例について説明する。本実施例のモジュール生成方法は、電子機器1に実装されるモジュール群の一つであって、上位モジュールMUから入力される命令である入力命令IC1〜IC3毎に、この入力命令IC1〜IC3に対応した下位モジュールMDに対する命令を生成し、この命令を出力命令OC1〜OC3として下位モジュールMDに出力する処理を実行するための中間モジュールMMの生成方法である。生成対象の中間モジュールMMは、上位モジュールMUから下位モジュールMDへのインタフェースとして機能する。
以下では、この中間モジュールMMをプログラムとして生成する例を説明するが、中間モジュールMMは、ハードウェアにより構成することも可能である。また、上位モジュールMUや下位モジュールMDは、他のモジュールがソフトウェアであるかハードウェアであるかに依らず、ソフトウェア又はハードウェアで構成することが可能である。但し、以下では、説明を簡単にするため、電子機器1に実装される各モジュールがソフトウェアであるとして話を進める。電子機器1としての機能は、これらモジュール群の動作(コンピュータによるモジュール群の実行)により実現される。
図1及び図2に示すように、この中間モジュールMMの生成に際しては、まず中間モジュールMMにて実現されるべき機能を、入力命令IC1〜IC3及び出力命令OC1〜OC3の組合せ毎に一つの機能に分割する(S1)。図2は、本実施例のモジュール生成方法に対応する手順を示すフローチャートであり、図2(a)は、モジュール生成方法における第一段階の手順を示すフローチャートであり、図2(b)は、第二段階の手順を示すフローチャートである。
入力命令がα個、出力命令がβ個ある場合には、最大でα×β個の組合せが存在するので、これらの組合せに合わせて、α×β個の機能に分割する。図1に示す例では、α=β=3であるので、9個の機能FN11〜FN33に分割する。以下、組合せ毎に分割された機能のことを「細分化機能」ともいう。
但し、一つの入力命令に対して限られた出力命令のみを出力する中間モジュールMMの構成も考えられる。例えば、入力命令IC1の入力によっては、出力命令OC1及び出力命令OC2及び出力命令OC3の内、出力命令OC1のみしか出力がない場合(図1破線に対応する出力がない場合)や、入力命令IC3の入力によっては出力命令OC3のみしか出力がない場合(図1一点鎖線に対応する出力がない場合)がある。
この場合には、入力命令IC1と組み合わせられる出力命令は出力命令OC1のみであり、入力命令IC3と組み合わせられる出力命令は出力命令OC3のみであるので、入力命令及び出力命令の組合せは、α×β以下となる。
また、このような入力命令及び出力命令の組合せ毎の機能分割後には、入力命令IC1〜IC3毎に管理機能MA1〜MA3を定める(S2)。複数の細分化機能F11〜F33の協働により、一の入力命令に対する一連の機能が実現される場合には、上記機能分割により相互関係に関する情報(具体的には、動作順序の情報)が失われるので、入力命令IC1〜IC3毎には、この入力命令に対応する細分化機能の動作を制御する管理機能を定める。
また、この後には、出力命令毎に、プログラム部品を共通化する細分化機能のグループを定める(S3)。即ち、出力命令が同一で入力命令の異なる細分化機能の一群の中からプログラム部品を共通化する機能を選択して、出力命令が同一で入力命令の異なる細分化機能群のうち、上記選択した複数の機能を、プログラム部品を共通化する細分化機能の組合せとして、グループ化する。但し、プログラム部品の共通化が不要な出力命令に関しては、この出力命令に対する上記グループの設定は不要である。
更には、入力命令の一群を、上位モジュールMUの種類によっては中間モジュールMMに対して入力されない種類の入力命令である選択入力命令と、上位モジュールMUの種類に依らず中間モジュールMMに対して入力される種類の入力命令である基本入力命令と、に分類する(S4)。ここでは、中間モジュールMMと組み合わせられる上位モジュールMUの種類に応じて上記分類を行う。
例えば、入力命令IC1,IC2,IC3を中間モジュールMMに入力する上位モジュールMU、入力命令IC1,IC2を中間モジュールMMに入力する上位モジュールMU、及び、入力命令IC2,IC3を中間モジュールMMに入力する上位モジュールMUのいずれかが、中間モジュールMMと組み合わされて、電子機器1に実装される利用環境を考える。この場合には、入力命令IC1,IC3を選択入力命令に分類し、入力命令IC2を基本入力命令に分類する。
この後には、プログラム部品を共通化する上記グループ毎に、このグループに属する各細分化機能を複合化した、このグループに属する細分化機能共通のプログラム部品である複合プログラム部品を生成する(S5)。ここでは、グループに属する各細分化機能を実現するための手順を、共通部分については、共通のプログラムコードで記述したプログラム部品を上記複合プログラム部品として生成する(S5)。
但し、複合プログラム部品の生成に際しては、各グループに対して、中間モジュールMMに入力される入力命令の組合せ毎の複合プログラム部品を生成する。即ち、各グループに対しては、上記分類した選択入力命令の入力有無に応じて場合分けされる中間モジュールMMへ入力される入力命令の組合せ毎に、この組合せでは入力されない選択入力命令に対応する細分化機能を複合化の対象から外して、このグループに属する残りの細分化機能を複合化した上記複合プログラム部品を生成する。
例えば、S3では、入力命令IC2を基本入力命令に分類し、入力命令IC1,IC3を選択入力命令に分類し、S4では、出力命令OC1に対して、機能FN11、機能FN21及び機能F31のグループを、プログラム部品を共通化する細分化機能のグループに設定したとする。この場合、中間モジュールMMに入力される入力命令の組合せとしては、{入力命令IC1,入力命令IC2,入力命令IC3}の組合せ(第一の組合せ)、{入力命令IC1,入力命令IC2}の組合せ(第二の組合せ)、{入力命令IC2,入力命令IC3}の組合せ(第三の組合せ)及び{入力命令IC2}の組合せ(第四の組合せ)がある。
従って、このグループに対する複合プログラム部品としては、図3に示すように、入力命令IC1,IC2,IC3が入力される場合に使用する「機能FN11及び機能FN21及び機能FN31に対応する処理手順を実行可能な」複合プログラム部品、入力命令IC1,IC2が入力される場合に使用する「機能FN11及び機能FN21に対応する処理手順を実行可能な」複合プログラム部品、入力命令IC2,IC3が入力される場合に使用する「機能FN21及び機能FN31に対応する処理手順を実行可能な」複合プログラム部品、及び、入力命令IC2のみが入力される場合に使用する「機能F21に対応する処理手順を実行可能な」複合プログラム部品を生成する。
尚、入力命令IC2のみが入力される場合に使用する「機能F21に対応する処理手順を実行可能な」複合プログラム部品は、複数機能を複合化したものではないが、ここではプログラム部品を共通化する対象とした機能に対応するプログラム部品については、複合化する機能が複数か単一であるかを問わず複合プログラム部品と表現する。
一方で、プログラム部品を共通化する対象ではない細分化機能、即ち、S3で設定したグループのいずれにも属さない細分化機能、及び、入力命令毎の管理機能の夫々については、当該機能に対応する処理手順を実行可能な単独のプログラム部品を生成する(S6)。尚、このプログラム部品を単独プログラム部品と表現する。
このようして、モジュール生成方法における第一段階の手順を終了する。また、第二段階では、第一段階で生成したプログラム部品(単独プログラム部品及び複合プログラム部品)を組み合わせて、実装する電子機器1の環境に合わせた中間モジュールMMを生成する。
具体的には、実装する電子機器1において、上位モジュールMUから生成対象の中間モジュールMMに入力される入力命令の組合せを特定する(S7)。即ち、入力命令の一群の内、選択入力命令については、上位モジュールMUの種類によって中間モジュールMMに実際に入力されるか否かが変わる。従って、S7では、上位モジュールMUの種類を特定して、上位モジュールMUから生成対象の中間モジュールMMに入力される入力命令の組合せを特定する。
この後には、中間モジュールMMから出力する出力命令毎に、第一段階で生成したプログラム部品群の中から、この出力命令と中間モジュールMMに入力される入力命令との組合せに応じた複合プログラム部品及び単独プログラム部品を抽出する(S8)。具体的には、中間モジュールMMに入力される入力命令毎の上記管理機能に対応した単独プログラム部品を抽出すると共に、入力命令及び出力命令毎の細分化機能群の内、プログラム部品の共通化の対象となっていない各細分化機能に対応する単独プログラム部品を抽出する。更に、プログラム部品の共通化の対象となっている細分化機能のグループに関しては、グループ毎に、上位モジュールMUから実際に入力される入力命令の組合せに対応した複合プログラムを抽出する。
そして、抽出したプログラム部品群を組み合わせて中間モジュールMMを生成する。例えば、プログラム部品としてのオブジェクトファイル群をリンクして、中間モジュールMMとしての実行ファイルを生成する(S9)。
尚、第二段階の処理については、これを、中間モジュールMMを実装する電子機器1の上位モジュールMUの種類毎に実行することにより、実装する電子機器1の環境に合わせた中間モジュールMMを生成する。このように、本実施例のモジュール生成方法によれば、プログラム部品の組合せによって、入力命令の組合せに対応したモジュールを簡単に生成でき、多様な電子機器1への実装が想定される環境で、モジュールサイズを抑えつつ効率的に、電子機器1に実装する中間モジュールMMを生成することができる。
以上には、本実施例のモジュール生成方法について説明したが、続いては、このモジュール生成方法の適用例について、図4〜図8を用いて説明する。ここでは、図4に示すように、上位モジュールMUから入力命令としての初期化命令IC4及びデータ送信命令IC5及びデータ受信命令IC6を受けて、下位モジュールMDに対し通信初期化命令OC4及びメッセージ送信命令OC5及びメッセージ受信命令OC6を出力する通信制御機能を有した通信モジュールMMEに、上記実施例のモジュール生成方法を適用する例について説明する。
但し、ここでは、通信モジュールMMEを実装する電子機器1が、車両に搭載される電子制御装置(ECU)であるものとする。電子制御装置に通信モジュールMMEを実装することで、車内LANにおけるノード間の通信を実現するといった具合である。
車内LANに接続される電子制御装置としては、車両データを他の電子制御装置に送信する電子制御装置、他の電子制御装置から送信されてくる車両データを受信して車両を制御する電子制御装置、車両データを他の電子制御装置に送信する一方で他の電子制御装置から自己で検知できない車両状態を表す車両データを受信して車両を制御する電子制御装置等が知られている。
このような各電子制御装置に対して通信モジュールMMEを個別に一から生成していたのでは手間がかかる。そこで、上記実施例を適用して、モジュールサイズを抑えつつ、各電子制御装置に利用可能な通信モジュールMMEを生成する。
通信モジュールMMEに要求される機能は、次のようなものである。具体的には、上位モジュールMU(車両制御プログラム等)からの初期化命令IC4の入力を契機に、図5に示す内容の通信初期化/管理処理を実行可能な構成が通信モジュールに要求される。即ち、電子機器1(実装対象の電子制御装置)のコンピュータが上記処理を実行できるように、通信モジュールMMEをプログラムとして構成することが要求される。
ここで、通信初期化/管理処理の内容について図5を用いて説明すると、通信初期化/管理処理では、下位モジュールMDを初期化するための通信初期化命令OC4を下位モジュールMDに出力して、下位モジュールMDを初期化した後(S2110)、初期化メッセージの送信処理を実行する(S2120)。
具体的に、S2120では、図6(a)に示すように、メッセージID及び参加状態フラグ及び自ノードが認識しているネットワークへの参加ノードを表す情報を記述したメッセージ本体を生成する(S2210)。尚、メッセージIDは、このメッセージの種類を表すものであり、ここでは、メッセージIDとして、初期化メッセージに対応するID番号を記述する。また、参加状態フラグは、ネットワークへの参加/ネットワークからの脱退を表すフラグである。ここでは、参加状態フラグとして「参加」を表す値を記述して、メッセージ本体を生成する。
更には、生成したメッセージ本体にフォーマットに従う付属情報(メッセージIDのID番号に依らない付属情報)を追加して送信メッセージ(ここでは初期化メッセージ)を生成する(S2220)。送信メッセージには、上記付属情報としてCRCを記述する。そして、上記生成した送信メッセージを送信対象に設定したメッセージ送信命令OC5を下位モジュールMDに出力する(S2230)。これによって、下位モジュールMDを通じて上記送信メッセージ(初期化メッセージ)を送信する。S2120では、このようにして初期化メッセージの送信処理を行う。
また、S2120の処理後には、他ノードから送信されてくる初期化メッセージの受信処理を行う(S2130)。具体的に、S2130では、初期化メッセージを受信バッファから通信モジュールMMEに取り込むためのメッセージ受信命令OC6を下位モジュールMDに出力して、下位モジュールMDを通じ、受信バッファから初期化メッセージを取り込む。そして、取り込んだ初期化メッセージが有する上記参加状態フラグに基づき、ネットワークに参加しているノードを特定すると共に、初期化メッセージ毎に、初期化メッセージが示す初期化メッセージ送信元のノードが認識しているネットワークへの参加ノードを特定する。
このようなS2120,S2130動作を、ネットワークへの参加手続きが完了するまで繰り返し実行する。具体的には、自ノードで認識するネットワーク内の参加ノードが他ノードから受信した初期化メッセージが示すネットワーク内の参加ノードと一致するまで(S2140でNo)、S2120,S2130の処理を繰り返し、一致した場合には、ネットワークへの参加手続きが完了したと判断して(S2140でYes)、S2150に移行する。
そして、S2150以降では、所定時間が経過する度に(S2150でYes)、初期化メッセージの送信処理(S2160)及び初期化メッセージの受信処理(S2170)を行って、現時点でのネットワークへの参加ノードを特定する。
以上が、上位モジュールMUから入力される初期化命令IC4に基づく通信初期化/管理処理の内容である。
また、上記通信モジュールMMEには、上位モジュールMUからのデータ送信命令IC5の入力に対応して図6(b)に従う処理を実行可能であることが要求される。即ち、電子機器1(実装対象の電子制御装置)のコンピュータが図6(b)に従うデータ送信処理を実行できるように、通信モジュールMMEをプログラムとして構成することが要求される。
ここで、図6(b)に示すデータ送信処理について説明すると、この処理では、メッセージIDと、上位モジュールMUからのデータ送信命令IC5にて指定された送信対象データとを組み合わせて、メッセージ本体を生成する。メッセージ本体には、メッセージIDとして、上記モジュールから指定された送信対象データの種類に対応するID番号を格納する(S2310)。更には、生成したメッセージ本体に、初期化メッセージと共通のフォーマットに従う付属情報(メッセージIDのID番号に依らない付属情報)を追加して送信メッセージを生成する(S2320)。送信メッセージには、上記付属情報としてCRCを記述する。
そして、上記生成した送信メッセージを送信対象に設定したメッセージ送信命令OC5を下位モジュールMDに出力する(S2330)。これによって、下位モジュールMDを通じて上記送信メッセージを送信する。以上が、データ送信処理の内容である。
このような構成の通信モジュールMMEを生成するに際して、上述したモジュール生成方法を適用すると、まず通信モジュールMMEとしての機能を、図7に示すように、入力命令及び出力命令の組合せ毎の機能(FE1〜FE5)に分割する。但し、ここでは、データ送信命令IC5の入力に対応してはメッセージ送信命令OC5しか出力されず、データ受信命令IC6の入力に対応してはメッセージ受信命令OC6しか出力されないので、細分化機能は5つである(FE1〜FE5)。また、入力命令としての初期化命令IC4、データ送信命令IC5、及びデータ受信命令IC6に対しては管理機能(ME1〜ME3)を設ける(図2のS1,S2参照)。
この後、出力命令毎に、プログラム部品を共通化する細分化機能を選択してグループ化する(S3)。ここでは、出力命令であるメッセージ送信命令OC5に関して、データ送信処理(図6(b))に対応する細分化機能FE4と初期化メッセージ送信処理(図6(a))に対応する細分化機能FE2とを、プログラム部品を共通化するグループに設定する。更に、出力命令であるメッセージ受信命令OC6に関して、細分化機能FE5及び細分化機能FE3を、プログラム部品を共通化するグループに設定する。
更に、初期化命令IC4、データ送信命令IC5、及び、データ受信命令IC6を選択入力命令又は基本入力命令のいずれかに分類する(S4)。ここでは、データ送信命令IC及びデータ受信命令IC6を選択入力命令に分類し、初期化命令IC4を基本入力命令に分類する。
この後には、細分化機能FE4及び細分化機能FE2からなるグループ(Aグループと称する。)、並びに、細分化機能FE5及び細分化機能FE3からなるグループ(Bグループと称する。)の夫々に関して、入力命令の組合せ毎の複合プログラム部品を生成する(S5)。
詳述すると、Aグループに関しては、細分化機能FE4に対応するデータ送信命令IC5が選択入力命令であるので、複合プログラム部品としては、初期化命令IC4及びデータ送信命令IC5が入力される場合に使用する細分化機能FE4及び細分化機能FE2を複合化した複合プログラム部品、及び、データ送信命令IC5が入力されない場合に使用する細分化機能FE2を実現可能な複合プログラム部品を生成する。
同様に、Bグループに関しては、細分化機能FE5に対応するデータ受信命令IC6が選択入力命令であるので、複合プログラム部品としては、初期化命令IC4及びデータ受信命令IC6が入力される場合に使用する細分化機能FE5及び細分化機能FE3を複合化した複合プログラム部品、及び、データ受信命令IC6が入力されない場合に使用する細分化機能FE3を実現可能な複合プログラム部品を生成する。
ここで、グループAについて、細分化機能FE4及び細分化機能FE2を複合化して複合プログラム部品を生成する場合のプログラム部品の構成を、図8に示す。初期化メッセージ送信処理とデータ送信処理とでは、S2220及びS2230の手順と、S2320及びS2330の手順とで、共通する手順を有する。従って、この共通する手順に対応するプログラムコードを共通化して複合プログラム部品を生成する。グループBについても、同様の思想に基づき、複合プログラム部品を生成する。
また、Aグループ及びBグループのいずれにも属さない細分化機能FE1及び管理機能ME1〜ME3については、単独プログラムを生成し(S6)、これら複合プログラム部品及び単独プログラム部品を組み合わせて、各電子制御装置に対応した通信モジュールMMEを生成する(S7〜S9)。
例えば、自ノードからのデータ送信を行わず専ら他ノードからのデータ受信を行う電子制御装置に実装する通信モジュールMMEに関しては、Aグループに関して、細分化機能FE4及び細分化機能FE2を複合化した複合プログラム部品を選択せずに、細分化機能FE2のみを実現可能な複合プログラム部品を選択し、Bグループに関して、細分化機能FE5及び細分化機能FE3を複合化した複合プログラム部品を選択して、通信モジュールMMEを生成する。
従って、本実施例のモジュール生成方法によれば、通信モジュールMMEのプログラムサイズを、従来と比較して低減することができる。
以上に、本実施例のモジュール生成方法について説明したが、続いては、このモジュール生成方法の思想に従って、中間モジュールMMを生成する際に使用する支援装置100の構成について説明する。図9に示す支援装置100は、中間モジュールMMを生成する際のユーザの作業を支援するための装置である。但し、以下に説明する支援装置100は、上記モジュール生成方法を更に発展させた方法でのモジュール生成を想定したものであるので、この点留意されたい。
図9に示す支援装置100は、周知のパーソナルコンピュータと同様、演算部10と、表示部20と、操作部30と、入出力部40と、記憶部50と、を備えるものである。表示部20は、液晶ディスプレイ等から構成されるものであり、各種情報を画像情報として出力するものである。また、操作部30は、ユーザ操作可能なキーボードやポインティングデバイス等で構成されるユーザインタフェースである。また、入出力部40は、USBインタフェースや磁気ディスクドライブ装置、CD/DVDドライブ装置等で構成されるものであり、各種データ(プログラムを含む)を、支援装置100に入力したり、支援装置100から取り出したりするためのものである。
また、記憶部50は、ハードディスク装置等で構成されるものであり、演算部10で実行されるプログラムやプログラムで使用されるデータ等が格納されるものである。
そして、演算部10は、CPU11及びRAM13を備えるものであり、記憶部50が記憶するプログラムをCPU11にて実行することにより、ユーザによる中間モジュールMMの生成を支援するための各種処理を行う。
具体的に、記憶部50には、ユーザによる中間モジュールMMの生成作業を支援するためのアプリケーションプログラムとして第一支援ツール及び第二支援ツール及び第三支援ツールがインストールされている。CPU11は、操作部30を通じて入力される第一支援ツール及び第二支援ツール及び第三支援ツールの起動指示に従って、ユーザによる中間モジュールMMの生成を支援するための各種処理を行う。
図10は、第一支援ツールに従ってCPU11が実行する処理のフローチャートを示した図である。CPU11は、操作部30を通じて入力される第一支援ツールの起動指示に従って図10に示す処理を開始すると、まず命令登録処理を実行する(S100)。この命令登録処理は、図11に示すように、中間モジュールMMに入力される入力命令及び中間モジュールMMから出力される出力命令の登録操作を受け付けるための処理である。
命令登録処理を開始すると、CPU11は、入力命令の識別コードを格納するための配列{I_na(n)}及び出力命令の識別コードを格納するための配列{O_na(m)}を生成する(S110,S115)。そして、変数nをゼロに初期化後(S120)、S130以降の処理を実行する。
具体的には、変数nを1カウントアップし(S130)、入力命令登録画面を表示し、操作部30を通じて入力命令の識別コードの入力操作を受け付け(S135)、当該操作により入力された識別コードを、配列要素I_na(n)にセットする(S140)。
このような手順S130〜S140を、入力命令の登録完了操作がなされるまで繰り返し実行する。これにより、配列要素I_na(1),I_na(2),…,I_na(N)の順に、入力命令登録画面を通じて入力された入力命令の識別コードを登録する。尚、入力命令の識別コードは、中間モジュールMMの構成を画面表示する際に用いられるものである。従って、識別コードとしては、入力命令の名称や内容を表す文字列コードをユーザに入力させることができる。
そして、入力命令の登録完了操作がなされると(S145でYes)、出力命令の識別コードについても同様の手順で、その登録操作を受け付ける。即ち、変数mをゼロに初期化後(S150)、変数mを1カウントアップし(S160)、出力命令登録画面を表示し、操作部30を通じて出力命令の識別コードの入力操作を受け付け(S165)、当該操作により入力された識別コードを、配列要素O_na(m)にセットする(S170)手順を、出力命令の登録完了操作がなされるまで繰り返し実行することにより、配列要素O_na(1),O_na(2),…,O_na(M)の順に、出力命令登録画面を通じて入力された出力命令の識別コードを登録する。尚、出力命令の識別コードとしては、入力命令と同様、出力命令の名称や内容を表す文字列コードを挙げることができる。
そして、出力命令の登録完了操作がなされると(S175でYes)、当該命令登録処理を終了する。以下では、この命令登録処理で登録された入力命令の数をNと表現し、出力命令の数をMと表現する。
この命令登録処理を終了すると、CPU11は、S200に移行して、中間モジュールMMで実現すべき機能の登録操作を受け付けるために、図12に示す機能登録処理を実行する。この機能登録処理では、機能の識別コードを格納するために、N×(M+1)の二次元配列{F1(n1,m1)}を生成する(S210)。更に、命令登録処理で登録された入力命令I_na(1)〜I_na(N)の一覧画面(以下、「入力命令一覧画面」と表現する。)を表示して、入力命令の選択操作を受け付け(S220)、選択された入力命令I_na(sn)の識別コード(名称や内容を表す文字列)及び入力ライン、並びに、登録された各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、並びに、各出力命令O_na(1)〜O_na(M)に対応した外部機能ブロック、並びに、内部機能ブロックを、レイアウトした図12右図に示す構成のモジュール構成画面を、表示部20に表示する(S230)。
尚、ここでは、配列要素I_na(1)〜I_na(N)に識別コードが登録された各入力命令の内、配列要素I_na(n)に識別コードが登録された入力命令のことを「入力命令I_na(n)」と表現する。出力命令についても同様である。
また、ここでいう外部機能とは、下位モジュールMDに命令を出力する動作を伴う機能のことであり、上記実施例のモジュール生成方法で説明した「細分化機能」に対応する。また、内部機能とは、下位モジュールMDに命令を出力する動作を伴わない機能のことである。このモジュール構成画面に表示される外部機能ブロックは、外部機能の登録内容を表示するためのブロックであり、モジュール構成画面には、入力命令I_na(sn)及び出力命令O_na(1)〜O_na(M)の組合せ毎の外部機能ブロックが表示される。
S230でモジュール構成画面を表示すると、CPU11は、変数m1をゼロに初期化後(S240)、S251以降の処理を実行する。
具体的には、変数m1を1カウントアップし(S251)、入力命令I_na(sn)及び出力命令O_na(m1)の組合せに対応する外部機能の登録操作を受け付けるための外部機能登録画面を表示して、操作部30を通じて外部機能の識別コードの入力操作を受け付け(S253)、当該操作により入力された識別コードを、配列要素F1(sn,m1)にセットすると共に、配列要素F1(sn,m1)に対応するモジュール構成画面の外部機能ブロックである入力命令I_na(sn)の入力ライン及び出力命令O_na(m1)に接続された外部機能ブロックに、登録された外部機能の識別コードを表示する(S255)。ここでは、識別コードが配列要素F1(n1,m1)にセットされる外部機能のことを、「外部機能F1(n1,m1)」と表現する。
CPU11は、このような手順S251〜S255を、変数m1が値M以上となるまで繰り返し実行する。これによって、配列要素F1(sn,1),F1(sn,2),…,F1(sn,M)の順に、外部機能登録画面を通じて入力された外部機能の識別コードを登録し、この登録内容をモジュール構成画面に反映させる。
尚、外部機能の識別コードとしては、この機能の名称や内容を表す文字列コードを挙げることができる。また、S253では、外部機能を登録しない旨の入力操作を受け付けることも可能である。この場合には、対応する配列要素F1(sn,m1)にNULLコードをセットする。入力命令に対応する出力命令が存在しない場合には、登録すべき外部機能がないので、ユーザにより、外部機能を登録しない旨の入力操作がなされる。
また、変数m1が値M以上となると(S257でYes)、内部機能登録画面を表示して、操作部30を通じて登録する内部機能の識別コードの入力操作を受け付け(S260)、当該操作により入力された識別コードを、配列要素F1(sn,M+1)にセットする(S270)。そして、登録された入力命令の全てを選択する操作がなされていない場合には(S280でNo)、S220に戻ってS220以降の処理を実行することで、入力命令I_na(1)〜I_na(N)に対応した外部機能及び内部機能の登録操作を受け付ける。
そして、全ての入力命令についての外部機能及び内部機能の登録操作を受け付けると(S280でYes)、当該機能登録処理を終了する。
また、機能登録処理を実行した後には、S300に移行して、図13に示す内部機能詳細登録処理を実行する。内部機能詳細登録処理では、上述した内部機能を、外部機能の動作を制御する管理機能と、その他の機能である個別機能とに分離して登録する。
内部機能詳細登録処理を開始すると、CPU11は、まず管理機能及び個別機能の識別コードを格納するために、N×(M+2)の二次元配列{T1(n2,m2)}を生成する(S310)。また、n2=1,…,N及びm2=1,…,Mの各配列要素T1(n2,m2)に、同一要素番号の配列要素F1(n2,m2)の値を設定する(S315)。
更に、入力命令一覧画面を表示して、入力命令の選択操作を受け付け(S320)、選択された入力命令I_na(sn)の識別コード及び入力ライン、並びに、各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、並びに、各出力命令O_na(1)〜O_na(M)に対応した外部機能ブロック、並びに、内部機能に内在する管理機能のブロック及び個別機能のブロックを、レイアウトした図13右図に示す構成のモジュール構成画面を、表示部20に表示する(S330)。
S330で上記モジュール構成画面を表示すると、CPU11は、入力命令I_na(sn)に対応する管理機能登録用の画面である管理機能登録画面を表示部20に表示して、操作部30を通じて管理機能の識別コードの入力操作を受け付け(S340)、当該操作により入力された識別コードを、配列要素T1(sn,M+2)にセットすると共に、モジュール構成画面の管理機能ブロックに、登録された管理機能の識別コードを表示する(S345)。
この後、CPU11は、入力命令I_na(sn)に対応する個別機能登録画面を表示し、操作部30を通じて個別機能の識別コードの入力操作を受け付け(S350)、当該操作により入力された識別コードを、配列要素T1(sn,M+1)にセットすると共に、モジュール構成画面の個別機能ブロックに、登録された個別機能の識別コードを表示する(S355)。
また、登録された全ての入力命令を選択する操作がなされていない場合には(S360でNo)、S320に戻ってS320以降の処理を実行することで、各入力命令I_na(1)〜I_na(N)に対応した管理機能及び個別機能の登録操作を受け付ける。尚、S350では、個別機能を登録しない旨の入力操作を受け付けることも可能である。この場合には、対応する配列要素T1(sn,M+1)にNULLコードをセットする。
そして、全ての入力命令についての管理機能及び個別機能の登録操作を受け付けると(S360でYes)、当該内部機能詳細登録処理を終了する。
また、このようにして内部機能詳細登録処理を終えると、CPU11は、S400に移行し、図14に示す確認画面表示処理を実行する。
確認画面表示処理では、各入力命令I_na(1)〜I_na(N)の識別コード及び入力ライン、並びに、各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、各外部機能F1(n1,m1)のブロック(但し、n1=1,…,Nでありm1=1,…,Mである。)をレイアウトした、図14右上段に示す外部機能確認画面を、表示部20に表示する(S410)。尚、登録されていない外部機能(NULLに設定された外部機能)に対応するブロックについては表示しない又はグレー表示するなどの処理を施すことができる。
また、先へ進む旨の操作が操作部30を通じてなされると(S420でYes)、CPU11は、登録された出力命令O_na(1)〜O_na(M)の一覧画面(以下、「出力命令一覧画面」と表現する。)を表示して、出力命令の選択操作を受け付け(S430)、出力命令の選択操作がなされると、選択された出力命令O_na(sm)についての外部機能確認画面を表示する。
具体的には、選択された出力命令O_na(sm)の識別コード及び出力ライン、並びに、この出力命令O_na(sm)を出力する各外部機能F1(1,sm),F1(2,sm),…,F1(N,sm)のブロック、及び、各外部機能F1(1,sm),F1(2,sm),…,F1(N,sm)に対応する入力命令I_na(1)〜I_na(N)の識別コード及び入力ラインをレイアウトした図14右下段に示す確認画面を表示する(S440)。
また、この確認画面を表示すると、出力命令の切替操作又は先へ進む旨の操作が操作部30を通じてなされるまで待機し(S450,S460)、出力命令の切替操作がなされた場合には、S430に移行して、後続処理を再度実行することにより、選択された出力命令に対応する上記確認画面を表示する(S440)。そして、先へ進む旨の操作がなされると(S460でYes)、当該確認画面表示処理を終了して、S500に移行する。尚、この確認画面表示処理は、生成する中間モジュールMMの構成をユーザに再確認させるための処理である。
また、S500に移行すると、CPU11は、図15に示す細分化処理を実行する。図15に示す細分化処理は、複雑な構造の中間モジュールMMに対応してプログラム部品を細分化する作業を支援するために、外部機能F1(1,1)〜F1(N,M)を、ユーザからの指示に従って更に細分化(分割)するものである。
細分化処理を開始すると、CPU11は、分割数を格納するための配列{DivF(n3,m3)}を生成し(S510)、各配列要素DivF(n3,m3)に対して初期値1をセットする(S515)。但し、n3=1,…,N及びm3=1,…,M+1である。また、配列{F2(n3,m3,l3)}を生成し(S520)、n3=1,…,N及びm3=1,…,M+1の各配列要素F2(n3,m3,1)に、同一要素番号の配列要素F1(n3,m3)の値を設定する(S525)。
そして、各入力命令I_na(1)〜I_na(N)の識別コード及び入力ライン、並びに、各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、各詳細機能F2(n3,m3,l3)のブロック(但し、n3=1,…,Nでありm3=1,…,Mであり、l3=1,…,DivF(n3,m3)である。)をレイアウトしたモジュール構成画面を、表示部20に表示する(S530)。ここでは、外部機能F1(1,1)〜F1(N,M)を細分化して得られる各機能のことを特に「詳細機能」と表現する。図16は、S530で表示部20に表示されるモジュール構成画面の構成を表す図である。但し、初回のS530実行時には、DivF(n3,m3)=1であるので、図14右上段に示す確認画面と同様のモジュール構成画面が表示される。
この処理を終えると、CPU11は、出力命令一覧画面を表示して、出力命令の選択操作を受け付け(S540)、S530で表示したモジュール構成画面を、選択された出力命令O_na(sm)についてのモジュール構成画面に更新する(S545)。具体的には、出力命令O_na(1)〜O_na(M)の識別コード及び出力ラインの内、選択された出力命令O_na(sm)以外の識別コード及び出力ラインを削除したモジュール構成画面に更新する。
この後、CPU11は、入力命令一覧画面を表示して、入力命令の選択操作を受け付け(S550)、選択された入力命令I_na(sn)及び上記出力命令O_na(sm)の組合せに対応する外部機能F1(sn,sm)を細分化対象に設定して、この外部機能F1(sn,sm)についての分割数入力画面を表示し、分割数の入力操作を受け付ける(S560)。
そして、配列要素DivF(sn,sm)の値を、入力された分割数に更新し(S565)、モジュール構成画面における詳細機能F2(sn,sm,l)のブロックを、上記入力された分割数に応じたブロック数に更新する。即ち、上記モジュール構成画面を、外部機能F1(sn,sm)の詳細機能として、DivF(sn,sm)個の各詳細機能F2(sn,sm,1),F2(sn,sm,2),…,F2(sn,sm,DivF(sn,sm))のブロックをレイアウトしたモジュール構成画面に更新する(S569)。
また、モジュール構成画面にレイアウトされたブロックの選択操作により、詳細機能F2(sn,sm,1),F2(sn,sm,2),…,F2(sn,sm,DivF(sn,sm))についての選択操作を、操作部30を通じて受け付け(S570)、選択された詳細機能F2(sn,sm,sl)についての詳細機能登録画面を表示して、操作部30を通じて詳細機能の識別コードの入力操作を受け付ける(S580)。
そして、操作部30を通じて入力された識別コードを、配列要素F2(sn,sm,sl)にセットすると共に、配列要素F2(sn,sm,sl)に対応するモジュール構成画面の詳細機能ブロックに、登録された詳細機能の識別コードを表示する(S585)。尚、ここでは、配列要素F2(n3,m3,l3)に識別コードがセットされる詳細機能のことを、「詳細機能F2(n3,m3,l3)」と表現する。以下、配列要素をサフィックスに用いた類似の表現については、外部機能F1(n1,m1)や詳細機能F2(n3,m3,l3)と同様の規則に従うものとする。
そして、詳細機能F2(sn,sm,1)〜F2(sn,sm,DivF(sn,sm))の全てに対する識別コードの登録作業が完了していない場合には(S590でNo)、S570に移行して、S570以降の処理を実行し、詳細機能F2(sn,sm,1)〜F2(sn,sm,DivF(sn,sm))の全てに対する識別コードの登録作業が完了すると(S590でYes)、S540で選択された出力命令O_na(sm)に対応する入力命令であって、外部機能の分割が必要な入力命令についての選択操作が全て完了したか否かを判断し(S595)、完了していないと判断すると(S595でNo)、S550に戻って、S550以降の処理を実行する。
一方、完了したと判断すると(S595でYes)、CPU11は、出力命令O_na(1),…,_O_na(M)についての出力命令一覧画面を通じた選択操作が全て完了したか否かを判断し(S599)、選択操作が完了していないと判断すると(S599でNo)、S530に移行し、表示部20に表示するモジュール構成画面を更新してS540以降の処理を実行する。また、選択操作が完了したと判断すると(S599でYes)、当該細分化処理を終了する。
この細分化処理を終えると、CPU11は、S600にて共通化対象設定処理を実行する。図17は、共通化対象設定処理を表すフローチャートである。共通化対象設定処理では、ユーザからの指示に従って、プログラム部品を共通化する機能の一群をグループ化する。
共通化対象設定処理を開始すると、CPU11は、各入力命令I_na(1)〜I_na(N)の識別コード及び入力ライン、並びに、各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、各詳細機能F2(n3,m3,l3)のブロック(但し、n3=1,…,Nでありm3=1,…,Mであり、l3=1,…,DivF(n3,m3)である。)をレイアウトしたモジュール構成画面を、表示部20に表示する(S610)。
また、管理用配列{FC2(x,y,z)}を生成し(S615)、グループ番号xを、値ゼロに初期化する(S620)。その後、S630以降の処理を実行する。
S630に移行すると、CPU11は、グループ番号xを1カウントアップし、出力命令一覧画面を表示して出力命令についての選択操作を受け付け(S640)、S610で表示したモジュール構成画面を、S545での処理と同様に、選択された出力命令O_na(sm)についてのモジュール構成画面に更新する(S650)。更に、グループ構成要素番号yを値ゼロに初期化する(S660)。
その後、CPU11は、グループ構成要素番号yを1カウントアップし(S671)、モジュール構成画面にレイアウトされたブロックの選択操作により、出力命令O_na(sm)に対応する詳細機能F2(n3,sm,l3)であって、プログラム部品を共通化する詳細機能F2(n3,sm,l3)の選択操作を受け付け(S673)、選択された詳細機能F2(sn,sm,sl)の要素番号snを、配列要素FC2(x,y,1)にセットし、選択された詳細機能F2(sn,sm,sl)の要素番号slを、配列要素FC2(x,y,2)にセットする(S675)。このようにして配列要素FC2(x,y,1)及び配列要素FC2(x,y,2)には、グループ番号がxであり、グループ構成要素番号がyである第xグループ第y要素の詳細機能を特定するための情報を登録する。
この処理を終えると、CPU11は、プログラム部品を共通化する第xグループの詳細機能についての選択操作が完了したか否かを判断し(S677)、選択操作が完了していない場合には(S677でNo)、S671に移行して、S671以降の処理を実行する。そして、選択操作が完了したと判断すると(S677でYes)、第xグループの要素数yを、配列要素F2C(x,0,1)にセットすると共に、S640で選択された出力命令O_na(sm)の要素番号smを、配列要素FC2(x,0,2)にセットする(S680)。
このようにして第xグループに対応する出力命令、第xグループに属する詳細機能の数、及び、第xグループの属する詳細機能の一群を特定できるように、S675,S680で配列要素FC2(x,y,z)に各種情報を登録する。
また、この処理を終えると、CPU11は、プログラム部品を共通化するグループの登録操作が完了したか否かを判断し(S690)、完了していないと判断すると(S690でNo))、S630に移行して、S630以降の処理を実行する。
そして、グループの登録操作が完了したと判断すると(S690でYes)、グループ総数xを、配列要素F2C(0,0,1)にセットして(S695)、当該共通化対象設定処理を終了する。
また、共通化対象設定処理を終了すると、CPU11は、S700に移行して、図18に示す副管理機能登録処理を実行する。尚、この副管理機能登録処理は、外部機能を細分化して得られる同一外部機能に属する各詳細機能の動作を制御するための機能(以下、副管理機能という。)を、操作部30を通じたユーザ操作に従って登録するための処理である。
この副管理機能登録処理を開始すると、CPU11は、副管理機能を含む各機能の識別コードを格納するための配列{T2(n4,m4,l4)}を生成すると共に(S710)、分割数を格納するための配列{DivT(n4,m4)}を生成する(S715)。但し、n4=1,…,Nであり、m4=1,…,M+2である。
また、この処理を終えると、CPU11は、n4=1,…,N及びm4=1,…,M及びl4=1,…,DivF(n4,m4)の範囲における各配列要素T2(n4,m4,l4)に、同一要素番号の配列要素F2(n4,m4,l4)の値をセットすると共に、n4=1,…,N及びm4=1,…,Mの範囲における各配列要素T2(n4,m4,DivF(n4,m4)+1)に、NULLをセットする(S720)。更に、配列要素T2(n4,M+1,1)に、配列要素T1(n4,M+1)の値をセットし、配列要素T2(m4,M+2,1)に、配列要素T1(m4,M+2)の値をセットする(S725)。
また、n4=1,…,N及びm4=1,…,Mの範囲における各配列要素DivT(n4,m4)に、同一要素番号の配列要素DivF(n4,m4)の値をセットし、配列要素DivT(n4,M+1)に値1をセットし、配列要素DivT(n4,M+2)に、値1をセットする(S730)。
また、この処理を終えると、S740に移行して、各入力命令I_na(1)〜I_na(N)の識別コード及び入力ライン、並びに、各出力命令O_na(1)〜O_na(M)の識別コード及び出力ライン、並びに、各詳細機能T2(n4,m4,l4)のブロック、並びに、各個別機能T2(n4,M+1,1)のブロック、並びに、各管理機能T2(n4,M+2,1)のブロック、並びに、各外部機能F1(n4,m4)毎の副管理機能T2(n4,m4,DivT(n4,m4)+1)のブロックをレイアウトしたモジュール構成画面を表示部20に表示する(但し、n4=1,…,Nでありm4=1,…,Mであり、l4=1,…,DivT(n4,m4)である)。図19は、S740で表示するモジュール構成画面の構成を表す図である。
そして、モジュール構成画面にレイアウトされたブロックの選択操作により、副管理機能T2(n4,m4,DivT(n4,m4)+1)についての選択操作を受け付け(S750)、選択された副管理機能T2(sn,sm,DivT(sn,sm)+1)についての識別コードを登録するための副管理機能登録画面を表示して、操作部30を通じた副管理機能T2(sn,sm,DivT(sn,sm)+1)の識別コードの入力操作を受け付ける(S760)。そして、入力された識別コードを、配列要素T2(sn,sm,DivT(sn,sm)+1)にセットする。この際には、モジュール構成画面における副管理機能T2(sn,sm,DivT(sn,sm)+1)のブロックに、登録された識別コードを表示する。
また、この処理後には、副管理機能についての識別コードの登録操作が全て完了したか否かを判断し(S780)、全て完了していないと判断するとS740に移行し、全て完了したと判断すると(S780でYes)、当該副管理機能登録処理を終了する。
また、副管理機能登録処理を終えると、CPU11は、S800に移行し、選択入力命令設定処理を実行する。図20に示す選択入力命令設定処理は、中間モジュールMMに入力される入力命令I_na(1)〜I_na(N)の内、上位モジュールMUの種類によっては中間モジュールMMに対して入力されない種類の入力命令である選択入力命令についての設定操作をユーザから受け付けて、中間モジュールMMに入力される入力命令を、上記選択入力命令又は上位モジュールMUの種類に依らず中間モジュールMMに対して入力される種類の入力命令である基本入力命令に分類するための処理である。
選択入力命令設定処理を開始すると、CPU11は、選択入力命令の要素番号を記憶するための配列{Dn(k)}を生成し(S810)、変数kを値ゼロに初期化する(S820)。その後、選択入力命令の設定を完了する旨の完了操作がなされたか否かを判断し(S830)、完了操作がなされていないと判断すると(S830でNo)、変数kを1カウントアップし(S840)、入力命令一覧画面を表示して、選択入力命令に設定する入力命令の選択操作を受け付ける(S850)。そして、選択された入力命令I_na(sn)の要素番号snを、配列要素Dn(k)にセットする(S860)。その後、S830に移行する。このような動作により、配列要素Dn(1),Dn(2)の順に、当該配列要素に、ユーザから指定された選択入力命令の要素番号をセットする。
そして、完了操作がなされたと判断すると(S830でYes)、配列要素Dn(0)に選択入力命令の数kをセットして(S870)、選択入力命令設定処理を終了する。
また、選択入力命令設定処理を終了すると、CPU11は、S900に移行し、図21に示す組合せテーブル生成処理を実行する。
組合せテーブル生成処理を開始すると、CPU11は、変数pに、プログラム部品を共通化するグループ総数を表す配列要素F2C(0,0,1)の値をセットした後(S910)、S915以降の処理を実行することにより、グループ毎の組合せテーブルを生成する。
詳述すると、S915では、変数pがゼロよりも大きいか否かを判断し、ゼロよりも大きい場合には(S915でYes)、第pグループについての組合せテーブルを、第pグループに属する詳細機能の個数を表す配列要素F2C(p,0,1)の値に基づき生成する(S920)。ここで生成する組合せテーブルは、中間モジュールMMへ入力される入力命令の組合せパターン(換言すれば入力有無のパターン)を表すテーブルのことであり、具体的には、図22上段太枠内に示すように、入力命令が入力される場合を値「1」、入力命令が入力されない場合を値ゼロで表現した組合せパターンを記したテーブルのことである。図22は、第pグループの組合せテーブルの例を概念的に表したものである。
第pグループに属する各詳細機能について、この詳細機能に対応する入力命令が上位モジュールMUから入力される場合及び入力されない場合を場合分けすると、詳細機能毎に、入力命令の入力有無に応じた2通りの場合分けができる。また、本実施例では、入力命令が同一の詳細機能が同一グループに複数存在することのないようにグループ化を行うルールを採用しているので、詳細機能毎に対応する入力命令は異なる。従って、中間モジュールMMに入力される第pグループに対応する入力命令の組合せパターンの総数は、2のF2C(p,0,1)乗となる。
従って、S920では、第pグループに属する各詳細機能に対応する入力命令の中間モジュールMMへの入力有無に応じた2のF2C(p,0,1)乗個の入力命令の組合せパターンを記した組合せテーブル{TLCP(p,q,r)}を生成する。TLCP(p,q,r)は、第pグループの組合せテーブルにおける第q行第r列のテーブル要素を表し、pはグループ番号、qはグループ構成要素番号、rは組合せパターン番号に対応する。
この点について詳述すると、テーブル要素TLCP(p,q,r)は、p>0,q>0,r>0の範囲において、第pグループにおけるグループ構成要素番号qの詳細機能に対応する入力命令I_na(F2C(p,q,1))の入力有無を表す値であって、第r組合せパターンでの入力有無を表す値を、値1又は値0で保持するものである。値1を採るときには、上位モジュールMUから中間モジュールMMへの入力命令I_na(F2C(p,q,1))の入力があることを示し、値ゼロを採るときには、上位モジュールMUから中間モジュールMMへの入力命令I_na(F2C(p,q,1))の入力がないことを示す。
図22上段に示す例によれば、TLCP(p,1,6)=1,TLCP(p,2,6)=0,TLCP(p,3,6)=1であるので、第6組合せパターンは、入力命令I_na(F2C(p,1,1))及び入力命令I_na(F2C(p,3,1))が中間モジュールMMに入力され、入力命令I_na(F2C(p,2,1))については中間モジュールMMに入力されないパターンであることになる。
補足すると、本実施例では、テーブル要素TLCP(p,q,0)に、第pグループにおけるグループ構成要素番号qの詳細機能に対応する入力命令I_na(F2C(p,q,1))の要素番号を表すF2C(p,q,1)の値を格納して、組合せテーブルを生成する。
ちなみに、S920では、基本入力命令及び選択入力命令を区別することなく、各入力命令が中間モジュールMMに入力される場合及び入力されない場合の夫々を場合分けして、上述したように、2のF2C(p,0,1)乗個の入力命令の組合せパターンを記した組合せテーブル{TLCP(p,q,r)}を生成する(S920)。但し、基本入力命令については、必ず中間モジュールMMに入力されるものであるので、本来、基本入力命令の入力がない場合については考慮する必要はない。この点については、後の処理で対応して組合せテーブルを修正する。
S920で、第pグループの組合せテーブル{TLCP(p,q,r)}を生成すると、CPU11は、変数pを1減算した値に更新し(S925)、S915に移行する。このようにして、S915〜S925の処理では、プログラム部品を共通化するグループ毎に、このグループについての組合せテーブルを生成する。
また、第1グループ(p=1)までの組合せテーブルを生成し、p=0になると(S915でNo)、CPU11は、変数pをゼロに初期化する(S930)。また、変数pを1カウントアップし(S940)、変数qをゼロに初期化後(S945)、S950以降の処理を実行する。
具体的に、S950では、グループ総数を表す配列要素F2C(0,0,1)の値に基づき、変数pがグループ総数以下であるか否かを判断し、グループ総数以下であると判断すると(S950でYes)、S955に移行し、グループ総数を超えていると判断すると(S950でNo)、当該組合せテーブル生成処理を終了する。即ち、この組合せテーブル生成処理では、S955以降の処理をグループ毎に実行し、全てのグループに対するS955以降の処理が完了すると、当該組合せテーブル生成処理を終了する。
S955に移行すると、CPU11は、変数qを1カウントアップした値に更新した後、S960に移行して、第pグループの要素数を表す配列要素F2C(p,0,1)の値に基づき、グループ構成要素番号に対応する変数qが第pグループの要素数以下であるか否かを判断する。そして、変数qが第pグループの要素数以下であると判断すると(S960でYes)、S970以降の処理を実行し、変数qが第pグループの要素数を超えていると判断すると(S960でNo)、S940に移行する。即ち、この組合せテーブル生成処理では、S970以降の処理を、グループ内の要素毎に実行して、全ての要素に対するS970以降の処理が完了すると、S940に移行する。このようにして、各グループについて、グループを構成する要素毎に、S970以降の処理を実行する。
また、S970に移行すると、CPU11は、第pグループ第q要素に対応する詳細機能に対応する入力命令I_na(F2C(p,q,1))が、配列{Dn(k)}に登録されているか否かを判断することによって、この入力命令が基本入力命令であるか否かを判断する。尚、基本入力命令である場合、入力命令I_na(F2C(p,q,1))は、配列{Dn(k)}に登録されていない。
そして、入力命令I_na(F2C(p,q,1))が基本入力命令ではない(換言すれば選択入力命令である)と判断すると(S970でNo)、S955に移行して、変数qを1カウントアップし(S955)、S960以降の処理を実行する。即ち、第pグループの次の要素に対応するS960以降の処理を実行する。
一方、入力命令I_na(F2C(p,q,1))が基本入力命令であると判断すると(S970でYes)、CPU11は、変数rをゼロに初期化して(S975)、S980以降の処理を実行する。
具体的に、S980では、変数rを1カウントアップした値に更新し、その後のS985では、変数rの値が、第pグループに属する詳細機能に対応する入力命令の組合せパターンの総数である2のF2C(p,0,1)乗以下であるか否かを判断する。
そして、変数rの値が2のF2C(p,0,1)乗以下であると判断すると(S985でYes)、テーブル要素TLCP(p,q,r)が値ゼロであるか否かを判断し(S990)、値ゼロである場合には(S990でYes)、第pグループの第r組合せパターンに対応するq=1,…,F2C(p,0,1)の各テーブル要素TLCP(p,q,r)の値を、NULLに設定する(S995)。その後、S980に移行する。一方、値ゼロではない場合には、(S990でNo)、S995の処理を実行することなく、S980に移行する。このようにして、S980〜S995の処理を繰り返し実行することにより、CPU11は、不適切な組合せパターンである基本入力命令が入力されないケースに対応する組合せパターンのテーブル要素の値をNULLに設定し、これによって、組合せテーブルを修正する。
そして、全組合せパターンに対してS980〜S995の処理を実行すると、変数rの値が2のF2C(p,0,1)乗を超えていると判断して(S985でNo)、S955に移行し、第pグループの次要素についてのS960以降の処理を実行する。
尚、図22下段は、S920で図22上段に示す組合せテーブルを生成した後、S930〜S995で修正した後の組合せテーブルの構成を表す図である。但し、図22に示す例では、入力命令I_na(F2C(p,3,1))が基本入力命令であるときの組合せテーブルの修正方法を表す図である。
また、このようにして組合せテーブル生成処理を終了すると、CPU11は、S1000(図10参照)に移行して、各グループの組合せテーブルを、表示部20に表示する。
即ち、グループ毎に、このグループに所属する詳細機能に対応する入力命令毎の識別コード、及び、入力命令の各組合せパターンを記した図22下段に示すような構成の組合せテーブルの出力画面を表示部20に表示する。この際には、出力命令の識別コードを併せて出力画面上に表示する。このようにして、S1000では、プログラム部品を共通化するグループ毎に、中間モジュールMMに入力される入力命令の組合せの各パターンをユーザに画像情報として表示する。
尚、S1000では、操作部30を通じて入力されるユーザによるグループの切替指示に従って、指定されたグループに対応する組合せテーブルを表示部20に切替表示してよいし、各グループの組合せテーブルを、並べて表示部20に一括表示してもよい。
また、このような表示動作を、操作部30を通じて第一支援ツールの終了操作がなされるまで継続し、第一支援ツールの終了操作がなされると(S1010でYes)、この第一支援ツールの処理結果を第二支援ツールでも使用するために作業データとして記憶部50に保存した後(S1020)、第一支援ツールを終了する。
ユーザは、この第一支援ツールで表示されるグループ毎の組合せテーブルに従って、グループ毎に、生成する中間モジュールMMに入力される入力命令の組合せ毎の複合プログラム部品を生成する。即ち、組合せ毎に、上位モジュールMUから入力されない入力命令に対応した詳細機能については複合化対象から外し、上位モジュールMUから中間モジュールMMへ入力される入力命令に対応した詳細機能群のみを複合化して、これらの詳細機能を実現可能な複合プログラム部品を生成する(図10参照)。
また、グループに属さない詳細機能の夫々、並びに、副管理機能及び管理機能及び個別機能の夫々について、これら各機能をコンピュータに実現させるための機能毎のプログラム部品である単独プログラム部品を生成する(図10右段参照)。
このようにして各プログラム部品を生成した後、ユーザは、操作部30を通じて第二支援ツールを起動する。第二支援ツールの起動操作が操作部30を通じて入力されると、CPU11は、第二支援ツールに従って、図23に示す処理を開始する。
この処理を開始すると、CPU11は、まず、第一支援ツールで保存された作業データを記憶部50から読み出す(S1100)。更に、複合プログラム部品管理テーブル{TLCPP(p,q,r)}を生成する(S1110)。この際には、図24に示すように、テーブル要素TLCPP(p,q,r)に、同一要素番号のテーブル要素TLCP(p,q,r)の値をセットする。また、単独プログラム部品管理テーブル{TLIPP(u,v,w)}を生成する(S1120)。この際には、図25に示すように、テーブル要素TLIPP(u,v,0)に、入力命令I_na(u)及び出力命令O_na(v)に対応する機能の分割数であるDivT(u,v)をセットする。
その後、変数pをゼロに初期化し(S1130)、S1140以降の処理を実行することにより、グループ毎に、複合プログラム部品の登録を受け付ける。具体的には、S1140において、変数pを1カウントアップして、複合プログラム部品の登録対象を第pグループに更新し、その後、第pグループに対応する入力命令の組合せの各パターンに対応した複合プログラム部品の登録操作を受け付けて、入出力部40を通じて登録対象の複合プログラム部品を取得し記憶部50に保存すると共に、その複合プログラム部品の格納場所を、登録情報として、図24に示すように、複合プログラム部品管理テーブルのテーブル要素TLCPP(p,0,r)に登録する(S1150)。例えば、第p0グループの組合せテーブル{TLCP(p0,q,r)}における第r0組合せパターンに対応する複合プログラム部品については、その登録情報を、テーブル要素TLCPP(p0,0,r0)に登録する。
尚、複合プログラム部品の登録時には、複合プログラム部品管理テーブルにおける当該プログラム部品の登録情報にアクセス可能なリンク情報を、単独プログラム部品管理テーブルにも登録する。例えば、該当する複合プログラム部品が、機能T2(u,v,r)を実現可能なプログラム部品である場合には、単独プログラム部品管理テーブルにおけるテーブル要素TLIPP(u,v,r)に、このプログラム部品の登録情報が記述された複合プログラム部品管理テーブルの要素番号をリンク情報として登録する。
CPU11は、このようなS1140及びS1150の手順を繰り返し実行することにより、各グループに対しての複合プログラム部品についての登録操作を受け付ける。そして、変数pがグループの総数以上となると(S1160でYes)、単独プログラム部品を登録すべき機能(グループに属さない詳細機能並びに個別機能及び管理機能及び副管理機能)の一覧画面を表示して、単独プログラム登録対象の機能についての選択操作を受け付け(S1170)、更に、選択された機能T2(u,v,r)についての単独プログラム部品の登録操作を受け付けて、入出力部40を通じて登録対象の単独プログラム部品を取得し記憶部50に保存すると共に、その単独プログラム部品の格納場所を、図25に示すように、登録情報として、テーブル要素TLIPP(u,v,r)に登録する(S1180)。
CPU11は、このようなS1170,S1180の手順を、全ての単独プログラム部品についての登録操作を受け付けるまで繰り返し実行し、全ての登録が完了すると(S1190でYes)、上記生成した複合プログラム部品管理テーブル及び単独プログラム部品管理テーブルを第三支援ツールで読出可能とするために、S1100で読み出した作業データに上記生成した複合プログラム部品管理テーブル及び単独プログラム部品管理テーブルを追加して更新してなる作業データを、記憶部50に保存して(S1195)、当該第二支援ツールに係る処理を終了する。
また、第三支援ツールは、このようなプログラムの登録が完了した後、電子機器1に実装する中間モジュールMMを生成する際にユーザからの指示に従って起動される。具体的に、CPU11は、操作部30を通じて第三支援ツールの起動指示が入力されると、図26に示す処理を開始し、まず、記憶部50から作業データを読み出す(S1200)。その後、S1300に移行して、図27に示す入力有無設定処理を実行する。
この入力有無設定処理は、入力命令I_na(1)〜I_na(N)の内、今回生成する中間モジュールMMには入力されない選択入力命令の情報を、操作部30を通じてユーザから取得するための処理である。この入力有無設定処理を実行すると、CPU11は、まず配列{DnP(k)}を生成し(S1310)、変数kをゼロに初期化する(S1320)。その後、S1330以降の処理を実行する。
S1330では、変数kを1カウントアップし、S1340では、選択入力命令の総数を表す配列要素Dn(0)の値に基づき、変数kが、選択入力命令の総数以下であるか否かを判断する。そして、総数以下であると判断すると(S1340でYes)、配列要素Dn(k)が示す入力命令I_na(Dn(k))が生成対象の中間モジュールMMに入力されるか否かを問合せる画面を表示部20に表示して、入力命令I_na(Dn(k))が中間モジュールMMに入力されるか否かを表す情報を、操作部30を通じて取得する(S1351)。
そして、入力命令I_na(Dn(k))が中間モジュールMMに入力されるとの操作情報が操作部30を通じて入力された場合には(S1353でYes)、配列要素DnP(k)を値1にセットする(S1355)。一方、入力命令I_na(Dn(k))が中間モジュールMMに入力されないとの操作情報が操作部30を通じて入力された場合には(S1353でNo)、配列要素DnP(k)を値ゼロにセットする(S1357)。その後、S1330に移行する。
このようにしてS1330〜S1357の処理では、配列{Dn(k)}に登録された各選択入力命令について、この選択入力命令が、今回生成する中間モジュールMMに入力されるか否かを問合せ、その入力有無の情報を、ユーザから取得して、配列要素DnP(k)に記憶する。
そして、変数kが選択入力命令の総数を超えると(S1340でNo)、全ての選択入力命令について入力有無の情報を取得したと取り扱って、配列要素DnP(0)に、配列要素Dn(0)の値、即ち、選択入力命令の総数をセットする(S1360)。その後、入力有無設定処理を終了する。
また、この入力有無設定処理を終了すると、CPU11は、S1400に移行し、図28に示すモジュール出力処理を実行する(S1400)。モジュール出力処理を開始すると、CPU11は、変数pを値ゼロに初期化した後(S1410)、S1420以降の処理を実行する。
S1420では、変数pを1カウントアップし、その後、複合プログラム部品を使用するグループの総数を表す配列要素F2C(0,0,1)に基づき、変数pがグループ総数以下であるか否かを判断する(S1421)。そして、グループ総数以下であると判断すると(S1421でYes)、複合プログラム部品管理テーブル{TLCPP(p,q,r)}を参照して、記憶部50が記憶する第pグループの複合プログラム部品群の中から、配列{DnP(k)}が示す生成対象の中間モジュールMMに入力される入力命令の組合せパターンに対応する複合プログラム部品を、使用プログラム部品として抽出する(S1425)。その後、S1420に移行する。
このようにして、S1420〜S1425の処理では、グループ毎に、配列{DnP(k)}が示す生成対象の中間モジュールMMに入力される入力命令の組合せパターンに対応する複合プログラム部品を、使用プログラム部品として記憶部50から抽出する。
また、全グループについてS1425の処理を実行することで、変数pがグループ総数を超えると(S1421でNo)、S1430に移行して、単独プログラム部品管理テーブル{TLIPP(u,v,w)}を参照して、プログラム部品共通化の対象外である各機能に対応する単独プログラムを、使用プログラム部品として記憶部50から抽出する。
ここで抽出する単独プログラム部品は、上記グループのいずれにも属さない詳細機能、詳細機能の動作を制御する副管理機能、副管理機能を通じて上記詳細機能の動作を制御する管理機能、及び、個別機能の各機能に対応した単独プログラム部品である。但し、生成対象の中間モジュールMMに入力されない入力命令に対応する管理機能、副管理機能、詳細機能及び個別機能についての単独プログラム部品に関しては、抽出対象外である。
また、この処理を終えると、CPU11は、S1440に移行し、使用プログラム部品として抽出した単独プログラム部品群のプログラムサイズの和(以下、この和を値ZIPと表現する。)を算出する。
更に、使用プログラムとして抽出した複合プログラム部品群のプログラムサイズの和(以下、この和を値ZCPと表現する。)を算出する(S1450)。
その他、上記グループ毎に、このグループに対応する複合プログラム部品の内、プログラムサイズが最大の複合プログラム部品(以下、「最大複合プログラム部品」と表現する。)を特定し、各グループの最大複合プログラム部品に対応するプログラムサイズの和(以下、この和を値ZMと表現する。)を算出する(S1460)。
そして、支援ツールで有効にサイズ低減されたプログラム部品群のプログラムサイズとして、値ZIPに値ZCPを加算した値ZA1を算出すると共に、従来と同様に、入力されない選択入力命令に対応する機能を盛り込んだ場合のプログラム部品群のプログラムサイズとして、値ZIPに値ZMを加算した値ZA2を算出する(S1470)。尚、最大複合プログラム部品は、多くの場合、選択入力命令が全て入力される場合に使用するプログラム部品となるため、値ZA2は、従来と同様に、選択入力命令の有無を考慮せずに中間モジュールMMを生成する場合のプログラムサイズに近似的に一致する。
この後、CPU11は、支援ツールを使用した場合の中間モジュールMMのプログラムサイズとして、値ZA1を記述し、支援ツールを使用しない場合の参考例としての中間モジュールMMのプログラムサイズとして、値ZA2を記述し、更に、支援ツールによるプログラムサイズ低減量として、Δ=ZA1−ZA2を記述したプログラムサイズ情報画面を、表示部20に表示する(S1480)。
また、CPU11は、使用プログラム部品として抽出した各複合プログラム部品及び各単独プログラム部品を、中間モジュールMMの構成部品のセットとして出力し(S1490)、当該モジュール出力処理を終了する。出力先としては、記憶部50におけるユーザから予め指定された領域、又は、入出力部40に装着された記憶媒体等を挙げることができる。
尚、S1490に代えては、各使用プログラム部品を組み合わせて実行プログラム(実行ファイル)を生成することで、中間モジュールMMを完成した形で出力する処理(S1491)を実行してもよい。使用プログラム部品を組み合わせて、コンピュータが実行可能な形式の中間モジュールMMを生成する手続きについては、プログラム言語に依るので、ここでは、これ以上の説明を省略する。
以上、本実施例の支援装置100の構成について説明したが、上記構成の支援装置100によれば、上述したモジュール生成方法による中間モジュールMMの生成に関して、ユーザ作業を支援することができ、プログラムサイズを低減しつつ、中間モジュールMMを効率的に生成することができる。
具体的には、出力命令毎の組合せテーブルを画像情報として表示部20に表示するので、ユーザは、入力命令の組合せを容易に把握することができ、入力命令の組合せ毎の複合プログラム部品を生成する際のユーザ作業を容易にすることができる。
特に、この支援装置100によれば、部品を共通化する対象の詳細機能のグループ毎に、このグループに属する各詳細機能に対応する入力命令の組合せであって、選択入力命令の入力有無に応じて場合分けして得られる中間モジュールMMに入力される入力命令の組合せについての一通りの各パターンを表す情報を、組合せテーブルとしてユーザに表示するので、グループ毎に、どのような種類の複合プログラム部品を生成すればよいかについての情報を簡素且つ理解しやすくユーザに表示することができる。
また、本実施例によれば、生成対象の中間モジュールMMに入力される選択入力命令の情報を、第三支援ツールを通じて支援装置100に入力することで、ユーザは、生成対象の中間モジュールMMに適切なプログラム部品のセットを簡単に取得することができる。よって、この支援装置100によれば、ユーザによる中間モジュールMMの生成作業を簡易にすることができる。
尚、「特許請求の範囲」に記載の分割手順は、S1の手順に対応し、特定手順は、S3の手順に対応し、分類手順は、S4の手順に対応し、複合部品生成手順は、S5の手順に対応し、単独部品生成手順は、S6の手順に対応し、モジュール生成手順は、S7〜S9の手順に対応する。また、管理機能部品生成手順は、S2,S6の手順に対応する。
また、「特許請求の範囲」に記載の支援装置は、支援装置100に対応し、命令情報取得手段は、CPU11が実行する命令登録処理にて実現され、選択入力情報取得手段は、CPU11が実行する選択入力命令設定処理にて実現され、情報提供手段は、CPU11が実行するS900〜S1000の処理にて実現されている。
また、機能分割手段は、CPU11が実行する機能登録処理及び細分化処理にて実現され、共通化情報取得手段は、CPU11が実行する共通化対象設定処理にて実現されている。
この他、複合部品取得手段は、CPU11が実行するS1140〜S1160の処理にて実現され、単独部品取得手段及び管理部品取得手段は、CPU11が実行するS1170〜S1190の処理にて実現され、入力有無情報取得手段は、CPU11が実行するS1300の処理にて実現され、抽出手段は、CPU11が実行するS1425,S1430の処理にて実現されている。
また、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、上記実施例では、モジュールをソフトウェアで構成する例を説明したが、モジュールは、電子機器1に実装可能なハードウェア回路として構成されてもよい。
図29は、変形例の電子機器1’の構成を表すブロック図である。以下に説明する変形例では、図4と同様に、上位モジュールMUから入力命令としての初期化命令IC4及びデータ送信命令IC5及びデータ受信命令IC6を受けて、下位モジュールMDに対し通信初期化命令OC4及びメッセージ送信命令OC5及びメッセージ受信命令OC6を出力する通信制御機能を有した通信モジュールMMEに、上記実施例のモジュール生成方法を適用し、ハードウェア構成の中間モジュール100を生成した場合の中間モジュール100の構成について説明する。
中間モジュール100は、基板本体110に、回路チップ135,136が装着されてなる。基板本体110は、入力命令IC4,IC5,IC6毎に、入力命令固有の機能(管理機能及び個別機能)を実現する入力処理回路114,115,116が形成され、更に、出力命令(通信初期化命令)OC4固有の機能を実現する出力処理回路124と、出力命令(メッセージ送信命令)OC5に対応する機能を実現する回路チップ135を実装可能な装着部125と、出力命令(メッセージ受信命令)OC6に対応する機能を実現する回路チップ136を実装可能な装着部126とが形成された構成にされている。
詳述すると、入力処理回路114,115,116及び出力処理回路124は、基板本体110に、その回路パターンが直接形成されている。
初期化命令IC4の入力を受け付ける入力処理回路114は、初期化命令IC4に対応する管理機能ME1(図7参照)を実現可能な回路であり、初期化命令IC4が入力される入力端子(図示せず)を備える。また、入力処理回路114の出力端は、基板本体110に形成された線路により、出力処理回路124、装着部125、及び、装着部126の各入力端に電気的に接続されている。
一方、データ送信命令IC5の入力を受け付ける入力処理回路115は、データ送信命令IC5に対応する管理機能ME2(図7参照)を実現可能な回路であり、データ送信命令IC5が入力される入力端子(図示せず)を備え、入力処理回路115の出力端は、基板本体110に形成された線路により、装着部125の入力端に電気的に接続されている。
同様に、データ受信命令IC6の入力を受け付ける入力処理回路116は、データ受信命令IC6に対応する管理機能ME3(図7参照)を実現可能な回路であり、データ受信命令IC6が入力される入力端子(図示せず)を備え、入力処理回路116の出力端は、基板本体110に形成された線路により、装着部126の入力端に電気的に接続されている。
また、出力処理回路124は、初期化命令IC4の入力を契機に通信初期化命令OC4を出力する細分化機能FE1(図7参照)に対応する処理を実現可能な回路として構成され、初期化命令IC4が入力されると、入力処理回路114からの信号を受けて通信初期化命令OC4を、出力端子(図示せず)を通じて下位モジュールMDに出力する。
また、装着部125は、入力処理回路114,115からの信号を受けてメッセージ送信指令OC5を出力する回路チップ135を、基板本体110に実装可能なソケット及び当該ソケットの出力端に接続された下位モジュールMDにメッセージ送信指令OC5を出力するための出力端子を備え、これらが基板本体110に形成された構成にされている。
この他、装着部126は、入力処理回路114,116からの信号を受けてメッセージ受信指令OC6を出力する回路チップ136を基板本体110に実装可能なソケット及び当該ソケットの出力端に接続された下位モジュールMDにメッセージ受信指令OC6を出力するための出力端子を備え、これらが基板本体110に形成された構成にされている。
また、装着部125のソケットは、上記回路チップ135として、上位モジュールMUから入力される入力命令の組合せ毎に用意される回路チップ135a,135bの一つを実装可能な構成にされている。
回路チップ135は、上記実施例における複合プログラム部品に対応する機能を専用回路により実現するものであり、入力命令の組合せ毎に用意される(回路チップ135a,135b)。即ち、装着部125のソケットには、入力命令の組合せ毎の回路チップ135a,135bの内、上位モジュールMUから実際に入力される命令に対応した回路チップ135a,135bが実装される。
具体的に、初期化命令IC4は、上位モジュールMUの種類に依らず必ず入力される種類の入力命令(基本入力命令)である一方、データ送信命令IC及びデータ受信命令IC6は、上位モジュールMUの種類によって入力有無が切り替わる選択入力命令である。
回路チップ135aは、初期化命令IC4及びデータ送信命令IC5が入力される場合に装着部125のソケットに実装される細分化機能FE4及び細分化機能FE2(図7参照)を複合化した回路チップであり、回路チップ135bは、初期化命令IC4は入力されるがデータ送信命令IC5は入力されない場合に、装着部125のソケットに実装される細分化機能FE2(図7参照)を実現可能な回路チップである。
また、装着部126のソケットは、回路チップ136として、上位モジュールMUから入力される入力命令の組合せ毎に用意される回路チップ136a,136bの一つを実装可能な構成にされている。
回路チップ136は、回路チップ135と同様、上記実施例における複合プログラム部品に対応する機能をハードウェア回路により実現するものであり、入力命令の組合せ毎に用意される(回路チップ136a,136b)。そして、装着部126のソケットには、入力命令の組合せ毎の回路チップ136a,136bの内、上位モジュールMUから実際に入力される命令に対応した回路チップ136a,136bが実装される。
具体的に、回路チップ136aは、初期化命令IC4及びデータ受信命令IC6が入力される場合に装着部126のソケットに実装される細分化機能FE5及び細分化機能FE3(図7参照)を複合化した回路チップであり、回路チップ136bは、データ受信命令IC6が入力されない場合に装着部126のソケットに実装される細分化機能FE3(図7参照)を実現可能な回路チップである。
このような中間モジュール100の構成により、本変形例では、上位モジュールMUから入力される入力命令の組合せに応じて中間モジュール100の回路構成を容易に変更できるようにしている。従って、本実施例によれば、従来のように複数種類の上位モジュールMUに対応可能に中間モジュール100を構成するために、上位モジュールMUの種類によっては不要な回路群を基板に冗長に形成しなければならないのを抑制することができ、多様な装置への適用が想定される環境でも、中間モジュール100のモジュールサイズ(回路規模)を抑えることができる。結果として、本実施例によれば、中間モジュール100の製造コストを抑えることができる。
以上には、通信モジュールMMEをハードウェア回路化した場合の具体的な構成を説明したが、図2に示した中間モジュールMMの生成方法を、ハードウェア回路を採用した場合で説明し直すと、中間モジュールMMの生成に際しては、中間モジュールMMにて実現されるべき機能を、入力命令IC1〜IC3及び出力命令OC1〜OC3の組合せ毎に一つの機能に分割し(S1)、入力命令及び出力命令の組合せ毎の機能分割後には、入力命令IC1〜IC3毎に管理機能MA1〜MA3を定める(S2)。
また、この後には、出力命令毎に、複数機能共通の回路チップにて実現する細分化機能のグループを定める(S3)。即ち、出力命令が同一で入力命令の異なる細分化機能の一群の中から、共通回路(回路チップ)を用いて実現する機能を選択して、出力命令が同一で入力命令の異なる細分化機能群のうち、上記選択した複数の機能を、回路を共通化する細分化機能の組合せとして、グループ化する。
更には、入力命令の一群を、選択入力命令と基本入力命令とに分類する(S4)。この後には、グループ毎に、このグループに属する各細分化機能を複合化した当該グループに属する細分化機能共通の回路チップ(上記回路チップ135a,135b,136a,136b)を生成し(S5)、更に、基板本体には、S3で設定したグループのいずれにも属さない細分化機能(出力処理回路124)、及び、入力命令毎の管理機能の夫々を実現可能な回路(入力処理回路114,115,116)を、基板本体に直接形成する(S6)。
具体的に、S5では、各グループに対して、中間モジュールMMに入力される入力命令の組合せ毎の回路チップを生成する。また、S6では回路チップを着脱可能な装着部(装着部125,126)を、上記グループ毎に基板本体に形成する。この際には、回路チップへの信号入力路を形成する装着部(装着部125,126)の入力端に、回路チップに対応する入力命令の管理機能を実現する各回路(入力処理回路114,115,116)の出力端を電気的に接続する。
このようして、モジュール生成方法における第一段階の手順を終了する。また、第二段階では、第一段階で生成した回路チップ(回路チップ135a,135b,136a,136b)を基板本体に実装して、環境に合わせた中間モジュール100を生成する。
具体的には、上位モジュールMUの種類を特定して、上位モジュールMUから生成対象の中間モジュールMMに入力される入力命令の組合せを特定し(S7)、上記装着部毎に、第一段階で生成した回路チップの中から、中間モジュールMMに入力される入力命令の組合せに応じた回路チップを抽出する(S8)。
そして、抽出した回路チップを、対応する装着部に実装して中間モジュールMMを生成する。この変形例によれば、実装する回路チップの組合せによって、入力命令の組合せに対応したモジュールを簡単に生成でき、多様な電子機器への実装が想定される環境で、効率的に、環境に適した中間モジュールMMを生成することができる。
1…電子機器、10…演算部、11…CPU、13…RAM、20…表示部、30…操作部、40…入出力部、50…記憶部、100…支援装置、MU…上位モジュール、MD…下位モジュール、MM,100…中間モジュール、MME…通信モジュール、MU…上位モジュール、IC1,IC2,IC3…入力命令、OC1,OC2,OC3…出力命令、110…基板本体、114,115,116…入力処理回路、124…出力処理回路、125,126…装着部、135,135a,135b,136,136a,136b…回路チップ

Claims (10)

  1. 電子機器に実装されるモジュール群の一つであって、
    上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
    の生成方法であって、
    前記中間モジュールに対応する機能を、入力命令及び出力命令の組合せ毎の機能に分割する手順であって、当該中間モジュールに対応する機能を、前記入力命令及び出力命令の組合せ毎に一以上の機能に分割する分割手順と、
    前記分割手順による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、前記中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを特定する特定手順と、
    前記中間モジュールに対して入力される前記入力命令の一群を、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令と、上位モジュールの種類に依らず前記中間モジュールに対して入力される種類の入力命令である基本入力命令と、に分類する分類手順と、
    前記特定手順により特定された前記グループ毎に、このグループに属する細分化機能を複合化して、このグループに属する細分化機能共通の前記モジュール構成部品である複合部品を生成する複合部品生成手順と、
    前記特定手順により特定された前記グループのいずれにも属さない前記細分化機能の夫々に関して、この細分化機能を実現するための前記モジュール構成部品である単独部品を生成する単独部品生成手順と、
    前記複合部品及び前記単独部品を組み合わせて、前記中間モジュールを生成するモジュール生成手順と、
    を含み、
    前記複合部品生成手順では、前記各グループに対して、前記各選択入力命令の入力有無に応じて場合分けされる前記中間モジュールへ入力される前記入力命令の組合せ毎に、この組合せでは入力されない前記選択入力命令に対応する細分化機能を複合化の対象から除外して、このグループに属する残りの細分化機能を複合化した前記複合部品を生成し、
    前記モジュール生成手順では、中間モジュールを実装する電子機器における前記各選択入力命令の入力有無によって定まる生成対象の前記中間モジュールに入力される入力命令の組合せに対応する前記グループ毎の前記複合部品と、この組合せで入力される各入力命令に対応した前記単独部品と、を組み合わせた前記中間モジュールを生成すること
    を特徴とする中間モジュールの生成方法。
  2. 前記入力命令毎に、この入力命令に対応する前記細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するための前記モジュール構成部品を生成する管理機能部品生成手順
    を含み、
    前記モジュール生成手順では、前記複合部品及び前記単独部品に加えて、生成対象の前記中間モジュールに入力される前記入力命令毎の前記モジュール構成部品を組み合わせて、前記中間モジュールを生成すること
    を特徴とする請求項1記載の中間モジュールの生成方法。
  3. 前記中間モジュールとして、
    上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を前記電子機器が備えるコンピュータに実行させるためのプログラム
    を生成すること
    を特徴とする請求項1又は請求項2記載の中間モジュールの生成方法。
  4. 生成対象の前記中間モジュールは、ハードウェア回路であり、
    前記複合部品生成手順は、前記複合部品に対応する回路を基板本体に着脱可能な回路チップとして形成する手順であり、
    前記単独部品生成手順は、前記単独部品に対応する回路を前記基板本体に直接形成する手順であり、
    前記中間モジュール生成方法は、前記グループ毎に、前記回路チップを前記基板本体に直接形成された回路と電気的に接続可能に当該基板本体に装着するための装着部品を、前記基板本体に形成する装着部品形成手順を更に含み、
    前記モジュール生成手順では、前記基板本体に、生成対象の前記中間モジュールに入力される入力命令の組合せに対応する前記グループ毎の前記回路チップを、対応する前記装着部品に装着することにより、前記中間モジュールを生成すること
    を特徴とする請求項1記載の中間モジュールの生成方法。
  5. 前記入力命令毎に、この入力命令に対応する前記細分化機能の一群の動作を制御する管理機能を定めて、この管理機能を実現するための回路を、前記基板本体に形成する管理機能部品生成手順
    を含むことを特徴とする請求項4記載の中間モジュールの生成方法。
  6. 電子機器に実装されるモジュール群の一つであって、
    上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
    に関し、ユーザによる前記中間モジュールの生成を支援するための支援装置であって、
    前記中間モジュールに対して入力される入力命令群、及び、前記中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、
    前記命令情報取得手段の取得情報が表す前記入力命令群の内、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、前記入力インタフェースを通じて取得する選択入力情報取得手段と、
    前記選択入力情報取得手段の取得情報に基づき、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段と、
    を備えることを特徴とする支援装置。
  7. 前記情報提供手段は、前記命令情報取得手段の取得情報が表す前記出力命令毎に、この出力命令を出力する原因となる入力命令の組合せであって、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される当該入力命令の組合せの各パターンを表す情報を、前記画像情報として出力すること
    を特徴とする請求項6記載の支援装置。
  8. 前記中間モジュールに対応する機能を、前記入力インタフェースからの入力情報に従い、前記入力命令及び前記出力命令の組合せ毎に一以上の機能に分割する機能分割手段と、
    前記機能分割手段による分割後の機能である細分化機能の一群に関して、出力命令が同一の細分化機能群毎に、当該細分化機能群の内、前記中間モジュールの構成部品であるモジュール構成部品を共通化する細分化機能のグループを表す情報を、前記入力インタフェースを通じて取得する共通化情報取得手段と、
    を備え、
    前記情報提供手段は、前記共通化情報取得手段の取得情報に基づき、前記グループ毎に、このグループに属する各細分化機能に対応する入力命令の組合せであって、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せについての一通りの各パターンを表す情報を、前記画像情報として出力すること
    を特徴とする請求項6記載の支援装置。
  9. 前記グループ毎に、このグループに属する細分化機能共通の前記モジュール構成部品である複合部品を取得する複合部品取得手段と、
    前記グループのいずれにも属さない前記細分化機能の夫々に関して、前記細分化機能毎に、この細分化機能を実現するための前記モジュール構成部品である単独部品を取得する単独部品取得手段と、
    前記入力命令毎に、この入力命令を受け付けて当該入力命令に対応する前記細分化機能群の動作を制御する管理機能、を実現するための前記モジュール構成部品である管理部品を取得する管理部品取得手段と、
    前記入力インタフェースを通じて、生成対象の前記中間モジュールに対する前記各選択入力命令の入力有無を表す情報を取得する入力有無情報取得手段と、
    前記入力有無情報取得手段の取得情報に基づいて、前記複合部品取得手段及び前記単独部品取得手段及び前記管理部品取得手段が取得した部品群の中から、生成対象の前記中間モジュールの構成要素とする部品群を抽出する抽出手段と、
    を備え、
    前記複合部品取得手段は、前記グループの夫々について、前記各選択入力命令の入力有無に応じて場合分けされる前記中間モジュールへ入力される前記入力命令の組合せ毎に、この組合せで入力される各入力命令に対応する前記グループ内の細分化機能が複合化された前記複合部品を取得し、
    前記抽出手段は、前記入力有無情報取得手段の取得情報に基づいて、前記グループ毎に、前記生成対象の中間モジュールに入力される前記入力命令の組合せに対応した前記複合部品を、前記組合せ毎の前記複合部品の一群から抽出すると共に、前記中間モジュールに入力される各入力命令に対応した前記単独部品及び前記管理部品を抽出すること
    を特徴とする請求項8記載の支援装置。
  10. 電子機器に実装されるモジュール群の一つであって、
    上位モジュールから入力される命令である入力命令毎に、この入力命令に対応した下位モジュールに対する命令を生成し、この命令を出力命令として前記下位モジュールに向けて出力する処理を実行するための中間モジュール
    に関し、ユーザによる前記中間モジュールの生成を支援するための支援装置のコンピュータに、
    前記中間モジュールに対して入力される入力命令群、及び、前記中間モジュールから下位モジュールに向けて出力される出力命令群を表す情報を、ユーザが操作可能な入力インタフェースを通じて取得する命令情報取得手段と、
    前記命令情報取得手段の取得情報が表す前記入力命令群の内、上位モジュールの種類によっては前記中間モジュールに対して入力されない種類の入力命令である選択入力命令を表す情報を、前記入力インタフェースを通じて取得する選択入力情報取得手段と、
    前記選択入力情報取得手段の取得情報に基づき、前記選択入力命令の入力有無に応じて場合分けして得られる前記中間モジュールに入力される入力命令の組合せの各パターンを表す情報を、ユーザが認識可能な画像情報として、出力インタフェースを通じて出力する情報提供手段
    としての機能を実現させるためのプログラム。
JP2010066713A 2010-03-23 2010-03-23 中間モジュールの生成方法及び支援装置 Active JP5110111B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010066713A JP5110111B2 (ja) 2010-03-23 2010-03-23 中間モジュールの生成方法及び支援装置
US13/053,341 US8561018B2 (en) 2010-03-23 2011-03-22 Method of generating intermediate module between higher-level module and lower level module
DE102011005976A DE102011005976A1 (de) 2010-03-23 2011-03-23 Verfahren zum Erzeugen eines Zwischenmoduls zwischen einem übergeordneten Modul und einem untergeordneten Modul

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010066713A JP5110111B2 (ja) 2010-03-23 2010-03-23 中間モジュールの生成方法及び支援装置

Publications (2)

Publication Number Publication Date
JP2011198278A true JP2011198278A (ja) 2011-10-06
JP5110111B2 JP5110111B2 (ja) 2012-12-26

Family

ID=44657815

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010066713A Active JP5110111B2 (ja) 2010-03-23 2010-03-23 中間モジュールの生成方法及び支援装置

Country Status (3)

Country Link
US (1) US8561018B2 (ja)
JP (1) JP5110111B2 (ja)
DE (1) DE102011005976A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108942A (ko) * 2019-03-11 2020-09-22 주식회사 세연테크 네트워크 모듈구조를 갖는 영상감시장치 및 그 구성방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03144729A (ja) * 1989-10-30 1991-06-20 Matsushita Electric Ind Co Ltd ソフトウェア自動生成装置およびその方法
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2009176076A (ja) * 2008-01-25 2009-08-06 Hitachi Ltd プログラム生成装置,プログラム生成方法,プログラム及びプログラム媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313614A (en) * 1988-12-06 1994-05-17 At&T Bell Laboratories Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems
JP2755154B2 (ja) * 1994-02-23 1998-05-20 日本電気株式会社 プログラム変換処理装置およびプログラム変換処理方法
US6748588B1 (en) * 1999-03-31 2004-06-08 Microsoft Corporation One-pass greedy-pattern-matching finite-state-machine code generation
US7058932B1 (en) * 1999-04-19 2006-06-06 Unisys Corporation System, computer program product, and methods for emulation of computer programs
FR2827974B1 (fr) * 2001-07-26 2005-02-11 Trusted Logic Procede pour la compression d'un code interprete par analyse semantique
US8281297B2 (en) * 2003-02-05 2012-10-02 Arizona Board Of Regents Reconfigurable processing
US7784038B2 (en) * 2005-10-13 2010-08-24 International Business Machines Corporation Pattern matching and transformation of intermediate language expression trees
JP4837594B2 (ja) 2007-02-16 2011-12-14 三菱電機株式会社 車載マルチメディア装置
US8341607B2 (en) * 2008-03-13 2012-12-25 International Business Machines Corporation Condensing pattern matcher generation for intermediate language patterns
US9063765B2 (en) * 2008-04-28 2015-06-23 Kaazing Corporation System and methods for distributed execution of computer executable programs utilizing asymmetric translation
JP4896102B2 (ja) 2008-09-12 2012-03-14 富士フイルム株式会社 レンズ装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03144729A (ja) * 1989-10-30 1991-06-20 Matsushita Electric Ind Co Ltd ソフトウェア自動生成装置およびその方法
JP2007128517A (ja) * 2005-11-01 2007-05-24 Fuji Xerox Co Ltd コンポーネントライブラリを自動設計するためのシステム、方法及びプログラム
JP2009176076A (ja) * 2008-01-25 2009-08-06 Hitachi Ltd プログラム生成装置,プログラム生成方法,プログラム及びプログラム媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200108942A (ko) * 2019-03-11 2020-09-22 주식회사 세연테크 네트워크 모듈구조를 갖는 영상감시장치 및 그 구성방법
KR102199388B1 (ko) 2019-03-11 2021-01-07 주식회사 세연테크 네트워크 모듈구조를 갖는 영상감시장치 및 그 구성방법

Also Published As

Publication number Publication date
DE102011005976A1 (de) 2011-12-08
US20110239187A1 (en) 2011-09-29
US8561018B2 (en) 2013-10-15
JP5110111B2 (ja) 2012-12-26

Similar Documents

Publication Publication Date Title
US20200379692A1 (en) Information processing apparatus, control method, and storage medium
CN110032459A (zh) 消息队列配置方法、装置、计算机设备及存储介质
US8879092B2 (en) Method and apparatus for printing data with predetermined format using bluetooth communication, and method of storing template data
CN108595483B (zh) 数据处理方法及相关装置
WO2023185166A1 (zh) 服务调用方法、装置、设备及存储介质
US11169697B2 (en) Electronic device and method for displaying contextual information of application
JP5110111B2 (ja) 中間モジュールの生成方法及び支援装置
JP5393059B2 (ja) ワークフロー処理装置及びワークフロー処理方法
US20230068272A1 (en) Information processing apparatus, information processing method, and storage medium for classifying object of interest
CN112882685A (zh) 面向对象编程语言的对象的扩展方法及装置
CN116048486A (zh) 配置项数据的处理方法、电子设备及计算机可读存储介质
US20190227956A1 (en) Output processing apparatus and output processing method
CN112138397A (zh) 一种触发器管理方法、装置、计算机设备和存储介质
CN112214102A (zh) 传感器和/或信息系统的辅助装置及传感器和/或信息系统
JP2009223604A (ja) 情報処理装置及び情報処理プログラム
CN111190607A (zh) 任务插件处理方法和装置、任务调度服务器及存储介质
US11308356B2 (en) Information management apparatus, information processing apparatus, and control method thereof
CN110472015B (zh) 一种文本信息提取方法、装置、终端及存储介质
US20240160335A1 (en) Electronic device including flexible display and method for operating same
US20230027222A1 (en) Electronic device for managing inappropriate answer and operating method thereof
KR20240001996A (ko) 컨텐트를 필터링하는 전자 장치 및 이의 제어 방법
KR20230023397A (ko) 전자 장치 및 전자 장치의 동작 방법
EP1940143B1 (en) Information processing device
KR20230091750A (ko) 전자 장치 및 이의 동작 방법
KR20230051018A (ko) 전자 장치 및 전자 장치에서 파일의 부가 정보를 생성하는 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120924

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5110111

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151019

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250