Nouvelles Du Monde

L’intelligence logicielle est essentielle pour créer de meilleures applications

L’intelligence logicielle est essentielle pour créer de meilleures applications

Les équipes de développement ont toujours pour mission de créer des logiciels de meilleure qualité, d’être plus efficaces et de plaire le plus possible à leurs utilisateurs.

L’introduction de l’IA dans le pipeline de développement rend cela possible, de l’intelligence logicielle aux outils de développement assistés par l’IA. Les deux peuvent travailler main dans la main pour atteindre le même objectif, mais il y a une différence entre l’intelligence logicielle et le logiciel intelligent.

Les outils de développement assisté par l’IA sont des produits qui utilisent l’IA pour faire des choses comme suggérer du code, automatiser la documentation ou augmenter généralement la productivité. Vincent Delaroche, fondateur et PDG de JETERdéfinit l’intelligence logicielle comme des outils qui analysent le code pour vous donner une visibilité sur celui-ci afin que vous puissiez comprendre comment les composants individuels fonctionnent ensemble, identifier les bogues ou les vulnérabilités et gagner en visibilité.

Ainsi, alors que ces outils logiciels intelligents vous aident à écrire un meilleur code, les outils d’intelligence logicielle passent au crible ce code et s’assurent qu’il est de la meilleure qualité possible, et font des recommandations sur la façon d’y parvenir.

“Le logiciel personnalisé est considéré comme une grande boîte noire complexe que très peu de gens comprennent clairement, y compris les experts en la matière d’un système donné”, a déclaré Delaroche. “Lorsque vous avez des dizaines de millions de lignes de code, qui représentent des dizaines de milliers de composants individuels qui interagissent tous les uns avec les autres, il n’y a personne sur la planète qui puisse prétendre être capable de comprendre et de tout contrôler dans un tel une technologie complexe.

De même, même le développeur le plus intelligent ne connaît pas toutes les options possibles à sa disposition lors de l’écriture de code. C’est là qu’intervient le développement assisté par l’IA, car ces outils peuvent suggérer le meilleur morceau de code possible pour l’application.

Par exemple, un développeur peut fournir un morceau de code à ChatGPT et demandez-lui de meilleures façons d’écrire le code.

Selon Diego Lo Giudice, analyste principal chez Forrester, Amazon DevOps Gourou sert un objectif similaire du côté de la configuration. Il utilise l’IA pour détecter d’éventuels problèmes opérationnels et peut être utilisé pour mieux configurer vos pipelines.

Lo Giudice a expliqué que les problèmes de qualité ne sont pas toujours le résultat d’un mauvais code ; parfois, les systèmes autour du logiciel ne sont pas configurés correctement et cela peut également entraîner des problèmes, et ces outils peuvent aider à identifier ces configurations problématiques.

George Apostolopoulos, responsable de l’analyse chez Laboratoires Endora expliqué en outre les capacités des outils de renseignement logiciel comme étant capables d’effectuer des vérifications de règles simples, de fournir des décomptes et des statistiques de base comme des moyennes, et d’effectuer des analyses statistiques plus complexes telles que des distributions, des valeurs aberrantes et des anomalies.

L’intelligence logicielle est cruciale si vous travaillez avec des dépendances

L’intelligence logicielle joue un rôle important non seulement dans la qualité, mais aussi dans la sécurité, résolvant un certain nombre de défis liés à la dépendance aux logiciels open source (OSS).

Lire aussi  L'US Air Force commande un flet volant à conception de corps d'aile mixte

Ces outils peuvent aider en évaluant les pratiques de sécurité du développement, le code de la dépendance pour le code vulnérable et le code de la dépendance pour le code malveillant. Ils utilisent des données globales pour identifier des choses comme le typosquatting et les attaques de confusion de dépendance.

Selon Apostolopoulos, il y a un certain nombre de choses qui peuvent mal tourner lors de l’ajout de nouvelles dépendances, de la mise à jour des anciennes ou simplement de la modification du code.

