top / index / prev / next / target / source

2006-02-21 diary: blanco Framework概要を更新: 規模と新技術のあいだのジレンマを追記

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

blanco Framework概要を更新: 規模と新技術のあいだのジレンマを追記

blanco Frameworkの概要説明の加筆を行いました。

blanco Framework Community会の事前準備中…

blanco Framework Community会の事前準備をおこなっています。とりあえず そもそも blanco Frameworkの説明について改善すべきところがあると強く認識したので、そこを重点的に改善中です。

まず最初に重要なことなのですが、blanco Framework いまや blancoDbというR/Oマッピングツール実装だけではありません。対象領域が広がっています。いまや まがいなりにもシステム開発フレームワークへと発展してしまっています。blanco Framework Community会では 時間の半分程度をかけて blanco Frameworkの全体的な紹介をさせていただく予定となっています。いくつかの Excel様式に必要事項を記入していくだけで各種 Javaソースコードが自動生成されるという系統のお話をさせていただきます。むろん blancoDbの説明も半分程度の時間をかけて紹介させていただきます。

blanco Frameworkに含まれるソフトウェア・ツールは オープンソースというルールのもとで提供しています。もし、[replace-link:blanco Framework]の説明を聞かれて気に入っていただけた場合には、オープンソース・ライセンスの所定のルールにのっとった範囲において自由に利用することが出来ます。

blanco Frameworkは自社フレームワークをお持ちでない中小企業さまを重要なターゲットのひとつであると位置づけさせていただいております。「何かしら自社の開発フレームワークを導入するなどして生産性向上・品質確保をおこないたい。しかし自社の開発フレームワークの新規開発コストなんて、とても捻出なんてできない」というような会社様で導入頂ければ、願ったり叶ったりなのです。そういう立場の方にもblanco Framework Community会にご参加いただければと思っています。…ああ、そういえば私の会社も つい最近まで自社の開発フレームワークを持っていない中小企業だったです :-P

blanco Frameworkに含まれるソフトウェア・ツールのひとつを単独で利用することも出来ます。例えば、バリューオブジェクト定義書からバリューオブジェクトのJavaクラスを自動生成するという機能だけを取り出して使うだけでも効果が出る場合があります。原則としてLGPLライセンス下のプロダクトであるので、[replace-link:blanco Framework]に含まれるソフトウェア・ツールをアプリケーションに組み込んで利用する場面も想像します。

また、blanco Framework Community会にエントリーされた方からリクエストがあったので、blanco Frameworkの Excelから情報を読み取る仕組みである blancoCalcParserについて、ある程度時間を割いて説明をさせていただこうと考えています。blanco Frameworkの中核的な機能であるはずの blancoCalcParserについても、ほとんど説明されていません。これも改善すべき点ですね。blancoCalcParserを用いると、Excel97形式の *.xlsファイルで新規に様式を作成して、そこからXMLファイル形式という中間ファイルのかたちで情報を抽出することができます。しかもblancoCalcParserを用いていれば、ある程度の様式へのカスタマイズにも無修正で対応することができるようになるという副次的な効果があります。

、、、というのも説明を書かなくてはなりません。しかし仕事は相変わらず忙しいです… (苦笑)

blanco Framework概要を更新: 規模と新技術のあいだのジレンマを追記

blanco Frameworkの概要に「規模と新技術のあいだのジレンマ」に関する記述を追記しました。これを掲載します。

背景

情報処理産業におけるダウンサイジングの波が Java言語/C#言語などのコンパイル系言語処理系に押し寄せて、もう何年も経ちます。近年のインターネット/Webアプリケーションの流行などもあり Java言語/C#言語などを用いたシステム開発は とても一般的なものになりました。その結果、特にJava言語に関していうと世間において十分に普及したものと考えられます。Java言語の知識やノウハウが人的交流や情報誌、Webなどを通じて世に行き渡っています。

では、Java言語を採用してシステム開発を行うリスクは低減化されたかというと、困ったことに そう単純に良い結果は出ていません。ナゼなのでしょう。ふと立ち止まって良く見かける Java言語を用いたシステム開発を思い起こしてみると、下記のような特性があるように感じています。(でも、このような感触は人それぞれの経験によっては異なることでしょうけれども)

これら特性に加えて、最近は下記のような特性がかかっているように感じます。

こういった様々なプレッシャーが、Java言語を用いたシステム開発のリスクを増加させているものと感じています。その結果として Java言語を用いて開発を行っているプロジェクトへのアツレキとして跳ね返ってきているように感じます。

規模が大きいと新技術が利用できないというジレンマ

