In informatica, un Software Development Kit (noto anche come SDK o devkit) è un insieme di strumenti di sviluppo. Consente la creazione di applicazioni per un determinato pacchetto software, framework software, piattaforma hardware, sistema informatico , console per videogiochi, sistema operativo o qualsiasi piattaforma simile a quelle elencate. SDK vanno da qualsiasi cosa così semplice come un’API in modo che alcuni file di interfaccia a un particolare linguaggio di programmazione o includono l’hardware sofisticati in modo per comunicare con un certo sistema embedded. Alcuni degli strumenti più comuni presenti in un SDK includono aiuti per il debug e utilità simili che vengono presentati in un ambiente di sviluppo integrato (o IDE).
Il JavaDevelopment Kit (o JDK) è l’SDK più utilizzato sul mercato. Sviluppato da Sun Microsystems per sviluppatori Java, il JDK è un software gratuito rilasciato sotto GNU General Public License (o GPL). C’è una pletora di componenti che compongono il JDK. Questi componenti sono una selezione di strumenti di programmazione. Includono, ma non sono limitati a java, il caricatore per tutte le applicazioni Java che interpreta ed è in grado di interpretare i file di classe generati dal compilatore javac; javac, che è il compilatore che converte il codice sorgente in bytecode Java; javaws, che è il programma di avvio di Java Web Start per le applicazioni JNLP; jmap, che è un’utilità sperimentale che genera una mappa di memoria per Java ed è in grado di stampare mappe di memoria di oggetti condivisi o dettagli di memoria di un dato processo; e VisualVM, uno strumento visivo che integra diversi strumenti JDK della riga di comando e funzionalità leggere per la creazione di profili di memoria e prestazioni.
Gli SDK includono codice di esempio e note tecniche o altra documentazione che supporta questo codice al fine di aiutare a chiarire i punti dal materiale di riferimento primario. Di solito un ingegnere del software riceve l’SDK da uno sviluppatore di destinazione. L’SDK può quindi essere scaricato abbastanza facilmente da Internet. Molti SDK sono gratuiti, principalmente per incoraggiare gli sviluppatori a utilizzare il sistema o il linguaggio. Possono avere licenze allegate per renderli inadatti alla creazione di software che si intende sviluppare con una licenza incompatibile. Un SDK sviluppato per un componente aggiuntivo del sistema operativo (QuickTime per Mac OS, ad esempio) può includere l’effettivo componente aggiuntivo del software stesso per lo sviluppo, se non deve essere ridistribuito.