• Aucun résultat trouvé

historique, concepts et techniques

3.4 Les méthodes formelles

3.4.5 Les réseaux de Petri

Un réseau de Petri est un modèle mathématique servant à représenter divers sys-tèmes et applications informatiques et a été conçu en 1962 par Carl Adam Petri dans sa thèse intitulée « Communication avec Automates » [167]. Un réseau de Petri constitue un langage de modélisation orienté états pour simuler et vérifier certains ensembles de propriétés comportementales des systèmes. Un réseau de Petri permet de représenter différents états possibles au sein d’un système et de représenter les événements qui déclenchent le changement d’un état [123]. Un réseau de Petri est un graphe bipar-tie et s’appuie sur des places, des transitions et des arcs. Un arc relie alternativement une place à une transition et une transition à une place. Les places jouent le rôle de variables d’états. Elles prennent des valeurs représentées par des marques appelées jetons et qui permettent de représenter les ressources disponibles. Les transitions re-présentent les actions pouvant exécuter et effectuer des échanges de jetons entre les places. En effet, ces transitions représentent des événements dont l’occurrence pro-voque des changements d’états. Les arcs représentent l’orientation des échanges de jetons.

Les réseaux de Petri sont souvent utilisés pour modéliser formellement et graphi-quement les systèmes dynamiques échangeant les ressources. Ils ont fait l’objet de nombreux travaux, par exemple, dans les systèmes de santé pour modéliser, à l’aide d’une nouvelle classe, les protocoles médicaux et les ressources dont ces systèmes ont besoin pour progresser [143]. De plus, dans les systèmes de fabrication flexibles pour étudier la prévention de blocages en utilisant une modélisation de ces systèmes concurrents à l’aide des réseaux de Petri [195].

Particulièrement, les réseaux de Petri sont aussi utilisés pour modéliser et étu-dier des systèmes à base des architectures par composants [35,71,141,218]. Par exemple, dans [112] ils sont utilisés pour spécifier la contrôlabilité et la substituabi-lité des protocoles de services qui interagissent de manière asynchrone et également dans [20,61,79,190,216], ils sont utilisés pour modéliser la composition des services Web. Il existe de nombreuses extensions de réseaux de Petri représentant des modèles comme le montre la figure 3.3.

La modélisation des systèmes complexes a prouvé que tous les types de réseaux de Petri ne possèdent pas la même importance concernant :

— la définition et la modélisation des systèmes parallèles, distribués et syn-chrones ;

— la compréhension et l’étude des concepts qualitatifs et quantitatives, pour ef-fectuer, par exemple, une telle simulation ;

— le processus d’analyse des comportements dans le but de réaliser, par exemple, le Model Checking.

Figure 3.3 – Les modèles principaux de réseaux de Petri [81].

3.5 Conclusion

Nous avons souligné dans ce chapitre la définition fondamentale d’une méthode formelle et sa différence par rapport les méthodes de l’ingénierie dirigée par les mo-dèles. Nous pouvons déduire que si nous choisissons soigneusement une telle mé-thode formelle, le raisonnement logique et l’analyse formelle resteront par conséquent les techniques et des facteurs prédominants qui influenceront et garantiront la perfor-mance des systèmes en terme, par exemple, de l’absence de défauts ou de dysfonc-tionnements.

Dans un premier temps nous avons expliqué la différence entre l’ingénierie dirigée par les modèles, la vérification par la simulation et la vérification par le test. Dans le premier cas, on considère la modélisation comme élément central d’une applica-tion et consiste à concevoir des applicaapplica-tions en s’abstrayant des technologies cibles. Il propose de modéliser des applications à haut niveau d’abstraction, positionner les modèles dans les processus de conception et générer le code des applications à par-tir de leurs modèles. La spécification et la description des systèmes se réalisent en amont et l’implémentation se génère correctement par construction. La modélisation dans l’ingénierie dirigée par les modèles utilise dans la plupart de temps UML qui n’apporte pas de preuves formelles car c’est un langage non formel et ne permet pas d’effectuer des analyses formelles des systèmes. La méthode B est une approche basée

sur un modèle permettant le développement correct avec raffinement à partir de spé-cifications abstraites vers des codes exécutables, cette approche est basée sur la preuve de théorèmes et propose des méthodes de vérification de propriétés pour les systèmes produisent à partir l’ingénierie dirigée par les modèles.

Dans le deuxième et le troisième cas, on utilise ces deux techniques qui exigent plus de temps pour découvrir les bugs. Une lacune importante, dans le processus d’utilisation de la simulation et/ou de test pour la vérification et la validation, est qu’il n’y a aucun moyen de dire quand ces techniques sont terminées (lorsque tous les bugs dans le système ont été trouvés). En d’autres termes, le test et la simulation peuvent être utilisés pour démontrer la présence de bugs, mais pas leur absence.

Nous avons exposé ensuite quelques exemples de méthodes formelles servant à exprimer très rigoureusement les propriétés exigées pour un système complexe. Ces méthodes servent à prouver de manière automatisée que les propriétés souhaitées sont correctes ou non. le Model Checking est l’une de ces méthodes. Il est un processus for-mel par lequel une propriété d’un comportement désiré (une spécification) est vérifiée pour un système donné (un modèle). Cette vérification se réalise en étudiant les états du système avec des techniques exhaustives. De plus, les algèbres de processus sont un formalisme mathématique pour la description et l’étude des systèmes concurrents permettant, par exemple, de vérifier les comportements indéterministes et les compor-tements parallèles.

Puisque nous avons besoin de modéliser en détail des applications de visualisation scientifique interactive, les réseaux de Petri semblent alors être une méthode efficace notamment grâce à leur sémantique formelle de modélisation, d’analyse et de véri-fication pour ces applications distribuées. Un modèle formel basé sur les réseaux de Petri se prête bien aux applications interactives si il sait vérifier leur structure en se basant sur la structure du réseau de Petri modélisant leur sémantique. La sémantique formelle souhaitée ne se base pas sur l’ingénierie dirigée par les modèles, les algèbres de processus ou le Model Checking, mais elle doit permettre à la fois d’aider l’utilisa-teur à construire correctement son application et vérifier sa structure en localisant des erreurs si elles existent.

Ce choix repose sur le fait que les réseaux de Petri sont à la fois une représentation mathématique et une représentation graphique explicite qui possèdent une représen-tation formelle avec une syntaxe et une sémantique bien définie pour fournir des preuves formelles de plusieurs propriétés, par exemple, des propriétés structurelles. En effet, ils représentent une bonne approche pour (1) modéliser des systèmes dy-namiques échangeant des ressources, (2) étudier la décidabilité des propriétés et (3) intégrer des algorithmes pour les vérifier tout en gardant la classe de comportements du système étudié. Comme un outil mathématique, il est possible de mettre en place des équations d’état, des équations algébriques et d’autres modèles mathématiques dirigeant généralement le comportement de tout type de systèmes et particulièrement les différents comportement de systèmes tels que la simultanéité, la concurrence, le choix, la synchronisation, le parallélisme et le partage des ressources.

composants dédié aux applications de visualisation scientifique interactives et concer-nant la méthode formelle pour modéliser ces applications. Cette méthode sera utilisée pour vérifier des propriétés structurelles et pour étudier la correction de la reconfigu-ration dynamique des applications construites.

Contributions

Everyone who has never made a mistake has never tried anything new. Albert EINSTEIN