![]() ![]() |
再利用性、拡張性、そして信頼性を達成するために、オブジェクト指向による設計の原理は、最も良く知られた技術的回答を提供します。
それらの原理についての深く突っこんだ議論は、この紹介の範囲を超えますが、ここで簡潔に定義しておきます。
| オブジェクト指向による設計は、抽象データ型の実装のために構造化された集まり<collection>あるいはクラス群としてソフトウェア システムを構築することです。 |
次の点は、この定義において注意する価値があります。
重点は、システムを、(システムが遂行する機能ではなく)システムが操作<manupulate>するオブジェクトの型<type>の周囲に構造化することと、データ構造全体を(独立したルーチンではなく)関連した操作<operattion>と一緒に再利用することとにあります。
オブジェクトは、抽象データ型
-- 言わば、それらの表現を通じてというよりも、公式なインターフェイスから分かるデータ構造
-- の実例<instance>として記述します。
基本的なモジュールの構成単位<unit>は、クラスと呼ばれ、抽象データ型の一つの実装(あるいは、実装を延期"deferred"
されたクラス群の場合には、次で学ぶように、同一の抽象データ型のありうる実装の集合)を記述します。
集まり<collection>
という言葉は、クラスをどのように設計すべきかを反映しています。つまり、クラス自体に有益かつ有用であり、クラスが属しているシステムに独立しており、多くの異なるシステムによって再利用されうる、構成単位<unit>としてです。ソフトウェアの構成要素<constructs>は、ゼロから作り始めるトップダウンの処理<process>としてではなく、既存のクラス群を組み立てたもの<assenbly>とみなされます。
最後に、構造化された<structured>
という言葉は、クラス間に二つの重要な関係がある、ということを反映しています。それは、クライアント関係と継承関係です。
Eiffel は、これらの技法を、ソフトウェア開発者に対して、単純で実践的な方法で利用可能にします。
言語として、Eiffel は、この入門で提示する以上のものを含みますが、もっと 多くのことも含みます。Eiffel は、(キーワードの数といった尺度で見れば)小さな言語であり、Pascal ほど大きくありません。プログラマが全体的に習得できる言語 -- 大部分のプログラマが一部しか知らない言語に対するものとして -- に分類されるものの一つにすることに意味があったのです。さらに、Eiffel は、世界中の会社で、数千のクラス群と数十万行におよぶ、多くのフルスケールのプロジェクトによって示されるように、工業的なソフトウェア システムの開発に適しています。
![]()
URL
for this page: http://www.eiffel.com/doc/manuals/language/intro/design.maker.html.
Copyright 1994-1998 Interactive Software Engineering Inc. All rights reserved.