FR2658334A1 - Appareil et procede pour adapter, d'un environnement d'operation a un autre, un programme d'ordinateur. - Google Patents

Appareil et procede pour adapter, d'un environnement d'operation a un autre, un programme d'ordinateur. Download PDF

Info

Publication number
FR2658334A1
FR2658334A1 FR9101378A FR9101378A FR2658334A1 FR 2658334 A1 FR2658334 A1 FR 2658334A1 FR 9101378 A FR9101378 A FR 9101378A FR 9101378 A FR9101378 A FR 9101378A FR 2658334 A1 FR2658334 A1 FR 2658334A1
Authority
FR
France
Prior art keywords
code
fragments
computer program
exploration
operating environment
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.)
Withdrawn
Application number
FR9101378A
Other languages
English (en)
Inventor
Pugmire David
D Angelo Vincent
Dea Robert
Muldoon Susan
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of FR2658334A1 publication Critical patent/FR2658334A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Un outil (11) destiné à adapter automatiquement un programme d'ordinateur pour qu'il fonctionne dans un environnementd'exploitation différent, reçoit (13) le code de programme (15) tel qu'il est écrit à l'origine, explore des fragments (17) identifiés présentant des capacités fonctionnelles de l'environnement original, et modifie et remplace (21) ces fragments par des fragments fournissant des capacités fonctionnelles similaires ou additionnelles dans le nouvel environnement (19). A partir d'échantillons affichés sur l'écran (25) de l'ordinateur, un utilisateur sélectionne (27, 29), des capacités fonctionnelles diverses et fournit, en vue d'une insertion dans le programme adapté, des chaînes de texte spécifiques à ses besoins, qui peuvent être des légendes visuelles d'affichage ou un code additionnel. Les codes peuvent être mémorisés dans des fichiers temporaires (31) pour un traitement ultérieur.

Description

