実装
実装(じっそう、implementation)とは、何らかの機能(や仕様)を実現するための(具体的な)装備や方法のこと。
実装とは、何らかの機能(や仕様)を実現するための(具体的な)装備や方法のことである。名詞的に、「~の実装(implementation)」といった場合、何らかの機能を実現するモノやプログラム、もしくはある機能を実現するための手法や方式のことを指す。
また動詞的にも用いられ、何らかの機能を 実体化させ、実際に働く状態にすることを言う。
動詞では、英語ではimplement ~という表現を用い、日本語では「~を実装する」と言う。「○○機能を実装する」「~の機能を ハードウェア/ソフトウェア で実装する」といった文で用いられる。
何かに必要な機能が(仕様書などで)明らかにされていても、それはまだ理念上の存在でしかなく、現実の世界では作動していない。また、求められる機能が明らかになっていても、その機能を実現するための装備や方法が多種類ある場合もあり、それが最終的には定まっていないこともある。実装というのは、理念的段階にとどまる何らかの機能を、具現化させること(実際に動く具体的なものとして現実世界に出現させること)である。
「実装」が、具体的にどのような作業であるかということはひとつひとつの領域ごとに異なっている。
通常、エレクトロニクスの分野では、機器や装置の中に何らかの機能(電気的な機能)を果たす具体的な電子部品を組み込むこと(具体例では、プリント基板などに電子部品をはんだ付けすることや、筐体にプリント回路板や配線を組み込むこと)が実装に当たる。
なお、英語では、「同一目的のために複数の要素を一か所にまとめること」を「assemble アセンブル」というので、エレクトロニクス分野の実装は「アセンブル」「アセンブリング」ともほぼ同義的に用いられることもある。
しかし、「アセンブル」、「アセンブリング」や「アセンブリー」は、組立て作業、あるいは、組立てられた物を指す狭義であり、実装は、この上位概念にあたる具現化技術の全般を指すものであり、英語では「assemble アセンブル」と区別して「packaging パッケージング」と呼ばれる事が多い。
ソフトウェア開発(プログラミング)
ソフトウェア開発(プログラミング)の分野では、あらかじめ機能(/関数)だけが決められている箇所を、具体的なプログラムとして作成している部分やその作業を実装(implement)と呼び、「この関数を実装する」「あるクラスを実装する」などという文で用いられる。
機械工学においての[実装]という言葉は、他の物とはややニュアンスが異なっており、既存の機械に何らかの改良・新規設計部品への交換もしくは追加など改善において~を実装という表現が用いられている。主に車関係においては、物理的な機械的要素が主体である機能を追加した場合にでも~システムの実装と表現される事が多い。
社会・健康科学
[実装]は既存の領域における活動やプログラムにある特定の活動を実践させることと定義される。この定義に従えば、実装のプロセスは目的をもち、外部の人間が観察したとき、その“特定の活動"の存在と強度を評価できるほどに実装に関して十分に具体的に記述されていることになる。
「設計と実装」は対で語られることが多い。
何らかの機能を実現するための方法や枠組みを決定する抽象的な作業(別の表現で言えば、紙の上での作業や、モニタ上での作業)を設計と呼び、その機能を実際に動作させるための具現化(具体化)作業を実装と呼ぶ。
設計と実装を比べると、設計は機能を実現するための要素と構成について抽象的・理論的に表現する作業であるのに対して、実装は現実の世界で実際に形作ることによって機能を実現することであるから、実装のほうが現実における様々な状況に影響を受ける。そのため、設計に比べて、物理的・コスト的・時間的な影響をより直接的に受ける。
モノを作り出す工程としては、設計は上流、実装は下流に位置する。ただし現実には、この2つの過程は単純に2つに分離できるわけではなく、設計と実装は緊密な関連がある。例えば、モノを実際に作り出すためには、実装時のことも考慮して設計することが一般的である(「実装上の制約」に配慮した設計)。なお、実装段階になって、当初の設計が実現できないことが判明して、工程を遡り、「実装上の都合」で設計が変更されることもある。
なお、比較的、単純な機能なモノやソフトウェアの場合には、特に一個人が独りで行うような開発では、設計と同時並行的に実装まで行うこともある。だが、現在の(複数名で行うことが一般的な)大規模開発においては分業が進んでおり、設計と実装の工程はかなりはっきりと区別されている。製品開発のモデルの詳細は、ソフトウェア開発方法論のウォーターフォールモデル、コンカレントエンジニアリングなどを参照のこと。
上記、「設計と実装」という用語での対比は、主にソフトウェアの分野で用いられる。ソフトウェア以外の分野では、「設計と製造」のように、実装ではなく製造が用いられることが多い。ソフトウェア以外の分野で、「製造」と言わずあえて「実装」という言葉を用いるのは「ある特定の機能を実現する」ことで注目するような場合である。
エレクトロニクスの分野における実装技術は、電子部品をプリント基板にはんだ付けする技術という意味で用いられ、スルーホール実装やSMT(表面実装技術)のことを示す場合が多かった。本来の実装技術の意味は、多様化する電子部品に対して、ウェハーの状態から最終製品になるまでの電子部品の組み立て技術、具現化全般の技術であり、現在は、このような理解が定着しつつある。実装技術は、製品の重量、大きさ、性能、コストや信頼性に大きく影響する、学際的な技術である。
プリント基板における実装技術については、さらに高密度実装、高周波実装、高温・低温実装、鉛フリーはんだ、難燃性、長期信頼性、フレキシブル実装、プリンタブル実装など多様な細かい分野に分かれ、多くの企業や大学が力を入れて研究開発を行っている。
高密度実装 集積度向上を目的とした実装技術。特に携帯機器の分野で重要。チップ部品、BGAなどによる小型化、多ピン化とそれにともなう接合技術からなる。はんだ付けによる接合は、小型部品がはんだの表面張力で浮いてしまう「マンハッタン現象」という不良や、隣接するピン同士がはんだでくっついてしまうはんだブリッジ(→ソルダーレジスト)という不良の対策が必須である。さらに小型の機器には超音波接合も多用される。近年は部品を積層して集積度を上げる三次元実装技術が注目されている。
高周波実装 情報処理の速度を上げるため、高い周波数の信号を精度良く配線に通すことを目的とした実装技術。特にCPUやメモリの分野で重要。信号の同着性確保、ノイズ対策、不要輻射軽減(→電磁波障害)、電源の品質向上が主な技術となる。
高温実装 高温に耐えるための実装技術。特に電力用半導体素子(パワーデバイス)の分野で重要。プラスチックやはんだの融点は300度以下のものが多く、これをいかに向上させるかがポイントとなる。また、基板の熱による反りを抑制する技術や大電流を扱うための配線技術や放熱技術も重要。
低温実装 こちらは低温に耐えるための実装ではなく、熱に弱い部品を低い温度で実装するための技術である。特にセンサやディスプレイ、有機半導体の分野で重要。低融点はんだや銀ペーストなどの低温接合材料や、異方性導電フィルム(ACF)などの局所加熱型のプロセスが主要技術。
難燃性 エレクトロニクス製品の出火事故を防ぐための技術。かつて紙フェノール基板が多く使われていたころは基板自体の難燃化が大きな課題だったが、近年は難燃材に含まれる環境負荷物質の削減に主眼が移ってきている。
フレキシブル実装 機器に可撓性を持たせるための実装技術。特にICカードや携帯機器の分野で重要。フレキシブル配線板と、その配線板と部品とをつなぐ接合技術からなる。かつては曲がる配線板と曲がらない部品をどう繋ぐかが主な課題だったが、有機半導体の発達によって部品自体を曲げるという構造も可能になった。
プリンタブル実装 製造にリソグラフィを用いず、印刷を用いる低コストな実装技術。太陽電池やディスプレイ、有機半導体分野で重要。印刷用の材料開発と印刷機の開発が主な課題。印刷用材料の一部は曲げに対して強い耐性があり、前述のフレキシブル実装とも深い関係がある。
ソフトウェア分野では、実装とは仕様やアルゴリズムを、具体的なプログラミング言語のプログラム文として実現すること(書くこと)、つまりプログラミングである。
オープンなコンピュータ言語やなどでは1つの仕様に対して複数の実装が存在しうる。この実装を実装系や処理系とも呼ぶ。定義通り、それぞれの処理系は仕様を満たす動作をしなければならないが、仕様の不備、解釈の違い、バグ、独自の拡張などで挙動が異なる場合も多く、それらは方言として処理系の違いに表れる。そういった違いを除けば処理系は原則として「同じ」と考えられる動作を行い、差違は性能面にのみ現れる。