説明

フィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステム

【課題】フィーチャ指向ソフトウェア製品ライン工学の方法論を支援するフィーチャ指向ソフトウェア再利用の開発環境システムを提供する。
【解決手段】特定領域に対するフィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するASADAL/FORM100と、前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行う同/COMP200と、前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを通じた検証を行う同/OBJ300と、これらにより生成されたデータを格納する同/ASSET DB400と、これに格納されているデータ間の一貫性を検証する同/ANALYZER500とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フィーチャ指向(feature‐oriented)ソフトウェア製品ラインの開発環境に関するものであって、より詳しくは、特定ドメイン(または領域)に対してソフトウェア製品ライン方法論を適用してドメインに対するフィーチャ分析と応用プログラムの開発のためのフィーチャ選択、再利用可能な資産コンポーネントの生成、マクロ処理を通じたソフトウェアコンポーネントの生成とコンポーネントに対する形状管理、ソフトウェアコンポーネントを利用した応用ソフトウェアの開発と仮想環境におけるソフトウェアテスティングを支援することによって、ソフトウェア製品ラインの開発を容易にするフィーチャ指向ソフトウェア製品ラインの開発環境を具現するシステムに関する。
【背景技術】
【0002】
近年、ソフトウェア開発の生産性を向上しようとするソフトウェア再利用技術の焦点は、ソースコードの再利用からソフトウェア設計の再利用へ、再びソフトウェア設計の再利用から領域工学に基づく再利用へと、その中心が移動してきた。このようにソフトウェア再利用技術が変化した理由は、ソースコードを再利用するには設計の再利用が先行されなければならず、また設計を再利用するためには領域工学を通じて該当応用領域で共通して使用される領域資産を先に開発しなければならなかったためである。そのため、ここ数年間ソフトウェア再利用に関する研究は、領域分析及び領域工学に重点をおいて行われてきた。
【0003】
ソフトウェア再利用技術に関する研究における領域工学的な接近方法は、該当応用領域に対して広い範囲で分析を行い、これにより再利用性の高いコンポーネントを開発することである。しかしながら、このような接近方法は、多くの場合、領域内のすべての製品を含ませようとする傾向があり、これによってソフトウェアの開発コストや期間が増大するという問題が生じたりした。また、ソフトウェア再利用性を最大化するための取り組みとして、ソフトウェア構造の階層化と情報隠匿のためのカプセル化を強調すると、結果的にシステムの性能低下を招くという問題点があった。このように、該当応用領域を中心にソフトウェアを再利用するにあたって、適切な領域の範囲と再利用性の程度を決定することは難しい問題である。
【0004】
上述した問題のうちの一部を解決するために、ソフトウェア製品ライン工学(software product line engineering)のパラダイムが提示されている。このパラダイムによれば、ソフトウェア再利用は、特定ソフトウェア製品ラインを再利用するために、慎重に立てられた計画の下でなされる。すなわち、ソフトウェア製品ライン工学によれば、企業が参入しようとする市場状況を分析した結果に基づき、領域分析をしなければならない範囲と、これに基づくソフトウェア製品ライン資産の開発範囲を明確にすることができる。
【0005】
ソフトウェア製品ライン工学は、ソフトウェア製品ラインの中核となるソフトウェア資産を開発するために、1つまたはその以上の市場を目標とする類維な機能を提供するソフトウェア間の共通点(commonality)と相違点(variability)を分析し、これに基づいて変化を受け入れられるソフトウェアアーキテクチャと再利用可能なコンポーネントを開発する方策を提示する。最近は、このようなソフトウェアの戦略的な再利用に向けたソフトウェア製品ライン工学への関心と認識が次第に高まっており、これに対する研究も盛んに行われている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、このようなソフトウェア製品ライン工学の概念に従ってドメインに対する共通点と相違点の分析、柔軟なソフトウェアアーキテクチャと再利用コンポーネントの開発など、ソフトウェア製品ライン工学の全体的な方法論を支援する体系的、かつ効果的なソフトウェアの開発環境を提供するシステムはまだ提示されていない。
【0007】
したがって、本発明は上記事情に鑑みてなされたものであり、その目的とするところは、フィーチャ指向ソフトウェア製品ライン工学の方法論を支援するアサダル(A System Analysis and Design Aided tooL:以下、「ASADAL」と記す)フレームワークを定義し、ASADALを構成する各モジュールの構造や、モジュールの機能及びデータの流れを定義することで、ソフトウェア製品ラインの方法論を支援するフィーチャ指向ソフトウェア再利用の開発環境システムを提供することにある。
【0008】
また、本発明は、このような体系的な開発環境を利用して、ドメインに対して共通点と相違点を分析したフィーチャモデリングの結果に基づいて再利用可能なソフトウェア資産を得るほか、ソフトウェア資産を活用して効率よく応用ソフトウェアを開発し、これを3次元シミュレーションに基づいてテストしてみることで、窮極的にソフトウェア製品ライン工学の概念に従った高い品質のソフトウェアを得ることを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明のフィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステムは、特定領域に対するフィーチャモデリングと前記フィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するASADAL/FORMと、前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行うASADAL/COMPと、前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを介した検証を行うASADAL/OBJと、前記ASADAL/FORM、ASADAL/COMP及びASADAL/OBJにより生成されたデータを格納するASADAL/ASSET DBと、前記ASADAL/ASSET DBに格納されているデータ間の一貫性を検証するASADAL/ANALYZERとを含むことを特徴とする。
【発明の効果】
【0010】
本発明によれば、フィーチャ指向ソフトウェア再利用の開発環境を提供するシステムであるASADALは、類似するシステムをなす領域内のシステムの機能的、環境的、技術的及び具現的な共通点と相違点を明確に分析してコンポーネント開発に反映することで、コンポーネントの再利用性と適応可能性を高める利点を有する。
【0011】
また、本発明による開発環境においては、ソフトウェアの開発初期段階からモデルを検証し、シミュレーションによりモデルの誤謬を見つけることができる。したがって、このような分析によりモデルの信頼度を高めることができ、ソフトウェアの開発初期段階で重大な誤謬を検査できるので、開発コストを大幅に低減できるという効果を奏する。
【0012】
本発明による3次元シミュレーションを通じたソフトウェア検査は、実際に現実世界と類似する環境を3次元モデリングにより構築し、これに基づいてソフトウェア検査及び評価を行うため、多様な検査を少ない費用で行うことができるという長所がある。特に、リアルタイム制御システムは、組み込みシステム(embeded system)である場合が殆どであるため、外部のハードウェア環境と内部のソフトウェアシステムが正常に相互作用しているかをソフトウェア的に検査し評価することは、ソフトウェアの信頼度を向上させることができるだけでなく、システムの検査コストも大幅に低減できる。
【0013】
本発明による開発環境は、ソフトウェアの分析や、設計、具現及びテスティングの段階を全て支援する体系的なフレームワークを提供することによって、各段階ごとに意味ある産出物を得ることができるという効果がある。また、本発明による開発環境は、ソフトウェアの効率的な再利用が可能に設計されており、このような再利用技法は、様々な分野のソフトウェアの開発に広範囲に適用されることができる。
【発明を実施するための最良の形態】
【0014】
以下、添付の図面を参照しつつ本発明の好適な実施の形態を説明する。
図1は、本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境であるASADALフレームワークの構成を示すブロック図である。本発明によるシステムは、5つの構成要素であるASADAL/FORM100、ASADAL/COMP200、ASADAL/OBJ300、ASADAL/ASSET DB400及びASADAL/ANALYZER500を含む。図1に示されているシステムの構成要素のうち、ASADAL/FORM100、ASADAL/COMP200、ASADAL/OBJ300及びASADAL/ANALYZER500は、1つのコンピュータまたはネットワークで連結されている複数のコンピュータで実行できるソフトウェアに具現されることができる。
【0015】
本発明によるシステムにおいて、ASADAL/FORM100は、領域に対するフィーチャモデリングと応用プログラムに該当するフィーチャを選択する機能を行い、ASADAL/COMP200は、資産コンポーネントの開発とマクロプロセシングを通じたソフトウェアコンポーネントの生成及びコンポーネント形状管理の機能を行う。ASADAL/OBJ300は、応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを介した検証機能を提供する。また、ASADAL/ASSET DB400は、以上で説明した各モジュールで生成された産出物を格納し、ASADAL/ANALYZER500は、ASADAL/ASSET DB400に格納されている産出物の間の一貫性を検証する。
【0016】
以下に、本発明による開発フレームワークを提供するシステムであるASADALを構成する各モジュールについて、添付の図面を参照して、詳細に説明する。
ASADAL/FORM
図2は、本発明による開発フレームワークを提供するシステムであるASADALのASADAL/FORM100の構成及びデータ処理の流れを示すブロック図である。ASADAL/FORM100の主な機能は、ソフトウェア製品ライン分析者がドメイン(または領域)を分析して関連するシステム間の共通点と相違点をフィーチャ単位で取り出してドメインに対するフィーチャモデルを生成することや、応用プログラム開発者がシステムを分析して応用プログラムの要求事項を満足させるフィーチャを選択できるようにすることであって、これらの機能について、詳細に説明すれば、以下の通りである。
【0017】
フィーチャとは、特定領域に関連する人が関心がある領域内での属性または特徴を意味する。例えば、ユーザマニュアルやソフトウェア文書、領域専門家らの間で用いられる用語を分析することによって、フィーチャを見つけることができる。フィーチャモデリングとは、多くの候補フィーチャの中から領域範囲に属するシステム間の共通点と相違点を表すフィーチャを見つけ、それらの関係及び合成規則などを明細にする過程をいう。すなわち、フィーチャモデリングとは、類似している種類のシステムの間で何が共通しているか、どんな部分で差があり、今後どのような差が生じるかを明確にする過程を意味する。
【0018】
ASADAL/FORM100は、フィーチャモデリングを支援するエディタモジュールによりフィーチャモデルを作成し、このように作成されたフィーチャモデルは、ASADAL/ASSET DB400に格納して他のモジュールが使用できるようにする。すなわち、図2を参照すれば、製品ライン分析者102は、ドメインを分析して候補フィーチャを得る(S110)。このようにして得られた候補フィーチャに基づいてフィーチャモデルエディタにより、システムの共通点を表す必須フィーチャ、相違点を表す選択的フィーチャ及び択一的フィーチャを分類してトリー構造のフィーチャモデルを作成する(S120)。
【0019】
ASADAL/FORM100は、システム間の共通点と相違点を表す必須フィーチャ及び選択的フィーチャなどを探してそれらの関係及び合成規則を明細にし、製品ライン分析者102が作成したフィーチャモデルが合成規則に合わせて明細にされているか、フィーチャ間の関係が正常に設定されているかなどを検証できる機能を支援する(S130)。このようなフィーチャモデルの検証過程を通じてソフトウェア製品ライン分析者102は、有効なフィーチャモデルを得ることができる。
【0020】
領域内に属する応用プログラムの要求事項は、その領域に対するフィーチャモデルにおいて相違点を表すフィーチャの中から応用プログラムに該当するフィーチャと共通点を表す必須フィーチャを選択することで、明細にすることができる。応用プログラム開発者は、ASADAL/FORM100のフィーチャ選択モジュールを通じて領域分析者により作成されたフィーチャモデルからフィーチャの説明や合成規則などを利用して応用プログラムの要求事項に合った有効なフィーチャの集まりが生成されるようにフィーチャを選択する。
【0021】
すなわち、図2を参照すれば、応用プログラム開発者104は、応用プログラムを分析してその要求事項を決定した後(S140)、ASADAL/ASSET DB400に格納されているフィーチャモデルを持ってきて、その要求事項を満足させるフィーチャを選択する(S150)。このようなフィーチャ選択情報は、再びASADAL/ASSET DB400に格納される。
【0022】
ASADAL/COMP
図3は、本発明による開発フレームワークを提供するシステムであるASADALのASADAL/COMP200の機能及びデータ処理の流れを示すブロック図である。ASADAL/COMP200の主な機能は、ASADAL/FORM100で作成されたフィーチャモデルとフィーチャ選択情報に基づいて再利用可能な資産コンポーネントを作成することや、資産コンポーネントをマクロ処理してフィーチャ選択に合うソフトウェアコンポーネントを生成すること、そしてこのようなコンポーネントに対する形状管理を行うことである。
【0023】
以下に、図3を参照して、ASADAL/COMP200の主要機能の1つである資産コンポーネントの開発過程について、詳細に説明する。
資産コンポーネントは、多様な要求事項を有する複数の応用プログラムで再利用できるように、フィーチャモデルで検索された応用プログラム間の相違点を表す択一的フィーチャ及び選択的フィーチャを中心に、そのようなフィーチャが選択される場合と選択されない場合にそれぞれ適切に対応できるように作成されなければならない。また、資産コンポーネントは、資産コンポーネントの作成時に用いることができるフィーチャの選択如何、それに伴う不要なコードの除去及び適切なコードの挿入を支援するマクロを定義する。
【0024】
図3を参照すれば、ASADAL/COMP200は、資産コンポーネントを作成するためにASADAL/ASSET DB400から該当ドメインに対して作成したフィーチャモデルを持ってくる。ASADAL/COMP200は、ASADAL/ASSET DB400から持ってきたフィーチャモデルで定義された必須フィーチャの中から関連性の高いものをまとめて、これらを具現する資産コンポーネントを定義し、その資産コンポーネントに関連する選択的フィーチャ及び択一的フィーチャが存在するなら、それらの選択如何によってコンポーネントが、どのように対応すべきかをマクロを用いて明細にする(S240)。このように作成された資産コンポーネントは、ASADAL/ASSET DB400に格納され、ソフトウェアコンポーネントの生成に用いられる。
【0025】
ASADAL/COMP200は、資産コンポーネントの作成時に用いることができるフィーチャの選択如何、それに伴う不要なコードの除去及び適切なコードの挿入を支援するマクロを定義するが、資産コンポーネント検証モジュールは、マクロの作成時に発生する文法的な誤謬と明細の有効性を検証できる機能を支援する(S210)。資産コンポーネントを検証する作業は、ソフトウェアコンポーネントの開発時にマクロ処理の基礎作業となるため、マクロの処理前に必ず行われなければならない。
【0026】
図3に示されるように、ASADAL/COMP200は、フィーチャの選択情報と資産コンポーネントをASADAL/ASSET DB400から持ってきて、このように得られたフィーチャ選択情報と資産コンポーネントに基づいて資産コンポーネント明細に含まれているマクロをその意味に合わせて処理して、選択されていないフィーチャを具現しているコードを除去し、選択されたフィーチャを具現するコードを適切に変化させてソフトウェアコンポーネントを自動生成する(S220)。このように生成されたソフトウェアコンポーネントは、ASADAL/ASSET DB400に格納され、フィーチャ選択情報とともに形状管理モジュールに送られ、形状管理される。
【0027】
すなわち、形状管理モジュールは、ソフトウェアコンポーネントの生成時に用いられたフィーチャ選択情報と資産コンポーネント情報を管理して、ソフトウェアコンポーネントに問題点が発見された場合、フィーチャモデルと資産コンポーネントに対する逆追跡性を提供し、コンポーネントのバージョンを管理する(S230)。
【0028】
例えば、ASADAL/COMP200で作成したソフトウェアコンポーネントが、外部モジュールで使用中に問題が発生すれば、ユーザはその問題の解決のためにASADAL/COMP200の形状管理モジュールからそのソフトウェアコンポーネントのフィーチャ選択情報と資産コンポーネントのバージョン情報を得ることで、このソフトウェアコンポーネントが作られるまでの形跡を得ることができる。このような情報を分析すれば、ソフトウェアコンポーネントの問題点を引き起こした根本的な原因を探して修正されたソフトウェアコンポーネントを生成することができる。
【0029】
ASADAL/OBJ
ASADAL/OBJ300は、大きく応用プログラムに対する設計及び具現と、仮想テストベッド上のシミュレーションを通じた応用プログラムに対する検証作業を行う。また、ASADAL/OBJ300において、制御部はシステムを制御するための応用プログラムを開発するための部分であり、環境オブジェクトは、応用プログラムが実際に配置されて実行される仮想環境を開発するための部分である。
【0030】
より具体的に説明すれば、ASADAL/OBJ300は、応用プログラムの設計及び具現過程において、この応用プログラムの要求事項に基づいてASADAL/COMP200で生成されたソフトウェアコンポーネントを用いる。ASADAL/OBJ300において、ソフトウェアコンポーネントは、行為及び機能明細言語を通して用いられ、これらのコンポーネント及びASADAL/COMP200で生成されたソフトウェアコンポーネントの関係を表すアーキテクチャモデリングが提供される。また、仮想テストベッド上のシミュレーションを通じた応用プログラムの検証は、ASADAL/OBJ300の環境オブジェクトモデリングを通じて応用プログラムをテストする仮想環境を明細にして3次元シミュレーションにより行われる。
【0031】
図4は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるASADALのASADAL/OBJ300の制御部の機能とそのデータ処理の流れを示すブロック図である。
まず、ソフトウェアアーキテクチャモデリングモジュールでは、応用プログラム開発者301がフィーチャの非機能的要素を実質的なシステムでどのように配置するかを設計する(S302)。すなわち、このモジュールは、現在ASADAL/ASSET DB400が有する運用モデルとソフトウェアコンポーネントを効率よく適切に用いて、システムに対してどのようにアーキテクチャを設計するかを決定する。このように生成されたアーキテクチャモデルは、ASADAL/ASSET DB400に格納される。
【0032】
次に、運用モデリングモジュールは、システムの内部が有する機能と行為を明細にしてシステムを表現する(S304)。ASADAL/OBJ300は、ASADAL/ASSET DB400に格納されているシステムのアーキテクチャを参照して、そのアーキテクチャに合わせてシステムの内部を運用モデリング明細にすることができ、フィーチャに基づいて生成されたソフトウェアコンポーネントを再利用してシステムを構成することもできる。ASADAL/OBJ300は、システム運用に必要なソフトウェアコンポーネントを使用できるようにする明細を提供するので、ユーザは便利に外部のソフトウェアコンポーネントを用いることができる。また、ASADAL/ASSET DB400に格納されている他のシステムの同様の機能を有する運用モデルを再利用して用いることができる。
【0033】
モデルの有効性検査は、各モジュールから得られたモデルが複雑に明細にされる場合に、ロジック分析器により明細の不一致性やモデルの誤謬を探す作業である。ASADAL/OBJ300において応用プログラム開発者は、運用モデルとアーキテクチャモデルの有効性を検証して自動コードの生成時に発生し得る誤謬を低減でき、効率を高めることができる(S306及びS308)。
【0034】
本発明による開発フレームワークでは、ASADAL/ASSET DB400から持ってきた運用モデルを自動コード生成モジュールの入力としてターゲットプログラム言語により便利にコードを生成できる。すなわち、自動コード生成モジュールにより、ユーザはソフトウェアの開発時間を短縮し、コード作成時に発生する様々な問題を容易に解決できる環境を提供する。ASADAL/OBJ300は、3次元仮想シミュレーションでテストするためのシミュレーションコードと実際システムに配置されて作動するターゲットコード(target code)を生成する(S310及びS312)。したがって、シミュレーションコードは、仮想テスティングの際に環境オブジェクトに連係されてシミュレーションできるように生成され、ターゲットコードは実際システムにダウンロードされて実行できるように生成される。
【0035】
図5は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるASADALのASADAL/OBJ300の環境オブジェクトの機能とそのデータ処理の流れを示すブロック図である。
ASADAL/OBJ300の大きな特徴の1つは、特定ソフトウェアが配置されて実行されるシステムを仮想でモデリングできる環境を提供することである。このような環境は自動コード生成により得られたコードが実際システムに配置された時、正常に動作できるか否かをテストするためのもので、実際コードが配置される環境を仮想でモデリングすることができる。
【0036】
図5において、環境オブジェクトモデリングモジュールは、オブジェクトの形態をモデリングするために様々な形状を有するシステムを視覚的に表現するための3次元形態モジュールから構成される(S314)。このような形態モデルは、運用モデル(S304)とマッチされ仮想シミュレーション時に実際オブジェクトの動きを仮想で表現できる(S310)。
【0037】
図6は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるASADALのASADAL/OBJ300のI/Oマッピングの動作を示すためのブロック図である。ASADAL/OBJ300においては、制御部と環境オブジェクトとの間のデータとイベントを連結できる仮想入出力(I/O)マッピング(S316)と、実際システムと環境オブジェクトとの間のデータとイベントを連結できる実際入出力(I/O)マッピング(S318)が可能である。ASADAL/OBJ300のシミュレーションモジュールは、ターゲットコードと環境オブジェクトとの間でデータ及びイベントを連結させる入出力対応テーブルモジュールが存在することで、ターゲットコードと環境オブジェクトが連係してシミュレーションできるように支援する。
【0038】
図7を参照すれば、アーキテクチャモデリングと運用モデリングを通じて得た応用プログラムをテストするために、環境モデリングモジュールで応用プログラムを配置させる環境を生成した後、これらの間のデータ及びイベントをマッピングさせるために、I/Oマッピングモジュールを中間に位置させる。すなわち、応用プログラム開発者は、ASADAL/OBJ300で制御部と環境オブジェクトをモデリングした後、これらの間にイベントとデータをマッピングさせてシミュレーションできるI/Oマッピングモジュールにより連結する(S320ないしS324)。また、ASADAL/OBJ300は、制御部と環境オブジェクトの内部明細を入力として実行可能なシミュレーションコードを生成し、シミュレーションさせる制御器シミュレーションモジュール(またはエンジン)及び環境シミュレーションモジュール(またはエンジン)を含む。ターゲットコードをシミュレーションさせるエンジンと環境をシミュレーションさせるエンジンとが、互いにデータとイベントをやりとりするように調整するI/Oハンドリングモジュールを支援することで、視覚的、かつ直観的なソフトウェアテスティングが可能になる。このような直観的なテスティングによりユーザはターゲットコードが実際に配置された時、正常に動作可能であるか否かを判断し、システムで予想される問題に迅速に対処できる。
【0039】
図8は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるASADALのASADAL/OBJ300と実際システムとの間のシミュレーションを示す構成図である。図8を参照すれば、ASADAL/OBJ300は、ASADAL/ASSET DB400からターゲットコードを実際システム330にダウンロードさせた後、実際システム330と仮想環境シミュレーション(S328)との間のデータ及びイベントをマッピングさせるために、実際I/Oマッピングモジュール(S326)をそれらの中間に位置させる。このように実際システムが実際オブジェクトに対して送るデータとイベントを仮想環境で予めテストできるので、実際機械に配置する前にコードが正常に動作可能であるか否かをテストでき、テストコストを低減できる。
【0040】
図9は、本発明によるフィーチャ指向ソフトウェアの製品ラインの開発フレームワークを提供するシステムであるASADALのASADAL/ANALYZER500の構成を示すブロック図である。本発明によるASADAL/ANALYZER500は、ASADAL/ASSET DB400に格納されているモデル間の一貫性を検査することや、該当モデルの明細が有効であるかを検査する機能を行う。すなわち、資産開発者は、フィーチャモデルと資産コンポーネントとの間の一貫性を検証し(S330)、応用プログラム開発者は、運用モデル内部の一貫性、アーキテクチャモデルとソフトウェアコンポーネントとの間の一貫性、ソフトウェアコンポーネントと運用モデルとの間の一貫性を検証できる(S332ないしS336)。このようなモデル検査機能は、設計及びコード生成時に必ず行われる過程であり、このような過程がなければ、自動的に生成されたコードの正しい動作を保証できなくなる。
【0041】
以上で説明したASADALフレームワークが具体的にどのような機能を支援するかについて、(1)資産開発、(2)応用プログラムの開発、(3)応用プログラムのテスト、(4)応用プログラムの維持保守の観点から見た実施形態について説明する。
第1の実施形態:資産開発
以上で説明した本発明によるASADALのモジュールを用いて資産コンポーネントを開発する方法は、以下の通りである。
【0042】
すなわち、ASADALフレームワークは、フィーチャを中心にシステムを分析することを基本とする。したがって、資産コンポーネントを開発する前に、領域に対する共通点と相違点の分析を通じて候補フィーチャを得て、ASADAL/FORM100のフィーチャモデリングモジュールを用いて完成したフィーチャモデルを作成する(図2のS110及びS120参照)。フィーチャモデル自体の有効性を検証してから検証されたフィーチャモデルはASADAL/ASSET DB400に格納する(図2のS130参照)。
【0043】
ASADAL/COMP200においては、領域分析により得られたフィーチャモデルに対してコンポーネント全体に亘って影響を与える必須フィーチャ、コンポーネントの一部分に影響を与える選択的フィーチャ、択一的にコンポーネントに影響を与える択一的フィーチャの選択可能性を適切に対応できるようにマクロを用いて資産コンポーネントを明細にする(図3のS240参照)。このように得られた資産コンポーネントは、資産コンポーネント検証モジュールで有効性を検証し、ASADAL/ASSET DB400に格納する(図3のS210参照)。
【0044】
資産開発者はASADAL/ANALYZER500により、フィーチャに基づいて作成された資産コンポーネントが一貫性よく作成されたか否かを検証する(図9参照)。
第2の実施形態:応用プログラムの開発
ドメイン(または領域)に対する資産コンポーネントの開発が完了すると、応用プログラム開発者は、フィーチャモデルからシステム要求事項を満足させるフィーチャのみ選択する(図2のS140及びS150参照)。このようなフィーチャの選択は、ASADAL/FORM100で行われ、フィーチャ選択情報は、ASADAL/ASSET DB400に格納される。
【0045】
ASADAL/COMP200では、フィーチャの選択情報と資産コンポーネントをASADAL/ASSET DB400から持ってきてソフトウェアコンポーネントの生成のためにフィーチャ選択情報を資産コンポーネントに適切に対応させるマクロ処理作業を行う(図3のS220参照)。すなわち、ユーザの要求事項に合わせて選択されたフィーチャ選択情報をマクロ処理することで、選択されたフィーチャを具現するコードのみ適用して、完成したソフトウェアコンポーネントを生成する。このように作成されたソフトウェアコンポーネントは、ASADAL/COMP200の形状管理モジュールにより管理され、外部モジュールで再利用できるようにASADAL/ASSET DB400に格納される(図3のS230参照)。
【0046】
上述したように、ソフトウェアコンポーネントが生成されると、次に再利用コンポーネントを用いて応用プログラムを作成するが、アーキテクチャモデリング、運用モデリング及び自動コード生成を支援するASADAL/OBJ300が用いられる。すなわち、ASADAL/OBJ300は、ASADAL/ASSET DB400に格納されている再利用可能な様々なモデルに基づいてユーザの所望する要求事項を満足させるアーキテクチャモデルを設計する(図4のS302参照)。また、システムの内部運用モデルをシステムの内部機能と行為の観点から明細にする(図4のS304参照)。機能を観点とした明細では外部のソフトウェアコンポーネントを使用できるように明細にできるため、ソフトウェアコンポーネントを再利用してシステムを構成できる。また、作成されたアーキテクチャモデルと運用モデルを、有効性検証モジュールによりその有効性を検証できる(図4のS306及びS308参照)。
【0047】
ASADAL/OBJ300で生成された運用モデルは、自動コード生成モジュールの入力となり、実行可能なターゲットコードとシミュレーションコードが自動生成される(図4のS310及びS312参照)。このように得られたシミュレーションコードは、仮想環境で制御部と環境オブジェクトが互いに連動して動作できるようにするコードであり、ターゲットコードは実際システムにダウンロードされて制御器能を行うコードである。ASADAL/OBJ300で自動生成された実行コードは、応用プログラムのテスティング段階で用いられ、ASADAL/ASSET DB400に格納される。
【0048】
第3の実施形態:応用プログラムのテスト
応用プログラムのテスティングは、(i)シミュレーションコードと環境オブジェクトを通じた仮想シミュレーションと、(ii)ターゲットコードを実際システムにダウンロードしてテストする方式とにより行われる。
【0049】
まず、仮想環境シミュレーションを通じたテストは、ASADAL/OBJ300の環境モデリングモジュールを用いてプログラムが配置され、実行される仮想環境を明細にする(図5のS314参照)。制御部のコードと環境オブジェクトとの間のデータとイベントをマッピングするために、仮想I/Oマッピングモジュールにより相互間のデータをマッピングさせ、マッピング情報は、ASADAL/ASSET DB400に格納させる(図6のS316参照)。次に、ASADAL/OBJ300は、システムを制御する制御ソフトウェアと制御ソフトウェアを配置して仮想環境でテストできるように作成された3次元シミュレーションモジュールにより制御ソフトウェアを直観的にテストでき、このような仮想環境により自動生成されたコードが仮想環境で意図通りに作動するかを検証できる(図7のS320ないしS324参照)。
【0050】
仮想環境テストで実行コードが検証されると、実行コードを実際システムにダウンロードして正常に作動するか否かを検証しなければならない。ASADAL/OBJ300は、実際システムと仮想シミュレーション環境が互いにデータとイベントをやりとりできる実際I/Oマッピング情報を有することで、実行コードが実際システムで正常に作動するか否かを検証できる(図8のS326参照)。
【0051】
第4の実施形態:応用プログラム維持保守
ASADAL/OBJ300の仮想シミュレーションでテストの結果が予想と異なる場合には、ソフトウェアコンポーネントで発生したエラーを以下のような方法により修正できる。
(1)まず、フィーチャモデル自体に修正が必要であるか否かを考慮する。この場合、ASADAL/FORM100を通じて修正でき、このように修正されたフィーチャモデルは、ASADAL/ASSET DB400に格納し、ASADAL/COMP200でソフトウェアコンポーネントを再び生成する。
【0052】
(2)フィーチャモデルの修正が不要な場合には、資産コンポーネントに修正が必要であるか否かを考慮する。資産コンポーネントに修正が必要な場合には、ASADAL/COMP200で修正してASADAL/ASSET DB400に格納し、ASADAL/COMP200でソフトウェアコンポーネントを再び生成する。
【0053】
(3)フィーチャモデルと資産コンポーネントに修正が不要な場合には、ASADAL/OBJ300で運用モデリングモジュールを通じて内部明細を修正する。
このような方法により、ソフトウェアコンポーネントで発生した問題を見つけ、ASADAL/OBJ300は、コード自動生成を通じて修正されたコードで仮想環境でテストしてソフトウェアを開発できる。
【図面の簡単な説明】
【0054】
【図1】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境を支援するアサダル(ASADAL)フレームワークの構成を示すブロック図である。
【図2】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、フィーチャモデリングとフィーチャ選択を行うASADAL/FORMの構成及びデータ処理の流れを示すブロック図である。
【図3】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、資産コンポーネントとソフトウェアコンポーネントの生成及び形状管理を行うASADAL/COMPの構成及びデータ処理の流れを示すブロック図である。
【図4】本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるASADALのASADAL/OBJ300の制御部の機能とそのデータ処理の流れを示すブロック図である。
【図5】本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるASADALのASADAL/OBJ300の環境オブジェクトの機能とそのデータ処理の流れを示すブロック図である。
【図6】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び3次元仮想シミュレーションテストを行うASADAL/OBJの構成及びデータ処理の流れを示すブロック図である。
【図7】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び3次元仮想シミュレーションテストを行うASADAL/OBJの構成及びデータ処理の流れを示すブロック図である。
【図8】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び3次元仮想シミュレーションテストを行うASADAL/OBJの構成及びデータ処理の流れを示すブロック図である。
【図9】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、モデル間の一貫性検証及び有効性の検査を行うASADAL/ANALYZERの構成及びデータ処理の流れを示すブロック図である。