i La présente invention concerne en général l'ingénierie des logiciels et
plus particulièrement un outil de programmation pour adapter automatiquement un programme d'ordinateur conçu pour un environnement d'exploitation afin qu'il fonctionne dans un autre
environnement d' exploitation.
Les ordinateurs sont utilisés pour un nombre
croissant de buts par un nombre croissant de personnes.
Jusque récemment, un utilisateur ne pouvait interagir avec un ordinateur qu'aux moyens d'ordres tapés au clavier et de codes qui sont relativement difficiles à apprendre et à utiliser Pour faciliter l'utilisation des ordinateurs, divers types de dispositifs de sortie non verbaux, comme des affichages graphiques et des affichages visuels par image, ainsi que des dispositifs d'entrée comme la souris de l'ordinateur ont été développés et sont maintenant d'une utilisation
largement répandue.
Une autre limitation était l'incapacité de beaucoup des petits ordinateurs les plus appréciés à
effectuer plus d'un programme d'application à la fois.
Même de nombreux ordinateurs qui pouvaient exécuter plusieurs programmes à la fois n'étaient susceptible de réaliser une interface avec l'utilisateur que pour un programme à la fois On est en train de remédier à ces limitations par des systèmes d'exploitation qui supportent une exécution simultanée de plusieurs programmes et par des moyens de sortie améliorés comme des affichages visuels qui sont divisés en plusieurs zones ou "fenêtres" dont chacune permet à l'utilisateur de
communiquer avec un programme différent.
Ces divers développements ont été améliorés et combinés l'un avec l'autre pour former des environnements d'exploitation d'ordinateur qui sont caractérisés, par exemple, comme "conviviaux" Un exemple d'un tel environnement est le "Microsoft Windows" commercialisé par Microsoft Corp Aussi bien les ordinateurs qui présentent de tels environnements d'exploitation que les programmes d'application qui sont compatibles avec eux sont beaucoup plus faciles à utiliser que d'autres ordinateurs, en particulier pour
des utilisateurs qui ne sont pas formés techniquement.
Au fur et à mesure que ces nouveaux environnements d'exploitation sont de plus en plus appréciés, il est apparu une demande pour des programmes d'application compatibles Cette demande peut être satisfaite, par exemple, en adaptant des programmes d'application existants pour qu'ils fonctionnent dans les nouveaux environnements ou en écrivant des nouveaux programmes à partir de rien Même de nouveaux programmes comprennent habituellement divers modules, sous-programmes, segments de code et similaires qui ont été utilisés auparavant et ceux-ci doivent être adaptés pour pouvoir fonctionner dans l'environnement pour lequel le nouveau programme est en cours d'écriture De plus, lorsque l'on écrit un nouveau programme d'application, il est souvent plus facile, en premier lieu, d'écrire le programme sans s'occuper de l'environnement d'exploitation et d'ajouter ensuite une interface et d'autres particularités nécessaires pour adapter le programme à l'environnement dans lequel il sera utilisé Par conséquent, une grande partie de l'effort de réalisation de programmes d'application, soit nouveaux, soit existants, pour qu'ils fonctionnent dans de nouveaux environnements
implique une adaptation d'un code existant.
Quelle que soit la façon dont ils ont été créés, des programmes d'application à mettre en oeuvre dans les nouveaux environnements tendent à présenter un code très compliqué La complexité du code augmente avec les particularités offertes par l'environnement On trouve, par exemple, un code particulièrement compliqué et volumineux dans des programmes d'ordinateur à mettre en
oeuvre dans l'environnement "New Wave" de Hewlett-
Packard, un environnement comportant de nombreuses particularités qui rendent particulièrement faciles à utiliser aussi bien le système d'ordinateur que les programmes d'application Ainsi, bien que les programmes qui fonctionnent dans de tels environnements sont beaucoup plus faciles à utiliser que d'autres
programmes, ils sont beaucoup plus difficiles à écrire.
Un ingénieur de logiciels qui est confronté avec la tâche d'adapter ou de créer un programme d'application pour qu'il fonctionne dans un environnement comme New Wave doit, soit modifier un code qui a déjà été écrit pour un environnement différent, une tâche qui inclut inévitablement la création d'une quantité importante de code nouveau, soit créer entièrement un nouveau code à partir de rien Les deux tâches exigent une connaissance détaillée des fonctionnements internes de l'environnement cible et représentent une énorme quantité de travail Par conséquent, les temps de développement de programmes tendent à être longs et les produits résultants onéreux. Il ressortira de ce qui précède qu'il existe un besoin pour un mode efficace et économique d'adaptation des programmes d'application pour qu'ils fonctionnent
dans de nouveaux environnements d'ordinateurs.
La présente invention propose un système et un procédé destinés à adapter un programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'exploitation afin qu'il exécute la tâche
dans un deuxième environnement d'exploitation.
Selon un premier aspect, l'invention propose un tel système qui comprend: des moyens d'entrée pour recevoir un code d'entrée qui peut être mis en oeuvre comme programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'exploitation; plusieurs fragments de code de fonction qui peuvent chacun être mis en oeuvre pour fournir une capacité fonctionnelle souhaitée; et des moyens de sélection sensibles à des ordres externes pour sélectionner des fragments de code souhaités, à partir du code d'entrée et à partir des fragments du code de fonction, et pour relier entre eux les fragments sélectionnés de code pour constituer un code de sortie pouvant être mis en oeuvre comme programme d'ordinateur qui exécute la tâche définie dans un deuxième environnement d'exploitation et qui inclut toutes les capacités fonctionnelles fournies par les fragments sélectionnés
de code de fonction.
Les moyens de sélection peuventcomprendre: plusieurs fragments de code d'exploration; des moyens pour sélectionner un fragment de code d'exploration; et des moyens d'exploration agissant pour explorer le code d'entrée pour localiser toute partie du code d'entrée qui est semblable au fragment sélectionné de code d'exploration, cesmoyensd'exploration pouvant comprendre un premier tampon pour recevoir le code d'entrée et un deuxième tampon pour recevoir un fragment de code d'exploration Ce deuxième tampon peut contenir plusieurs fragments de code d'exploration et les moyens d'exploitation peuvent être actifs pour localiser toute partie du code d'entrée qui est semblable à un fragment quelconque d'exploration dans
le tampon.
De façon avantageuse, le système peut comprendre en outre des moyens de suppression-et-insertion sensibles aux moyens de sélection pour copier un fragment du code d'entrée dans un emplacement souhaité
du code de sortie.
De préférence, le système comprend, en outre, des moyens d'insertion de texte sensibles aux moyens de sélection pour insérer une chaîne de texte dans un
emplacement souhaité du code de sortie.
Le système peut encore comprendre, de plus, des moyens à fichier temporaire pour recevoir le code de sortie et fournir aux moyens de sélection, en vue d'un
traitement, le code reçu au lieu du code d'entrée.
Selon un deuxième aspect, un système conforme à.
l'invention comprend: des moyens à ordinateur comprenant une interface d'utilisateur et des moyens de mémorisation de données, des moyens d'entrée pour recevoir le code d'entrée qui peut être mis en oeuvre comme programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'opération; plusieurs fragments de code de fonction dans les moyens de mémorisation, chacun de ces fragments pouvant être mis en oeuvre pour fournir une capacité fonctionnelle souhaitée; et des moyens de sélection sensibles à des ordres extérieurs, reçus d'un utilisateur par l'intermédiaire de l'interface d'utilisateur, pour sélectionner des fragments souhaités de code, à partir du code d'entrée et à partir des fragments du code de fonction, et pour relier entre eux les fragments sélectionnés de code pour constituer un code de sortie pouvant être mis en oeuvre comme programme d'ordinateur -25 qui exécute la tâche définie dans un deuxième environnement d'exploitation et qui comprend toutes les capacités fonctionnelles fournies par les fragments
sélectionnés de code de fonction.
De façon avantageuse, les moyens de sélection comprennent plusieurs fragments de code d'exploration dans le moyens de mémorisation; des moyens pour sélectionner un fragment de code d'exploration; et des moyens d'exploration agissant pour explorer le code d'entrée pour localiser toute partie du code d'entrée qui est semblable au fragment sélectionné de code
d' exploration.
De préférence, ce système comprend en outre des moyens pour mémoriser le code de sortie dans les moyens de mémorisation et pour fournir aux moyens de sélection, en vue d'un traitement, le code de sortie mémorisé au lieu du code d'entrée. Selon un troisième aspect, le système conforme à l'invention comprend des moyens d'entrée pour recevoir un programme d'ordinateur configuré pour opérer dans un premier environnement d'interface; plusieurs fragments de code de fonction pouvant être mis en oeuvre chacun pour fournir une particularité d'interface; et des moyens de sélection pour sélectionner des fragments de code, à partir du programme d'ordinateur et à partir des fragments de code de fonction, et pour relier entre eux les fragments sélectionnés de code pour constituer un programme d'ordinateur qui est configuré pour opérer dans un deuxième environnement d'interface et qui comprend toutes les particularités d'interface fournies
par les fragments sélectionnés de code de fonction.
De façon avantageuse, le système comprend en outre des moyens pour fournir à un utilisateur des échantillons de particularités d'interface disponibles dans le deuxième environnement d'interface et pour recevoir des ordres d'un utilisateur indicatifs de toutes particularités que l'utilisateur souhaite inclure dans le programme re-configuré, les moyens de sélection étant sensibles à ces ordres pour sélectionner des fragments de code qui fourniront les particularités souhaitées De préférence, le système comprend alors, en outre, des moyens pour recevoir une chaîne de texte fournie par l'utilisateur, en vue d'une inclusion dans une particularité d'interface, et des moyens d'insertion de texte pour insérer la chaîne de
texte dans le programme d'ordinateur re-con-
figuré en même temps que tout fragment de code de fonction nécessaire pour amener la chaîne de texte à
être incluse dans la particularité d'interface.
Selon un quatrième aspect, l'invention inclut un procédé d'adaptation d'un programme d'ordinateur qui exécute une tâche définie dans un premier environnement d' exploitation pour exécuter la tâche dans un deuxième environnement d'exploitation, le procédé comprenant les étapes consistant à: sélectionner, dans un programme d'ordinateur qui effectue une tâche définie dans un premier environnement d'exploitation, des fragments de code d'entrée nécessaires pour effectuer la tâche dans un deuxième environnement d'exploitation; sélectionner, parmi plusieurs fragments de code de fonction pouvant chacun être mis en oeuvre pour fournir une capacité fonctionnelle, des fragments selon lesquels des capacités sont souhaitées; et relier entre eux les fragments sélectionnés de code pour constituer un programme d'ordinateur qui effectue la tâche dans le deuxième environnement d'exploitation et qui comprend les
capacités fonctionnelles souhaitées.
De façon avantageuse, ce procédé comprend en outre l' insertion, dans le programme d'ordinateur, d'une chaîne de texte fournie par l'utilisateur en même temps que de tout fragment de code de fonction nécessaire pour amener la chaîne de texte à être utilisée en liaison avec une capacité fonctionnelle du programme De préférence, dans ce procédé, les capacités fonctionnelles fournies par les fragments de code de fonction comprennent des particularités d'interface qui ne sont pas disponibles dans le premier environnement D'autres aspects et avantages de la présente
invention ressortiront de la description détaillée qui
suit, prise en liaison avec les dessins annexés, qui représentent à titre d'exemple le principe de l'invention. La Fig 1 est un schéma fonctionnel d'un système selon la présente invention; la Fig 2 est un diagramme d'état du système représenté à la Fig 1; et la Fig 3 est un schéma logique d'un mode de
réalisation du système selon la Fig 2.
Comme représenté aux dessins dans un but d'illustration, l'invention est incorporée dans un nouvel outil destiné à adapter, d'un environnement d'exploitation àun autre, un programme d'ordinateur Pour fonctionner dans de nouveaux environnements, les procédés existants d'adaptation de programmes d'application exigent, de la part de l'ingénieur de logiciels, la création de quantité importante de code compliqué, nécessitent un temps considérable et sont onéreux. Selon l'invention, un outil de développement de logiciels adapte automatiquement un programme d'ordinateur pour le faire fonctionner dans un nouvel environnement et incorpore dans le programme adapté toutes capacités fonctionnelles souhaitées du nouvel environnement Au moyen de l'invention, un ingénieur de logiciels ou même un utilisateur sans expérience sophistiquée peut adapter rapidement et facilement un programme d'application pour qu'il fonctionne dans un nouvel environnement sans avoir à écrire de codes nouveaux. Comme représenté dans le schéma fonctionnel à la Fig 1, un mode de réalisation préféré de l'invention comprend un système désigné dans son ensemble par 11 destiné à adapter un programme d'ordinateur qui effectue une tâche définie dans un premier environnement d'exploitationpour qu'il effectue la tâche
dans un deuxième environnementd'exploitation Un moyen.
d'entrée reçoit le programme d'ordinateur à adapter comme indiqué par une flèche 13 Le programme est fourni sous la forme d'un fichier d'entrée 15 qui peut être mémorisé, par exemple, sur un disque souple ou dans une mémoire interne Plusieurs fragments de code de fonction sont disposés dans un fichier de données de base 17 qui peut également être mémorisé sur un disque souple ou dans une mémoire interne Chaque fragment de code de fonction peut être mis en oeuvre pour fournir une capacité fonctionnelle souhaitée dans le deuxième environnement d'exploitation Le système comprend un moyen de sélection pour sélectionner des fragments souhaités de code à partir du fichier d'entrée et à partir des fragments de code de fonction et pour relier entre eux les fragments sélectionnés de code pour fournir un code de sortie, par exemple dans un fichier de sortie 19 Le code de sortie peut être mis en oeuvre comme programme d'ordinateur qui effectue la tâche définie dans le deuxième environnement d'exploitation et qui comprend toutes capacités fonctionnelles fournies par les
fragments sélectionnés de code de fonction.
"Relier" entre eux les fragments de code implique typiquement l'agencement d'un certain nombre de parties différentes du code d'entrée et d'un certain nombre de fragments de code de fonction dans une séquence appropriée en vue d'une opération dans le deuxième environnement; ceci peut être considéré comme une "fusion" des divers fragments entre eux ou comme une "épissure" de ces fragments l'un après l'autre pour
former le code final de sortie.
L'invention est particulièrement bien appropriée pour adapter des programmes d'ordinateur pour qu'ils fonctionnent dans de nouveaux environnements d'interface comme l'environnement de fenêtre New Wave de la Hewlett-Packard Company Dans une telle application, un système complet incorporant l'invention inclut de préférence des moyens à ordinateur 21 comportant une interface d'utilisateur 23 comme un écran d'affichage du type tube à rayons cathodiques (ou CRT) 25, un clavier 27, et une souris 29 et des moyens de mémorisation comme une mémoire interne (non représentée) Le moyen de sélection comprend des moyens pour fournir à l'utilisateur des échantillons de particularités d'interface disponibles dans le deuxième environnement d'interface, par exemple en affichant les particularités sur l'écran 25 L'utilisateur choisit celles de ces particularités qui doivent être incorporées dans le programme d'application particulier en cours d'adaptation pour fonctionner dans le deuxième environnement Ces choix sont communiqués, par l'intermédiaire du moyen d'interface, au moyen de sélection, et le moyen de sélection sélectionne les fragments appropriés de code de fonction pour inclure
dans le programme adapté les particularités choisies.
L'interface d'utilisateur sert aussi de moyen de réception d'une chaîne de texte qui peut être fournie par l'utilisateur en vue d'une inclusion dans une particularité d'interface Par exemple, l'utilisateur peut souhaiter qu'une certaine phrase soit affichée sur
l'écran à un point désigné du fonctionnement du programme.
Le moyen de sélection comprend des moyens pour insérer dans le programme d'ordinateur, selon la nouvelle configuration, la chaîne de texte telle qu'elle est fournie par l'utilisateur en même temps que tout fragment de code de fonction nécessaire à l'inclusion de la chaîne de texte dans la particularité d'interface. Dans certains cas, le code de sortie peut exiger un traitement complémentaire avant d'être prêt à fonctionner dans le deuxième environnement Par conséquent, un moyen 31 de fichier temporaire reçoit le code de sortie et le renvoie au moyen de sélection en
vue d'un deuxième traitement.
il Un diagramme d'état représentant le travail interne d'un outil incorporant la présente invention est représenté à la Fig 2 En termes généraux, l'outil utilise un jeu de fragments de code d'exploration indicatifs chacun d'une fonction d'interface dans le premier environnement d'exploitation L'outil explore le code d'entrée pour identifier tout fragment de code d'entrée qui correspond à l'un de ces fragments de code d'exploration Des fragments de code d'entrée qui ne sont pas liés à des fonctions d'interface ne sont pas identifiés pendant l'exploration; ces fragments concernent habituellement d'autres aspects de la tâche à effectuer par le programme d'application et sont transférés à la sortie sans aucune modification Des fragments de code d'entrée qui sont reliés aux fonctions d'interface peuvent être transférés, remplacés, annulés, ou copiés en vue d'une insertion à un ou plusieurs autres emplacements dans la sortie, le tout selon les spécifications du deuxième
environnement.
Il est clair qu'une partie du code d'entrée peut être utilisée dans le code de sortie "tel quel", en fragments relativement importants ou même en blocs entiers D'autres parties du code d'entrée peuvent être modifiées, une opération qui implique une ou plusieurs
des opérations consistant à enlever, insérer, re-
agencer, et similaires D'autres parties encore du code d'entrée peuvent simplement être annulées ou être remplacées; par exemple, une partie du code d'entrée qui fournit une certaine capacité fonctionnelle dans le premier environnement d'opération peut être entièrement enlevée et remplacée par un ou plusieurs segments de code de fonction qui fournissent une capacité fonctionnelle semblable ou équivalente dans le deuxième
environnement.
De façon plus particulière, des spécifications du premier environnement d'exploitation sont utilisées pour sélectionner des fragments de code d'exploration, comme indiqué par un noeud 33 "sélectionner fragments" Les D fragments de code d'exploration sont contenus dans une partie 17 A de la base de données 17 Un ordre d'exploration est engendré comme indiqué par une flèche d'ordre 35 à partir du noeud 33 "sélectionner
fragments" vers un noeud 37 "explorer tampons".
En réponse à l'ordre d'exploration, un ordre de prélèvement du code d'entrée est engendré comme indiqué par une flèche de commande 39 à partir du noeud 37 "explorer tampons" vers un noeud 41 "obtenir code d'entrée" En réponse à ce dernier ordre, le code d'entrée est prélevé comme indiqué par une flèche de fragment de code 43 s'étendant depuis le fichier d'entrée 15 à travers le noeud 41 "obtenir code
d'entrée" vers un premier tampon 45.
En réponse également à l'ordre d'exploration, un 2 O ordre de prélèvement d'un fragment de code d'exploration est engendré comme indiqué par une flèche d'ordre 47 à partir du noeud 37 "explorer tampons" vers un noeud 49 "obtenir fragment d'exploration" En réponse à cet ordre, un fragment de code d'exploration est prélevé comme indiqué par une flèche de fragment de code 51 s'étendant depuis la base de données 17 A à travers le noeud 49 "obtenir fragment d'exploration"
vers un deuxième tampon 53.
L'exploration est effectuée en comparant les contenus des deux tampons 45 et 53 Ces tampons sont de préférence suffisamment importants pour contenir, à la fois, une partie importante du code d'entrée et plusieurs fragments de code d'exploration, ce qui permet une exploration simultanée de plusieurs
fragments d'exploration.
Des fragments du code d'entrée et des résultats de l'exploration sont renvoyés comme indiqué par des flèches de fragment 55 et 57, s'étendant respectivement depuis le premier et le deuxième tampons 45 et 53 vers le noeud 37 "explorer tampons", et par une flèche de statut d'exploration 59, s'étendant en retour depuis le noeud 37 "explorer tampons" vers le noeud 33
"sélectionner fragments".
Des ordres d'exploration peuvent être automatiquement engendrés par le système ou peuvent être fournis par l'utilisateur, comme indiqué par une flèche d'ordre 61 depuis l'interface d'utilisateur 23
vers le noeud 33 "sélectionner fragments".
Comme indiqué ci-dessus, certaines parties du code d'entrée sont transférés à la sortie sans être modifiées Ceci est indiqué par une flèche de fragment 63 s'étendant du noeud 37 "explorer tampons" vers un
noeud 65 "sortie" En outre, un moyen de suppression-
et-insertion est parfois utilisé pour sauvegarder un fragment du code d'entrée en vue d'une insertion ultérieure dans un emplacement souhaité du code de sortie Ceci est indiqué par un noeud 67 "insertion" qui reçoit, du noeud 33 "sélectionner fragments", des ordres d'insertion comme indiqué par une flèche d'ordre 69 En réponse à un ordre d'insertion, un fragment de code d'entrée est sauvegardé dans un tampon d'insertion 71 comme indiqué par une flèche de fragment 73, s'étendant depuis le noeud 37 "explorer tampons" vers le tampon d'insertion 71, et est récupéré depuis le tampon d'insertion 71 à l'instant souhaité comme indiqué par une flèche de fragment 75 s'étendant depuis le tampon 71 à travers le noeud 67 "insertion" vers le
noeud 65 "sortie".
Typiquement, l'exploration identifie des emplacements du code d'entrée en vue d'une insertion de fragments de code de fonction, soit selon les spécifications du deuxième environnement d'opération, soit selon les choix, décidés par l'utilisateur, de capacités fonctionnelles à inclure dans le programme adapté Ces ordres sont représentés par une flèche d'ordre 77 s'étendant depuis le noeud 33 "sélectionner fragments" vers un noeud 79 "insérer fragment de fonction" En réponse à un tel ordre, un fragment de code de fonction est inclus dans la sortie comme indiqué par une flèche de fragment 81 qui s'étend depuis la base de données 17 B à travers le noeud 79 "insérer fragment de fonction" vers le noeud 65 "sortie". L'utilisateur peut spécifier une chaîne de texte à insérer dans le code de sortie, par exemple une légende à afficher par l'ordinateur en liaison avec une particularité d'interface donnée La chaîne de texte est fournie par l'interface d'utilisateur et le noeud 33 "sélectionner fragments", comme indiqué par une flèche 83 de chaîne de texte s'étendant depuis le noeud 33 "sélectionner fragments" vers un noeud 85 "ajouter chaîne" Ceci provoque la génération d'un fragment de code afin d'inclure la chaîne dans la sortie comme indiqué par une flèche de fragment 87 s'étendant depuis
le noeud 85 "ajouter chaîne" vers le noeud 65 "sortie".
Un utilisateur n'est pas limité à spécifier une courte chaîne de texte, comme une légende destinée à un affichage visuel La chaîne de texte peut être d'une longueur souhaitée quelconque et le texte peut être un type quelconque d'information que l'ordinateur lui-même peut accepter La chaîne de texte peut comprendre, par exemple, un indicateur vers un fichier contenant un code que l'utilisateur souhaite insérer dans le programme adapté, ou la chaîne de texte elle-même peut être un code, fourni par l'utilisateur, à insérer dans
le programme.
Si le code d'entrée exige une poursuite du traitement, il est placé dans le fichier temporaire 31 comme indiqué par une flèche de code 89 s'étendant
depuis le noeud 65 "sortie" vers le fichier temporaire.
Ce code "intermédiaire" du fichier temporaire est ensuite prélevé en vue d'un traitement ultérieur comme indiqué par une flèche de fragment 91 s'étendant depuis le fichier temporaire 31 vers le noeud 41 "obtenir code d'entrée" Des fragments, tant du code original du fichier d'entrée 15 que du code intermédiaire du fichier temporaire 31, peuvent être prélevés selon les besoins. Si le code de sortie est prêt à être utilisé comme programme d'application dans le deuxième environnement d'exploitation, il est placé dans le fichier de sortie 19 comme indiqué par une flèche de code 93 s'étendant depuis le noeud 65 "sortie" vers le fichier
de sortie.
Il est clair que divers agencements de déroulement de programme peuvent être utilisés pour implanter le système comme décrit ci-dessus Un tel agencement est représenté dans le schéma logique de la Fig 3 A l'origine (début au bloc 101), le code du programme d'ordinateur à adapter est placé dans le fichier d'entrée (bloc de traitement 103) Si une autre action doit être effectuée (bloc de décision 105), un fragment de code est obtenu à partir du fichier d'entrée ou du fichier temporaire selon ce qui est approprié (bloc de
traitement 107).
Un fragment de code d'entrée (ou temporaire) est "obtenu", par exemple, en explorant selon un ou plusieurs des fragments de code d'exploration comme décrit ci-dessus; le fragment qui est obtenu de cette manière peut être un code qui correspond à un des fragments de code d'exploration ou un code qui ne correspond pas à l'un des fragments de code d'exploration Si le code n'a correspondu à aucun des fragments, il peut avoir été identifié pour destruction, pour insertion dans la sortie, pour remplacement, ou comme fragment à sauvegarder pour une insertion ultérieure ailleurs Si le code ne correspondait pas à l'un quelconque des fragments explorés, le code peut être une partie fonctionnelle du programme d'application qui est nécessaire pour effectuer la tâche du programme dans le deuxième environnement et qui doit donc être transférée à la
sortie sans modification. Si le fragment obtenu doit être inclus dans la sortie (bloc de décision
109), il est passé à la sortie (bloc de traitement 111) Si le fragment doit être sauvegardé en vue d'une utilisation ultérieure (bloc de décision 113), il est placé dans le tampon d'insertion (bloc de traitement 115) Si un fragment de fonction doit être inséré (bloc de décision 117), il est "obtenu" à partir de la base de données selon la capacité fonctionnelle souhaitée à inclure dans le programme adapté, comme décrit ci-dessus, et transféré à la sortie (bloc de traitement 119) Si un fragment sauvegardé précédemment doit être inséré (bloc de décision 121), il est obtenu à partir du tampon d'insertion et transféré à la sortie (bloc de traitement 123) Si une chaîne de texte doit être insérée (bloc de décision 125), elle est transférée à la sortie en même temps que tout fragment de code de
fonction nécessaire (bloc de traitement 127).
Si une autre action doit être effectuée (bloc de décision 105), les étapes ci-dessus sont répétées Dans le cas contraire, si le code de sortie n'est pas en forme finale (bloc de décision 129), il est placé dans le fichier temporaire (bloc de traitement 131) et toute la procédure est répétée Si le code de sortie est en forme finale (bloc de décision 129), il est placé dans le fichier de sortie (bloc de traitement 133) et la
procédure se termine (bloc de fin 135).
Le traitement ci-dessus peut être brièvement résumé en tant que procédé qui inclut les étapes consistant à sélectionner, à partir d'un programme d'ordinateur qui effectue une tâche définie dans un premier environnement d'exploitation, des fragments de code nécessaires pour effectuer la tâche dans un deuxième environnement d'exploitation; sélectionner, à lu partir de plusieurs fragments de code de fonction pouvant être mis en oeuvre chacun pour réaliser une capacité fonctionnelle, des fragments selon lesquels les capacités sont souhaitées; et relier entre eux les fragments de code sélectionnés pour constituer un programme d'ordinateur qui effectue la tâche dans le deuxième environnement d'exploitation et qui comprend les capacités fonctionnelles souhaitées De plus, le procédé comprend de préférence une insertion, dans le programme d'ordinateur, d'une chaîne de texte fournie par l'utilisateur en même temps que tout fragment de code de fonction nécessaire pour amener la chaîne de texte à être utilisée en liaison avec une capacité fonctionnelle du programme Typiquement, les capacités fonctionnelles fournies par le fragment de code de fonction comprennent des particularités d'interface qui
ne sont pas disponibles dans le premier environnement.
Dans une application spécifique, l'invention est configurée pour adapter un programme d'ordinateur conçu pour fonctionner dans l'environnement "Windows" de Microsoft en vue d'un fonctionnement dans l'environnement "New Wave" de Hewlett-Packard Un tel programme peut avoir été produit à l'origine, par exemple, au moyen d'un outil d'ingénierie comme l'outil connu comme "Case:W" distribué par Caseworks, un éditeur de logiciels Un programme qui fonctionne dans l'environnement "Windows" inclut typiquement les jeux de fichiers suivants: C
H
Make DEF RC Ces fichiers sont traités comme fichiers d'entrée selon les enseignements de la présente invention pour fournir les fichiers de sortie qui peuvent être mis en oeuvre dans l'environnement "New Wave": C (modifié) H (modifié) Make (entièrement remplacé par un nouveau fichier) DEF (non modifié) RC (modifié) icon (fichier additionnel optionnel) INS (fichier additionnel optionnel) Divers fichiers sont placés dans le fichier temporaire pendant le traitement et utilisés pour engendrer les versions finales Les fichiers optionnels peuvent être engendrés ou non selon les ordres données
par l'utilisateur.
On trouvera ci-après un exemple d'un code qui a été "modifié" pendant le processus d'adaptation par élimination et insertion de fragments de code sélectionnés: h Wnd=Create Window(sz App Name, gh Wnd = h Wnd = "demo", NW_Create Window ( sz App Name, WS_OVERLAPPEDWINDOW, "demo",
CW_USEDEFAULT, WS_OVERLAPPEDWINDOW,
0, CW_USEDEFAULT,
CW_USEDEFAULT, NWCW_STAGGERPOS,
O, CW_USEDEFAULT,
NULL, 0,
NULL, NULL,
h Instance, NULL, NULL); h Instance,
NULL);
BEFORE AFTER
On voit, à partir de ce qui précède, que l'invention fournit un outil d'ingénierie de logiciels qui adapte automatiquement un programme d'ordinateur pour fonctionner dans un nouvel environnement sans aucun besoin d'engendrer ou de modifier manuellement un code d'ordinateur L'utilisateur sélectionne toutes particularités souhaitées du nouvel environnement et l'outil insère automatique tout code nécessaire dans le
programme pour fournir les particularités souhaitées.
Avec cet outil, un ingénieur de logiciels ou même un utilisateur non technicien peut adapter immédiatement des programmes d'un environnement à l'autre selon les besoins. Bien qu'un mode de réalisation spécifique de l'invention ait été décrit et illustré, l'invention ne doit pas être limitée aux formes et agencements spécifiques d'éléments décrits et illustrés de cette manière, et diverses modifications et altérations peuvent être apportées sans s'écarter du cadre et de l'esprit de l'invention Par conséquent, à l'intérieur
du cadre des revendications annexées, l'invention peut
être mise en oeuvre d'une façon autre que celle qui est
décrite et illustrée spécifiquement.

