L'intelligence artificielle (IA) est censée faciliter le travail des développeurs, mais selon Harness, le code généré par l'IA pourrait en réalité tripler leur charge de travail dans l'année à venir. L'augmentation du volume de code livré accroît les risques de failles et de vulnérabilités si les tests et les mesures de sécurité ne sont pas rigoureusement appliqués. Bien que neuf développeurs sur dix utilisent déjà des outils d'IA pour accélérer la livraison de logiciels, cette tendance nécessite une vigilance accrue à chaque étape du cycle de vie du développement logiciel (SDLC) pour prévenir les incidents de sécurité.L'utilisation de solutions d'intelligence artificielle générative pour produire du code informatique permet de rationaliser le processus de développement de logiciels et facilite l'écriture de code pour les développeurs de tous niveaux de compétence. L'utilisateur saisit un texte décrivant ce que le code doit faire, et l'outil de développement de code d'IA générative crée automatiquement le code. Il peut également moderniser le code existant et traduire le code d'un langage de programmation à un autre.
Harness propose d'utiliser davantage l'IA pour automatiser l'analyse des changements de code, tester les failles, et s'assurer que les déploiements peuvent être rapidement annulés en cas de problème. L'intégration de la sécurité à chaque phase du SDLC et l'automatisation des processus de surveillance des composants logiciels sont essentielles. Finalement, en adoptant des mesures robustes d'assurance qualité et de sécurité, les entreprises peuvent réduire les charges de travail des développeurs tout en augmentant la sécurité et la conformité.
Optimisation du processus de codage par l'IA générative
L'IA générative pour le codage est possible grâce aux récentes percées dans les technologies des grands modèles de langage (LLM) et du traitement du langage naturel (NLP). Elle utilise des algorithmes d'apprentissage profond et de grands réseaux neuronaux formés sur de vastes ensembles de données de divers codes sources existants. Le code d'entraînement provient généralement d'un code accessible au public produit par des projets open source.
Les programmeurs saisissent des invites en texte clair décrivant ce qu'ils veulent que le code fasse. Les outils d'IA générative suggèrent des extraits de code ou des fonctions complètes, ce qui rationalise le processus de codage en gérant les tâches répétitives et en réduisant le codage manuel. L'IA générative peut également traduire le code d'un langage à un autre, rationalisant ainsi la conversion du code ou les projets de modernisation, tels que la mise à jour des applications existantes en transformant COBOL en Java. Même si le code produit par l'IA générative et les technologies LLM devient plus précis, il peut toujours contenir des défauts et doit être revu, édité et affiné par des humains. Certains outils d'IA générative pour le code créent automatiquement des tests unitaires pour faciliter cette tâche.
L'IA générative, le "low-code" et le "no-code" permettent tous de générer du code rapidement. Cependant, les outils "low-code" et "no-code" dépendent de modèles et de bibliothèques de composants préconstruits. Ces outils permettent aux personnes n'ayant pas de compétences en matière de codage d'utiliser des interfaces visuelles et des commandes intuitives telles que le glisser-déposer pour créer et modifier des applications rapidement et efficacement, tandis que le code proprement dit reste caché en arrière-plan. Les logiciels d'IA générative pour le code, quant à eux, n'utilisent pas de modèles ni de bibliothèques de composants. Le logiciel lit les invites en langage clair d'un développeur et suggère des extraits de code à partir de zéro qui produiront les résultats souhaités. Alors que les outils "low-code" et "no-code" s'adressent généralement aux non-développeurs et aux utilisateurs professionnels, les développeurs professionnels et les autres utilisateurs peuvent utiliser les logiciels d'IA pour la génération de code.
Exemples d'outils d'IA de génération de code actuellement disponibles
IBM watsonx Code Assistant : IBM watsonx Code Assistant aide les développeurs à écrire du code en utilisant des recommandations générées par l'IA, quel que soit leur niveau d'expérience. Les développeurs peuvent formuler des demandes en langage clair ou utiliser le code source existant pour générer du code pour des cas d'utilisation ciblés. Dès le départ, watsonx Code Assistant fournit des modèles pré-entraînés basés sur des langages de programmation spécifiques afin de garantir la confiance et l'efficacité pour une génération de code précise.
Github Copilot : Github...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.
et bonjour à tous.