Software-Ent­wick­ler stehen tag­täg­lich vor einer Menge Her­aus­for­de­run­gen. Abseits des reinen Pro­gram­mie­rens gilt es unter anderem, Konzepte und Pro­to­ty­pen für neue An­wen­dun­gen zu entwerfen, Ent­wick­lungs­schrit­te zu planen und zu or­ga­ni­sie­ren oder Zwi­schen­re­sul­ta­te zu ana­ly­sie­ren und Fehler bzw. Schwach­stel­len zu beheben. Der Trend der stei­gen­den Kom­ple­xi­tät von Software ist bei der Be­wäl­ti­gung dieser Aufgaben nur wenig hilfreich, weshalb Hilfs­mit­tel wie Frame­works – also ein­satz­fer­ti­ge Code-Ba­sis­ge­rüs­te – aus dem modernen Ent­wick­ler­all­tag nicht mehr weg­zu­den­ken sind.

Ein weiteres, un­ver­zicht­ba­res Werkzeug sind so­ge­nann­te Software De­ve­lo­p­ment Kits (SDKs), die bei der täglichen Arbeit mit Pro­gram­mier­spra­chen sowie bei der platt­form­spe­zi­fi­schen Ent­wick­lung und Be­reit­stel­lung von Software eine über­ge­ord­ne­te Rolle spielen.

Was ist ein SDK (Software De­ve­lo­p­ment Kit)?

Bei einem Software De­ve­lo­p­ment Kit, oder kurz SDK, handelt es sich um ein Paket aus Werk­zeu­gen und In­for­ma­tio­nen, das es Ent­wick­lern er­leich­tert bzw. erst möglich macht, Programme in einer be­stimm­ten Pro­gram­mier­spra­che, für eine bestimmte Ziel­platt­form oder Anwendung zu ent­wi­ckeln. Die Zu­sam­men­stel­lung und Ver­öf­fent­li­chung eines SDKs obliegt dabei dem ur­sprüng­li­chen Ent­wick­ler der je­wei­li­gen Sprache bzw. der je­wei­li­gen Hard-/Software, der sei­ner­seits ein na­tür­li­ches Ei­gen­in­ter­es­se hat, dass Dritt­an­bie­ter-Software für das eigene Produkt bzw. in der ge­schaf­fe­nen Pro­gram­mier­spra­che auf den Markt gelangt. In den meisten Fällen stehen Software De­ve­lo­p­ment Kits daher zur kos­ten­frei­en Nutzung zur Verfügung, wobei der Her­stel­ler diese an bestimmte Regeln und Lizenzen knüpfen kann.

De­fi­ni­ti­on

Software De­ve­lo­p­ment Kit: Ein SDK (Software De­ve­lo­p­ment Kit) ist eine Sammlung von Hilfs­mit­teln für die Ent­wick­lung von An­wen­dun­gen für eine bestimmte Hard-/Software oder in einer be­stimm­ten Pro­gram­mier­spra­che. Bei einigen in­ter­pre­tier­ten Sprachen kann das SDK identisch mit der Lauf­zeit­um­ge­bung sein.

Welche Inhalte umfasst ein Software De­ve­lo­p­ment Kit?

Die Zu­sam­men­set­zung eines SDKs variiert von Her­stel­ler zu Her­stel­ler. Für den Umfang eines Kits ist außerdem ent­schei­dend, ob dieses für eine Sprache, ein Be­triebs­sys­tem oder Hardware gedacht ist. Als Stan­dard­kom­po­nen­te, die in nahezu allen Software De­ve­lo­p­ment Kits enthalten ist, lässt sich die API (bzw. die APIs) nennen, über die sich neue Software-Projekte auf Quelltext-Ebene anbinden lassen. Die Be­reit­stel­lung dieser ele­men­ta­ren Pro­gram­mier­schnitt­stel­le(n) wird meist von einer um­fang­rei­chen Do­ku­men­ta­ti­on begleitet, die Er­klä­run­gen zur API-Nutzung sowie weitere nützliche In­for­ma­tio­nen be­inhal­tet. In­ter­es­sier­te Ent­wick­ler können sich so schnell einen Überblick darüber ver­schaf­fen, ob und wie sich ihr geplantes Projekt rea­li­sie­ren lässt.

Hinweis

Einige Her­stel­ler nutzen anstelle von SDK al­ter­na­ti­ve Be­zeich­nun­gen für ihre Software-Pakete. Oracle bei­spiels­wei­se nennt die Sammlung für die ver­trie­be­ne Pro­gram­mier­spra­che Java „JDK“ – Java (SE) De­ve­lo­p­ment Kit.

