• Aucun résultat trouvé

Utilisation des méthodes formelles pour la spécification de systèmes

spé-cification de systèmes ferroviaires

L’utilisation des méthodes formelles pour la spécification de systèmes ferroviaires a fait l’objet de nombreux travaux. Ces travaux peuvent être classés en deux catégories. Dans la première catégorie, le but est de tester l’efficacité d’une méthode dans le cadre de la modélisation de systèmes ferroviaires. Dans la deuxième catégorie, le but des projets est de construire un système ou une spécification, en utilisant des méthodes formelles.

1.4.1 Test de méthodes

Dans l’Event-B book [Abr07], Abrial modélise un système ferroviaire en utilisant la méthode Event-B. Cette modélisation spécifie la partie interlocking d’un système ferroviaire. La voie sur laquelle circulent les trains est représentée par un ensemble de tronçons appelés CDV (Circuit De Voie), liés par une relation de proximité. Un CDV “normal” a deux voisins, un aiguillage trois et un croisement quatre. Lorsqu’un train souhaite aller d’un point à un autre, il doit emprunter un ensemble de tronçons,

qui constituent son itinéraire. Les tronçons de son itinéraire sont verrouillés et aucun autre train ne peut les emprunter. Pour verrouiller un itinéraire, il faut vérifier que les tronçons qui le constituent sont tous libres.

Positionnement : Cette spécification est effectuée grâce à la méthode Event-B. Elle est donc modélisée en plusieurs étapes, en utilisant le raffinement de la méthode Event-B. Elle permet de prouver des propriétés de non-collision. Mais elle ne permet pas de modéliser la présence de plusieurs trains. De plus elle se focalise sur les zones avec de nombreux aiguillages, mais ne permet pas de modéliser le fonctionnement complet d’un système.

Dans sa thèse [Sil12], Renato Silva modélise également un système ferroviaire en utilisant la méthode Event-B. Une nouvelle fois, la voie est divisée en tronçons, com-prenant des aiguillages. La spécification est décomposée en plusieurs sous-systèmes (le train, la voie, et la machine de communication). Seul le sous-système du train est dé-veloppé. Le raffinement de ce sous-système permet de spécifier le système d’ouverture des portes.

Positionnement : La spécification de Renato Silva modélise des aspects auxquels nous ne nous intéressons pas, et qui n’ont pas nécessairement besoin d’être modélisés par des astd. Mais sa modélisation permet de s’intéresser à la décomposition d’un système en plusieurs sous-systèmes, ce dont nous avons eu besoin pour la spécification de notre cas d’étude [Fay14].

1.4.2 Modélisation de système

La méthode B a souvent été utilisée pour la spécification de systèmes ferroviaires. Des industriels ont utilisé la méthode B pour spécifier des systèmes qui fonctionnent dans plusieurs pays. Le projet Météor [BBFM99] est un exemple de réussite de l’uti-lisation de la méthode B dans le domaine ferroviaire. Ce projet a permis de spécifier le ligne 14 du métro de Paris. Pour la réalisation de ce projet, une spécification système est écrite en langage naturel. À partir de cette spécification système, une spécification logicielle écrite elle aussi dans un langage naturel est dérivée. C’est cette spécification qui est traduite dans une spécification formelle en B. Cette spécifica-tion est ensuite formalisée en B puis raffinée jusqu’à obtenir une implémentaspécifica-tion en

ADA (certains raffinements sont automatisés grâce à l’outil propriétaire Edith B de Siemens [Dol06]). L’expérience a depuis été répétée sur plusieurs projets de systèmes ferroviaires en France (Paris Ligne 1) et dans le monde (New-York, Sao Paulo, Etc...)

