Partant du constat généralement admis qu’une bonne moitié des bogues détectés pendant le cycle de développement d’un logiciel trouve son origine dans une écriture incomplète ou erronée des exigences, la toute jeune société ...grenobloise Argosim propose avec Stimulus un outil original et unique sur le marché de modélisation, de simulation et de débogage temps réel des exigences. Stimulus permet en particulier de détecter des exigences manquantes ou des conflits entre exigences, et ce de manière incrémentale comme le stipulent par exemple des normes comme l’ISO 26262 dans l’automobile.
« Les exigences de haut niveau sont généralement relativement bien écrites et ne posent pas de problèmes majeurs, mais lorsque ces exigences sont déclinées vers des niveaux plus bas pour être exploitées par des sous-traitants, très souvent il y a des problèmes, explique Fabien Gaucher, le CEO et fondateur d’Argosim, créé en 2013. C’est là où la mise en œuvre de notre technologie fait gagner beaucoup de temps dans le cycle de validation d’un projet. »
Concrètement, Stimulus consiste à décrire en langage naturel les exigences via une bibliothèque de phrases “à trous” qui couvrent l’essentiel des besoins rencontrés. En arrière-plan un langage exécutable est alors généré et un solveur basé sur des méthodes formelles (outils de preuve) et des technologies de type Model Checking (issues des travaux de l’Inria et du laboratoire Verimag) assure la simulation des exigences. L’utilisateur peut alors observer graphiquement les traces d’exécution qui satisfont ou non les exigences. Et donc de détecter des erreurs avant les phases de conception et/ou de codage du logiciel. Au fond, l’idée sous-jacente est de vérifier si les résultats de la simulation traduisent bien les exigences voulues.
« Des tentatives de mise en place de cette approche ont été réalisées dans de nombreuses entreprises, généralement sous la forme de bonnes pratiques à respecter, précise Fabien Gaucher. Avec Stimulus, c’est la première fois que cette démarche est formalisée de manière rigoureuse, et accessible via un outil générique. »
Traces d'exécution des exigences issues de la simulation de ces mêmes exigences réalisée par l'outil Stimulus