従事している人にとっては、しごく当たり前のことなことなのですが、規模が大きめの手作り開発には「新技術」のタグイを適用することは非常に困難です。規模が大きければ大きいほど、新技術の導入コストおよび導入リスクが高くなってしまうのです。開発を効率化するために様々な新技術を用いて革新的な改善を実現したいと多くの人が自然に思い描くのですが、実際には新技術を導入することは非常にリスクが高いです。これは技術が枯れているか枯れていないか、という事も重要なのですが、それ以上にインパクトのある制約として現れてしまいます。一般的に規模が大きいほど 従事する人の数も多くなります。従事する人が増えれば増えるほど、それら従事者に新技術を教育していくコストがかかるのです。皮肉なことですが、新技術を導入して得られるコストダウンを 新技術を教育するために費やすコストが上回ってしまうということが現実的にあり得るのです。これは新技術であるかどうかに関わらず、規模の大きめなシステムにおける皮肉なジレンマなのです。何か革新的な仕組みを導入しようとすると、その仕組みの説明のコストが 従事者の人数が多いばかりに教育コストという形で大きくのしかかり、仕組みの導入によるメリットを吹き飛ばしてしまうのです。これは従事している人数が少ないプロジェクトを主に経験する人たちにとっては想像が難しいことかも知れません。

規模が大きいと開発工程の改善が難しくなる

加えて規模が大きいと開発工程の改善を実現しにくくなります。これも皮肉なことです。まず規模が大きければ大きいほどドキュメントが増えます。規模が大きいとウォーターフォール型の開発である確率が高くなります。ウォーターフォール型およびドキュメントの増加によって開発工程の抜本的な改善が実現困難になっていきます。そもそも規模が大きいほど開発工程を固定化させるための様々なノウハウが施されており、そもそも抜本的な改善なんて仕組み上できなくなっているのです。しかも規模が大きいと、全体的な統一感という観点から見ると、画一的であればあるほど便利なのです。一部分だけが何か工夫をもって作られていると、全体的な統一感が損なわれてしまいます。このようなことから、規模が大きければ大きいほど、開発工程の改善はどんどん難しくなっていってしまうのです。

blanco Frameworkは そのようなジレンマを解消することを目的としています。

blanco Framework とは何か?

オープンソースの下流開発フレームワーク

blanco Frameworkは下記のような領域をターゲットとするオープンソースによる下流開発フレームワークです。

このような領域をカバーすることにより、開発工程の革新的な改善を実現します。

転記作業の自動化

ソフトウェア開発現場では様々な転記作業が存在します。特にシステム規模が大きければ大きいほど、このような作業はとても大きなウェイトを占めるようになります。

そして blanco Frameworkは まさにこれら転記作業の自動化を実現します。

Excel(*.xls)ファイル形式の様式を中心とした自動生成

ソフトウェア開発現場では、ワードプロセッサや表計算ソフトなどのオフィスツールをもちいてドキュメントを作成する場合が多いです。blanco Frameworkは Excel (*.xls)ファイル形式の様式を中心とした各種自動生成をおこなうような構造になっています。

普及したオフィスツールのファイル形式を採用することにより、初期稼働の少ない導入が可能になっています。

定義書様式の例

blanco Frameworkでは 下記のような定義書様式を提供しています。これら定義書様式を埋めていくことが、そのまま該当箇所の開発完了へとつながるようになっています。

大規模開発を意識した構成

blanco Frameworkは システム規模が大規模である場合に対する耐性をもった構成を取っています。

また大規模を意識するうえで特に気をつけているのが、blanco Frameworkそのものの仕様によって処理件数の制約を規定してしまわないようにすることです。

blanco Framework 主なラインナップ

blanco Frameworkには多くのツールが含まれています。そのなかで特に代表的なツールを下記に挙げます。

これらは一般的な Java言語による開発において 特に導入効果が出やすいところであると考えています。

blanco Frameworkの効果

blanco Frameworkを導入することにより、さまざまな効果を得ることが出来ます。それらをご紹介します。これらは単独で見ると地味なものですが、規模が大きいときには絶大な効果となって現れます。

自動生成による効果

自動生成というアプローチを取ることにより、下記のような効果を得ることが出来ます。

所定の様式導入による効果

また所定の様式を導入していくことにより、下記のような副次的な (しかしシステム完遂という観点からは非常に重要な) 効果を得ることができます。

オープンソース採用の効果

blanco Frameworkは開発フレームワークであるとともに オープンソースプロダクトでもあります。オープンソースというアプローチを取っていることにより、多くの人々に利用していただきやすくなっています。

自社フレームワークなどをお持ちでない企業様には ぜひ blanco Frameworkの導入を検討していただきたく思います。

blanco Framework導入事例

blanco Frameworkの導入事例について、あるプロジェクトの一部をサンプリングした結果を紹介します。このシステムでは blancoDbおよび blancoStrutsのみを導入しました。

こちらを導入した結果、実際のプロジェクトにおける行数のバランスは下記のようになりました。


この日記について