コンポーネントウェアにおける方法論とツールとの協調関係

早稲田大学理工学部情報学科教授 深沢 良彰

Cooperation Between Methodology and its Support Tools in Component-based Software Development

Yoshiaki FUKAZAWA
School of Science and Engineering, Waseda University


目次

和文概要

ABSTRACT

1. はじめに

2. 利用者から見たコンポーネントウェア

3. 方法論とツール

4. まとめ

参考文献


和文概要 (目次に戻る)

オブジェクト指向分析・設計においては、 数多くの方法論が発表され、 これがオブジェクト指向の普及に大きな役割を果たした。 しかし、オブジェクト指向に基づいた分析/設計を支援するCASEツールは、 方法論の単なる後追い的な色彩が強いものがほとんどである。 一方、コンポーネントウェアの概念は、 数多くのソフトウェアツールによって実現され、 実用化されてきている。 しかし、コンポーネントウェアを積極的に利用した本格的な方法論は、 現時点では存在しない。 このような傾向は、利用者にとって望ましいことではない。 本稿では、方法論とその支援ツールが協調できるための要件について、 コンポーネントウェアを例に挙げながら、いくつかの考察を述べる。

ABSTRACT (目次に戻る)

In the field of object-oriented analysis and design, many development methodologies have been proposed. On the other hand, the concept of componentware has been realized in many recently developed software tools. From the software engineering aspect, this mismatching is not desirable. In this draft, some requisites for the cooperation between a methodology and its support tools are described by contrasting the object-oriented methodologies and componentware tools.

1. はじめに (目次に戻る)

オブジェクト指向ソフトウェア開発技術は、提案の時代から、成熟/応用の時代 を迎えつつある。1980年代末から、数多くのオブジェクト指向 分析設計方法論が提案されてきた。 これらを明確に理解し、冷徹な眼で比較を するのは、非常に困難である。現実的には、何となく選ばれた方法論が採用され ることが多いというのが現実であろう。これらの方法論を支援するソフトウェア も数多く提案されてきている。しかし、それらの多くは、「お絵かきツール」の 域を出ることは少なく、「最も優れたオブジェクト指向CASEツールは MacDrawである」という刺激的な意見をもっていた専門家もいた。
オブジェクト指向は、デザインパターン、フレームワーク、分散などという キーワードとともに、成長を続けている。この成長分野の一つにコンポー ネントウェアがある[3]。 コンポーネントウェアは オブジェクト指向技術の一分野であるのもかかわらず、 コンポーネントウェア向きの本格的な方法論は存在せず、 わずかにその萌芽的な研究が 出はじめているいるだけである[3]。 一方、コンポーネントウェアを支援するさまざまなツールが すでに商用に供されている[2]
本稿では、このオブジェクト指向方法論とコンポーネントウェア技術を 対比しながら、ソフトウェア工学におけ る方法論とツールとの関係についての私見を述べる。

2. 利用者から見たコンポーネントウェア (目次に戻る)

まず、コンポーネントウェアを利用する側からの分類を試みる。
  1. 統合型ソフトウェアの下で、文書処理や表計算を行う場合

    MS-Officeの下で、MS-WordやMS-Excelなどを組み合わせて 文書を作成しようして いる場合などである。ここで利用されている基礎技術は、複合文書を実現するための 諸技術である。ワープロを打っている人も、立派なコンポーネントウェアユーザ であると言える。

  2. 部品をマウスで結合してアプリケーション開発を行う場合

    APPGALLERYやHOLON/VPなどを利用して、アプリケーションソフトウェアを開発し ている場合が、この典型である。コンポーネントウェアが実現している部品化再 利用技術を最も享受している場合である。問題は、部品を順に結合することだけ で、アプリケーションを表現することができる分野には、制限があることである。 もちろん、「適切な部品を十分に用意すれば、すべてのアプリケーションに対し て高い再利用率を維持できる」ということは真実であろうが、「十分な知識デー タベースを用意すれば、どのような処理をもAI的に実現できる」という神話と同 じ穴に再度落ちてはならない。

  3. スクリプト言語を用いて手順を記述することによって部品を結合する場合

    2.で記述できないようなアプリケーションに対しては、自分である程度のプ ログラムを記述するしかない。Visual Basicを用いてスクリプティングを行ない、 VBX部品やOCX部品を結合する場合がこの典型である。どの程度のプログラ ムを記述すればよいのかが、この場合のキーである。

  4. コンポーネントウェアを部品として用いながら、 本格的なプログラムを書く場合

    Active X(またはOLE)、Opendocなどによって与えられる機能を駆使しながら、 C++などでプログラムを書く場合に対応する。

