13.07.2015 Views

Assistance au calage de modèles numériques en hydraulique ... - TEL

Assistance au calage de modèles numériques en hydraulique ... - TEL

Assistance au calage de modèles numériques en hydraulique ... - TEL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.3 CARMA-1, UN PROTOTYPE EN PILOTAGE DE PROGRAMMESCe prototype est un système à base <strong>de</strong> connaissances bâti avec le moteur PEGASE+ etfonctionne suivant le mécanisme <strong>de</strong> pilotage <strong>de</strong> programmes décrit dans la section 5.2.Après une <strong>de</strong>scription <strong>de</strong> l’implém<strong>en</strong>tation technique réalisée pour obt<strong>en</strong>ir ce prototype,cette section prés<strong>en</strong>te les principes <strong>de</strong> la construction d’une base <strong>de</strong> connaissancesdans le langage YAKL et les principes <strong>de</strong> fonctionnem<strong>en</strong>t du prototype.5.3.1 Principe d’implém<strong>en</strong>tation techniqueL’implém<strong>en</strong>tation technique du prototype CARMA-1 s’est déroulée selon plusieursphases, comme prés<strong>en</strong>té par la figure 5.7. L’<strong>en</strong>semble <strong>de</strong>s connaissances décrites dansle chapitre précé<strong>de</strong>nt selon le formalisme graphique UML ont tout d’abord fait l’objetd’une traduction dans le langage YAKL, traduction sur laquelle nous allons rev<strong>en</strong>irdans la section suivante. La base <strong>de</strong> connaissances ainsi obt<strong>en</strong>ue est <strong>en</strong>suite traduite<strong>au</strong>tomatiquem<strong>en</strong>t <strong>en</strong> langage C++ par un interpréteur – ou parser – du langage YAKL.Les fichiers ainsi obt<strong>en</strong>us sont alors compilés conjointem<strong>en</strong>t avec la librairie du moteurPEGASE+ <strong>de</strong> manière à produire un système à base <strong>de</strong> connaissances exécutable.:JeuDeDiagrammesUML:JeuDeFichiersYakltraductionparsing:JeuDeFichiersC++compilation:SystèmeExécutableraffinem<strong>en</strong>t d'implém<strong>en</strong>tationanalyse croiséeFIG. 5.7 – Principe <strong>de</strong> l’implém<strong>en</strong>tation technique du prototype <strong>de</strong> système d’assistance <strong>au</strong><strong>calage</strong> – Diagramme <strong>de</strong> séqu<strong>en</strong>ces UML.Les problèmes d’implém<strong>en</strong>tation technique d’une base <strong>de</strong> connaissances ont été mis<strong>en</strong> relief par Morel (2002). Il souligne notamm<strong>en</strong>t le nécessaire rapprochem<strong>en</strong>t <strong>en</strong>treles domaines <strong>de</strong> l’Ingénierie <strong>de</strong>s Connaissances et du Génie Logiciel pour parv<strong>en</strong>ir àune chaîne cohér<strong>en</strong>te d’opérationalisation <strong>de</strong>s connaissances. La principale différ<strong>en</strong>ce<strong>en</strong>tre la chaîne ✭ UML–YAKL–C++ ✮ utilisée ici et celles préconisées par Morel et Kassel(1999, 2001) est l’utilisation <strong>de</strong> la norme UML comme outil <strong>de</strong> spécification. Cette démarche,adoptée par Cranefield et Purvis (1999) et Kogut et al. (2002), est soumise <strong>au</strong>xambiguïtés <strong>de</strong> la notation graphique UML, qui prévoit par exemple une équival<strong>en</strong>cesémantique <strong>en</strong>tre un attribut et une relation <strong>de</strong> composition. L’utilisation du langageYAKL comme intermédiaire <strong>en</strong>tre UML et le langage <strong>de</strong> programmation C++ nous apermis <strong>de</strong> lever ces ambiguïtés <strong>au</strong> nive<strong>au</strong> opérationnel, <strong>au</strong> prix <strong>de</strong> l’établissem<strong>en</strong>t <strong>de</strong>conv<strong>en</strong>tions strictes pour la traduction UML-YAKL, conv<strong>en</strong>tions que nous allons prés<strong>en</strong>terdans la section suivante.132

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!