直交性 (情報科学)

情報科学における直交性とは、特定の機能体系内で例外的な振る舞いを行う要素の多寡を指し示す慣用的な用語である。どの要素も本質的には同じように振る舞うならば直交性が高い、要素毎の癖が強いならば直交性が低い、と表現する。

機能の直交性が高いということは、一つの要素について知れば他の要素でも類推が効くということである。したがって利用者にとっては、直交性の高さはその体系の使い勝手が良いことを意味する。

この用語は文脈によって様々な意味に用いられるので扱いには注意が必要である。

CISCと直交性
CISCでは、一部の特殊な命令を除いて、命令がオペレーションとアドレッシングモードの組み合わせで表現され、その組み合わせの制限が緩やかなことを「直交性が高い」という。直交性の高い命令セットアーキテクチャとしてはVAXが著名である。

RISCと直交性
RISCでは、多数の汎用レジスタを持ち、汎用ゆえどのレジスタでも同等に取り扱える点を指し「RISCはレジスタの直交性が高い」という。一方でロードストア・アーキテクチャを取ることから演算命令はメモリを扱えず、メモリを扱えるのはロードストア命令だけである。このような制限は（CISCの観点からは）「RISCは直交性が低い」といえる。

ソフトウェアと直交性
ソフトウェアでの直交性は、機能間の組み合わせや順序について依存関係が小さいことを意味する場合が多い。具体的には次のような事例を指す。
 オブジェクトへの操作があるなら逆操作もある。
 プロパティ間に依存関係がない。
 不変契約が保持されている。

Category:ソフトウェア工学