Brevet FR2899987A1 — publié le 20071019

PROCEDE DE PRODUCTION ET DE GESTION DES EVOLUTIONS DE LIBRAIRIES D'INTERFACES La présente invention se rapporte à un procédé de production et de maintenance de librairies d'interfaces entre au moins deux équipements communiquant entre eux. Les librairies d'interfaces implémentent les structures de données représentant les messages et les fonctions d'encodage / décodage des messages, mais également des services de vérification de cohérence de messages et d'enregistrement. Des jeux de tests permettant la validation du code produit sont également générés. Ces librairies peuvent être amenées à évoluer et sont susceptibles d'être incorporées à des logiciels écrits dans différents langages, fonctionnant sur différentes machines cibles. Les difficultés de réalisation de ces librairies résident dans : - la généricité requise (utilisation de l'atelier en l'état pour tout type de messagerie) - l'automatisation complète de la production (pas d'intervention manuelle sur le code source, la documentation, les jeux de tests, ...) - l'utilisation de l'atelier sans connaissance de langages spécifiques. Selon les procédés connus, la production des librairies d'interface était jusqu'alors réalisée suivant un processus de développement logiciel classique. A partir d'un document descriptif de la messagerie, des phases de conception, codage et tests unitaires permettaient de produire le code source. Cette solution était coûteuse en temps de développement et surtout en termes de maintenance. La modification du code source nécessitait de rejouer tout ou partie des tests unitaires. Les messageries imposant par nature de maîtriser la représentation physique des données au bit près, l'implémentation était très souvent dépendante de la plate-forme cible. Enfin, le code source était écrit dans un langage informatique donné, nécessitant un re-développement complet en cas de changement de langage. Des générateurs de code étaient également disponibles mais leur utilisation restait complexe et nécessitait une connaissance spécifique approfondie en informatique. Un autre inconvénient de ces outils est leur manque de généricité ; c'est à dire qu'ils ont été conçus pour la génération d'une interface spécifique et nécessitent des évolutions majeures pour la génération d'une autre interface. De plus, le code généré est lié à un langage en particulier, n'est pas forcément complet et dans ce cas nécessite une intervention humaine après l'étape de génération. La présente invention a pour objet un procédé visant à simplifier et à automatiser la production ainsi que la gestion de l'évolution de librairies d'interfaces entre au moins deux équipements communiquant entre eux. Le procédé conforme à l'invention est caractérisé par le fait qu'il est mis en oeuvre par deux acteurs, le concepteur qui construit l'atelier de modélisation et de génération, et l'utilisateur qui modélise sa librairie d'interface et la génère à l'aide de cet atelier, et ce procédé est caractérisé en ce qu'il comporte les étapes suivantes : le concepteur définit le langage de description des modèles d'interfaces appelé méta-modèle d'interfaces, ce langage résultant d'une analyse des différentes spécifications d'interfaces susceptibles d'être utilisées et reprenant toutes leur caractéristiques communes identifiées, le concepteur utilise une configuration prédéfinie d'un outil générant automatiquement l'implémentation de ce langage de description de modèle ainsi que l'interface homme -machine associée, le concepteur écrit les patrons ou règles de transformation permettant de générer une librairie, - le concepteur, en assemblant l'implémentation du langage de description des modèles d'interfaces, l'interface homme-machine associée, les patrons de génération, au noyau de l'outil, réalise un atelier de production de librairies d'interfaces générique, utilisable en l'état par l'utilisateur pour toute librairie. Selon une autre caractéristique de l'invention, l'utilisateur utilise ensuite l'atelier de production de librairies comme une boite noire dans laquelle il modélise les interfaces qu'il désire implémenter et sélectionne les règles de transformations qui permettront à l'outil de lui générer ses librairies. Selon l'invention, on utilise les principes de transformation de modèles au sens du Model Driven Architecture (MDA) de l'OMG (Object Management Group), afin de substituer au développement classique, une modélisation de l'interface, suivie d'une génération automatique de librairies . Cette solution repose sur la méthode itérative de création et sur l'évolutivité de l'atelier de modélisation et de génération . Par librairies ou librairies d'interface , on entend, en particulier, au sens de la présente invention, du code source, de la documentation et des tests. La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de réalisation, pris à titre d'exemple non limitatif et illustré par 10 le dessin annexé, sur lequel : la figure 1 est un bloc-diagramme simplifié des différents composants et acteurs impliqués dans le procédé, la figure 2 est un exemple de description d'un méta-modèle d'interface tel que pouvant être utilisé par la présente invention, 15 la figure 3 est un bloc-diagramme simplifié illustrant la génération de l'implémentation du méta-modèle par le concepteur, la figure 4 est un bloc-diagramme simplifié d'un atelier de production d'interfaces par l'utilisateur, tel que pouvant être mis en oeuvre par l'invention. 20 La figure l montre les différents composants d'un atelier de modélisation et de génération générique basé sur le procédé de l'invention. Le méta-modèle (4) constitue le langage de description d'un modèle. Il est défini par le concepteur (1) de l'atelier et respecte lui même un langage de description prédéterminé. 25 Le noyau (3) fournit les fonctions génériques de manipulation de modèles et de méta-modèles, les fonctionnalités de génération de code en s'appuyant sur un moteur de génération par templates (patrons), par exemple le moteur Velocity TM , la fenêtre principale de l'outil sur laquelle va s'intégrer l'interface homme-machine (5) fournie à l'utilisateur (2) pour la saisie du modèle ainsi que les 30 commandes de base telles que l'ouverture de l'aide, la configuration et l'exécution de la génération, par exemple. Les règles de transformation (6) spécifient la forme attendue du code généré en suivant la syntaxe définie par le moteur de génération. L'ensemble de ces éléments (3) à (6) constitue un atelier de modélisation et de génération (7). La figure 1 permet également de comprendre la distinction entre les rôles du concepteur (1) et de l'utilisateur (2) de l'outil. Le concepteur (1) crée et modifie le méta-modèle et les règles de transformation (6) qui composent l'atelier, tandis que l'utilisateur (2) saisit ou modifie son modèle (8), en étant uniquement assisté par une IHM (Interface Homme-Machine) de saisie (5) dépendant du méta-modèle (4) utilisé. Cette IHM se présente comme un formulaire dont l'utilisateur remplit les champs correspondant à ses besoins. C'est également l'utilisateur qui active la génération des librairies en accord avec les règles de transformation (6). La figure 2 est un exemple de description d'un méta-modèle d'interface (10) utilisant le formalisme UML tel que pouvant être utilisé par la présente invention. Ce méta-modèle est la clé de l'atelier de production de librairies d'interfaces, en ce sens qu'il permet de décrire de manière générique tout type de messagerie. Il est le résultat de l'analyse des différentes spécifications d'interfaces susceptibles d'être utilisées et reprend toutes leur caractéristiques communes identifiées, telles que : - une interface (représenté par la classe MessageLibrary), composée d'un ensemble de messages, ces messages sont constitués de différents champs et éventuellement d'extensions, les champs peuvent être des champs élémentaires ou un ensemble de champs élémentaires ( Records ). Des conditions peuvent également leur être associées afin de déterminer leur présence. - les champs élémentaires peuvent être de différents types prédéfinis tels que : numérique, énuméré, chaîne de caractères, flottants... - une interface est également définie par son format d'encodage tel que Little Endian ou Big Endian .30 La figure 3 représente l'atelier (12) de création et de génération de méta-modèles utilisé par le concepteur (1) pour saisir son méta-modèle d'interface (10), par exemple celui représenté en figure 2, et générer son implémentation et l'interface homme-machine associée (11), qui seront intégrés dans l'atelier de production de librairies d'interfaces. Cet atelier de création et de génération de méta-modèle est une configuration de l'outil dédié au concepteur (1) et est utilisé par celui-ci comme une boite noire . Cet atelier comporte : un méta-méta-modèle , une IHM de saisie de méta-modèles, le noyau et des règles de transformation dédiées à la génération d'une implémentation d'un méta-modèle et d'une IHM de saisie de modèles. La figure 4 illustre l'atelier de production de librairies d'interfaces mis en oeuvre par l'utilisateur (2) . Afin de construire cet atelier, le concepteur (1) se sert de l'implémentation du méta-modèle d'interface et de l'interface homme-machine associée (11) qui ont été générés par l'atelier de création et de génération de méta-modèle (12) pour l'intégrer au noyau de l'outil. Le concepteur (1) a également défini les différentes règles de transformation (13) permettant de générer des librairies (15) comportant: du code source, de la documentation et des tests. Ces règles de transformation (13) sont également intégrées au noyau de l'outil et sont valables avec tout modèle saisi par l'utilisateur (2). L'utilisateur (2) utilise l'atelier de production de librairies d'interfaces comme une boite noire dans laquelle il saisit son modèle d'interface (14) via l'interface homme-machine (11) et sélectionne les règles de transformation (13) qu'il désire appliquer parmi celles disponibles. En exécutant la transformation, il obtient les différentes librairies(15) résultants des règles qu'il a sélectionnées. La solution de l'invention présente, en particulier, les avantages suivants : La librairie d'interface est produite entièrement à partir de la modélisation de la messagerie, elle-même réalisée grâce à une interface homme-machine adaptée. Aucune compétence en développement logiciel pour la saisie du modèle et la production des librairies n'est requise. Le temps de développement et les opérations de maintenance en sont considérablement réduits, - La portabilité (langage, plate-forme cible) est acquise en adaptant les 5 10 règles de transformation, sans qu'il soit besoin de modifier le modèle, -La fiabilité de la librairie d'interface est améliorée par l'automatisation de la génération de code, sans aucune intervention manuelle sur le code produit. - L'évolutivité de l'atelier (grâce au générateur de méta-modèle) permet de prendre en compte des nouvelles spécificités sans avoir à intervenir sur le code source de l'outil. L'utilisateur de l'outil n'a besoin d'aucune compétence spécifique en informatique, car celle-ci est réservée au concepteur. 15 REVENDICATIONS 1. Procédé de production et de maintenance de librairies d'interfaces entre au moins deux équipements communiquant entre eux, caractérisé par le fait qu'il est mis en oeuvre par deux acteurs, le concepteur (1) qui construit l'atelier (7) de modélisation et de génération, et l'utilisateur (2) qui modélise sa librairie d'interface et génère la librairie qu'il désire à l'aide de cet atelier, et caractérisé en ce qu'il comporte les étapes suivantes : le concepteur définit le langage de description des modèles d'interfaces appelé méta-modèle d'interfaces (4), ce langage résultant d'une analyse des différentes spécifications d'interfaces susceptibles d'être utilisées et reprenant toutes leur caractéristiques communes identifiées, le concepteur utilise une configuration prédéfinie d'un outil (3) générant 15 automatiquement l'implémentation de ce langage de description de modèle ainsi que l'interface homme -machine associée, le concepteur écrit les patrons ou règles de transformation (6) permettant de générer une librairie, le concepteur, en assemblant l'implémentation du langage de description 20 des modèles d'interfaces, l'interface homme-machine associée, les patrons de génération, au noyau de l'outil, réalise un atelier (7) de production de librairies d'interfaces générique, utilisable en l'état par l'utilisateur pour toute librairie. 2. Procédé selon la revendication 1, caractérisé en ce que l'utilisateur utilise 25 ensuite l'atelier de production de librairies comme une boite noire dans laquelle il modélise les interfaces qu'il désire implémenter et sélectionne les règles de transformations qui permettront à l'outil de lui générer ses librairies. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce qu'il est mis en oeuvre pour réaliser une librairie d'interface pour une messagerie. 30 4. Atelier de production de librairies (7) pour la mise en oeuvre du procédé selon la revendication 2, caractérisé en ce qu'il comporte un moteur degénération par patrons (3), un méta-modèle (4), un interface homme-machine de saisie de modèle (5) et des règles de transformation (6). 5. Atelier selon la revendication 4, caractérisé en ce que lorsqu'il est utilisé par le concepteur, le méta-modèle (4) est un méta-modèle d'interfaces servant 5 à créer des méta-modèles (méta-méta-modèle). 6. Atelier selon la revendication 4 ou 5, caractérisé en ce que lorsqu'il est utilisé par l'utilisateur, le méta-modèle est une implémentation du méta-modèle d'interface.