Brevet FR2990280A1 — publié le 20131108

L'invention concerne un procédé et un dispositif de génération d'un modèle logiciel, ainsi qu'un procédé et un dispositif de simulation utilisant un tel modèle. Dans le cadre du développement de systèmes complexes, il est connu de simuler (par exemple à l'aide d'ordinateurs programmées selon des logiciels adéquats) le fonctionnement de certaines parties du système, en particulier afin de tester d'autres parties du système telles qu'elles seront utilisées lors du fonctionnement réel du système. On peut ainsi simuler le fonctionnement de divers calculateurs (tel que par exemple un calculateur de commande de vol ou un calculateur de gestion des 15 alarmes) embarqués dans un aéronef au moyen de modèles logiciels. Ces calculateurs reçoivent typiquement en entrée des signaux avions et émettent de tels signaux en sortie. Ces signaux peuvent par exemple être décrits dans un fichier de définition d'interface, couramment désignés ICD (conformément à l'appelation anglosaxonne "Interface Control De finition"). 20 Un tel fichier de définition d'interface donne, pour chaque signal d'entrée ou de sortie du calculateur, un descriptif du signal, notamment l'identification du signal et son format. Un tel fichier de définition d'interface est utilisé notamment lors de la production du logiciel à exécuter par le dispositif de simulation du calculateur 25 concerné. C'est notamment le cas lorsque le logiciel est produit par génération automatique de codes sur la base d'une modélisation générique du calculateur et des entrées/sorties définies dans le fichier de définition d'interface. Ce fichier évolue toutefois en fonction des changements dans la conception du calculateur, en particulier en phase de développement, où interviennent pourtant les tests à 30 réaliser à l'aide du dispositif de simulation basé sur le logiciel ainsi généré. Dans ce contexte, l'invention propose un procédé de génération d'un modèle logiciel, caractérisé en ce qu'il comprend les étapes suivantes : - exécution d'un composant de transformation de données contenues dans au moins un fichier de définition d'au moins une interface d'un système ; - génération d'un modèle logiciel du système sur la base des 5 données transformées et d'une modélisation du fonctionnement du système. La mise en place d'une telle solution peut ainsi se faire au moyen des étapes suivantes : - définition de fichiers de configuration décrivant les modélisations des données d'interfaces utiles à la génération de modèles logiciels et 10 applicables aux fonctionnements d'un ou plusieurs systèmes sur la base de fichiers de définition des interfaces de ces systèmes ; - exécution d'un composant de génération de données d'interface utiles à la génération d'un modèle logiciel d'un système à partir de traitements de transformations de fichiers de définition d'au moins une interface de ce 15 système, transformations définies dans une ou plusieurs modélisations des données d'interfaces utiles à la génération du modèle logiciel et applicables au fonctionnement de ce système ; - génération d'un modèle logiciel du système sur la base de l'interface utile (données d'interface utiles) à cette génération créée à partir des 20 différentes modélisations applicables au système et appliquées aux fichiers de définition d'interface de ce système. La génération d'une interface utile au modèle logiciel d'un système à partir des modélisations d'interfaces applicables au fonctionnement de ce système avant son utilisation pour générer le code destiné au dispositif de 25 simulation est une solution souple et pratique pour utiliser une définition d'interface à la fois cohérente et à jour : - des spécificités de chaque système et de ses interfaces dans la génération du modèle logiciel ; - des besoins de représentation et de structuration de cette interface 30 pour la génération du modèle logiciel. Les modélisations de la définition de l'interface des modèles logiciels s'appliquent aux différents types de signaux de l'interface du système. Elles permettent la description complète des instructions de génération de la définition de l'interface utile au modèle logiciel (comprenant des données transformées) sur la base d'une définition d'interface transformée du système et produite dans des formats de représentation logicielle utiles et suffisants à la génération du modèle logiciel. Les modélisations d'interface des modèles logiciels contiennent également l'ensemble des informations nécessaire et suffisantes permettant la génération de la totalité de la définition de l'interface utile au du modèle logiciel que ce soit dans son contenu et dans sa forme. En conséquence les modélisations d'interface des modèles logiciels permettent de configurer la production de la définition de l'interface utile au modèle logiciel, en deux étapes décritent ci-dessous, avec la description des liens qui permettront de valoriser automatiquement les éléments construits à l'étape 2 à partir des éléments construits à l'étape 1: I. Etape 1 : Génération des informations d'interface utiles au modèle logiciel (ou données transformées) réalisée par applications successives des directives des différentes modélisations de l'interface du modèle logiciel appliquées à la définition de l'interface du système. Ces transformations concernent par exemple : la correction et la transformation des descriptifs des signaux d'interface ; la création d'informations additionnelles sur des signaux d'interface en déduction ou non d'autres d'informations, conditionelles ou non, des signaux d'interface ou de caractéristiques plus générale du système ou du modèle logiciel. Il. Etape 2 : Création du format de sauvegarde, sur un support dédié, des informations d'interface utiles pour le modèle logiciel (sous forme d'une structure de données transformées) par prises en compte successives des descriptions et directives contenues dans les différentes modélisations du format de sauvegarde de l'interface utile au modèle logiciel. Le support de sauvegarde prendra par exemple la forme d'une structure d'un gestionnaire de base de données ou d'une version reconstruite du fichier de définition de l'interface du système. La valorisation des données utiles de l'interface pour le modèle logiciel 5 dans leur format de sauvegarde respectifs se fait automatiquement par exemple par le biais des traitements suivants récupération des liens permettant les associations directes et automatisables entre les informations utiles des signaux d'interfaces pour la génération du modèle logiciel, qu'elles soient 10 des informations corrigées, transformées ou créées, et leur représentation sur le support de sauvegarde de l'interface du modèle ; - sauvegarde des informations utiles des signaux d'interfaces pour la génération du modèle logiciel sur leurs modes de représentation 15 respectifs sur le support de sauvegarde de l'interface du modèle. Le principe de plusieurs configurations de modélisations d'interfaces applicables à un système peut par exemple se baser sur le principe de configurations génériques ou spécifiques. Une modélisation pour un type de calculateur permet par exemple de définir des caractéristiques communes à un 20 type de calculateur, une modélisation de ce même type de calculateur pour un type avion en particulier permet de rajouter des spécificités pour ce calculateur propres à un type avion. Selon un mode de réalisation envisageable, l'exécution du composant comprend les étapes suivantes : 25 - recherche d'une définition d'interface à transformer dans le fichier de définition ; - transformation de la définition d'interface à transformer; - sauvegarde de la définition d'interface transformée dans un support physique de sauvegarde dédié. 30 Plus précisément l'exécution du composant peut comprendre les étapes suivantes : - recherche du ou des fichiers de définition d'interface du système (ex : fichier ICD) en traitement ; recherche dans les fichiers de configuration décrivant les modélisations des données d'interfaces applicables aux différents systèmes celles applicables au système pour le modèle logiciel en génération - application des directives des différentes modélisations pour la construction du support de mémorisation de l'interface transformée ; - application des directives des différentes modélisations au(x) fichier(s) d'interface du système pour génération de l'interface transformée utile à la génération du modèle logiciel ; - sauvegarde des informations de l'interface transformée utile à la génération du modèle logiciel sur le support de mémorisation construit conformément aux directives des modélisations. Le fichier définit par exemple un type de signal appliqué sur ladite interface et/ou une plage de valeurs d'un signal appliqué sur ladite interface. Cette interface peut recevoir un signal d'entrée destiné au système ou émettre un signal de sortie généré par le système. Le système est par exemple un calculateur pour aéronef. L'invention s'applique toutefois à d'autres systèmes. L'invention propose également un dispositif de génération d'un modèle logiciel, comprenant : - des moyens d'exécution d'un composant de transformation des données contenues dans au moins un fichier de définition d'au moins une interface d'un système ; et - des moyens de génération d'un modèle logiciel du système sur la base des données transformées et d'une modélisation du fonctionnement du système. Autrement dit, l'invention propose un dispositif de génération d'un modèle logiciel, comprenant : des moyens d'exécution d'un composant de génération de l'interface de définition utile à la génération de ce modèle logiciel sur la base de fichier(s) de définition d'au moins une interface d'un système ; et des moyens de génération d'un modèle logiciel du système sur la base de l'interface de définition utile à la génération de ce modèle et d'une modélisation du fonctionnement du système. L'invention propose en outre un procédé de simulation du fonctionnement d'un système, caractérisé en ce qu'il comprend une étape de génération d'un signal physique de sortie en fonction d'un signal physique d'entrée au moyen du modèle logiciel généré par un procédé de génération comme proposé ci-dessus. La simulation est plus fiable du fait qu'elle est basée sur un modèle dont la cohérence et la facilité de mise à jour et d'adaptation sont améliorées par un procédé de configuration adaptable spécifiquement à chaque système et modèle logiciel. Ce procédé permet de garantir en entrée au processus de génération du modèle logiciel la complétude et l'exactitude des données d'interface utiles. De même, l'invention propose un dispositif de simulation du 15 fonctionnement d'un système, caractérisé en ce qu'il comprend des moyens de génération d'un signal physique de sortie en fonction d'un signal physique d'entrée au moyen du modèle logiciel généré par un procédé de génération comme proposé ci-dessus. D'autres caractéristiques et avantages de l'invention apparaîtront à la 20 lumière de la description qui suit, fait en référence aux dessins annexés dans lesquels : - la figure 1 représente schématiquement un exemple d'éléments traités dans le cadre de l'invention ; - la figure 2 représente un système informatique utilisé pour générer 25 un modèle logiciel ; - la figure 3 représente les étapes principales d'un processus de génération d'un modèle logiciel conforme aux enseignements de l'invention ; - la figure 4 représente l'utilisation du modèle logiciel généré dans un système de simulation. 30 Un fichier de définition d'interface ICD définit les signaux d'entrée El, E0 et les signaux de sortie Si, S2 d'un dispositif dont on souhaite simuler le fonctionnement, par exemple un calculateur embarqué pour aéronef. Le fichier de définition d'interface définit notamment, pour chaque entrée et chaque sortie du dispositif à simuler, l'association entre un signal "avion" (signal disponible dans l'aéronef, par exemple sur un réseau avionique) et l'entrée ou la sortie concernée du dispositif. Cette information d'association est parfois dénommée "clé de jointure". Le fichier de définition d'interface contient également la gamme de valeurs envisageables pour chacun des signaux d'entrée et sortie. Un tel fichier de définition d'interface est édité lors des principales étapes du développement du dispositif concerné mais ne peut en pratique être revu en permanence malgré les changements, éventuellement continus, réalisés au cours de développement et les éventuelles erreurs détectées à cette occasion. On va décrire à présent un exemple de génération d'un modèle logiciel utilisant ce fichier de définition d'interface ICD au moyen d'un système informatique représenté en figure 2, qui comprend d'une part une unité centrale (ou CPU) 2 et un dispositif de mémorisation, ici un disque dur 4. Le fichier de définition d'interface ICD est reçu (par exemple à travers un réseau local non représenté) par l'unité centrale 2 et mémorisé sur le disque dur 4. On procède alors à une étape d'acquisition du fichier ICD (étape E2 en figure 3) au cours de laquelle on recherche, dans le fichier ICD, les lignes comportant des données de définitions d'interface utiles, telles que définies dans la configuration de la modélisation de l'interface, à modifier comme expliqué ci-dessous. Lorsque les lignes recherchées sont trouvées, on procède à la transformation des définitions requises, en corrigeant et en transformant les données concernées et en créant les données additionnelles sur chacun des signaux d'interface à partir des valeurs des données lues afin que la définition résultant de ces données modifiées corresponde à la définition de l'interface telle qu'attendue par le processus de génération du modèle logiciel. En prenant l'exemple illustratif présenté en figure 1, la définition d'interface transformée ICD bis construite à partir des données du fichier ICD permettent de remplacer le signal d'entrée E0 par le signal d'entrée E2, d'ajouter un signal d'entrée E3 et de corriger le signal de sortie S2 en signal de sortie S3 (étape E4). Une fois les modifications effectuées, l'ensemble des informations 5 sur les signaux avions ainsi obtenues sont sauvegardés à l'étape E6, par exemple également sur le disque dur 4. La structure de données contenant la définition d'interface transformée est désignée ICD bis sur les figures. Les étapes E2 à E6 sont par exemple réalisées au moyen de l'exécution d'un logiciel CONFIG par l'unité centrale 2. L'exécution de ces 10 étapes permet ainsi de transformer le fichier de définition d'interface en une structure de données avant utilisation de cette structure par un outil de génération automatique de codes comme décrit ci-après. L'unité centrale 2 procède alors, par exemple sur commande d'un utilisateur, à l'exécution d'un logiciel de génération automatique de codes 15 (GENER en figure 2), mémorisé par exemple sur le disque dur 4 (étape E8). Une telle étape de génération automatique de codes produit, à partir d'un modèle générique MG du dispositif à simuler concerné, par exemple sous la forme d'une modélisation de type Esterel SCADE, et de la structure contenant les données transformées ICD bis, un code source ou logiciel ML 20 permettant, lors de son exécution par le processeur d'un dispositif de simulation comme décrit ci-après, simuler le fonctionnement du dispositif concerné. Le code ainsi généré est par conséquent désigné "modèle logicier On remarque que ce modèle logiciel ML peut éventuellement faire appel à des fonctions mémorisées dans des bibliothèques formant un fichier 25 distinct du fichier mémorisant le modèle logiciel lui-même. En variante, de telles fonctions peuvent naturellement être comprises dans le fichier mémorisant le modèle logiciel. Le modèle logiciel ainsi généré peut alors être chargé à l'étape E10 dans un dispositif de simulation 8, comme représenté en figure 4. Un tel 30 chargement peut être réalisé par l'unité centrale 2, par exemple à travers le réseau local déjà mentionné. En variante, le modèle logiciel peut être chargé dans le dispositif de simulation 8 par d'autres moyens, par exemple en utilisant un support de données amovible. Le modèle logiciel est alors exécuté à l'étape E12 par un processeur du dispositif de simulation 8 de telle sorte que le dispositif de simulation 8 reçoit 5 et traite des signaux d'entrée et génère des signaux de sortie comme le ferait le dispositif simulé (ici un calculateur) en fonctionnement réel. Dans l'exemple illustratif déjà mentionné en référence à la figure 1, un premier dispositif à tester 6 (TESTI en figure 4) émet les signaux E1, E, E3 à destination du dispositif de simulation 8. 10 Le dispositif de simulation 8 reçoit ainsi en entrée ces signaux et effectue des traitements (grâce au modèle logiciel ML exécuté) simulant le fonctionnement normal d'un calculateur. Le dispositif de simulation 8 émet ainsi en sortie un premier signal Si, transmis au premier dispositif à tester 6 et un second signal S3 transmis à 15 un second dispositif à tester 10 (TEST2 en figure 4). Le mode de réalisation qui vient d'être décrit ne représente qu'un exemple possible de mise en oeuvre de l'invention qui ne s'y limite pas. REVENDICATIONS1. Procédé de génération d'un modèle logiciel, caractérisé en ce qu'il comprend les étapes suivantes : - exécution (E2; E4; E6) d'un composant (CONFIG) de transformation de données contenues dans au moins un fichier (ICD) de définition d'au moins une interface d'un système ; - génération (E8) d'un modèle logiciel (ML) du système sur la base des données transformées (ICD bis) et d'une modélisation (MG) du 10 fonctionnement du système. 2. Procédé de génération selon la revendication 1, caractérisé en ce que le fichier définit un type de signal appliqué sur ladite interface. 15 3. Procédé de génération selon les revendications 1 ou 2, caractérisé en ce que le fichier définit une plage de valeurs d'un signal appliqué sur ladite interface. 4. Procédé de génération selon l'une des revendications 1 à 3, 20 caractérisé en ce que ladite interface est apte à recevoir un signal d'entrée (El) destiné au système. 5. Procédé de génération selon l'une des revendications 1 à 3, caractérisé en ce que ladite interface est apte à émettre un signal de sortie (Si) 25 généré par le système. 6. Procédé de génération selon l'une des revendications 1 à 5, caractérisé en ce que l'exécution du composant comprend les étapes suivantes : 30 - recherche (E2) d'une définition d'interface à transformer dans le fichier de définition ;- transformation (E4) de la définition d'interface à transformer; - sauvegarde (E6) de la définition d'interface transformée dans un support physique de sauvegarde dédié. 7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que le système est un calculateur pour aéronef. 8. Dispositif de génération d'un modèle logiciel, comprenant : - des moyens d'exécution d'un composant de transformation des 10 données contenues dans au moins un fichier de définition d'au moins une interface d'un système ; et - des moyens de génération d'un modèle logiciel du système sur la base des données transformées et d'une modélisation du fonctionnement du système. 15 9. Procédé de simulation du fonctionnement d'un système, caractérisé en ce qu'il comprend une étape (E12) de génération d'un signal physique de sortie en fonction d'un signal physique d'entrée au moyen du modèle logiciel généré par un procédé selon l'une des revendications 1 à 7. 10. Dispositif (8) de simulation du fonctionnement d'un système, caractérisé en ce qu'il comprend des moyens de génération d'un signal physique de sortie en fonction d'un signal physique d'entrée au moyen du modèle logiciel généré par un procédé selon l'une des revendications 1 à 7. 20 25