Skip to main content
QUICK REVIEW

[論文レビュー] ModelTalk: A Framework for Developing Domain Specific Executable Models

Atzmon Hen-Tov, David H. Lorenz|ArXiv.org|Jun 18, 2009
Advanced Software Engineering Methodologies参考文献 18被引用数 8
ひとこと要約

本論文は、メタモデル化、依存性インジェクション、実行可能モデルを統合したドメイン固有の解釈的モデル駆動開発フレームワーク、MODELTALKを提示する。このフレームワークにより、実行時における直接的な解釈によって、Javaに類似した迅速なモデリングが可能となり、開発サイクルが数分から数秒に短縮される。大規模な通信事業者BSSソフトウェア製品ラインにおいて、宣言的でモデル中心のカスタマイズが可能となる。

ABSTRACT

Developing and maintaining complex, large-scale, product line of highly customized software systems is difficult and costly. Part of the difficulty is due to the need to communicate business knowledge between domain experts and application programmers. Domain specific model driven development (MDD) addresses this difficulty by providing domain experts and developers with domain specific abstractions for communicating designs. Most MDD implementations take a generative approach. In contrast, we adopt an interpretive approach to domain specific model driven development. We present a framework, named ModelTalk, that integrates MDD, dependency injection and meta-modeling to form an interpretive, domain specific modeling framework. The framework is complemented by tool support that provides developers with the same advanced level of usability for modeling as they are accustomed to in programming environments. ModelTalk is used in a commercial setting for developing a product line of Telco grade business support systems (BSS).

研究の動機と目的

  • 通信分野における大規模でカスタマイズされたソフトウェアシステムの開発にかかる高コストと高複雑性に対処すること。
  • コード生成に依存する従来のモデル駆動開発の限界、特に長いコンパイル・パッケージ・デプロイのサイクルを克服すること。
  • ドメインエキスパートと開発者が、現代のIDEに類似した統合的でインタラクティブなモデリング環境を統合的に利用できること。
  • 解釈実行によるモデルの実行時変更を可能にし、宣言的で実行時変更可能なシステム動作を実現すること。
  • Javaコードの手動記述に依存するのを減らし、モデルをシステム動作の主たるソースとする。

提案手法

  • 実行時におけるモデルの直接実行に依存する解釈的アプローチを採用し、コード生成やコンパイルのサイクルを排除する。
  • 依存性インジェクションの原則を統合し、XMLを介してオブジェクトグラフを宣言的に構成可能にし、再コンパイルなしで実行時変更を可能にする。
  • メタモデル化を用いてドメイン固有の抽象化を定義し、開発者がアプリケーション論理用のカスタムDSLを容易に作成できるようにする。
  • Eclipseベースのツールプラグインを提供し、構文強調、検証、リアルタイムフィードバックを含むIDEに類似した使いやすさを実現する。
  • モデルを真のソースとして扱い、実行時動作をモデルの解釈から導出することで、モデル駆動開発を実現する。
  • 拡張可能なメタモデル化とメタクラス機能を用いて、モデルレベルで横断的 concern をサポートする。

実験結果

リサーチクエスチョン

  • RQ1モデル駆動開発を、現代のプログラミング環境に類似した使いやすさにまで高めるにはどうすればよいか?
  • RQ2大規模なソフトウェア製品ラインにおいて、コード生成ではなく解釈実行を採用した場合のパフォーマンスとスケーラビリティへの影響は何か?
  • RQ3メタモデル化と依存性インジェクションを用いて、ドメイン固有のモデリング言語を効果的に作成・維持できるか?
  • RQ4解釈的モデル駆動フレームワークは、複雑でカスタマイズされたシステムにおいて、市場投入までの期間と保守コストをどの程度短縮できるか?
  • RQ5プログラミング経験のないユーザーが、モデルの変更によって実行時におけるシステム動作をどの程度変更・適応できるか?

主な発見

  • MODELTALKにおける段階的モデル変更は、生成型MDDアプローチと比較して数秒で完了する。
  • モデルクラスの平均継承深さ(DIT)は4.75であり、良好に構造化された再利用可能なモデル階層が実現されている。
  • アプリケーションモデル用のXMLスキーマ(XSD)は200K行のコードを占め、メタモデルの複雑さと表現力の高さを示している。
  • アプリケーションの90%のJavaソースコードがモデルによって制御されており、実装に対する強いモデル駆動制御の実現が裏付けられている。
  • カスタマイズプロジェクトにおける82%のソースコード行が宣言的であることが判明し、本フレームワークがコーディングよりも構成に重点を置いていることが浮き彫りになった。
  • 開発者はサイクル時間の顕著な改善を報告しており、リファクタリング中でも「壊れた」モデルで作業を続けられることに満足している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。