L'IA générative peut-elle être utile à un Ingénieur Systèmes dans ses travaux dans l'Industrie ? Etudions dans cet article un exemple d'Analyse Fonctionnelle du Besoin.
Vous n'avez pas pu rater ChatGPT, l'outil genAI de la Société OpenAI.
Je propose dans cette série d'articles d'évaluer, à date, l'utilité de cet outil dans un cadre industriel comme une aide à la conception, développement, validation de Produits.
Je propose d'appeler cela le SEGAIA (Systems Engineering GenAI-Assisted).
Ce que fait un Architecte ou Ingénieur Systèmes de manière générale lorsqu'un Système ou Produit est à faire sortir de terre :
Je mets de côté pour le moment l’Industrialisation, la Production série, et le Support, qui rentrent bien dans le périmètre d’un Architecte Système ; mais feront peut-être l’objet d’autres séries d’articles sur l’IA générative si cela est pertinent.
Voyons donc comment l’IA peut nous aider sur les points suivants :
Toutes les sorties de ChatGPT seront sûrement perfectibles, mais voyons comment l’IA peut nous mettre le pied à l’étrier et nous faire gagner du temps.
Je parle bien d’aide seulement dans ce qui suit car il faut absolument contrôler ce qu'on fait. On parle d'un outil génératif, qui peut donc écrire n’importe quoi ou faire de gros oublis bien que le tout semble formidablement intelligible.
Attention : ChatGPT apprends de ce que vous lui donnez. Ne lui partagez jamais les détails d’une conception d’un système sensible (militaire, médical, …).
Je me suis entièrement conçu et développé un cuit-vapeur il y a quelques temps, en adoptant une forme allégée et rapide du process d’Ingénierie Systèmes hybride que je propose dans une série d’articles.
Ce sera donc notre sujet d’application pour toute notre étude de l’aide que l’IA générative peut nous apporter en tant qu’Architecte Systèmes.
Je souhaite rédiger le Besoin complet pour mon cuit-vapeur. C’est parti pour les prompts !
Je me place ici dans la peau d'un Ingénieur Systèmes débutant, qui a conscience qu'il doit démarrer par une analyse de Besoin et en connaît les grands contours ; mais qui n'a pas forcément assez d'expérience pour détailler ce qu'il veut de manière très précise.
Tu es un ingénieur systèmes. Tu connais le Cycle en V de conception d'un Produit. Je souhaite concevoir, développer, valider et utiliser un cuit-vapeur.
Mon besoin général est :
- disposer d'un appareil de cuisson vapeur pour divers aliments (légumes, viandes, féculents, fruits)
- l'eau doit bouillir en moins de 5 minutes
- je veux un timer sur le produit, me permettant de régler le temps souhaité de cuisson et d'afficher le temps restant de cuisson
- je souhaite avoir la possibilité de cuire de manière séparée mais simultanément 3 ensembles d'aliments
- Il doit être esthétique
- il doit être sécurisé (pas de risque d'élévation de température trop forte qui dégraderait le produit, pas de risque de se brûler soi-même, pas de risque de prendre une décharge électrique)
- il doit être démontable facilement pour aider à son nettoyage après cuisson
A partir de cette liste de Besoin, peux-tu me réaliser l'analyse fonctionnelle, l'analyse opérationnelle et l'analyse matérielle de ce Produit ?
N'oublie pas les éléments suivants :
- le produit doit être manufacturable
- le produit doit être réparable
- il doit être conforme de la règlementation applicable à ce type de produit
- il sera utilisé dans une cuisine en France
______________
Analyse Fonctionnelle :
Analyse Opérationnelle :
Analyse Matérielle :
Contraintes et Règlementation :
______________
Vous remarquerez que je n’ai pas rédigé mon Besoin proprement dans le prompt (comme de vraies exigences de Besoin). C’est volontaire, afin de ne pas faciliter la tâche à l’outil en structurant complètement ma demande.
(sans le demander précisément toutefois, même si j’ai nommé les analyses correspondantes)
A noter que j’aurais pu demander ces éléments nommément dans le prompt. Il s’agit d’un test, et mon prompt me semblait déjà assez long. On peut toujours raffiner en renchérissant via d’autres questions à la suite de cette réponse.
C’est bien dans le sens où il est assez futé pour faire des suppositions pour la suite. C’est moins bien car à ce stade on n’a pas forcément besoin de se spécifier des matériaux (à moins qu’on ait vraiment envie d’avoir tel ou tel élément en acier). ChatGPT s'avance donc un peu sur l'Architecture alors qu'on n'en est qu'au Besoin.
Exemples supplémentaires de ce qu’il manque : des Use Case clés --> le sourcing des composants électroniques, les tests IVVQ, la cuisson (!), et le retrait des aliments cuits, le rangement, la maintenance, la production série du cuit-vapeur.
Bon, Chat GPT met le pied à l’étrier. Attention aux décisions d’architecture prises de manière plus ou moins implicites, et aux trous qui peuvent se glisser.
En tant qu’Architecture Systèmes, je peux identifier les manques dans sa réponse. Je peux donc lui lister ce qu’il a oublié et lui demander de reformuler.
Complète ta réponse avec :
- une liste claire des éléments du milieu extérieur
- une liste claire des environnements (mécanique, électromagnétique, polluants, thermique) auxquels le produit est soumis
- une liste des états et des modes du produit
- une machine d'état du produit et des scénarios fonctionnels haut niveau
- les phases du cycle de vie que tu as oubliées dans l'analyse opérationnelle
- un scénario complet d'utilisation par un utilisateur
- les chaînes fonctionnelles (que tu as nommées fonction) que tu as oubliées dans l'analyse fonctionnelle
- les éléments matériels manquants dans ton analyse matérielle (câblage par exemple)
_______
Éléments du Milieu Extérieur :
Alimentation électrique
Eau potable
Utilisateur
Atmosphère de la cuisine
Prises électriques françaises
Environnements auxquels le Produit est Soumis :
Mécanique :
Forces externes lors du nettoyage
Contraintes liées à la manipulation des paniers de cuisson
Électromagnétique :
Interférences électromagnétiques provenant d'autres appareils de cuisine
Polluants :
Exposition aux vapeurs alimentaires
Risques de contamination alimentaire
Thermique :
Chaleur générée pendant le fonctionnement
Contraintes thermiques lors de la cuisson
États et Modes du Produit :
États :
En attente (standby)
En fonctionnement (cuisson en cours)
Arrêté
Modes :
Mode cuisson individuelle
Mode cuisson simultanée
Mode nettoyage
Machine d'État du Produit et Scénarios Fonctionnels Haut Niveau :
Machine d'État :
Attente
Utilisateur allume l'appareil
Sélection du mode de cuisson
Réglage du timer
Cuisson en cours
Fin de la cuisson
Arrêt de l'appareil
Scénarios Fonctionnels Haut Niveau :
L'utilisateur allume l'appareil et sélectionne le mode de cuisson.
L'utilisateur règle le timer et place les aliments dans les paniers.
L'appareil chauffe l'eau et démarre la cuisson.
Affichage du temps restant pendant la cuisson.
À la fin du temps, l'appareil s'arrête automatiquement.
L'utilisateur éteint l'appareil et procède au nettoyage si nécessaire.
Phases du Cycle de Vie Oubliées dans l'Analyse Opérationnelle :
Conception :
Définition des spécifications détaillées
Conception architecturale
Production/Assemblage :
Fabrication des composants
Assemblage du produit
Maintenance :
Réparation de composants défectueux
Mises à jour logicielles (si applicable)
Scénario Complet d'Utilisation par un Utilisateur :
L'utilisateur branche l'appareil à une prise électrique standard.
Il appuie sur le bouton d'alimentation pour allumer l'appareil.
L'écran affiche les options de mode de cuisson (individuelle ou simultanée).
L'utilisateur sélectionne le mode de cuisson simultanée et règle le timer.
Il place les aliments dans les paniers dédiés.
En appuyant sur un bouton, la cuisson démarre, et le timer commence à compter à rebours.
Pendant la cuisson, l'utilisateur peut observer le temps restant sur l'écran.
À la fin du temps préréglé, l'appareil s'arrête automatiquement.
L'utilisateur éteint l'appareil, retire les aliments et procède au nettoyage en démontant les parties nécessaires.
En cas de problème, l'utilisateur peut contacter le service après-vente pour assistance.
Chaînes Fonctionnelles Oubliées dans l'Analyse Fonctionnelle :
Commande de Température :
Besoin : Contrôler la température de cuisson.
Fonction : Intégrer un mécanisme pour réguler la température de la vapeur.
Affichage LED :
Besoin : Informer l'utilisateur sur l'état de l'appareil.
Fonction : Intégrer un écran LED pour afficher le temps restant et les notifications.
Éléments Matériels Manquants dans l'Analyse Matérielle :
Câblage Électrique :
Matériau : Fils électriques isolés et conformes aux normes.
Composants Électroniques :
Matériau : Cartes de circuit imprimé, capteurs pour la détection de température et le contrôle du timer.
Connecteurs Électriques :
Matériau : Prises électriques conformes aux normes françaises.
Interrupteurs :
Matériau : Interrupteurs pour contrôler l'alimentation et les modes de cuisson.
_______
Il a complété et clarifié pas mal de choses. C’est bien !
Cela dit, la relecture attentive nécessaire pour voir s’il manque des choses ou si des choses sont incohérentes est relativement chronophage. Et il y en a des incohérences (exemple : la machine d'état comporte plus d'états que ceux listés juste au-dessus).
Je préconiserais donc plutôt pour un ingénieur Systèmes aguerri de faire l’analyse de Besoin à la main (sans ChatGPT; avec les outils habituels de l’Architecture Système) puis ensuite seulement de prompter chatGPT et lire ses réponses dans le but de voir s’il ne propose pas quelque chose qu’on aurait tout simplement oublié !
Le gain de temps pour l'ingénieur se fera sentir au niveau de la vérification de son propre travail ! En promptant ChatGPT afin de voir rapidement si des oublis évidents ont été commis. Un Ingénieur Systèmes aguerri devrait donc se servir de ChatGPT comme d'un relecteur, voire comme d'un rubber duck, pour son travail sur le Besoin d'un Système.
Pour des premiers prompts, n'étant pas utilisateur confirmé de ChatGPT, je trouve que l'outil n’est pas trop mal. Ce n’est pas magique, ce n’est pas complet, mais cela lance la dynamique pour démarrer le remue-méninge inhérent aux phases d'étude de Besoin.
Sûrement qu’en posant mieux mon prompt ou en poursuivant la discussion avec le bot j’arriverais à tout compléter et avoir le niveau de détails attendu? Cependant, lui détailler fortement ce que j’attends, jusqu'à lui extirper les bonnes réponses, implique de connaître parfaitement ce que je veux en tant qu’Ingénieur Systèmes (telles phases de vie, telles schématisations de machines d'états...), et donc implique que je n’ai pas besoin de ChatGPT pour faire une analyse de Besoin...!
En bref :
Et si vous travaillez sur des sujets sensibles, peut-être que la création de votre propre moteur LLM vous permettra, en hors ligne et à l'abri d'un éventuel espionnage, de profiter de ce genre d'outils en l'ayant entrainé sur de précédents projets de votre Société ? Et/ou sur des ouvrages complets d'Architecture Systèmes ?
Aurélien NARDINI
Un Système Sans Problème est une ressource de connaissances et de savoir-faire pratiques, avec exemples concrets.
Que vous soyez Chef de Programme, Chef de Projet, Architecte Système, Ingénieur, Manager dans l'Industrie, Etudiant ou Curieux de l'Ingénierie, vous êtes au bon endroit.
Au travers d'articles publiés régulièrement, découvrez ou révisez les Processus, Méthodes, Outils et Astuces utiles pour concevoir et piloter dans les domaines du Software, Firmware, de l’Électronique, et de la Mécanique.
Parce-qu'un produit fiable et industrialisable ne s'improvise pas !