ChatGPT et Ingénierie Systèmes : Analyse du Besoin (partie 1)

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).

Sur quelles parties du job d’Ingénieur Systèmes l’IA générative pourrait-elle bien nous aider ?

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.

Cycle en V hybride Design Thinking Agile Aurélien Nardini Vee Cycle V model
Le Cycle en V hybride que je propose dans une conception de nouveaux Produits

Voyons donc comment l’IA peut nous aider sur les points suivants :

  • Rédaction de Besoin (Opérationnel, fonctionnel, matériel, indus/prod, support, analyse statique, analyse dynamique, RAMS, Règlementation, Environnement, User interface, Sur-Système)
  • Aide à la Faisabilité pour mettre en œuvre un composant ou une chaîne de composants
  • Déclinaison d’exigences Besoin vers exigences Système
  • Création d’une architecture porteuse des Spécifications Systèmes
  • Rédaction des tests en face des exigences
  • Idées de prototypages/modélisations (et Analyse de Risques) puis tests Système pour dérisquer le travail
  • Déclinaison d’exigences Système vers exigences Sous-Systèmes (décomposition du Système, performance des sous-systèmes, interfaces entre eux...)
  • Création d’une architecture porteuse des Spécifications Sous-Systèmes
  • Rédaction des tests en face des exigences
  • Idées de prototypages/modélisations puis tests Sous-Système pour dérisquer le travail
  • Déclinaison d’exigences Sous-Systèmes vers exigences de l'étage encore inférieur, ou exigences métiers (Electronique, Logiciel, Mécanique, ...) pour le Développement
  • Création d’une architecture porteuse des Spécifications Métiers
  • Rédaction des tests en face des exigences
  • (Aide au développement Hardware, Software, … Ce n’est plus purement du Système, donc je n’en parlerais pas. On en aura néanmoins un aperçu quand je traiterai de la Faisabilité)
  • Lui faire faire une Analyse de Risques sur un étage particulier (cf. ci-dessus : sera faite au niveau Système)
  • Lui demander comment gérer les coûts à chaque étape de l’ingénierie et une estimation des coûts (h, €) Projet
  • Lui demander des conseils sur l’user interface (logiciel, mécanique) : ergonomie, informations à afficher, comment et quand les afficher etc.
  • Lui demander conseils sur l’esthétique du produit
  • Lui demander où est-ce que dans mon produit je devrais poser un brevet
  • Et enfin… Je peux également lui demander en quoi il peut nous aider pour de l’Ingénierie Systèmes !

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.

ChatGPT outil ingénierie systèmes architecture produit
ChatGPT n'est qu'un outil !

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, …).

Exemple d’application : un cuit-vapeur

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.

Cuit Vapeur ingénierie systèmes chatgpt architecture genai
Le résultat final est un peu (très) éloigné de cette image, mais voici ce qui constituait l'objectif !

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.

Aide n°1 : Rédaction du Besoin

Je souhaite rédiger le Besoin complet pour mon cuit-vapeur. C’est parti pour les prompts !

Prompting d’un ingénieur débutant

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.

Voilà mon prompt :

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
chatgpt ingénierie systèmes prompt réponse architecture analyse fonctionnelle Besoin
La réponse de la machine

Voilà la réponse :

______________

Analyse Fonctionnelle :

  • Cuisson Vapeur :
  • Besoin : Permettre la cuisson vapeur d'une variété d'aliments.
  • Fonction : Générer de la vapeur pour cuire les légumes, viandes, féculents et fruits.
  • Bouillir l'eau en moins de 5 minutes :
  • Besoin : Rapidité de chauffage.
  • Fonction : Chauffer l'eau à ébullition en moins de 5 minutes.
  • Timer Réglable :
  • Besoin : Contrôler le temps de cuisson
  • Fonction : Intégrer un timer réglable pour définir la durée de cuisson et afficher le temps restant.
  • Cuisson Séparée et Simultanée :
  • Besoin : Cuisiner plusieurs aliments en même temps de manière indépendante.
  • Fonction : Diviser l'espace de cuisson en trois sections distinctes, chacune avec son propre contrôle.
  • Esthétisme :
  • Besoin : Aspect visuel attrayant.
  • Fonction : Intégrer un design esthétique, peut-être avec des matériaux élégants.
  • Sécurité :
  • Besoin : Assurer la sécurité de l'utilisateur et du produit.
  • Fonction : Contrôle de la température, protection contre les décharges électriques, poignées isolées, etc.
  • Démontage Facile pour Nettoyage :
  • Besoin : Facilité de nettoyage.
  • Fonction : Permettre un démontage facile des parties pour le nettoyage.

Analyse Opérationnelle :

  • Allumer/Éteindre :
  • Opération : Bouton d'alimentation pour démarrer et arrêter l'appareil.
  • Réglage du Timer :
  • Opération : Interface utilisateur pour régler la durée de cuisson.
  • Chargement des Aliments :
  • Opération : Placement des aliments dans les sections dédiées.
  • Observation du Temps Restant :
  • Opération : Affichage du temps restant pendant la cuisson.
  • Nettoyage :
  • Opération : Démontage des parties pour le nettoyage après utilisation.

