JP5177082B2 - 開発支援装置,プログラム - Google Patents

開発支援装置,プログラム Download PDF

Info

Publication number
JP5177082B2
JP5177082B2 JP2009133235A JP2009133235A JP5177082B2 JP 5177082 B2 JP5177082 B2 JP 5177082B2 JP 2009133235 A JP2009133235 A JP 2009133235A JP 2009133235 A JP2009133235 A JP 2009133235A JP 5177082 B2 JP5177082 B2 JP 5177082B2
Authority
JP
Japan
Prior art keywords
port
component
information
connection
setting
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.)
Expired - Fee Related
Application number
JP2009133235A
Other languages
English (en)
Other versions
JP2010282286A (ja
Inventor
学 飯田
滋郎 加藤
光敏 加藤
信人 山口
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 JP2009133235A priority Critical patent/JP5177082B2/ja
Publication of JP2010282286A publication Critical patent/JP2010282286A/ja
Application granted granted Critical
Publication of JP5177082B2 publication Critical patent/JP5177082B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、コンポーネント指向開発において使用され、互いにポート接続された一群のコンポーネントからなる構成品のソースコードを生成する開発支援装置及びプログラムに関する。
プログラム開発の生産性や品質を向上させる手法として、ソフトウェアプロダクトラインエンジニアリング(以後、SPLEと記載)が知られている。SPLEでは、共通性を有する一連の製品シリーズに関するプログラム開発を、再利用可能な共通のコア資産であるコンポーネントを用いて行う。
このようなコンポーネントの再利用による製品開発は、コンポーネント指向開発と呼ばれており、そのコンポーネント指向開発を効率良く行うためには、コンポーネントを組み合わせて製品構成を決定し、その構成に応じたソースコード(更には、実行コード)を生成する開発支援装置が必要である(例えば、非特許文献1参照)。
なお、コンポーネントには、他のコンポーネントから情報を取得するための使用ポートや、他コンポーネントに情報を提供するための提供ポート(両ポートを総称して単にポートともいう)が設けられており、これらポートを接続することによって連結された一群のコンポーネントによって製品構成が表現される。
また、ソースファイルの自動生成には、コンポーネントの組合せ等によって生じる様々な制約を記述したコンフィグレーションファイルと、そのコンフィグレーションファイルの設定内容を変数にして記述したコード生成用のテンプレートファイルとが用いられる。
加藤、後藤、「組込みシステムのプロダクトラインにおけるMDA」,組込みシステムシンポジウム,2007.10.19
ところで、組み込みシステムの開発においては、メモリの動的割り当ての使用RAM容量などの制限があるため、製品構成の設定を実行時まで遅らせることは難しく、製品開発時に決定する必要がある。そのため、ポート同士を接続するポート接続は、製品構成を決定する段階で静的に設定しなければならず、製品への組込後(正確にはソースコードの生成後)にポートの接続関係を変更することができない。
このため、各コンポーネントは、自コンポーネントに必要な情報を保有する全てのコンポーネントとポート接続しておく必要がある。その結果、必要な情報が複数のコンポーネントに散在している場合、コンポーネント間の接続関係が複雑になるだけでなく、製品を構成するコンポーネントの一部だけを変更しようとしても、複数のコンポーネントがその変更の影響を受けるため、そのような変更に大きな手間を要する、即ち、製品構成の変更容易性が低いという問題があった。
例えば、図11(a)に示すように、第1のコンポーネント(アプリ)C11が第2のコンポーネント(マイコン)C12から供給される周辺クロックによって決定される一定周期毎に、第3のコンポーネント(PWM)C13から、パルス信号を取得する必要がある場合、第1のコンポーネントC11は、第2及び第3のコンポーネントC12,C13のいずれとも接続する必要がある。
ここで、取得する信号の方式をPWM(周辺クロックを使用)からCRPWM(CRクロックを使用)に変更した場合、図11(b)に示すように、第3のコンポーネントC13の置換だけでなく、その置換に連動して、第1のコンポーネントC11と第2のコンポーネントC12とのポート接続も変更する必要が生じてしまうのである。
また、従来装置では、ポート接続に付随してソースコードに反映させるべき何等かの制約(例えば、ポートへの複数接続における接続の優先順位や取得した信号のアクティブレベル等)が存在する場合に、その制約事項を別途管理しておき、製品構成を決定,変更する毎に、その制約事項を手動でコンフィグレーションファイル又はテンプレートファイルに反映させる必要があり、そのような制約事項の管理や反映に手間を要するという問題もあった。
本発明は、上記問題点を解決するために、コンポーネント指向開発において、製品を構成するコンポーネントの変更容易性を向上させることが可能な開発支援装置及びプログラムを提供することを目的とする。
上記目的を達成するためになされた発明である請求項1に記載の開発支援装置では、コンフィグ設定手段が、再利用されるプログラム部品の単位となるコンポーネント、コンポーネントが他のコンポーネントに情報を提供するための提供ポート、コンポーネントが他のコンポーネントから情報を取得するための使用ポートが少なくとも定義されたコンポーネントモデルに基づき、該コンポーネントモデルをインスタンス化したコンポーネントインスタンスを生成すると共に、提供ポートと使用ポートとを接続するポート接続によって連結された一群のコンポーネントインスタンスからなる構成品について、各コンポーネントインスタンスにて個別に設定可能な固有設定、及びポート接続の内容を表す接続設定を少なくとも含んだコンフィグレーションファイルを設定する。
また、ソース生成手段が、コンフィグレーションファイル及び該コンフィグレーションファイルの設定内容を変数にして記述したコード生成用のテンプレートを用いて構成品のソースコードを生成する。
なお、本発明では、使用ポートの接続先に設定された提供ポートを接続先提供ポート、該接続先提供ポートが提供する情報を使用するに当たって必要となる付随的な情報を付随情報として、コンフィグレーションファイルに付随情報を設定する領域が設けられている。
このように構成された本発明の開発支援装置では、ポート接続の対象となるコンポーネントインスタンスのソースコードを生成する際に、そのポート接続に関わる付随情報をソースコードの生成に使用することができる。その結果、接続先のコンポーネントの機能に依存することなく、また、コンフィグレーションファイル以外の管理情報を別途設けることなく、接続先のコンポーネントを介して取得可能な情報や、ポート接続に関する制約事項を、ソースコードに反映させることができる。
このように、本発明の開発支援装置によれば、付随情報を利用することによって、コンポーネント間の結合度や依存性を低下させることができるため、製品構成を変更する際の変更容易性を向上させることができる。
次に、請求項2に記載の開発支援装置では、コンフィグ設定手段によってポート接続が設定されると、そのポート接続の対象である使用ポートを所有するコンポーネントインスタンスを自インスタンス、そのポート接続の対象である提供ポートを所有するコンポーネントインスタンスを他インスタンスとして、自動設定手段が、他インスタンスが有する情報を、他インスタンスが所有するポートによって提供される情報の少なくとも一部を、自インスタンスが所有する提供ポートの付随情報として自動設定する。
このように構成された本発明の開発支援装置によれば、付随情報を手動で設定する必要がないため、ポート接続に付随して必要となる作業の手間を軽減することができる。
なお、請求項3に記載のように、自動設定手段を使用するか否かの設定がコンポーネントモデルで定義されていてもよい。
この場合、自動設定手段を使用するか否かを、コンポーネントモデル毎にユーザが任意に決めることができるため、付随情報の設定作業に柔軟性を持たせることができる。
また、請求項4に記載のように、使用ポートと提供ポートとは、それぞれに付与されたポートの型が一致する場合に接続可能である場合、付随情報は、ポートの型を表すインターフェースに対応付けて設定されていてもよい。このような設定は、付随情報がインターフェースに特有の情報である場合に好適である。
また、請求項5に記載のように、付随情報は、接続設定に対応付けて設定されていてもよい。このような設定は、付随情報が、個々のポート接続毎に異なる設定が必要な情報である場合に好適である。
なお、請求項6に記載のように、ソース生成手段は、付随情報をテンプレートファイルのパラメータとして用いてもよい。
また、請求項7に記載のように、付随情報が、提供ポートの優先度であり、また、ソース生成手段は、コンフィグレーションファイル内での記述順序に従って、対応するソースコードを生成することを前提として、コンフィグ設定手段により、使用ポートに対して複数の提供ポートを接続するポート接続が設定された場合に、自動変更手段が、付随情報に従って、コンフィグレーションファイル内での記述順序を自動的に並べ替えるように構成されていてもよい。
この場合、使用ポートに接続される複数の提供ポートの優先度を、簡単にソースコードに反映させることができる。
また、請求項8に記載のように、請求項1乃至請求項7のいずれかに記載の開発支援装置を、該装置を構成する各手段としてコンピュータを機能させるためのプログラムによって実現してもよい。
この場合、プログラムは、所定の記憶媒体に記憶された状態で提供されるものであってもよいし、通信ネットワークを介してダウンロードすることによって提供されるものであってもよい。
コンポーネント指向開発において実施する作業の概要を示す説明図。 テンプレートの内容を例示するリスト。 生成されるプロパティコードを例示するリスト。 開発支援装置の全体構成を示すブロック図。 コンポーネントモデルエディタの編集画面を例示する説明図。 構成モデルエディタの編集画面を例示する説明図。 ポート変数設定ツールの内容を示すフローチャート。 ポート変数の設定、使用例を示す説明図 優先度反映ツールの内容を示すフローチャート。 接続情報の設定、使用例を示す説明図。 従来装置の問題点を示す説明図。
以下に本発明の実施形態を図面と共に説明する。
[コンポーネント指向開発の概要]
まず、本発明の前提となるコンポーネント指向開発において実施される作業の概要を、図1に示す説明図に沿って説明する。
図1に示すように、コンポーネント指向開発における作業は、大きく分けて、再利用可能な共通のコア資産を開発するコア資産開発工程100と、コア資産開発工程100にて開発されたコア資産150を用いて製品のプログラム開発を行う製品開発工程200とからなる。
<コア資産開発工程>
コア資産開発工程100では、制御仕様書130に基づいてユースケースやクラス図等のUML設計モデル140を作成する要求分析・設計工程110と、そのUML設計モデル140に基づきコア資産150を生成する実装工程120とを実施する。
なお、コア資産150は、一連の製品シリーズにおいて再利用可能なプログラム部品をモデル化したコンポーネントモデル151と、その製品シリーズにおいて利用されるライブラリ関数を定義したライブラリソースコード152と、コンポーネントモデル151に対応したプログラム部品のプロパティソースコード(後述する)を生成するためのテンプレートファイル153とからなる。
<<コンポーネントモデル>>
コンポーネントモデル151は、製品開発に必要なリソースを定義したものであり、各リソースは、製品開発工程で必要となる各種情報を設定するためのプロパティを有する。なお、リソースの具体的なものとしては、再利用可能なプログラム部品であるコンポーネント、コンポーネント間の接続に用いるポート、ポート間でやり取りする情報(具体的には、プロパティソースコードの生成に必要となる情報)の種類を規定するインターフェース等がある。
このうち、ポートは、他コンポーネントから情報を取得するための使用ポートと、他コンポーネントに情報を提供するための提供ポートとからなる。
また、各ポートは、ポートの型としてインターフェースを有する。そして、提供ポートと使用ポートとは、ポートの型が一致する場合に限り接続可能となるように規定されている。
また、ポートを介した情報のやり取りは、具体的には、提供ポート側のコンポーネント
で定義された関数シンボル情報を、使用ポート側のコンポーネントが取得して、そのコンポーネントに対応するプログラムに関数シンボルを記述することにより実現される。
<<テンプレートファイル>>
テンプレートファイル153は、プロパティソースコードの生成に使用されるテンプレート群であり、コンポーネントモデル151において、コンポーネント毎に個別のテンプレートが関連付けられている。
そして、テンプレートは、プロパティソースコードの一部としてそのまま用いられる記述であるコード記述と、コンポーネントモデル151や後述するコンフィグレーションファイル260の設定内容を変数として、その設定内容に応じたコードが生成されるようにコード生成を制御するための記述である制御記述とからなる。
なお、本実施形態では、コード記述にはC言語、制御記述にはJAVA(登録商標)言語が用いられている。また、制御記述は、ソースコードの生成を制御(例えば、コード記述の選択、繰り返し等)するための記述と、ソースコード中に数値や文字列を挿入するための記述とからなる。
図2は、テンプレート300の一例であり、図中“<%”,“%>”で挟まれている部分が制御記述、他の部分がコード記述である。
<製品開発工程>
製品開発工程200では、まず、製品仕様書240に基づき、コア資産150であるコンポーネントモデル151から、製品の構成に必要なコンポーネントを実体化したコンポーネントインスタンス(以下、単に「インスタンス」という)と、インスタンス毎にプロパティソースコードの生成に必要な情報群を設定するためのプロパティによって構成されたコンフィグレーションファイル260を生成する製品構成設定工程210を実施する。但し、製品構成設定工程210は、既存のコンフィグレーションファイル(ベースコンフィグレーションファイル)250に基づいて実施してもよい。
次に、製品構成設定工程210で生成されたコンフィグレーションファイル260、及びコア資産150であるコンポーネントモデル151,テンプレートファイル153に基づいて、プロパティソースコード270を生成するプロパティファイル生成工程220を実施する。
最後に、プロパティファイル生成工程220で生成されたプロパティソースコード270と、コア資産150であるコンポーネントモデル151,ライブラリソースコード152に基づいて、対象製品に実装する形式で表された実行ファイル280を生成するビルド工程230を実施する。
なお、コンフィグレーションファイル260を構成する各インスタンスのプロパティでは、インスタンスの名称,ポートの接続先,ポートの型等が設定される。
プロパティファイル生成工程220では、具体的には、各インスタンスのプロパティ(コンフィグレーションファイル260)、及び該インスタンスの生成元となったコンポーネントのプロパティ(コンポーネントモデル151)の設定内容に従って、テンプレートファイル153の制御記述を解釈してソースコードを生成する。
但し、ソースコードは、インスタンスの生成元であるコンポーネントモデル151に対応付けられたテンプレートを用いて、インスタンス毎に生成される。
ここで図3は、図2に示したテンプレート300を用いて生成されるプロパティソースコード350の一例である。
[装置構成]
次に、本実施形態の開発支援装置10について説明する。
図4は、開発支援装置10の構成を表すブロック図である。なお、開発支援装置10は、コア資産開発工程100における各工程110,120、及び製品開発工程200における各工程210,220,230の作業を支援する装置である。
図4に示すように、開発支援装置10は、種々の情報を記憶するためのHDD11と、マウスやキーボード等により構成され、開発者からの各種入力を受け付ける入力部12と、CPU、ROM、RAM、I/O等から構成され、当該装置10の各部位を統括的に制御する制御部13と、液晶ディスプレイ等を備え、開発者に対して視覚的に情報を伝達する表示部14とを備えている。
HDD11には、コア資産開発工程100によって既に生成されたコア資産150が記憶されていると共に、コア資産開発工程100によって新たに生成されるコア資産150が記憶される。
また、制御部13を構成するROMには、各工程110,120,210,220,230の実施を支援するための各種プログラム(以下では「開発支援ツール」ともいう)が記憶されている。
なお、このような開発支援装置10は、コンポーネント指向開発のために製造された専用の装置であってもよいし、例えば、周知のパーソナルコンピュータに、上述の開発支援ツールをインストールすることで実現されるものであってもよい。その場合、上述のROMに記憶されている開発支援ツールは、上述のHDD11やRAM、又はパーソナルコンピュータが読取可能な各種記憶媒体(図示せず)等に記憶されることになる。
以下、本発明に関わるコンポーネントモデル151、コンフィグレーションファイル260、製品構成設定工程210について詳述する。
[コンポーネントモデルの詳細]
コンポーネントモデル151は、コンポーネントのプロパティとして、自身の名称、プロパティファイル生成工程220で使用するテンプレート(テンプレートファイル153)、生成されたプロパティソースコード270に付与するファイル名、所有するポート、製品構成設定工程210において使用する外部ツール等の情報を有する。
また、コンポーネントモデル151は、ポートのプロパティとして、自身の名称、ポートの型、ポート接続の多重度、提供ポートが提供する情報(変数名,関数,変数や関数を使用するためのインクルードファイル等)、デフォルトの接続先(コネクタ仕様)等の情報を有する。特に、本実施形態では、ポート接続に付随して、接続先の他コンポーネントのプロパティソースコードの生成に必要となる接続情報の名称及びその型が、ポートのプロパティに含まれている。
更に、コンポーネントモデル151は、インターフェースのプロパティとして、自身の名称等の情報を有する。特に、本実施形態では、使用ポートの接続先のコンポーネントから取得して提供ポートの接続先のコンポーネントに提供する情報等、接続情報以外の情報の伝達に使用可能なポート変数の名称及びその型が、インターフェースのプロパティに含まれている。
なお、コンポーネントモデル151におけるリソースのプロパティでは、コンポーネントを実体化したインスタンスにおいて変更可能な情報については、未設定であってもよいし、デフォルト値が設定されていてもよい。
ところで、開発支援装置10では、コンポーネントモデル151を、開発支援ツールの一つであるコンポーネントモデルエディタ(以下「CMエディタ」という)を起動することで編集できるように構成されている。但し、CMエディタは、通常、実装工程120で使用される。
ここで図5は、CMエディタの編集画面の表示例である。
図5に示すように、CMエディタの編集画面は、コンポーネントモデルを構成するリソース(コンポーネント,ポート,インターフェース等)の一覧をツリー状に表示するリソース表示ウィンドウ(図5(a)参照)と、リソース表示ウィンドウ上で選択されたリソースに対応するプロパティの内容を表示し、その内容を編集する操作を受け付けるモデルプロパティ(MP)設定ウィンドウ(図5(b)参照)とからなる。
なお、リソース表示ウィンドウではプロパティの設定内容の一部(リソースや変数の名称等)も表示されるように構成されている。例えば、図5(a)において、点線で囲んだ部分の記述は、「TheSK Robo」型の「コンポーネント」が所有する「runnable」型の「使用ポート」が「変数値仕様」型の「接続情報(設定値:5)」を有することを表している。また、図5(c)の記述は、「TheTouchSensor」型の「コンポーネント」が所有する「runnable」型の「提供ポート」の接続先が、「TheSK Robo」型の「コンポーネント」が所有する「runnable」型の「使用ポート」であり、「変数値仕様」型の「接続情報(設定値:5)」を有することを表している。
また、コンポーネントを実体化した時に、そのインスタンスにて外部ツール(外部プログラム)を使用する場合には、図5(b)中の「外部ツール」の欄に、外部ツールの格納場所,ファイル名を設定する。
[コンフィグレーションファイルの詳細]
コンフィグレーションファイル260は、製品仕様書240に従って選択されたコンポーネントの構成や、そのコンポーネントを実体化したインスタンスのプロパティの設定内容を示すファイルである。
なお、開発支援装置10では、コンフィグレーションファイル260を、開発支援ツールの一つである構成モデルエディタ(以下「SMエディタ」という)を起動することで編集できるように構成されている。但し、SMエディタは、通常、製品構成設定工程210で使用される。
ここで、図6は、SMエディタの編集画面の表示例である。
SMエディタの編集画面は、図6(a)に示すように、コンポーネントモデル151で定義されたコンポーネントの一覧を所定のカテゴリー毎に表示するコンポーネント表示ウィンドウと、コンポーネント表示ウィンドウ上で選択されることによってインスタンスが生成されたコンポーネントをアイコンで表示するインスタンス表示ウィンドウと、インスタンス表示ウィンドウ上で選択されたインスタンスに対応するプロパティの設定内容を表示し、その内容を編集する操作を受け付けるインスタンスプロパティ(IP)設定ウィンドウとからなる。
なお、IP設定ウィンドウには、コンポーネントモデルで定義されたプロパティが持つ情報のうち、インスタンス毎に変更可能な情報(インスタンスの名称,ポートの接続先,接続情報等)が表示される。
また、使用ポートの接続先については、複数の接続先(提供ポート)が存在する場合があるため、IP設定ウィンドウの使用ポートの欄を選択すると、図6(b)に示すように、接続する提供ポートの追加や記載順序の並べ替え作業を支援するためのポート編集ウィンドウが表示されるように構成されている。
また、このポート編集ウィンドウでは、接続情報の一つである提供ポートの優先度(図中「接続されているポート」を表示する枠内のポート名の最後に括弧内に表示された数値)の設定,変更もできるように構成されている。
[製品構成設定工程]
次に、製品構成設定工程210について説明する。
製品構成設定工程210は、開発支援装置10にて、SMエディタを起動し、コンフィグレーションファイル260を、インスタンス毎に手動で設定する。
但し、インスタンスに対応するコンポーネントのプロパティ(コンポーネントモデル151)にて、外部ツールが設定されている場合は、その外部ツールを起動することにより、プロパティの一部を、外部ツールを用いて自動的に編集する。
なお、外部ツールは、通常、コンポーネントインスタンスを組み込んだ時、又は、インスタンスの設定内容が変化した時に起動する。
そして、開発支援装置10では、外部ツールとして、自コンポーネントに設けられた使用ポートの接続先となるコンポーネントが有する情報を、自コンポーネントに設けられた提供ポートを介してその接続先となるコンポーネントに提供できるように、ポート変数を自動設定するポート変数設定ツール、及び、提供ポートの優先度を表す接続情報に基づいて、使用ポートの接続先となる提供ポートの記述順を自動的にソートする優先度反映ツールが用意されている。
<ポート変数設定ツール>
ここで、ポート変数設定ツールが実行する処理を、図7に示すフローチャートに沿って説明する。
但し、本ツールは、ポートの型としてポート変数を有するインターフェースが付与された提供ポート(以下「変数付提供ポート」という)、及びポート変数として設定される情報を有するインスタンスに接続される使用ポート(以下「取得対象使用ポート」という)を所有するインスタンスにおいて使用される。
また、取得対象使用ポートの接続先となるインスタンス(コンポーネント)には、ポート変数として使用するために予め用意された変数情報(ポート変数の型と一致する情報)を、プロパティに設定しておく必要がある。
本ツールは、自インスタンスのプロパティにおける使用ポートの接続先がIPエディタによって設定又は変更され、且つ、プロパティに本ツールが設定されている場合に起動する。
本ツールが起動すると、まず、S110では、接続先の設定/変更が行われた使用ポート(以下「対象ポート」という)が取得対象使用ポートであるか否かを判断する。具体的には、ポートの型が予め指定されたものであるか否かで判断すればよい。
S110にて、対象ポートが取得対象使用ポートではないと判断した場合は、そのまま本処理を終了し、対象ポートが取得対象使用ポートであると判断した場合は、S120に移行する。
S120では、対象ポートの接続先となった提供ポートを所有するインスタンスを特定し、S130では、その特定したインスタンスのプロパティから変数情報を取得する。
S140では、S130で取得した変数情報を、変数付提供ポートに付与されたインターフェースのプロパティにポート変数として設定して本処理を終了する。
つまり、図8(a)に示すように、ポートの型がインターフェースAである提供ポートSP2を所有するコンポーネントC2は、変数情報を持つように設定する。
また、ポートの型がインターフェースAである使用ポートUP1、及びポートの型がインターフェースBである提供ポートSP1を所有するコンポーネントC1に、ポート変数設定ツールを持たせると共に、インターフェースBが変数情報と同じ型のポート変数を持つように設定する。
この場合、コンポーネントC1のインスタンスの使用ポートUP1の設定変更をトリガにしてポート変数設定ツールが起動し、使用ポートUP1の接続先である提供ポートSP2を所有するコンポーネントC2のインスタンスが特定され、そのプロパティから変数情報を取得して、インターフェースBのポート変数に変数情報が格納される。これにより、提供ポートSP1はポート変数(=変数情報)を持ち、提供ポートSP1の接続先に対してポート変数(=変数情報)を提供することが可能となる。
例えば、図8(b)に示すように、第3のコンポーネント(アプリ)C3が第2のコンポーネント(マイコン)C2から供給される周辺クロックによって決定される一定周期毎に、第1のコンポーネント(PWM)C1から、パルス信号を取得する必要がある場合、第2のコンポーネントの周辺クロックを変数情報とし、第1のコンポーネントC1は、使用ポートUP1の接続先である第2のコンポーネントC2から取得した変数情報(周辺クロック)を、提供ポートSP1の型となるインターフェースのポート変数に設定する。
ここで、第3のコンポーネントC3が取得する信号の方式をPWM(周辺クロックを使用)からCRPWM(CRクロックを使用)に変更する場合、図8(c)に示すように、第1のコンポーネントC1をPWMからCRPWMに置換し、第2のコンポーネントC2が提供する変数情報を周辺クロックからCRクロックに書き換えるだけで対応することができる。
<優先度反映ツール>
次に、優先度反映ツールが実行する処理を、図9に示すフローチャートに沿って説明する。
但し、本ツールは、複数の提供ポートが接続可能であり、かつ接続順の優先度を表す接続情報を定義している使用ポート(優先度付多接続使用ポート)を所有するインスタンスにおいて使用される。
また、多接続使用ポートの接続先となる提供ポートには、提供ポートの優先度を表す接続情報を設定しておく必要がある。
本ツールは、自インスタンスのプロパティにおける使用ポートの接続先がIPエディタによって設定又は変更され、且つ、プロパティに本ツールが設定されている場合に起動する。
本ツールが起動すると、まず、S210では、接続先の設定/変更が行われた使用ポート(以下「対象ポート」という)が優先度付多接続使用ポートであるか否かを判断する。具体的には、対象ポートに優先度を表す接続情報の定義があり、かつ対象ポートの接続先として設定されている提供ポートの数が複数であるか否かで判断すればよい。
S210にて、対象ポートが優先度付多接続使用ポートでないと判断した場合は、そのまま本処理を終了し、対象ポートが優先度付多接続使用ポートであると判断した場合は、S220に移行する。
S220では、優先度付多接続使用ポートの接続先として設定されている各提供ポートのから接続情報(即ち優先度)を取得し、S230では、その取得した接続情報が示す優先度が高い順に、プロパティにおける接続先の記述順を変更して、本処理を終了する。
例えば、図10(a)に示すように、コンポーネントC1の使用ポートUP1と、コンポーネントC2,C3の提供ポートSP2,SP3とはポートの型が同じであり、コンポーネントC1は、コンポーネントC2が提供ポートSP2を介して提供する関数funcB、及びコンポーネントC3が提供ポートSP3を介して提供する関数funcCを、使用ポートUP1を介して使用するものとする。そして、各提供ポートSP2,SP3には、それぞれの優先度(ここでは、SP2がHigh,SP3がLow)を表す接続情報が設定されているものとする。
この場合、コンポーネントC1のインスタンスの使用ポートUP1の設定変更をトリガにして優先度反映ツールが起動され、プロパティ上で使用ポートUP1の接続先についての記述が、接続情報に示された優先度順に書き換わる。ここでは、提供ポートSP2の後ろに提供ポートSP3が記述されることになる。
このようなプロパティの記述を含むコンフィグレーションファイル260を用いてプロパティソースコードを生成するプロパティファイル生成工程220では、コンポーネントC1のインスタンスに対応するソースコードを生成する際に、関数funcB,funcCをプロパティ上での記述順と一致するように生成する。その結果、ソースコード上では、関数funcB,funcCが、対応する提供ポートの接続情報に示された優先度順に並ぶこと、即ち、優先度順に実行されることになる。
<接続情報の他の使用例>
なお、図10(b)に示すように、コンポーネントC1,C2の使用ポートUP1,UP2と、コンポーネントC3の提供ポートSP3とは、ポートの型が同じであり、コンポーネントC3は提供ポートSP3を介して、何等かの入力信号の信号レベル(Hi/Lo)を、コンポーネントC1,C2の双方に提供するものとする。また、コンポーネントC1が入力信号のHiレベルをアクティブレベルとして処理を実行し、コンポーネントC2が入力信号のLoレベルをアクティブレベルとして処理を実行するものとする。
この場合、製品構成設定工程210において、使用ポートUP1,提供ポートSP3間のポート接続に対応付けられる接続情報として「Hiレベル」、使用ポートUP2,提供ポートSP3間のポート接続に対応付けられる接続情報として「Loレベル」を設定する。
また、テンプレートファイル153では、この接続情報を変数として使用し、入力信号がHiレベルの時に肯定判断するソースコードと、入力信号がLoレベルの時に肯定判断するソースコードとのうちいずれかを選択する記述とする。
このような接続情報を含むコンフィグレーションファイル260を用いてプロパティソースコードを生成するプロパティファイル生成工程220では、接続情報に設定された所望の信号レベルで動作するソースコードを自動生成することになる。
[効果]
以上説明したように、開発支援装置10では、コンフィグレーションファイル260に、ポート接続に関わるポート変数や接続情報を設定する領域を設け、ポート変数や接続情報を用いて、ポート接続の対象となるインスタンスのソースコードの生成を制御することができるように構成されている。
従って、開発支援装置10によれば、接続先のコンポーネントの機能に依存することなく、また、コンフィグレーションファイル260以外の管理情報を別途設けることなく、接続先のコンポーネントを介して取得可能な情報をポート変数を介して、また、ポート接続に関する制約事項を接続情報を介して、ソースコードに反映させることができる。
その結果、開発支援装置10によれば、ポート変数や接続情報を利用することによって、コンポーネント間の結合度や依存性を低下させることができるため、製品構成を変更する際の変更容易性を向上させることができる。
また、開発支援装置10によれば、SMエディタを介した操作によって、ポート接続の設定に変化が生じると、外部ツール(ポート変数設定ツール,優先度反映ツール)を起動して、ポート変数の自動設定や、接続情報を反映したソースコードが生成されるようにコンフィグレーションファイル260の自動書換を行うようにされている。
従って、開発支援装置10によれば、ポート変数や接続情報を設けたことによって生じる関連作業の手間を軽減することができる。
また、開発支援装置10によれば、外部ツールを使用するか否かを、コンポーネント毎に指定することができるため上述の関連作業に柔軟性を持たせることができる。
なお、開発支援装置10において、ポート変数は、ポートの型を表すインターフェースに対応付けて設定されるため、個々のポート接続ではなく、インターフェースに特有の情報を伝達する場合に好適に使用することができる。
また、開発支援装置10において、接続情報は、個々のポート接続に対応付けて設定されるため、個々のポート接続毎に異なる設定が必要な情報を伝達する場合に好適に使用することができる。
なお、以上では本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において様々な態様にて実施することが可能である。
上記実施形態では、ポート変数としてクロックに関する情報、接続情報として、優先度又は信号のアクティブレベルを設定する場合について説明したが、これらに限るものではなく、インターフェース毎に異なる情報(ポート変数の場合)、又はポート接続毎に異なる情報(接続情報の場合)であり、且つソースコードの生成に影響を及ぼす情報であればよい。
[本発明と実施形態との対応]
本実施形態において製品構成設定工程210で使用されるSMエディタがコンフィグ設定手段、プロパティファイル生成工程220の処理を実行するプログラムがソース生成手段、ポート変数及び接続情報が付随情報、ポート変数設定ツールが自動設定手段、優先度反映ツールが自動変更手段に相当する。
10…開発支援装置 11…HDD 12…入力部 13…制御部 14…表示部 100…コア資産開発工程 110…要求分析・設計工程 120…実装工程 130…制御仕様書 140…UML設計モデル 150…コア資産 151…コンポーネントモデル 152…ライブラリソースコード 153…テンプレートファイル 200…製品開発工程 210…製品構成設定工程 220…プロパティファイル生成工程 230…ビルド工程 240…製品仕様書 250…ベースコンフィグレーションファイル 260…コンフィグレーションファイル 270…プロパティソースコード 280…実行ファイル

Claims (8)

  1. 再利用されるプログラム部品の単位となるコンポーネント、前記コンポーネントが他のコンポーネントに情報を提供するための提供ポート、前記コンポーネントが他のコンポーネントから情報を取得するための使用ポートが少なくとも定義されたコンポーネントモデルに基づき、前記コンポーネントをインスタンス化したコンポーネントインスタンスを生成すると共に、前記提供ポートと前記使用ポートとを接続するポート接続によって連結された一群の前記コンポーネントインスタンスからなる構成品について、各コンポーネントインスタンスにて個別に設定可能な固有設定、及び前記ポート接続の内容を表す接続設定を少なくとも含んだコンフィグレーションファイルを設定するコンフィグ設定手段と、
    前記コンフィグレーションファイル及び該コンフィグレーションファイルの設定内容を変数にして記述したコード生成用のテンプレートを用いて前記構成品のソースコードを生成するソース生成手段と、
    を備え、
    前記使用ポートの接続先に設定された提供ポートを接続先提供ポート、該接続先提供ポートが提供する情報を使用するに当たって必要となる付随的な情報を付随情報として、前記コンフィグレーションファイルに前記付随情報を設定する領域を設けたことを特徴とするソースファイル生成装置。
  2. 前記コンフィグ設定手段によって前記ポート接続が設定又は変更されると、該ポート接続の対象である使用ポートを所有するコンポーネントインスタンスを自インスタンス、該ポート接続の対象である提供ポートを所有するコンポーネントインスタンスを他インスタンスとして、前記他インスタンスが有する情報を、前記自インスタンスが所有する提供ポートの前記付随情報として自動設定する自動設定手段を備えることを特徴とする請求項1に記載のソースファイル生成装置。
  3. 前記自動設定手段を使用するか否かの設定が前記コンポーネントモデルで定義されていることを特徴とする請求項2に記載のソースファイル生成装置。
  4. 前記使用ポートと前記提供ポートとは、それぞれに付与されたポートの型が一致する場合に接続可能であり、
    前記付随情報は、前記ポートの型を表すインターフェースに対応付けて設定されることを特徴とする請求項1乃至請求項3のいずれかに記載のソースファイル生成装置。
  5. 前記付随情報は、前記接続設定に対応付けて設定されることを特徴とする請求項1乃至請求項3のいずれかに記載のソースファイル生成装置。
  6. 前記ソース生成手段は、前記付随情報をテンプレートファイルのパラメータとして用いることを特徴とする請求項1乃至請求項5のいずれかに記載のソースファイル生成装置。
  7. 前記付随情報は、前記提供ポートの優先度であり、
    前記コンフィグ設定手段により、前記使用ポートに対して複数の前記提供ポートを接続する設定がなされた場合、前記付随情報に従って、前記コンフィグレーションファイル内での記述順序を自動的に並べ替える自動変更手段を備え、
    前記ソース生成手段は、前記コンフィグレーションファイル内での記述順序に従って、対応するソースコードを生成することを特徴とする請求項5に記載のソースファイル生成装置。
  8. コンピュータを、請求項1乃至請求項7のいずれかに記載のソースファイル生成装置を構成する各手段として機能させるためのプログラム。
JP2009133235A 2009-06-02 2009-06-02 開発支援装置,プログラム Expired - Fee Related JP5177082B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009133235A JP5177082B2 (ja) 2009-06-02 2009-06-02 開発支援装置,プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009133235A JP5177082B2 (ja) 2009-06-02 2009-06-02 開発支援装置,プログラム

Publications (2)

Publication Number Publication Date
JP2010282286A JP2010282286A (ja) 2010-12-16
JP5177082B2 true JP5177082B2 (ja) 2013-04-03

Family

ID=43538983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009133235A Expired - Fee Related JP5177082B2 (ja) 2009-06-02 2009-06-02 開発支援装置,プログラム

Country Status (1)

Country Link
JP (1) JP5177082B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5850775B2 (ja) 2012-03-22 2016-02-03 本田技研工業株式会社 複層塗膜形成方法
JP5791558B2 (ja) * 2012-03-30 2015-10-07 三菱重工業株式会社 フレームワーク、コンピュータシステム及びシステム構築方法
US11226830B2 (en) * 2019-06-10 2022-01-18 Hitachi, Ltd. System for building, managing, deploying and executing reusable analytical solution modules for industry applications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
US5949998A (en) * 1996-07-03 1999-09-07 Sun Microsystems, Inc. Filtering an object interface definition to determine services needed and provided
JP2003241965A (ja) * 2002-02-18 2003-08-29 Toshiba Corp プログラム作成支援方法、プログラム作成支援プログラム及びプログラム作成支援装置
JP2006518509A (ja) * 2003-02-20 2006-08-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 接続登録システム、接続登録方法、コンピュータ可読媒体及びロボット装置

Also Published As

Publication number Publication date
JP2010282286A (ja) 2010-12-16

Similar Documents

Publication Publication Date Title
US5303170A (en) System and method for process modelling and project planning
US7992128B2 (en) Computer software adaptation method and system
RU2004131538A (ru) Способ и система для управления бизнес-процессом предприятия
EP1835397A1 (en) Application framework
US8701079B2 (en) Procedure and development environment for generation of an executable overall control program
JPH09259153A (ja) バッチ実行制御プログラム作成装置及び方法
Campos et al. A more intelligent test case generation approach through task models manipulation
EP2872993A1 (en) Workflow compilation
JP5177082B2 (ja) 開発支援装置,プログラム
JP2006260314A (ja) アプリケーションソフトウェア構成管理装置、アプリケーションソフトウェア構成管理方法、およびプログラム
JP2011186607A (ja) フィールドデバイス、フィールドデバイスの設定方法、フィールドデバイス管理装置及びプログラム
WO2012104959A1 (ja) モーションsfcプログラム部品作成装置
CN110764864A (zh) 一种基于Terraform的可视化资源编排方法
Stollberg et al. Service customization by variability modeling
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
CN109683883B (zh) 一种流程图设计方法及装置
JP2017220142A (ja) プログラミング装置
JP5657183B2 (ja) 第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするための方法および装置、第1のコンピュータ・プログラムと第2のコンピュータ・プログラムとのインターフェースをとるためのコンピュータ・プログラム・コードを生成するための方法および装置、コンピュータ・プログラム、ならびに第1のコンピュータ・プログラムが第2のコンピュータ・プログラムのアプリケーション・ロジックを実行することを可能にするためのソフトウェア・インターフェースを提供するための方法(コンピュータ・プログラム・インターフェース)
JP2006285473A (ja) 製造工程管理システム
JP5540856B2 (ja) ワークフローを設定するための装置および方法
CN114518875A (zh) 一种图形化编程系统及其编程方法
KR20130060523A (ko) 데이터 마이닝 프로세스 자동화 시스템, 방법 및 그에 대한 기록매체
JP7391269B1 (ja) Fa制御プログラム生成支援プログラム、fa制御プログラム生成支援装置、fa制御プログラム生成支援方法
Diwan et al. Applying software product line engineering in building web portals for supercomputing services
KR102436357B1 (ko) 웹 스크래핑용 스크립트 작성 방법 및 이를 이용한 웹 스크래핑 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121128

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: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121224

R151 Written notification of patent or utility model registration

Ref document number: 5177082

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: 20160118

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

LAPS Cancellation because of no payment of annual fees