Conception par patrons des modèles à événements discrets : de la machine à états finis au DEVS

Les modèles à événements discrets sont, souvent, réalisés afin d’être simulés et par conséquent exécutés sur ordinateur.Certains codeurs de simulation optent pour une programmation impérative pour implémenter les comportements décrits par leurs machines à états.D’autres codeurs optent plutôt pour un...

Full description

Bibliographic Details
Main Author: Messouci, Rabah
Other Authors: Aix-Marseille
Language:fr
Published: 2017
Subjects:
Fsm
Online Access:http://www.theses.fr/2017AIXM0102
Description
Summary:Les modèles à événements discrets sont, souvent, réalisés afin d’être simulés et par conséquent exécutés sur ordinateur.Certains codeurs de simulation optent pour une programmation impérative pour implémenter les comportements décrits par leurs machines à états.D’autres codeurs optent plutôt pour une programmation orientée objet.Ce paradigme de programmation, basé sur la notion d’objet, décline une nouvelle façon de voir un programme et son architectureToutes les solutions proposées manquent de clarté.Elles sont extrêmement coûteuses en terme de maintenabilité du code implémenté.L’utilisation exclusive des instructions conditionnelles rend toute correction au niveau du code difficile à réaliser, voire impossible dans certains cas. Aussi, elles souffrent au niveau de la réutilisabilité d’une partie du code. En effet, l’utilisation de telles instructions produit un code compacte, avec une forte cohésion entre les variables et fonctions du modèle implémenté. Par conséquent, le concepteur pourra réutiliser ce code qu’en un seul bloc.Toute dislocation du code est impossiblePour toutes ces raisons, nous proposons une nouvelle conception des modèles à événements discrets afin d’améliorer les qualités du code produit. Cette solution est basée sur le paradigme objet pour exploiter pleinement ses avantages tout en contournant ses limites. A cet effet, la solution proposée et détaillée dans cette thèse est un nouveau patron. Dans ce patron, les états et les événements sont réifiés pour avoir plus d’abstraction et de clarté. La réification permettra aux événements d’encapsuler des données et des comportements. Ainsi, nous pouvons déléguer aux événements de nouvelles responsabilités === Discrete event systems (State machine or Discrete Event system Specification) are often modeled in order to be simulated and therefore executed on a computer. Some simulation designers choose for imperative programming to implement the behaviors described by their state machines and others. Whereas, few of them choose for object-oriented programming: this paradigm of computer programming, based on the notion of object, declines a new way of seeing a program and its architecture.All of the proposed solutions found in the litterature lack clarity. They are extremely expensive in terms of debugging, reusing and changing the implemented model. The exclusive use of conditional statements if-else or switch case makes any code correction difficult to perform, even impossible in some cases. They also suffer from the reusability of some parts of the code. Indeed, the use of such instructions produces a compact code, with a strong cohesion (coupling) between the variables and functions of the implemented model. Therefore, the designer can reuse the corresponding code only in one block. Any extraction of a a piece of code which corresponds to a piece of behavior is impossible.For all these reasons, we propose a new design of discrete event systems, from the state machine to the DEVS, in order to improve the producted code qualities. This solution is based on the object paradigm to fully exploit its advantages while circumventing its limits. To this end, the solution proposed and detailed in this thesis is a new State-Event Design Pattern and its variants. Thus, the designer of simulation models will have a library of patterns to choose in order to satisfy his design requirements.