Brevet FR2725289A1 — publié le 19960405

PROCEDE ET DISPOSITIF DE GENERATION AUTOMATIQUE D'OBJETS DE PROCEDURES DE COMMANDE La présente invention trouve application en particulier, bien que non limitativement, dans le domaine de l'automatisation des processus. Elle a pour objet un procédé de génération automatique de procédures de commande utilisant ce que l'on a l'habitude de désigner en informatique par le terme objets. Dans un souci de clarté et de compréhension, on choisira souvent par la suite, comme exemple, des objets constituant les ensembles de codes de commandes qui détermineront dans une application l'apparition de données sur un écran de visualisation. Conformément à l'invention, on ne se contente pas de construire un objet par ses attributs et liens avec d'autres objets ou classes, comme on sait le faire actuellement, mais on construit, à l'aide d'un outil générateur et de manière automatique une véritable architecture pour l'application intégrant des objets. Ceci permet d'éviter à l'utilisateur des outils propres à chaque application, soit pour faire intervenir, en amont, par exemple, des conditions particulières d'affichage, soit pour faire intervenir en aval, par exemple, un lien défini. L'invention permet de générer, de manière automatique, une application en intégrant dans la structure de l'application non seulement les objets mais aussi les outils rendus disponibles par apprentissage (mémorisation des différents constituants d'application précédemment programmés dans une base centrale et par une architecture fonctionnelle) et de définir éventuellement les relations entre objets et outils entrant dans l'élaboration de l'application. Ce but est atteint par le fait que le procédé de génération automatique d'objets de procédure de commande sur un ordinateur est caractérisé en ce qu'il comporte une étape de codification des objets par un programme générateur en attribuant à chaque objet un code divisé en plusieurs parties selon une architecture déterminée, chaque partie comportant un nombre de caractères donnés, en enregistrant le code généré pour chaque objet par le programme générateur dans un fichier unique en mémoire de masse de l'ordinateur. Selon une autre particularité, chaque type d'objets peut être associé à un type d'actions sélectionnées parmi plusieurs types et désignées par la première partie du code. Selon une autre particularité, le code comporte - une deuxième partie constituée de trois caractères alphanumériques occupant les positions (2, 3, 4), les chiffres étant réservés aux objets du générateur et les lettres en première position désignant de nouveaux objets crées - une troisième partie constituée par un délimiteur situé en cinquième position - une quatrième partie située en sixième position constituée par une lettre désignant le type d'objet - une cinquième partie constituant les septième et huitième positions, permettant d'introduire des conditions correspondant à des ordres enregistrés préalablement par le programmeur - une sixième partie constituant un séparateur - une septième partie constituée de deux ou trois caractères numériques permettant de désigner l'étage de la cascade dans laquelle un même écran peut être rappelé plusieurs fois. Selon une autre particularité, cette huitième partie est enregistrée dans un fichier TMP temporaire de l'application. Selon une autre particularité, les différentes actions sont au moins de trois types désignées par le code, à savoir B pour les ordres d'édition (browse, fournissant la liste des fichiers), par le code A pour les ordres de visualisation d'un enregistrement, par le code P pour les ordres de passage à la fenêtre suivante (page). Selon une autre particularité, une quatrième action désignée par le code X (autre) et laissée ouverte à une définition spécifique fournie par l'utilisateur, par exemple par envoi d'un programme personnel Selon une autre particularité, les types d'objets peuvent être de trois types - le premier désigné par le code C et constitué d'un cadre - le deuxième désigné par le code M et constitué par un menu d'action - le troisième désigné par le code S et constitué d'un écran (screen). Selon une autre particularité, le générateur vérifie, lors de la codification, qu'il n'y a pas d'incompatibilité entre les actions désignes et les objets sélectionnés. Un autre but de l'invention est de proposer un dispositif permettant la génération automatique d'objets codifiés constitutifs de procédures de commandes. Ce but est atteint par le fait que dans un système informatique comportant une unité centrale, un dispositif d'affichage, des moyens interactifs entre l'affichage et l'unité centrale du système permettant de sélectionner sur l'affichage des éléments visuels pour transformer ces sélections en ordres exécutables par le système central est caractérisé en ce qu'il comporte en outre un programme dit générateur contenant les ordres propres réalisant les fonctions de gestion des relations entre fichiers et un noyau central qui permet de codifier les sélections effectuées par l'utilisateur à partir d'informations affichées sur l'écran et sélectionnés par cet utilisateur à l'aide des moyens interactifs, le dispositif comportant également un premier module des codes des noms d'objets, un deuxième module définissant les types d'objets ; un troisième module définissant les types d'actions disponibles pour chaque objet et vérifiant la compatibilité des objets sélectionnés avec les actions et un quatrième module d'accès au fichier et de mise à jour des tables pour enregistrer dans une base centrale les nouveaux objets codifiés pour les besoins d'une nouvelle application. D'autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après, d'un exemple de mise en oeuvre du procédé et du dispositif de l'invention, faite en référence aux dessins annexés dans lesquels - la figure 1 représente le dispositif permettant la mise en oeuvre du procédé ; - la figure 2 représente le logigramme de fonctionnement du générateur de l'invention - la figure 3 represente un exemple de codification d'un objet défini selon le procédé de l'invention. Le dispositif permettant la mise en oeuvre du procédé et représenté à la figure 1 est constitué d'une unité centrale (2) communiquant avec un écran (1) pour effectuer des affichages d'écran et de fenêtre et utilisant un outil interactif (3) tel qu'une souris ou un clavier (non représenté) pour effectuer des sélections à l'écran dans des menus ou des objets visuels de type windows représentés à l'écran. L'unité centrale communique également avec une mémoire de masse (4), laquelle contient un programme générateur contenant les ordres propres, c' est-à-dire les fonctions de gestion des relations entre fichiers et un noyau central permettant la codification des objets programmés et la verification de leur existence dans les fichiers de la base centrale (47). Le dictionnaire d'écran (42) comporte un ensemble d'outils permettant d'afficher les écrans correspondant à des objets déjà créés par l'utilisateur. La mémoire de masse comporte également un module des codes des noms d'objets MCNO (43), un module des types d'objets MTO (44), un module des types des actions MTA (45) et un module d'accès fichier MAF et mise à jour des tables (46) permettant d'acceder aux tables (41). Le générateur permet, à partir d'un menu principal, d'appeler une fonctionnalité fichier pour gérer les fichiers ; une fonctionnalité table permettant de gérer les tables ; une fonctionnalité édition permettant l'édition d'écrans ou de nouveaux objets pour, dans un premier temps les copier dans le fichier du projet en cours et dans un deuxième temps les enregistrer dans la base centrale FBC (47). La figure 2 représente le logigramme permettant, à partir de l'application générateur, de générer des procédures de commande en utilisant un procédé attribuant un code défini à la figure 3 à chaque objet programmé par les sélections de l'utilisateur. Lorsque l'utilisateur lance le programme générateur, il accède au menu général qui permet de sélectionner une action d'édition d'un type d'objets et par une action de descente (401) et un test (411) de lancer une procédure d'analyse de conditions (402), cette analyse de conditions est suivie d'un test (403) qui permet de déterminer la validité d'une condition et, si la condition n'existe pas, de la créer à l'étape (403). Dans le cas ou la condition existe, le programme, à l'étape (404) détermine par un test si l'écran est inexistant dans le projet puis, par un second test, à l'étape (405), il détermine si l'écran est inexistant dans la base centrale.Si cet écran est inexistant dans la base centrale, il procède à une opération (406) de création de l'écran, qui permet de créer un écran, et en fin de création, effectue, à l'étape (409), un premier passage sur l'écran (1) du système informatique. Dans le cas où l'écran n'est pas inexistant dans la base centrale, mais existant dans le projet, le programme effectue, à l'étape (408) la copie, dans le fichier projet, de l'écran existant dans la base centrale. Après le premier passage sur l'écran, l'étape 4771 permet au générateur la fabrication des objets codifiés et l'enregistrement d'une partie du code dans un fichier temporaire de travail alors que l'autre partie du code est enregistrée dans la base centrale à l'étape (478). La création des écrans ou des objets à partir d'écrans est effectuée par des sélections interactives faites par l'utilisateur en utilisant des menus et des modules permettant de définir les types d'objets sélectionnables ainsi que les types d'actions possibles pour un objet et les conditions enregistrées dans des tables par le programmeur au moment où il conçoit son application. Ainsi, une condition peut être de savoir quels sont les articles d'un client ou quels sont les clients d'un article. La première condition sera exprimée par le code 01 alors que la deuxième sera exprimée par le code 02. Le générateur permet de créer des objets codifiés enregistrés dans un fichier projets, la succession d'objets codifiés du projet permettant de constituer une nouvelle application. De plus, chaque fois qu'un nouvel objet codifié est créé, le générateur examine si cet objet existe dans la base centrale et dans le cas où il n'existe pas l'enregistre dans la base centrale. Les objets codifiés sont représentes à la figure 3 et comportent plusieurs parties, chaque partie comportant un nombre de caractères donnés. La première partie (471) du code est constituée par une lettre désignant le type d'actions. Cette lettre peut être la lettre B pour le listing d'un fichier, la lettre A pour la visualisation d'un enregistrement, la lettre P pour un changement de fenêtre, ou la lettre X pour l'envoi d'un programme personnel. Cette première partie est suivie d'une deuxième partie (472) de code occupant trois positions dans lesquelles sont insérés trois caractères alphanumériques. Les lettres sont en première position pour des objets créés alors que lorsque cette partie comporte trois chiffres, ceci indique qu'il s'agissait d'un objet du générateur. Une troisième partie (473) est constituée par un délimiteur permettant de séparer le champ action du champ type d'objets. La quatrième partie (474) qui correspond à la sixième position est constituée par une lettre désignant la nature de l'objet. Ainsi, le caractère inséré est un C lorsqu'il s'agit d'un cadre, un M lorsqu'il s'agit d'un menu d'action, un S lorsqu'il s'agit d'un écran. La cinquième partie (475) est constituée par les septième et huitième positions dans lesquelles est inscrite une condition enregistrée par ordre par le programmeur, comme on l'a vu précédemment. Une sixième partie est constituée par la neuvième position représentée par la référence (476) et constitue un séparateur. Enfin, une septième partie (477) est constituée par les dixième et onzième positions, et éventuellement douzième, et représente un ensemble de deux ou trois caractères numériques permettant de désigner l'étage de la cascade dans lequel se trouve l'objet. Ceci est utile dans un projet car le même objet peut être rappelé plusieurs fois au cours du déroulement des commandes et ce sont ces positions qui indiquent la position de l'objet dans la cascade de commande. Enfin, le générateur permet également, comme nous l'avons vu plus haut, d'éviter la sélection de types d'objets incompatibles avec certains types d'action. Ainsi, si en première position on choisit pour action une action du type A signifiant la visualisation d'un enregistrement, on ne pourrait pas dans ce cas mettre en sixième position un objet de type menu d'actions. De même, si en première position on choisit une action de type P, indiquant un changement de fenêtre, on ne pourra pas utiliser comme type d'objets, les objets C et M. Seul l'objet de type S sera compatible avec ce type d'action. Ainsi, si la notion d'une base centrale n'est pas nouvelle en soi quand il s'agit d'y mémoriser des valeurs de rubriques constituant des attributs ou les relations, il est, par contre, nouveau de faire enregistrer à la base centrale toutes les informations utiles à l'importation et l'exportation automatiques d'éléments interpréteurs (objets codifiés) comportant les caractéristiques des liens entre les types d'objets et les types d'actions.On comprendra aussi l'intérêt de l'invention par le fait qu'au lieu qu'un programme particulier soit définitivement relié aux différents objets qu'il génère, on utilise un fichier unique d'enregistrement en mémoire de masse une fois le programme terminé. Les objets codifiés sont individuellement enregistrés en mémoire de masse dans la base centrale et ils restent en permanence disponibles pour être appelés, utilisés, modifiés, complétés par l'un ou l'autre des programmeurs. Les objets codifiés enregistrés, par exemple lors de la création d'un projet 1 peuvent être importés dans le fichier d'un projet 2. De même de nouveaux objets codifiés peuvent venir enrichir la base centrale lors de la création du fichier projet 2. Les exemples d'objets donnés à titre indicatif pour permettre d'expliciter l'invention sur un application ne sont pas limitatifs du type d'application du principe du générateur permettant de codifier les liens entre objets et actions. D'autres modifications à la portée de l'homme de métier font également partie de l'esprit de l'invention. REVENDICATIONS 1. Procédé de génération automatique d'objets de procédure de commande sur un ordinateur (1 à 4), caractérisé en ce qu'il comporte une étape de codification des objets par un générateur (40) en attribuant à chaque objet un code divisé en plusieurs parties selon une architecture déterminée, chaque partie comportant un nombre de caractères donnés, en enregistrant le code généré pour chaque objet par le programme générateur dans un fichier unique en mémoire de masse (4) de l'ordinateur. 2. Procédé selon la revendication 1, caractérisé en ce que chaque type d'objets peut être associé à un type d'actions sélectionnées parmi plusieurs types et désignées par la première partie (471) du code. 3. Procéde selon la revendication 1 ou 2, caractérisé en ce que le code comporte - une deuxième partie (472) constituée de trois caractères alphanumériques occupant les positions (2, 3, 4), les chiffres étant réservés aux objets du générateur et les lettres en première position désignant de nouveaux objets crées - une troisième partie (473) constituée par un délimiteur situé en cinquième position; - une quatrième partie (474) située en sixième position constituée par une lettre désignant le type d'objet - une cinquième partie (475) constituant les septième et huitième positions, permettant d'introduire des conditions correspondant à des ordres enregistrés préalablement par le programmeur - une sixième partie (476) constituant un séparateur ; - une septième partie (477) constituée de deux ou trois caractères numériques permettant de désigner l'étage de la cascade dans laquelle un même écran peut être rappelé plusieurs fois. 4. Procédé selon la revendication 3, caractérisé en ce que cette huitième partie est enregistrée dans un fichier TMP temporaire de l'application. 5. Procédé selon la revendication 3, caractérisé en ce que les différentes actions sont au moins de trois types, désignées par le code B pour un ordre d'édition (browse) fournissant la liste des fichiers, par le code A pour un ordre de visualisation d'un enregistrement, par le code P pour un ordre de passage à la fenêtre suivante (page). 6. Procédé selon la revendication 5, caractérisé en ce que une quatrième action désignée par le code X (autre) et laissée ouverte à une définition spécifique fournie par l'utilisateur, par exemple par envoi d'un programme personnel. 7. Procédé selon la revendication 3, caractérisé en ce que les types d'objets peuvent être de trois types - le premier désigné par le code C et constitué d'un cadre - le deuxième désigné par le code M et constitué par un menu d'action - le troisième désigné par le code S et constitué d'un écran (screen). 8. Procédé selon une des revendications précédentes, caractérisé en ce que le générateur (40) vérifie, lors de la codification, qu'il n'y a pas d'incompatibilité entre les actions désignées et les objets sélectionnés. 9. Dispositif de génération automatique d'objets codifiés constitutifs de procédures de commandes comportant une unité centrale (2), un dispositif d'affichage (1), des moyens interactifs (3) entre l'affichage et l'unité centrale du système permettant de sélectionner sur l'affichage des éléments visuels pour transformer ces sélections en ordres exécutables par le système central, caractérisé en ce qu'il comporte en outre un programme dit générateur (40) contenant les ordres propres et réalisant les fonctions de gestion des relations entre fichiers et un noyau central qui permet de codifier les sélections effectuées par l'utilisateur à partir d'informations affichées sur l'écran (1) et sélectionnés par cet utilisateur à l'aide des moyens interactifs (3), le dispositif comportant également un premier module des codes des noms d'objets (43), un deuxième module définissant les types d'objets (44) ; un troisième module définissant les types d'actions disponibles pour chaque objet (45) et vérifiant la compatibilite des objets sélectionnés avec les actions et un quatrième module (46) d'accès au fichier et de mise à jour des tables (41) pour enregistrer dans une base centrale (47) les nouveaux objets codifiés pour les besoins d'une nouvelle application.