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


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

設計書からソースコードを自動生成する4つのメリット

 ソースコード自動生成を行うためには、何かしらの方法でソースコード自動生成のための原料となる情報を用意する必要があります。世の中には、XML、独自形式のテキストファイル、通常のソースコード上に追記されたアノテーション、独自の表現形式による何かしらリポジトリ情報リレーショナルDBスキーマ情報、設計書など、さまざまな原料となる情報の表現形式があります。

 この記事では、その中から「設計書」を原料となる情報としてソースコードを自動生成する方法を取り上げて見ていきます。設計書からソースコードを自動生成する方法には、一般的に次のようなメリットがあります。

図3 設計書からソースコードを自動生成するメリット(設計書とソースコードは機械的に一致する)
図3 設計書からソースコードを自動生成するメリット(設計書とソースコードは機械的に一致する)

注意

本稿は、設計書の作成を必要とするソフトウェア開発を前提として書かれています。設計書の作成が必要ないソフトウェア開発においては、設計書からソースコードを自動生成するメリットはあまり出てこないでしょう。

【1】設計書どおりのソースコードが作られる

 設計書からソースコード自動生成を行うと、機械的にソースコードが作成されるので、必然的に設計書どおりのソースコードが作られるようになります。人間が設計書を見ながらコーディングをしていると、どうしても間違いが混入してしまいますよね。設計書からソースコードを自動生成することによって、人為的ミスがかなり排除できるのです。

【2】ソースコードの均質化

 ソースコード自動生成によって、強制的にソースコードの均質化が実現できます。クラス名メソッド名などが機械的に命名されるので、コーディングルール徹底にも貢献できる場合があります。

【3】設計書が残る

 「ソースコードはあるのだけれども設計書がない」なんてことで困ったことはありませんか?

 設計書からソースコード自動生成を行うことによって、必然的に設計書が作成されるようになります。また、ソフトウェア開発メンバーが設計書を書こうというきっかけ作りにもなります。

【4】仕様変更対応が楽になる

 設計書からソースコード自動生成を行う仕組みは、実は仕様変更作業において最も効果が発揮されます(ソースコード自動生成が何度でも繰り返し実行できる場合に限ります)。設計書を変更したら、自動生成を再度実施するだけで、該当する設計書の仕様変更がソースコードに反映されます。

 例えば、「ジェネレーション・ギャップ」パターンを採用したソースコード自動生成であれば、ソースコード自動生成の再実施を行った後で、それを継承したクラスの内容を変更していくことにより仕様変更が完了します。

 設計書は確実に保守され、そして設計書とソースコードの同期作業も機械的に実現できます。特に、長い間運用が必要なソフトウェアの場合、設計書からソースコードを自動生成するメリットが出てきます。

 逆に、保守が必要ではないようなソフトウェア開発においては、先に述べたように、設計書の仕様変更がソースコードに自動的に同期できることのメリットがほとんど出てこないのです。

コラム 「ソースコード自動生成とDI/AOP」

読者の皆さんの中には、Spring FrameworkSeasarを通じてDIAOPに取り組んでいる方も多いかと思います。DI/AOPは、どちらかというとソースコードの量を減らすための技術ですよね。一方、ソースコード自動生成は、どちらかというとソースコードを(機械的に)増やすための技術です。

いずれか一方の技術が優れているというものではなく、双方の技術ともそれぞれ得意/不得意があります。むしろ両方をうまく組み合わせることにより、高い効果が得られることが期待できるのです。


図4 ソースコード自動生成とDI/AOPとの併用
図4 ソースコード自動生成とDI/AOPとの併用

これは私見ですが、DI/AOPのようなソースコードの量を減らして抽象化するための技術は、どちらかというとフレームワークのようなものの作成に向いているように考えています。

一方で、ソースコード自動生成のようなソースコードの量を(機械的に)増やして具象化するための技術は、どちらかというと業務処理そのもののような具体的な処理の作成に向いているように考えます。
編集部注DI/AOPSpringSeasarについて詳しく知りたい読者は、@IT Java Solutuionのカテゴリ「DI×AOP(Spring/Seasarなど)」をご参照ください。

blanco Frameworkならではの7つの特徴

 ここからは、blanco Framework自体の紹介になります。何度も述べているとおり、blanco Frameworkは設計書(あるいは設計情報)からソースコードを自動生成するツールですが、実は世の中にはソースコード自動生成ツールはいくつもの実装が存在しています(参考「フレームワークをベースとした自動生成技術の登場」)。

 blanco Frameworkには、ほかのプロダクトにはない特徴がいくつかあります。

図5 blanco Frameworkの概念図(詳細版)
図5 blanco Frameworkの概念図(詳細版)

【1】Excelブックに記入するだけ(XMLレス)

 「blanco Framework」の最大の特徴は、「Excelブックに記入するだけ」でソースコードの自動生成ができるという点です。

図6 Excelなどを利用して設計書を入力
図6 Excelなどを利用して設計書を入力(画像をクリックすると拡大します)

 あなたが作りたい機能に合ったExcelブック(blanco Frameworkでは、「定義書」と呼んでいます)を見つけてください。そして、あなたが普段利用している、Microsoft OfficeやOpenOffice.orgなどの*.xlsファイルを編集できるオフィスツールを使って、所定の項目を記入してください。後は、EclipseプラグインAntタスクによってソースコード自動生成を実行できます。

 このように、blanco Frameworkではとても手軽にソースコード自動生成を利用できます。XMLファイルを見たり編集したりする必要はほとんどありません。

 次ページでは、さらにblanco Frameworkならではの特徴や、いま話題のRuby on Railsとの違いについて述べます。

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 記事ランキング

本日 月間