FR3115902A1 - Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel - Google Patents

Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel Download PDF

Info

Publication number
FR3115902A1
FR3115902A1 FR2011288A FR2011288A FR3115902A1 FR 3115902 A1 FR3115902 A1 FR 3115902A1 FR 2011288 A FR2011288 A FR 2011288A FR 2011288 A FR2011288 A FR 2011288A FR 3115902 A1 FR3115902 A1 FR 3115902A1
Authority
FR
France
Prior art keywords
software
interfaces
names
version
modification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2011288A
Other languages
English (en)
Inventor
Roman MORYC
Nicolas Romea
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vitesco Technologies
Original Assignee
Vitesco Technologies
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Vitesco Technologies filed Critical Vitesco Technologies
Priority to FR2011288A priority Critical patent/FR3115902A1/fr
Publication of FR3115902A1 publication Critical patent/FR3115902A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel, comprenant les étapes suivantes :- compilation des fichiers sources pour produire des fichiers objets,- modification, dans les fichiers objets, des noms des objets logiciels, pour leur adjoindre un numéro de version,- édition des liens. Figure d’abrégé : Figure 2

Description

Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel
L’invention concerne le domaine de la production d’applicatif logiciel et plus particulièrement un procédé de vérification de la cohérence des interfaces lors d’une telle production.
Il est connu pour produire un applicatif logiciel d’utiliser un langage de programmation, tel C ou C++. A l’aide de ce langage, l’applicatif logiciel est écrit dans un ou plusieurs fichiers sources, intelligibles pour un être humain. Au moyen d’un convertisseur nommé compilateur, spécifique du langage de programmation, chaque tel fichier source est converti en un fichier objet, apte à être exécuté par un processeur. Ensuite une édition de liens est réalisée au moyen d’un éditeur de lien ou « linker » qui permet de relier les différents fichiers objets en un unique applicatif logiciel, ou fichier exécutable.
Selon l’invention, il est ajouté une étape dans laquelle chaque objet logiciel, que ce soit une donnée ou une routine (fonction ou procédure) est documenté en lui adjoignant une version. Cette version est ajoutée dans la distribution logicielle en remplaçant le nom de chaque objet logiciel « X » par un nom et une version accolée.
L’invention a pour objet un procédé de vérification de compatibilité des interfaces d’un applicatif logiciel, comprenant les étapes suivantes :
- compilation des fichiers sources pour produire des fichiers objets,
- modification, dans les fichiers objets, des noms des objets logiciels, pour leur adjoindre un numéro de version,
- édition des liens.
Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison, sont :
- la modification des noms des objets logiciels, remplace un nom « X » par le même nom accolé d’un symbole de version « _V » et d’un numéro « n » de version, soit « X_Vn »,
- la modification des noms des objets logiciels est réalisée au moyen d’un outil de patch des fichiers objets, tel OBJCOPY,
- la modification des noms des objets logiciels est réalisée au moyen d’un fichier de commande.
L’invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d’exemple, et en référence aux figures en annexe dans lesquelles :
illustre un procédé de production d’un applicatif logiciel selon l’art antérieur,
illustre un procédé de production d’un applicatif logiciel modifié par l’invention,
illustre un problème d’interface non détecté selon l’art antérieur,
illustre la détection du problème d’interface par l’invention,
En référence à la , un logiciel applicatif se construit en connectant des modules logiciels entre eux. Un applicatif logiciel est compris dans n fichiers sources, ici numéroté de 1..n. La compilation produit autant de fichiers objets. Les modules d'un logiciel applicatif sont très souvent des modules génériques, développés dans I’optique de favoriser leur réutilisation sur de nombreux projets afin de limiter les coûts de développement des projets tout en garantissant un meilleur niveau de qualité et de robustesse.
Chaque module possède des interfaces d'entrée (interfaces produites par d'autres modules) et des interfaces de sorties (interfaces produites par ce module pour être utilisée par d'autres modules) lui permettant de communiquer avec les autres modules.
Deux méthodes de communication existent :
- Méthode de type < control-flow )): un module appelle une fonction d'un autre module. Une interface de type < control-flow >> est implémentée en définissant une fonction pouvant être appelée depuis plusieurs modules,
- Méthode de type < data-flow> : un module lit une donnée écrite par un autre module. Une interface de type < data-flow > est implémentée en définissant une donnée en mémoire globale partagée pouvant être lue et écrite par plusieurs modules.
Les développements de modules génériques sont effectués au sein de plates-formes logicielles définissant les interfaces standards ce qui facilite l'intégration des modules. Les interfaces sont généralement définies de manière centralisée, dans une base de données, telle qu’illustrée à la ou 4, dans laquelle chaque interface est décrite. Par exemple, une donnée possède un nom, un type et une unité.
Selon une caractéristique de l’invention, les interfaces sont versionnées afin de gérer les changements : à chaque modification d’une interface, sa version est modifiée.
A titre d’exemple, un objet tension batterie est présenté. Un tel objet logiciel, nommé VB est une sortie du module qui gère la tension batterie. Il constitue alors une entrée pour tous les modules qui lisent et/ou utilisent la tension batterie.
Il convient que l’interface d’un tel objet VB soit clairement définie de la même manière pour l’objet qui produit cette valeur et la met à disposition et pour tous les utilisateurs.
On suppose qu’une première version de l’interface de l’objet VB est de type linéaire 8-bit non-signé [0..25,8V] en Volt. Suite à une évolution, une deuxième version de l’interface de l’objet VB est définie de type linéaire 8-bit non-signé [0...28,8V] en Volt. Il peut être vu qu’une différence d’interface peut ici avoir des conséquences importantes. En effet si la valeur 0 correspond dans les deux versions à une valeur 0V, la valeur FF correspond à 25,8V pour la version 1 et à 28,8V pour la version 2, avec des variations plus ou moins sensibles pour toutes les autres valeurs. Aussi, il est de première importance qu’un module utilisateur de l’objet tension batterie VB utilise bien la version d’interface à laquelle il s’attend.
Selon l’art antérieur illustré à la , tous les objets tension batterie VB, portent le même nom VB et ne peuvent être distingués. Aussi, tel qu’illustré à la , qu’il s’agisse d’un VB de version 1 ou de version 2, l’éditeur de liens voit un seul et même nom VB dans les deux cas. Il n’est pas en mesure de détecter une incohérence d’interface.
Aussi, selon une étape importante de l’invention, plus particulièrement visible à la , il est ajouté une étape de documentation, en introduisant les numéros de version dans les fichiers objets. Pour cela, chaque fichier objet est modifié ou « patché ». Chaque fichier objet est remplacé par un fichier objet « patché » dans lequel tous les noms de tous les objets logiciels sont modifiés. Cette modification permet d’introduire une version associée à chaque objet logiciel. Tous les noms étant modifiés, la modification s’applique tant à un nom utilisé comme producteur que au même nom utilisé comme consommateur. Ceci permet alors de réaliser une vérification des versions des interfaces lors de l’édition de lien ultérieure.
C’est l’éditeur de liens, lors de sa tâche d’assemblage qui comporte une vérification de la cohérence des noms des objets logiciels qui réalise la vérification de cohérence des interfaces.
Ainsi, tel qu’illustré à la , l’objet tension batterie VB selon la version 1 est patché en VB_V1, tandis que l’objet tension batterie VB selon la version 2 est patché en VB_V2. Aussi, il apparaît deux noms différents, puisque correspondant à deux versions d’interfaces, et l’éditeur de liens est en mesure de détecter un problème de différence d’interface.
Aussi, le procédé de vérification de compatibilité des interfaces d’un applicatif logiciel, comprend les étapes suivantes :
- compilation des fichiers sources pour produire des fichiers objets,
- modification, dans les fichiers objets, des noms des objets logiciels, pour leur adjoindre un numéro de version,
- édition des liens.
Du fait du changement de nom, qui permet de renseigner la version de l’interface, de l’information est introduite dans les fichiers objets. Cette information supplémentaire permet à l’éditeur de liens de vérifier que deux objets logiciels liés présentent bien les bonnes interfaces pour que ce lien soit possible.
Selon une autre caractéristique, la modification des noms des objets logiciels, remplace un nom « X » par le même nom accolé d’un symbole de version. Le symbole de version peut être quelconque et par exemple « _V ». Ensuite, un numéro « n » de version peut encore être accolé. Le choix, et l’ordre des différents symboles retenus peuvent être variables. Selon un mode de réalisation, un objet « X » est renommé « X_Vn », avec n le numéro de version.
Selon une autre caractéristique, la modification des noms des objets logiciels ou « patch » est réalisée au moyen d’un outil de patch des fichiers objets. Un tel outil de patch existe généralement dans une distribution de développement logiciel.
Ce type d’outil est habituellement utilisé pour patcher des symboles dans un code objet dont le code source n’est pas disponible afin de résoudre des problèmes de conflit de nommage des données. Ainsi, par exemple, lorsque les codes objets de deux modules utilisent un même nom pour des données différentes, il faut alors pouvoir renommer le symbole de la donnée dans l’un au moins des modules afin d’éviter un conflit de nommage lors de l’édition de liens. Un tel outil est nommé OBJCOPY dans une distribution C.
L’outil de patch peut être utilisé à la main, objet logiciel par objet logiciel. Cependant pour un logiciel d’une certaine taille le procédé devient vite fastidieux et cause d’erreur. Aussi selon une autre caractéristique, un fichier de commande ou script permettant d’automatiser cette tâche est employé. Aussi, la modification des noms des objets logiciels est avantageusement réalisée au moyen d’un fichier de commande.
L’invention a été illustrée et décrite en détail dans les dessins et la description précédente. Celle-ci doit être considérée comme illustrative et donnée à titre d’exemple et non comme limitant l’invention à cette seule description. De nombreuses variantes de réalisation sont possibles.

