再利用はなぜ難しいのか

投稿日:2007年05月14日 作成者:yasunaka

オブジェクト指向は当初はソフトウェアの部品化と再利用を促進するため、という理由付けが行われることが多かったのですが、一般に普及した現状ではあまり声高に再利用を唱える人は少なくなりました。実際に振り返ってみると、オブジェクト指向によって再利用が促進された対象には偏りがあると思います。

例えばGUIの部品などは再利用されやすいものです。一度作った使いやすい部品はプロジェクトを超えて容易に再利用化されます。他にもデータベースとのインターフェースの仕組みやロギングなど、システム的でかつ一般的な部品は比較的再利用されやすいといえます。

それに対して業務に即した部品など、何かに特化した部品はなかなか再利用されません。例えば金融向けのアプリケーションの場合、もしあるシステムで債券や株などを表すクラスを定義したとしても、それをそのまま他のシステムに流用できるとは限りません。対象の用途を限定して同じようなシステムに適用する場合にはある程度は流用可能ですが、ちょっと使い道が異なるシステムとなると役に立たないことが多いのです。

つまり何をオブジェクトとして表現するのがちょうどいいのかが、対象の業務によって異なるということです。例えば同じ債券を扱うシステムでも、それを取引管理システムの中で扱う場合と、在庫リスク管理システムの中で扱う場合では同じ債券という概念でもシステムの中での取り扱われ方が異なるということです。

ただし業務寄りの部分でも、もう少し大きな粒度では比較的再利用がしやすくなります。例えば上記の例では取引管理システムとか、在庫リスク管理システムという単位での再利用はむしろやりやすいのです。もちろん同じような取引管理をする場合とか、同じような在庫リスク管理をする場合に限られます。業務的にみて似通っている場合には再利用がやりやすいというわけです。

業務的な観点で対象業務毎にフレームワークを持つことができるかどうかが再利用化の鍵だといえます。