JP2010282418A - ソースコード自動生成プログラム,ソースコード自動生成装置 - Google Patents

ソースコード自動生成プログラム,ソースコード自動生成装置 Download PDF

Info

Publication number
JP2010282418A
JP2010282418A JP2009135153A JP2009135153A JP2010282418A JP 2010282418 A JP2010282418 A JP 2010282418A JP 2009135153 A JP2009135153 A JP 2009135153A JP 2009135153 A JP2009135153 A JP 2009135153A JP 2010282418 A JP2010282418 A JP 2010282418A
Authority
JP
Japan
Prior art keywords
component
source code
components
unnecessary
port
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
JP2009135153A
Other languages
English (en)
Other versions
JP5177083B2 (ja
Inventor
Nobuhito Yamaguchi
信人 山口
Shigeo Kato
滋郎 加藤
Mitsutoshi Kato
光敏 加藤
Manabu Iida
学 飯田
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 JP2009135153A priority Critical patent/JP5177083B2/ja
Publication of JP2010282418A publication Critical patent/JP2010282418A/ja
Application granted granted Critical
Publication of JP5177083B2 publication Critical patent/JP5177083B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラム容量を低下させることが可能な、コンポーネント指向開発における開発支援ツールである統合ツールを提供する。
【解決手段】
Dインスタンス440が第一のインスタンス構成モデル400に対応するコンフィグレーションファイルから削除されると、統合ツールは、Dインスタンス440の削除により非接続状態となった委譲接続用ポートであるz提供ポートを持つ親コンポーネントであるCインスタンス430を特定する。さらに、z提供ポートを介してCインスタンス430に委譲接続されているEインスタンス450を、不要なサブコンポーネントとして特定する。そして、統合ツールは、第一のインスタンス構成モデル400におけるインスタンスのうち、D,Eインスタンスを除いたA〜Cインスタンスに対応するプロパティソースコードであるInstanceA.c500〜InstanceC.c520を生成する。
【選択図】図7

Description

コンポーネント指向開発における開発支援ツールであるソースコードの自動生成プログラム等に関する。
プログラム開発の生産性や品質を向上させることができる手法として、ソフトウェアプロダクトラインエンジニアリング(以後、SPLEと記載)が知られている。SPLEでは、共通性を有する一連の製品シリーズが定義され、再利用可能な共通のコア資産から個々の製品バリエーションのプログラム開発が行なわれる。SPLEでは、このコア資産がコンポーネントとして表現され、コンポーネントを単位とした再利用開発が行なわれる。尚、このようなコンポーネントを単位とした再利用開発は、コンポーネント指向開発と呼ばれている。引用文献1には、コンポーネント指向開発について記載されている。
このコンポーネントは、一連の製品シリーズにおいて再利用可能なプログラム部品に対応している。各コンポーネントには、特定の形式を持つポートが設けられており、これらのコンポーネントは、対応する形式を持つポートを接続することにより互いに接続される。そして、製品のプログラムを開発する際には、プログラムに実装されるコンポーネントが選択されると共にこれらのコンポーネント同士が接続され、選択されたコンポーネント同士の接続関係等に基づき、製品のプログラムとして用いられるソースコードが自動生成される。
加藤、後藤「組込みシステムのプロダクトラインにおけるMDA」、組込みシステムシンポジウム2007 論文集、P.54−P.63
ところで、SPLEにおける一連の製品シリーズには、高機能の製品から低機能の製品まで様々なバリエーションが存在することが想定されるが、低機能の製品の開発においては、製品コストの低下のためプログラム容量の低下が要求される。
本願発明は、上記課題に鑑みてなされたものであり、コンポーネント指向開発における開発支援ツールであるソースコード自動生成プログラムに関するものである。本願発明は、プログラム容量を低下させることが可能なソースコード自動生成プログラムを提供することを目的とする。
上記課題を解決するためになされた請求項1に記載のソースコード自動生成プログラムは、再利用可能に構成されたプログラム部品に対応しており、ポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されている。尚、ポートとは、コンポーネントにおける情報のやり取り口となるものである。また、このコンポーネントは、ポート同士を接続することにより、互いに接続することができ、ソースコード自動生成プログラムは、所定のプログラムに実装するために選択された複数のコンポーネントと、これらのコンポーネント同士の接続関係とを示すコンフィグレーションデータ、及び、生成用データに基づき、ソースコードを生成する。
また、コンポーネントには、他のコンポーネントをサブコンポーネントとして有する親コンポーネントが存在し、サブコンポーネントと、該サブコンポーネントを有する親コンポーネントとは、これらのコンポーネントが有する専用ポートにより互いに接続可能に構成され、サブコンポーネントは、自身の専用ポートに接続された親コンポーネントの専用ポートが、他のコンポーネントに接続されることにより、他のコンポーネントに接続される。
そして、このようなサブコンポーネントのうち、親コンポーネントの専用ポートを介して他のコンポーネントに接続されていないサブコンポーネントは、不要であると考えることができる。
そこで、ソースコード自動生成プログラムは、コンフィグレーションデータが示す親コンポーネントのうち、専用ポートが他のコンポーネントに接続されていない親コンポーネントを特定し、該親コンポーネントにおける、該専用ポートに接続されている専用ポートを有するサブコンポーネントを、不要サブコンポーネントとして特定する特定ステップと、コンフィグレーションデータと、生成用データとに基づき、該コンフィグレーションデータが示すコンポーネントのうち、少なくとも不要サブコンポーネントを除いたコンポーネントに対応するソースコードを生成する生成ステップを、コンピュータに実行させる。
こうすることにより、ソースコード自動生成プログラムは、不要なサブコンポーネントに対応するソースコードが生成されてしまうことを防ぐことができ、プログラム容量を低下させることができる。
また、他の製品のプログラム開発に用いられたコンフィグレーションデータを流用して所定の製品のプログラム開発が行なわれる場合が想定される。
そこで、請求項2に記載のソースコード自動生成プログラムは、コンフィグレーションデータを取得する取得ステップと、取得ステップにて取得されたコンフィグレーションデータが示すコンポーネントのうち、削除対象となるコンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付ステップと、選択受付ステップにてユーザに選択された削除対象コンポーネントを、取得ステップにて取得されたコンフィグレーションデータから削除する削除対象コンポーネント削除ステップとをさらにコンピュータに実行させる。そして、特定ステップでは、削除対象コンポーネント削除ステップにおいて削除対象コンポーネントが削除されたコンフィグレーションデータについて、不要サブコンポーネントの特定を行う。
また、請求項3に記載のソースコード自動生成プログラムは、特定ステップにて特定された不要サブコンポーネントを、コンフィグレーションデータから削除する不要サブコンポーネント削除ステップをさらに有する。そして、生成ステップにおいて、不要サブコンポーネント削除ステップにて不要サブコンポーネントが削除されたコンフィグレーションデータを用いてソースコードを生成する。
このような構成を有することにより、不要なサブコンポーネントが削除されたコンフィグレーションデータを流用してプログラム開発を行うことができる。
また、コンフィグレーションデータを流用したプログラム開発では、ベースとなるコンフィグレーションデータに対し、追加機能に対応する新たなコンポーネントの追加や、不要となった機能に対応するコンポーネントの削除が行なわれる。ここで、コンポーネントの削除等が行われたコンフィグレーションデータが、その後、さらに他の製品のプログラム開発に流用される場合が考えられ、後のプログラム開発において、先のプログラム開発において不要となった機能が再び必要となる場合が想定される。つまり、コンフィグレーションデータからコンポーネントを削除しないほうが、このコンフィグレーションデータを流用して行なわれるプログラム開発における作業負担を低減させることができると考えられるのである。
ここで、請求項3では、コンフィグレーションデータからサブコンポーネントが削除される。しかし、親コンポーネントはコンフィグレーションデータに残されたままとなっているので、残された親コンポーネントに基づき、どのようなサブコンポーネントが削除されたかということを特定することができる。したがって、コンフィグレーションデータからサブコンポーネントを削除したとしても、削除したサブコンポーネントを容易に復活させることができ、このコンフィグレーションデータを流用して行なわれるプログラム開発における作業負担の増加を抑えることができる。
ところで、請求項1に記載のステップを実行可能なソースコード自動生成装置を構成してもよい。
すなわち、請求項4に記載されているように、ソースコード自動生成装置は、再利用可能に構成されたプログラム部品に対応しており、ポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されていても良い。そして、コンポーネントは、ポート同士を接続することにより、互いに接続することができ、所定のプログラムに実装するために選択された複数のコンポーネントと、これらのコンポーネント同士の接続関係とを示すコンフィグレーションデータ、及び、生成用データに基づき、ソースコードを生成しても良い。
また、コンポーネントには、他のコンポーネントをサブコンポーネントとして有する親コンポーネントが存在し、サブコンポーネントと、該サブコンポーネントを有する親コンポーネントとは、これらのコンポーネントが有する専用ポートにより互いに接続可能に構成され、サブコンポーネントは、自身の専用ポートに接続された親コンポーネントの専用ポートが、他のコンポーネントに接続されることにより、他のコンポーネントに接続されても良い。
そして、ソースコード自動生成装置は、コンフィグレーションデータが示す親コンポーネントのうち、専用ポートが他のコンポーネントに接続されていない親コンポーネントを特定し、該親コンポーネントにおける、該専用ポートに接続されている専用ポートを有するサブコンポーネントを、不要サブコンポーネントとして特定する特定手段と、コンフィグレーションデータと、生成用データとに基づき、該コンフィグレーションデータが示すコンポーネントのうち、少なくとも不要サブコンポーネントを除いたコンポーネントに対応するソースコードを生成する生成手段を備えていても良い。
このような構成を有することにより、ソースコード自動生成装置は、請求項1に記載のソースコード自動生成プログラムにより動作するコンピュータと同様の効果を奏することができる。
ところで、既に述べたように、ポートとは、コンポーネントにおける情報のやり取り口となるものであるが、ポートが適切に接続されていない場合には、コンポーネントは必要な情報のやり取りを行うことができず、与えられた役割を果たすことができない。特に、コンフィグレーションデータを流用してプログラム開発を行う場合には、不要となったコンポーネントを削除することにより、このコンポーネントに接続されているコンポーネントにて必要な情報のやり取りができなくなり、与えられた最低限の役割を果たすことができなくなってしまうことが考えられる。
そこで、請求項5に記載のソースコード自動生成プログラムは、再利用可能に構成されたプログラム部品に対応しており、特定の形式を持つポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されている。そして、コンポーネントは、対応する形式のポート同士を接続することにより、互いに接続することができ、コンポーネントと、これらのコンポーネント同士の接続関係と、生成用データとに基づき、ソースコードを生成する。また、生成用データには、コンポーネントについて、該コンポーネントの存在価値を生じさせることができる、該コンポーネントが有する所定のポートと、他のコンポーネントが有するポートとの接続状態である必要接続状態が定義されている。
このソースコード自動生成プログラムは、所定のプログラムに実装するために選択された複数のコンポーネントと、これらのコンポーネント同士の接続関係と、該接続に係るポートの形式とを示すコンフィグレーションデータを取得する取得ステップと、取得ステップにて取得されたコンフィグレーションデータが示すコンポーネントのうち、削除対象となるコンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付ステップとをコンピュータに実行させる。さらに、このソースコード自動生成プログラムは、生成用データに基づき、コンフィグレーションデータが示すコンポーネントのうち、必要接続状態でないコンポーネントを不要コンポーネントとして特定する特定ステップと、取得ステップにて取得されたコンフィグレーションデータが示すコンポーネントのうち、少なくとも削除対象コンポーネントと不要コンポーネントとを除いたコンポーネントと、これらのコンポーネント同士の接続関係と、生成用データとに基づき、これらのコンポーネントに対応するソースコードを生成する生成ステップと、をコンピュータに実行させる。
こうすることにより、コンフィグレーションデータを流用してプログラム開発を行なう場合において、削除対象となるコンポーネントに接続されているコンポーネントの中から、削除対象のコンポーネントの消滅により必要な情報のやり取りを行なうことができなくなり、与えられた最低限の役割を果たすことができず存在価値がなくなってしまうコンポーネントを不要コンポーネントとして特定することができる。そして、コンフィグレーションデータが示すコンポーネントのうち、不要コンポーネントを除いたコンポーネントに対応するソースコードが生成される。したがって、不要コンポーネントに対応するソースコードが生成されてしまうことを防ぐことができ、プログラム容量を低下させることができる。
また、請求項5に記載のソースコード自動生成プログラムによれば、不要コンポーネントをコンフィグレーションデータに残したままとすることができる。したがって、生成したコンフィグレーションデータを流用して行なわれる後のプログラム開発において、コンポーネントを追加するという作業が発生してしまうことを防ぐことができる。
また、不要コンポーネントに対応するソースコードが生成されないとなると、この不要コンポーネントに接続されているコンポーネントにおいても必要な情報のやり取りができなくなり、与えられた最低限の役割を果たすことができなくなってしまうことが考えられる。
そこで、請求項6に記載のソースコード自動生成プログラムは、特定ステップにおいて不要コンポーネントが特定されると、コンフィグレーションデータが示すコンポーネントのうち、該不要コンポーネントが有するポートと接続されることにより、必要接続状態が形成されるポートを有するコンポーネントを、新たに不要コンポーネントとして特定する不要コンポーネント再特定処理を実行する。
こうすることにより、削除対象となったコンポーネントに接続されている不要コンポーネントに接続されているコンポーネントの中から、不要コンポーネントの消滅により与えられた最低限の役割を果たすことができなくなってしまうコンポーネントを不要コンポーネントとして特定することができる。したがって、プログラム容量をより低減させることができる。
また、請求項7に記載のソースコード自動生成プログラムは、特定ステップにおいて、不要コンポーネント再特定処理にて新たに不要コンポーネントが特定されると、再度、新たに特定された不要コンポーネントについて不要コンポーネント再特定処理を実行する。
こうすることにより、不要コンポーネントが特定されるたびに、新たに特定された不要コンポーネントに接続されているコンポーネントの中から、不要コンポーネントが消滅することにより新たに不要となるコンポーネントを特定することができる。したがって、プログラム容量をより低減させることができる。
また、請求項8に記載されているように、ソースコード自動生成プログラムは、選択受付ステップにてユーザに選択された削除対象コンポーネントを、取得ステップにて取得されたコンフィグレーションデータから削除する削除対象コンポーネント削除ステップを、さらにコンピュータに実行させ、特定ステップにおいて、削除対象コンポーネント削除ステップにて、削除対象コンポーネントが削除されたコンフィグレーションデータについて、不要コンポーネントの特定を行っても良い。
こうすることにより、コンフィグレーションデータを流用してプログラム開発を行なう場合において、不要となった機能に対応するコンポーネントを、ユーザからの指示に応じてコンフィグレーションデータから削除することができる。
また、コンポーネントについての必要接続状態は、次のようにして定義されていても良い。
すなわち、請求項9に記載されているように、生成用データは、いずれかのコンポーネントに関連付けられており、関連付けられているコンポーネントについてテンプレートを有しているテンプレートデータを有しており、テンプレートデータには、関連付けられているコンポーネントについての必要接続状態が定義されていても良い。
こうすることにより、コンポーネントについての必要接続状態の定義を容易に参照することができる。
ところで、請求項5に記載のステップを実行可能なソースコード自動生成装置を構成してもよい。
すなわち、請求項10に記載されているように、ソースコード自動生成装置は、再利用可能に構成されたプログラム部品に対応しており、特定の形式を持つポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されていても良い。そして、コンポーネントは、対応する形式のポート同士を接続することにより、互いに接続することができ、コンポーネントと、これらのコンポーネント同士の接続関係と、生成用データとに基づき、ソースコードを生成しても良い。また、生成用データには、コンポーネントについて、該コンポーネントの存在価値を生じさせることができる、該コンポーネントが有する所定のポートと、他のコンポーネントが有するポートとの接続状態である必要接続状態が定義されていても良い。
そして、ソースコード自動生成装置は、所定のプログラムに実装するために選択された複数のコンポーネントと、これらのコンポーネント同士の接続関係と、該接続に係るポートの形式とを示すコンフィグレーションデータを取得する取得手段と、取得手段により取得されたコンフィグレーションデータが示すコンポーネントのうち、削除対象となるコンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付手段とを備えていても良い。また、ソースコード自動生成装置は、生成用データに基づき、コンフィグレーションデータが示すコンポーネントのうち、必要接続状態でないコンポーネントを不要コンポーネントとして特定する特定手段と、取得手段により取得されたコンフィグレーションデータが示すコンポーネントから、少なくとも削除対象コンポーネントと不要コンポーネントとを除いたコンポーネントと、これらのコンポーネント同士の接続関係と、生成用データとに基づき、これらのコンポーネントに対応するソースコードを生成する生成手段とを備えていても良い。
このような構成を有することにより、ソースコード自動生成装置は、請求項5に記載のソースコード自動生成プログラムにより動作するコンピュータと同様の効果を奏することができる。
PCの構成を示すブロック図である。 コンポーネント指向開発における作業についての説明図である。 テンプレートの一例である。 プロパティソースコードの一例である。 第一のインスタンス構成モデルの説明図である。 インスタンス削除処理についてのフローチャートである。 サブコンポーネントの自動削除についての説明図である。 不要インスタンス特定処理についてのフローチャートである。 第二のインスタンス構成モデルの説明図である。
以下、本発明の実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
[構成の説明]
まず、本実施形態に用いられる周知のパソコン(以後、PCと記載)の構成について、図1のブロック図を用いて説明する。
PC10は、種々の情報を記憶するためのHDD11と、マウスやキーボード等により構成され、開発者からの各種入力を受け付ける入力部12と、CPU、ROM、RAM、I/O等から構成され、PC10の各部位を統括的に制御する制御部13と、液晶ディスプレイ等を備え、開発者に対して視覚的に情報を伝達する表示部14とを有している。尚、PC10には、コンポーネント指向開発に用いられる開発支援ツールである統合ツール(詳細については後述する)がインストールされており、HDD11には、統合ツールのプログラムが記憶されている。
[動作の説明]
(1)コンポーネント指向開発について
既に述べたように、周知技術であるコンポーネント指向開発は、プログラム部品をモデル化したものであるコンポーネントを単位とした再利用開発である。このコンポーネントには、コンポーネント間の情報のやり取り口となるポートを有しており、コンポーネントは、自身が有するポート同士が接続されることにより互いに接続される。このポートは、情報をやり取りする際の規格となる特定の型を有していると共に、提供ポートと使用ポートとに分類され、型が適合する提供ポートを使用ポートとを接続することができる。コンポーネント指向開発では、周知のPCにインストールされた開発支援ツールにより、製品のプログラムとして実装するために選択されたコンポーネントと、コンポーネント同士の接続関係等に基づき、この製品のプログラムとして用いられるソースコードが自動生成される。本実施形態では、この開発支援ツールとして統合ツール(詳細については後述する)が用いられる。
また、コンポーネントには、他のコンポーネントをサブコンポーネントとして一部に有している親コンポーネントが存在し、サブコンポーネントが有する特定のポートは、親コンポーネントが有する特定のポートに委譲接続することができる。この委譲接続が可能なポートを、委譲接続用ポートと記載する。サブコンポーネントは、委譲接続先の親コンポーネントの委譲接続用ポートが、他のコンポーネントが有するポートに接続されることにより、この他のコンポーネントに接続される。尚、委譲接続用ポートもまた提供ポートと使用ポートとに分類され、委譲接続の際には、提供ポート同士、或いは使用ポート同士が接続される。
尚、コンポーネント同士はポートを介して情報のやり取りを行なうが、本実施形態では、この情報のやり取りは、提供ポート側で定義された関数が、使用ポート側のコンポーネントに対応するプログラムからコールされることにより実現される。
また、コンポーネントには、テンプレート変数を設定することができる。本実施形態では、後述する統合ツールは、このテンプレート変数に応じてコンポーネントに対応するプログラム部品において用いられる閾値等を設定する。
(2)コンポーネント指向開発における作業について
次に、コンポーネント指向開発における作業について、図2に記載の説明図を用いて説明する。コンポーネント指向開発は、コア資産開発工程100と製品開発工程200とに分けることができ、製品開発工程200では、コア資産開発工程100にて生成されたコア資産150を用いて製品のプログラム開発が行なわれる。尚、コア資産開発工程100と製品開発工程200とは、統合ツールを用いて行なわれる。
(2−1)コア資産開発工程について
コア資産開発工程100とは、共通性を有する一連の製品シリーズにおいて再利用可能な共通のコア資産150を開発する工程である。コア資産開発工程100では、制御仕様書130に基づき要求分析・設計工程110が実施され、ユースケースやクラス図等のUML設計モデル140が作成される。そして、このUML設計モデル140に基づき実装工程120が実施され、コア資産150が生成される。このコア資産150には、一連の製品シリーズにおいて再利用可能なプログラム部品をモデル化したものであり、自身が有するポート等が定義されているコンポーネントモデル151と、この製品シリーズにおいて利用されるライブラリ関数が定義されているライブラリソースコード152と、いずれかのコンポーネントモデル151に1対1で関連付けられており、関連付けられているコンポーネントモデル151に対応するプログラム部品のプロパティソースコード(詳細については後述する)を生成するためのテンプレートファイル153が生成される。
ここで、テンプレートファイル153について詳しく説明する。テンプレートファイル153には、自身が関連付けられているコンポーネントモデル151に対応するプロパティソースコードを生成するためのテンプレートが定義されており、統合ツールは、テンプレートの記述に基づきプロパティソースコードを生成する。テンプレートは、対応するプログラム部品についてのC言語のソースコードが記述されており、これらの記述がプロパティソースコードの一部としてそのまま用いられる不変部分と、自身が関連付けられているインスタンス(後述する製品開発工程200において製品のプログラムに実装するために開発者に選択され、実体化したコンポーネントモデル151のこと)における他のインスタンスとの接続関係や、この接続に係るポートの型や、テンプレート変数等に応じて変化する可変部分を有している。この可変部分には、JAVA(登録商標)言語により、上記接続関係等に応じてどのようなソースコードが生成されるかが記述されており、統合ツールは、この記述を解釈してプログラム部品についてのソースコードを生成する。尚、図3には、一例としてテンプレート300が記載されており、“<%”,“%>”で挟まれている記述が可変部分に相当し、他の記述が不変部分に相当する。
また、テンプレートファイル153には、自身が関連付けられているコンポーネントモデルに基づくインスタンスについて、このインスタンスの存在価値を生じさせることができる、他のインスタンスが有するポートと当該インスタンスが有するポートとの接続状態である必要接続状態が、JAVA(登録商標)言語にて定義されている。この必要接続状態については、後述する。
(2−2)製品開発工程について
次に、製品開発工程200について、図2の説明図を用いて説明する。製品開発工程200とは、コア資産150を利用して一連の製品シリーズにおける所定の製品のプログラムを作成する工程である。製品開発工程200では、車両仕様書240に基づき、このプログラムに実装するプログラム部品に対応するコンポーネントモデル151を選択してインスタンスとし、各インスタンスのポート同士を接続する製品構成設定工程210という工程が実施される。製品構成設定工程210では、統合ツールにより、選択されたインスタンスと、インスタンス同士の接続関係と、この接続に係るポートの型等を示すコンフィグレーションファイル260が生成される。
また、製品構成設定工程210に続いて、テンプレート変数の設定を受け付け、コンフィグレーションファイル260とテンプレート変数とに基づき、コンフィグレーションファイル260が示すインスタンスに対応するプロパティソースコード270を生成するプロパティファイル生成工程220という工程が実施される。プロパティファイル生成工程220では、統合ツールは、それぞれのインスタンスに対応するテンプレートファイル153に基づきプロパティソースコード270を生成する。具体的には、統合ツールは、テンプレートファイル153におけるテンプレートの可変部分の記述を解釈し、インスタンスに対応するコンポーネントモデル151や、インスタンス同士の接続関係や、この接続に係るポートの形式や、テンプレート変数等に応じて、ソースコードを生成する。そして、生成したソースコードと、テンプレートの不変部分におけるソースコード等により、プロパティソースコード270を生成する。尚、図4には、一例として、図3におけるテンプレート300に対応するインスタンスについてのプロパティソースコード350が記載されている。尚、本実施形態では、C言語によりプロパティソースコードが記述される。
続いて、実行ファイル280を生成するビルド工程230が実施される。ビルド工程230では、統合ツールは、プロパティソースコード270と、インスタンスに対応するコンポーネントモデル151と、ライブラリソースコード152とに基づき、実行ファイル280を生成する。
(2−3)インスタンス構成モデルについて
ところで、コンフィグレーションファイル260は、プログラムに実装するために選択されたインスタンスと、インスタンス同士の接続関係と、この接続に係るポートの型等を示すが、この接続関係等を示すモデルをインスタンス構成モデルと記載する。図5に記載の説明図には、一例として、A〜Eインスタンスについての第一のインスタンス構成モデル400が記載されている。
尚、Aインスタンス410及びBインスタンス420は機能1に、Dインスタンス440は機能2に、Cインスタンス430、及びCインスタンス430のサブコンポーネントとなっているEインスタンス450は機能3に対応している。尚、親コンポーネントとなっているインスタンスを親インスタンス、サブコンポーネントとなっているインスタンスをサブインスタンスとも記載する。
また、Aインスタンス410はV型のv提供ポート,W型のw提供ポートを、Bインスタンス420はW型のw使用ポート,X型のx提供ポートを、Cインスタンス430はX型のx使用ポート,Y型のy使用ポート,Z型のz提供ポートを、Dインスタンス440はV型のv使用ポート,Z型のz使用ポートを、Eインスタンス450は、Y型のy提供ポート,Z型のz提供ポートを、それぞれ有している。尚、Dインスタンス440が有するz提供ポートと、Eインスタンス450が有するz提供ポートとは、委譲接続用ポートとなっている。これらのポートの接続関係は、以下のようになっている。
すなわち、Aインスタンス410におけるv提供ポートはDインスタンス440におけるv使用ポートに、w提供ポートはBインスタンス420におけるw使用ポートに接続されている。また、Bインスタンス420におけるx提供ポートはCインスタンス430におけるx使用ポートに接続される。また、Cインスタンス430におけるy使用ポートは、Cインスタンス430が有するサブインスタンスであるEインスタンス450におけるy提供ポートに接続されている。また、Cインスタンス430におけるz提供ポートとEインスタンス450におけるz提供ポートとは委譲接続されており、Cインスタンス430におけるz提供ポートは、Dインスタンス440におけるz使用ポートに接続されている。
また、統合ツールにより、Aインスタンス410に対応するプロパティソースコードとしてInstanceA.c500が、Bインスタンス420に対応するプロパティソースコードとしてInstanceB.c510が、Cインスタンス430に対応するプロパティソースコードとしてInstanceC.c520が、Dインスタンス440に対応するプロパティソースコードとしてInstanceD.c530が、Eインスタンス450に対応するプロパティソースコードとしてInstanceE.c540が、それぞれ生成される。
(3)コンフィグレーションファイルが流用される場合について
(3−1)インスタンス削除処理について
ところで、図2に記載されているように、ある製品について作成されたコンフィグレーションファイルであるベースコンフィグレーションファイル250に基づき、類似製品についての製品構成設定工程210が実施される場合がある。このような場合には、製品構成設定工程210において、統合ツールを介して、ベースコンフィグレーションファイル250に対し、不要となる機能に対応するインスタンスの削除や、新たに追加する機能に対応するインスタンスの追加等が行われる。ここでは、ベースコンフィグレーションファイル250から不要なインスタンスの削除を行う場合に統合ツールにおいて行なわれるインスタンス削除処理について、図6に記載のフローチャートを用いて説明する。本処理は、製品構成設定工程210において、統合ツールがインストールされたPC10が、ベースコンフィグレーションファイル250から不要なインスタンスを削除する旨の指示を受け付けた際に実行する処理である。
PC10の制御部13は、例えば、HDD11や、図示しないUSB I/Fを介してUSBメモリからベースコンフィグレーションファイル250を読み込むと(S605)、開発者から、入力部12を介して、このベースコンフィグレーションファイル250から削除するインスタンスの選択を受け付ける(S610)。そして、選択されたインスタンスを、ベースコンフィグレーションファイル250から削除する(S615)。
続いて、S620では、制御部13は、ベースコンフィグレーションファイル250が示すインスタンスの中から、委譲接続用ポートが他のインスタンスに接続されていない親インスタンスを特定し、さらに、特定した非接続状態の委譲接続用ポートを介して親インスタンスに委譲接続されているサブインスタンスを不要なサブインスタンスとして特定する。そして、特定した不要なサブインスタンスを、ベースコンフィグレーションファイル250から削除し、本処理を終了する(S625)。
(3−2)インスタンス削除処理の具体例について
ここで、インスタンス削除処理において、統合ツールにより不要なサブインスタンスが削除される処理の具体例について、図7に記載されている説明図を用いて説明する。
ベースコンフィグレーションファイル250が第一のインスタンス構成モデル400に対応しており、S610にて、削除対象としてDインスタンス440が選択され、Dインスタンス440がベースコンフィグレーションファイル250から削除されたと仮定する。このとき、S620では、Dインスタンス440の削除により非接続状態となった委譲接続用ポートであるz提供ポートを持つ親コンポーネントであるCインスタンス430が特定され、さらに、z提供ポートを介してCインスタンス430に委譲接続しているサブコンポーネントであるEインスタンス450が特定される。そして、S625にて、Eインスタンス450が削除される。これにより、この製品構成設定工程210に続いて行なわれるプロパティファイル生成工程220では、統合ツールにより、InstanceA.c500,InstanceB.c510,InstanceC.c520のみが生成される。
(3−3)不要インスタンス特定処理について
また、ベースコンフィグレーションファイル250を用いて製品開発工程200が行なわれる場合には、プロパティファイル生成工程220では、インスタンス削除処理にてインスタンスが削除されたことにより不要となったインスタンスを特定する不要インスタンス特定処理が行なわれる。本処理は、統合ツールがインストールされたPC10が、プロパティファイル生成工程220において開発者からの指示に応じて実行する処理である。
S705では、PC10の制御部13は、ベースコンフィグレーションファイル250が示すインスタンスについて、テンプレートファイル153に基づき、必要接続状態(詳細については後述)となっているかどうかを判定する。そして、必要接続状態となっていないインスタンスを不要インスタンスとして特定し、S710に処理を移行する。
S710では、制御部13は、本ステップの直前に行なわれたS705或いはS720にて不要インスタンスが特定されたかどうかを判定する。そして、不要インスタンスが特定されなかった場合には(S710:No)、制御部13は、S725に処理を移行し、不要インスタンスが特定された場合には(S710:Yes)、S715に処理を移行する。
S715では、制御部13は、ベースコンフィグレーションファイル250が示すインスタンスの中から、本ステップに先立ち行なわれたS705、或いはS720にて新たに特定された不要インスタンスに接続されているインスタンスを判定対象として特定する。そして、判定対象とされたインスタンスについて、このインスタンスに対応するコンポーネントモデル151に関連付けられているテンプレートファイル153に基づき、新たに特定された不要インスタンスが消滅した場合に必要接続状態となるかどうかを判定する。そして、必要接続状態とならないインスタンスを、不要インスタンスとして新たに特定し(S720)、S710に処理を移行する。
S710にて不要インスタンスが特定されなかった場合に移行するS725では、制御部13は、コンフィグレーションファイル260が示すインスタンスから不要インスタンスを除いたインスタンスに対応するプロパティソースコードを生成し、本処理を終了する。
(3−4)不要インスタンス特定処理の具体例について
ここで、不要インスタンスを特定する処理の具体例について、図9に記載されている第二のインスタンス構成モデル800を用いて詳しく説明する。
(3−4−1)第二のインスタンス構成モデルについて
まず、第二のインスタンス構成モデル800について説明する。第二のインスタンス構成モデル800は、conditionA820,conditionB810,invoker830,swEvent840,eventFilter850,app860というインスタンスを示している。これらのインスタンスは、以下のようなポートを有している。
すなわち、conditionA820は、Condition型のcondition提供ポートと、Hook型のhook提供ポートを有している。また、conditionB810は、Condition型のcondition提供ポートを有している。また、invoker830は、Hook型のhook使用ポートを有している。また、swEvent840は、EventListener型のeventListener使用ポートを有している。また、eventFilter850は、EventListener型のeventListener提供ポートと、Condition型のconditions使用ポートと、FilteredListener型のfilteredListener使用ポートとを有している。また、app860は、FilteredListener型のfilteredListener提供ポートを有している。
また、これらのポートは、次のような接続状態を有している。すなわち、conditionA820のhook提供ポートは、invoker830のhook使用ポートと接続されている。また、conditionA820のcondition提供ポートは、eventFilter850のconditions使用ポートと接続されている。また、conditionB810のcondition提供ポートは、eventFilter850のconditions使用ポートと接続されている。また、swEvent840のeventListener使用ポートは、eventFilter850のeventListener提供ポートと接続されている。また、eventFilter850のfilteredListener使用ポートは、app860のfilteredListener提供ポートと接続されている。尚、これらの接続状態は、図9において点線で示されている。
(3−4−2)各インスタンスの振る舞いについて
続いて、第二のインスタンス構成モデル800におけるそれぞれのインスタンスの振る舞いについて、簡単に説明する。尚、互いに接続されている使用ポートと提供ポートとをインターフェースとも記載し、互いに接続されている使用ポートと提供ポートの名称をインターフェースの名称とする。
conditionA820は、Hookインターフェースを介してinvoker830から通知を受けると、一定の期間にわたって条件が成立する。そして、conditionA820は、Conditionインターフェースを介してeventFilter850に、条件成立或いは不成立を通知する。
また、conditionB810に関しても同様に、図示しないインスタンスから通知を受けると、一定の期間にわたって条件が成立する。そして、Conditionインターフェースを介してeventFilter850に、条件成立或いは不成立を通知する。
また、swEvent840は、EventListenerインターフェースを介してeventFilter850に対しイベントの発生を通知する。この通知を受け取ったeventFilter850は、conditionA820またはconditionB810にて条件が成立している場合に限り、FilteredListenerインターフェースを介してapp860に対し、イベントの発生を通知する。
そして、app860は、eventFilter850から受け取ったイベント発生の通知に応じて処理を行う。
(3−4−3)必要接続状態について
続いて、第二のインスタンス構成モデル800におけるインスタンスについて定義されている必要接続状態について説明する。必要接続状態は、インスタンスに対応するテンプレートファイル153に定義されており、コア資産開発工程100において開発者により定義されるものである。既に述べたように、必要接続状態とは、インスタンスの存在価値を生じさせることができる他のインスタンスが有するポートとの接続状態である。より詳しく説明すると、必要接続状態とは、対応するインスタンス、或いはこのインスタンスに接続されているインスタンスが、与えられた最低限の役割を果たすために必要不可欠となる情報のやり取り口となるポート接続がなされている状態であると言うこともできる。尚、第二のインスタンス構成モデル800におけるインスタンスに関しては、conditionA820とeventFilter850について必要接続状態が定義されており、これら以外のインスタンスについては必要接続状態が定義されていない。
まず、conditionA820について、このインスタンスに対応するテンプレートファイル153には、必要接続状態として、「condition提供ポート及びhook提供ポートが接続されていること」が定義されている。なぜならば、HookインターフェースやConditionインターフェースが存在しなければ、eventFilter850に条件成立或いは不成立を通知することができず、conditionA820の存在価値が無くなるためである。
次に、eventFilter850について、このインスタンスに対応するテンプレートファイル153には、必要接続状態として、「eventListener提供ポート及びfilteredListener使用ポートが接続されていること」が定義されている。EventListenerインターフェースやFilteredListenerインターフェースが存在しなければ、app860に対しイベントの発生を通知することができず、eventFilter850の存在価値が無くなるためである。
(3−4−4)具体例について
次に、ベースコンフィグレーションファイル250が第二のインスタンス構成モデル800に対応している場合に行われる不要インスタンス特定処理について説明する。
不要インスタンス特定処理に先立ち行なわれたインスタンス削除処理にて、invoker830がベースコンフィグレーションファイル250から削除されたと仮定する。このとき、conditionA820のhook提供ポートは非接続状態となり、conditionA820は、S705にて不要インスタンスとして特定される。
そして、S715,S720では、conditionA820に接続されているeventFilter850について、必要接続状態となっているかどうか判定が行われる。ここで、eventFilter850は、conditionA820が消滅したとしても必要接続状態となるので、S720では新たな不要コンポーネントは特定されず、処理が終了する。
また、インスタンス削除処理にて、app860がベースコンフィグレーションファイル250から削除されたと仮定する。このとき、eventFilter850のfilteredListener使用ポートは非接続状態となり、eventFilter850は、S705にて不要インスタンスとして特定される。
そして、S715,S720では、eventFilter850に接続されているconditionA820,conditionB810,swEvent840について判定が行われる。ここで、eventFilter850が消滅することでcondition提供ポートは非接続状態となるため、conditionA820は必要接続状態でなくなり、conditionA820は不要インスタンスとして特定される。尚、conditionB810,swEvent840については必要接続状態が定義されておらず、不要インスタンスとして特定されることはない。
そして、conditionA820が不要インスタンスとして特定されることにより再度行なわれるS715,S720では、conditionA820に接続されているinvoker830について判定が行われる。しかし、invoker830についての必要接続状態は定義されておらず、不要インスタンスはと特定されない。
また、インスタンス削除処理にて、swEvent840がベースコンフィグレーションファイル250から削除されたと仮定する。このとき、app860が選択された場合と同様にして、eventFilter850,conditionA820が不要インスタンスとして特定される。
[効果]
本実施形態の統合ツールによれば、ベースコンフィグレーションファイルから削除するインスタンスの選択を受け付けた後、委譲接続用ポートが非接続状態となっている親インスタンスが特定され、さらに、非接続状態となっている委譲接続用ポートに委譲接続されているサブインスタンスが特定される(S620)。そして、特定されたサブインスタンスが、ベースコンフィグレーションファイルから削除される。したがって、不要なサブインスタンスに対応するプロパティソースコードが生成されてしまうことを防ぐことができ、プログラム容量を低下させることができる。
また、コンフィグレーションファイルを流用してプログラム開発を行う場合には、先のプログラム開発において不要となった機能が再び必要となる場合が想定される。したがって、インスタンスをコンフィグレーションファイルから削除しないほうが、このコンフィグレーションファイルを流用して行なわれる後のプログラム開発における作業負担を低減させることができると考えられる。
ここで、本実施形態の統合ツールによれば、サブインスタンスがコンフィグレーションファイルから削除されても、その親インスタンスはコンフィグレーションファイルに残されたままとなる。したがって、統合ツールは、コンフィグレーションファイルに残された親インスタンスに基づき、どのようなサブインスタンスが削除されたかということを特定することができる。このため、コンフィグレーションファイルからサブインスタンスを削除したとしても、統合ツールは削除したサブインスタンスを自動的に復活させることもでき、このコンフィグレーションファイルを流用して行なわれるプログラム開発における作業負担の増加を抑えることができる。
また、本実施形態の統合ツールによれば、開発者の指示によりインスタンスが削除された後のコンフィグレーションファイルにおけるインスタンスのうち、必要接続状態となっていないインスタンスが不要インスタンスとして特定される(S705)。そして、S705で不要インスタンスが特定されると、特定された不要インスタンスが消滅した場合に必要接続状態とならないインスタンスが新たに不要インスタンスとして特定される(S720)。さらに、S720で不要インスタンスが特定されると、再度、同様にして不要インスタンスの特定が行われ(S720)、不要インスタンスが特定されなくなるまで、S720が繰り返し行われる。そして、コンフィグレーションファイルにおけるインスタンスのうち、不要インスタンスを除いたインスタンスに対応するプロパティソースコードが生成されるのである。したがって、不要なインスタンスに対応するプロパティソースコードが生成されてしまうことを防ぐことができ、プログラム容量を低下させることができる。
また、不要インスタンスは、コンフィグレーションファイルに残されたままとなる。したがって、生成したコンフィグレーションファイルを流用して行なわれる後のプログラム開発においてインスタンスを追加するという作業が発生してしまうことを防ぐことができる。
[他の実施形態]
(1)本実施形態では、インスタンス削除処理において、委譲接続先のポートが接続されていないサブインスタンスをコンフィグレーションファイルから削除している。しかし、統合ツールは、このサブインスタンスを削除することなく、単に、このサブインスタンスを不要なものとして認識しておき、プロパティファイル生成工程220にて、このサブインスタンスに対応するプロパティソースコードの生成を抑制しても良い。このような構成を有する場合であっても、同様の効果を得ることができる。
(2)本実施形態では、テンプレートファイルにおけるテンプレートの不変部分の記述や必要接続状態の定義の記述にはJAVA(登録商標)言語が用いられているが、言うまでも無いことではあるが、他のプログラム言語が用いられても良い。また、言うまでも無いことではあるが、本実施形態では、プロパティソースコードの記述にはC言語が用いられているが、他のプログラム言語が用いられても良い。このような構成を有する場合であっても、同様の効果を得ることができる。
(3)本実施形態では、conditionA820について、必要接続状態として、「condition提供ポート及びhook提供ポートが接続されていること」が定義されている。しかしながら、a提供ポート,b提供ポート,c提供ポート,d提供ポートを有するXインスタンスが存在したと仮定した場合に、Xインスタンスの必要接続状態として、例えば、「a〜c提供ポートのうちのいずれか一つが接続されていること」が定義されていても良い。また、必要接続状態として、例えば、「a提供ポート及びb提供ポートが共に接続されているか、または、b提供ポート及びc提供ポートが共に接続されていること」が定義されていても良い。このような定義がなされている場合であっても、同様の効果を得ることができる。
[特許請求の範囲との対応]
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
統合ツールがソースコード自動生成プログラムに、コンポーネントモデル151,インスタンスがコンポーネントに、コア資産150が生成用データに、コンフィグレーションファイルがコンフィグレーションデータに、委譲接続用ポートが専用ポートに、テンプレートファイル153がテンプレートデータにそれぞれ相当する。
また、PC10がソースコード自動生成装置に相当し、PC10が備える制御部13が、特定手段,生成手段,取得手段にそれぞれ相当し、入力部12が選択受付手段に相当する。
また、インスタンス削除処理におけるS605が取得ステップに、S610が選択受付ステップに、S615が削除対象コンポーネント削除ステップに、S620が請求項1における特定ステップに、S625が不要サブコンポーネント削除ステップにそれぞれ相当する。
また、不要コンポーネント特定処理におけるS705,S715,S720が請求項5における特定ステップに、S715,S720が不要コンポーネント再特定処理に、S725が生成ステップにそれぞれ相当する。
10…PC、11…HDD、12…入力部、13…制御部、14…表示部、100…コア資産開発工程、110…要求分析・設計工程、120…実装工程、130…制御仕様書、140…UML設計モデル、150…コア資産、151…コンポーネントモデル、152…ライブラリソースコード、153…テンプレートファイル、200…製品開発工程、210…製品構成設定工程、220…プロパティファイル生成工程、230…ビルド工程、240…車両仕様書、250…ベースコンフィグレーションファイル、260…コンフィグレーションファイル、270…プロパティソースコード、280…実行ファイル、300…テンプレート、350…プロパティソースコード、400…第一のインスタンス構成モデル、410…Aインスタンス、420…Bインスタンス、430…Cインスタンス、440…Dインスタンス、450…Eインスタンス、500…InstanceA.c、510…InstanceB.c、520…InstanceC.c、530…InstanceD.c、540…InstanceE.c、800…第二のインスタンス構成モデル、810…conditionB、820…conditionA、830…invoker、840…swEvent、850…eventFilter、860…app。

Claims (10)

  1. 再利用可能に構成されたプログラム部品に対応しており、ポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されており、
    前記コンポーネントは、前記ポート同士を接続することにより、互いに接続することができ、
    所定のプログラムに実装するために選択された複数の前記コンポーネントと、これらのコンポーネント同士の接続関係とを示すコンフィグレーションデータ、及び、前記生成用データに基づき、ソースコードを生成するソースコード自動生成プログラムであって、
    前記コンポーネントには、他の前記コンポーネントをサブコンポーネントとして有する親コンポーネントが存在し、前記サブコンポーネントと、該サブコンポーネントを有する前記親コンポーネントとは、これらのコンポーネントが有する専用ポートにより互いに接続可能に構成され、前記サブコンポーネントは、自身の前記専用ポートに接続された前記親コンポーネントの前記専用ポートが、他の前記コンポーネントに接続されることにより、他の前記コンポーネントに接続され、
    前記コンフィグレーションデータが示す前記親コンポーネントのうち、前記専用ポートが他の前記コンポーネントに接続されていない前記親コンポーネントを特定し、該親コンポーネントにおける、該専用ポートに接続されている前記専用ポートを有する前記サブコンポーネントを、不要サブコンポーネントとして特定する特定ステップと、
    前記コンフィグレーションデータと、前記生成用データとに基づき、該コンフィグレーションデータが示す前記コンポーネントのうち、少なくとも前記不要サブコンポーネントを除いた前記コンポーネントに対応するソースコードを生成する生成ステップと、
    をコンピュータに実行させることを特徴とするソースコード自動生成プログラム。
  2. 請求項1に記載のソースコード自動生成プログラムにおいて、
    前記ソースコード自動生成プログラムは、
    前記コンフィグレーションデータを取得する取得ステップと、
    前記取得ステップにて取得された前記コンフィグレーションデータが示す前記コンポーネントのうち、削除対象となる前記コンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付ステップと、
    前記選択受付ステップにてユーザに選択された前記削除対象コンポーネントを、前記取得ステップにて取得された前記コンフィグレーションデータから削除する削除対象コンポーネント削除ステップと、
    をさらにコンピュータに実行させ、
    前記特定ステップでは、前記削除対象コンポーネント削除ステップにおいて前記削除対象コンポーネントが削除された前記コンフィグレーションデータについて、前記不要サブコンポーネントの特定を行うこと、
    を特徴とするソースコード自動生成プログラム。
  3. 請求項1または請求項2に記載のソースコード自動生成プログラムにおいて、
    前記特定ステップにて特定された前記不要サブコンポーネントを、前記コンフィグレーションデータから削除する不要サブコンポーネント削除ステップを、
    さらにコンピュータに実行させ、
    前記生成ステップにおいて、前記不要サブコンポーネント削除ステップにて前記不要サブコンポーネントが削除された前記コンフィグレーションデータを用いてソースコードを生成すること、
    を特徴とするソースコード自動生成プログラム。
  4. 再利用可能に構成されたプログラム部品に対応しており、ポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されており、
    前記コンポーネントは、前記ポート同士を接続することにより、互いに接続することができ、
    所定のプログラムに実装するために選択された複数の前記コンポーネントと、これらのコンポーネント同士の接続関係とを示すコンフィグレーションデータ、及び、前記生成用データに基づき、ソースコードを生成するソースコード自動生成装置であって、
    前記コンポーネントには、他の前記コンポーネントをサブコンポーネントとして有する親コンポーネントが存在し、前記サブコンポーネントと、該サブコンポーネントを有する前記親コンポーネントとは、これらのコンポーネントが有する専用ポートにより互いに接続可能に構成され、前記サブコンポーネントは、自身の前記専用ポートに接続された前記親コンポーネントの前記専用ポートが、他の前記コンポーネントに接続されることにより、他の前記コンポーネントに接続され、
    前記コンフィグレーションデータが示す前記親コンポーネントのうち、前記専用ポートが他の前記コンポーネントに接続されていない前記親コンポーネントを特定し、該親コンポーネントにおける、該専用ポートに接続されている前記専用ポートを有する前記サブコンポーネントを、不要サブコンポーネントとして特定する特定手段と、
    前記コンフィグレーションデータと、前記生成用データとに基づき、該コンフィグレーションデータが示す前記コンポーネントのうち、少なくとも前記不要サブコンポーネントを除いた前記コンポーネントに対応するソースコードを生成する生成手段と、
    を備えることを特徴とするソースコード自動生成装置。
  5. 再利用可能に構成されたプログラム部品に対応しており、特定の形式を持つポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されており、
    前記コンポーネントは、対応する形式の前記ポート同士を接続することにより、互いに接続することができ、
    前記コンポーネントと、これらのコンポーネント同士の接続関係と、前記生成用データとに基づき、ソースコードを生成するソースコード自動生成プログラムであって、
    前記生成用データには、前記コンポーネントについて、該コンポーネントの存在価値を生じさせることができる、該コンポーネントが有する所定の前記ポートと、他の前記コンポーネントが有する前記ポートとの接続状態である必要接続状態が定義されており、
    所定のプログラムに実装するために選択された複数の前記コンポーネントと、これらのコンポーネント同士の接続関係と、該接続に係る前記ポートの形式とを示すコンフィグレーションデータを取得する取得ステップと、
    前記取得ステップにて取得された前記コンフィグレーションデータが示す前記コンポーネントのうち、削除対象となる前記コンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付ステップと、
    前記生成用データに基づき、前記コンフィグレーションデータが示す前記コンポーネントのうち、前記必要接続状態でない前記コンポーネントを不要コンポーネントとして特定する特定ステップと、
    前記取得ステップにて取得された前記コンフィグレーションデータが示す前記コンポーネントのうち、少なくとも前記削除対象コンポーネントと前記不要コンポーネントとを除いた前記コンポーネントと、これらのコンポーネント同士の前記接続関係と、前記生成用データとに基づき、これらのコンポーネントに対応するソースコードを生成する生成ステップと、
    をコンピュータに実行させることを特徴とするソースコード自動生成プログラム。
  6. 請求項5に記載のソースコード自動生成プログラムにおいて、
    前記特定ステップにおいて、前記不要コンポーネントが特定されると、前記コンフィグレーションデータが示す前記コンポーネントのうち、該不要コンポーネントが有する前記ポートと接続されることにより、前記必要接続状態が形成される前記ポートを有する前記コンポーネントを、新たに前記不要コンポーネントとして特定する不要コンポーネント再特定処理を実行すること、
    を特徴とするソースコード自動生成プログラム。
  7. 請求項6に記載のソースコード自動生成プログラムにおいて、
    前記特定ステップにおいて、前記不要コンポーネント再特定処理にて新たに前記不要コンポーネントが特定されると、再度、新たに特定された前記不要コンポーネントについて前記不要コンポーネント再特定処理を実行すること、
    を特徴とするソースコード自動生成プログラム。
  8. 請求項5から請求項7のいずれかに記載のソースコード自動生成プログラムにおいて、
    前記選択受付ステップにてユーザに選択された前記削除対象コンポーネントを、前記取得ステップにて取得された前記コンフィグレーションデータから削除する削除対象コンポーネント削除ステップを、さらにコンピュータに実行させ、
    前記特定ステップにおいて、前記削除対象コンポーネント削除ステップにて、前記削除対象コンポーネントが削除された前記コンフィグレーションデータについて、前記不要コンポーネントの特定を行うこと、
    を特徴とするソースコード自動生成プログラム。
  9. 請求項5から請求項8のいずれかに記載のソースコード自動生成プログラムにおいて、
    前記生成用データは、いずれかの前記コンポーネントに関連付けられており、関連付けられている前記コンポーネントについて前記テンプレートを有しているテンプレートデータを有しており、前記テンプレートデータには、関連付けられている前記コンポーネントについての前記必要接続状態が定義されていること、
    を特徴とするソースコード自動生成プログラム。
  10. 再利用可能に構成されたプログラム部品に対応しており、特定の形式を持つポートを有するコンポーネントと、該コンポーネントに対応するソースコードを生成するためのテンプレートを有する生成用データとにアクセス可能に構成されており、
    前記コンポーネントは、対応する形式の前記ポート同士を接続することにより、互いに接続することができ、
    前記コンポーネントと、これらのコンポーネント同士の接続関係と、前記生成用データとに基づき、ソースコードを生成するソースコード自動生成装置であって、
    前記生成用データには、前記コンポーネントについて、該コンポーネントの存在価値を生じさせることができる、該コンポーネントが有する所定の前記ポートと、他の前記コンポーネントが有する前記ポートとの接続状態である必要接続状態が定義されており、
    所定のプログラムに実装するために選択された複数の前記コンポーネントと、これらのコンポーネント同士の接続関係と、該接続に係る前記ポートの形式とを示すコンフィグレーションデータを取得する取得手段と、
    前記取得手段により取得された前記コンフィグレーションデータが示す前記コンポーネントのうち、削除対象となる前記コンポーネントである削除対象コンポーネントの選択をユーザから受け付ける選択受付手段と、
    前記生成用データに基づき、前記コンフィグレーションデータが示す前記コンポーネントのうち、前記必要接続状態でない前記コンポーネントを不要コンポーネントとして特定する特定手段と、
    前記取得手段により取得された前記コンフィグレーションデータが示す前記コンポーネントから、少なくとも前記削除対象コンポーネントと前記不要コンポーネントとを除いた前記コンポーネントと、これらのコンポーネント同士の前記接続関係と、前記生成用データとに基づき、これらのコンポーネントに対応するソースコードを生成する生成手段と、
    を備えることを特徴とするソースコード自動生成装置。
JP2009135153A 2009-06-04 2009-06-04 ソースコード自動生成プログラム,ソースコード自動生成装置 Active JP5177083B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009135153A JP5177083B2 (ja) 2009-06-04 2009-06-04 ソースコード自動生成プログラム,ソースコード自動生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009135153A JP5177083B2 (ja) 2009-06-04 2009-06-04 ソースコード自動生成プログラム,ソースコード自動生成装置

Publications (2)

Publication Number Publication Date
JP2010282418A true JP2010282418A (ja) 2010-12-16
JP5177083B2 JP5177083B2 (ja) 2013-04-03

Family

ID=43539090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009135153A Active JP5177083B2 (ja) 2009-06-04 2009-06-04 ソースコード自動生成プログラム,ソースコード自動生成装置

Country Status (1)

Country Link
JP (1) JP5177083B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04145527A (ja) * 1990-10-05 1992-05-19 Nec Corp 部品化されたプログラムテキストの取り出し方式
JPH04342023A (ja) * 1991-05-20 1992-11-27 Nec Corp ロードモジュール作成方式
JPH064273A (ja) * 1992-06-24 1994-01-14 Toshiba Corp データ処理装置
JPH10105392A (ja) * 1996-07-03 1998-04-24 Sun Microsyst Inc 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング
JP2002244848A (ja) * 2001-02-14 2002-08-30 Mitsubishi Electric Corp ユーザインタフェース設計装置
JP2009104648A (ja) * 2009-02-04 2009-05-14 Inter Net Inishiateibu:Kk ネットワーク接続機器の自動生成機構

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04145527A (ja) * 1990-10-05 1992-05-19 Nec Corp 部品化されたプログラムテキストの取り出し方式
JPH04342023A (ja) * 1991-05-20 1992-11-27 Nec Corp ロードモジュール作成方式
JPH064273A (ja) * 1992-06-24 1994-01-14 Toshiba Corp データ処理装置
JPH10105392A (ja) * 1996-07-03 1998-04-24 Sun Microsyst Inc 必要とされるサービスと供給されるサービスとを決定するためのオブジェクトインタフェース定義のフィルタリング
JP2002244848A (ja) * 2001-02-14 2002-08-30 Mitsubishi Electric Corp ユーザインタフェース設計装置
JP2009104648A (ja) * 2009-02-04 2009-05-14 Inter Net Inishiateibu:Kk ネットワーク接続機器の自動生成機構

Also Published As

Publication number Publication date
JP5177083B2 (ja) 2013-04-03

Similar Documents

Publication Publication Date Title
CN107870845B (zh) 面向微服务架构应用的管理方法及系统
US9558016B2 (en) Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product
WO2010001555A1 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
CN107203465B (zh) 系统接口测试方法及装置
US9075965B2 (en) Execution-based license discovery and optimization
JPWO2012120654A1 (ja) タスクスケジューリング方法およびマルチコアシステム
CN112083971B (zh) 组件处理方法、设备及存储介质
US10387124B2 (en) System and method for creating domain specific language
JP6879625B2 (ja) プログラマブルコントローラ、管理装置および制御システム
CN106776018B (zh) 用于分布式系统的主节点和从节点的并行处理方法和设备
JP2010003224A (ja) テスト情報管理サーバ、テスト情報管理方法、およびプログラム
JP2012208752A (ja) ライセンス管理装置、ライセンス管理方法、及びプログラム
CN101373444A (zh) 向执行环境揭示系统拓扑
CN110908644B (zh) 状态节点的配置方法、装置、计算机设备和存储介质
JP5177083B2 (ja) ソースコード自動生成プログラム,ソースコード自動生成装置
CN108289114B (zh) 云端服务系统及处理云端服务异常的方法
JP2016018269A (ja) 情報処理装置、情報処理方法及びプログラム
JP2009266149A (ja) ジョブ管理プログラム及びジョブ管理装置
KR20070061098A (ko) 임베디드 리눅스 커널 및 응용 프로그램의 통합 설정을위한 웹 기반의 개발환경 제공 시스템 및 방법
US8495033B2 (en) Data processing
JP5545133B2 (ja) 静的解析処理システム、方法、およびプログラム
CN102426535A (zh) 动态进程虚拟化
JP2018022433A (ja) 制御プログラム、装置、及び方法
JP2010231295A (ja) 解析システム
JP6398456B2 (ja) ソフトウェア生成装置

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

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

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