ソースコード自動生成の黒歴史を塗り替えるブランコ
Excelからプログラムを作る多言語対応オープンソース


NTTデータ ビジネスブレインズ
伊賀敏樹
2007/12/25


【2】オープンソースである

 blanco Frameworkはオープンソースとして公開されています。基本的にLGPLライセンスの下で公開されています(一部、Apache Licenseなどのほかのオープンソースライセンスの下で公開されているライブラリを含んでいるツールがあります)。このため、ダウンロードするなどして入手すれば、すぐに利用できます。

 また、オープンソースライセンスの下で公開されているので、それらライセンスで定められている範囲内で自由に改変して再配布することもできます。あなたにある程度のJavaプログラミングスキルがあれば、blanco Frameworkを改変してあなた専用のソースコード自動生成システムを開発することもできます。

 なお、自動生成されたソースコードの著作権者は、設計書(定義書)の著作権者と同一であると考えています。

コラム 「有償サポートもある」

あなたが blanco Frameworkを気に入って使い続け、そして もし有償サポートが必要になった場合には、NTTデータビジネスブレインズが提供する有償サポートを利用できます。

【3】多言語対応(Java、.NET、JavaScript、PHP、Ruby、Python)

 blanco Frameworkは、多くのプログラミング言語のソースコード自動生成をサポートしています。

表1 サポートするプログラミング言語と対応バージョン(2007年12月現在)
プログラミング言語 対応バージョン
Java Java SE 1.4.2以降
C#.NET .NET Framework 2.0以降
JavaScript ECMA-262 3rd Edition
VB.NET .NET Framework 2.0以降
PHP PHP 5
Ruby 1.8以降
Python 2.3以降

 ここまで多くのプログラミング言語をサポートしているソースコード自動生成ツールは、ほかにはないのではないかと考えています。とはいえ、現状で主にサポートしているのはJava、C#.NETの2言語となります(ツールごとのプログラミング言語サポート状況については後述します)。

 同じ設計書(定義書)から複数プログラミング言語のソースコードが自動生成できるので、複数プログラミング言語を利用したソフトウェア開発においても有益です。特に、Ajaxなどのソフトウェア開発に取り組むと、どうしても複数プログラミング言語への対応が必要になりがちだからです(例えば、C#.NET+JavaScriptなど)。

blanco Frameworkでソースコードを自動生成するために必要な環境

blanco Frameworkを用いてソースコード自動生成を実行する際には、下記の環境が必要になります。
JRE(Java実行環境) 1.4.2以降
Apache Ant 1.6以降(※用途によっては必要)
Eclipse 3.0以降(※用途によっては必要)
Microsoft Excel 2000以降、またはOpenOffice.org 2.0以降(※blanco FrameworkはExcel VBAマクロを利用しない)

【4】さまざまな自動生成ツールの集まりで部分導入が可能

 blanco Frameworkは、ソフトウェア領域を小分けにしてさまざまなソースコード自動生成ツールを提供しています。さまざまなソフトウェア領域ごとに設計書(定義書)のExcelブックを提供し、それらExcelブックからさまざまなプログラミング言語のソースコード自動生成を行うツールの集まりが「blanco Framework」と呼ばれるものです。

図7 ソフトウェア領域を小分けにしたソースコード自動生成(blanco Framework版、ソフトウェア領域ごとのblanco Frameworkツールを提供)
図7 ソフトウェア領域を小分けにしたソースコード自動生成(blanco Framework版、ソフトウェア領域ごとのblanco Frameworkツールを提供)

 小分けされたソースコード自動生成ツールの集まりという構造になっているため、部分的な導入が可能になっています。あなたのニーズに合った設計書(定義書)様式が見つかれば、それに対応するblanco○○ツールだけを選んで利用できます。

 また、「blanco Framework」だけを単独で利用するだけでなく、前述のようにSpring FrameworkやSeasarなど、ほかのフレームワークと組み合わせて使うこともできます。小分けされたソースコード自動生成ツールなので、小回りが利くのです。

【5】ランタイムライブラリ不要

 blanco Frameworkから自動生成されたソースコードは、ランタイムライブラリが不要になっています(ただし、一部例外となるツールもあります)。世の中には、ランタイムライブラリを必要とすることが理由でツールを導入できないという場面もあるのです。その点、blanco Frameworkは基本的にランタイムライブラリが不要なので、導入しやすいのです。

【6】繰り返しソースコード自動生成が可能

 blanco Frameworkが自動生成するソースコードは、基本的に「ジェネレーション・ギャップ」パターンというデザイン・パターンを採用しているので、何度でもソースコード自動生成を実施できます。特別な事情がない限り、自動生成されたソースコードを直接変更することは避けてください

【7】開発プロセスを変えることなく導入できる

 blanco Frameworkは特別な開発プロセスを強要しません。多くの場合、あなたの開発プロセスを変更することなく導入できます。とはいえ、設計書(定義書)であるExcelブックを記入してから該当個所を製造していくという流れだけは必要です。

コラム 「Ruby on Railsとの違い」

前述の通り、世の中にはblanco Framework以外にもいろいろなソースコード自動生成プロダクトがありますよね。ここでは、特にいま話題のRuby on Railsとの違いを、ソースコード自動生成に関するポリシーを中心に簡単に見ていきます。

最も大きな違いは、Ruby on Railsでは一定の操作の後に、すぐに動作する画面が出来上がる点です。

残念ながら、blanco Frameworkではすぐに動く画面が即席で出来上がるなんてことはありません(2007年12月時点では、そのようなツールは提供されていません)。先に述べたように、blanco Framework は「さまざまな領域に対応した設計書(定義書)Excelブックからさまざまなプログラミング言語のソースコードを自動生成」することに取り組んでいます。

一方でblanco Frameworkは、手作り系システム開発を主なターゲットとしています。手作り系システム開発では、リレーショナルDBから即席で画面を作り上げても、あまりメリットが出ません(そんな単純な画面は あまり現れないのです)。対象領域として、そのような即席ツール提供の優先度が(現時点では)低いのです。

またblanco Frameworkは、手作り系システムにおける仕様変更プログラム保守には比較的対応しやすいと考えています。設計書(定義書)を中心とした繰り返し実行可能なソースコード自動生成には、仕様変更やプログラム保守の際のコストを下げる効果があるからです。

このように、一口に「ソースコード自動生成」と呼ばれていても、取り組みの具体的な内容については、プロダクトごとに大きく異なります。blanco Frameworkは手作り系+仕様変更やプログラム保守が必要なシステム開発を得意としたツールになっています。

編集部注Ruby on Railsについての詳細を知りたい読者は、「Javaから見たRuby on Rails」をご参照ください。

 次ページではいよいよ、blanco Frameworkの便利で多種多様なツールを一覧で紹介します。

1-2-3-4

 INDEX 特集「Excelからプログラムを作る多言語対応オープンソース 」
  Page1
  開発現場の夢をかなえるブランコ
ソースコード自動生成の弱点を克服するために
コラム 「貧弱なコンピュータでソースコード自動生成をしてはいけない!?」
コラム 「設計情報とソースコードとを乖離させない工夫」
  Page2
  設計書からソースコードを自動生成する4つのメリット
コラム 「ソースコード自動生成とDI/AOP」
blanco Frameworkならではの7つの特徴
Page3
  コラム 「有償サポートもある」
blanco Frameworkでソースコードを自動生成するために必要な環境
コラム 「Ruby on Railsとの違い」
  Page4
  blanco Frameworkのツール一覧
ソフトウェア開発改善のためのアプローチの1つとして


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間