Excelブック形式の設計書からソースコードを自動生成する
blanco Framework
概要
blanco Frameworkは、Excelブック形式の設計書からソースコードを自動生成するためのツール群です。ツールによっては書き出し可能なプログラミング言語が選択可能で、最大でJava、C#.NET、JavaScript、VB.NET、PHP、Ruby、Pythonの7言語に対応しています。様式に沿って作成した設計書をblanco Frameworkのツール(主にEclipseプラグイン)に読み込ませるだけでソースコードが得られるため、「工数削減による生産性の向上」、「設計と実装の乖離の予防」、「設計変更に対する確実な追従」、「均質なソースコードによる保守性の向上」といった効果が得られます。
主な特徴
細分化したソフトウェア領域ごとにツールを提供
blanco Frameworkでは、ソフトウェア領域を小分けにして、個々の領域ごとにソースコード自動生成ツールを提供しています。たとえば、blancoCsvというツールは「ファイル定義書(CSV)」という書式で書かれたExcelブックから、CSVファイル入出力のためのソースコードを生成します。このソフトウェア領域を細分化するというアプローチは、設計書の書式とツールの構造をシンプルに保ち、ツールの操作を簡便にします。そしてツールをその専門領域に最適化することで、高い品質のソースコードを生成することが可能になります。
Excelブック形式を採用
ソースコード自動生成のための設計情報として、設計書で用いられることの多いExcelブック形式を採用しました(※)。設計書をそのままblanco Frameworkの入力ファイルとして利用できるため、設計書の作成とソースコードの作成がほぼ同時に行える(工数を削減できる)だけでなく、設計と実装の食い違いを防ぐことが可能になります。さらに、特別な設計情報編集用のソフトウェアを導入/習得する必要がなく、テンプレートを基に使い慣れたExcelやOpenOffice.org Calcといったツールを使って設計書が書けるので、設計工程の生産性も向上します。
※ Java classファイルからバイトコード・テキストを生成するblancoBcelなど、Excelブック以外を入力ファイルとするツールもあります。
ランタイム不要で導入が容易
blanco Frameworkが生成するソースコードは、実行時に特別なランタイムライブラリを必要としません。そのため、他のフレームワークを利用している場合でも導入しやすくなっています。
反復的なソースコード自動生成とジェネレーションギャップパターンの採用
自動生成したソースコードに修正を加えた場合、設計変更が発生して再度ソースコードを自動生成すると手を加えていた箇所に齟齬が生じ、修正が失われるおそれがあります。blanco Frameworkでは、反復的なソースコード自動生成と「ジェネレーション・ギャップ パターン(※)」を採用することにより、この問題を防いでいます。
※ デザインパターンの1つ。自動生成されたソースコードをスーパークラスとして扱い、そのサブクラスを作成して修正を加えるようにするという手法。
配布内容
SourceForge.JP内のプロジェクトにて、以下のファイルを公開しています。
ソースコード自動生成タイプ
ソースコードを自動生成するタイプのツール
Excelブック形式の入力ファイルを扱うもの
| プロダクト | 概要 | ライセンス |
| blancoAntTask | 「AntTask定義書」というExcelブックから、Apache Antで動作するAntタスクのためのソースコードを自動生成します。 | GNU LGPL |
| blancoBatchProcess | 「バッチ処理定義書」というExcelブックから、バッチ処理のためのソースコードを自動生成します。 | GNU LGPL |
| blancoCharacterGroup | 「文字グループ定義書」というExcelブックから、文字グループを扱うソースコードを自動生成します。 | GNU LGPL |
| blancoConstants | 「定数定義書」というExcelブックから、定数クラスのソースコードを自動生成します。 | GNU LGPL |
| blancoCsv | 「ファイル定義書(CSV)」というExcelブックから、CSVファイル入出力のためのソースコードを自動生成します。 | GNU LGPL |
| blancoDb | 「SQL定義書」というExcelブックから、データベース入出力のためのソースコードを自動生成します。 ・blancoDb Enterprise Edition (Java用): JDBCベースのソースコードを生成。 ・blancoDbDotNet (C#.NET用): ADO.NETベースのソースコードを生成。 ・blancoDbPhp (PHP用): PDOベースのソースコードを生成。 | GNU LGPL |
| blancoFixedLength | 「ファイル定義書(固定長)」というExcelブックから、固定長ファイル入出力のためのソースコードを自動生成します。 | GNU LGPL |
| blancoMessage | 「メッセージ定義書」というExcelブックから、メッセージを扱うソースコードを自動生成します。blanco Frameworkのツールのほとんどは、このツールが自動生成したソースコードを利用しています。 | GNU LGPL |
| blancoResourceBundle | 「リソースバンドル定義書」というExcelブックから、プロパティファイルおよびリソースバンドルアクセスをおこなうソースコードを自動生成します。 | GNU LGPL |
| blancoService | 「サービス定義書」というExcelブックから、Webアプリケーションサーバで動作する常駐プログラムのソースコードを自動生成します。 | GNU LGPL |
| blancoSOAP | 「電文処理定義書」および「電文定義書」というExcelブックから、Webサービスを利用するためのソースコード等を自動生成します。 | GNU LGPL |
| blancoStringConverter | 「文字列変換定義書」というExcelブックから、文字列変換のためのソースコードを自動生成します。 | GNU LGPL |
| blancoStringGroup | 「文字列グループ定義書」というExcelブックから、文字列グループを扱うソースコードを自動生成します。 | GNU LGPL |
| blancoStruts | 「画面定義書」というExcelブックから、Struts用のソースコードを自動生成します。 | GNU LGPL |
| blancoValueObject | 「バリューオブジェクト定義書」というExcelブックから、バリューオブジェクトを扱うソースコードを自動生成します。 ・blancoValueObject (Java用) ・blancoValueObjectDotNet (C#.NET用) ・blancoValueObjectPhp (PHP用)
| GNU LGPL |
Excelブック形式以外の入力ファイルを扱うもの
| プロダクト | 概要 | ライセンス |
| blancoBcel | 「Java classファイル」から、バイトコード・テキストを自動生成します。classファイルの解析を手軽に実施したい場合などに便利です。 | GNU LGPL |
| blancoJUnit | 「JUnitテストクラス」から、「単体テスト仕様書」という Excelブックを自動生成します。 | GNU LGPL |
| blancoJni | 「Java classファイル」から、それを呼び出すために必要な JNIソースコード (C++) を自動生成します。※現状では、自動生成されたソースコードをスケルトン的に利用します。 | GNU LGPL |
ライブラリタイプ
Java言語用のライブラリタイプのツール
| プロダクト | 概要 | ライセンス |
| blancoLog | ログにまつわるクラスを集めたクラスライブラリです。java.util.logging をApache Commons Loggingの代わりに利用できるようにするためのクラスなどいくつかの便利なクラスが含まれます。 | GNU LGPL |
| blancoMailCore | メール送受信を安全で確実に実現するためのコアライブラリです。 | GNU LGPL |
| blancoReport | OpenOffice.org経由でExcel形式またはPDF形式の帳票を作成するAPIセットおよびコマンドを提供します。OpenOffice.orgを利用してドキュメント形式変換処理を行いたい場合に有益です。 | GNU LGPL |
SQL関連ツール
SQL整形のためのEclipseプラグインおよびSQL整形ライブラリ
| プロダクト | 概要 | ライセンス |
| BlancoSqlEditorPlugin | SQL文を整形するEcilpseプラグインです。Eclipse上でsql拡張子と関連づけられたSQLエディタとして動作します。 | GNU LGPL |
| blancoSqlFormatter | SQL文を整形するためのライブラリです。単純な構造なので、簡単にアプリケーションに組み込むことができます。 | GNU LGPL |
セットアッププログラム
Eclipse SDKのセットアッププログラム
| プロダクト | 概要 | ライセンス |
| BlancoEclipseDistribution | Eclipse SDK、Eclipse言語パック、blanco Framework(Eclipseプラグイン)をセットにしたWindowsインストーラー形式のEclipseディストリビューションです。 | GNU LGPL |
関連サイト
関連記事
Q&A
Q:blanco Frameworkの動作環境は?
A:blanco Frameworkのツールの多くは、Eclipseプラグインとして作成されています。そのため、JDKとEclipseが必要になります。Eclipseがインストールされていない場合、Windows環境であれば、BlancoEclipseDistributionを利用すると便利です。また、blanco FrameworkのいくつかのツールはAntタスクとして実行されます。このタイプのツールを利用する場合は、実行環境としてApache Antが必要になります。
- JDK 1.4.2以降
- Eclipse 3.0以降
- Apache Ant x.x以降
Q:設計書の作成に利用できるExcelのバージョンは?
A:blanco Frameworkでは設計書(Excelブック)の解析にJExcelApiを使用しています。そのため、JExcelApiが対応しているExcel 95、97、2000、XP、2003の各バージョンがそのまま利用できます。Excel 2007をご利用の場合は、旧形式(.xls)で設計書を保存してください。
問い合わせ先
blanco Frameworkについて
blanco Framework全般