C言語は、ヘッダファイル(.h)ファイルと実装ファイル(.cファイル)から構成されます。

アセンブラ的Cプログラミングでは、実装ファイル中心の開発といえます。ヘッダファイルは、共通の定義を置く、という役割でした。関数と変数の呼び出し構造でプログラミングしていました。ソースコード規模としては数千行をカバーできます。

ただし、規模が大きくなってくると、呼び出し構造が複雑になってしまいます。

そうなると、モジュール的Cプログラミング、すなわち、ヘッダファイル中心の開発が大切です。

ヘッダファイルで、ファイル単位のインタフェース定義を行い、実装ファイルはそのインタフェースを守って動作を書きます。

すなわち、ヘッダファイルで、外部へ公開する関数をextern宣言して、実装ファイルでは、変数を外部へ公開しないようstatic宣言します。

設計原則としての、インタフェースと実装の分離が実現できます。

そして、同じ名称のヘッダファイルと実装ファイルのペアが、置換できる部品、ということになります。ソフトウェア資産化の第一歩です。

既存のソースコードから、そのような部品を作るリファクタリング方法が「部品化リファクタリング」です。