NTT DATA

DATA INSIGHT

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

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

ソフトウェア開発自動化技術の多様化と「Xtend」

ソフトウェア開発自動化における生産技術は多様化しており、システム開発プロジェクトにおける技術の選択がポイントとなってきます。

多様化するソフトウェア開発自動化

ソフトウェア開発自動化といえば、以前はソースコード自動生成のことを指すことが中心でしたが、最近はJenkins参考1やMaven参考2等を使ったビルド自動化、JsTestDriver参考3やSelenium参考4等を使ったテスト自動化を含めて、3つの領域ができています。

【図】

図1:ソフトウェア開発自動化の3つの領域

ソースコード自動生成も多様化

ソースコード自動生成だけを見ても、従来のやり方(つまり、エクセルで書かれた設計書や、Eclipseなどのウィザードやエディタからソースコードを自動で生成すること)とは少し毛色が異なる方法が出て来ています。例えば、Scala参考5、Groovy参考6、Xtend参考7等です。それぞれの言語で書かれたソースコードを元に、Scala、GroovyはJava VM上で動作するバイトコードを自動生成し、XtendはJavaのソースコードを自動生成します。Scala、Groovy、Xtendは生産性を高める事を目的とした言語になっており、Javaと同様の汎用性は残しつつも、よりすっきりとしたコードを生成できることが特徴です。いわばJavaの拡張版と言えるでしょう。

【図】

図2:Scala、Groovy、Xtendの位置づけ

Xtendの使いどころ

XtendはXtext参考8と組み合わせることで、Xtextで作成したDSL(ドメイン特化言語)に対応するコードジェネレータを作成することができます参考9。また、Xtend単体での利用も可能で、メソッドの戻り値定義やreturnの省略、lambdaの利用などにより、Javaよりすっきりとしたコードを書くことができます。既存のJavaベースの開発スタイルと共存が可能です。

【図】

技術の選択とバランス

ソフトウェア開発自動化における生産技術は多様化しており、システム開発プロジェクトにおける技術の選択がポイントとなってきます。ここで、既存開発スタイルや既存コードの移行観点から、最先端技術は常にベストな解というわけではありませんし、生産性が低くあまりにも陳腐化した技術を使い続けるというのも同様です。その中で、Scala、Groovy、Xtendは言語としての優位性を持ちながら、Webアプリケーション開発のデファクトスタンダードであるJavaのVM上で動作するコードを記述できるため、注目されている技術です。

お問い合わせ