拡張性

拡張性（かくちょうせい）とは、機械やソフトウェアなどが本来もつ機能に加えて、付加的な機能を追加したり、それらの性能をあとから向上させる事が可能であるような設計上の特徴。
コンピュータハードウェアの拡張性.
コンピュータを構成する要素は、大きく分けて入力、制御、演算、記憶、出力等に分けられるが、通常具体的なシステムとしてコンピュータを構築するときは、その目的に合わせて個々の要素に求められる要件を決定し、それらを組み合わせて一個のコンピュータ装置を構築する。例えば、電卓や家電製品の組み込みコンピュータなどに関しては、これらをあとから変更する必要性はなく、したがって、この項目で問題としている拡張性を持たせるような設計を行う必要はない。
ところが、汎用コンピュータ、パーソナルコンピュータや家庭用ゲーム機など、その運用段階においてある程度その目的に幅のあることを前提とした一連のコンピュータ装置に関しては、あらかじめ厳密にその機器構成の要件を設定して設計する事は適わないから、本体の機能・性能としては、ニーズに対する最大公約数的な設計を行い、個々個別に必要となるハードウエア装置に関しては、最終的にその用途が決定された後にシステムインテグレーターやユーザーの手によってシステムに組み込む必要が発生する。ここで、最終的にどの程度システム構成を自由に設定できるようにするかということが、コンピュータハードウェアの拡張性を決定する事になる。
コンピュータハードウェアの拡張性ということについて、パーソナルコンピュータを例に取ると、通常、パーソナルコンピュータの入力は、キーボードとマウスやトラックパッドを用いるのが一般的である。
近年の一般的な（ノートパソコンを含む）パーソナルコンピュータは、PS/2コネクタやUSBによって入力手段を拡張できる事が普通であり、トラックボールやペンタブレット、さらに走査（スキャン）やデジタルカメラなどの入力機器を接続して使用することができる。また、これ以外にも例えば科学技術用途で各種センサーを接続するなど、さまざまな入力手段が考えられるが、その際、コンピュータ本体の外部インターフェースを拡張する必要が出てくる場合がある。
コンピュータの要素のうち、制御にあたる部分は一番目に付きにくい部分では有るが、例えば、外部インターフェースをつかさどるバスコントローラーなどは制御装置の一例である。前述のとおり、外部の入力機器や出力機器などを接続する際に特別の外部インターフェースを必要とすることがあり、この際追加する拡張カードの類が制御装置の拡張としてはわかりやすい物であろう。
演算装置の拡張に関しては、例えばCPUを置き換えてしまうようなアップグレードが考えられる。このようなアップグレードを考慮せず、CPUを直接基板上に半田付けをして実装しているコンピュータなども存在するから、CPUを置き換えられる構造をとることは、拡張性を考慮した設計の一例である。また、浮動小数点演算コプロセッサ(FPU)やグラフィックアクセラレータなど、付加的な演算装置を追加して一部の演算処理を肩代わりして高速化するような手段がとられる場合も多い。
コンピュータを使用していると、ハードディスクの記憶領域を使い切ってしまって新たなデータを保存できなくなったり、メインメモリを使い切ってしまってアプリケーションを立ち上げられなくなったり、動作が極端に遅くなってしまったりという事態に陥ることがある。このような時、記憶装置に関する拡張性を考慮した設計であれば、ハードディスクドライブの追加や載せ変え、メインメモリの追加などの方法によって対処することが可能である。
出力装置の場合、ディスプレイをより大型で高精彩のものと交換したり、プリンタを追加したり、果てにはスピーカーを交換、追加するといったことも拡張行為と言える。
これらの拡張を実現するために、パーソナルコンピュータにはさまざまな拡張手段が用意されているのが慣例である。PCIやISAやCバスやNuBusなどの汎用拡張バスはその典型であるし、USBやIEEE 1394などの外部インターフェースもまた拡張性を持たせるために欠かせない装備である。ATAをはじめとするディスクドライブインターフェースなど個別の機器類に特化したインターフェースもある。また、コンピュータの筐体自体にも、内部に拡張カードやドライブ装置を内蔵するためのスペースを確保する事もまた、拡張性の確保のために重要な事と言える。