FR2967517A1 - Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive - Google Patents
Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive Download PDFInfo
- Publication number
- FR2967517A1 FR2967517A1 FR1004416A FR1004416A FR2967517A1 FR 2967517 A1 FR2967517 A1 FR 2967517A1 FR 1004416 A FR1004416 A FR 1004416A FR 1004416 A FR1004416 A FR 1004416A FR 2967517 A1 FR2967517 A1 FR 2967517A1
- Authority
- FR
- France
- Prior art keywords
- software
- graphic
- logic
- functions
- workshop
- 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.)
- Granted
Links
- 230000006870 function Effects 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 title claims abstract description 6
- 238000011161 development Methods 0.000 claims description 17
- 230000008878 coupling Effects 0.000 claims description 10
- 238000010168 coupling process Methods 0.000 claims description 10
- 238000005859 coupling reaction Methods 0.000 claims description 10
- 238000012800 visualization Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 description 6
- 230000002452 interceptive effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
Le domaine général de l'invention est celui des bancs de développement d'application logicielle aéronautique comprenant au moins un atelier logiciel " graphique " qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions graphiques ou " widget " au niveau d'un équipement de visualisation et un atelier logiciel " traitement de logique " qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions logiques permettant de modifier le contenu des fonctions graphiques en fonction d'événements entrants au niveau du même équipement de visualisation. Le banc selon l'invention comporte une interface fonctionnelle comportant des " plugs " fonctionnels, c'est-à-dire des données d'entrée ou de sortie, à chaque " plug " fonctionnel est associé d'une part, un paramètre d'une fonction graphique et d'autre part un paramètre d'une fonction logique.
Description
Banc de développement d'application logicielle aéronautique comportant une interface graphique interactive Le domaine de l'invention est celui des bancs de développement d'application logicielle aéronautique comportant une interface graphique interactive. Les cockpits d'aéronefs modernes comportent un ensemble de dispositifs de visualisation interactifs qui permettent de visualiser, de commander et de modifier l'ensemble des paramètres nécessaires au pilotage, à la navigation et plus généralement à l'accomplissement de la mission. Le nombre de paramètres à gérer est considérable et il existe une multitude de représentations graphiques possibles de ces paramètres.
L'application logicielle aéronautique est réalisé sur un banc de développement informatique dans un environnement informatique de type « PC ». Le banc de développement informatique comprend deux « ateliers logiciels» principaux. On désigne par atelier de génie logiciel ou « AGL » un ensemble de programmes informatiques permettant eux-mêmes de produire des programmes informatiques de manière industrielle. Le banc de développement comprend deux ateliers logiciels qui sont : - Atelier logiciel « graphique » qui traite des outils logiciels servant à créer, simuler ou intégrer des fonctions graphiques au niveau d'un équipement de visualisation ; Atelier logiciel « traitement de logique » qui traite des outils logiciels servant à créer, simuler ou intégrer des fonctions logiques au niveau d'un équipement de visualisation. Le développement d'une application logicielle aéronautique avec interface graphique interactive se réalise en deux étapes : - Création de l'aspect « statique » d'une « page » graphique. On entend par page graphique un écran d'affichage ou une partie d'écran d'affichage. L'atelier logiciel « graphique » permet de placer des « widgets » sur cette page et de définir ses propriétés d'initialisation. On entend par widget une unité logicielle associée à une représentation graphique et un comportement permettant à l'équipage soit de recevoir des informations, soit au moyen d'une interface homme-machine ou « IHM » de donner des instructions.
D'un point de vue logiciel, chaque widget propose des interfaces techniques de type « clic clown », « clic up », « change color »...permettant la production d'événements et la modification de ce widget ; Développement logiciel de la logique de traitement permettant de modifier le contenu de la page en fonction d'événements entrants. Cette logique de traitement est généralement réalisée en code manuel. Le développeur utilise les interfaces techniques du widget pour modifier l'apparence graphique de la page.
Les figures 1 et 2 illustrent le périmètre d'un banc de développement d'application logicielle aéronautique avec interface graphique interactive. Sur la figure 1, on a représenté le banc de développement fonctionnant sur micro-ordinateurs de type PC. Il est à noter que sur cette figure 1, les moyens matériels de type PC ont été représentés par deux PC autonomes et séparés. II s'agit bien entendu d'une représentation symbolique. Les moyens matériels peuvent être un même micro-ordinateur ou une pluralité de micro-ordinateurs. Il comporte un atelier logiciel graphique ou ALG et un atelier de traitement de logique ou ATL, ces deux ateliers générant du code exécutable ou CODEX. Dans un second temps, ce code exécutable est implanté dans un calculateur EU qui envoie les paramètres d'affichage des pages numériques P à un écran de visualisation D et reçoit des notifications d'événements des interfaces homme-machine de cet écran de visualisation D. Ce calculateur est interfacé avec l'ensemble du système avionique CDS et des interfaces homme-machine IHM représentées par une « souris » informatique sur la figure 2.
Lorsque le client final reçoit le système de visualisations, l'interface Homme-Machine fournie peut ne pas correspondre aux attentes soit parce que les spécifications initiales étaient imprécises ou erronées, soit parce qu'elles ont évolué en fonction des remarques et des retours d'expérience des utilisateurs. Le client modifie alors ses spécifications, ce qui implique un second développement des pages d'IHM. Or, toute évolution de la définition statique des pages graphiques a un impact sur le code.
En effet, chaque widget possède un identifiant. Pour modifier le paramètre d'un widget, le logiciel doit indiquer l'identifiant du widget et l'identifiant du paramètre modifié. Si l'identifiant du widget change dans la définition des pages d'IHM, on doit également modifier cet identifiant dans le code du logiciel qui dialogue avec l'IHM. De la même façon, si on souhaite changer le type du widget utilisé, la logique de traitement qui utilise ce widget doit utiliser d'autres interfaces qui sont celles du nouveau widget. Bien entendu, ces changements ont un impact sur le code de la logique de traitement.
Pour résumer, le code de la logique de traitement dépend donc fortement de l'interface technique de l'atelier logiciel « graphique ». Par conséquent, dans les systèmes actuels, il est nécessaire de modifier simultanément les pages graphiques et la logique de traitement. Cette façon de faire présente plusieurs défauts exposés ci-dessous : Multiplication du nombre de lignes de code modifiées, sources de régressions fonctionnelles et d'erreurs ; Impact sur l'architecture fonctionnelle. Le design initial n'était peut-être pas prévu pour respecter les nouvelles contraintes imposées dans les spécifications. L'impact sur l'architecture du système peut alors être important, ainsi que l'effort de développement logiciel pour modifier ce design ; Surcoûts importants. Chaque modification peut engendrer des coûts importants liés aux activités de certification de code qui sont fondamentales dans le domaine aéronautique.
Le banc selon l'invention permet de pallier à ces différents inconvénients. L'invention repose essentiellement sur deux principes techniques qui sont : Remplacer le code manuel de la logique de traitement par un atelier 30 logiciel générant du code automatique à partir d'une modélisation de cette logique ; Coupler l'atelier logiciel « graphique » avec l'atelier logiciel « traitement de logique » par un dialogue fonctionnel et non pas technique. Ce couplage est indépendant des interfaces techniques de 35 chaque atelier logiciel. Ce couplage est réalisé grâce à des « plugs » fonctionnels introduits aux frontières des deux ateliers logiciels pour leur permettre de dialoguer suivant un langage commun. Dans la suite de la description, le terme de « plug » désigne une donnée d'interface d'entrée ou de sortie.
Plus précisément, l'invention a pour objet un banc de développement d'application logicielle aéronautique comprenant au moins un, atelier logiciel « graphique » qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions graphiques ou « widget » au niveau d'un équipement de visualisation et un atelier logiciel « traitement de logique » qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions logiques permettant de modifier le contenu des fonctions graphiques en fonction d'événements entrants au niveau du même équipement de visualisation, caractérisé en ce que le banc comporte une interface fonctionnelle comportant des « plugs » fonctionnels, c'est-à-dire des données d'entrée ou de sortie, à chaque « plug » fonctionnel est associé d'une part, un paramètre d'une fonction graphique et d'autre part un paramètre d'une fonction logique. Avantageusement, le banc comporte également : des moyens informatiques permettant de créer le code graphique et le code logique ainsi que les différentes interfaces de programmation permettant de créer et de modifier les fonctions graphiques ; une interface de couplage comportant une structure de variables d'échange basée sur les noms des « plugs », ces variables étant manipulées à la fois par le code logique et par le code graphique.
L'invention sera mieux comprise et d'autres avantages 30 apparaîtront à la lecture de la description qui va suivre donnée à titre non limitatif et grâce aux figures annexées parmi lesquelles : La figure 1 représente le banc de développement d'application logicielle aéronautique avec interface graphique interactive selon l'art antérieur ; La figure 2 représente un système avionique comportant le code exécutable développé selon l'art antérieur ; La figure 3 représente l'ensemble du banc de développement d'application logicielle aéronautique selon l'invention ; La figure 4 représente les liaisons existant au sein du banc de développement d'application logicielle aéronautique selon l'invention.
Les figures 3 et 4 représentent l'ensemble du banc de développement d'application logicielle aéronautique selon l'invention. Il comporte un atelier logiciel « graphique » ou ALG et un atelier de « traitement de logique » ou ATL, ces deux ateliers générant du code exécutable ou CODEX sur les figures. Sur la figure 4, on a représenté le banc de développement fonctionnant sur micro-ordinateurs de type PC. II est à noter que sur cette figure 4, les moyens matériels de type PC ont été représentés par deux PC autonomes et séparés. Il s'agit bien entendu d'une représentation symbolique. Les moyens matériels peuvent être un même micro-ordinateur ou une pluralité de micro-ordinateurs. Le dialogue entre l'atelier logiciel « graphique » ou ALG et l'atelier de « traitement de logique » ou ATL est assurée au moyen d'une interface fonctionnelle ou « IF », la liaison entre les codes exécutables étant assurée au moyen d'une interface technique ou « IT ». L'interface fonctionnelle est définie en fonction des besoins utilisateurs et non plus en fonction des objets. Lorsqu'il définit son interface homme-machine ou IHM, le designer donne des noms « fonctionnels » aux paramètres de ses objets interactifs. Un nom fonctionnel est unique et correspond donc à un couple « identifiant de widget, identifiant de paramètre ». La dépendance technique disparaît au profit de cette interface fonctionnelle. Si la fonction du message reste la même, on peut alors changer de widget ou changer de paramètre, ceci n'a aucun impact sur le logiciel développé, qui ne reçoit que des messages fonctionnels. L'atelier logiciel « graphique » génère le code d'interface des widgets de chaque page affichée. Ce code est purement technique et permet de modifier les paramètres de chaque widget comme la palette de couleurs, la position, les labels utilisés...
L'atelier logiciel « graphique » positionne des « plugs » sur chaque paramètre de chaque widget. Un plug correspond à un nom unique. Ainsi, chaque événement fonctionnel peut être positionné sur n'importe quel widget. C'est son rôle fonctionnel qui importe, et non pas l'objet qui l'a produit. Les plugs positionnés sont utilisés par le générateur de code pour produire ces événements fonctionnels, en entrée ou en sortie du code graphique en gérant la correspondance avec l'interface technique. L'atelier logiciel « traitement de la logique » permet de modéliser les algorithmes des pages d'interface homme-machine au travers de diagrammes d'états/transitions. Les événements d'entrée de l'atelier logiciel « traitement de la logique » portent le même nom que ceux définis dans l'atelier logiciel graphique. Le couplage entre l'atelier logiciel « graphique » et l'atelier logiciel «traitement de la logique » permet donc de définir des lois d'animation logiques pour l'évolution graphique de la spécification en réagissant aux différents évènements. L'interface fonctionnelle ou de couplage met en place une structure de variables d'échange basée sur les noms des plugs. Ces variables sont manipulées à la fois par le code logique et par le code graphique qui met à jour les attributs des différents widgets. Pour mettre en place ce couplage, la règle suivante doit être respectée : les valeurs d'entrée du projet « logique » et respectivement les valeurs de sortie doivent avoir les mêmes noms que les « outputs » de la spécification graphique de l'atelier logiciel « graphique » et respectivement les inputs. II est alors possible de générer l'interface de couplage Cette interface de couplage comporte notamment deux structures qui sont : ensemble de variables portant les noms des outputs de l'atelier logiciel « graphique » ; ensemble de variables portant les noms des inputs de l'atelier logiciel « graphique ». Un code exécutable est ensuite généré, cet exécutable contenant : - Le code graphique ; Le code logique ; Les différentes interfaces de programmation d'application ou « API » , Les variables d'échange de l'interface de couplage ; Un point d'entrée pour l'utilisateur.
Un exemple simple permet de mieux faire comprendre le fonctionnement de l'invention. On souhaite spécifier un bouton de commande portant l'identifiant « 28 » de façon que, lorsque l'on « clique » dessus, l'action intitulée 10 « REQUEST RUNWAY LENGTH » soit traitée. Dans les bancs selon l'art antérieur, on doit : Côté atelier logiciel graphique, spécifier un bouton avec un identifiant «28» ; Côté atelier logiciel « Traitement de la logique », traiter l'action 15 « REQUEST_RUNWAY LENGTH ». Ceci se traduit par la spécification et l'implémentation de l'événement « CLIC » du bouton « 28 » auquel on associe un traitement. Les problèmes soulevés sont les suivants: incohérence des interfaces ; 20 dépendance totale graphique/logique ; double définition du bouton ; maintenance plus difficile ; Evolutions de la définition complexes. Dans les bancs selon l'invention, on doit simplement : 25 Côté atelier logiciel graphique, spécifier un bouton, peu importe l'identifiant puis associer au bouton un événement nommé « REQUEST_RUNWAY LENGTH » qui correspond à l'action « CLIC » du bouton ; Côté atelier logiciel traitement de la logique, importer l'événement 30 REQUEST RUNWAY LENGTH et l'associer au traitement. Les problèmes cités précédemment n'existent plus puisque : il existe une définition unique du bouton côté graphique et la cohérence des interfaces est assurée dès la spécification ; La maintenance et l'évolution sont simplifiées grâce à 35 l'indépendance graphique/logique.
Claims (2)
- REVENDICATIONS1. Procédé de mise en oeuvre d'un logiciel exécutable dans un dispositif de visualisation, ledit procédé comportant : une première étape de réalisation dudit logiciel par un banc de développement d'application logicielle aéronautique comprenant au moins un atelier logiciel « graphique » qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions graphiques ou « widget » au niveau dudit équipement de visualisation et un atelier logiciel « traitement de logique » qui comporte des moyens informatiques traitant des outils logiciels servant à créer, simuler ou intégrer des fonctions logiques permettant de modifier le contenu des fonctions graphiques en fonction d'événements entrants au niveau du même équipement de visualisation, une seconde étape d'implantation dudit logiciel dans ledit dispositif de visualisation, caractérisé en ce que le banc de développement d'application logicielle comporte une interface fonctionnelle permettant le dialogue entre l'atelier logiciel « graphique » et l'atelier logiciel « traitement de logique », ladite interface fonctionnelle comportant des « plugs » fonctionnels, c'est-à-dire des données d'entrée ou de sortie, à chaque « plug » fonctionnel est associé d'une part, un paramètre d'une fonction graphique et d'autre part un paramètre d'une fonction logique.
- 2. Procédé de mise en ceuvre d'un logiciel exécutable dans un dispositif de visualisation selon la revendication 1, caractérisé en ce que le 25 banc de développement d'application logicielle comporte : des moyens informatiques permettant de créer le code graphique et le code logique ainsi que les différentes interfaces de programmation permettant de créer et de modifier les fonctions graphiques ; 30 - une interface de couplage comportant une structure de variables d'échange basée sur les noms des « plugs », ces variables étant manipulées à la fois par le code logique et par le code graphique.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1004416A FR2967517B1 (fr) | 2010-11-12 | 2010-11-12 | Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1004416A FR2967517B1 (fr) | 2010-11-12 | 2010-11-12 | Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2967517A1 true FR2967517A1 (fr) | 2012-05-18 |
FR2967517B1 FR2967517B1 (fr) | 2023-10-27 |
Family
ID=44119481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1004416A Active FR2967517B1 (fr) | 2010-11-12 | 2010-11-12 | Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2967517B1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069251A (zh) * | 2019-01-11 | 2019-07-30 | 北京京运通科技股份有限公司 | 基于风电集控系统的软件快速再开发方法 |
-
2010
- 2010-11-12 FR FR1004416A patent/FR2967517B1/fr active Active
Non-Patent Citations (2)
Title |
---|
BARON M: "Développement de clients riches : Plateforme Eclipse RCP", 11 January 2009, 20090111, PAGE(S) 1 - 53, XP007918922 * |
IBM CORP: "Passages from Platform Plugin Developer Guide for Eclipse 3.1", INTERNET CITATION, 27 June 2005 (2005-06-27), pages 1 - 46, XP002492345, Retrieved from the Internet <URL:http://archive.eclipse.org/eclipse/downloads/drops/R-3.1-200506271435/org.eclipse.platform.docs.isv.3.1.pdf.zip> [retrieved on 20080812] * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069251A (zh) * | 2019-01-11 | 2019-07-30 | 北京京运通科技股份有限公司 | 基于风电集控系统的软件快速再开发方法 |
CN110069251B (zh) * | 2019-01-11 | 2023-04-18 | 北京京运通科技股份有限公司 | 基于风电集控系统的软件快速再开发方法 |
Also Published As
Publication number | Publication date |
---|---|
FR2967517B1 (fr) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lanham | Learn ARCore-Fundamentals of Google ARCore: Learn to build augmented reality apps for Android, Unity, and the web with Google ARCore 1.0 | |
Junker | Pro OGRE 3D programming | |
CN113056772A (zh) | 虚拟仪表盘中可视化对象之间的动画 | |
EP1387261A1 (fr) | Logiciel de generation de code d'application informatique et langage de description de logiciel | |
FR2983600A1 (fr) | Procede et systeme de surveillance d'une interface graphique dans un cockpit d'aeronef | |
FR2950449A1 (fr) | Simulation en temps reel hautement representative d'un systeme avionique | |
US20160162363A1 (en) | Performing a closure merge operation | |
US10607391B2 (en) | Automated virtual artifact generation through natural language processing | |
Woods et al. | Continuous Architecture in Practice: Software Architecture in the Age of Agility and DevOps | |
Annuzzi et al. | Advanced Android application development | |
US20120330859A1 (en) | Interactive business process modeling and simulation | |
US20160171413A1 (en) | Modification and display of business models | |
US20160171038A1 (en) | Tracking model element changes using change logs | |
National Academies of Sciences et al. | Information technology innovation: Resurgence, confluence, and continuing impact | |
FR3021769A1 (fr) | Dispositif et procede de generation d'au moins un fichier informatique pour la realisation d'une interface graphique d'un equipement electronique, et produit programme d'ordinateur associe | |
FR2967517A1 (fr) | Banc de developpement d'application logicielle aeronautique comportant une interface graphique interactive | |
EP2455857B1 (fr) | Banc de développement d'application logicielle aéronautique comportant un langage structuré de description fonctionnelle | |
Lee et al. | Beginning Windows Phone App Development | |
FR2889325A1 (fr) | Architecture a composants logiciels pour les applications a plate-forme d'execution donnant acces au niveau metaprogramme | |
US8225273B2 (en) | Utilization of weights and visualization of conceptual frameworks in unified modeling | |
EP2153319A1 (fr) | Generateur de code source pour une carte graphique | |
EP4030282A1 (fr) | Système informatique et procédé de planification d'architecture logicielle | |
US20240037292A1 (en) | Knowledge graph for interoperability in industrial metaverse for engineering and design applications | |
US11921620B2 (en) | Generating a visualization of blocks of code statements related to errors in a log file | |
US10678517B1 (en) | User interface synthesis based upon extracted presentation document graphical features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 6 |
|
PLFP | Fee payment |
Year of fee payment: 7 |
|
PLFP | Fee payment |
Year of fee payment: 8 |
|
PLFP | Fee payment |
Year of fee payment: 9 |
|
PLFP | Fee payment |
Year of fee payment: 10 |
|
PLFP | Fee payment |
Year of fee payment: 11 |
|
PLFP | Fee payment |
Year of fee payment: 12 |
|
PLFP | Fee payment |
Year of fee payment: 13 |
|
PLFP | Fee payment |
Year of fee payment: 14 |