ソースコード自動生成の黒歴史を塗り替えるブランコ
Excelからプログラムを作る多言語対応オープンソース
NTTデータ ビジネスブレインズ
伊賀敏樹
2007/12/25
設計書からソースコードを自動生成する4つのメリット
ソースコード自動生成を行うためには、何かしらの方法でソースコード自動生成のための原料となる情報を用意する必要があります。世の中には、XML、独自形式のテキストファイル、通常のソースコード上に追記されたアノテーション、独自の表現形式による何かしらリポジトリ情報、リレーショナルDBのスキーマ情報、設計書など、さまざまな原料となる情報の表現形式があります。
この記事では、その中から「設計書」を原料となる情報としてソースコードを自動生成する方法を取り上げて見ていきます。設計書からソースコードを自動生成する方法には、一般的に次のようなメリットがあります。
図3 設計書からソースコードを自動生成するメリット(設計書とソースコードは機械的に一致する) |
注意 |
本稿は、設計書の作成を必要とするソフトウェア開発を前提として書かれています。設計書の作成が必要ないソフトウェア開発においては、設計書からソースコードを自動生成するメリットはあまり出てこないでしょう。 |
■ 【1】設計書どおりのソースコードが作られる
設計書からソースコード自動生成を行うと、機械的にソースコードが作成されるので、必然的に設計書どおりのソースコードが作られるようになります。人間が設計書を見ながらコーディングをしていると、どうしても間違いが混入してしまいますよね。設計書からソースコードを自動生成することによって、人為的ミスがかなり排除できるのです。
■ 【2】ソースコードの均質化
ソースコード自動生成によって、強制的にソースコードの均質化が実現できます。クラス名、メソッド名などが機械的に命名されるので、コーディングルール徹底にも貢献できる場合があります。
■ 【3】設計書が残る
「ソースコードはあるのだけれども設計書がない」なんてことで困ったことはありませんか?
設計書からソースコード自動生成を行うことによって、必然的に設計書が作成されるようになります。また、ソフトウェア開発メンバーが設計書を書こうというきっかけ作りにもなります。
■ 【4】仕様変更対応が楽になる
設計書からソースコード自動生成を行う仕組みは、実は仕様変更作業において最も効果が発揮されます(ソースコード自動生成が何度でも繰り返し実行できる場合に限ります)。設計書を変更したら、自動生成を再度実施するだけで、該当する設計書の仕様変更がソースコードに反映されます。
例えば、「ジェネレーション・ギャップ」パターンを採用したソースコード自動生成であれば、ソースコード自動生成の再実施を行った後で、それを継承したクラスの内容を変更していくことにより仕様変更が完了します。
設計書は確実に保守され、そして設計書とソースコードの同期作業も機械的に実現できます。特に、長い間運用が必要なソフトウェアの場合、設計書からソースコードを自動生成するメリットが出てきます。
逆に、保守が必要ではないようなソフトウェア開発においては、先に述べたように、設計書の仕様変更がソースコードに自動的に同期できることのメリットがほとんど出てこないのです。
編集部注:DI/AOP、Spring、Seasarについて詳しく知りたい読者は、@IT Java Solutuionのカテゴリ「DI×AOP(Spring/Seasarなど)」をご参照ください。
blanco Frameworkならではの7つの特徴
ここからは、blanco Framework自体の紹介になります。何度も述べているとおり、blanco Frameworkは設計書(あるいは設計情報)からソースコードを自動生成するツールですが、実は世の中にはソースコード自動生成ツールはいくつもの実装が存在しています(参考「フレームワークをベースとした自動生成技術の登場」)。
blanco Frameworkには、ほかのプロダクトにはない特徴がいくつかあります。
図5 blanco Frameworkの概念図(詳細版) |
■ 【1】Excelブックに記入するだけ(XMLレス)
「blanco Framework」の最大の特徴は、「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全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (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に関する基礎知識を解説する。
|
|