L’intelligence artificielle revolutionne le cycle de developpement logiciel en automatisant la verification de code, la detection de failles et la generation de tests. Cette formation vous presente les outils IA les plus performants du marche – de Pylint a GitHub Copilot en passant par CodeQL – pour que vous puissiez choisir et integrer ceux qui correspondent a vos besoins projet.
Public visé
Développeurs et chefs de projets.
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Expliquer les contributions de l’IA dans le cycle de développement
- Identifier les outils principaux disponibles
- Sélectionner l’outil approprié selon le contexte du projet
Programme
Apports de l’IA
- Interventions à plusieurs stades du process de développement
- Vérification de la qualité du code
- Détection d’erreurs
- De failles de sécurité
- Vérification de la syntaxe
- Des règles de développement
- Analyse de code pour générer de la documentation, pour la gestion de sources
- Génération de tests automatisés
- Utilisation de modèles d’apprentissage automatique
- Proposition de modules de codes
- Autocompletion
- Génération de codes complets
- Intérêts
- Aide aux développeurs
- Gains de temps
- Contrôle exhaustif
- Meilleure documentation…
- Quelques outils phares
- D’analyse de code : Pylint, Checkstyle, Pycodestyle, Black, CodeQL
- D’autocompletion : Tabnine, Kite
- De production de code : Alphacode, GitHub Copilot, Codex
Pycodestyle
- Vérification de respect des conventions d’écriture PEP8 (Python Enhancement Proposal 8)
- Fonctionnement : architecture modulaire, outil léger
- Intégration aux principaux IDE (VS Code, Pycharm, JupyterNotebook…)
- Renvoi direct aux erreurs lors de l’édition du code
- Configuration en mode utilisateur ou projet
Travaux pratiques
- Installation de Pydecodestyle
- Mise en oeuvre sur un programme simple
- Affichage des erreurs dans un code source
- Intégration à JupyterNotebook
Pylint
- Vérification du respect de la PEP8
- Détection d’erreurs de programmation
- Aide au refactoring
- Configuration des priorités utilisateur
- Intégration continue
- Intégration avec les principaux éditeurs et IDE
Travaux pratiques
- Installation de Pylint
- Configuration de la détection d’erreurs
- Désactivation des vérifications de règles d’écriture et du refactoring
- Test sur des programmes caractéristiques
CodeQL
- Recherche de failles de sécurité dans du code
- Fonctionnement
- Génération d’une base de données à partir du code
- Exécution de requêtes sur cette base pour détecter les failles
- Langages traités, architecture
- Soit en local avec CodeQL-CLI
- Soit sur GitHub
- Principe d’intégration continue
Travaux pratiques
- Mise en oeuvre de CodeQL pour Python
- Ecriture de requêtes basiques pour du code Python
- Utilisation de CodeQL library for Python
Alphacode
- Présentation du projet Google DeepMind
- Principe de fonctionnement
- Résultats obtenus sur CodeForces
Copilot
- Présentation du projet Git alimenté par OpenAI Codex
- Fonction : assistant virtuel en programmation
- Fourniture de suggestions de lignes entières de codes ou de fonction entières
- Langages supportés
Travaux pratiques
- Démonstration sur GitHub de l’utilisation de Copilot
Codex
- Projet
- OpenAI Codex
- Module du projet OpenAI
- Production de code informatique à partir de requêtes exprimées en langage naturel
- Ressources disponibles
- Bibliothèque de codes en ligne
- Hackathons
- Librairies Python…
Travaux pratiques
- Démonstration avec OpenAI Codex
- Génération de code Python à partir d’un cahier des charges simple
- Tests et amélioration du code depuis l’interface en langage naturel
Les limites et risques
- Nécessité d’une nouvelle organisation des tâches de développeurs
- Définition
- Du problème à résoudre
- Des contraintes
- Des jeux d’essai…
- Potentiels risques de sécurité
- Risques juridiques
- Origine des solutions utilisées
- Proopriété du code
- Erreurs
- De compréhension
- D’analyse du problème à résoudre
- Importance des contrôles humains à mettre en place
Modalités d’évaluation des acquis
En cours de formation, par des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
Formation EAI-CODE-100 — IA - Analyse et production de code informatique. Domaine : Intelligence Artificielle. Niveau : Initiation. Durée : 2 jours (14 heures). Mots-clés : intelligence-artificielle, développement, qualité-code, github-copilot, pylint, codeql. Cylian Formation, Dijon.