Accueil > Applications > Ingénierie système


Ingénierie système

L'ingénierie système a pour objectif de prendre en considération tous les aspects d'un système. Ceci inclut les aspects mécaniques, électriques, électromagnétiques, ou logiciels. La difficulté réside dans la description d'intéractions entre des éléments qui suivent des principes très différents. Par exemple dans le cas d'un régulateur de vitesse il est difficile dans un même modèle de regrouper le poids de la voiture, la vitesse de la voiture, la résistance de l'air, la puissance du moteur, les capteurs de vitesse, le logiciel de régulation de l'injection, l'interface homme machine du conducteur, etc...

Pour maitriser la complexité, les systèmes sont décomposés en sous-systèmes qui sont traités séparéments. Cela fonctionne bien pour la plupart des systèmes mais à partir d'un certain point il est nécessaire de mettre ensemble et de relier tous ces sous-systèmes avec leurs spécificités.


Évènementiel

Un des éléments clés dans la description d'un système est de décrire sa fonctionnalité. Le QUOI, ce que le système doit faire, avant le COMMENT, comment le système fournira cette fonctionnalité. Au niveau système c'est un des aspects les plus importants car si les besoins ne sont pas bien compris il y a peu de chance que les résultats soient ceux attendus.

Sur le principe d'un modèle d'exécution Gloablement Asynchrone Localement Synchrone (GALS), la description fonctionnelle d'un système est particulièrement bien décrite avec des technologies asynchrones comme celles que l'on retrouve dans l'outil PragmaDev Studio.

Du fait de son approche évenementielle, de sa sémantique bien définie, et de son haut niveau d'abstraction, LDS est le langage parfait pour décrire les fonctionnalités au niveau système.


Modèle exécutable

Un modèle statique avec des boites et de flèches n'est pas suffisant pour décrire la fonctionnalité d'un système. Le modèle ne peut être vérifié que s'il est exécutable. Ceci requiert un langage d'action et une sémantique d'exécution.

Pour être efficace le langage d'action doit être clairement défini et mettre de côté toute ambiguité. Si pour être exécutable des compléments de description au langage de modélisation sont nécessaires, alors le modèle sera ambigu et pourra être interpreté de manière différente par différents lecteurs.

La force de LDS et de TTCN-3 c'est que ce sont deux langages clairement définis, sans ambiguité, avec une sémantique d'exécution. Quiconque lit un modèle SDL aura une compréhension commune de son comportement. Pour ces raisons PragmaDev Studio est parfait pour décrire un système exécutable d'un point de vue fonctionnel. Grâce à son simulateur intégré la dynamique est vérifiée et les tests de validation peuvent être écrits ou générés.

Analyse d'architecture

Une fois que le comportement attendu a été décrit et vérifié, il faut trouver la meilleure architecture. Dans les systèmes actuels les critères de performance et de consommation énergétique, basés si possible sur des retours d'expérience, sont très importants. PragmaDev Studio aide les architectes système à trouver la meilleure architecture avec son analyseur de performance. Un ensemble de scénarios caractéristiques sont exécutés sur un ensemble d'architectures possibles et produit un graphique d'aide à la décision du choix de la meilleure architecture.

Emmanuel Gaudin presente un article sur l'optimisation de performance à la conférence SAM le 3 octobre 2016 à Saint Malo.

Validation

L'ingénierie système démarre très tôt dans le cycle de développement et recouvre ce qui est attendu du système. De fait c'est une source pour la validation ultérieure de l'implémentation. PragmaDev Studio permet de générer des cas de tests à partir d'un modèle et les cas de tests ainsi générés peuvent être utilisés pour s'assurer qu'une implémentation est conforme à la description fonctionnelle du système.

Présentation lors de la conférence SAM 2014 à Valence en Espagne des capacités de Model Based Testing issues de PragmaList, le laboratoire commun du CEA List et de PragmaDev.