連載
» 2011年06月27日 12時00分 UPDATE

オブジェクト指向の世界(31):情報を媒体に転写する? 形相と質料 (1/2)

前回は、学習パターンを紹介した。今回は「転写」と「媒体(メディア)」について整理してみる。

[河合昭男,オブジェクトデザイン研究所]

 前回は「SFC学習パターンを新人研修に適用する」というテーマで筆者の体験から得られた知見をご紹介しました。頭の片隅に残っていた学習パターンを、現場で思い出して実践したところ、効果を実感することができました。皆さまもぜひ「学習パターン」を活用してください。

 今回のキーワードは、「転写」と「媒体(メディア)」です。藤本隆宏氏は「工業製品の製造とは設計情報を媒体に転写することである」[1][2]と主張されています。この考え方は、数年前著書を読んだときから、「プラトンのイデア論」[3]や「アリストテレスの形相と質料」[4]の考え方と相通じるものがあると感じていましたが、今回一度自分なりに整理してみたいと思います。

転写とは?

 転写という言葉の意味は、「文章・絵などを他のものから写し取ること」(広辞苑)です。例えば、印刷とは原版から紙などの媒体に文字や図などを転写することです。印刷は物理的にはインクを紙に転写することですが、目的は情報というソフトウェアを物理的な紙などを媒体として人に伝達することです。

 身近な例をもう一つ挙げるなら、CDやDVDを用いて音楽や映画を聴いたり見たりすることができます。物理的なCDやDVDは、音楽や映画をデジタル情報として転写して伝達するための媒体です。利用者は、PCや再生機器を用いてCDやDVDという媒体から音楽や映画などの情報を引き出して利用します。このように転写の目的は媒体を通して情報伝達を行うことです。

製造は設計情報の転写

 「工業製品の製造とは、設計情報を媒体に転写することだ」という考え方があります[1][2]。例えば、車のボディは素材となる鉄板を金型という鋳型でプレスして作ります。この鋳型に設計情報が入っています。一つの鋳型から同じ形のボディが次々作ることができます。

ALT 図1:設計情報を媒体に転写する

 これはプラトンのイデア論の説明で用いた鯛焼きの例[3]に似ています。オブジェクト指向の考え方では鋳型がクラス、鋳型を用いてできたものがオブジェクト(インスタンス)です。

 この物理的な鋳型自身も、「設計情報という物理的な実体のない概念的なものが転写されたオブジェクトである」と考えることができます。設計情報という概念が物理的な鋳型という媒体に転写され、次に鋳型に転写された設計情報が製品に転写されるのです。

 この転写の考え方では「(製品の)販売は、媒体に乗せた形で設計情報を顧客に発信すること」[2]であり、「顧客が消費しているのは、基本的には設計情報」[2]となります。モノ造りも物理的なハードウェアよりも、「そこに乗せられた情報、つまりソフトウェアが意味を持つ」と言うことができます。

媒体=メディア

 そもそも、媒体と言うよりも、メディアの方が分かりやすいかも知れません。

 英語のMediaはMediumの複数形で、Mediumnの意味は辞書には(1)中間、(2)媒体、(3)マスコミ……と記されています。例えばステーキの焼き具合のミディアムは(1)です。今問題にしているのは(2)の媒体ですが、これは“何かと別の何かの間にあって介在するもの”というところから来ているようです。

 また、CDやDVDというメディアを通して音楽が聴け、映画を見ることができます。物理的なCDやDVDそれ自体は本質的には必要ではありません。そこに転写(コピー)されている情報が必要なわけです。例えば、インターネットというメディアを通しても、必要な情報を伝達することができます。このときは物理的なCDやDVDは不要です。

ALT 図2:媒体=メディアを通して情報を伝達する

形相と質料

 アリストテレスは「全てのものは形相と質料からなる」と考えました[4]。形相とはそのものの本質で質料とは素材です。例えば、木の椅子の形相は「人が座るための道具」で、質料は「木」です。この形相と質料は別々のところにあるのでなく、常に一体化しています。

 この考え方に従うなら、情報は形相であり、メディアは質料です。物理的CDやDVDは素材であり、そこに音楽や映画などの情報を焼き付けて形相と質料が一体化したものが製品です。利用者が必要なのは情報なのですが、メディアがないと利用することはできません。情報が本質的に必要なもので、メディアは付随的なものです。

ALT 図3:製品=情報(形相)+メディア(質料)

オブジェクト指向言語

 オブジェクト指向言語の形相と質料を考えてみましょう。

 例えば、JavaやC++などにはnewという演算子があります。new演算子でコンストラクタを呼ぶとオブジェクトのためのメモリ領域を確保し、そこを初期化します。そのメモリ領域はオブジェクトの情報を保持するための媒体であると考えることができます。そこは単なるメモリ領域ではなくクラスという鋳型を用いて意味のある形に初期化されます。メモリ領域は質料でそこに形相が与えられたと考えることができます。

 ところでクラスに定義されているメソッドは、そのクラスを特徴付ける本質的なものなので形相です。アリストテレスの考えならば、これらも各オブジェクトのメモリ領域に一体化されるべきですが、効率上同じものをたくさん持つ必要性はなく、クラスに一つ定義しておいて共有すればプログラムとしては十分です。

 プラトンのイデアとアリストテレスの形相は似ていますが、違いは別の場所に一つだけあるか、各個物の中に含まれているかです。オブジェクト指向の考え方では、アリストテレス風にデータとメソッドは一体化していますが、効率上コンパイラはプラトン風にメソッドは別の場所に置いて共有します。

モデル

 次は、モデルについて考えてみましょう。

 モデルの目的は2種類あります。一つ目は現実世界を単純化して理解するためです。自分が今、対象としている問題領域をコンテキストと呼ぶなら、コンテキストを転写したものがモデルです。こちらは現実世界が先にあってモデルは後からできます。

 もう一つのモデルは人工物を作成するための設計図です。こちらは先にモデルがあり、それを元にして人工物に転写します。

 このように、転写も現実世界と概念の間の方向としては両方向があり得ます。2種類のモデルを区別するために前者を分析モデル、後者を設計モデルと呼びます。

ALT 図4:情報伝達は双方向
       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

ピックアップコンテンツ

- PR -

注目のテーマ

マーケット解説

- PR -