オブジェクト指向
オブジェクトとは実世界の“物”や“概念”や“役割”などの事柄を抽象化したもの。例えば,電話とか交換機とか呼といったものはオブジェクトとなる。このオブジェクトを構成要素として,システムやサービスを構築する考え方をオブジェクト指向という。ここでできたシステムやサービスは,各オブジェクト間でのメッセージをやりとりすることによって動作する。このように,オブジェクト指向の考え方をすることで,実世界の物の見方そのままで,システムやサービスを計算機上でモデル化することができる。オブジェクト指向の基本は,
・オブジェクト単位とする考え方
・メッセージによる通信
である。これら以外にもオブジェクト指向にはいろいろな特徴があるが,それは適用分野によってとらえ方は様々である。どの分野に適用するかによって,それに対する深い理解が重要である。設計手法として見た場合,システムをモデル化(オブジェクト化)して機能的に独立性の高いソフトウェアを製造する手法といえる。一般的には機能中心設計を行った従来のソフトウェアに比べて,再利用や機能変更が容易とされているが,ソフトウェア規模が増加する。
◆ 《オブジェクト指向プログラミング》
ソフトウェアをモジュール部品の組合せでつくるためのプログラミング技術。「オブジェクト」というのはそのモジュール部品のことで,その部品をプログラムとして書いたものは「クラス」と呼ぶ。プログラムの実行は,あるオブジェクトが別のオブジェクトに「メッセージ」(一種の命令)を送り,その機能を働かせることにより行われる。したがって,機能を適切なオブジェクトに切り分ければプログラムを分かりやすくつくることができるうえに,一度作成したプログラムも変更しやすくなる。また,よく使われる機能を持った汎用的なクラスをあらかじめ用意しておけば(これをクラスライブラリと呼ぶ),そのクラスに用意されているオブジェクトを組み合わせるだけで多くの部分をプログラムできるため効率的な開発が可能になる。もう1つの特徴として,既存のクラスとの差分のみをプログラムすれば新しいクラスを作成できる「継承」という機能がある。この機能によって,プログラム量を少なくするなどさらに効率的な開発を行うことができる。
これらの特徴が最も発揮されるのが,ウインドウにマウスを使ってアクセスするグラフィカルユーザインタフェース(GUI)の構築で,ビジュアルプログラミングツールの開発にもこのオブジェクト指向を全面的に適用している。
オブジェクト指向プログラミングをサポートする言語としては,SmallTalk,C++,Objective-C,Eiffel等がある。これらはいずれも前述の「クラス」をプログラミングとして書くための機能を持っている。インターネットのWWWサービス機能を高度化するJava言語もオブジェクト指向言語の1つ。
◆ 《オブジェクト部品》
オブジェクト指向プログラミングで作成したソフトウェアのモジュールの単位で,これを組み合わせることでアプリケーションを組み立てることができる。
◆ 《メソッド》
オブジェクト指向DBMSでは,管理されたデータとともにプログラム関数(操作)を定義できる。このプログラム関数をメソッドと呼ぶ。例えば,生年月日のデータに年齢計算のメソッドを定義した場合,生年月日の検索と同時に現在の年齢を得ることが可能。
◆ 《クラス》
オブジェクト指向プログラムにおいて,共通の性質を持つオブジェクトの集合,あるいはそのようなオブジェクトの持つ性質の記述。組み合わせて複雑なオブジェクトを構成したり,類似する定義を再利用することができる。
◆ 《インヘリタンス》
クラスの性質(手続きやデータ構造)を他の新しいクラスへ引き継ぐことを「インヘリタンス(承継)」という。プログラミングの簡易化・人作業量の減少が図られる。
◆ 《分散オブジェクト技術》
異機種分散環境上に配置されたオブジェクトが,ネットワークを介して相互に通信できる仕組み(通信プラットフォーム)を提供し,オブジェクト指向に基づく分散処理を実現するための技術(図)。
本技術には,オブジェクト指向,分散処理の利点に加え,①ハードウェアやOSの違い,またネットワークを意識する必要がない,②既存システムを分散オブジェクトとしてカプセル化できる,等の特徴がある。