これらの分類においては、順に専門知識を必要とするようになる。後述するよう に、これらの各項目は明確に分離できるものではないということにも注意を要す る。

3. 方法論とツール (目次に戻る)

1.を支援する方法論は、狭い意味でのソフトウェア工学の対象外であろう。 「論文の書き方」のような本を読むのがもっとも有効であり、ソフトウェア 工学寄りの技法としては、ブレーンストーミング法、KJ法などが挙げられるだけ であろう。しかし、このような分野をもカバーしているというのがコンポーネン トウェアの驚異的な点であるとも言える。これは、文書をアプリケーションとみ なすというコンポーネントウェアの見方の新規的な点に由来している。
2.は、1.に比べると「通常の意味での」ソフトウェア開発と言える。 2.のようなソフトウェア開発の形態は、エンドユーザコンピューティング (EUC)を呼ばれる分野に属する場合が多い。
EUCにおいては、部品として与えられる定型的な処理や簡易的な画面設計結果 を、自分の環境にあわせて、組み合わせて利用する。業務の流れを最もよく認識 しているのはエンドユーザであるが、それが良いかどうかは別問題である。ビジ ネスプロセスリエンジニアリング(BPR)やワークフローについての知識は要求 されるべきである。しかし、これらは、エンドユーザによって容易に習得/実施 できる技術とは言い難い。
もともとEUCに、外から方法論を与えられるべきものなどであろうか? 少なくと も、第四世代言語と呼ばれているツールなどでは、前述の分類1.に見られる ように、明示的な方法論は提供されてこなかった。たとえば、文献 [4]は、 「表計算ソフト活用への10大作法」というタイトルであるが、その内容は、 「カスタマイズして自分専用の武器に!」などと方法論と呼ぶには、 程遠いレベルである。 エンドユーザに方法論を学習させるというのが、 もともと無理なことなのであろうか? ましてや、数行でもプログラム風なものを記述することを期待することは 難しいと考えられる。
3.の重い方から4.にかけては、基本的には、 プログラムを対象とした部品化再利用技術である。 これまでの手続き的なプログラム部品が、 オブジェクト的になっていることだけが異なるだけである。
数多いオブジェクト指向分析・設計方法論で、 部品の存在を明確に仮定しているものは存在しない。 長い歴史をもつ構造化分析・設計方法論でも部品を前提として 十分な効果を上げているものは存在しない。 この種の作業を支援する方法論が真に望まれる。

4. まとめ (目次に戻る)

オブジェクト指向分析・設計が脚光を浴びたのは、 その方法論のためで、CASEツールによるものではなかった。 コンポーネントウェアが脚光を浴びたのは、そのツールのためで、 本格的な方法論は存在しない。 いずれにしても不満が残る。 方法論とその支援ツールが協調できるための要件について、 いくつかの考察を述べてきた。
本稿において、何らかの積極的な解決策が述べられている訳ではないが、 今後の「新工法」における一つの視点であると考え、 その発展に対して、何らかの役に立てばと考えている。

参考文献 (目次に戻る)

[1] 青山幹雄,'コンポーネント指向ソフトウェア開発方法論', 情報処理学会ソフトウェア工学研究会, No.111-5 (1996).
[2] 中所武司他,'エンドユーザ向けアプリケーション統合環境の研究開発報告書', 日本情報処理開発協会 (1996).
[3] 青山幹雄,'コンポーネントウェア:部品組立てソフトウェア開発技術',情報処理, Vol.37, No.1 (1996).
[4] 松尾康徳, '表計算ソフト・活用への10大作法', 日経パソコン, No.252 (1996).
理工ジャーナル目次へ
本文の著作権は早稲田大学にあります。
御意見、御質問は、oishi@mn.waseda.ac.jpまで。