Positionnement : Ces projets ont permis de montrer que le langage B peut être utilisé dans le cadre de projets réels allant de la spécification à l’implémentation. Il est donc possible d’utiliser cette méthode pour des projets ambitieux. Mais dans cet exemple, les méthodes formelles ne sont pas présentes au cours de toute la spécifica-tion. Dans nos travaux, nous modéliserons le système à un niveau plus abstrait, mais nous souhaitons réduire au maximum la part des spécifications écrites en langage non-formel.

Le CBTCCommunication Based Train Control Systemest un standard définissant un système de contrôle automatique de métro. Il est défini par des normes (IEEE 1474.1 [IEE] et IEC 62290 [IEC14]). Dans [FSMM14], Ferrari et al. partent de ces normes et des documents commerciaux des principaux industriels pour définir dans un langage semi-formel les exigences d’un CBTC. Le document définit les principaux éléments d’un CBTC et spécifie les liens qui les lient. Il définit également un ensemble de scénarios et les exigences de réponses attendues. Ces scénarios sont écrits dans un langage naturel contraint.

Positionnement : Lors de la spécification d’un système, il n’est pas possible de couvrir l’ensemble du processus avec des méthodes formelles. Ces travaux utilisent des méthodes de spécifications semi-formelles pour couvrir la partie la plus abstraite de la spécification qui est souvent écrite en langage naturel (comme c’est le cas par exemple dans le projet Météor). Les astd sont une méthode de spécification plus concrète mais formelle qui pourrait faire le lien entre ce type de spécifications abstraites et semi-formelles et des spécification logicielles encore plus concrètes.

Enfin, Haxthausen et al. [HPK11] définissent une méthode de spécification de systèmes ferroviaires. Cette spécification se fait à l’aide d’un langage spécifique au domaine. La spécification dans ce langage est traduite en SystemC qui est ensuite compilé. Chaque étape de spécification et de traduction est accompagnée de vérifi-cations qui valident la syntaxe et la sémantique des spécifivérifi-cations. Dans le cas de la traduction et de la compilation, elles vérifient également que la traduction est bien conforme à la spécification. Le développement du langage spécifique au domaine est

fait en utilisant le dogme TripTych de Bjørner [Bjø06]. Un modèle du domaine a été spécifié avant tout développement en utilisant le langage formel RAISE [GH08]. Le but de cette spécification est d’arriver à une implémentation exécutable. La modéli-sation est donc une modélimodéli-sation concrète du système. Le langage spécifique utilisé permet par exemple de modéliser concrètement la voie, c’est-à-dire les tronçons qui la découpent et les relations de proximité entre les tronçons.

Positionnement : Haxthausen et al. définissent une méthode de développement de systèmes ferroviaires qui permet en partant d’une spécification du modèle d’obtenir un exécutable. Mais le modèle et le langage spécifique utilisés sont des modélisations concrètes, qui spécifient directement un plan de voie et les règles qui s’appliquent pour contrôler ce plan de voie. Notre méthode de spécification permet de modéliser le système à un niveau plus abstrait, ce qui permet de spécifier le système dans son ensemble, et non une partie localisée du système.

- Utilisation de méthodes formelles dans le ferroviaires :

Résumé des différents projets ferroviaire dans lesquels des méthodes formelles ont été utilisées, à la fois dans la recherche et dans l’industrie

- Combinaison de méthodes formelles :

Quelles sont les méthodes combinant des méthodes formelles ? Comment sont combinées les méthodes formelles ? Comment la cohérence du système est garantie ?

- Raffinement :

Quelles sont les différents types de raffinement ? Y a-t-il des raffinements équiva-lents ?

Définition formelle d’une méthode

de spécification couplant astd et B

Dans ce chapitre, nous présentons la méthode utilisée pour la combinaison des astdet des langages B et Event-B. La section 2.1 présente la méthode et les différents langages utilisés. Les sections 2.2 et 2.3 définissent formellement respectivement la méthode et le raffinement. Enfin, la section 2.4 présente les outils nécessaires à la mise en œuvre de la méthode et leur état de développement actuel.