Les dé­ve­lop­peurs de logiciels doivent faire face quo­ti­dien­ne­ment à de nombreux défis. Outre la pro­gram­ma­tion à pro­pre­ment parler, il leur faut notamment concevoir des concepts et des pro­to­types pour de nouvelles ap­pli­ca­tions, planifier et organiser les étapes de dé­ve­lop­pe­ment ou analyser les résultats in­ter­mé­diaires et corriger les erreurs et les points faibles. La tendance à la com­plexité crois­sante des logiciels ne les aide pas à accomplir ces tâches et les outils comme les fra­me­works (c’est-à-dire des struc­tures de code prêtes à l’emploi) sont aujourd’hui in­dis­pen­sables au quotidien pour les dé­ve­lop­peurs.

Les Software De­ve­lop­ment Kits (SDK) cons­ti­tuent un autre outil in­dis­pen­sable jouant un rôle majeur dans le travail quotidien avec les langages de pro­gram­ma­tion ainsi que dans le dé­ve­lop­pe­ment et la mise à dis­po­si­tion de logiciels spé­ci­fiques à une plate-forme.

Qu’est-ce qu’un Software De­ve­lop­ment Kit ?

Un Software De­ve­lop­ment Kit, abrégé en SDK, est un ensemble d’outils et d’in­for­ma­tions fa­ci­li­tant ou rendant possible aux dé­ve­lop­peurs le dé­ve­lop­pe­ment de pro­grammes dans un langage de pro­gram­ma­tion spé­ci­fique, ou pour une plate-forme cible ou une ap­pli­ca­tion donnée. La com­po­si­tion et la pu­bli­ca­tion d’un tel kit de dé­ve­lop­pe­ment sont la res­pon­sa­bi­lité du dé­ve­lop­peur initial du langage de pro­gram­ma­tion ou du matériel/logiciel concerné, qui a na­tu­rel­le­ment un intérêt personnel à ce que des logiciels tiers pour son produit ou codés dans son langage de pro­gram­ma­tion soient com­mer­cia­li­sés. Dans la plupart des cas, les Software De­ve­lop­ment Kits sont par con­sé­quent proposés en accès libre, le fabricant pouvant faire dépendre leur uti­li­sa­tion de certaines règles ou licences.

Dé­fi­ni­tion : Software De­ve­lop­ment Kit

Software De­ve­lop­ment Kit : un SDK (Software De­ve­lop­ment Kit) est une com­pi­la­tion d’outils per­met­tant le dé­ve­lop­pe­ment d’ap­pli­ca­tions destinées à un matériel/logiciel donné ou codées dans un langage de pro­gram­ma­tion spé­ci­fique. Pour certains langages in­ter­pré­tés, le SDK peut cor­res­pondre à un en­vi­ron­ne­ment d’exécution.

De quoi est composé un Software De­ve­lop­ment Kit (kit de dé­ve­lop­pe­ment) ?

La com­po­si­tion d’un SDK varie en fonction du fabricant. Le contenu d’un kit dépend également de sa finalité : si celui-ci a été conçu pour un langage de pro­gram­ma­tion, un système d’ex­ploi­ta­tion ou un produit matériel. Parmi les com­po­santes standards que l’on re­trou­vera dans la quasi-totalité des Software De­ve­lop­ment Kits, on peut citer les API (« in­ter­faces de pro­gram­ma­tion d’ap­pli­ca­tion ») per­met­tant de rattacher de nouveaux projets logiciels au niveau du code source. La mise à dis­po­si­tion de ces in­ter­faces de pro­gram­ma­tion in­dis­pen­sables s’ac­com­pagne gé­né­ra­le­ment d’une do­cu­men­ta­tion détaillée contenant des ex­pli­ca­tions sur l’uti­li­sa­tion de l’API ainsi que d’autres in­for­ma­tions utiles. De cette façon, les dé­ve­lop­peurs in­té­res­sés peuvent se faire ra­pi­de­ment une idée de la fai­sa­bi­lité et de la manière de réaliser le projet prévu.

Note

À la place de SDK, certains fa­bri­cants utilisent d’autres dé­sig­na­tions pour leurs kits logiciels. Oracle nomme par exemple ces kits pour le langage de pro­gram­ma­tion répandu Java « JDK » pour Java (SE) De­ve­lop­ment Kit.

