ソースコード自動生成の黒歴史を塗り替えるブランコ
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、C#.NETの2言語となります(ツールごとのプログラミング言語サポート状況については後述します)。
同じ設計書(定義書)から複数プログラミング言語のソースコードが自動生成できるので、複数プログラミング言語を利用したソフトウェア開発においても有益です。特に、Ajaxなどのソフトウェア開発に取り組むと、どうしても複数プログラミング言語への対応が必要になりがちだからです(例えば、C#.NET+JavaScriptなど)。
■ 【4】さまざまな自動生成ツールの集まりで部分導入が可能
blanco Frameworkは、ソフトウェア領域を小分けにしてさまざまなソースコード自動生成ツールを提供しています。さまざまなソフトウェア領域ごとに設計書(定義書)のExcelブックを提供し、それらExcelブックからさまざまなプログラミング言語のソースコード自動生成を行うツールの集まりが「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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|