HLL, un langage de modélisation
Le langage HLL (High Level Language) permet de décrire des modèles de systèmes à temps discret.
Initialement créé pour exprimer des propriétés de sécurité sur ce type de systèmes, son utilisation s’étend aujourd’hui à des analyses formelles formelles de second regard sur des systèmes ou logiciels
Toutefois, ses usages peuvent aller plus loin : résolutions de contraintes, génération automatique de cas de tests, etc.
Performance industrielle
L’industrie ferroviaire a été le moteur de cette technologie et l’a utilisée au-delà de la R&D depuis plusieurs années :
Les principes du langage HLL
HLL est un langage formel de modélisation. L’élément de base du langage est le stream, une variable typée ayant une valeur à chaque cycle. Les streams d’entrée prennent une valeur au début d’un cycle, puis les différents streams sont évalués dans l’ordre du flot de données (dataflow) à partir des valeurs des inputs et de celles des mémoires au cycle précédent (variables d’état du système), jusqu’à la production des outputs.
C’est donc un langage synchrone et à flot de données (dataflow). Ce langage possède une syntaxe et une sémantique formellement définies.
HLL : ses avantages
Ce langage, destiné au Model Checking, a été conçu pour être :
- simple et clair afin d’être efficace et non ambigu lors des activités de :
- formalisation des propriétés et du modèle d’environnement contraignant l’espace d’état sur lequel faire la preuve
- revue de ces propriétés et contraintes
- riche et expressif pour simplifier le développement de traducteurs permettant d’obtenir automatiquement le modèle d’un système critique à partir de son code
- déclaratif et structuré ce qui le rend extrêmement pratique et puissant pour séparer un cœur générique et son instanciation et ainsi construire des solutions automatiques performantes et certifiables.
Maturité technologique
Le langage et la technologie sont exploités industriellement depuis 2010. Cette antériorité donne à HLL et à Systerel Smart Solver, les moyens d’évoluer pour continuer d’améliorer :
- les coûts et délais de développement de traducteurs spécifiques
- les efforts de modélisation des propriétés / environnement
- les performances d’analyse afin de permettre aux utilisateurs d’intégrer ces solutions dans des délais de projets industriels toujours plus contraints.
Systerel et le HLL
Systerel, acteur majeur de la technologie HLL
Systerel utilise le langage HLL depuis de nombreuses années dans le cadre de vérifications formelles de logiciels ou systèmes critiques comme des CBTC, des postes de signalisation, mais également des circuits logiques de contrôle-commande et autres usages nécessitant l’expression de contraintes à vérifier. Dans le contexte d’un processus d’amélioration continue, Systerel est ainsi devenue un acteur majeur dans l’évolution de la technologie. Elle a conduit :
- des travaux sur les dernières évolutions du langage HLL
- expressivité des propriétés
- amélioration de la généricité
- bonne définition des modèles
- des travaux à la périphérie du langage
- traducteurs
- bibliothèques
- des améliorations et industrialisation des moyens de la preuve
- ergonomie des moyens d’analyse de contre-exemples
- pertinence métier des contre-exemples
- performance d’analyse
- des travaux d’études de nouveaux cas d’emplois
Systerel Smart Solver : solution de vérification formelle
Systerel intègre les méthodes formelles dans le développement et la validation des systèmes critiques. Face à une demande croissante de ses clients d’appuyer la vérification de la sécurité de leurs systèmes sur l’utilisation de méthodes de « Model Checking », Systerel a lancé sa solution, Systerel Smart Solver, en 2013, choisissant naturellement le langage HLL pour la modélisation.
Ils ont fait confiance à Systerel
Références bibliographiques
Julien Ordioni, Nicolas Breton, Jean-Louis Colaço. HLL v.2.7 Modelling Language Specification. STF-16-01805, RATP. 2018. <hal-01799749> URL : https://hal.archives-ouvertes.fr/view/index/docid/1799749/lang/fr/
Nicolas Breton and Yoann Fonteneau. S3: proving the safety of critical systems. In Reliability, Safety, and Security of Railway Systems. Modelling, Analysis, Verification, and Certification – First International Conference, RSSRail 2016, Paris, France, June 28-30, 2016, Proceedings, 231–242. 2016. URL : https://link.springer.com/chapter/10.1007%2F978-3-319-33951-1_17
Ning Ge, Arnaud Dieumegard, Eric Jenn, and Laurent Voisin. From event-b to verified c via hll. URL : https://hal.archives-ouvertes.fr/hal-01387137
Ning Ge, Eric Jenn, Nicolas Breton, and Yoann Fonteneau. Formal verification of a rover anti-collision system. In Critical Systems: Formal Methods and Automated Verification – Joint 21st International Workshop on Formal Methods for Industrial Critical Systems and 16th International Workshop on Automated Verification of Critical Systems, FMICS-AVoCS 2016, Pisa, Italy, September 26-28, 2016, Proceedings, 171–188. 2016. URL : https://link.springer.com/chapter/10.1007%2F978-3-319-45943-1_12
Marielle Petit-Doche, Nicolas Breton, Roméo Courbis, Yoann Fonteneau, and Matthias Güdemann. Formal verification of industrial critical software. In Formal Methods for Industrial Critical Systems – 20th International Workshop, FMICS 2015, Oslo, Norway, June 22-23, 2015 Proceedings, 1–11. 2015. URL : https://link.springer.com/chapter/10.1007%2F978-3-319-19458-5_1