Claims (12)

REVENDICATIONS
1 Système ( 11) destiné à adapter un programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'exploitation pour exécuter la tâche dans un deuxième environnement d'exploitation, caractérisé en ce qu'il comprend: des moyens d'entrée ( 13) pour recevoir un code d'entrée ( 15) qui peut être mis en oeuvre comme programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'exploitation; plusieurs fragments de code de fonction ( 17) qui peuvent chacun être mis en oeuvre pour fournir une capacité fonctionnelle souhaitée; et des moyens de sélection sensibles à des ordres externes ( 27, 29) pour sélectionner des fragments de code souhaités, à partir du code d'entrée ( 15) et à partir des fragments du code de fonction ( 17), et pour relier entre eux les fragments sélectionnés de code pour constituer un code de sortie ( 19) pouvant être mis en oeuvre comme programme d'ordinateur qui exécute la tâche définie dans un deuxième environnement d'exploitation et qui inclut toutes les capacités fonctionnelles fournies par les fragments sélectionnés
de code de fonction ( 17).
2 Système selon la revendication 1 caractérisé en ce queles moyens de sélection ( 21) comprennent: plusieurs fragments de code d'exploration; des moyens pour sélectionner un fragment de code d'exploration; et des moyens d'exploration agissant pour explorer le code d'entrée ( 15) pour localiser toute partie du code d'entrée qui est semblable au fragment sélectionné
de code d'exploration.
3 Système selon la revendication 2 caractérisé en ce queles moyens d'exploration comprennent un premier tampon pour recevoir le code d'entrée ( 15) et un deuxième tampon pour recevoir un fragment de code d'exploration. 4 Système selon la revendication 3 caractérisé en ce que le deuxième tampon contient plusieurs fragments de code d'exploration et en ce que les moyens d'exploration sont actifs pour localiser toute partie du code d'entrée ( 15) qui est semblable à un fragment
quelconque d'exploration dans le tampon.
Système selon la revendication 1 caractérisé en ce qu'il comprend en outre des moyens de suppression-et-insertion sensibles aux moyens de sélection ( 21) pour copier un fragment du code d'entrée ( 15) dans un emplacement souhaité du code de sortie
( 19).
6 Système selon la revendication 1 caractérisé en ce qu'il comprend en outre des moyens d'insertion de texte sensibles aux moyens de sélection ( 21) pour insérer une chaîne de texte dans un emplacement
souhaité du code de sortie ( 19).
7 Système selon la revendication 1 caractérisé en ce qu'il comprend de plus des moyens à fichier temporaire ( 31) pour recevoir le code de sortie ( 19) et fournir aux moyens de sélection ( 21), en vue d'un
traitement, le code reçu au lieu du code d'entrée ( 15).
8 Système destiné à adapter un programme d'ordinateur qui exécute une tâche définie dans un premier environnement d' exploitation pour exécuter la tâche dans un deuxième environnement d'exploitation, caractérisé en ce qu'il comprend: des moyens àordinateur ( 21) comprenant une interface d'utilisateur ( 23) et des moyens de mémorisation de données, des moyens d'entrée ( 13) pour recevoir le code d'entrée ( 15) qui peut être mis en oeuvre comme programme d'ordinateur qui exécute une tâche définie dans un premier environnement d'opération; plusieurs fragments de code de fonction ( 17) dans les moyens de mémorisation, chacun de ces fragments pouvant être mis en oeuvre pour fournir une capacité fonctionnelle souhaitée; et des moyens de sélection ( 21) sensibles à des ordres extérieurs, reçus d'un utilisateur par l'intermédiaire de l'interface d'utilisateur, pour sélectionner des fragments souhaités de code, à partir du code d'entrée ( 15) et à partir des fragments du code de fonction ( 17), et pour relier entre eux les fragments sélectionnés de code pour constituer un code de sortie ( 19) pouvant être mis en oeuvre comme programme d'ordinateur qui exécute la tâche définie dans un deuxième environnement d'exploitation et qui comprend toutes les capacités fonctionnelles fournies par les fragments sélectionnés de code de fonction
( 17).
9 Système selon la revendication 8 caractérisé en ce que les moyens de sélection ( 21) comprerrent: plusieurs fragments de code d'exploration dans le moyens de mémorisation; des moyens pour sélectionner un fragment de code d'exploration; et des moyens d'exploration agissant pour explorer le code d'entrée ( 15) pour localiser toute partie du code d'entrée ( 15) qui est semblable au fragment
sélectionné de code d'exploration.
Système selon la revendication 8 caractérisé en ce qu'il comprend en outre des moyens pour mémoriser le code de sortie ( 19) dans les moyens de mémorisation et pour fournir aux moyens de sélection ( 21), en vue d'un traitement, le code de sortie ( 19) mémorisé au
lieu du code d'entrée ( 15).
11 Système destiné à re-configurer un programme d'ordinateur depuis un premier environnement d'interface vers un deuxième environnement d'interface, caractérisé en ce qu'il comprend: des moyens d'entrée ( 13) pour recevoir un programme d'ordinateur configuré pour opérer dans un premier environnement d'interface; plusieurs fragments de code de fonction ( 17) pouvant être mis en oeuvre chacun pour fournir une particularité d'interface; et des moyens de sélection ( 21) pour sélectionner des fragments de code, à partir du programme d'ordinateur et à partir des fragments de code de fonction ( 17), et pour relier entre eux les fragments sélectionnés de code pour constituer un programme d'ordinateur qui est configuré pour opérer dans un deuxième environnement d'interface et qui comprend toutes les particularités d'interface fournies par les
fragments sélectionnés de code de fonction ( 17).
12 Système selon la revendication 11,caractérisé en ce qu'il comprend en outre des moyens ( 25, 27, 29) pour fournir à un utilisateur des échantillons de particularités d'interface disponibles dans le deuxième environnement d'interface et pour recevoir des ordres d'un utilisateur indicatifs de toutes particularités que l'utilisateur souhaite inclure dans le programme re-configurer, les moyens de sélection ( 21) étant sensibles à ces ordres pour sélectionner des fragments
de code qui fourniront les particularités souhaitées.
13 Système selon la revendication 12 caractérisé en ce qu'il comprend en outre des moyens ( 27, 29) pour recevoir une chaîne de texte fournie par l'utilisateur, en vue d'une inclusion dans une particularité d'interface, et des moyens d'insertion de texte pour insérer la chaîne de texte dans le programme d'ordinateur re-configuré en même temps que tout fragment de code de fonction ( 17) nécessaire pour amener la chaîne de texte à être incluse dans la
particularité d'interface.
14 Procédé d'adaptation d'un programme d'ordinateur qui exécute une tâche définie dans un premier environnement d' exploitation pour exécuter la tâche dans un deuxième environnement d'exploitation, caractérisé en ce qu'il comprend les étapes consistant à: sélectionner, dans un programme d'ordinateur qui effectue une tâche définie dans un premier environnement d'exploitation, des fragments de code d'entrée ( 15) nécessaires pour effectuer la tâche dans un deuxième environnement d' exploitation; sélectionner, parmi plusieurs fragments de code de fonction ( 17) pouvant chacun être mis en oeuvre pour fournir une capacité fonctionnelle, des fragments selon lesquels des capacités sont souhaitées; et relier entre eux les fragments sélectionnés de code pour constituer un programme d'ordinateur qui effectue la tâche dans le deuxième environnement d'exploitation et qui comprend les capacités
fonctionnelles souhaitées.
Procédé selon la revendication 14 caractérisé en ce qu'il comprend en outre 1 ' insertion, dans le programme d'ordinateur, d'une chaîne de texte fournie par l'utilisateur en même temps que de tout fragment de code de fonction ( 17) nécessaire pour amener la chaîne de texte à être utilisée en liaison avec une capacité
fonctionnelle du programme.
16 Procédé selon la revendication 14 caractérisé en ce que les capacités fonctionnelles fournies par les fragments de code de fonction ( 17) comprennent des particularités d'interface qui ne sont pas disponibles
dans le premier environnement.
FR9101378A 1990-02-09 1991-02-07 Appareil et procede pour adapter, d'un environnement d'operation a un autre, un programme d'ordinateur. Withdrawn FR2658334A1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US47778790A 1990-02-09 1990-02-09

