Dassault Systèmes, l'entreprise de la 3DEXPERIENCE, est un « accélérateur de progrès humain ». Elle propose aux entreprises et aux particuliers des environnements virtuels collaboratifs qui leur permettent d'imaginer des innovations plus durables. En développant un jumeau virtuel du monde réel, grâce à la plateforme 3DEXPERIENCE et à ses applications, Dassault Systèmes donne à ses clients les moyens de repousser les limites de l'innovation, de l'apprentissage et de la production.
Les 20 000 collaborateurs de Dassault Systèmes travaillent à créer de la valeur pour nos 270 000 clients de toutes tailles, dans toutes les industries, dans plus de 140 pays. Pour plus d'informations, visitez notre site
www.3ds.com/frLe département Recherche et Sciences étudie les technologies existantes ou nouvelles ayant une forte pertinence pour Dassault Systèmes. Il définit et développe des composants, des prototypes et des expériences qui ont une plus-value importante pour les produits de Dassault Systèmes ou son portefeuille de brevets. Ce département est en relation avec l'ensemble des équipes de R&D des différentes marques de Dassault Systèmes en France et à l'international.
Au cœur de ce département, le service chargé de ses opérations favorise le partage d'informations au sein de celui-ci. Il promeut également l'excellence logicielle pour une diffusion à l'ensemble du département puis à la R&D.
Vos missions
Vous intégrerez ce service pour définir, développer puis expérimenter des outils d'intégration et d'analyse de codes, particulièrement en Python.
Vous serez en même temps en relation avec en grande partie des équipes du département Recherche et Sciences puisque ce sont les fournisseurs de la base de code étudiée, avec les équipes de R&D chargées de l'environnement de développement pour assurer une intégration maximum des travaux puis, enfin, avec différentes équipes de R&D qui voudraient bénéficier de ces travaux.
Sur une base de codes hétérogènes, vous devrez proposer des analyses de celle-ci, des métriques pour pouvoir mettre en place des recommandations ou des actions correctrices. Chaque évolution devra être considérée dans son cycle de vie globale : de la détection à la mise en œuvre en passant par la gestion du changement. Les propositions devront, à la fois, s'intégrer dans les flux internes de développement et correspondre le plus possible à l'état de l'art des recommandations officielles autour de Python.
En particulier, vous devrez étudier les différents outils d'analyse de code (Python) disponibles en interne ou en externe pour les appliquer à cette base de code hétérogène et en détecter des patrons de conception (structures de code semblables répétées à plusieurs endroits de la base de code). Ces outils pourront exploiter des outils d'apprentissage automatique.
Fort de cette étude et de son expérimentation, vous proposerez des processus pour publier des paquets Python et des méthodes permettant la factorisation de ces patrons puis en proposer des mises en œuvre qui pourront être déployées sur l'ensemble de la base de code du département Recherche et Sciences. Ces mises en œuvre devront être reproductibles et automatisables. Elles devront également intégrer le souci rigoureux de l'acceptation de la démarche par l'ensemble des développeurs et développeuses.