Un Ingénieur Systèmes peut-il adopter le SEGAIA (Systems Engineering GenAI-Assisted) dans ses travaux dans l'Industrie ? Étudions dans cet article un exemple de Spécification et Vérification au niveau Système.
Je propose dans cette série d'articles "ChatGPT et Ingénierie Systèmes" d'évaluer, à date, l'utilité de cet outil d'IA générative dans un cadre industriel comme une aide à la conception, développement, validation de Produits.
Je vous conseille la lecture des 2 articles précédents avant d'attaquer celui-ci : Besoin et Faisabilité.
Notre sujet d’application pour notre étude en tant qu’Architecte Systèmes reste : un cuit-vapeur.
Je reprends l’un de mes besoin initiaux et le rédige proprement pour en faire une véritable exigence de Besoin :
Avec le Système, le cuisinier peut commencer la cuisson vapeur de ses aliments en moins de 5min, une fois les aliments mis en place.
Vous reconnaissez la structure d’exigence que je recommande.
Comment décliner cette exigence de besoin vers des exigences Système ? Ou plutôt, comment appliquer cet exigence de Besoin à notre Système ?
Décliner vers le Système ne veut pas dire paraphraser l’exigence de Besoin pour l’écrire dans un jargon technique. Il s’agit de se poser de véritables questions qui vont amener à la conception du Produit. La question de base étant : « qu’est-ce que cela implique pour mon Système » ? En termes d'interfaces, de performances, de conditions opérationnelles etc.
Pour cette exigence-ci, les questions à se poser foisonnent et les réponses sont importantes.
Hypothèse : On suppose qu’on ne va pas révolutionner la cuisson vapeur, et qu’on va créer de la vapeur par la bonne vieille méthode. A savoir mettre une résistance chauffante dans de l’eau, et attendre qu’elle chauffe assez pour se transformer en vapeur. Si vous voulez révolutionner le cuit-vapeur en exploitant des phénomènes physiques autres pour créer de la vapeur, vous pouvez vous servir de la base des 2500 Effects de la méthode TRIZ.
Ainsi, ce que « cela implique » pour notre Système :
La déclinaison manuelle que je proposerais (à titre purement illustratif, non exhaustif) pour cette exigence de Besoin après travaux serait quelque chose dans le goût de ce qui suit :
Vous noterez que dès cette déclinaison, je prends des décisions de conception (LED, bouton, buzzer, …). C’est une bonne pratique de repousser ces choix le plus tard possible dans le design, mais si on sait déjà qu’on veut mettre cela dans la système (car le client le veut, ou car c’est ce qu’on sait faire…) alors pourquoi ne pas se le spécifier directement. Concernant le fait que le système ne doit pas permettre de toucher à la résistance lorsqu’on verse de l’eau dedans, je n'ai pas encore précisé le « comment » par contre.
Maintenant, voyons ce que ChatGPT va nous donner comme déclinaison. Je vais simplement parler de « déclinaison » dans mon prompt pour ne pas lui mâcher le travail (j’aimerais plutôt que ce soit lui qui me le mâche !).
Mon Prompt :
Tu es Architecte Systèmes, et moi aussi. Nous sommes chargés de la conception, développement et validation d'un cuit-vapeur. On ne cherche pas à révolutionner ce genre de produit. L'exigence de Besoin principale est "Avec le Système, le cuisinier peut commencer la cuisson vapeur de ses aliments en moins de 5min, une fois les aliments mis en place." Décline cette exigence de Besoin en exigences Systèmes.
Sa Réponse :
[...] quelques exemples d'exigences systèmes dérivées de la principale exigence:
Ce que je voulais :
Ce que j’ai eu :
Ce que je n’ai pas eu :
C’est bien :
C’est moins bien :
A noter également :
Pertinence et gain de temps pour un Ingénieur Systèmes débutant : C’est pas mal du tout ! Cela fait même mieux que mettre le pied à ’étrier ! Je n’en attendais pas tant.
On peut l’interroger sur ce qui est améliorable dans sa première réponse. C'est le propre d'un Expert : regarder ce qui manque et pousser plus loin la réflexion.
Mon Prompt :
Complète ces exigences avec les considérations suivantes :
- Environnements (mécanique, thermique, électromagnétique, chimique)
- Règlementation et standards
- Fiabilité, Disponibilité, Sûreté
La réponse de ChatGPT :
[...]
###1. **Environnements :**
a.**Mécanique :**
-Les composants mécaniques du cuit-vapeur doivent résister à une utilisation régulière, avec une durabilité suffisante pour supporter une ouverture et une fermeture fréquentes du couvercle.
b.**Thermique :**
-Le système doit être capable de maintenir une température constante et uniforme pendant la cuisson, avec une isolation thermique efficace pour minimiser les pertes de chaleur.
-Les matériaux utilisés doivent être conformes aux normes de sécurité thermique pour éviter tout risque de brûlure pour l'utilisateur.
c.**Électromagnétique :**
-Les composants électroniques doivent être conçus pour minimiser les interférences électromagnétiques qui pourraient affecter d'autres appareils électroniques à proximité.
d.**Chimique :**
-Les matériaux en contact avec les aliments doivent être conformes aux normes de sécurité alimentaire pour éviter toute contamination chimique.
-Les produits de nettoyage recommandés ne doivent pas endommager les surfaces du cuit-vapeur.
###2. **Règlementation et Standards :**
a.Le cuit-vapeur doit être conforme aux normes de sécurité alimentaire en vigueur dans les régions où il sera commercialisé.
b.Le produit doit respecter les normes électriques en vigueur pour les appareils de cuisine.
c.La conception doit être conforme aux règlements environnementaux,en minimisant l'impact écologique des matériaux utilisés.
###3. **Fiabilité, Disponibilité, Sûreté :**
a.Le système doit être conçu avec des composants fiables pour assurer un fonctionnement constant sur une longue période sans défaillance.
b.En cas de panne, le cuit-vapeur doit être capable de fournir des informations claires à l'utilisateur et, si possible, maintenir une fonctionnalité de base pour éviter toute perte totale de cuisson.
c.Les mécanismes de sécurité doivent être intégrés pour arrêter la cuisson en cas de dysfonctionnement ou de détection d'anomalies dangereuses.
d.Une fonction de sauvegarde des paramètres de cuisson en cas de coupure d'alimentation doit être envisagée pour assurer la disponibilité des données.
[...]
Ce que je voulais :
Ce que j’ai eu :
Ce que je n’ai pas eu :
C’est bien :
C’est moins bien :
A noter également :
Pertinence et gain de temps pour un Ingénieur Systèmes expert : Pour un expert, l’enjeu sera surtout de voir si le jeu d’exigences généré « humainement » (sans IA générative) est complet. Cet outil semble répondre à cet enjeu. Via plusieurs prompts, on peut rechercher tous azimuts des exigences qu’on aurait pu oublier, et les rajouter à notre jeu initial.
Conclusions pour une Déclinaison/Application du Besoin vers le Système :
Ce n'est pas mal du tout ! ChatGPT peut s’envisager pour la déclinaison/application de Besoin vers un Système ou en tout cas son contrôle. Un check humain est évidemment nécessaire, mais j’estime que ChatGPT fait plus que simplement mettre un pied à l’étrier ici.
Si vous avez 200 exigences de Besoin dans un fichier Excel, une version payante de ChatGPT peut certainement prendre ce fichier en input et vous en sortir un autre avec 800 exigences déclinées +/- pertinentes et il n’y a « plus qu’à » trier et compléter. Le gain en temps est certain.
Maintenant qu’on a un jeu d’exigences, (cf. aide n°3 ci-dessus), je souhaite avoir les tests qui vont avec.
Je commence par lui faire relister les exigences
Attention : je fais ça car parfois entre les prompts ChatGPT régresse, il oublie des exigences !
Mon Prompt :
Rédige le plan de vérification de ces exigences :
Pour chaque exigence, je veux qu'un test soit rédigé. Le test peut être un test en situation réelle, une inspection, une analyse, une simulation, une analogie
Donne moi ta réponse sous forme d'un tableau
La Réponse :
Ce que je voulais :
Ce que j’ai eu :
Ce que je n’ai pas eu :
C’est bien :
C’est moins bien :
Pertinence et gain de temps pour un Ingénieur Systèmes débutant : Cela donne de bonnes idées. Pour un ingénieur débutant c’est bénéfique. A voir lorsqu’on poussera plus loin dans le détail les spécifications.
Question :
Rajoute 2 colonnes au tableau précédent afin de donner pour chaque test :
-les moyens nécessaires (logiciels, électroniques, thermiques etc.)
-les critères de succès (les résultats attendus)
-le temps estimé nécessaire
La réponse au prompt :
Ce que je voulais :
Ce que j’ai eu :
Ce que je n’ai pas eu :
C’est bien :
C’est moins bien :
Pertinence et gain de temps pour un Ingénieur Systèmes expert : Si on a 800 exigences niveau Système dont il faut écrire les tests, ChatGPT peut être d’une grande aide !
Conclusions pour une Rédaction de plan de Vérification Système : Comme toujours, une relecture attentive est évidemment nécessaire. Et les modifications peuvent être lourdes. Cela dit, ce temps de checks et de modification sera certainement bien moindre que le temps d’écrire 800 tests à la main et les relire ensuite ! ChatGPT peut donc être d’une grande aide à ce niveau !
NOTA : Je rappelle que ChatGPT apprend des prompts qu’on lui envoie. De plus, des petits malins ont déjà réussi à lui faire révéler des prompts entiers qui lui avaient été donnés en input par d’autres utilisateurs. Si vous donnez une spécification complète de votre produit à ChatGPT, qui sait où celle-ci va terminer et comment elle sera réutilisée. Je ne recommande donc pas de donner toutes vos exigences à manger à ChatGPT ! Se créer son propre GPT hors ligne sera plus sûr.
Je ne considère pour l’exercice que les exigences Système issus d’une seule exigence de Besoin. Cela est loin de constituer toutes les exigences du Produit.
Globalement, ChatGPT m'a agréablement surpris et n'est pas tombé dans le piège de la paraphrase qui se tend lorsqu'on veut appliquer des exigences de Besoin à un Système.
En bref :
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 !