Falls es für die Ent­wick­lung er­for­der­lich ist bzw. den Ent­wick­lungs­pro­zess erheblich ver­ein­facht, sollte ein gutes Software De­ve­lo­p­ment Kit außerdem alle tech­ni­schen Ba­sis­kom­po­nen­ten wie Editoren, Bi­blio­the­ken, Laufzeit- und Ent­wick­lungs­um­ge­bun­gen, Compiler oder Debugger (und andere Test-/Analyse-Tools, insofern vorhanden) mit­lie­fern. Auch spezielle Treiber und Netz­werk­pro­to­kol­le, die benötigt werden, fallen in diese Kategorie. In manchen Fällen fügen Her­stel­ler den SDKs auch Beispiele oder kleinere Test­pro­jek­te hinzu, die den Einstieg erheblich ver­ein­fa­chen.

Die möglichen Kom­po­nen­ten von Software De­ve­lo­p­ment Kits in der Zu­sam­men­fas­sung:

  • API(s)
  • Do­ku­men­ta­ti­on
  • Editoren
  • Bi­blio­the­ken
  • Laufzeit- und Ent­wick­lungs­um­ge­bun­gen
  • Compiler
  • Debugger
  • Treiber
  • Netz­werk­pro­to­kol­le
  • Beispiele/Test­pro­jek­te

Welche Regeln bzw. Lizenzen können für SDKs gelten?

Wie bereits erwähnt, sind die meisten SDKs kos­ten­frei verfügbar, was vor allem daran liegt, dass neue Software für das eigene System bzw. Gerät für jeden Her­stel­ler eine der ein­fachs­ten Mög­lich­kei­ten darstellt, den Mehrwert für Nutzer zu steigern. Besonders deutlich wird dies bei Smart­phones und Tablets, denen ohne Apps von Dritt­an­bie­tern wohl nur ein Bruchteil des In­ter­es­ses gelten würde. Der Download und die Nutzung eines Software De­ve­lo­p­ment Kits kann jedoch an bestimmte Regeln geknüpft werden.

So ist es bei­spiels­wei­se möglich, dass ein Her­stel­ler den Zugriff auf ein SDK nur gewährt, wenn man sich ver­pflich­tet, gewisse ver­trau­li­che In­for­ma­tio­nen nicht wei­ter­zu­ge­ben. Eine solche Ge­heim­hal­tungs­ver­ein­ba­rung (engl. non-dis­clo­sure agreement) ist ins­be­son­de­re bei Software mit geheimen Al­go­rith­men und bei Produkten im Alpha- oder Be­tasta­tus üblich. Um si­cher­zu­ge­hen, dass die kreierte Software nicht unter einer anderen, in­kom­pa­ti­blen Lizenz ver­öf­fent­licht wird, kann ein Software De­ve­lo­p­ment Kit außerdem mit einer Lizenz versehen werden. Dabei sind sowohl pro­prie­tä­re als auch freie Lizenzen möglich, weshalb Ent­wick­ler sich noch vor Beginn ihrer Arbeit mit den zu­grun­de­lie­gen­den Modellen aus­ein­an­der­set­zen sollten, wie folgende Beispiele ver­deut­li­chen:

  • Besitzt ein SDK eine pro­prie­tä­re Lizenz, ist es für die Ent­wick­lung von Open-Source-Software un­ge­eig­net.
  • Ist ein Software De­ve­lo­p­ment Kit GPL-li­zen­ziert (GNU General Public License), dann ist es nicht für die Ent­wick­lung pro­prie­tä­rer An­wen­dun­gen geeignet.
  • Steht ein SDK unter der freien LGPL-Lizenz (GNU Lesser General Public License), dann kann es auch für Projekte mit pro­prie­tä­ren Code-Be­stand­tei­len verwendet werden. Diese müssen aber immer so aufgebaut sein, dass Endnutzer den quell­of­fe­nen Anteil der Software jederzeit nach­voll­zie­hen und mo­di­fi­zie­ren können.
Fakt

Open-Source-An­wen­dun­gen wie Libre­Of­fice oder Mozilla Firefox ent­wi­ckeln sich vor allem auch dank ver­öf­fent­lich­ten Software De­ve­lo­p­ments Kit stetig weiter: Sowohl Hobby- als auch Profi-Ent­wick­ler nutzen die SDKs dieser freien Programme, um neue Designs oder funk­tio­na­le Er­wei­te­run­gen zu pro­gram­mie­ren und der gesamten Community zur Verfügung zu stellen.

Zum Hauptmenü