読み込み中...実装(じっそう)とは、「ある構成要素を全体に対して取り付けること(組み立て)」、もしくは「ある機能を実現するための構成要素を具体化すること(実現する作業)」を指す。実際に何を行うかは分野によって異なるが、ある機能を実際に動作する状態に持っていくための最終段の作業である。
動詞的には、「〜の機能を実装する」、「ハードウェア/ソフトウェアで実装する」という文で用いられる。名詞的に、「〜の実装」といった場合、ある機能を実現するモノやプログラム、もしくはある機能を実現するための手法や方式のことを指す。
通常、エレクトロニクスの分野では、電子部品をプリント基板の上に取り付ける(はんだ付けする)作業を実装(アセンブリ)という。ソフトウェアの分野では、プログラムを作成する作業を実装と呼び、「ある関数を実装する/あるクラスを実装する」などという文で用いられる。
ある機能を実現するという開発過程において、「設計と実装」は対で語られることが多い。どちらも極めて高度な知的作業であるが、機能を実現するための方法や枠組みを決定する抽象的な作業を設計と呼び、その機能を実際に動作させるための具体化作業を実装と呼ぶ。
設計と実装を比べると、実装は現実の世界で実際に機能を実現することであるから、現実における様々な状況に影響を受ける。そのため、設計に比べて、物理的、コスト的、時間的な影響をより直接的に受ける。
モノを作り出す過程としては、設計は上流、実装は下流に位置する。しかし、現実には、この2つの過程は明確に分離できるわけではなく設計と実装は緊密な関連がある。例えば、モノを実際に作り出すためには、実装時のことも考慮しないと設計はできない(実装上の制約)。逆に、実際に実現する際になって、「実装上の都合」で設計が変更されることもある。
なお、比較的、単純な機能なモノやソフトウェアの場合には、実装と同時に設計を行うこともあるが、現在の大規模開発においては分業が進んでいる。製品開発のモデルの詳細は、ソフトウェア開発方法論のウォーターフォールモデル、コンカレントエンジニアリングなどを参照のこと。
上記、設計と実装という対の概念は、主にソフトウェアの分野で用いられる。ソフトウェア以外の分野では、「設計と製造」のように、実装ではなく製造が用いられることが多い。ソフトウェア以外の分野で、実装という言葉を用いるのは「ある特定の機能を実現する」ことに注目する場合である。
ソフトウェア分野では、実装とは仕様やアルゴリズムを具体的なプログラミング言語のプログラムとして実現すること、つまり プログラミングである。
オープンなコンピュータ言語やファイルフォーマットなどでは1つの仕様に対して複数の実装が存在しうる。この実装を実装系や処理系とも呼ぶ。定義通り、それぞれの処理系は仕様を満たす動作をしなければならないが、仕様の不備、解釈の違い、バグ、独自の拡張などで挙動が異なる場合も多く、それらは方言として処理系の違いに表れる。そういった違いを除けば処理系は原則として「同じ」と考えられる動作を行い、差違は性能面にのみ現れる。