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