Claims (4)

  1. Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel, caractérisé en ce qu’il comprend les étapes suivantes :
    - compilation des fichiers sources pour produire des fichiers objets,
    - modification, dans les fichiers objets, des noms des objets logiciels, pour leur adjoindre un numéro de version,
    - édition des liens.
  2. Procédé selon la revendication 1, où la modification des noms des objets logiciels, remplace un nom « X » par le même nom accolé d’un symbole de version « _V » et d’un numéro « n » de version, soit « X_Vn ».
  3. Procédé selon l’une quelconque des revendications 1 à 2, où la modification des noms des objets logiciels est réalisée au moyen d’un outil de patch des fichiers objets, tel OBJCOPY.
  4. Procédé selon l’une quelconque des revendications 1 à 2, où la modification des noms des objets logiciels est réalisée au moyen d’un fichier de commande.
FR2011288A 2020-11-04 2020-11-04 Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel Pending FR3115902A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR2011288A FR3115902A1 (fr) 2020-11-04 2020-11-04 Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2011288A FR3115902A1 (fr) 2020-11-04 2020-11-04 Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel
FR2011288 2020-11-04

Publications (1)

Publication Number Publication Date
FR3115902A1 true FR3115902A1 (fr) 2022-05-06

Family

ID=74860015

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2011288A Pending FR3115902A1 (fr) 2020-11-04 2020-11-04 Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel

