Produits

Framework Scientifique (SFX)

Il est bien connu que les environnements de type «framework», application semi-complète sous forme d’abstractions de haut niveau, ont comme principal objectif de réduire de façon dramatique le temps et les efforts requis pour le développement de programmes pour des domaines d’applications particulier. L’avantage principal, le détail des «class» internes qui permet de compléter le «framework» est invisible au reste du programme et donc, les détails de l’implémentation peuvent être modifiés sans affecter le reste de l’application. Le «framework» que nous avons développé, toujours en cours de développement, est un environnement de programmation flexible pour le prototypage rapide de simulateur physique qui est composé d’un ensemble de class C++ sous forme de librairies. 

Concepts clés de notre application

Énoncé du problème – Résoudre un problème physique par simulation numérique.

Regardons comment les physiciens brisent le problème que nous voulons solutionner en concepts.

Système Physique

Premièrement nous commençons avec le système physique que nous voulons étudier. Chaque système physique est décrit par des objets physiques qui font parties du système que l’on étudie. 

Dans le dessin ci-haut PhysicalSystem et PhysicalObject sont des class de haut niveau d’abstraction. L’association entre PhysicalSystem et PhysicalObject est une association de type “has” ou appelé agrégation comme l’indique le petit losange. En d’autres termes ceci signifie que PhysicalSystem est composé de ou est fait de PhysicalObjects. Comment est-ce que le «framework» utilise ces deux class comme class de base afin d’étendre le système? Il faut noter que dans le diagramme UML (ci-haut) que ces deux class sont des class abstraites ce qui signifie qu’elles ne peuvent être instanciées. Elles ont été construites de cette façon afin d’être en mesure d’utiliser les patrons de conception de type Factory et Abstract Factory. Pour l’instant il faut seulement prendre pour acquis qu’une Factory est une façon standard de créer des objets qui sont similaires mais qui ne sont pas nécessairement reliés entre eux. Une abstract factory crée des objets similaires d’une façon standard ou les objets sont reliés entre eux. Puisqu’il peut y avoir plusieurs types de PhysicalSystems dépendamment de la physique que l’on veut simuler, une factory est très bien adaptée pour nous assister dans la création de ces objets. De la même manière, pour les PhysicalObjects une abstract factory est utilisée pour créer ceux-ci. Un diagramme de class UML plus détaillé ci-dessous:

physics11

Celles-ci ne sont que quelques unes des class qui font partie du SFX package. Au niveau le plus élevé de la hiérarchie de ce diagramme est la PhysicalSystemFactory. Cette class est une class concrète et est responsable pour la création du PhysicalSystem spécifié par l’utilisateur. Ceci se fait par la création d’une instance du PhysicalSystem spécifié par l’usager et ajoute à celui-ci le nombre spécifié de PhysicalObjects en utilisant la PhysicalObjectFactory appropriée.

NOUVELLES ET ARTICLES See all

  • Un Exemple d’Implémentation des Angles d’Euler en C++

    Tips and Tricks!

    Le langage C++ offre de nombreuses caractéristiques qui le rende bien adapte pour la programmation scientifique. En particulier la surcharge des opérateurs, permet d'écrire du code qui modélise les types mathématiques de manière naturel. Je présente une class C++ de notre environnement de programmation qui met en évidence cette caractéristique

clients and partners

Autolog