NTT DATA

DATA INSIGHT

NTTデータの「知見」と「先見」を社会へ届けるメディア

絞り込み検索
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
キーワードで探す
カテゴリで探す
サービスで探す
業種で探す
トピックで探す
background-image-careers
2012年1月26日技術ブログ

特定システム特化型の自動化技術

DSL、言語ワークベンチ、Xtext+Xtendは、JavaやEclipseに比べて認知度は高いとは言えませんが、今後期待されている技術です。

ドメイン特化言語(DSL)参考1の身近な利用シーン

特定のシステム開発に特化した「専用のドメイン特化言語(DSL)」について、利用イメージを掴んでいただくため、身近な例を挙げます。
DSL本体の例として、SQL、EclipseなどIDEのコード生成ウィザード・グラフィカルエディタなどがあります。DSL用ツールの例として、エクセルで作成したメッセージ一覧からプロパティファイルを自動生成するツールなどがあります。
DSLは一般的なシステム開発において普及している技術で、「知らないうちに実は使っていた」と思われる方もいらっしゃるのではないでしょうか。

【図】

図1:DSLの分類と例

【図】

図2:Xtext、XtendによるDSL用ツール自動生成

言語ワークベンチ

「ソフトウェア開発自動化の動向」 で吉田が書いているように、DSLやDSL用ツールを開発するためには、ある程度の初期投資が必要です。DSLの生産性が高くても、初期投資も含めた投資利益率(ROI)が低くては意味が無いため、DSLおよびDSL用ツールを簡単に作り、かつ生産性向上に寄与することが重要となります。このROIを高める一助となる概念として、言語ワークベンチがあります。
言語ワークベンチの定義は、Martin Fowler氏によりまとめられています参考2。誤解を恐れずに言えば、最も身近な言語ワークベンチはExcelということになるでしょう。

Xtext+Xtend参考3で簡単にDSL開発

近年注目されている言語ワークベンチとして、Eclipseベースの技術であるXtext、Xtendがあり、Eclipse Community Awards 2010:"Most Innovative New Feature or Eclipse Project"を受賞しています。2011年にはVersion 2.xがリリースされ、継続的な機能改善およびバグフィックスが実施されています。
Xtextはテキスト型のDSLを構築するためのフレームワークです。文法の定義を行うことで、その文法に対するシンタックスチェック、コンテンツアシスト、アウトライン等の機能をもった専用ツールが自動生成されます。
一方Xtendはテンプレート言語で、コードジェネレータを作成することができます。Xtextを使って構築されており、シンタックスチェックやコンテンツアシスト等の機能をもっています。また、セーブ時に即座にコードを自動生成することができます。

まとめ

DSL、言語ワークベンチ、Xtext+Xtendを紹介しました。JavaやEclipseに比べて認知度は高いとは言えませんが、意外と身近な部分もあり、また今後期待されている技術です。ソフトウェア開発自動化を実現する際の引き出しとして、NTTデータでも開発自動化ツールへの技術取り込み/活用を検討しています。

お問い合わせ