next up previous
Next: 差引として Up: リスクと恩恵の評価 Previous: 実現可能な恩恵

潜在的な懸念

オブジェクト指向技術により多くの恩恵が手にはいる一方で、 恩恵をもたらしている能力についての懸念として正当なものもいくつかある。 これらの懸念の大部分は一時的な限界であり、 技術とマーケットが成熟すればなくなるに違いない。 しかし、 現時点でオブジェクト指向技術を評価する際には 重要な考慮すべき事柄がいくつかある。

1.
技術の成熟度

オブジェクト指向技術は既に20年の経験を積んではいるが、 まだ安定したレベルにはなく、 その歴史のほとんどを研究の領域で過ごしている。

さらに重要なのは、 オブジェクト指向システムを開発することが いまだに科学よりも芸術であるような部分が多いことである。 基本的な原則の内いくつかは明らかになっている (再利用可能なように構築すること、実世界のシステムをモデル化すること、 モジュール性を高めることなど)。 一方で、この原則を実際に適用するための手法や手順はまだ確立されてはいない。 オブジェクト指向開発の作業への指針や規定となる規則体系が 必要とされている。

2.
標準の必要性

オブジェクト指向技術は発展途上であり、 ある言語で違う実装を行なった際に一貫性を保たせるための 確立された標準が存在しない。 受け入れられている標準がなく、 企業は異なる開発環境毎にプログラムを移植するのが困難となる。 この移植性の欠如のために、 重要な情報システムを単一のベンダに頼らなくてはいけないという 懸念が生じている。

受け入れられている標準の欠如により、 再利用可能なクラスライブラリを構築する際に、 違うベンダのクラス同士を混合したり、適合させるのが困難となる。 再利用可能クラスのベンダがまだそれほど多くないので まだ主要な問題とはなっていないが、 企業が情報システムの構築の基本構成を外部の提供に頼るようになる 今後数年以内には深刻な問題となるだろう。

3.
良いツールの必要性

オブジェクト指向開発を支援する良いツールの不足という問題もある。 このようなツールはオブジェクトのデザイン、 再利用可能オブジェクトのライブラリ管理、データ入力形式・報告書の設計と保守、 大規模なプログラマチームの調整といったものを支援するプログラムである。

クラスライブラリを管理する問題が良い例である。 オブジェクト指向開発のチームは開発期間のほとんどを 既存オブジェクトの再利用にあてる。 そのうちのほとんどは数百数千のライブラリ中のクラスから 適切なクラスを選択するのに費やされる。 プログラマがこの仕事に費やす時間を考えると、 クラスを分野・目的・由来・使用法・その他の特徴などから 探すためのよいツールがあることが重要となる。 ところが今のオブジェクト指向言語は せいぜいクラスの1つか2つの特徴に基づいた検索をする 単純な「ブラウザ」しか提供していない。

4.
実行速度 従来の言語よりも多くのサービスを提供しているために、 オブジェクト指向言語によるソフトウェアの実行は従来のものより遅くなる。 例えば、実行すべきメソッドを決定するためには、 メッセージから引数の型とその数を取り出し、比較しなければならないだろう。 名前の再利用という便利さとひきかえに、 実行速度を犠牲にしている。

実際にはオブジェクト指向システムの速度に関する懸念の大部分は、 速度を考慮しなかった初期の研究システムに基づくもので、 現在のオブジェクト指向言語は高度に最適化されていて、 従来のプログラミング言語とほぼ同様の速度となっている。

オブジェクト指向言語でもたらされた力は わずかに速度を犠牲にすることもあるが、 多くの環境では速度を向上することもできる。 最も劇的な向上はデータベースに蓄積している複雑な情報を扱う際に現れる。 情報が相互参照して結び付いているテーブルで表現されていると、 複雑な情報の格納と取得は時間のかかる処理となる。 この構造を複合オブジェクトとして格納すれば、 アクセスする時間はほんの少しで済む。

5.
熟練者の調達

また別の問題として、 商用分野で効果的なオブジェクト指向技術の利用法を 理解している人が少ないというものがある。 この問題が最も如実になっているのは、 経験あるオブジェクト指向プログラマの不足という点であるが、 問題はより根深いところにもある。

このオブジェクト指向技術は ソフトウェア開発に全く異なるアプローチを要するので、 プロジェクト管理者も経営者も オブジェクト指向開発の本質を理解しなければならない。 この理解がないと、 企業は再利用可能クラスとモデルに必要な投資をしなかったり、 ラピッドプロトタイピングに移行しなかったりしたまま、 オブジェクト指向技術を導入してしまうことがある。 この場合には、 オブジェクト指向技術はその真価を発揮できない。

6.
移行のコスト

オブジェクト指向技術に移行するコストは相当なものになる。 まず、新しいソフトウェアに投資を行なう必要がある。 オブジェクト指向技術を利用するための 新しい言語やデータベース、ツールを必要とする。

管理者と技術者への教育と訓練も非常に費用がかかる。 さらに、プログラマがオブジェクト指向技術の概念と手法を 効果的に利用できるようになるまでは 生産性の低下が生じる。

再利用可能なクラスライブラリの構築と企業業務の再利用可能なモデルを 構築するのにかかるコストも移行費用の一つである。 これが最大の移行費用となる。 しかし長い目で見れば、これは新しいシステムのラピッドプロトタイピングのための プラットフォームを提供するので、大幅な節約にもなる。

7.
大規模なモジュール化のサポート

オブジェクト指向では データとメソッドをパッケージ化することで細かなモジュール化が可能だが、 大きな機能毎のモジュールに結び付けることはほとんどサポートしていない。 大規模モジュールを構築するには複合オブジェクトを使うのが最良の方法であるが、 これは単純なオブジェクトの持つ情報隠蔽の仕組みを崩すことになる (外部のオブジェクトが複合オブジェクト内部にアクセスできる。)。



Masao Takaku 平成11年3月11日