|Lemon Home Page |

背景と目的


オブジェクト指向ソフトウェア開発

オブジェクト指向技術は アプリケーションの実行速度向上などには直接寄与しない. オブジェクト指向とは, アプリケーションの内部に 関わりの深いいくつかの変数をオブジェクトとみなし, そのオブジェクトに対する操作をインターフェースとして 定義することでオブジェクトを単位とする構造を作り, その構造間の関わりを最小限にすることで, アプリケーションの作成を容易にするための技術である. この構造間の独立性,モジュラリティにより, 人間にとっての理解しやすさ, 構造毎のテストが可能, 構造の部品化・再利用が可能 などの効果が期待され, オブジェクト指向言語 [Smalltalk, Eiffel, CLOS, Self, C++, Objective-C, Java], 分析・設計手法 [ OMT, Booch Sheller-Mirror, Fusion, UML] などが数多く提案され普及してきた. オブジェクト指向言語に於いては カプセル化,継承機構,ポルモルフィズム等の手法で このモジュラリティの実現を支援している.

しかし, 実際にオブジェクト指向が普及するにつれて, いくつかの問題点もあげられてきた. オブジェクトの設計の難しさ, 特に部品化・再利用のための設計の難しさ. オブジェクト数の増加やその間のメッセージ通信の 複雑化に伴う理解の難しさ. そのため再利用可能なものも利用されないという問題. などである. 直接アプリケーション自体には効果が現れず, むしろ初期の設計に多くの手間と時間がかかることから オブジェクト指向技術の導入そのものに消極的な開発者・会社も多い.

これに対して,近年オブジェクト指向技術の実践の中で 設計手法という形で いくつかの解決策 が提示されてきて,それなりの効果をあげている. その一つであり最近最も注目を集めているものとして, パターン言語 [PLoP1, PLoP2] と呼ばれるものがある.

続く節では部品化と再利用についての現状について オブジェクト指向およびパターン言語との関わりを 中心に概説する.


部品化と再利用

従来の部品化と再利用

従来取り扱われてきたソフトウェア部品としては, ソースコードや仕様書などがあるが, それらは再利用が困難な形で提供されてきた.

オブジェクト指向技術に於ける部品化と再利用

オブジェクト指向技術はより再利用性の高い形態での部品提供を 行なっている. 具体的な部品としては以下の2つがある。

これらは具体的な言語・アプリケーションに依存している。 ソースコード・機械コードとして、 主に従来のライブラリという形態で提供される.

そのような具象部品に加えて抽象部品といえるものが存在する. 具象部品の作成の指針・理解支援に用いられるようなものであり, パターン言語として現在注目を集めている.

パターン言語(Pattern Language) とは, 基本的にアプリケーション自体が解決しようとしている問題には依存しないが、 アプリケーションに共通に現れる構造や解法について、 その性質を記述したものである. パターン言語は一般に, Architecture,Design Pattern, Ideom の3種に大別される [PLoP1].

抽象部品


分散開発環境

急速なインターネットの普及に伴い, ソフトウェア開発も地理的に離れた者同士が協同して 作業するという形態が増えつつある. オブジェクト指向技術の普及も, モジュールに分割されたアプリケーションを 独立して開発できるということで, この傾向に拍車をかけている. このような分散開発環境においては, 従来の協同開発で問題とされてきたことに加えて 遠隔であることから発生する種々の問題が解決されなければならない.

分散開発における問題点には以下のようなものがある.


研究の目的

分散環境でのオブジェクト指向ソフトウェアの協同開発支援, 特に 多様なオブジェクト指向ソフトウェア部品 を分散透明に共有し利用できる機構の実現を目指す. 多種多様な部品を相互に結び付けるために ハイパーテキストを利用し, 分散透明に部品を利用できるようにする.
Mika Ohtsuki <mika@db.is.kyushu-u.ac.jp>
Last modified: Tue Jan 6 11:07:14 JST 1998