“Au cours des dernières années, un certain nombre d’attaques ont révélé le potentiel de la chaîne d’approvisionnement logicielle en tant que vecteur d’attaque très efficace avec d’énormes effets multiplicateurs de force”, a déclaré Apostolopoulos. “En conséquence, un nouveau problème est de s’assurer qu’une dépendance que nous voulons introduire n’est pas malveillante, ou qu’une nouvelle version d’une dépendance existante ne devient pas malveillante (parce que son code ou son mainteneur ont été compromis) ou que le développeur n’en est pas victime. aux attaques ciblant le processus de développement comme le typosquattage ou la confusion des dépendances.

Lors de l’introduction de nouvelles dépendances, le développeur doit répondre à un certain nombre de questions, telles que le morceau de code qui résoudra réellement son problème, pour commencer. Les outils d’intelligence logicielle entrent en jeu ici en recommandant des candidats en fonction d’un certain nombre de critères, tels que la popularité, l’activité, le niveau de support et l’historique des vulnérabilités.

Ensuite, pour introduire réellement ce code, d’autres questions surgissent. “L’arbre de dépendance d’un logiciel modestement complexe sera très grand”, a noté Apostolopoulos. « Les développeurs doivent répondre à des questions telles que : est-ce que je dépends d’une dépendance particulière ? Quelle est la chaîne potentiellement longue de dépendances transitives qui l’apporte ? À combien d’endroits de mon code en ai-je besoin ? »

Il est également possible dans les grandes bases de code de se retrouver avec des dépendances inutilisées et obsolètes à mesure que le code change. “Dans une grande base de code, il est difficile de les trouver en examinant le code, mais après avoir construit un graphique de dépendance et un graphique d’appel précis et à jour, ceux-ci peuvent être automatiquement identifiés”, a déclaré Apostolopoulos. “Certains développeurs peuvent être à l’aise avec des outils générant automatiquement des demandes d’extraction qui recommandent des modifications à leur code pour résoudre les problèmes et dans ce cas, l’intelligence logicielle peut créer automatiquement des demandes d’extraction avec les actions proposées.”

Avoir un outil qui vous offre automatiquement cette visibilité peut vraiment réduire l’effort mental requis par les développeurs pour maintenir leur logiciel.

Le paysage logiciel est un « énorme gâchis »

Delaroche a déclaré que de nombreux DSI et CTO ne sont peut-être pas disposés à l’admettre publiquement, mais le portefeuille d’actifs logiciels qui dirigent le monde, qui existent dans les plus grandes entreprises, devient un énorme gâchis.

Lire aussi  Cosmoweek 580 (23.10. – 29.10.) – Kosmonautix.cz

« Il devient de moins en moins facile à contrôler, à maîtriser, à gérer et à faire évoluer », a déclaré Delaroche. “De nombreux DSI et CTO sont submergés par la complexité des logiciels.”

En 2011, Marc Andressen a déclaré que « le logiciel dévore le monde ». Delaroche a déclaré que cela est plus vrai que jamais car les logiciels deviennent de plus en plus complexes.

Il a cité l’exemple récent de Southwest Airlines. Pendant les vacances, la compagnie aérienne a annulé plus de 2 500 vols, soit environ 61 % de ses vols prévus. Le blâme pour cela a été attribué à un certain nombre de problèmes : tempêtes hivernales, pénurie de personnel et technologie obsolète.

Le chef de l’exploitation de la compagnie aérienne, Andrew Watterson, a déclaré lors d’un appel aux employés: «Le processus de mise en correspondance de ces membres d’équipage avec l’avion ne pouvait pas être géré par notre technologie… En conséquence, nous avons dû demander à nos planificateurs d’équipage de le faire manuellement, et c’est extraordinairement difficile… Ils feraient de grands progrès, puis d’autres perturbations se produiraient, et cela détruirait leur travail. Nous avons donc passé plusieurs jours où nous étions sur le point de résoudre le problème, puis il a fallu le réinitialiser. »

Bien que quelque chose d’aussi perturbateur que cela ne se produise pas tous les jours, Delaroche a déclaré que chaque jour, les entreprises sont confrontées à des crises majeures. C’est juste que ceux que nous connaissons sont ceux qui sont assez gros pour être publiés dans la presse.