Analyse Matérielle :

  • Chauffage de l'Eau :
  • Matériau : Résistance électrique, élément chauffant en acier inoxydable.
  • Sections de Cuisson :
  • Matériau : Paniers en acier inoxydable ou matériau résistant à la chaleur.
  • Carcasse :
  • Matériau : Plastique résistant à la chaleur ou acier inoxydable.
  • Timer et Écran :
  • Matériau : Composants électroniques avec un écran LED.
  • Poignées Isolées :
  • Matériau : Isolant thermique pour éviter les brûlures.
  • Pieds Antidérapants :
  • Matériau : Caoutchouc ou silicone.

Contraintes et Règlementation :

  • Manufacturabilité :
  • S'assurer que les composants et matériaux sélectionnés sont facilement disponibles et que le processus de fabrication est réalisable.
  • Réparabilité :
  • Conception modulaire pour faciliter le remplacement de pièces défectueuses.
  • Conformité aux Normes :
  • Respecter les normes de sécurité électrique, thermique et alimentaire en vigueur en France.
  • Utilisation en Cuisine :
  • Conception pour s'adapter aux prises électriques et aux normes de sécurité domestique en France.
  • Étiquetage :
  • Inclure des informations d'utilisation, de sécurité et de maintenance sur le produit conformément à la 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.

Ce que je cherchais à avoir via ce prompt :

(sans le demander précisément toutefois, même si j’ai nommé les analyses correspondantes)   

  • Cycle de vie, use case, sur-système (dont utilisateur), environnement (mécanique, thermique, électromagnétique, polluants), scénarios opérationnels
  • État, modes, chaînes fonctionnelles, fonctions, sous-fonctions, machine d’état, scénarios fonctionnels haut niveau (sans aller plus bas niveau que le nécessaire pour le Besoin)
  • Arborescence des éléments matériels (idem, haut niveau voire boîte noire)
  • Un listing des normes et règlementations applicables

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.

Ce que j’ai eu :

  • Un semblant de cycle de vie avec quelques use cases associés (sous l’Analyse Opérationnelle)
  • L’utilisateur est considéré (via la poignée, le timer…)
  • Une petite analyse implicite et incomplète des environnements subis : Thermique, via la mention de matériaux résistants à la chaleur ; Polluants, via la mention de l’inox contre l’eau
  • Un petit scénario incomplet avec différentes étapes d’utilisation (sous Analyse Opérationnelle)
  • Les chaînes fonctionnelles principales (il les a nommées « Fonction »). Il en manque (Fonction d’alimentation par exemple)
  • Un listing partiel des grandes parties matérielle du cuit-vapeur (il manque le câblage par exemple)

Ce que je n’ai pas eu :

  • Un listing clair des éléments du sur-système (les systèmes extérieurs qui vont interagir avec notre système : eau, aliments, réseau électrique, tables…)
  • Une analyse des environnements électromagnétiques et mécaniques subis
  • Pas de mentions d’état et/ou mode.
  • Pas de machine d’états et/ou scénarios fonctionnels même haut niveau
  • Une liste des textes applicables à mon produit

C’est bien :

  • Il propose une façon de jouer sur l’esthétique : avec des matériaux (on est déjà dans l'Architecture cela dit...)
  • Il parle d’autres matériaux pour différents éléments ensuite : poignées, résistance en acier inox, paniers en acier inox ou autre, matériau plastique pour la « carcasse ».
  • Il parle de pieds antidérapants de lui-même

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.

  • Il est capable de donner les différents domaines où la réglementation va jouer : l’alimentaire, l’électrique, le domestique, étiquetage.

C’est moins bien :

  • Il y a pas mal de trous dans ce qui sort.
  • Un ordre de Use Case un peu hasardeux dans son pseudo-scénario : Il propose de charger les aliments après la mise en alimentation du Produit. C’est sûrement faisable, mais pour un Produit dans lequel on a de forts courants électriques ainsi que de l’eau, je suis plutôt pour déposer les aliments dans le Produit AVANT de l’alimenter.
  • Pas de fonction de type « arrêt d’urgence » pour apporter encore une sécurisation (que faire en cas de surchauffe ?)
  • Comment avertir que la cuisson est terminée ?
  • Que faire de la vapeur qui se recondense au contact des aliments et retombe sous forme de goutte ? (Là, je suis vache : cela apparaitrait via une Analyse de Risques à faire plus tard)

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.  

A noter également :

  • Une décision forte de conception a été introduite « Diviser l'espace de cuisson en trois sections distinctes, chacune avec son propre contrôle. ». A voir si pertinent (a priori cela complique la chose alors que non demandé).

Pertinence et gain de temps pour un Ingénieur Systèmes débutant :

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.

chatgpt ingénierie systèmes architecture produit test essais
4/5 !

Et pour un expert de l’Ingénierie Systèmes ?

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.

Mon prompt suivant (j’ai oublié la liste de règlementations !) :

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)
chatgpt ingénierie systèmes prompt réponse architecture analyse fonctionnelle Besoin
La réponse de la machine

Sa réponse :

_______

É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é !

Pertinence et gain de temps pour un Ingénieur Systèmes expert :

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.

je teste chatgpt sur une analyse fonctionnelle de Besoin Architecture Produit Ingénierie Système
3/5

Quelques mots pour conclure sur l'Analyse de Besoin par chatGPT

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 :

  • ChatGPT est utile pour mettre le pied d'un Systémier débutant à l'étrier
  • Pour un professionnel aguerri, ChatGPT permettra de vérifier d'éventuels oublis évidents

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 !