Publications (1)

Publication Number Publication Date
FR2658334A1 true FR2658334A1 (fr) 1991-08-16

Family

ID=23897358

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9101378A Withdrawn FR2658334A1 (fr) 1990-02-09 1991-02-07 Appareil et procede pour adapter, d'un environnement d'operation a un autre, un programme d'ordinateur.

Country Status (3)

Country Link
JP (1) JPH04213730A (fr)
FR (1) FR2658334A1 (fr)
GB (1) GB2240861A (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404530A (en) * 1992-05-15 1995-04-04 Nissan Motor Co., Ltd. Information managing apparatus
GB2269687B (en) * 1992-08-14 1996-07-24 Corita Consultancy Limited Automatic program conversion for video terminal compatibility
US5905892A (en) * 1996-04-01 1999-05-18 Sun Microsystems, Inc. Error correcting compiler
JP3631896B2 (ja) 1997-12-26 2005-03-23 富士通株式会社 オブジェクト変換装置及びオブジェクト変換方法及びプログラム記録媒体
US6463582B1 (en) 1998-10-21 2002-10-08 Fujitsu Limited Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method
JP2002287982A (ja) * 2001-03-28 2002-10-04 Kawasaki Steel Systems R & D Corp 異種システム間コンバート支援システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4553205A (en) * 1982-09-21 1985-11-12 Salvatore Porchia Flexible macro expansion process
WO1990004227A1 (fr) * 1988-10-12 1990-04-19 Expressway, Inc. Systeme de fabrication de logiciels

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4597044A (en) * 1982-10-14 1986-06-24 Honeywell Information Systems, Inc. Apparatus and method for providing a composite descriptor in a data processing system
US4530052A (en) * 1982-10-14 1985-07-16 Honeywell Information Systems Inc. Apparatus and method for a data processing unit sharing a plurality of operating systems
US4727480A (en) * 1984-07-09 1988-02-23 Wang Laboratories, Inc. Emulation of a data processing system
US4768150A (en) * 1986-09-17 1988-08-30 International Business Machines Corporation Application program interface to networking functions
GB8814630D0 (en) * 1987-11-17 1988-07-27 Ibm Dynamically adaptive environment for computer programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4553205A (en) * 1982-09-21 1985-11-12 Salvatore Porchia Flexible macro expansion process
WO1990004227A1 (fr) * 1988-10-12 1990-04-19 Expressway, Inc. Systeme de fabrication de logiciels

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RESEARCH DISCLOSURE. no. 301, Mai 1989, NEW YORK, US page 333 30147 'DYNAMIC ALGORITHM RETRIEVAL' *

Also Published As

Publication number Publication date
GB2240861A (en) 1991-08-14
GB9102260D0 (en) 1991-03-20
JPH04213730A (ja) 1992-08-04

Similar Documents

Publication Publication Date Title
EP0676069B1 (fr) Systeme de traduction de fichiers
EP1555602B1 (fr) Méthode et dispositif d'exécution des opérations de gestion de fichiers multiples
EP1763865B1 (fr) Saisie d'image automatique pour la production de contenu
US10055302B2 (en) Performing a closure merge operation
FR2768826A1 (fr) Controle d'interface utilisateur standard pour un fournisseur de donnees
US20060026559A1 (en) Automatic content completion of valid values for method argument variables
US20070067362A1 (en) Undo function for unzipped files
US20060206511A1 (en) Method and system for extending the file system api
JP2008506183A (ja) 自動的に生成されたコンテンツのインポート
FR2767945A1 (fr) Procede et systeme d'installation et d'essai d'un logiciel sur un systeme d'ordinateur personnalise
KR20080007332A (ko) 싱크 관리자 충돌 해결을 위한 방법
US20020147750A1 (en) Editing platforms for remote user interface translation
JP2005115931A (ja) コンピュータの支援によるクエリ−タスクマッピング
EP1024440A2 (fr) Méthode de recouvrement de données
EP0784257A1 (fr) Système de protection de logiciel pour ordinateur écrit en langage interprété
US7370065B1 (en) Renaming multiple files
Dallwitz A comparison of interactive identification programs
US20040148591A1 (en) Method, apparatus, and program for automated application context delivery to translators
FR2658334A1 (fr) Appareil et procede pour adapter, d'un environnement d'operation a un autre, un programme d'ordinateur.
EP1783625A1 (fr) Procédé et système de génération d'un manuel technique
KR20200051165A (ko) Internet Explorer에서의 인터넷 정보 처리 자동화 방법
EP2419823A1 (fr) Procede d'assistance au developpement ou a l'utilisation d'un systeme complexe
EP1783626A1 (fr) Procédé et système de création d'un manuel
US6792609B1 (en) System and method for associating action diaries with a parent class object
US6944866B1 (en) System and method for coordinating operator efforts using action diaries

Legal Events

Date Code Title Description
ST Notification of lapse