著者
上田 哲郎 久野 靖
出版者
情報処理学会
雑誌
情報処理学会論文誌. プログラミング (ISSN:03875806)
巻号頁・発行日
vol.40, no.SIG_7(PRO_4), pp.40-50, 1999-08

本稿では, 拡張性と柔軟性において, 従来のサブクラス化による方法に優るコンポーネントベースの差分プログラミングについて述べる.コンポーネントベースの開発において, プログラムの再利用のために拡張機能の差分のみをコーディングしてプログラムに追加しようとした場合, 従来のやり方では, クラス定義に戻ってサブクラス拡張を行わなければならず, クラス階層を熟知した上級のプログラマでなければ困難であった.本稿で提案するコンポーネント差分プログラミングでは, 拡張のための差分のみを持ったコンポーネント(ベクターコンポーネント)を開発し, それをプログラム中に挿入できる.本方式の基盤となるアーキテクチャとして, 筆者らは木構造をベースとした汎用的フレームワークNutsを開発した.Nutsでは, 部品組み立て型プログラミングをベースに複数の部品が組み合わさったものも一つの部品として振舞うようなフラクタルな構造を持つ.ベクターコンポーネントは, Nuts上の他のコンポーネントに対して透明で存在しないかのように振舞い, フレームワーク中のどこにでも挿入できる.挿入されたベクターコンポーネントは, 結合したコンポーネントに成りすまし, 一部の制御を横取りすることにより拡張機能を追加する.This paper proposes a new component architecture which supports differential programming at component composition level. Although the conventional differential Object-Oriented Development techniques are based on subclassing at the source level which required both programming language skills and detailed knowledge of library classes, our approach overperforms the conventional ones in the sense that we can prepare special components: vectors, which can be freely inserted into existing component structures and incrementally modify their target(base)components. This is attained by the following reasons: we use tree-structured generic component architecture: Nuts. In Nuts, a group of components substitutes other components topologically similar. When a vector is inserted at the root of subtree, it is invisible from lower (root-side)components, however freely intercept and modify messages to the subtree in order to extend its behaviors. Vectors are quite effective in adding various functions to GUI-based components. Thus, they are valuable tools to construct functional-rich component-based programs through incremental development.

言及状況

Twitter (1 users, 1 posts, 0 favorites)

収集済み URL リスト