“De temps en temps, nous voyons une grande entreprise dépendre d’un logiciel qui échoue”, a-t-il déclaré. “Je pense que dans cinq à dix ans, ce sera le cas sur une base hebdomadaire.”

Un autre domaine auquel appliquer le décalage vers la gauche

Au cours des dernières années, plusieurs éléments du processus de développement logiciel se sont déplacés vers la gauche. Galael Zino, fondateur et directeur général de NetFoundrypense que l’analyse logicielle doit également se décaler vers la gauche.

Cela peut sembler contre-intuitif. Comment analyser du code qui n’existe pas encore ? Mais Zino a partagé trois changements que les développeurs peuvent apporter pour effectuer ce changement.

Premièrement, ils doivent adopter une mentalité de sécurité dès la conception. Il recommande de minimiser le recours aux bibliothèques tierces, car elles contiennent souvent bien plus que le cas d’utilisation spécifique dont vous avez besoin. Pour ceux dont vous avez besoin, il est important de faire un examen approfondi de ce code et de ses dépendances.

Deuxièmement, les développeurs doivent ajouter plus d’instrumentation qu’ils ne pensent en avoir besoin, car il est plus facile d’ajouter de l’instrumentation pour l’analyse au début que lorsque quelque chose est déjà en production.

Troisièmement, prenez des mesures pour minimiser la surface d’attaque. Internet est la plus grande surface, alors réduisez les risques en vous assurant que votre logiciel ne communique qu’avec des utilisateurs, des appareils et des serveurs autorisés.

Lire aussi  Test et avis de la caméra intérieure motorisée Lexman: une bonne qualité d'image, une installation facile et une application simple à utiliser

“Ces entités exploitent toujours l’accès à Internet, mais elles ne peuvent pas accéder à votre application sans identité, authentification et autorisation validées par chiffrement”, a-t-il déclaré.

Quel avenir pour ces outils ?

Au cours des six derniers mois, Lo Giudice a connu une forte accélération de l’adoption d’outils utilisant de grands modèles de langage.

Cependant, il ne s’attend pas à ce que tout le monde écrive tout son code en utilisant ChatGPT pour l’instant. Il y a beaucoup de choses qui doivent être en place avant qu’une entreprise puisse vraiment intégrer tout cela dans son pipeline de développement de logiciels.

Les entreprises devront commencer à intensifier ces choses, définir les meilleures pratiques et définir les garde-fous qui doivent être mis en place. Lo Giudice pense que nous sommes encore à environ trois à cinq ans de cela.

Une autre chose à laquelle l’industrie devra faire face à mesure que ces outils se généraliseront est l’idée d’une attribution et d’un droit d’auteur appropriés.

En novembre 2022, un recours collectif a été intenté contre GitHub Copilot, dirigé par le programmeur et avocat Matthew Butterick.

L’argument avancé dans la poursuite est que GitHub a violé les licences open source en formant Copilot sur les référentiels GitHub. Onze licences open source, dont MIT, GPL et Apache, exigent que le nom et le droit d’auteur du créateur soient attribués.

En plus de violer le droit d’auteur, Butterick a écrit que GitHub avait violé ses propres conditions d’utilisation, DMCA 1202, et le California Consumer Privacy Act.

“C’est la première étape de ce qui sera un long voyage”, a écrit Butterick sur le page web pour le procès. “Pour autant que nous le sachions, il s’agit du premier cas de recours collectif aux États-Unis contestant la formation et la sortie des systèmes d’IA. Ce ne sera pas le dernier. Les systèmes d’IA ne sont pas exemptés de la loi. Ceux qui créent et exploitent ces systèmes doivent rester responsables. Si des entreprises comme Microsoft, GitHub et OpenAI choisissent de ne pas respecter la loi, elles ne doivent pas s’attendre à ce que nous, le public, restions immobiles. L’IA doit être juste et éthique pour tout le monde. Si ce n’est pas le cas, alors il ne pourra jamais atteindre ses objectifs tant vantés d’élever l’humanité. Cela deviendra simplement un autre moyen pour quelques privilégiés de profiter du travail du plus grand nombre.

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ADVERTISEMENT