Abstract : The development of numerical simulation software, particularly those involving the résolution of multiphysics problems, implies a significant increase in the complexity of the data structures progressively with the enrichments. The control of this complexity requires a well-organized and extensible structure. These successive enrichments introduce more features interesting for the end-user but, vert/ often, at the price of a rising difficulty in use.
This thesis tackles the problems of managing the structure and the complexity in a multiphysics numerical simulation application, in applying the combination of the object-oriented programming and business rules with the help of Prolog, a logic programming language.
We start with the realization a data model containing abstract classes which facilitate the héritage and the expansion of this data structure. The goal is to permit the developers to add a new data model or to modify an existing model, without calling into question the existing ones. Such a data model requires a checking engine which ensures that all the orders and constructions of objects are valid. We propose to carry, out these checks using a rules interpréter and not in an algorithmic way as actually dope. This rudes interpréter, based on logic programming language, gives the possibility of carrying out not only the checking, of course, but also the proposition and the explanation.
This approach makes it possible on the one hand to reduce the task of the developer and on the other hand to facilitate the opérations of the end-user.
Résumé : Le développement d'un logiciel de simulation numérique, en particulier lorsqu'il est destiné à la résolution de problèmes multiphysiques, implique une augmentation significative de la complexité des structures de données au fur et à mesure des enrichissements. La maîtrise de cette complexité exige une structure bien organisée et extensible. Ces enrichissements successifs introduisent des fonctionnalités intéressantes pour l'utilisateur final mais ceci, bien souvent, au prix d'une difficulté d'utilisation croissante.
Cette thèse aborde la problématique de la gestion de la structuration et de la complexité dans une application de simulation numérique multiphysique, par la combinaison de la programmation orientée objet et de règles métiers à l'aide de Prolog, un langage de programmation logique.
Nous commençons par établir un modèle de données contenant des classes abstraites qui facilitent l'héritage et l'expansion de cette structure de données. L'objectif est de permettre aux développeurs d'ajouter un nouveau modèle de données ou de modifier un modèle existant, sans remettre en cause l'existant. Un tel modèle de données nécessite des vérifications qui assurent que toutes les commandes et les constructions d'objets soient valides. Nous proposons de réaliser ces vérifications à l'aide d'un moteur de règles et non pas de manière algorithmique comme cela est fait habituellement. Ce moteur de règles, basé sur le langage de programmation logique, donne la possibilité d'exécuter la vérification, bien sûr, mais aussi la proposition et l'explication.
Cette approche permet d'une part de réduire la tâche du développeur et d'autre part de faciliter les opérations de l'utilisateur final.