【特許請求の範囲】
【請求項1】
フィーチャ指向(feature‐oriented)ソフトウェア製品ラインの開発環境を提供するシステムであって、
特定領域に対するフィーチャモデリングと前記フィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するASADAL/FORMと、
前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行うASADAL/COMPと、
前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを通じた検証を行うASADAL/OBJと、
前記ASADAL/FORM、ASADAL/COMP及びASADAL/OBJにより生成されたデータを格納するASADAL/ASSET DBと、
前記ASADAL/ASSET DBに格納されているデータ間の一貫性を検証するASADAL/ANALYZERと
を含むことを特徴とするシステム。
【請求項2】
前記ASADAL/FORMは、
前記領域の分析を通じて得た候補フィーチャに基づいて前記領域と関連するシステムの共通点を表す必須フィーチャ、前記システム間の相違点を表す選択的フィーチャ及び択一的フィーチャを分類してトリー構造から構成されるフィーチャモデルを作成するフィーチャモデリングエディタと、
前記フィーチャ間の関係及び前記フィーチャモデルの合成規則に従う明細の如何を検証するフィーチャモデル検証モジュールと、
前記フィーチャモデルにおけるフィーチャの説明及び合成規則を利用して前記応用プログラムの要求事項に合った有効なフィーチャを選択するフィーチャ選択モジュールと
を含むことを特徴とする請求項1に記載のシステム。
【請求項3】
前記フィーチャモデリングエディタ及び前記フィーチャ選択モジュールでそれぞれ生成された前記フィーチャモデル及び前記フィーチャ選択情報は、前記ASADAL/ASSET DBに格納されることを特徴とする請求項2に記載のシステム。
【請求項4】
前記ASADAL/COMPは、
前記フィーチャモデルにおいて、選択的フィーチャ及び択一的フィーチャに応じて資産コンポーネントがどのように対応するかを、マクロを利用して明細する資産コンポーネント開発モジュールと、
前記マクロの作成時に発生する文法的な誤謬と明細の有効性を検証する資産コンポーネント検証モジュールと、
前記フィーチャ選択情報に基づいて資産コンポーネント明細に含まれているマクロを処理して選択されたフィーチャを具現するコードを変化させ、ソフトウェアコンポーネントを自動生成するソフトウェアコンポーネント生成モジュールと、
前記ソフトウェアコンポーネントの生成時に用いられたフィーチャ選択情報と資産コンポーネント情報に基づいて生成された形状管理情報を管理し、前記ソフトウェアコンポーネントに問題点が発見された場合は、フィーチャモデルと資産コンポーネントに対する逆追跡性を提供するコンポーネント形状管理モジュールと
を含むことを特徴とする請求項1に記載のシステム。
【請求項5】
前記資産コンポーネント開発モジュールは、前記ASADAL/ASSET DBから前記フィーチャモデルの伝達を受けて前記資産コンポーネントを生成し、前記生成された資産コンポーネントを前記ASADAL/ASSET DBに格納し、
前記ソフトウェアコンポーネント生成モジュールは、前記ASADAL/ASSET DBから前記フィーチャ選択情報と前記資産コンポーネントの伝達を受けて前記ソフトウェアコンポーネントを生成し、前記生成されたソフトウェアコンポーネントを前記ASADAL/ASSET DBに格納し、
前記形状管理モジュールで生成された前記形状管理情報は、前記ASADAL/ASSET DBに格納されることを特徴とする請求項4に記載のシステム。
【請求項6】
前記ASADAL/OBJは、
前記フィーチャモデルに表現されているフィーチャの非機能的要素を実質的なシステムでどのように配置するかを設計してソフトウェアアーキテクチャを生成するソフトウェアアーキテクチャモデリングモジュールと、
前記ソフトウェアアーキテクチャを参照して前記システムの有する機能と行為を明細にして前記システムを表現する運用モデルを生成する運用モデリングモジュールと、
前記ソフトウェアアーキテクチャモデリングモジュール及び運用モデリングモジュールで生成されたソフトウェアアーキテクチャ及び運用モデルに含まれている明細の不一致性及び誤謬を検証するモデル有効性検証モジュールと、
前記運用モデルに基づいて得た機能と行為の明細を利用してターゲットプログラム言語によりターゲットコード及びシミュレーションコードを生成する自動コード生成モジュールと
を含むことを特徴とする請求項1に記載のシステム。
【請求項7】
前記ASADAL/OBJは、
前記応用プログラムが配置されて実行されるシステムを仮想でモデリングして環境オブジェクトを生成する環境オブジェクトモデリングモジュールと、
前記ターゲットコードを、前記システムの制御のための応用プログラムを開発する制御部で実行する制御器シミュレーションモジュールと、
前記シミュレーションコードを前記環境オブジェクトで実行する環境シミュレーションモジュールと、
前記制御器シミュレーションモジュールと前記環境シミュレーションモジュールとの間で送受信されるデータとイベントを連結する仮想入出力マッピングモジュールと、
前記システムと前記環境シミュレーションモジュールとの間で送受信されるデータとイベントを連結する実際入出力マッピングモジュールと
を更に含むことを特徴とする請求項6に記載のシステム。
【請求項8】
前記環境オブジェクトモデリングモジュールは、前記環境オブジェクトの形状をモデリングするために、様々な形状を有するシステムを視覚的に表現するための3次元形態を生成し、前記環境シミュレーションモジュールは、前記3次元形態を前記運用モデルとマッチして3次元シミュレーションを行うことを特徴とする請求項7に記載のシステム。
【請求項9】
前記ターゲットコードは、前記システムから実際システム制御器にダウンロードされ、前記システムは、前記実際入出力マッピングモジュールにより前記環境シミュレーションモジュールと、イベントとデータの通信を行ってシミュレーションを行うことを特徴とする請求項7に記載のシステム。
【請求項10】
前記運用モデリングモジュールは、機能明細の方法により前記システムの外部から入力される再利用可能なソフトウェアコンポーネントを用いることを特徴とする請求項6に記載のシステム。
【請求項11】
前記ソフトウェアアーキテクチャモデリングモジュールは、生成されたソフトウェアアーキテクチャを前記ASADAL/ASSET DBに格納し、
前記運用モデリングモジュールは、前記ASADAL/ASSET DBに格納されている前記ソフトウェアアーキテクチャの伝達を受けて前記運用モデルを生成し、前記生成された運用モデルを前記ASADAL/ASSET DBに格納することを特徴とする請求項6に記載のシステム。
【請求項12】
前記ASADAL/ANALYZERは、
前記フィーチャモデルと前記資産コンポーネントとの間の一貫性を検査するモジュールと、
前記運用モデルの一貫性を検査するモジュールと、
前記アーキテクチャモデルと前記ソフトウェアコンポーネントとの間の一貫性を検査するモジュールと、
前記ソフトウェアコンポーネントと前記運用モデルとの間の一貫性を検査するモジュールと
を含むことを特徴とする請求項1に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2007−12003(P2007−12003A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2005−215541(P2005−215541)
【出願日】平成17年7月26日(2005.7.26)
【出願人】(598057475)學校法人浦項工科大學校 (5)
【出願人】(505282042)ポステック・アカデミー‐インダストリー・ファウンデーション (34)
【Fターム(参考)】