ソフトウェア開発キット
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ソフトウェア開発キット(-かいはつ-、Software Development Kit、SDKと略記)は一般に、特定のソフトウェアパッケージ、ソフトウェアフレームワーク、ハードウェアプラットフォーム、コンピュータシステム、ゲーム機、オペレーティングシステムなどのためのアプリケーションを作成するためにソフトウェア技術者が使用する開発ツールのセットを意味する。
それは、特定のプログラミング言語用のインターフェイスのためのファイル群という形式のAPIのような簡単なものである場合もあるし、何らかの組み込みシステムと通信するための精巧なハードウェアを含む場合もある。一般的なツールとしては、統合開発環境や他のユーティリティなどのデバッグ用のツールが含まれる。SDKには、サンプルコードやサポートのための技術ノートなどの何らかの文書が含まれていることが多い。
ソフトウェア技術者は一般に開発対象としているシステムの開発者からSDKを受け取る。SDKを直接インターネットからダウンロードすることも多い。開発者がそのシステムや言語を使うことを促進するため、SDKは無料で配布されることが多い。時には SDKがマーケティングのツールとして利用されることもある。例えば、ある製品の利用を促進するために対応するSDKを無料で配布すると、人々はそのSDKで開発されたプログラムを使うために元の製品を買うことになる。
SDKは、何らかのライセンスが設定されており、そのライセンスと非互換なライセンスでソフトウェアを開発しようとした場合に困った事態が発生する。例えば、プロプライエタリなSDKはフリーソフトウェアの開発には不適である。また、GPLのSDKはプロプライエタリなソフトウェア開発に向かない可能性がある。LGPLのSDKは一般にプロプライエタリな開発でも安全と言える。
オペレーティングシステムへのアドオン形式のSDK(例えばMac OS用のQuickTime)は、アドオンソフトウェア自身を含んでいることがある(再配布の必要がないにしても、開発目的で使用するために含むことがある)。少なくとも立ち上げ時点でシステム構成をOSに問い合わせてアドオンの有無を調べるようなアプリケーションを作成することも可能であり、そうすると興味深い状況が発生する。通常であれば、アドオンがなければ実行が失敗するだけだが、アドオン無しでも機能を限定してある程度動作するようなアプリケーションをひとつのバイナリで作成することは不可能ではない。すなわち、アドオンをインストールしていない(ライセンスを持っていない)システム上で、そのアドオンのSDKを使ったアプリケーションが(機能を使っていないとは言え)動作しているわけであり、ライセンス上どう捉えられるのかが興味深い。
特定のシステムやサブシステムのためのSDK提供者は「ソフトウェア」という用語の代わりにもっと個別な用語を使用することもある。例えば、マイクロソフトやアップルコンピュータは Driver Development Kits(DDK、ドライバー開発キット)を提供しているし、PalmSourceは PalmOS開発キット(PalmOS Development Kit、PDK)を提供している。