ブラックボックス
ブラックボックス (Black box) とは、内部の動作原理や構造を理解していなくても、外部から見た機能や使い方のみを知っていれば十分に得られる結果を利用する事のできる装置や機構の概念。転じて、内部機構を見ることができないよう密閉された機械装置を指してこう呼ぶ。
なおこの概念は、物理的な機構を持つハードウェアに限らない。初期のマイコンではユーザー自身がソフトウェアを作成していたが、今日のパソコンなどのコンピュータのユーザーは既成のソフトウェアを使用するのが普通であり、使用するソフトウェアの内部を理解していることはまれである。つまり、ソフトウェアに関してもブラックボックス化が進んでいると言える。
これはソフトウェアの開発者についても言える。特に商用のOSやミドルウェアがアプリケーションソフトウェアに機能を提供するために用意しているAPI群は、開発者に対して仕様は公開しているが内部は公開していないのが普通である。ソースコードを公開していないソフトウェアの内部構造は、逆アセンブルという、非常に高度なスキルを持つエンジニアが膨大な手間と労力をかけてのみ達成できる作業によってしか知ることはできない。Windowsのような巨大なソフトウェアの全貌を逆アセンブルすることは到底不可能であるし、商用ソフトウェアは(技術盗用を防ぐ為)使用契約によって逆アセンブルを禁止していることが普通である。
一方でLinuxのようなオープンソースのソフトウェアでは内部構造も公開しているが、その内容は膨大であるためアプリケーションソフトウェアの開発者が理解することは時間的に困難である。そもそもAPIを介してソフトウェアの機能を利用するだけならば、わざわざ内部の詳細を知る必要はない。