オープンインプリメンテーション
オープンインプリメンテーション(Open implementation)とは,主にコンピュータのソフトウェア開発において,ソフトウェアの実装にアクセスできる手段を提供しているシステム,およびその実装法を指す。オープンインプリメンテーションを採用したシステムでは,開発者は自身,あるいは顧客の要求に合わせて容易にシステムをの改変することができる。そのため,複雑なシステムであっても,内部実装を細かく知ることなく振る舞いや機能を追加,変更することが容易である.また,プログラム言語において,アプリケーションプログラマに振る舞いの変更を許可するオープン言語実装という設計思想もある.MixinやTrait, オペレータのオーバライドがこれに当たる。
オープンインプリメンテーションはオープンソースと用語は似ているが,両者は似て非なる概念である.オープンインプリメンテーションは,システム内部を変更できるインタフェースをプログラマに提供するのに対し,オープンソースはソースコードを公開し,プログラマが自由に改変できることを指す.
なお,ソフトウェアだけに限らず,基本となる実装や製品を用意し,インタフェース(改変する手段)を提供することでカスタマイズできれば,オープンインプリメンテーションを採用していると考えることができる.