Si cela s’avère né­ces­saire pour le dé­ve­lop­pe­ment ou si cela simplifie con­si­dé­ra­ble­ment le processus de dé­ve­lop­pe­ment, un bon Software De­ve­lop­ment Kit doit par ailleurs contenir toutes les com­po­santes tech­niques de base, telles que des éditeurs, des bi­blio­thèques, des en­vi­ron­ne­ments d’exécution et de dé­ve­lop­pe­ment, des com­pi­la­teurs ou des dé­bo­gueurs (et si possible, d’autres outils de test et d’analyse). Les pilotes spé­ci­fiques et les pro­to­coles réseau né­ces­saires entrent également dans cette catégorie. Dans certains cas, les fa­bri­cants ajoutent aux SDK des exemples ou de petits projets test per­met­tant de débuter fa­ci­le­ment.

Résumé des com­po­santes possibles de Software De­ve­lop­ment Kits :

  • API
  • Do­cu­men­ta­tion
  • Éditeurs
  • Bi­blio­thèques
  • En­vi­ron­ne­ments d’exécution et de dé­ve­lop­pe­ment
  • Com­pi­la­teurs
  • Dé­bo­gueurs
  • Pilotes
  • Pro­to­coles réseau
  • Exemples/projets test

Quelles règles ou licences peuvent s’appliquer aux SDK ?

Comme nous l’avons déjà mentionné, la plupart des SDK sont dis­po­nibles gra­tui­te­ment. Ceci est prin­ci­pa­le­ment dû au fait que les nouveaux logiciels dé­ve­lop­pés pour le système ou l’appareil conçu par le fabricant re­pré­sen­tent pour ce dernier le moyen le plus simple d’augmenter sa valeur ajoutée pour les uti­li­sa­teurs. Les smart­phones et les tablettes, qui sus­ci­te­raient uni­que­ment une fraction de l’intérêt qui leur est porté sans les ap­pli­ca­tions des pres­ta­taires tiers, il­lustrent par­fai­te­ment cet état d’esprit. Le té­lé­char­ge­ment et l’uti­li­sa­tion d’un Software De­ve­lop­ment Kit peuvent toutefois dépendre de certaines règles.

Il est par exemple possible qu’un fabricant autorise l’accès au SDK si l’uti­li­sa­teur s’engage à ne pas trans­mettre certaines in­for­ma­tions con­fi­den­tielles. Un tel accord de con­fi­den­tia­lité (en angl. non-dis­clo­sure agreement) est fréquent dans le cas de logiciels com­por­tant des al­go­rithmes secrets, et de produits en alpha ou bêta test. Afin de garantir que le logiciel créé ne soit pas publié sous une autre licence in­com­pa­tible, un Software De­ve­lop­ment Kit peut également comporter sa propre licence. On distingue ici les licences pro­prié­taires et les licences libres. Il est conseillé aux dé­ve­lop­peurs de se fa­mi­lia­ri­ser avec ces types de licence avant de commencer leur travail, comme le montrent les exemples suivants :

  • Si un SDK est doté d’une licence pro­prié­taire, il ne convient pas au dé­ve­lop­pe­ment de logiciels open source.
  • Si un Software De­ve­lop­ment Kit est proposé sous une licence GPL (GNU General Public License), il ne con­vien­dra pas au dé­ve­lop­pe­ment d’ap­pli­ca­tions pro­prié­taires.
  • Si un SDK est sous licence libre LGPL (GNU Lesser General Public License), il peut également être utilisé pour des projets avec des éléments de code pro­prié­taires. Néanmoins, ces derniers devront toujours être struc­tu­rés de manière à ce que les uti­li­sa­teurs finaux puissent iden­ti­fier et modifier à tout moment la partie open source du logiciel.
Remarque

Les ap­pli­ca­tions open source, telles que Li­breOf­fice ou Mozilla Firefox sont en constante évolution, prin­ci­pa­le­ment grâce au Software De­ve­lop­ments Kit publié : les dé­ve­lop­peurs amateurs ou pro­fes­sion­nels utilisent les SDK de ces pro­grammes libres pour pro­gram­mer de nouveaux designs ou des ex­ten­sions de fonc­tion­na­li­tés et les mettre à dis­po­si­tion de toute la com­mu­nauté.

Aller au menu principal