Moderniser les applications Java avec AWS Q Developer : un parcours de l’héritage au développement propulsé par l’IA

Découvrez comment des outils de développement propulsés par l’IA comme AWS Q Developer transforment les systèmes Java hérités en applications modernes, efficaces et prêtes pour l’avenir
5 min de lecture
Rohit Kumar Verma
Rohit Kumar Verma
Consultant principal, affaires numériques, HCLTech
5 min de lecture
Moderniser les applications Java avec AWS Q Developer : Un parcours du patrimoine à un développement propulsé par l’IA

La modernisation des applications patrimoniales a toujours été l'un des aspects les plus complexes du développement de logiciels en entreprise, en particulier lorsqu'il s'agit de gérer des cadres obsolètes, des API dépréciées et des architectures complexes. Chez HCLTech, le processus de modernisation s’est traditionnellement appuyé sur des outils à base de règles comme ATMA et Advantage Solutions. Bien que ces outils aient été efficaces, ils nécessitent souvent un effort manuel important.

Avec l’émergence d’outils GenAI tels que AWS Q Developer, GitHub Copilot, Gemini Code Assist et AI Force de HCLTech, le paysage de la modernisation connaît des changements spectaculaires. Ces technologies ont permis de rendre le développement et la transformation d’applications plus rapides, plus intuitifs et bien plus efficaces.

Dans le cadre d’une récente preuve de concept (PoC), AWS Q Developer a été utilisé pour évaluer ses capacités dans des scénarios réels de modernisation. L’expérience a fourni des perspectives précieuses sur la manière dont l’IA peut rationaliser les mises à niveau, générer de la documentation et accélérer les tests, rendant ainsi la modernisation nettement plus fluide et efficace.

Le cas d’utilisation : applications réelles, impact réel

Le PoC était axé sur deux applications d’entreprise réelles :

  1. KomiBank – Une application Spring Boot MVC avec une base de données MySQL.
  2. Plasma – Un système de traitement de paiement multi-niveaux fonctionnant sur WebLogic et Oracle.

Les objectifs de la modernisation comprenaient :

  • La mise à niveau des versions Java (de Java 8/11 à Java 21)
  • La migration de WebLogic vers Embedded Tomcat
  • Le remplacement de la BD Oracle par H2
  • La refonte du code patrimonial et des dépendances
  • La génération de documentation et de cas de tests automatisés

Mise en œuvre avec AWS Q Developer

  1. Analyse du projet et configuration du contexte

    La documentation des applications sélectionnées étant indisponible, l’équipe a commencé par demander à AWS Q Developer de générer les documents fondamentaux, tels que la documentation technique, des aperçus fonctionnels, des guides de déploiement et la documentation API. Ces artefacts auto-générés ont permis d’avoir une compréhension complète de l’architecture de chaque application avant de commencer les travaux de modernisation.

  2. Mise à niveau du langage et du cadre, migration de code

    Une fois le contexte du projet établi, l’étape suivante était la mise à niveau des versions Java, du cadre Spring Boot et des dépendances concernées. La commande /transform d’AWS Q Developer a permis d’automatiser une grande partie de ce processus, tandis que le mode de discussion agentique a autorisé des migrations plus précises, guidées par des instructions basées sur des invites.

  3. Développement de cas de test et couverture

    Pour renforcer la couverture de test, AWS Q Developer a été sollicité pour créer un plan de couverture, suivi de la génération automatique de cas de test alignés sur ce plan. Cette approche a permis à l’équipe d’atteindre une couverture quasi complète—assurant l’automatisation quasi totale des tests unitaires et d’intégration.

  4. Déploiement et validation

    Après avoir terminé la mise à niveau et la migration, les applications ont été déployées manuellement sur les serveurs cibles. Comme aucune donnée de test n’existait, l’équipe l’a créée manuellement et a vérifié les principaux flux de travail pour garantir l’intégrité fonctionnelle.

 

Forces clés d’AWS Q Developer

  • Codage en langage naturel : Des commandes sur invitation traduisaient directement l’intention du développeur en code exploitable.
  • Commande /transform et interface de discussion : Permettaient des flux structurés et guidés de modernisation.
  • Mode agentique : Offrait une assistance contextuelle, multi-étapes, grâce aux modèles Claude Sonnet.
  • Documentation automatisée : Génération de documentation fonctionnelle, technique et API avec un effort minimal.
  • Automatisation des tests : Analyse efficace des bases de code et production de cas de test, améliorant la couverture et la fiabilité.

Résultats mesurés (temps d’exécution de l’outil uniquement) :

  • Durée de la mise à jour Java : ~3,7 heures (KomiBank) ; ~12 heures (Plasma, en raison d’une reprise manuelle)
  • Génération de cas de test : ~1 journée pour 162+ cas de test (KomiBank)
  • Documentation : JavaDocs et guides de déploiement générés en ~4 heures (KomiBank)

Défis et limites

Malgré ses points forts, AWS Q Developer n’est pas sans défis :

  • Automatisation partielle : Des validations et restructurations manuelles étaient souvent nécessaires.
  • Sensibilité aux invites : La qualité des résultats dépendait fortement de la précision des instructions.
  • Erreurs de transformation : La commande /transform échouait parfois sur des projets complexes comme Plasma.
  • Hallucinations : La documentation auto-générée incluait parfois des détails fictifs ou incorrects.
  • Stabilité de discussion : Les longues sessions provoquaient occasionnellement des blocages de discussion ou une perte de contexte.

Observations et enseignements

Il a été constaté qu’une approche itérative, guidée par l’humain, était la plus efficace avec AWS Q Developer. Bien que l’IA puisse automatiser une grande partie du travail, la supervision du développeur demeurait déterminante pour garantir la précision, maintenir l’intégrité du code et orienter le processus efficacement.

Les principaux enseignements comprenaient :

  • Les flux de travail itératifs assurent une meilleure précision que les transformations en un clic.
  • L’IA agit comme une assistante, et non un remplacement de l’expertise humaine.
  • La précision des instructions a un impact direct sur la qualité du résultat.

Conclusion

L’expérience avec AWS Q Developer a démontré comment les outils assistés par l’IA transforment le processus de modernisation des applications. Bien qu’il ne remplace pas totalement les développeurs humains, cet outil agit comme un puissant collaborateur—accélérant les cycles de développement, améliorant la qualité du code et simplifiant la documentation ainsi que les tests.

Recommandations pour les équipes de modernisation :

  • Commencez par de petits modules pour gagner en familiarité.
  • Utilisez le mode agentique pour les tâches de refonte complexes.
  • Favorisez les mises à niveau itératives plutôt que d’espérer des résultats instantanés.
  • Apprenez les bases de l’ingénierie des invites pour de meilleurs résultats.
  • Effectuez toujours une vérification et une revue manuelles avant le déploiement.

Les organisations qui explorent GenAI pour le développement logiciel devraient envisager d’essayer AWS Q Developer. Bien qu’il soit en constante évolution, son potentiel à transformer les projets de modernisation est déjà manifeste, ce qui en fait un ajout précieux à la boîte à outils de tout développeur.

Partager sur
DBS Affaires numériques Blogues Moderniser les applications Java avec AWS Q Developer : un parcours de l’héritage au développement propulsé par l’IA