(57)【要約】      （修正有）【課題】フィーチャ指向ソフトウェア製品ライン工学の方法論を支援するフィーチャ指向ソフトウェア再利用の開発環境システムを提供する。【解決手段】特定領域に対するフィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するＡＳＡＤＡＬ/ＦＯＲＭ１００と、前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行う同/ＣＯＭＰ２００と、前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを通じた検証を行う同/ＯＢＪ３００と、これらにより生成されたデータを格納する同/ＡＳＳＥＴ ＤＢ４００と、これに格納されているデータ間の一貫性を検証する同/ＡＮＡＬＹＺＥＲ５００とを含む。【選択図】図１
2007012003.tif 000002
【特許請求の範囲】
【請求項１】
フィーチャ指向(ｆｅａｔｕｒｅ‐ｏｒｉｅｎｔｅｄ)ソフトウェア製品ラインの開発環境を提供するシステムであって、
特定領域に対するフィーチャモデリングと前記フィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するＡＳＡＤＡＬ/ＦＯＲＭと、
前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行うＡＳＡＤＡＬ/ＣＯＭＰと、
前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを通じた検証を行うＡＳＡＤＡＬ/ＯＢＪと、
前記ＡＳＡＤＡＬ/ＦＯＲＭ、ＡＳＡＤＡＬ/ＣＯＭＰ及びＡＳＡＤＡＬ/ＯＢＪにより生成されたデータを格納するＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢと、
前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納されているデータ間の一貫性を検証するＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲと
を含むことを特徴とするシステム。
【請求項２】
前記ＡＳＡＤＡＬ/ＦＯＲＭは、
前記領域の分析を通じて得た候補フィーチャに基づいて前記領域と関連するシステムの共通点を表す必須フィーチャ、前記システム間の相違点を表す選択的フィーチャ及び択一的フィーチャを分類してトリー構造から構成されるフィーチャモデルを作成するフィーチャモデリングエディタと、
前記フィーチャ間の関係及び前記フィーチャモデルの合成規則に従う明細の如何を検証するフィーチャモデル検証モジュールと、
前記フィーチャモデルにおけるフィーチャの説明及び合成規則を利用して前記応用プログラムの要求事項に合った有効なフィーチャを選択するフィーチャ選択モジュールと
を含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記フィーチャモデリングエディタ及び前記フィーチャ選択モジュールでそれぞれ生成された前記フィーチャモデル及び前記フィーチャ選択情報は、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納されることを特徴とする請求項２に記載のシステム。
【請求項４】
前記ＡＳＡＤＡＬ/ＣＯＭＰは、
前記フィーチャモデルにおいて、選択的フィーチャ及び択一的フィーチャに応じて資産コンポーネントがどのように対応するかを、マクロを利用して明細する資産コンポーネント開発モジュールと、
前記マクロの作成時に発生する文法的な誤謬と明細の有効性を検証する資産コンポーネント検証モジュールと、
前記フィーチャ選択情報に基づいて資産コンポーネント明細に含まれているマクロを処理して選択されたフィーチャを具現するコードを変化させ、ソフトウェアコンポーネントを自動生成するソフトウェアコンポーネント生成モジュールと、
前記ソフトウェアコンポーネントの生成時に用いられたフィーチャ選択情報と資産コンポーネント情報に基づいて生成された形状管理情報を管理し、前記ソフトウェアコンポーネントに問題点が発見された場合は、フィーチャモデルと資産コンポーネントに対する逆追跡性を提供するコンポーネント形状管理モジュールと
を含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記資産コンポーネント開発モジュールは、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢから前記フィーチャモデルの伝達を受けて前記資産コンポーネントを生成し、前記生成された資産コンポーネントを前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納し、
前記ソフトウェアコンポーネント生成モジュールは、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢから前記フィーチャ選択情報と前記資産コンポーネントの伝達を受けて前記ソフトウェアコンポーネントを生成し、前記生成されたソフトウェアコンポーネントを前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納し、
前記形状管理モジュールで生成された前記形状管理情報は、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納されることを特徴とする請求項４に記載のシステム。
【請求項６】
前記ＡＳＡＤＡＬ/ＯＢＪは、
前記フィーチャモデルに表現されているフィーチャの非機能的要素を実質的なシステムでどのように配置するかを設計してソフトウェアアーキテクチャを生成するソフトウェアアーキテクチャモデリングモジュールと、
前記ソフトウェアアーキテクチャを参照して前記システムの有する機能と行為を明細にして前記システムを表現する運用モデルを生成する運用モデリングモジュールと、
前記ソフトウェアアーキテクチャモデリングモジュール及び運用モデリングモジュールで生成されたソフトウェアアーキテクチャ及び運用モデルに含まれている明細の不一致性及び誤謬を検証するモデル有効性検証モジュールと、
前記運用モデルに基づいて得た機能と行為の明細を利用してターゲットプログラム言語によりターゲットコード及びシミュレーションコードを生成する自動コード生成モジュールと
を含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記ＡＳＡＤＡＬ/ＯＢＪは、
前記応用プログラムが配置されて実行されるシステムを仮想でモデリングして環境オブジェクトを生成する環境オブジェクトモデリングモジュールと、
前記ターゲットコードを、前記システムの制御のための応用プログラムを開発する制御部で実行する制御器シミュレーションモジュールと、
前記シミュレーションコードを前記環境オブジェクトで実行する環境シミュレーションモジュールと、
前記制御器シミュレーションモジュールと前記環境シミュレーションモジュールとの間で送受信されるデータとイベントを連結する仮想入出力マッピングモジュールと、
前記システムと前記環境シミュレーションモジュールとの間で送受信されるデータとイベントを連結する実際入出力マッピングモジュールと
を更に含むことを特徴とする請求項６に記載のシステム。
【請求項８】
前記環境オブジェクトモデリングモジュールは、前記環境オブジェクトの形状をモデリングするために、様々な形状を有するシステムを視覚的に表現するための３次元形態を生成し、前記環境シミュレーションモジュールは、前記３次元形態を前記運用モデルとマッチして３次元シミュレーションを行うことを特徴とする請求項７に記載のシステム。
【請求項９】
前記ターゲットコードは、前記システムから実際システム制御器にダウンロードされ、前記システムは、前記実際入出力マッピングモジュールにより前記環境シミュレーションモジュールと、イベントとデータの通信を行ってシミュレーションを行うことを特徴とする請求項７に記載のシステム。
【請求項１０】
前記運用モデリングモジュールは、機能明細の方法により前記システムの外部から入力される再利用可能なソフトウェアコンポーネントを用いることを特徴とする請求項６に記載のシステム。
【請求項１１】
前記ソフトウェアアーキテクチャモデリングモジュールは、生成されたソフトウェアアーキテクチャを前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納し、
前記運用モデリングモジュールは、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納されている前記ソフトウェアアーキテクチャの伝達を受けて前記運用モデルを生成し、前記生成された運用モデルを前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納することを特徴とする請求項６に記載のシステム。
【請求項１２】
前記ＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲは、
前記フィーチャモデルと前記資産コンポーネントとの間の一貫性を検査するモジュールと、
前記運用モデルの一貫性を検査するモジュールと、
前記アーキテクチャモデルと前記ソフトウェアコンポーネントとの間の一貫性を検査するモジュールと、
前記ソフトウェアコンポーネントと前記運用モデルとの間の一貫性を検査するモジュールと
を含むことを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィーチャ指向(ｆｅａｔｕｒｅ‐ｏｒｉｅｎｔｅｄ)ソフトウェア製品ラインの開発環境に関するものであって、より詳しくは、特定ドメイン(または領域)に対してソフトウェア製品ライン方法論を適用してドメインに対するフィーチャ分析と応用プログラムの開発のためのフィーチャ選択、再利用可能な資産コンポーネントの生成、マクロ処理を通じたソフトウェアコンポーネントの生成とコンポーネントに対する形状管理、ソフトウェアコンポーネントを利用した応用ソフトウェアの開発と仮想環境におけるソフトウェアテスティングを支援することによって、ソフトウェア製品ラインの開発を容易にするフィーチャ指向ソフトウェア製品ラインの開発環境を具現するシステムに関する。
【背景技術】
【０００２】
近年、ソフトウェア開発の生産性を向上しようとするソフトウェア再利用技術の焦点は、ソースコードの再利用からソフトウェア設計の再利用へ、再びソフトウェア設計の再利用から領域工学に基づく再利用へと、その中心が移動してきた。このようにソフトウェア再利用技術が変化した理由は、ソースコードを再利用するには設計の再利用が先行されなければならず、また設計を再利用するためには領域工学を通じて該当応用領域で共通して使用される領域資産を先に開発しなければならなかったためである。そのため、ここ数年間ソフトウェア再利用に関する研究は、領域分析及び領域工学に重点をおいて行われてきた。
【０００３】
ソフトウェア再利用技術に関する研究における領域工学的な接近方法は、該当応用領域に対して広い範囲で分析を行い、これにより再利用性の高いコンポーネントを開発することである。しかしながら、このような接近方法は、多くの場合、領域内のすべての製品を含ませようとする傾向があり、これによってソフトウェアの開発コストや期間が増大するという問題が生じたりした。また、ソフトウェア再利用性を最大化するための取り組みとして、ソフトウェア構造の階層化と情報隠匿のためのカプセル化を強調すると、結果的にシステムの性能低下を招くという問題点があった。このように、該当応用領域を中心にソフトウェアを再利用するにあたって、適切な領域の範囲と再利用性の程度を決定することは難しい問題である。
【０００４】
上述した問題のうちの一部を解決するために、ソフトウェア製品ライン工学(ｓｏｆｔｗａｒｅ ｐｒｏｄｕｃｔ ｌｉｎｅ ｅｎｇｉｎｅｅｒｉｎｇ)のパラダイムが提示されている。このパラダイムによれば、ソフトウェア再利用は、特定ソフトウェア製品ラインを再利用するために、慎重に立てられた計画の下でなされる。すなわち、ソフトウェア製品ライン工学によれば、企業が参入しようとする市場状況を分析した結果に基づき、領域分析をしなければならない範囲と、これに基づくソフトウェア製品ライン資産の開発範囲を明確にすることができる。
【０００５】
ソフトウェア製品ライン工学は、ソフトウェア製品ラインの中核となるソフトウェア資産を開発するために、１つまたはその以上の市場を目標とする類維な機能を提供するソフトウェア間の共通点(ｃｏｍｍｏｎａｌｉｔｙ)と相違点(ｖａｒｉａｂｉｌｉｔｙ)を分析し、これに基づいて変化を受け入れられるソフトウェアアーキテクチャと再利用可能なコンポーネントを開発する方策を提示する。最近は、このようなソフトウェアの戦略的な再利用に向けたソフトウェア製品ライン工学への関心と認識が次第に高まっており、これに対する研究も盛んに行われている。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このようなソフトウェア製品ライン工学の概念に従ってドメインに対する共通点と相違点の分析、柔軟なソフトウェアアーキテクチャと再利用コンポーネントの開発など、ソフトウェア製品ライン工学の全体的な方法論を支援する体系的、かつ効果的なソフトウェアの開発環境を提供するシステムはまだ提示されていない。
【０００７】
したがって、本発明は上記事情に鑑みてなされたものであり、その目的とするところは、フィーチャ指向ソフトウェア製品ライン工学の方法論を支援するアサダル(Ａ Ｓｙｓｔｅｍ Ａｎａｌｙｓｉｓ ａｎｄ Ｄｅｓｉｇｎ Ａｉｄｅｄ ｔｏｏＬ：以下、「ＡＳＡＤＡＬ」と記す)フレームワークを定義し、ＡＳＡＤＡＬを構成する各モジュールの構造や、モジュールの機能及びデータの流れを定義することで、ソフトウェア製品ラインの方法論を支援するフィーチャ指向ソフトウェア再利用の開発環境システムを提供することにある。
【０００８】
また、本発明は、このような体系的な開発環境を利用して、ドメインに対して共通点と相違点を分析したフィーチャモデリングの結果に基づいて再利用可能なソフトウェア資産を得るほか、ソフトウェア資産を活用して効率よく応用ソフトウェアを開発し、これを３次元シミュレーションに基づいてテストしてみることで、窮極的にソフトウェア製品ライン工学の概念に従った高い品質のソフトウェアを得ることを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のフィーチャ指向ソフトウェア製品ラインの開発環境を提供するシステムは、特定領域に対するフィーチャモデリングと前記フィーチャモデリングにより生成されたフィーチャの中から応用プログラムに該当するフィーチャを選択するＡＳＡＤＡＬ/ＦＯＲＭと、前記フィーチャ選択情報に基づいて資産コンポーネントを開発し、マクロ処理を通じたソフトウェアコンポーネントの生成及び前記ソフトウェアコンポーネントの形状管理を行うＡＳＡＤＡＬ/ＣＯＭＰと、前記応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを介した検証を行うＡＳＡＤＡＬ/ＯＢＪと、前記ＡＳＡＤＡＬ/ＦＯＲＭ、ＡＳＡＤＡＬ/ＣＯＭＰ及びＡＳＡＤＡＬ/ＯＢＪにより生成されたデータを格納するＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢと、前記ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢに格納されているデータ間の一貫性を検証するＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲとを含むことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、フィーチャ指向ソフトウェア再利用の開発環境を提供するシステムであるＡＳＡＤＡＬは、類似するシステムをなす領域内のシステムの機能的、環境的、技術的及び具現的な共通点と相違点を明確に分析してコンポーネント開発に反映することで、コンポーネントの再利用性と適応可能性を高める利点を有する。
【００１１】
また、本発明による開発環境においては、ソフトウェアの開発初期段階からモデルを検証し、シミュレーションによりモデルの誤謬を見つけることができる。したがって、このような分析によりモデルの信頼度を高めることができ、ソフトウェアの開発初期段階で重大な誤謬を検査できるので、開発コストを大幅に低減できるという効果を奏する。
【００１２】
本発明による３次元シミュレーションを通じたソフトウェア検査は、実際に現実世界と類似する環境を３次元モデリングにより構築し、これに基づいてソフトウェア検査及び評価を行うため、多様な検査を少ない費用で行うことができるという長所がある。特に、リアルタイム制御システムは、組み込みシステム(ｅｍｂｅｄｅｄ ｓｙｓｔｅｍ)である場合が殆どであるため、外部のハードウェア環境と内部のソフトウェアシステムが正常に相互作用しているかをソフトウェア的に検査し評価することは、ソフトウェアの信頼度を向上させることができるだけでなく、システムの検査コストも大幅に低減できる。
【００１３】
本発明による開発環境は、ソフトウェアの分析や、設計、具現及びテスティングの段階を全て支援する体系的なフレームワークを提供することによって、各段階ごとに意味ある産出物を得ることができるという効果がある。また、本発明による開発環境は、ソフトウェアの効率的な再利用が可能に設計されており、このような再利用技法は、様々な分野のソフトウェアの開発に広範囲に適用されることができる。
【発明を実施するための最良の形態】
【００１４】
以下、添付の図面を参照しつつ本発明の好適な実施の形態を説明する。
図１は、本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境であるＡＳＡＤＡＬフレームワークの構成を示すブロック図である。本発明によるシステムは、５つの構成要素であるＡＳＡＤＡＬ/ＦＯＲＭ１００、ＡＳＡＤＡＬ/ＣＯＭＰ２００、ＡＳＡＤＡＬ/ＯＢＪ３００、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００及びＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００を含む。図１に示されているシステムの構成要素のうち、ＡＳＡＤＡＬ/ＦＯＲＭ１００、ＡＳＡＤＡＬ/ＣＯＭＰ２００、ＡＳＡＤＡＬ/ＯＢＪ３００及びＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００は、１つのコンピュータまたはネットワークで連結されている複数のコンピュータで実行できるソフトウェアに具現されることができる。
【００１５】
本発明によるシステムにおいて、ＡＳＡＤＡＬ/ＦＯＲＭ１００は、領域に対するフィーチャモデリングと応用プログラムに該当するフィーチャを選択する機能を行い、ＡＳＡＤＡＬ/ＣＯＭＰ２００は、資産コンポーネントの開発とマクロプロセシングを通じたソフトウェアコンポーネントの生成及びコンポーネント形状管理の機能を行う。ＡＳＡＤＡＬ/ＯＢＪ３００は、応用ソフトウェアを開発するためのアーキテクチャモデリング及び運用モデリングと自動コード生成、仮想テストベッドの構築及びシミュレーションを介した検証機能を提供する。また、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００は、以上で説明した各モジュールで生成された産出物を格納し、ＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されている産出物の間の一貫性を検証する。
【００１６】
以下に、本発明による開発フレームワークを提供するシステムであるＡＳＡＤＡＬを構成する各モジュールについて、添付の図面を参照して、詳細に説明する。
ＡＳＡＤＡＬ/ＦＯＲＭ
図２は、本発明による開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＦＯＲＭ１００の構成及びデータ処理の流れを示すブロック図である。ＡＳＡＤＡＬ/ＦＯＲＭ１００の主な機能は、ソフトウェア製品ライン分析者がドメイン(または領域)を分析して関連するシステム間の共通点と相違点をフィーチャ単位で取り出してドメインに対するフィーチャモデルを生成することや、応用プログラム開発者がシステムを分析して応用プログラムの要求事項を満足させるフィーチャを選択できるようにすることであって、これらの機能について、詳細に説明すれば、以下の通りである。
【００１７】
フィーチャとは、特定領域に関連する人が関心がある領域内での属性または特徴を意味する。例えば、ユーザマニュアルやソフトウェア文書、領域専門家らの間で用いられる用語を分析することによって、フィーチャを見つけることができる。フィーチャモデリングとは、多くの候補フィーチャの中から領域範囲に属するシステム間の共通点と相違点を表すフィーチャを見つけ、それらの関係及び合成規則などを明細にする過程をいう。すなわち、フィーチャモデリングとは、類似している種類のシステムの間で何が共通しているか、どんな部分で差があり、今後どのような差が生じるかを明確にする過程を意味する。
【００１８】
ＡＳＡＤＡＬ/ＦＯＲＭ１００は、フィーチャモデリングを支援するエディタモジュールによりフィーチャモデルを作成し、このように作成されたフィーチャモデルは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納して他のモジュールが使用できるようにする。すなわち、図２を参照すれば、製品ライン分析者１０２は、ドメインを分析して候補フィーチャを得る(Ｓ１１０)。このようにして得られた候補フィーチャに基づいてフィーチャモデルエディタにより、システムの共通点を表す必須フィーチャ、相違点を表す選択的フィーチャ及び択一的フィーチャを分類してトリー構造のフィーチャモデルを作成する(Ｓ１２０)。
【００１９】
ＡＳＡＤＡＬ/ＦＯＲＭ１００は、システム間の共通点と相違点を表す必須フィーチャ及び選択的フィーチャなどを探してそれらの関係及び合成規則を明細にし、製品ライン分析者１０２が作成したフィーチャモデルが合成規則に合わせて明細にされているか、フィーチャ間の関係が正常に設定されているかなどを検証できる機能を支援する(Ｓ１３０)。このようなフィーチャモデルの検証過程を通じてソフトウェア製品ライン分析者１０２は、有効なフィーチャモデルを得ることができる。
【００２０】
領域内に属する応用プログラムの要求事項は、その領域に対するフィーチャモデルにおいて相違点を表すフィーチャの中から応用プログラムに該当するフィーチャと共通点を表す必須フィーチャを選択することで、明細にすることができる。応用プログラム開発者は、ＡＳＡＤＡＬ/ＦＯＲＭ１００のフィーチャ選択モジュールを通じて領域分析者により作成されたフィーチャモデルからフィーチャの説明や合成規則などを利用して応用プログラムの要求事項に合った有効なフィーチャの集まりが生成されるようにフィーチャを選択する。
【００２１】
すなわち、図２を参照すれば、応用プログラム開発者１０４は、応用プログラムを分析してその要求事項を決定した後(Ｓ１４０)、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されているフィーチャモデルを持ってきて、その要求事項を満足させるフィーチャを選択する(Ｓ１５０)。このようなフィーチャ選択情報は、再びＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納される。
【００２２】
ＡＳＡＤＡＬ/ＣＯＭＰ
図３は、本発明による開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＣＯＭＰ２００の機能及びデータ処理の流れを示すブロック図である。ＡＳＡＤＡＬ/ＣＯＭＰ２００の主な機能は、ＡＳＡＤＡＬ/ＦＯＲＭ１００で作成されたフィーチャモデルとフィーチャ選択情報に基づいて再利用可能な資産コンポーネントを作成することや、資産コンポーネントをマクロ処理してフィーチャ選択に合うソフトウェアコンポーネントを生成すること、そしてこのようなコンポーネントに対する形状管理を行うことである。
【００２３】
以下に、図３を参照して、ＡＳＡＤＡＬ/ＣＯＭＰ２００の主要機能の1つである資産コンポーネントの開発過程について、詳細に説明する。
資産コンポーネントは、多様な要求事項を有する複数の応用プログラムで再利用できるように、フィーチャモデルで検索された応用プログラム間の相違点を表す択一的フィーチャ及び選択的フィーチャを中心に、そのようなフィーチャが選択される場合と選択されない場合にそれぞれ適切に対応できるように作成されなければならない。また、資産コンポーネントは、資産コンポーネントの作成時に用いることができるフィーチャの選択如何、それに伴う不要なコードの除去及び適切なコードの挿入を支援するマクロを定義する。
【００２４】
図３を参照すれば、ＡＳＡＤＡＬ/ＣＯＭＰ２００は、資産コンポーネントを作成するためにＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００から該当ドメインに対して作成したフィーチャモデルを持ってくる。ＡＳＡＤＡＬ/ＣＯＭＰ２００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００から持ってきたフィーチャモデルで定義された必須フィーチャの中から関連性の高いものをまとめて、これらを具現する資産コンポーネントを定義し、その資産コンポーネントに関連する選択的フィーチャ及び択一的フィーチャが存在するなら、それらの選択如何によってコンポーネントが、どのように対応すべきかをマクロを用いて明細にする(Ｓ２４０)。このように作成された資産コンポーネントは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納され、ソフトウェアコンポーネントの生成に用いられる。
【００２５】
ＡＳＡＤＡＬ/ＣＯＭＰ２００は、資産コンポーネントの作成時に用いることができるフィーチャの選択如何、それに伴う不要なコードの除去及び適切なコードの挿入を支援するマクロを定義するが、資産コンポーネント検証モジュールは、マクロの作成時に発生する文法的な誤謬と明細の有効性を検証できる機能を支援する(Ｓ２１０)。資産コンポーネントを検証する作業は、ソフトウェアコンポーネントの開発時にマクロ処理の基礎作業となるため、マクロの処理前に必ず行われなければならない。
【００２６】
図３に示されるように、ＡＳＡＤＡＬ/ＣＯＭＰ２００は、フィーチャの選択情報と資産コンポーネントをＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００から持ってきて、このように得られたフィーチャ選択情報と資産コンポーネントに基づいて資産コンポーネント明細に含まれているマクロをその意味に合わせて処理して、選択されていないフィーチャを具現しているコードを除去し、選択されたフィーチャを具現するコードを適切に変化させてソフトウェアコンポーネントを自動生成する(Ｓ２２０)。このように生成されたソフトウェアコンポーネントは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納され、フィーチャ選択情報とともに形状管理モジュールに送られ、形状管理される。
【００２７】
すなわち、形状管理モジュールは、ソフトウェアコンポーネントの生成時に用いられたフィーチャ選択情報と資産コンポーネント情報を管理して、ソフトウェアコンポーネントに問題点が発見された場合、フィーチャモデルと資産コンポーネントに対する逆追跡性を提供し、コンポーネントのバージョンを管理する(Ｓ２３０)。
【００２８】
例えば、ＡＳＡＤＡＬ/ＣＯＭＰ２００で作成したソフトウェアコンポーネントが、外部モジュールで使用中に問題が発生すれば、ユーザはその問題の解決のためにＡＳＡＤＡＬ/ＣＯＭＰ２００の形状管理モジュールからそのソフトウェアコンポーネントのフィーチャ選択情報と資産コンポーネントのバージョン情報を得ることで、このソフトウェアコンポーネントが作られるまでの形跡を得ることができる。このような情報を分析すれば、ソフトウェアコンポーネントの問題点を引き起こした根本的な原因を探して修正されたソフトウェアコンポーネントを生成することができる。
【００２９】
ＡＳＡＤＡＬ/ＯＢＪ
ＡＳＡＤＡＬ/ＯＢＪ３００は、大きく応用プログラムに対する設計及び具現と、仮想テストベッド上のシミュレーションを通じた応用プログラムに対する検証作業を行う。また、ＡＳＡＤＡＬ/ＯＢＪ３００において、制御部はシステムを制御するための応用プログラムを開発するための部分であり、環境オブジェクトは、応用プログラムが実際に配置されて実行される仮想環境を開発するための部分である。
【００３０】
より具体的に説明すれば、ＡＳＡＤＡＬ/ＯＢＪ３００は、応用プログラムの設計及び具現過程において、この応用プログラムの要求事項に基づいてＡＳＡＤＡＬ/ＣＯＭＰ２００で生成されたソフトウェアコンポーネントを用いる。ＡＳＡＤＡＬ/ＯＢＪ３００において、ソフトウェアコンポーネントは、行為及び機能明細言語を通して用いられ、これらのコンポーネント及びＡＳＡＤＡＬ/ＣＯＭＰ２００で生成されたソフトウェアコンポーネントの関係を表すアーキテクチャモデリングが提供される。また、仮想テストベッド上のシミュレーションを通じた応用プログラムの検証は、ＡＳＡＤＡＬ/ＯＢＪ３００の環境オブジェクトモデリングを通じて応用プログラムをテストする仮想環境を明細にして３次元シミュレーションにより行われる。
【００３１】
図４は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００の制御部の機能とそのデータ処理の流れを示すブロック図である。
まず、ソフトウェアアーキテクチャモデリングモジュールでは、応用プログラム開発者３０１がフィーチャの非機能的要素を実質的なシステムでどのように配置するかを設計する(Ｓ３０２)。すなわち、このモジュールは、現在ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００が有する運用モデルとソフトウェアコンポーネントを効率よく適切に用いて、システムに対してどのようにアーキテクチャを設計するかを決定する。このように生成されたアーキテクチャモデルは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納される。
【００３２】
次に、運用モデリングモジュールは、システムの内部が有する機能と行為を明細にしてシステムを表現する(Ｓ３０４)。ＡＳＡＤＡＬ/ＯＢＪ３００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されているシステムのアーキテクチャを参照して、そのアーキテクチャに合わせてシステムの内部を運用モデリング明細にすることができ、フィーチャに基づいて生成されたソフトウェアコンポーネントを再利用してシステムを構成することもできる。ＡＳＡＤＡＬ/ＯＢＪ３００は、システム運用に必要なソフトウェアコンポーネントを使用できるようにする明細を提供するので、ユーザは便利に外部のソフトウェアコンポーネントを用いることができる。また、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されている他のシステムの同様の機能を有する運用モデルを再利用して用いることができる。
【００３３】
モデルの有効性検査は、各モジュールから得られたモデルが複雑に明細にされる場合に、ロジック分析器により明細の不一致性やモデルの誤謬を探す作業である。ＡＳＡＤＡＬ/ＯＢＪ３００において応用プログラム開発者は、運用モデルとアーキテクチャモデルの有効性を検証して自動コードの生成時に発生し得る誤謬を低減でき、効率を高めることができる(Ｓ３０６及びＳ３０８)。
【００３４】
本発明による開発フレームワークでは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００から持ってきた運用モデルを自動コード生成モジュールの入力としてターゲットプログラム言語により便利にコードを生成できる。すなわち、自動コード生成モジュールにより、ユーザはソフトウェアの開発時間を短縮し、コード作成時に発生する様々な問題を容易に解決できる環境を提供する。ＡＳＡＤＡＬ/ＯＢＪ３００は、３次元仮想シミュレーションでテストするためのシミュレーションコードと実際システムに配置されて作動するターゲットコード(ｔａｒｇｅｔ ｃｏｄｅ)を生成する(Ｓ３１０及びＳ３１２)。したがって、シミュレーションコードは、仮想テスティングの際に環境オブジェクトに連係されてシミュレーションできるように生成され、ターゲットコードは実際システムにダウンロードされて実行できるように生成される。
【００３５】
図５は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００の環境オブジェクトの機能とそのデータ処理の流れを示すブロック図である。
ＡＳＡＤＡＬ/ＯＢＪ３００の大きな特徴の１つは、特定ソフトウェアが配置されて実行されるシステムを仮想でモデリングできる環境を提供することである。このような環境は自動コード生成により得られたコードが実際システムに配置された時、正常に動作できるか否かをテストするためのもので、実際コードが配置される環境を仮想でモデリングすることができる。
【００３６】
図５において、環境オブジェクトモデリングモジュールは、オブジェクトの形態をモデリングするために様々な形状を有するシステムを視覚的に表現するための３次元形態モジュールから構成される(Ｓ３１４)。このような形態モデルは、運用モデル(Ｓ３０４)とマッチされ仮想シミュレーション時に実際オブジェクトの動きを仮想で表現できる(Ｓ３１０)。
【００３７】
図６は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００のＩ/Ｏマッピングの動作を示すためのブロック図である。ＡＳＡＤＡＬ/ＯＢＪ３００においては、制御部と環境オブジェクトとの間のデータとイベントを連結できる仮想入出力(Ｉ/Ｏ)マッピング(Ｓ３１６)と、実際システムと環境オブジェクトとの間のデータとイベントを連結できる実際入出力(Ｉ/Ｏ)マッピング(Ｓ３１８)が可能である。ＡＳＡＤＡＬ/ＯＢＪ３００のシミュレーションモジュールは、ターゲットコードと環境オブジェクトとの間でデータ及びイベントを連結させる入出力対応テーブルモジュールが存在することで、ターゲットコードと環境オブジェクトが連係してシミュレーションできるように支援する。
【００３８】
図７を参照すれば、アーキテクチャモデリングと運用モデリングを通じて得た応用プログラムをテストするために、環境モデリングモジュールで応用プログラムを配置させる環境を生成した後、これらの間のデータ及びイベントをマッピングさせるために、Ｉ/Ｏマッピングモジュールを中間に位置させる。すなわち、応用プログラム開発者は、ＡＳＡＤＡＬ/ＯＢＪ３００で制御部と環境オブジェクトをモデリングした後、これらの間にイベントとデータをマッピングさせてシミュレーションできるＩ/Ｏマッピングモジュールにより連結する(Ｓ３２０ないしＳ３２４)。また、ＡＳＡＤＡＬ/ＯＢＪ３００は、制御部と環境オブジェクトの内部明細を入力として実行可能なシミュレーションコードを生成し、シミュレーションさせる制御器シミュレーションモジュール(またはエンジン)及び環境シミュレーションモジュール(またはエンジン)を含む。ターゲットコードをシミュレーションさせるエンジンと環境をシミュレーションさせるエンジンとが、互いにデータとイベントをやりとりするように調整するＩ/Ｏハンドリングモジュールを支援することで、視覚的、かつ直観的なソフトウェアテスティングが可能になる。このような直観的なテスティングによりユーザはターゲットコードが実際に配置された時、正常に動作可能であるか否かを判断し、システムで予想される問題に迅速に対処できる。
【００３９】
図８は、本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００と実際システムとの間のシミュレーションを示す構成図である。図８を参照すれば、ＡＳＡＤＡＬ/ＯＢＪ３００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００からターゲットコードを実際システム３３０にダウンロードさせた後、実際システム３３０と仮想環境シミュレーション(Ｓ３２８)との間のデータ及びイベントをマッピングさせるために、実際Ｉ/Ｏマッピングモジュール(Ｓ３２６)をそれらの中間に位置させる。このように実際システムが実際オブジェクトに対して送るデータとイベントを仮想環境で予めテストできるので、実際機械に配置する前にコードが正常に動作可能であるか否かをテストでき、テストコストを低減できる。
【００４０】
図９は、本発明によるフィーチャ指向ソフトウェアの製品ラインの開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００の構成を示すブロック図である。本発明によるＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されているモデル間の一貫性を検査することや、該当モデルの明細が有効であるかを検査する機能を行う。すなわち、資産開発者は、フィーチャモデルと資産コンポーネントとの間の一貫性を検証し(Ｓ３３０)、応用プログラム開発者は、運用モデル内部の一貫性、アーキテクチャモデルとソフトウェアコンポーネントとの間の一貫性、ソフトウェアコンポーネントと運用モデルとの間の一貫性を検証できる(Ｓ３３２ないしＳ３３６)。このようなモデル検査機能は、設計及びコード生成時に必ず行われる過程であり、このような過程がなければ、自動的に生成されたコードの正しい動作を保証できなくなる。
【００４１】
以上で説明したＡＳＡＤＡＬフレームワークが具体的にどのような機能を支援するかについて、(１)資産開発、(２)応用プログラムの開発、(３)応用プログラムのテスト、(４)応用プログラムの維持保守の観点から見た実施形態について説明する。
第１の実施形態:資産開発
以上で説明した本発明によるＡＳＡＤＡＬのモジュールを用いて資産コンポーネントを開発する方法は、以下の通りである。
【００４２】
すなわち、ＡＳＡＤＡＬフレームワークは、フィーチャを中心にシステムを分析することを基本とする。したがって、資産コンポーネントを開発する前に、領域に対する共通点と相違点の分析を通じて候補フィーチャを得て、ＡＳＡＤＡＬ/ＦＯＲＭ１００のフィーチャモデリングモジュールを用いて完成したフィーチャモデルを作成する(図２のＳ１１０及びＳ１２０参照)。フィーチャモデル自体の有効性を検証してから検証されたフィーチャモデルはＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納する(図２のＳ１３０参照)。
【００４３】
ＡＳＡＤＡＬ/ＣＯＭＰ２００においては、領域分析により得られたフィーチャモデルに対してコンポーネント全体に亘って影響を与える必須フィーチャ、コンポーネントの一部分に影響を与える選択的フィーチャ、択一的にコンポーネントに影響を与える択一的フィーチャの選択可能性を適切に対応できるようにマクロを用いて資産コンポーネントを明細にする(図３のＳ２４０参照)。このように得られた資産コンポーネントは、資産コンポーネント検証モジュールで有効性を検証し、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納する(図３のＳ２１０参照)。
【００４４】
資産開発者はＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲ５００により、フィーチャに基づいて作成された資産コンポーネントが一貫性よく作成されたか否かを検証する(図９参照)。
第２の実施形態:応用プログラムの開発
ドメイン(または領域)に対する資産コンポーネントの開発が完了すると、応用プログラム開発者は、フィーチャモデルからシステム要求事項を満足させるフィーチャのみ選択する(図２のＳ１４０及びＳ１５０参照)。このようなフィーチャの選択は、ＡＳＡＤＡＬ/ＦＯＲＭ１００で行われ、フィーチャ選択情報は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納される。
【００４５】
ＡＳＡＤＡＬ/ＣＯＭＰ２００では、フィーチャの選択情報と資産コンポーネントをＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００から持ってきてソフトウェアコンポーネントの生成のためにフィーチャ選択情報を資産コンポーネントに適切に対応させるマクロ処理作業を行う(図３のＳ２２０参照)。すなわち、ユーザの要求事項に合わせて選択されたフィーチャ選択情報をマクロ処理することで、選択されたフィーチャを具現するコードのみ適用して、完成したソフトウェアコンポーネントを生成する。このように作成されたソフトウェアコンポーネントは、ＡＳＡＤＡＬ/ＣＯＭＰ２００の形状管理モジュールにより管理され、外部モジュールで再利用できるようにＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納される(図３のＳ２３０参照)。
【００４６】
上述したように、ソフトウェアコンポーネントが生成されると、次に再利用コンポーネントを用いて応用プログラムを作成するが、アーキテクチャモデリング、運用モデリング及び自動コード生成を支援するＡＳＡＤＡＬ/ＯＢＪ３００が用いられる。すなわち、ＡＳＡＤＡＬ/ＯＢＪ３００は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納されている再利用可能な様々なモデルに基づいてユーザの所望する要求事項を満足させるアーキテクチャモデルを設計する(図４のＳ３０２参照)。また、システムの内部運用モデルをシステムの内部機能と行為の観点から明細にする(図４のＳ３０４参照)。機能を観点とした明細では外部のソフトウェアコンポーネントを使用できるように明細にできるため、ソフトウェアコンポーネントを再利用してシステムを構成できる。また、作成されたアーキテクチャモデルと運用モデルを、有効性検証モジュールによりその有効性を検証できる(図４のＳ３０６及びＳ３０８参照)。
【００４７】
ＡＳＡＤＡＬ/ＯＢＪ３００で生成された運用モデルは、自動コード生成モジュールの入力となり、実行可能なターゲットコードとシミュレーションコードが自動生成される(図４のＳ３１０及びＳ３１２参照)。このように得られたシミュレーションコードは、仮想環境で制御部と環境オブジェクトが互いに連動して動作できるようにするコードであり、ターゲットコードは実際システムにダウンロードされて制御器能を行うコードである。ＡＳＡＤＡＬ/ＯＢＪ３００で自動生成された実行コードは、応用プログラムのテスティング段階で用いられ、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納される。
【００４８】
第３の実施形態:応用プログラムのテスト
応用プログラムのテスティングは、(i)シミュレーションコードと環境オブジェクトを通じた仮想シミュレーションと、(ii)ターゲットコードを実際システムにダウンロードしてテストする方式とにより行われる。
【００４９】
まず、仮想環境シミュレーションを通じたテストは、ＡＳＡＤＡＬ/ＯＢＪ３００の環境モデリングモジュールを用いてプログラムが配置され、実行される仮想環境を明細にする(図５のＳ３１４参照)。制御部のコードと環境オブジェクトとの間のデータとイベントをマッピングするために、仮想Ｉ/Ｏマッピングモジュールにより相互間のデータをマッピングさせ、マッピング情報は、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納させる(図６のＳ３１６参照)。次に、ＡＳＡＤＡＬ/ＯＢＪ３００は、システムを制御する制御ソフトウェアと制御ソフトウェアを配置して仮想環境でテストできるように作成された３次元シミュレーションモジュールにより制御ソフトウェアを直観的にテストでき、このような仮想環境により自動生成されたコードが仮想環境で意図通りに作動するかを検証できる(図７のＳ３２０ないしＳ３２４参照)。
【００５０】
仮想環境テストで実行コードが検証されると、実行コードを実際システムにダウンロードして正常に作動するか否かを検証しなければならない。ＡＳＡＤＡＬ/ＯＢＪ３００は、実際システムと仮想シミュレーション環境が互いにデータとイベントをやりとりできる実際Ｉ/Ｏマッピング情報を有することで、実行コードが実際システムで正常に作動するか否かを検証できる(図８のＳ３２６参照)。
【００５１】
第４の実施形態:応用プログラム維持保守
ＡＳＡＤＡＬ/ＯＢＪ３００の仮想シミュレーションでテストの結果が予想と異なる場合には、ソフトウェアコンポーネントで発生したエラーを以下のような方法により修正できる。
(１)まず、フィーチャモデル自体に修正が必要であるか否かを考慮する。この場合、ＡＳＡＤＡＬ/ＦＯＲＭ１００を通じて修正でき、このように修正されたフィーチャモデルは、ＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納し、ＡＳＡＤＡＬ/ＣＯＭＰ２００でソフトウェアコンポーネントを再び生成する。
【００５２】
(２)フィーチャモデルの修正が不要な場合には、資産コンポーネントに修正が必要であるか否かを考慮する。資産コンポーネントに修正が必要な場合には、ＡＳＡＤＡＬ/ＣＯＭＰ２００で修正してＡＳＡＤＡＬ/ＡＳＳＥＴ ＤＢ４００に格納し、ＡＳＡＤＡＬ/ＣＯＭＰ２００でソフトウェアコンポーネントを再び生成する。
【００５３】
(３)フィーチャモデルと資産コンポーネントに修正が不要な場合には、ＡＳＡＤＡＬ/ＯＢＪ３００で運用モデリングモジュールを通じて内部明細を修正する。
このような方法により、ソフトウェアコンポーネントで発生した問題を見つけ、ＡＳＡＤＡＬ/ＯＢＪ３００は、コード自動生成を通じて修正されたコードで仮想環境でテストしてソフトウェアを開発できる。
【図面の簡単な説明】
【００５４】
【図１】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境を支援するアサダル(ＡＳＡＤＡＬ)フレームワークの構成を示すブロック図である。
【図２】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、フィーチャモデリングとフィーチャ選択を行うＡＳＡＤＡＬ/ＦＯＲＭの構成及びデータ処理の流れを示すブロック図である。
【図３】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、資産コンポーネントとソフトウェアコンポーネントの生成及び形状管理を行うＡＳＡＤＡＬ/ＣＯＭＰの構成及びデータ処理の流れを示すブロック図である。
【図４】本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークを提供するシステムであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００の制御部の機能とそのデータ処理の流れを示すブロック図である。
【図５】本発明によるフィーチャ指向ソフトウェアの再利用開発フレームワークであるＡＳＡＤＡＬのＡＳＡＤＡＬ/ＯＢＪ３００の環境オブジェクトの機能とそのデータ処理の流れを示すブロック図である。
【図６】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び３次元仮想シミュレーションテストを行うＡＳＡＤＡＬ/ＯＢＪの構成及びデータ処理の流れを示すブロック図である。
【図７】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び３次元仮想シミュレーションテストを行うＡＳＡＤＡＬ/ＯＢＪの構成及びデータ処理の流れを示すブロック図である。
【図８】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、自動コード生成及び３次元仮想シミュレーションテストを行うＡＳＡＤＡＬ/ＯＢＪの構成及びデータ処理の流れを示すブロック図である。
【図９】本発明によるフィーチャ指向ソフトウェア製品ラインの開発環境において、モデル間の一貫性検証及び有効性の検査を行うＡＳＡＤＡＬ/ＡＮＡＬＹＺＥＲの構成及びデータ処理の流れを示すブロック図である。
【図１】
2007012003.tif 000003
【図２】
2007012003.tif 000004
【図３】
2007012003.tif 000005
【図４】
2007012003.tif 000006
【図５】
2007012003.tif 000007
【図６】
2007012003.tif 000008
【図７】
2007012003.tif 000009
【図８】
2007012003.tif 000010
【図９】
2007012003.tif 000011