Country Status (1)

Country Link
FR (1) FR3115902A1 (fr)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0833246A2 (fr) * 1996-09-27 1998-04-01 Texas Instruments Incorporated Méthode pour générer un programme d'ordinateur

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0833246A2 (fr) * 1996-09-27 1998-04-01 Texas Instruments Incorporated Méthode pour générer un programme d'ordinateur

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LEE MATTHEW: "Solving C Symbol Collisions", 21 September 2017 (2017-09-21), pages 1 - 3, XP055829194, Retrieved from the Internet <URL:https://www.ivolve.com/solving-c-symbol-collisions/> [retrieved on 20210730] *
PESCH ROLAND H ET AL: "The gnu Binary Utilities Version 2.27", August 2016 (2016-08-01), pages 1 - 93, XP055829089, Retrieved from the Internet <URL:https://homepages.uni-regensburg.de/~brf09510/EDV/kurs_info/brf09510/kurs_info/pdf/binutils.pdf> [retrieved on 20210730] *
TAYLOR IAN LANCE: "Combining Versions", 18 July 2008 (2008-07-18), pages 1, XP055829107, Retrieved from the Internet <URL:https://www.airs.com/blog/archives/220> [retrieved on 20210730] *

Similar Documents

Publication Publication Date Title
FR3103927A1 (fr) Procédé et appareil pour exécuter un applet
CA2785402C (fr) Systeme de portage d&#39;application logicielle
EP1387261A1 (fr) Logiciel de generation de code d&#39;application informatique et langage de description de logiciel
CA2970551A1 (fr) Procede d&#39;ajustement de la precision d&#39;un programme d&#39;ordinateur manipulant au moins un nombre a virgule
FR2951295A1 (fr) Procede pour le remplacement d&#39;un contenu visuel prenant en consideration des exigences de cout, droit d&#39;auteur et confidentialite
EP4535164A1 (fr) Procede et dispositif de generation d&#39;une recommandation de correction d&#39;un fichier de configuration d&#39;un environnement informatique
WO2015091511A1 (fr) Authentification de code binaire
WO2004081694A2 (fr) Procede pour l&#39;automatisation de la mise en oeuvre et la mise a jour d&#39;un systeme d&#39;information
FR2643478A1 (fr) Carte a circuit integre
FR3115902A1 (fr) Procédé de vérification de compatibilité des interfaces d’un applicatif logiciel
US8423849B2 (en) Device test data reuse for device simulation
EP3195113B1 (fr) Procédé de vérification de traçabilité de premières instructions en un langage de programmation procédurale générées à partir de secondes instructions en un langage de modélisation
KR102324259B1 (ko) 복수의 플랫폼을 단일 소스코드로 개발 가능한 플랫폼 통합 sdk 제공 방법 및 장치
BE1023607B1 (fr) Methode et systeme de collecte de documents numeriques a partir d’une pluralite de source
FR2826761A1 (fr) Procede d&#39;analyse d&#39;un document represente dans un langage de balisage
FR2864285A1 (fr) Procede de remontee automatique des exigences de modeles uml et de leur mise a jour
CN116560957A (zh) 一种受损文档修复结果的测试方法、系统、装置及介质
EP2225641A1 (fr) Procede de realisation d&#39;un outil universel perenne de developpement de tests d&#39;equipements et outil de mise en oeuvre
EP2182435A1 (fr) Procédé d&#39;implémentation d&#39;une machine à états finis via l&#39;utilisation d&#39;annotations Java
WO2019180376A1 (fr) Procédé et système pour créer une image d&#39;une application
Pandit et al. DevSecOps in Practice with VMware Tanzu: Build, run, and manage secure multi-cloud apps at scale on Kubernetes with the Tanzu portfolio
CN109408363B (zh) 基于代数规约的Web服务单线测试用例生成方法
FR2990281A1 (fr) Titre non renseigne.
FR2862402A1 (fr) Procece et systeme de fabrication de gestion d&#39;informations en fonction d&#39;images client
EP2171577A1 (fr) Systeme et procede de generation automatique d&#39;une application logicielle

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220506

PLFP Fee payment

Year of fee payment: 3

CA Change of address

Effective date: 20221212

PLFP Fee payment

Year of fee payment: 4