EP1044410A1 - Method for generating interfaces for control by a computer system user - Google Patents

Method for generating interfaces for control by a computer system user

Info

Publication number
EP1044410A1
EP1044410A1 EP99950864A EP99950864A EP1044410A1 EP 1044410 A1 EP1044410 A1 EP 1044410A1 EP 99950864 A EP99950864 A EP 99950864A EP 99950864 A EP99950864 A EP 99950864A EP 1044410 A1 EP1044410 A1 EP 1044410A1
Authority
EP
European Patent Office
Prior art keywords
class
user
interface
designer
descriptions
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
EP99950864A
Other languages
German (de)
French (fr)
Inventor
Jean-Marc Goube
Gérard Sitbon
Armand Nachef
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.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of EP1044410A1 publication Critical patent/EP1044410A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the invention relates to the control of a computer system by a user and more particularly by a user with little or no computer knowledge or of his computer system.
  • the invention is suitable for any system and is particularly advantageous in the case where the system is heterogeneous.
  • the subject of the invention is a method for generating interfaces for control by a user of a computer system, as well as the system implementing this method. More specifically, the control of the system is made from at least one object including descriptions of the object and / or from at least one member of the object.
  • the system is of the open type, for example that known under the name of the registered trademark UNIX, and that it supports a software application manager of the client-server type, intended to manage transactional properties in an environment of open systems, such as software known under the trade name TUXEDO (Transactions for UniX Extended for Distributed Operations).
  • TUXEDO Transactions for UniX Extended for Distributed Operations
  • the director simply wishes to send a command to the system to open transactional applications between 8 a.m. and 4 p.m. from Monday to Friday, he must know the syntax of the transaction manager tmboot and tmshutdown commands, as well as the syntax of the Unix crontab command to schedule tasks.
  • a first object of the present invention is to provide the user with a command interface in a language very close to his spoken language. As a result, he will no longer have to learn the names of the commands used by the computer system and remember them by using them regularly.
  • a second object of the invention is to allow intuitive use of the command interface. The user therefore no longer has to know the correct use of the commands of the computer system and their sequence.
  • a third object of the invention is to easily offer the user the possibility of modifying, personalizing and enriching the interface.
  • the evolution of the interface can be done by itself, without requiring the intervention of an expert.
  • a fourth goal is to offer a command interface at a cost significantly lower than the cost of a graphical interface and the training required to use this interface.
  • the subject of the invention is a method of generating an interface for controlling a computer system by a user, the command being made from at least one object including descriptions of the object and / or of at least one member of the object, characterized in that it consists in extracting from the object at least in part said descriptions and in organize to translate the meaning of said command into a language understandable to the user and thus make said interface.
  • the corollary object of the invention is a computer system comprising a computer assembly and a control interface used by a user to send system-specific commands to the system for a desired operation of the system, characterized in that it implements the method previously defined.
  • the corollary object of the invention is also a recording medium, such as a magnetic diskette or a CD-ROM, incorporating software for the implementation of the method.
  • Figure 1 is a block diagram of a computer system implementing the method of the invention for the generation of a system control interface by a user for a desired operation of the system.
  • Figure 2 is a window used by a designer for the implementation of the method of the invention.
  • Figure 3 is a dialog box used by the designer to dynamically create a class satisfying the desired operation of the system by the user and from which an interface is generated according to the method of the invention.
  • Figure 4 is a dialog box used by the designer to define an attribute of the class presented in Figure 3.
  • Figure 5 is a dialog box used by the designer to define a method of the class presented in Figure 3.
  • Figure 6 is a dialog box used by the designer to define a parameter of a method defined in Figure 5.
  • Figure 7 is a block view of the tree structure of the class as defined by the dialog boxes shown in Figures 3 to 6.
  • Figure 8 is a block diagram illustrating a class derivation method presented in Figure 7.
  • Figures 9 and 10 are dialog boxes used by the designer to define the derived class using the method illustrated in Figure 8
  • Figures 11 and 12 illustrate two respective interfaces resulting from the implementation of the method of the invention.
  • Figure 13 is a window presented to the user for using the interfaces resulting from the implementation of the invention.
  • FIG. 1 illustrates an information system 10 operated by a user U via a control interface 11.
  • the system 10 can be any system.
  • the system 10 illustrated includes a computer assembly 1 comprising at least one machine, two machines 2a and 2b in the example illustrated.
  • Each illustrated machine has, in a well known manner, at least one processor A connected via a bus B to a memory 3.
  • the memory can be local or distributed, or the machines can form nodes of a network in the set 1.
  • each memory 3 are stored software means, in particular one or more operating systems 4.
  • it will be considered as a system heterogeneous representative of a difficult case to manage.
  • the two machines 2 are supposed to operate under two respective operating systems 4a and 4b of different types or versions from each other, for example a proprietary type operating system and an open type operating system, for example that known by one of the trade names UNIX or Windows NT .
  • the computer unit 1 also has database means, called database 5 and which may consist of one or more local or remote databases.
  • the machines 2 also each have an input-output interface C connected to the bus B.
  • the input-output interfaces C of the two machines are interconnected with each other as well as with the database C.
  • the control interface 11 comprises a control module 12, a design module 13, an interface generator 14 and an interface base 15.
  • the module 12 is connected bidirectionally to the computer assembly 1.
  • the module 13 can also be connected in the same way to the computer assembly 1.
  • the interface base 15 is bidirectionally connected to the modules 12 and 13 and to the generator 14.
  • the generator 14 is also connected to be controlled by the module 13
  • the control module 12 is used by the user U to control and exploit the data of the system 10.
  • the design module 13 is used by a designer C, who is another user of the interface 11 but who is a computer specialist .
  • the two users U and C have respective consoles 16 and 17 attached to the respective modules 12 and 13.
  • the user U defines needs to know and understand the functioning of the company and submits his needs to the designer C.
  • the designer C creates by means of his module 13 software objects meeting the needs of the user U and sends them to the generator 14 to be converted into interfaces 18 (FIGS. 11 and 12) corresponding to its needs and expressing the commands of the system in a language which is comprehensible to it.
  • interfaces are used by the user to form documents and will be called document interfaces.
  • the user U will for example be a director of a bank agency not specialized in data processing. It is assumed for example that the user U wishes to consult the computer unit 1 of the bank to make requests in order to obtain a list of students, dear to the agency, and print personalized letters of information for them. , invitation and reminder.
  • the user U transmits his needs to the designer C, for example during a meeting between them.
  • the designer transcribes these needs by using, in a first step, the module 13 to create, modify and / or delete objects and classes of objects concerned by these needs.
  • the designer C will create an impression class with: a first attribute "distribution hste" according to a set of criteria, here the students of the agency; a second attribute "number of copies"(integer); a first "print” method having as parameter the recipient printer; and a second method "view printing operations" to know the progress of printing.
  • the objects and classes created by the designer are stored in the interface base 15.
  • the final transcription by the designer C of the needs of the user U is only contained in objects which have been directly created previously or which are instances of classes defined previously. These objects are contained in the base 15, which is contained in the command interface 11 in the example illustrated but which could be external to the interface 11 and included in the computer assembly 1. The objects are converted into document interfaces presented to user U for use in forming order documents satisfying his needs.
  • Module 13 will first be presented. It implements two software tools 20 and 30 respectively executing a method for dynamic creation of classes and a method for deriving classes and objects.
  • the tool 20 for dynamic creation of classes will now be presented.
  • FIG. 2 illustrates an example of screen 21 displayed by console 17 to serve as an interface between designer C and module 13.
  • Screen 21 has a menu bar 22 including in particular the "Classes", “Objects” menus "," Search “and” Export to U ".
  • the "Classes” menu allows you to dynamically create object classes, by inheritance or not. It also allows you to open a class to modify, save or close it.
  • the "Objects” menu allows you to instantiate the classes defined above, in order to create objects that can then be cloned.
  • the "Classes” menu iUustrated contains the commands "New class”, “New inherited class ",” Open class “,” Delete class “,” Save class “,” Save class as ... “and” Close class ".
  • the "Objects” menu contains the commands "New class object”, “Clone an object”, “Open an object”, “Delete an object”, “Save the object”, “Save the object as " and "Close object”.
  • the tool 20 implements a dynamic generation process for a class of objects.
  • the method is triggered automatically by the design module 13 when the designer C activates the "New class" command from the "Classes" menu of window 22 of FIG. 2.
  • the method of automatic generation of a class consists in creating a class generic generic "GenericClass" having two possible members, one relating to at least one attribute and the other relating to at least one method, at least one of the two members being an instance of a generic class, and instantiate the global generic class to have said object class.
  • two generic classes "GenericAttribute” and “GenericMethod” are assigned to the two respective members of the global generic class "GenericClass".
  • this parameter is itself an instance of a corresponding generic class "GenericParameter”.
  • a generic class is defined as a class allowing the designer C to create a new class by creating an instance of a global generic class. Since the creation of instances is dynamic in all languages, the creation of a class also becomes dynamic for the designer C. Similarly, knowing that an object is a new instance of a class, the creation of an object then also corresponds to the creation of a copy of this class, that is to say to a new instance of a global generic class.
  • the method triggered by the tool 20 is also triggered when the designer C activates the command "New class object" in the "Objects” menu of the window 22 of FIG. 2.
  • the method will now be illustrated from the so that he presents himself to designer C via tool 20.
  • Figure 3 shows an example of a dialog box 23 that the tool
  • the illustrated box 23 contains, for data entry,
  • the first attribute is a name, formed by a character string designating the name of the class. It is written by filling in the "Class name” field in box 23.
  • the second attribute is a class identification, formed by a character string allowing to uniquely identify the class or the object in the system. This attribute is written by filling in the "Class identification" field in box 23, for example in indicating the date, the time of creation, a random number forming a ticket, etc.
  • the third attribute is a description, formed by text that describes the purpose of the class. It is written by filling in the "Class description" area.
  • the fourth attribute is an array called "Attributes”, which references the attributes of the class.
  • the attributes of the class are themselves instances of a generic attribute class, called “GenericAttribute”, which has as attributes:
  • the class "Attributes [i]” is an instance of “GenericAttribute” and references the ith attribute of the class defined by the designer C.
  • FIG. 4 illustrates a dialog box 24 of the tool 20 constituting the fourth attribute of "GenericClass".
  • This box opens from box 23, for example by naming "Class 1" the class issued by instantiating the global generic class “GenericClass” and activating the "Add attribute” button.
  • Box 24 contains:
  • GenericClass The fifth attribute of the generic class "GenericClass” is an array named “Methods”, which references the methods of the class. These methods are also, in the example illustrated, instances of a generic class of methods called “GenericMethod”. A method is defined by the following attributes:
  • FIG. 5 illustrates a dialog box 25 of the tool 20 constituting the fifth attribute of "GenericClass". This box opens from box 23, for example by activating the "Add method” button. Box 25 contains:
  • the generic class "GenericMethod” contains, in addition to the attributes of the method, an array "Parameters", which references the parameters of the method.
  • the array can be empty if the generic class does not contain a parameter to be determined, or may not exist if this generic class is not intended to have no determinable parameter or if it has only fixed or predetermined parameters.
  • the parameters are also instances of a generic class "GenericParameter”.
  • a parameter of a method is defined by its following attributes:
  • the default value will be 1 but the user U may indicate another real value, for example 3 to have three copies of the pages to be printed.
  • FIG. 6 illustrates a dialog box 26 of the tool 20 for filling the parameter table of "GenericMethod” in FIG. 5.
  • the box 26 opens from box 25, by activating the "Add" button.
  • Box 26 contains:
  • Figure 7 illustrates the tree structure 27a of the class
  • Class 1 resulting from the validation of the box 23.
  • the class “Class 1” is an instance of the global generic class “GenericClass” and has an attribute “Attributl” and a method “Method 1” having itself a parameter “Paraml”, which are all three instances of three respective generic classes.
  • an instance of the global generic class “GenericClass” could have multiple instances of each of the three generic classes “GenericAttribute”, “GenericMethod” and “GenericParameter”. This tree structure makes it possible to dynamically modify, add and delete at any time members of the class (attributes or methods).
  • GenericClass such that it appears in FIG. 3 preferably has an additional attribute consisting of a boolean "0" or "1” indicating whether the instance of the current generic class represents a class or object.
  • the boolean is "1" to indicate that the designer is creating a class.
  • the boolean is automatically set to the corresponding value in response to the command "New class” or "New class object” which was activated by designer C in window 22 of figure 2. In the example chosen, this attribute is not visible to designer C and is therefore shown in gray.
  • the "Search" menu is very useful for the designer C to make a powerful search in the base 15 to find there classes and objects created according to a list of criteria that he defines.
  • Designer C can, for example, create a new class by inheritance from the class he found, instead of starting from scratch and redoing a work already done.
  • dialog boxes 23-26 are therefore used by the designer to respectively generate the global generic class and the generic classes which can compose it.
  • iUustrated dialogs completely define these classes, not all iUustrated attributes, types, fields and text boxes are required. In particular, the descriptions are illustrated for a purpose other than the method of automatic generation of classes which has just been described.
  • FIG. 7 also illustrates a tree 27b of a class "ClasseDl” obtained by duplication of "Classel”.
  • This figure illustrates, in general, that duplicating the instance of "GenericClass” is not enough, because the duplicated class "ClasseDl” will point to the same instances “GenericMethod” and “GenericAttribute” of the instance “Classel “from” GenericClass ".
  • “Attributl” is common to the two classes, whereas the two classes should be distinct and independent.
  • serialization technique that applies to many languages, such as Java or C ++.
  • Serial storage makes it possible to store any object on a data recording medium, a disc for example. If for example a first object references objects, which themselves reference other objects and so on, it is enough to write the first object on the disk with the serialization method to automatically store in memory the tree structure of all objects referenced directly or indirectly by the first object.
  • FIG. 8 schematically illustrates the principle of the process for deriving a "Classel” class or an object.
  • the utU 30 implements this process.
  • the illustrated example relates to the creation of a class "ClasseD2" by inheritance of the class "Classel” such as Illustrated in figure 7, it being understood that the process can be applied in the same way to instantiation of a class or the cloning of an object.
  • the derivation process consists of a first step in seriahser the class "Classel” by copying it to a disk D, for example the hard disk of a machine 2a or 2b of the computer unit 1 of FIG. 1.
  • a disk D for example the hard disk of a machine 2a or 2b of the computer unit 1 of FIG. 1.
  • the second step consists in reading the duplicated class, stored in disk D, by loading it into the tool 30, that is to say in the RAM on which the program of the tool is loaded.
  • the two stages of the process can be executed for example by the following two instructions:
  • FIG. 9 iUustrates a dialog box 31 for the use of the utU 30.
  • This example relates to that of FIG. 9, which relates to the creation of a class inheriting from another class.
  • the dialog window 31 in Figure 9 appears.
  • This window contains a "New class name” text box and a list of classes from which the parent class can be chosen.
  • the "Classel” class from the list is chosen, as shown in gray in Figure 9.
  • the inherited class is called "classD2".
  • FIG. 10 illustrates an example of dialog box 32 resulting from the validation of box 31. Box 32 is similar to box 23 of FIG. 3. Consequently, only the differences will be indicated below.
  • the data contained in the box 32 are filled in automatically by the software of the tool 30.
  • the name of the class is that which was indicated by the designer C in the box 31 of FIG. 9.
  • the box 32 additionally contains a table indicating the parent or parents of the class, here "Classel” that designer C has selected in the hste of box 31.
  • the other data are similar to those of box 23, since the tree 27c of the daughter class " ClasseD2 "is the same as the tree 27a of the parent class" Classel ". Thanks to the control buttons of the box 32, it is possible to easily change the new class "ClasseD2" independently of the mother class "Classel".
  • the global generic class "GenericClass” therefore has an additional attribute named "parent”, which is an array containing instances of the global generic class, such as Classel.
  • the table is used to recognize the origin of the current instance as follows:
  • the process for deriving a class of objects and / or an object having a given name consists in making a copy of the entire tree of the class or of the object, to memorize the copy of the tree and to change said name to assign a name to the memorized copy.
  • the copy is made by a serialization of the tree representative of the said class or of the said object by copying the tree into a memory D and the memorization of the copy of the tree consists in copying it again in Memory 30.
  • serialization which can be done in various languages, is particularly simple to implement in Java® language.
  • the function of the interface generator 14 will now be described. So far, we have seen how designer C can easily create object classes and objects that meet user needs.
  • U The classes and objects thus created are stored in the interface base 15. However, these classes and objects remain incomprehensible and unusable for the user U. Preferably, U is also prohibited to the user U of have access to it, to assure the designer their integrity.
  • the generator 14 has the function of transforming the classes and objects thus created into interfaces in the form of documents in which the commands responding to the needs expressed by the user U are understandable by him. In order to distinguish these interfaces from the other interfaces involved in this description, they will be called document interfaces.
  • the language used in these document interfaces can be the current language and / or a language specialized in the competence of the user.
  • the operation of the generator 14 will emerge from the example which follows, which takes up and explains the previous example according to which the company is a banking agency, the user U is the director of the agency and the designer C is a computer scientist form the bank. It is assumed that the director U wants to: (1) consult the information system of the bank to make requests in the databases with a view to obtaining a list of his clients of a given type, students in the example considered, and (2) print personalized letters of several types, such as information letters, invitation letters and reminder letters.
  • Computer scientist C translates the operation desired by the director into two questions. In this case, the computer scientist creates in response two classes of objects: "consultation_system” and "impression" by means of the two tools 20 and 30.
  • designer C can activate the "Search" command in window 22 to find a similar class. If a similar class exists, it selects it in the class hste and can derive it, for example by activating the command "New inherited class" in Figure 2 and by modifying, adding or removing attributes and / or methods.
  • the generator 14 implements a method for generating a document interface for the control of a computer system by a user, the control being made from at least one object including descriptions.
  • the method consists in extracting from the object at least in part said descriptions and in organizing them to translate the meaning of said command into a language understandable to the user and thus make said interface a documentary interface.
  • the generator 14 therefore comprises an extraction block 14a and a generation block 14b.
  • the extraction block 14a takes from the interface base 15 the object selected by the designer and extracts the descriptions there.
  • the generation block 14b organizes the descriptions to form the document interface and store it in the interface base 15.
  • engineer C creates a "imprime_invitation” method so as to have a description such as "Printing letters to:”, and assigns to this method a return code of type "void” meaning that the method does not return a value, and two parameters as defined in table B below.
  • FIG. 11 shows the documentary interface 18a of the "lister_nes” method.
  • the documentary interface 18a was obtained by extracting the descriptions of the method and its parameters, as defined in Table A.
  • the values "26 years", “Paris” and “6000 francs” are the default values indicated in table A.
  • a document interface 18 includes text and at least one possible field 19 whose initial content is made up of default values and can be modified by the user U.
  • FIG. 12 shows an example of a documentary interface 18b of the "imprime_invitation" method of the "print” class defined above.
  • the examples of FIGS. 11 and 12 are sufficient for those skilled in the art to know how to construct a documentary interface relating to an entire object.
  • the object contains all the descriptions, they are preferably organized by the generator 14 in the following order:
  • each attribute for example the number of the printer, the print quality, the color of the ink, the printing paper; this description is followed by a field which corresponds to its value; if the attribute has a limited number of values, this field is a list containing all the possible values and showing only the selected value; 3. description of each method (see tables A and B, figures
  • a command button includes a value label "to” (for example, -print “to” -) followed by a "time” field and a "date” field hey to a day calendar working hours of the year;
  • a command button includes a label entitled "after the end of execution of” followed by a field allowing to choose a method of any object and means that the method will be executed after the end of execution of the selected method.
  • Designer C has the possibility to change the presentation of the page, add or remove fields, select the descriptions to be taken into account, and modify the text of descriptions and types to make understanding the document easier. It follows that the same object can generate several document interfaces adapted to the particular needs offered in the object. For example, we have seen previously that the "printing" object can have a large number of attributes and methods, which offers a large choice of document interfaces according to the attributes and methods adapted to the needs. It is of course advised to the designer C to make the document interfaces 18 with the help of the user U.
  • the module 12 contains a block 40 for generating documents 41 originating from the document interfaces stored in the base 15.
  • the block 40 and therefore connected to the base 15 to take the document interfaces 18 there and determine the order documents 41 adapted to the particular needs of the user U.
  • an interface including the method illustrated in FIG. 12 will be presented to the user, who will be able to modify the values of the fields 19 and select the execution command buttons to make it a document 41.
  • the document 41 illustrated in FIG. 12 corresponds to the document interface 18 in which the values of the fields 19 have been kept unchanged by the user and the execution button Delayed at a predetermined time has been activated (grayed out in Figure 12).
  • FIG. 13 shows an example of a dialog box 42 presented to the user U by the user module 12.
  • the menu bar of the box 42 contains in particular two main menus "Documents” and "Policies".
  • “Documents” menu you find the "Search” command to find document interfaces, for example from descriptions of the corresponding objects, and the "Open” command to list the document interfaces by the name of their corresponding objects and to select them. an object name. A selected object is displayed with the description of the object. From this interface, the user makes the desired document.
  • the "Documents” menu are also of course the commands for saving (Save and Save as ...) and closing the document.
  • the "Policies” menu notably contains two commands “Display” and "Display history".
  • the "Display” command displays all the documents created by the user in the order of execution of the commands he has chosen. This set defines user policy. He thus has a global view of the methods he has activated from several documents. He can validate or modify it. For example, double clicking on a chosen method opens the corresponding document for possible modifications.
  • the command "Display history” presents all the methods which have been executed by user, completion status, and time.
  • the menu also contains the save and close commands.
  • the foregoing description shows a method for generating an interface 18 for controlling a computer system 10 by a user U, the command being made from at least one object including descriptions of the object and / or at least one member of the object, the method consisting in extracting from the object at least in part said descriptions and organizing them to translate the meaning of said command into a language understandable to the user and thus make said interface a documentary interface.
  • the tool allows designer C to easily adapt the text of the extracted descriptions, so that their organization makes the interface text understandable. To make the process more flexible, the designer could select the descriptions to be extracted.
  • the descriptions including at least a description of a method of the object the method consists in attaching to this description a description of its return code and / or a description of at least one respective parameter of the method and a value 19 of the parameter whose value can be modifiable.
  • the method can advantageously consist in adding to the interface 18 a means of control, by the user, of the moment of execution of said interface.
  • the text of the descriptions used to make the interface is made by a designer using the system, in response to needs which are submitted to it by the user.
  • This cooperation between the designer and the user makes the process very flexible, very scalable and very efficient.
  • this condition is not necessary, the tool being for example adapted to a given trade or a given company function.
  • a computer system 10 comprising a computer assembly 1 and a control interface 11 used by a user U to send to the system system-specific commands for a desired operation of the system, the system implementing the method defined above.

Abstract

The invention concerns a method whereby an interface (18b) for controlling a computer system is produced from at least one object including descriptions of the object and/or at least one member of the object, by extracting therefrom the descriptions and organising them to translate the meaning of the command into a language understood by the user. The user of said interface does not need to be computer literate and can modify the contents thereof in fields (19) to form command documents (41).

Description

TitreHeadline
Procédé de génération d'interfaces pour la commande par un utilisateur d'un système informatique.Method for generating interfaces for control by a user of a computer system.
Domaine techniqueTechnical area
L'invention se rapporte à la commande d'un système informatique par un utilisateur et plus particulièrement par un utilisateur n'ayant pas ou peu de connaissance en informatique ou de son système informatique. L'invention est adaptée à tout système et est particulièrement avantageuse dans le cas où le système est hétérogène. L'invention a pour objet un procédé de génération d'interfaces pour la commande par un utilisateur d'un système informatique, ainsi que le système mettant en œuvre ce procédé. Plus précisément, la commande du système est faite à partir d'au moins un objet incluant des descriptions de l'objet et/ou d'au moins un membre de l'objet.The invention relates to the control of a computer system by a user and more particularly by a user with little or no computer knowledge or of his computer system. The invention is suitable for any system and is particularly advantageous in the case where the system is heterogeneous. The subject of the invention is a method for generating interfaces for control by a user of a computer system, as well as the system implementing this method. More specifically, the control of the system is made from at least one object including descriptions of the object and / or from at least one member of the object.
L'art antérieur.The prior art.
Dans une entreprise, un nombre de plus en plus grand de personnes souhaitent utiliser le système d'information de l'entreprise pour gérer la politique de l'entreprise. Cette utilisation doit se faire actuellement en connaissant les langages de commande du système informatique. Cependant, les personnes qui gèrent la politique de l'entreprise sont très souvent spécialisées dans divers métiers de l'entreprise autres que l'informatique (commerce, personnel, juridique, etc.). Ces personnes se trouvent donc actuellement obligées à investir beaucoup d'argent et de temps dans l'apprentissage des langages de commandes du système, dont la syntaxe est souvent complexe. En outre, le système et ses langages évoluent très vite et nécessitent une formation régulière de ces personnes et un usage permanent du système et des langages. La suite du texte considère comme exemple d'illustration un directeur d'agence bancaire disposant du système informatique de l'agence et de la banque. On suppose que le système est de type ouvert, par exemple celui connu sous le nom de la marque déposée UNIX, et qu'il supporte un logiciel gestionnaire d'applications du type client-serveur, destiné à gérer des propriétés transactionnelles dans un environnement de systèmes ouverts, tel que le logiciel connu sous le nom de la marque déposée TUXEDO (Transactions for UniX Extended for Distributed Opérations). Dans ce contexte, si le directeur souhaite simplement envoyer une commande au système pour ouvrir les applications transactionnelles entre 8 heures et 16 heures du lundi au vendredi, il doit connaître la syntaxe des commandes tmboot et tmshutdown du gestionnaire transactionnel, ainsi que la syntaxe de la commande crontab d'Unix pour ordonnancer les tâches.More and more people in a company want to use the company information system to manage company policy. This use must be done currently knowing the command languages of the computer system. However, the people who manage company policy are very often specialized in various business professions other than IT (commerce, personnel, legal, etc.). These people are therefore currently forced to invest a lot of money and time in learning the command languages of the system, whose syntax is often complex. In addition, the system and its languages evolve very quickly and require regular training for these people and permanent use of the system and languages. The rest of the text considers an illustrative example of a bank branch manager having the computer system of the branch and the bank. It is assumed that the system is of the open type, for example that known under the name of the registered trademark UNIX, and that it supports a software application manager of the client-server type, intended to manage transactional properties in an environment of open systems, such as software known under the trade name TUXEDO (Transactions for UniX Extended for Distributed Operations). In this context, if the director simply wishes to send a command to the system to open transactional applications between 8 a.m. and 4 p.m. from Monday to Friday, he must know the syntax of the transaction manager tmboot and tmshutdown commands, as well as the syntax of the Unix crontab command to schedule tasks.
Au heu d'utiliser les commandes pour avoir accès aux systèmes d'information, une autre technique utilisée depuis plusieurs années consiste à construire des interfaces graphiques pour utilisateur, et leurs options. Les interfaces graphiques proposent à l'utilisateur des options, de sorte que l'utilisateur n'a plus à se rappeler des options de chaque commande.Instead of using commands to access information systems, another technique used for several years consists of building graphical user interfaces, and their options. The graphical interfaces provide the user with options, so that the user no longer has to remember the options for each command.
Bien que les interfaces graphiques aient apporté un gain très important en productivité par rapport à l'emploi de commandes, l'expérience a fait apparaître plusieurs inconvénients importants. D'abord, l'utilisateur d'une interface graphique a toujours besoin d'une période d'apprentissage de l'interface. Ensuite, le développement d'une interface graphique a un coût très élevé. Ce coût tient compte de la spécificité de l'entreprise, de ses activités, des besoins des utilisateurs, des systèmes d'information et des logiciels mis en œuvre, et des évolutions rapides. Enfin, il est nécessaire d'associer une documentation d'aide en hgne à toute interface graphique. Cette documentation est aussi spécifique, évolutive et elle est d'un emploi très lourd, surtout si les informations d'aide nécessitent l'ouverture et la lecture de plusieurs fenêtres successives. Elle se prête donc mal à un emploi trop répété.Although the graphical interfaces have brought a very significant gain in productivity compared to the use of commands, experience has revealed several significant drawbacks. First, the user of a graphical interface always needs a period of learning the interface. Then, the development of a graphical interface has a very high cost. This cost takes into account the specificity of the company, its activities, the needs of users, the information systems and software used, and rapid changes. Finally, it is necessary to associate a help documentation in hgne with any graphical interface. This documentation is also specific, evolving and it is very heavy to use, especially if the help information requires opening and reading several successive windows. It therefore does not lend itself to too repeated a job.
Sommaire de l'inventionSummary of the invention
Un premier but de la présente invention est de fournir à l'utilisateur une interface de commande en un langage très proche de sa langue parlée. De ce fait, il n'aura plus à apprendre les noms des commandes employées par le système informatique et à les retenir en les utilisant régulièrement.A first object of the present invention is to provide the user with a command interface in a language very close to his spoken language. As a result, he will no longer have to learn the names of the commands used by the computer system and remember them by using them regularly.
Un second but de l'invention est de permettre une utilisation intuitive de l'interface des commande. L'utilisateur n'a donc plus à connaître l'emploi correct des commandes du système informatique et leur enchaînement.A second object of the invention is to allow intuitive use of the command interface. The user therefore no longer has to know the correct use of the commands of the computer system and their sequence.
Un troisième but de l'invention est d'offrir facilement à l'utilisateur la possibilité de modifier, de personnaliser et d'enrichir l'interface. L'évolution de l'interface peut se faire ainsi d'elle-même, sans nécessiter l'intervention d'un expert.A third object of the invention is to easily offer the user the possibility of modifying, personalizing and enriching the interface. The evolution of the interface can be done by itself, without requiring the intervention of an expert.
Un quatrième but est d'offrir une interface de commande à un coût sensiblement moins élevé que le coût d'une interface graphique et des formations requises pour utiliser cette interface.A fourth goal is to offer a command interface at a cost significantly lower than the cost of a graphical interface and the training required to use this interface.
L'invention a pour objet un procédé de génération d'une interface pour la commande d'un système informatique par un utilisateur, la commande étant faite à partir d'au moins un objet incluant des descriptions de l'objet et/ou d'au moins un membre de l'objet, caractérisé en ce qu'il consiste à extraire de l'objet au moins en partie lesdites descriptions et à les organiser pour traduire le sens de ladite commande en un langage compréhensible à l'utilisateur et ainsi faire ladite interface.The subject of the invention is a method of generating an interface for controlling a computer system by a user, the command being made from at least one object including descriptions of the object and / or of at least one member of the object, characterized in that it consists in extracting from the object at least in part said descriptions and in organize to translate the meaning of said command into a language understandable to the user and thus make said interface.
L'invention a pour objet corollaire un système informatique comprenant un ensemble informatique et une interface de commande servant à un utilisateur à envoyer au système des commandes spécifiques au système pour une exploitation désirée du système, caractérisé en ce qu'il met en œuvre le procédé défini précédemment.The corollary object of the invention is a computer system comprising a computer assembly and a control interface used by a user to send system-specific commands to the system for a desired operation of the system, characterized in that it implements the method previously defined.
L'invention a aussi pour objet corollaire un support d'enregistrement, tel qu'une disquette magnétique ou un cédérom, incorporant un logiciel pour la mise en œuvre du procédé.The corollary object of the invention is also a recording medium, such as a magnetic diskette or a CD-ROM, incorporating software for the implementation of the method.
Les caractéristiques et avantages de l'invention ressortent de la description qui suit, donnée à titre d'exemple et faite en référence aux dessins annexés.The characteristics and advantages of the invention appear from the description which follows, given by way of example and made with reference to the accompanying drawings.
Présentation des dessins annexés.Presentation of the attached drawings.
La figure 1 est une vue synoptique d'un système informatique mettant en œuvre le procédé de l'invention pour la génération d'une interface de commande du système par un utilisateur pour une exploitation désirée du système.Figure 1 is a block diagram of a computer system implementing the method of the invention for the generation of a system control interface by a user for a desired operation of the system.
* La figure 2 est une fenêtre servant à un concepteur pour la mise en œuvre du procédé de l'invention.* Figure 2 is a window used by a designer for the implementation of the method of the invention.
* La figure 3 est une boîte de dialogue servant au concepteur pour créer dynamiquement une classe satisfaisant à l'exploitation désirée du système par l'utilisateur et à partir de laquelle une interface est générée selon le procédé de l'invention. * La figure 4 est une boîte de dialogue servant au concepteur pour définir un attribut de la classe présentée dans la figure 3. * La figure 5 est une boîte de dialogue servant au concepteur pour définir une méthode de la classe présentée dans la figure 3.* Figure 3 is a dialog box used by the designer to dynamically create a class satisfying the desired operation of the system by the user and from which an interface is generated according to the method of the invention. * Figure 4 is a dialog box used by the designer to define an attribute of the class presented in Figure 3. * Figure 5 is a dialog box used by the designer to define a method of the class presented in Figure 3.
* La figure 6 est une boîte de dialogue servant au concepteur pour définir un paramètre d'une méthode définie dans la figure 5. La figure 7 est une vue synoptique de la structure en arbre de la classe telle que définie au moyen des boîtes de dialogue présentées dans les figures 3 à 6.* Figure 6 is a dialog box used by the designer to define a parameter of a method defined in Figure 5. Figure 7 is a block view of the tree structure of the class as defined by the dialog boxes shown in Figures 3 to 6.
* La figure 8 est une vue synoptique illustrant un procédé de dérivation de la classe présentée dans la figure 7. * Les figures 9 et 10 sont des boîtes de dialogue servant au concepteur pour définir la classe dérivée en utihsant le procédé illustré dans la figure 8. Les figures 11 et 12 illustrent deux interfaces respectives résultant de la mise en œuvre du procédé de l'invention. * La figure 13 est une fenêtre présentée à l'utilisateur pour l'utilisation des interfaces résultant de la mise en œuvre de l'invention.* Figure 8 is a block diagram illustrating a class derivation method presented in Figure 7. * Figures 9 and 10 are dialog boxes used by the designer to define the derived class using the method illustrated in Figure 8 Figures 11 and 12 illustrate two respective interfaces resulting from the implementation of the method of the invention. * Figure 13 is a window presented to the user for using the interfaces resulting from the implementation of the invention.
Description détaillée d'exemples illustrant l'invention.Detailed description of examples illustrating the invention.
La figure 1 illustre un système d'information 10 exploité par un utilisateur U par l'intermédiaire d'une interface de commande 11. Le système 10 peut être un système quelconque. Le système 10 illustré inclut un ensemble informatique 1 comprenant au moins une machine, deux machines 2a et 2b dans l'exemple illustré. Chaque machine illustrée a, de façon bien connue, au moins un processeur A connecté par l'intermédiaire d'un bus B à une mémoire 3. D'une manière générale, la mémoire peut être locale ou distribuée, ou les machines peuvent former des noeuds d'un réseau dans l'ensemble 1. Dans chaque mémoire 3 sont stockés des moyens logiciels, notamment un ou plusieurs systèmes d'exploitation 4. Afin de mieux mettre en relief les avantages de l'invention, il sera considéré comme un système hétérogène représentatif d'un cas difficile à gérer. Les deux machines 2 sont supposées fonctionner sous deux systèmes d'exploitation respectifs 4a et 4b de types ou de versions différents l'un de l'autre, par exemple un système d'exploitation du type propriétaire et un système d'exploitation de type ouvert, par exemple celui connu sous l'un des noms de marque déposée UNIX ou Windows NT. L'ensemble informatique 1 dispose aussi de moyens de base de données, appelés base de données 5 et pouvant être constitués d'une ou plusieurs bases de données locales ou distantes. Les machines 2 ont aussi chacune une interface d'entrée-sortie C connectée au bus B. Les interfaces d'entrée-sortie C des deux machines sont interconnectées entre elles ainsi qu'à la base de données C.FIG. 1 illustrates an information system 10 operated by a user U via a control interface 11. The system 10 can be any system. The system 10 illustrated includes a computer assembly 1 comprising at least one machine, two machines 2a and 2b in the example illustrated. Each illustrated machine has, in a well known manner, at least one processor A connected via a bus B to a memory 3. In general, the memory can be local or distributed, or the machines can form nodes of a network in the set 1. In each memory 3 are stored software means, in particular one or more operating systems 4. In order to better highlight the advantages of the invention, it will be considered as a system heterogeneous representative of a difficult case to manage. The two machines 2 are supposed to operate under two respective operating systems 4a and 4b of different types or versions from each other, for example a proprietary type operating system and an open type operating system, for example that known by one of the trade names UNIX or Windows NT . The computer unit 1 also has database means, called database 5 and which may consist of one or more local or remote databases. The machines 2 also each have an input-output interface C connected to the bus B. The input-output interfaces C of the two machines are interconnected with each other as well as with the database C.
L'interface de commande 11 comprend un module de commande 12, un module de conception 13, un générateur 14 d'interfaces et une base d'interface 15. Le module 12 est connecté de façon bidirectionnelle à l'ensemble informatique 1. Le module 13 peut aussi être connecté de la même façon à l'ensemble informatique 1. La base d'interface 15 est connectée de façon bidirectionnelle aux modules 12 et 13 et au générateur 14. Le générateur 14 est aussi connecté pour être commandé par le module 13. Le module de commande 12 sert à l'utilisateur U pour commander et exploiter les données du système 10. Le module de conception 13 sert à un concepteur C, qui est un autre utihsateur de l'interface 11 mais qui est un speciahste en informatique. Les deux utilisateurs U et C ont des consoles respectives 16 et 17 attachées aux modules respectifs 12 et 13.The control interface 11 comprises a control module 12, a design module 13, an interface generator 14 and an interface base 15. The module 12 is connected bidirectionally to the computer assembly 1. The module 13 can also be connected in the same way to the computer assembly 1. The interface base 15 is bidirectionally connected to the modules 12 and 13 and to the generator 14. The generator 14 is also connected to be controlled by the module 13 The control module 12 is used by the user U to control and exploit the data of the system 10. The design module 13 is used by a designer C, who is another user of the interface 11 but who is a computer specialist . The two users U and C have respective consoles 16 and 17 attached to the respective modules 12 and 13.
En bref, l'utilisateur U définit des besoins pour connaître et améhorer le fonctionnement de l'entreprise et soumet ses besoins au concepteur C. Le concepteur C crée au moyen de son module 13 des objets logiciels répondant aux besoins de l'utihsateur U et les envoie au générateur 14 pour être converties en interfaces 18 (figures 11 et 12) correspondant à ses besoins et exprimant les commandes du système en un langage qui lui est compréhensible. Ces interfaces servent à l'utihsateur pour former des documents et seront appelées interfaces documentaires. L'utilisateur U sera par exemple un directeur d'agence bancaire non spécialisé en informatique. On suppose par exemple que l'utilisateur U désire consulter l'ensemble informatique 1 de la banque pour faire des requêtes en vue d'obtenir une hste d'étudiants, chents de l'agence, et imprimer pour eux des lettres personnalisées d'information, d'invitation et de rappel. L'utilisateur U transmet ses besoins au concepteur C, par exemple lors d'une réunion entre eux. Le concepteur transcrit ces besoins en utihsant, dans une première étape, le module 13 pour créer, modifier et/ou supprimer des objets et des classes d'objets concernés par ces besoins. Par exemple, afin de satisfaire au besoin précité de l'utihsateur U, le concepteur C créera une classe impression avec : un premier attribut "hste de diffusion" selon un ensemble de critères, ici les étudiants de l'agence ; un second attribut "nombre d'exemplaires" (entier) ; une première méthode "imprimer" ayant comme paramètre l'imprimante destinataire ; et une seconde méthode "visualiser les opérations d'impression" pour connaître le déroulement de l'impression. Les objets et classes créés par le concepteur sont stockés dans la base d'interface 15. La transcription finale par le concepteur C des besoins de l'utilisateur U n'est contenue que dans des objets qui ont été directement créés précédemment ou qui sont des instances de classes définies précédemment. Ces objets sont contenus dans la base 15, qui est contenue dans l'interface de commande 11 dans l'exemple illustré mais qui pourrait être extérieure à l'interface 11 et incluse dans l'ensemble informatique 1. Les objets sont convertis en interfaces documentaires présentées à l'utilisateur U pour lui servir à former des documents de commande satisfaisant à ses besoins.In short, the user U defines needs to know and understand the functioning of the company and submits his needs to the designer C. The designer C creates by means of his module 13 software objects meeting the needs of the user U and sends them to the generator 14 to be converted into interfaces 18 (FIGS. 11 and 12) corresponding to its needs and expressing the commands of the system in a language which is comprehensible to it. These interfaces are used by the user to form documents and will be called document interfaces. The user U will for example be a director of a bank agency not specialized in data processing. It is assumed for example that the user U wishes to consult the computer unit 1 of the bank to make requests in order to obtain a list of students, dear to the agency, and print personalized letters of information for them. , invitation and reminder. The user U transmits his needs to the designer C, for example during a meeting between them. The designer transcribes these needs by using, in a first step, the module 13 to create, modify and / or delete objects and classes of objects concerned by these needs. For example, in order to satisfy the aforementioned need of the user U, the designer C will create an impression class with: a first attribute "distribution hste" according to a set of criteria, here the students of the agency; a second attribute "number of copies"(integer); a first "print" method having as parameter the recipient printer; and a second method "view printing operations" to know the progress of printing. The objects and classes created by the designer are stored in the interface base 15. The final transcription by the designer C of the needs of the user U is only contained in objects which have been directly created previously or which are instances of classes defined previously. These objects are contained in the base 15, which is contained in the command interface 11 in the example illustrated but which could be external to the interface 11 and included in the computer assembly 1. The objects are converted into document interfaces presented to user U for use in forming order documents satisfying his needs.
Le module 13 va d'abord être présenté. Il met en œuvre deux outils logiciels 20 et 30 exécutant respectivement un procédé de création dynamique de classes et un procédé de dérivation de classes et objets. L'outil 20 de création dynamique de classes va maintenant être présenté. La figure 2 illustre un exemple d'écran 21 qu'affiche la console 17 pour servir d'interface entre le concepteur C et le module 13. L'écran 21 a une barre 22 de menus incluant notamment les menus "Classes", "Objets", "Rechercher" et "Exporter à U". Le menu "Classes" permet de créer dynamiquement des classes d'objets, par héritage ou non. Il permet aussi d'ouvrir une classe pour éventuellement la modifier, l'enregistrer ou la fermer. Le menu "Objets" permet d'instancier les classes définies précédemment, afin de créer des objets qu'on peut ensuite cloner. Comme pour les classes, on peut ouvrir un objet, le modifier, l'enregistrer sur le disque et le fermer. Avec l'outil 20, le concepteur C peut définir les commandes qui se trouvent dans les deux menus tels qu'illustrés par exemple dans ceux de l'écran 21. Le menu "Classes" iUustré contient les commandes "Nouvelle classe", "Nouvelle classe héritée", "Ouvrir une classe", "Supprimer une classe", "Enregistrer la classe", "Enregistrer la classe sous..." (Save the class as...) et "Fermer la classe". Le menu "Objets" contient les commandes "Nouvel objet de classe", "Cloner un objet", "Ouvrir un objet", "Supprimer un objet", "Enregistrer l'objet", "Enregistrer l'objet sous..." et "Fermer l'objet".Module 13 will first be presented. It implements two software tools 20 and 30 respectively executing a method for dynamic creation of classes and a method for deriving classes and objects. The tool 20 for dynamic creation of classes will now be presented. FIG. 2 illustrates an example of screen 21 displayed by console 17 to serve as an interface between designer C and module 13. Screen 21 has a menu bar 22 including in particular the "Classes", "Objects" menus "," Search "and" Export to U ". The "Classes" menu allows you to dynamically create object classes, by inheritance or not. It also allows you to open a class to modify, save or close it. The "Objects" menu allows you to instantiate the classes defined above, in order to create objects that can then be cloned. As with classes, you can open an object, modify it, save it to disk and close it. With tool 20, designer C can define the commands found in the two menus as illustrated, for example in those on screen 21. The "Classes" menu iUustrated contains the commands "New class", "New inherited class "," Open class "," Delete class "," Save class "," Save class as ... "and" Close class ". The "Objects" menu contains the commands "New class object", "Clone an object", "Open an object", "Delete an object", "Save the object", "Save the object as ..." and "Close object".
L'outil 20 met en œuvre un procédé de génération dynamique d'une classe d'objets. Le procédé est déclenché automatiquement par le module de conception 13 lorsque le concepteur C active la commande "Nouvelle classe" du menu "Classes" de la fenêtre 22 de la figure 2. Le procédé de génération automatique d'une classe consiste à créer une classe générique globale "GenericClass" ayant deux membres possibles, l'un étant relatif à au moins un attribut et l'autre étant relatif à au moins une méthode , au moins l'un des deux membres étant une instance d'une classe générique, et à instancier la classe générique globale pour avoir ladite classe d'objets. Dans l'outil 20 illustré, deux classes génériques "GenericAttribute" et "GenericMethod" sont attribuées aux deux membres respectifs de la classe générique globale "GenericClass". En outre, si une méthode inclut au moins un paramètre non fixe, ce paramètre est lui même une instance d'une classe générique correspondante "GenericParameter".The tool 20 implements a dynamic generation process for a class of objects. The method is triggered automatically by the design module 13 when the designer C activates the "New class" command from the "Classes" menu of window 22 of FIG. 2. The method of automatic generation of a class consists in creating a class generic generic "GenericClass" having two possible members, one relating to at least one attribute and the other relating to at least one method, at least one of the two members being an instance of a generic class, and instantiate the global generic class to have said object class. In the illustrated tool 20, two generic classes "GenericAttribute" and "GenericMethod" are assigned to the two respective members of the global generic class "GenericClass". In addition, if a method includes at least a non-fixed parameter, this parameter is itself an instance of a corresponding generic class "GenericParameter".
D'une manière générale, les quatre classes génériques ainsi créées ne sont pas visibles par le concepteur C. Dans l'exemple illustré, elles sont mises à la disposition du concepteur C lorsqu'il exécute une commande dans les menus "Classes" et "Objets". Ainsi, une classe générique se définit comme une classe permettant au concepteur C de créer une nouvelle classe en créant une instance d'une classe générique globale. Puisque la création d'instances est dynamique dans tous les langages, la création d'une classe devient aussi dynamique pour le concepteur C. De même, sachant qu'un objet est une nouveUe instance d'une classe, la création d'un objet correspond alors aussi à la création d'une copie de cette classe, c'est-à-dire à une nouvelle instance d'une classe générique globale. Par conséquent, le procédé déclenché par l'outil 20 est aussi déclenché lorsque le concepteur C active la commande "Nouvel objet de classe" dans le menu "Objets" de la fenêtre 22 de la figure 2. Le procédé va maintenant être illustré de la façon qu'il se présente au concepteur C par l'intermédiaire de l'outil 20.In general, the four generic classes thus created are not visible to designer C. In the example illustrated, they are made available to designer C when he executes a command in the "Classes" and " Objects". Thus, a generic class is defined as a class allowing the designer C to create a new class by creating an instance of a global generic class. Since the creation of instances is dynamic in all languages, the creation of a class also becomes dynamic for the designer C. Similarly, knowing that an object is a new instance of a class, the creation of an object then also corresponds to the creation of a copy of this class, that is to say to a new instance of a global generic class. Consequently, the method triggered by the tool 20 is also triggered when the designer C activates the command "New class object" in the "Objects" menu of the window 22 of FIG. 2. The method will now be illustrated from the so that he presents himself to designer C via tool 20.
La figure 3 illustre un exemple de boîte de dialogue 23 que l'outilFigure 3 shows an example of a dialog box 23 that the tool
20 ouvre lorsque le concepteur C clique sur la commande "NouveUe classe" du menu "Classes". Le concepteur C utilise la boîte de dialogue 23 pour saisir toutes les données relatives à une nouvelle classe qui n'hérite pas. On sait que les données sont les attributs et les méthodes de la nouvelle classe.20 opens when designer C clicks on the "New class" command in the "Classes" menu. The designer C uses the dialog box 23 to enter all the data relating to a new class which does not inherit. We know that data are the attributes and methods of the new class.
La boîte 23 illustrée contient, pour la saisie des données,The illustrated box 23 contains, for data entry,
- un champ de texte "Nom de la classe"- a "Class name" text field
- un champ de texte "Identification de la classe (Class Id)"- a text field "Identification of the class (Class Id)"
- une zone de texte "Description de la classe" - une liste "Méthodes de la classe" et- a "Class Description" text box - a "Class Methods" list, and
- une liste "Attributs de la classe" La boîte 23 contient aussi les six boutons de commande encadrés en trait épais :- a "Class attributes" list Box 23 also contains the six control buttons framed in thick lines:
- "Modifier la méthode"- "Modify the method"
- "Supprimer la méthode"- "Delete method"
- "Ajouter une méthode"- "Add a method"
- "Modifier l'attribut"- "Edit attribute"
- "Supprimer l'attribut" et- "Delete attribute" and
- "Ajouter un attribut".- "Add an attribute".
Lorsque cette boîte de dialogue est validée, eUe se traduit par la création d'une instance d'une classe générique globale, dite "GenericClass". La classe générique globale de l'exemple illustré dans la figure 3 a plusieurs attributs.When this dialog box is validated, it results in the creation of an instance of a global generic class, called "GenericClass". The global generic class of the example illustrated in Figure 3 has several attributes.
Le premier attribut est un nom, formé par une chaîne de caractères désignant le nom de la classe. Il s'écrit en remphssant le champ "Nom de la classe" de la boîte 23.The first attribute is a name, formed by a character string designating the name of the class. It is written by filling in the "Class name" field in box 23.
Le second attribut est une identification de la classe, formée par une chaîne de caractères permettant d'identifier de façon unique la classe ou l'objet dans le système. Cet attribut s'écrit en remphssant le champ "Identification de la classe" dans la boîte 23, par exemple in indiquant la date, l'heure de création, un nombre aléatoire formant un ticket, etc.The second attribute is a class identification, formed by a character string allowing to uniquely identify the class or the object in the system. This attribute is written by filling in the "Class identification" field in box 23, for example in indicating the date, the time of creation, a random number forming a ticket, etc.
Le troisième attribut est une description, formée par du texte qui décrit la raison d'être de la classe. Il s'écrit en remphssant la zone "Description de la classe".The third attribute is a description, formed by text that describes the purpose of the class. It is written by filling in the "Class description" area.
Le quatrième attribut est un tableau nommé "Attributs", qui référence les attributs de la classe. Les attributs de la classe sont eux-mêmes des instances d'une classe générique d'attributs, dite "GenericAttribute", qui a comme attributs :The fourth attribute is an array called "Attributes", which references the attributes of the class. The attributes of the class are themselves instances of a generic attribute class, called "GenericAttribute", which has as attributes:
- le nom de l'attribut,- the name of the attribute,
- la description de l'attribut, - soit le type de l'attribut, soit les valeurs possibles de l'attribut,- the description of the attribute, - either the type of the attribute, or the possible values of the attribute,
- la valeur par défaut de l'attribut, donnée à la création de la classe "GenericAttribute", et- the default value of the attribute, given when the "GenericAttribute" class is created, and
- la valeur réelle de l'attribut, qui est invisible au concepteur C et qui n'est donc pas définie à la création de la classe. Elle est définie par l'utilisateur U de la façon décrite ultérieurement.- the actual value of the attribute, which is invisible to designer C and which is therefore not defined when the class is created. It is defined by user U as described later.
Par exemple, la classe "Attributs [i]" est une instance de "GenericAttribute" et référence le ième attribut de la classe définie par le concepteur C.For example, the class "Attributes [i]" is an instance of "GenericAttribute" and references the ith attribute of the class defined by the designer C.
La figure 4 illustre une boîte de dialogue 24 de l'outil 20 constitutif du quatrième attribut de "GenericClass". Cette boîte s'ouvre à partir de la boîte 23, par exemple en nommant "Classe 1" la classe issue par instanciation de la classe générique globale "GenericClass" et en activant le bouton "Ajouter un attribut". La boîte 24 contient :FIG. 4 illustrates a dialog box 24 of the tool 20 constituting the fourth attribute of "GenericClass". This box opens from box 23, for example by naming "Class 1" the class issued by instantiating the global generic class "GenericClass" and activating the "Add attribute" button. Box 24 contains:
- un champ de texte "Nom de l'attribut",- a "Attribute name" text field,
- une zone de texte "Description de l'attribut",- a "Attribute description" text box,
- un champ de texte "Type de l'attribut",- a "Type of attribute" text field,
- une zone de texte pour "Valeurs possibles de l'attribut", - un champ de texte "Valeur par défaut de l'attribut", et- a text box for "Possible values of the attribute", - a text field "Default value of the attribute", and
- un champ de texte "Valeur réelle de l'attribut" représenté en grisé sur la figure 4 pour indiquer qu'il n'est pas visible par le concepteur C.- a text field "Actual value of the attribute" shown in gray in FIG. 4 to indicate that it is not visible by the designer C.
De même, pour modifier un attribut, il suffit de sélectionner l'attribut dans la hste des attributs de la figure 3 et d'activer le bouton "Modifier l'attribut", de façon à avoir la boîte de dialogue 24 de la figure 4 et à modifier les données qui apparaissent dans la boîte 24. En tant que premier attribut, on donne à l'attribut le nomSimilarly, to modify an attribute, simply select the attribute in the attributes hste of figure 3 and activate the button "Modify attribute", so as to have the dialog box 24 of figure 4 and modify the data that appears in box 24. As the first attribute, the attribute is given the name
"Attributl" et on remplit les autres champs. La validation de la boîte de dialogue 24 se traduit par la création d'une instance de la classe générique "GenericAttribute". Le nom "Attributl" va figurer dans la liste des attributs de la figure 3, comme indiqué."Attributl" and we fill in the other fields. The validation of the dialog box 24 results in the creation of an instance of the generic class "GenericAttribute". The name "Attributl" will appear in the list of attributes in Figure 3, as shown.
Le cinquième attribut de la classe générique "GenericClass" est un tableau nommé "Méthodes", qui référence les méthodes de la classe. Ces méthodes sont aussi, dans l'exemple illustré, des instances d'une classe générique de méthodes dite "GenericMethod". Une méthode est définie par les attributs suivants :The fifth attribute of the generic class "GenericClass" is an array named "Methods", which references the methods of the class. These methods are also, in the example illustrated, instances of a generic class of methods called "GenericMethod". A method is defined by the following attributes:
- son nom,- her name,
- sa description, - son type de retour,- its description, - its return type,
- ses paramètres, et- its parameters, and
- son script d'exécution.- its execution script.
La figure 5 illustre une boîte de dialogue 25 de l'outil 20 constitutif du cinquième attribut de "GenericClass". Cette boîte s'ouvre à partir de la boîte 23, par exemple en activant le bouton "Ajouter une méthode". La boîte 25 contient :FIG. 5 illustrates a dialog box 25 of the tool 20 constituting the fifth attribute of "GenericClass". This box opens from box 23, for example by activating the "Add method" button. Box 25 contains:
- un champ de texte "Nom de la méthode",- a "Method name" text field,
- une zone de texte "Description de la méthode", - un champ de texte "Type de retour de la méthode",- a "Method description" text box, - a "Method return type" text field,
- une liste de "Paramètres de la méthode",- a list of "Method parameters",
- un bouton de commande "Ajouter",- an "Add" command button,
- un bouton de commande "Modifier", et- an "Modify" command button, and
- un bouton de commande "Supprimer".- a "Delete" command button.
En tant que première méthode, on donne un nom à la méthode, par exemple "Méthode 1", et on remplit les autres champs. La vahdation de la boîte de dialogue 25 se traduit par la création d'une instance de la classe générique "GenericMethod". Le nom "Méthodel" va figurer dans la liste des méthodes de la figure 3, comme indiqué.As the first method, we give a name to the method, for example "Method 1", and fill in the other fields. The vahdation of the dialog box 25 results in the creation of an instance of the generic class "GenericMethod". The name "Methodel" will appear in the list of methods in Figure 3, as shown.
La classe générique "GenericMethod" contient, en plus des attributs de la méthode, un tableau "Paramètres", qui référence les paramètres de la méthode. Le tableau peut être vide si la classe générique ne contient pas de paramètre à déterminer, ou peut ne pas exister si cette classe générique n'est destinée à n'avoir aucun paramètre déterminable ou si elle n'a que des paramètres fixes ou prédéterminés. Dans le tableau, les paramètres sont eux aussi des instances d'une classe générique "GenericParameter". Un paramètre d'une méthode est défini par ses attributs suivants :The generic class "GenericMethod" contains, in addition to the attributes of the method, an array "Parameters", which references the parameters of the method. The array can be empty if the generic class does not contain a parameter to be determined, or may not exist if this generic class is not intended to have no determinable parameter or if it has only fixed or predetermined parameters. In the table, the parameters are also instances of a generic class "GenericParameter". A parameter of a method is defined by its following attributes:
- son nom,- her name,
- sa description, - soit son type, soit ses valeurs possibles,- its description, - either its type or its possible values,
- sa valeur par défaut, et- its default value, and
- sa valeur réelle, non visible du concepteur C.- its real value, not visible to designer C.
Par exemple, si le paramètre se rapporte au nombre de pages à imprimer, la valeur par défaut sera 1 mais l'utilisateur U pourra indiquer une valeur réelle autre, par exemple 3 pour avoir trois exemplaires des pages à imprimer.For example, if the parameter relates to the number of pages to be printed, the default value will be 1 but the user U may indicate another real value, for example 3 to have three copies of the pages to be printed.
La figure 6 illustre une boîte de dialogue 26 de l'outil 20 pour remplir la table de paramètres de "GenericMethod" dans la figure 5. La boîte 26 s'ouvre à partir de la boîte 25, en activant le bouton "Ajouter". La boîte 26 contient :FIG. 6 illustrates a dialog box 26 of the tool 20 for filling the parameter table of "GenericMethod" in FIG. 5. The box 26 opens from box 25, by activating the "Add" button. Box 26 contains:
- un champ de texte "Nom du paramètre",- a "Parameter name" text field,
- une zone de texte "Description du paramètre",- a "Parameter description" text box,
- un champ de texte "Type du paramètre", - une zone de texte "Valeurs possibles du paramètre",- a "Parameter type" text field, - a "Parameter possible values" text box,
- un champ de texte "Valeur par défaut du paramètre", et - un champ de texte "Valeur réelle du paramètre" représenté en grisé sur la figure 5 pour indiquer que ce champ n'est pas visible du concepteur C.- a "Parameter default value" text field, and - a text field "Actual value of the parameter" shown in gray in Figure 5 to indicate that this field is not visible to designer C.
En tant que premier paramètre, on lui donne par exemple le nom "Paraml" et on rempht les autres champs. La validation de la boîte de dialogue 26 se traduit par la création d'une instance de la classe générique "GenericParameter". Le nom "Paraml" va figurer dans la hste des paramètres de la figure 5.As the first parameter, it is given for example the name "Paraml" and the other fields are replaced. The validation of the dialog box 26 results in the creation of an instance of the generic class "GenericParameter". The name "Paraml" will appear in the hste of parameters in Figure 5.
La boîte de dialogue 23 de la figure 3 étant remplie, la classe "Classe 1" est créée dynamiquement. On peut la vahder en la sauvegardant avec la commande "Enregistrer la classe" ou "Enregistrer la classe sous...".The dialog box 23 of FIG. 3 being filled, the class "Class 1" is created dynamically. You can download it by saving it with the command "Save class" or "Save class as ...".
La figure 7 illustre la structure en arbre 27a de la classeFigure 7 illustrates the tree structure 27a of the class
"Classe 1" résultant de la validation de la boîte 23. Dans la figure 7, la classe "Classe 1" est une instance de la classe générique globale "GenericClass" et a un attribut "Attributl" et une méthode "Méthode 1" ayant elle-même un paramètre "Paraml", qui sont tous les trois des instances de trois classes génériques respectives. Bien sûr, une autre classe, instance de la classe générique globale "GenericClass", pourrait avoir plusieurs instances de chacune des trois classes génériques "GenericAttribute", "GenericMethod" et "GenericParameter". Cette structure en arbre permet de dynamiquement modifier, ajouter et supprimer à tout moment des membres de la classe (attributs ou méthodes)."Class 1" resulting from the validation of the box 23. In FIG. 7, the class "Class 1" is an instance of the global generic class "GenericClass" and has an attribute "Attributl" and a method "Method 1" having itself a parameter "Paraml", which are all three instances of three respective generic classes. Of course, another class, an instance of the global generic class "GenericClass", could have multiple instances of each of the three generic classes "GenericAttribute", "GenericMethod" and "GenericParameter". This tree structure makes it possible to dynamically modify, add and delete at any time members of the class (attributes or methods).
On sait qu'un objet est une instance d'une classe. L'activation de la commande "Nouvel objet de classe" dans le menu "Objets" de la fenêtre 21 de la figure 2 affiche sur la console 17 du concepteur C une boîte de dialogue (non iUustrée) qui contient la liste de toutes les classes déjà définies. Le concepteur C peut en sélectionner une, qui sera la classe du nouvel objet. Dans un objet on donne éventuellement des valeurs aux attributs. Ces valeurs représenteront son identité et son état.We know that an object is an instance of a class. Activation of the "New class object" command in the "Objects" menu in window 21 of FIG. 2 displays on the console 17 of designer C a dialog box (not illustrated) which contains the list of all the classes already defined. Designer C can select one, which will be the class of the new object. In an object we possibly give values to attributes. These values will represent his identity and his state.
En outre, dans la classe générique globale "GenericClass" teUe qu'eUe apparaît de la figure 3 a de préférence un attribut supplémentaire consistant en un booléen "0" ou "1" indiquant si l'instance de la classe générique en cours représente une classe ou un objet. Dans l'exemple illustré, le booléen est "1" pour indiquer que le concepteur crée une classe. Le booléen se met automatiquement à la valeur correspondante en réponse à la commande "NouveUe classe" ou "Nouvel objet de classe" qui a été actionnée par le concepteur C dans la fenêtre 22 de la figure 2. Dans l'exemple choisi, cet attribut n'est pas visible du concepteur C et est donc représenté en grisé.Furthermore, in the global generic class "GenericClass" such that it appears in FIG. 3 preferably has an additional attribute consisting of a boolean "0" or "1" indicating whether the instance of the current generic class represents a class or object. In the example shown, the boolean is "1" to indicate that the designer is creating a class. The boolean is automatically set to the corresponding value in response to the command "New class" or "New class object" which was activated by designer C in window 22 of figure 2. In the example chosen, this attribute is not visible to designer C and is therefore shown in gray.
D'autre part, dans la fenêtre 21 de la figure 2, le menu "Rechercher" est très utile au concepteur C pour faire une recherche puissante dans la base 15 pour y trouver des classes et des objets créés selon une liste de critères qu'il définit. Le concepteur C peut, par exemple, créer une nouveUe classe par héritage à partir de la classe qu'il a trouvée, au heu de partir de zéro et refaire un travail déjà accompli.On the other hand, in the window 21 of FIG. 2, the "Search" menu is very useful for the designer C to make a powerful search in the base 15 to find there classes and objects created according to a list of criteria that he defines. Designer C can, for example, create a new class by inheritance from the class he found, instead of starting from scratch and redoing a work already done.
Plus généralement, les boîtes de dialogue 23-26 servent donc au concepteur pour générer respectivement la classe générique globale et les classes génériques qui peuvent la composer. Bien que les boîtes de dialogue iUustrées définissent complètement ces classes, tous les attributs, les types, les champs et zones de texte iUustrés ne sont pas nécessaires. En particuher, les descriptions sont Ulustrées à une fin autre que le procédé de génération automatique de classes qui vient d'être décrit.More generally, the dialog boxes 23-26 are therefore used by the designer to respectively generate the global generic class and the generic classes which can compose it. Although iUustrated dialogs completely define these classes, not all iUustrated attributes, types, fields and text boxes are required. In particular, the descriptions are illustrated for a purpose other than the method of automatic generation of classes which has just been described.
La description va maintenant porter sur l'outil 30 de dérivation d'une classe ou d'un objet, l'outU 30 étant contenu dans le module 13 de l'interface de commande 11 de la figure 1. L'héritage avec la commande "NouveUe classe héritée", l'instanciation avec la commande "Nouvel objet de classe" et le clonage avec la commande "Cloner un objet" nécessitent en commun la création dynamique d'une copie de la classe (pour l'héritage ou l'instanciation) ou d'une copie de l'objet (pour le clonage).The description will now relate to the tool 30 for deriving a class or an object, the outU 30 being contained in the module 13 of the command interface 11 of FIG. 1. Inheritance with the "New inherited class" command, instantiation with the "New class object" command and cloning with the "Clone an object" command in common require the dynamic creation of a copy of the class (for inheritance or instantiation) or a copy of the object (for cloning).
La figure 7 illustre aussi un arbre 27b d'une classe "ClasseDl" obtenue par duplication de "Classel". Cette figure Ulustre, d'une manière générale, que la duplication de l'instance de "GenericClass" ne suffit pas, car la classe dupliquée "ClasseDl" va pointer aux mêmes instances "GenericMethod" et "GenericAttribute" de l'instance "Classel" de "GenericClass". Par exemple, il ressort de la figure 7 que "Attributl" est commun aux deux classes, alors que les deux classes devraient être distinctes et indépendantes. Par conséquent, pour dériver une classe ou un objet, c'est-à- dire pour créer par héritage une nouvelle classe, pour instancier une classe ou pour cloner un objet, U faut non seulement dupliquer l'instance de "GenericClass", mais aussi duphquer chaque instance référencée directement ou indirectement par l'instance de "GenericClass".FIG. 7 also illustrates a tree 27b of a class "ClasseDl" obtained by duplication of "Classel". This figure illustrates, in general, that duplicating the instance of "GenericClass" is not enough, because the duplicated class "ClasseDl" will point to the same instances "GenericMethod" and "GenericAttribute" of the instance "Classel "from" GenericClass ". For example, it appears from FIG. 7 that "Attributl" is common to the two classes, whereas the two classes should be distinct and independent. Consequently, to derive a class or an object, ie to create by inheritance a new class, to instantiate a class or to clone an object, U must not only duplicate the instance of "GenericClass", but also duphque each instance referenced directly or indirectly by the instance of "GenericClass".
D'autre part, les développeurs de logiciels utihsent une technique de sériahsation qui s'applique à de nombreux langages, tels que Java ou C++. La sériahsation permet de stocker tout objet sur un support d'enregistrement de données, un disque par exemple. Si par exemple un premier objet référence des objets, qui eux-mêmes référencent d'autres objets et ainsi de suite, il suffit d'écrire le premier objet sur le disque avec la méthode de sériahsation pour stocker automatiquement en mémoire l'arborescence de tous les objets référencés directement ou indirectement par le premier objet.On the other hand, software developers use a serialization technique that applies to many languages, such as Java or C ++. Serial storage makes it possible to store any object on a data recording medium, a disc for example. If for example a first object references objects, which themselves reference other objects and so on, it is enough to write the first object on the disk with the serialization method to automatically store in memory the tree structure of all objects referenced directly or indirectly by the first object.
La figure 8 illustre schématiquement le principe du procédé de dérivation d'une classe "Classel" ou d'un objet. L'outU 30 met en œuvre ce procédé. L'exemple illustré porte sur la création d'une classe "ClasseD2" par héritage de la classe "Classel" telle qu'Ulustrée dans la figure 7, étant bien entendu que le procédé peut s'apphquer de la même façon à l'instanciation d'une classe ou le clonage d'un objet. Comme indiqué à la figure 8, le procédé de dérivation consiste en une première étape à seriahser la classe "Classel" en la copiant sur un disque D, par exemple le disque dur d'une machine 2a ou 2b de l'ensemble informatique 1 de la figure 1. Ainsi, toute l'arborescence 27a de cette classe, telle qu'Ulustrée dans la figure 7, va être duphquée et stockée dans le disque. La seconde étape consiste à lire la classe dupliquée, stockée dans le disque D, en la chargeant dans l'outU 30, c'est-à-dire dans la mémoire vive sur laqueUe est chargé le programme de l'outU. Il en résulte la classe dupliquée "ClasseD2" ayant une arborescence 27c identique à ceUe de l'arborescence 27a de la classe mère "Classel" mais indépendante de la classe mère. En langage Java par exemple, les deux étapes du procédé peuvent s'exécuter par exemple par les deux instructions suivantes :FIG. 8 schematically illustrates the principle of the process for deriving a "Classel" class or an object. The utU 30 implements this process. The illustrated example relates to the creation of a class "ClasseD2" by inheritance of the class "Classel" such as Illustrated in figure 7, it being understood that the process can be applied in the same way to instantiation of a class or the cloning of an object. As shown in Figure 8, the derivation process consists of a first step in seriahser the class "Classel" by copying it to a disk D, for example the hard disk of a machine 2a or 2b of the computer unit 1 of FIG. 1. Thus, the whole tree structure 27a of this class, as illustrated in FIG. 7, will be duphked and stored in the disk. The second step consists in reading the duplicated class, stored in disk D, by loading it into the tool 30, that is to say in the RAM on which the program of the tool is loaded. This results in the duplicated class "ClasseD2" having a tree structure 27c identical to that of the tree structure 27a of the mother class "Classel" but independent of the mother class. In Java language for example, the two stages of the process can be executed for example by the following two instructions:
iZeSireαm.writeObject(Classel) ;iZeSireαm.writeObject (Classel);
// pour seriahser l'arborescence d'origine Classel Nouvel objet ou NouveUe classe = FiZeS£reαm.readObject() ; // pour avoir une copie de Classel// to seriahser the original tree structure Classel New object or New class = FiZeS £ reαm.readObject (); // to get a copy of Classel
La figure 9 iUustre une boîte de dialogue 31 pour l'utUisation de l'outU 30. Cet exemple se rapporte à celui de la figure 9, qui porte sur la création d'une classe héritant d'une autre classe. En exécutant la commande "Nouvelle classe héritée" du menu "Classes" de la figure 3, la fenêtre de dialogue 31 de la figure 9 apparaît. Cette fenêtre contient une zone de texte "Nom de la nouveUe classe" et une liste des classes parmi lesquelles la classe mère peut être choisie. Dans l'exemple choisi, la classe "Classel" de la liste est choisie, comme indiqué en grisé à la figure 9. Dans l'exemple précédent, la classe héritée se nomme "classeD2". La figure 10 illustre un exemple de boîte de dialogue 32 résultant de la validation de la boîte 31. La boîte 32 est semblable à la boîte 23 de la figure 3. Par conséquent, seules les différences vont être indiquées ci- après. Les données contenues dans la boîte 32 sont remplies automatiquement par le logiciel de l'outil 30. Le nom de la classe est celui qui a été indiqué par le concepteur C dans la boîte 31 de la figure 9. La boîte 32 contient en plus un tableau indiquant le ou les parents de la classe, ici "Classel" que le concepteur C a sélectionnée dans la hste de la boîte 31. Les autres données sont semblables à celles de la boîte 23, puisque l'arborescence 27c de la classe fille "ClasseD2" est la même que l'arborescence 27a de la classe mère "Classel". Grâce aux boutons de commande de la boîte 32, U est possible de faire évoluer simplement la nouveUe classe "ClasseD2" indépendamment de la classe mère "Classel".FIG. 9 iUustrates a dialog box 31 for the use of the utU 30. This example relates to that of FIG. 9, which relates to the creation of a class inheriting from another class. By executing the "New inherited class" command from the "Classes" menu in Figure 3, the dialog window 31 in Figure 9 appears. This window contains a "New class name" text box and a list of classes from which the parent class can be chosen. In the example chosen, the "Classel" class from the list is chosen, as shown in gray in Figure 9. In the previous example, the inherited class is called "classD2". FIG. 10 illustrates an example of dialog box 32 resulting from the validation of box 31. Box 32 is similar to box 23 of FIG. 3. Consequently, only the differences will be indicated below. The data contained in the box 32 are filled in automatically by the software of the tool 30. The name of the class is that which was indicated by the designer C in the box 31 of FIG. 9. The box 32 additionally contains a table indicating the parent or parents of the class, here "Classel" that designer C has selected in the hste of box 31. The other data are similar to those of box 23, since the tree 27c of the daughter class " ClasseD2 "is the same as the tree 27a of the parent class" Classel ". Thanks to the control buttons of the box 32, it is possible to easily change the new class "ClasseD2" independently of the mother class "Classel".
La classe générique globale "GenericClass" a donc un attribut supplémentaire nommé "parent", qui est un tableau contenant des instances de la classe générique globale, telles que Classel. Le tableau permet de reconnaître la provenance de l'instance en cours de la façon suivante :The global generic class "GenericClass" therefore has an additional attribute named "parent", which is an array containing instances of the global generic class, such as Classel. The table is used to recognize the origin of the current instance as follows:
(a) Si l'instance en cours est un objet, alors : - si d'une manière générale "parent[0j" (indiqué par exemple dans le tableau auquel se réfère l'instance en cours) est un objet, l'objet en cours a été clone à partir de parent[0],(a) If the current instance is an object, then: - if in general "parent [0j" (indicated for example in the table to which the current instance refers) is an object, the object in progress has been cloned from parent [0],
- si "parent[0]" est une classe, l'objet en cours est une instance de parent[0],- if "parent [0]" is a class, the current object is an instance of parent [0],
(b) Si l'instance en cours est une classe, alors "parent[0]" est(b) If the current instance is a class, then "parent [0]" is
- soit vide, ce qui veut dire que la classe a été créée sans héritage avec la commande "NouveUe classe", - soit une classe (et non un objet), ce qui veut dire que la classe en cours a hérité de "parent[0]" grâce à la commande "NouveUe classe héritée" (c) Il en résulte, par itération, que le tableau "parent" indique tous les ascendants de l'instance en cours.- either empty, which means that the class was created without inheritance with the command "New class", - or a class (and not an object), which means that the current class inherited from "parent [ 0] "thanks to the command" New inherited class " (c) It follows, by iteration, that the "parent" table indicates all the ancestors of the current instance.
Le procédé ressort clairement des figures 8, 9 et 10. En réponse à la première instruction indiquée dans la figure 8, "Classel" est sérialisée en la copiant sur le disque D. En réponse à la seconde instruction, la classe ainsi sérialisée est sauvegardée de nouveau en mémoire, mais avec modifications d'attributs, notamment le nom de classe "ClasseD2" et le tableau "Parent". Les deux arborescences 27a et 27c sont donc les mêmes, mais eUes sont séparées l'une de l'autre. Par exemple, bien qu'eUes aient les deux mêmes instances "Attributl", en réahté ces deux instances sont complètement distinctes l'une de l'autre en mémoire et peuvent vivre indépendamment l'une de l'autre. Notamment, elles peuvent à tout moment être modifiées différemment l'une de l'autre. Cet exemple fait aussi ressortir qu'U en est de même pour les deux autres commandes "Nouvel objet de classe" et "Cloner un objet".The process is clearly shown in Figures 8, 9 and 10. In response to the first instruction shown in Figure 8, "Classel" is serialized by copying it to disk D. In response to the second instruction, the class thus serialized is saved back in memory, but with attribute modifications, notably the class name "ClasseD2" and the table "Parent". The two trees 27a and 27c are therefore the same, but they are separated from each other. For example, although they have the same two "Attributl" instances, in reality these two instances are completely distinct from each other in memory and can live independently of each other. In particular, they can be modified differently from one another at any time. This example also shows that U is the same for the other two commands "New class object" and "Clone an object".
Plus généralement, U ressort de la description qui précède que le procédé de dérivation d'une classe d'objets et/ou d'un objet ayant un nom donné consiste à faire une copie de tout l'arbre de la classe ou de l'objet, à mémoriser la copie de l'arbre et à changer ledit nom pour attribuer un nom à la copie mémorisée. On a vu que de préférence la copie est faite par une sériahsation de l'arbre représentatif de ladite classe ou dudit objet en copiant l'arbre dans une mémoire D et la mémorisation de la copie de l'arbre consiste à la copier à nouveau en mémoire 30. En outre, on a vu aussi que la sériahsation, qui peut se faire dans divers langages, est particulièrement simple à mettre en œuvre en langage Java®.More generally, it emerges from the above description that the process for deriving a class of objects and / or an object having a given name consists in making a copy of the entire tree of the class or of the object, to memorize the copy of the tree and to change said name to assign a name to the memorized copy. We have seen that preferably the copy is made by a serialization of the tree representative of the said class or of the said object by copying the tree into a memory D and the memorization of the copy of the tree consists in copying it again in Memory 30. In addition, we have also seen that serialization, which can be done in various languages, is particularly simple to implement in Java® language.
La fonction du générateur 14 d'interface va maintenant être décrite. Jusqu'à présent, on a vu comment le concepteur C peut facUement créer des classes d'objets et des objets répondant aux besoins de l'utilisateur U. Les classes et objets ainsi créés sont stockés dans la base d'interface 15. Cependant, ces classes et objets demeurent incompréhensibles et inexploitables pour l'utilisateur U. De préférence, U est d'aUleurs interdit à l'utUisateur U d'y avoir accès, afin d'assurer au concepteur leur intégrité. Le générateur 14 a pour fonction de transformer les classes et objets ainsi créés en des interfaces sous forme de documents dans lesquels les commandes répondant aux besoins exprimés par l'utihsateur U sont compréhensibles par lui. Afin de distinguer ces interfaces des autres interfaces impliquées dans cette description, elles seront appelées interfaces documentaires. Le langage employé dans ces interfaces documentaires peut être le langage courant et/ou un langage spéciahsé de la compétence de l'utUisateur.The function of the interface generator 14 will now be described. So far, we have seen how designer C can easily create object classes and objects that meet user needs. U. The classes and objects thus created are stored in the interface base 15. However, these classes and objects remain incomprehensible and unusable for the user U. Preferably, U is also prohibited to the user U of have access to it, to assure the designer their integrity. The generator 14 has the function of transforming the classes and objects thus created into interfaces in the form of documents in which the commands responding to the needs expressed by the user U are understandable by him. In order to distinguish these interfaces from the other interfaces involved in this description, they will be called document interfaces. The language used in these document interfaces can be the current language and / or a language specialized in the competence of the user.
Le fonctionnement du générateur 14 va ressortir de l'exemple qui suit, qui reprend et explicite l'exemple précédent selon lequel l'entreprise est une agence bancaire, l'utUisateur U est le directeur de l'agence et le concepteur C est un informaticien de la banque. On suppose que le directeur U veut : (1) consulter le système d'information de la banque pour faire des requêtes dans les bases de données en vue d'obtenir une liste de ses clients d'un type donné, des étudiants dans l'exemple considéré, et (2) imprimer des lettres personnahsées de plusieurs types, teUes que des lettes d'information, des lettres d'invitation et des lettres de rappel. L'informaticien C traduit l'exploitation désirée par le directeur en deux questions. En l'occurrence, l'informaticien crée en réponse deux classes d'objets : "consultation_système" et "impression" au moyen des deux outUs 20 et 30. Il peut créer chacune de ces deux classes directement en activant la commande "Nouvelle classe" de la fenêtre 22 de la figure 2, soit indirectement par dérivation d'une classe semblable. Dans ce dernier cas, le concepteur C pourra actionner la commande "Rechercher" de la fenêtre 22 pour trouver une classe semblable. Si une classe semblable existe, il la sélectionne dans la hste des classes et peut la dériver, par exemple en activant la commande "NouveUe classe héritée" de la figure 2 et en modifiant, ajoutant ou supprimant des attributs et/ou des méthodes. Le générateur 14 met en œuvre un procédé de génération d'une interface documentaire pour la commande d'un système informatique par un utilisateur, la commande étant faite à partir d'au moins un objet incluant des descriptions. Le procédé consiste à extraire de l'objet au moins en partie lesdites descriptions et à les organiser pour traduire le sens de ladite commande en un langage compréhensible à l'utihsateur et ainsi faire de ladite interface une interface documentaire. Le générateur 14 comprend donc un bloc d'extraction 14a et un bloc de génération 14b. Le bloc d'extraction 14a prélève de la base d'interface 15 l'objet sélectionné par le concepteur et y extrait les descriptions. Le bloc de génération 14b organise les descriptions pour former l'interface documentaire et la stocker dans la base d'interface 15.The operation of the generator 14 will emerge from the example which follows, which takes up and explains the previous example according to which the company is a banking agency, the user U is the director of the agency and the designer C is a computer scientist form the bank. It is assumed that the director U wants to: (1) consult the information system of the bank to make requests in the databases with a view to obtaining a list of his clients of a given type, students in the example considered, and (2) print personalized letters of several types, such as information letters, invitation letters and reminder letters. Computer scientist C translates the operation desired by the director into two questions. In this case, the computer scientist creates in response two classes of objects: "consultation_system" and "impression" by means of the two tools 20 and 30. He can create each of these two classes directly by activating the command "New class" of window 22 of FIG. 2, either indirectly by derivation of a similar class. In the latter case, designer C can activate the "Search" command in window 22 to find a similar class. If a similar class exists, it selects it in the class hste and can derive it, for example by activating the command "New inherited class" in Figure 2 and by modifying, adding or removing attributes and / or methods. The generator 14 implements a method for generating a document interface for the control of a computer system by a user, the control being made from at least one object including descriptions. The method consists in extracting from the object at least in part said descriptions and in organizing them to translate the meaning of said command into a language understandable to the user and thus make said interface a documentary interface. The generator 14 therefore comprises an extraction block 14a and a generation block 14b. The extraction block 14a takes from the interface base 15 the object selected by the designer and extracts the descriptions there. The generation block 14b organizes the descriptions to form the document interface and store it in the interface base 15.
Le procédé va être mieux compris à partir de l'exemple précédent. Parmi les attributs de la classe "consultation_système" de l'exemple considéré se trouvent des méthodes qui font appel à des commandes spécifiques pour l'exploitation des données du système, en l'occurrence aux bases de données du système 10. Parmi ces méthodes, le concepteur C crée une méthode "lister_étudiants" de façon à avoir comme description "Liste de tous étudiants ayant". L'ingénieur attribue à la méthode "lister_étudiants" un code de retour de type "liste" ayant comme description "la liste des noms et adresses". Il attribue aussi à cette méthode, au moyen des boîtes de dialogue 25 et 26 iUustrées dans les figures 5 et 6, les trois paramètres tels que définis dans le tableau A ci-dessous.The process will be better understood from the previous example. Among the attributes of the "consultation_system" class of the example considered are methods which call on specific commands for the exploitation of the data of the system, in this case the databases of the system 10. Among these methods, designer C creates a "lister_étudiant" method so as to have "List of all students having" as description. The engineer assigns to the "lister_students" method a "list" type return code having as description "the list of names and addresses". It also attributes to this method, by means of the dialog boxes 25 and 26 illustrated in FIGS. 5 and 6, the three parameters as defined in table A below.
TABLEAU A TABLE A
En ce qui concerne la classe "impression", l'ingénieur C crée une méthode "imprime_invitation" de façon à avoir une description telle que "Impression de lettres à :", et attribue à cette méthode un code de retour du type "void" signifiant que la méthode ne retourne pas de valeur, et deux paramètres tels que définis dans le tableau B ci-dessous.Regarding the "printing" class, engineer C creates a "imprime_invitation" method so as to have a description such as "Printing letters to:", and assigns to this method a return code of type "void" meaning that the method does not return a value, and two parameters as defined in table B below.
TABLEAU BTABLE B
Ces tableaux indiquent comment remplir les boites de dialogue 25 et 26 des figures 5 et 6 pour constituer les deux classes "consultation_système" et "impression" à l'aide de la boite de dialogue 23 de la figure 3. Plus généralement, l'interface documentaire d'un objet est créée à partir des descriptions correspondant à cet objet, ses attributs, ses méthodes et les paramètres des méthodes.These tables indicate how to fill the dialog boxes 25 and 26 of FIGS. 5 and 6 to constitute the two classes "consultation_system" and "printing" using the dialog box 23 of FIG. 3. More generally, the interface Documentary of an object is created from descriptions corresponding to this object, its attributes, its methods and the parameters of the methods.
Pour former une interface documentaire, le concepteur active dans la fenêtre 22 de la figure 2 le menu "Exporter à U". Cette commande appelle le générateur 14 pour générer une interface documentaire de l'objet sélectionné. Le générateur 14 extrait les descriptions de l'objet et les organise pour former l'interface documentaire. La figure 11 Ulustre l'interface documentaire 18a de la méthode "lister_étudiants". On y voit que l'interface documentaire 18a a été obtenue par extraction des descriptions de la méthode et de ses paramètres, telles que définies dans le tableau A. En particulier, les valeurs "26 ans", "Paris" et "6000 francs" sont les valeurs par défaut indiquées au tableau A. De manière générale, une interface documentaire 18 comprend du texte et au moins un champ possible 19 dont le contenu initial est fait de valeurs par défaut et peut être modifié par l'utilisateur U.To form a document interface, the designer activates in the window 22 of FIG. 2 the menu "Export to U". This command calls the generator 14 to generate a document interface of the selected object. The generator 14 extracts the descriptions of the object and organizes them to form the document interface. FIG. 11 shows the documentary interface 18a of the "lister_étudiant" method. We see that the documentary interface 18a was obtained by extracting the descriptions of the method and its parameters, as defined in Table A. In particular, the values "26 years", "Paris" and "6000 francs" are the default values indicated in table A. In general, a document interface 18 includes text and at least one possible field 19 whose initial content is made up of default values and can be modified by the user U.
La figure 12 Ulustre un exemple d'interface documentaire 18b de la méthode "imprime_invitation" de la classe "imprimer" définie précédemment. Les exemples des figures 11 et 12 suffisent à l'homme du métier pour savoir comment construire une interface documentaire relative à tout un objet. D'une manière générale, lorsque l'objet contient toutes les descriptions, eUes sont de préférence organisées par le générateur 14 dans l'ordre suivant :FIG. 12 shows an example of a documentary interface 18b of the "imprime_invitation" method of the "print" class defined above. The examples of FIGS. 11 and 12 are sufficient for those skilled in the art to know how to construct a documentary interface relating to an entire object. Generally, when the object contains all the descriptions, they are preferably organized by the generator 14 in the following order:
1. la description de l'objet (non iUustrée), par exemple "impression" ;1. the description of the object (not illustrated), for example "impression";
2. la description de chaque attribut (non iUustrée) , par exemple le numéro de l'imprimante, la qualité d'impression, la couleur de l'encre, le papier d'impression ; cette description est suivie d'un champ qui correspond à sa valeur ; si l'attribut a un nombre limité de valeurs, ce champ est une liste contenant toutes les valeurs possibles et ne faisant apparaître que la valeur sélectionnée ; 3. la description de chaque méthode (voir tableaux A et B, figures2. the description of each attribute (not illustrated), for example the number of the printer, the print quality, the color of the ink, the printing paper; this description is followed by a field which corresponds to its value; if the attribute has a limited number of values, this field is a list containing all the possible values and showing only the selected value; 3. description of each method (see tables A and B, figures
11 et 12 et le texte s'y rapportant), cette description étant attachée et de préférence suivie de :11 and 12 and the related text), this description being attached and preferably followed by:
3.1. la description de sa valeur de retour, attachée ou suivie d'un champ qui représente cette valeur, et 3.2. la description de chacun de ses paramètres, attachée ou suivie d'un champ (19) représentatif de la valeur du paramètre ; 4. un moyen de commande (voir figure 12) indiquant quand la méthode doit être exécutée, l'exécution pouvant être immédiate ou différée, soit à un moment déterminé par une date et une heure, soit intervenir à la suite d'une autre méthode définie. 4.1. Dans le premier cas, un bouton de commande est libeUé3.1. the description of its return value, attached or followed by a field which represents this value, and 3.2. the description of each of its parameters, attached or followed by a field (19) representative of the value of the parameter; 4. a control means (see Figure 12) indicating when the method should be executed, execution can be immediate or deferred, either at a time determined by a date and time, or intervene following another method defined. 4.1. In the first case, a command button is released
"Exécution immédiate" ;"Immediate execution";
4.2. Dans le second cas, un bouton de commande inclut une étiquette de valeur "à" (par exemple, -imprimer "à"-) suivie d'un champ "heure" et d'un champ "date" hé à un calendrier des jours ouvrables de l'année;4.2. In the second case, a command button includes a value label "to" (for example, -print "to" -) followed by a "time" field and a "date" field hey to a day calendar working hours of the year;
4.3. Dans le troisième cas, un bouton de commande inclut une étiquette intitulée "après la fin d'exécution de" suivie d'un champ permettant de choisir une méthode d'un objet quelconque et signifie que la méthode sera exécutée après la fin d'exécution de la méthode sélectionnée.4.3. In the third case, a command button includes a label entitled "after the end of execution of" followed by a field allowing to choose a method of any object and means that the method will be executed after the end of execution of the selected method.
Le concepteur C a la possibihté de changer la présentation de la page, ajouter ou enlever des champs, sélectionner les descriptions à prendre en compte, et modifier le texte de descriptions et des types pour rendre la compréhension du document plus facUe. Il s'ensuit qu'un même objet peut générer plusieurs interfaces documentaires adaptées à des besoins particuliers offerts dans l'objet. Par exemple, on a vu précédemment que l'objet "impression" peut avoir un grand nombre d'attributs et de méthodes, qui offre un grand choix d'interfaces documentaires en fonction des attributs et méthodes adaptées aux besoins. Il est bien sûr conseiUé au concepteur C de faire les interfaces documentaires 18 avec l'aide de l'utihsateur U.Designer C has the possibility to change the presentation of the page, add or remove fields, select the descriptions to be taken into account, and modify the text of descriptions and types to make understanding the document easier. It follows that the same object can generate several document interfaces adapted to the particular needs offered in the object. For example, we have seen previously that the "printing" object can have a large number of attributes and methods, which offers a large choice of document interfaces according to the attributes and methods adapted to the needs. It is of course advised to the designer C to make the document interfaces 18 with the help of the user U.
La description va maintenant porter sur le module de commande 12 servant à l'utUisateur U pour obtenir les interfaces documentaires 18 de la base 15. Le module 12 contient un bloc 40 de génération de documents 41 issus des interfaces documentaires stockés dans la base 15. Le bloc 40 et donc connecté à la base 15 pour y prélever les interfaces documentaires 18 et déterminer les documents de commande 41 adaptés aux besoins particuliers de l'utilisateur U. Par exemple, en supposant que l'utilisateur a besoin du document "impression", une interface incluant la méthode iUustrée dans la figure 12 va se présenter à l'utihsateur, qui pourra modifier les valeurs des champs 19 et sélectionner les boutons de commande d'exécution pour en faire un document 41. Le document 41 illustré dans la figure 12 correspond à l'interface documentaire 18 dans laqueUe les valeurs des champs 19 ont maintenues inchangées par l'utilisateur et le bouton d'exécution différée à une heure prédéterminée a été activé (en grisé dans la figure 12).The description will now relate to the control module 12 used by the user U to obtain the document interfaces 18 of the base 15. The module 12 contains a block 40 for generating documents 41 originating from the document interfaces stored in the base 15. The block 40 and therefore connected to the base 15 to take the document interfaces 18 there and determine the order documents 41 adapted to the particular needs of the user U. For example, assuming that the user needs the document "printing", an interface including the method illustrated in FIG. 12 will be presented to the user, who will be able to modify the values of the fields 19 and select the execution command buttons to make it a document 41. The document 41 illustrated in FIG. 12 corresponds to the document interface 18 in which the values of the fields 19 have been kept unchanged by the user and the execution button Delayed at a predetermined time has been activated (grayed out in Figure 12).
La figure 13 Ulustre un exemple de boîte de dialogue 42 présentée à l'utihsateur U par le module d'utilisateur 12. La barre de menus de la boîte 42 contient notamment deux menus principaux "Documents" et "Politiques". Dans le menu "Documents" se trouvent la commande "Rechercher" pour trouver des interfaces documentaires, par exemple à partir des descriptions des objets correspondants, et la commande "Ouvrir" pour lister les interfaces documentaires par le nom de leurs objets correspondants et y sélectionner un nom d'objet. Un objet sélectionné s'affiche avec la description de l'objet. De cette interface, l'utihsateur en fait le document désiré. Dans le menu "Documents" se trouvent aussi bien sûr les commandes de sauvegarde (Enregistrer et Enregistrer sous...) et de fermeture du document.FIG. 13 shows an example of a dialog box 42 presented to the user U by the user module 12. The menu bar of the box 42 contains in particular two main menus "Documents" and "Policies". In the "Documents" menu, you find the "Search" command to find document interfaces, for example from descriptions of the corresponding objects, and the "Open" command to list the document interfaces by the name of their corresponding objects and to select them. an object name. A selected object is displayed with the description of the object. From this interface, the user makes the desired document. In the "Documents" menu are also of course the commands for saving (Save and Save as ...) and closing the document.
Le menu "Politiques" contient notamment deux commandes "Afficher" et "Afficher l'historique". La commande "Afficher" (display) affiche l'ensemble des documents créés par l'utihsateur dans l'ordre d'exécution des commandes qu'il a choisi. Cet ensemble définit la politique de l'utilisateur. Il dispose ainsi d'une vue globale des méthodes qu'il a activées à partir de plusieurs documents. Il peut la valider ou la modifier. Par exemple, le fait de cliquer deux fois sur une méthode choisie entraîne l'ouverture du document correspondant pour d'éventuelles modifications. La commande "Afficher l'historique" présente toutes les méthodes qui ont été exécutées par l'utilisateur, l'état de fin d'exécution, et l'heure. Le menu contient aussi les commandes de sauvegarde et de fermeture.The "Policies" menu notably contains two commands "Display" and "Display history". The "Display" command displays all the documents created by the user in the order of execution of the commands he has chosen. This set defines user policy. He thus has a global view of the methods he has activated from several documents. He can validate or modify it. For example, double clicking on a chosen method opens the corresponding document for possible modifications. The command "Display history" presents all the methods which have been executed by user, completion status, and time. The menu also contains the save and close commands.
De manière générale, la description qui précède fait ressortir un procédé de génération d'une interface 18 pour la commande d'un système informatique 10 par un utihsateur U, la commande étant faite à partir d'au moins un objet incluant des descriptions de l'objet et/ou d'au moins un membre de l'objet, le procédé consistant à extraire de l'objet au moins en partie lesdites descriptions et à les organiser pour traduire le sens de ladite commande en un langage compréhensible à l'utilisateur et ainsi faire de ladite interface une interface documentaire.In general, the foregoing description shows a method for generating an interface 18 for controlling a computer system 10 by a user U, the command being made from at least one object including descriptions of the object and / or at least one member of the object, the method consisting in extracting from the object at least in part said descriptions and organizing them to translate the meaning of said command into a language understandable to the user and thus make said interface a documentary interface.
L'outU permet au concepteur C de facUement adapter le texte des descriptions extraites, de façon que leur organisation rende compréhensible le texte de l'interface. Pour rendre plus souple le procédé, le concepteur pourrait sélectionner les descriptions à extraire.The tool allows designer C to easily adapt the text of the extracted descriptions, so that their organization makes the interface text understandable. To make the process more flexible, the designer could select the descriptions to be extracted.
De préférence, les descriptions incluant au moins une description d'une méthode de l'objet, le procédé consiste à attacher à cette description une description de son code de retour et/ou une description d'au moins un paramètre respectif de la méthode et une valeur 19 du paramètre dont la valeur peut être modifiable. Dans ce cas également et comme dans l'exemple illustré, le procédé peut consister avantageusement à ajouter à l'interface 18 un moyen de commande, par l'utihsateur, du moment d'exécution de ladite interface.Preferably, the descriptions including at least a description of a method of the object, the method consists in attaching to this description a description of its return code and / or a description of at least one respective parameter of the method and a value 19 of the parameter whose value can be modifiable. In this case also and as in the example illustrated, the method can advantageously consist in adding to the interface 18 a means of control, by the user, of the moment of execution of said interface.
Dans l'exemple décrit, le texte des descriptions servant à faire l'interface est fait par un concepteur utihsant le système, en réponse à des besoins qui lui sont soumis par l'utilisateur. Cette coopération entre le concepteur et l'utilisateur rend le procédé très souple, très évolutif et très performant. Cependant, il est évident que cette condition n'est pas nécessaire, l'outil étant par exemple adapté à un métier donné ou une fonction d'entreprise donnée.In the example described, the text of the descriptions used to make the interface is made by a designer using the system, in response to needs which are submitted to it by the user. This cooperation between the designer and the user makes the process very flexible, very scalable and very efficient. However, it is obvious that this condition is not necessary, the tool being for example adapted to a given trade or a given company function.
Enfin, on a vu précédemment l'avantage que pouvait tirer l'utUisateur de la possibilité offerte dans l'exemple décrit de sélectionner des interfaces et de définir leur ordre d'exécution temporel, et de lui présenter dans une fenêtre les interfaces sélectionnées et disposées dans ledit ordre.Finally, we have previously seen the advantage that the user could derive from the possibility offered in the example described of selecting interfaces and defining their temporal order of execution, and of presenting to him in a window the interfaces selected and arranged. in said order.
Il en résulte un système informatique 10 comprenant un ensemble informatique 1 et une interface de commande 11 servant à un utihsateur U à envoyer au système des commandes spécifiques au système pour une exploitation désirée du système, le système mettant en œuvre le procédé défini précédemment. This results in a computer system 10 comprising a computer assembly 1 and a control interface 11 used by a user U to send to the system system-specific commands for a desired operation of the system, the system implementing the method defined above.

Claims

Revendications claims
1. Procédé de génération d'une interface (18) pour la commande d'un système informatique (10) par un utilisateur (U), la commande étant faite à partir d'au moins un objet incluant des descriptions de l'objet et/ou d'au moins un membre de l'objet, caractérisé en ce qu'U consiste à extraire de l'objet au moins en partie lesdites descriptions et à les organiser pour traduire le sens de ladite commande en un langage compréhensible à l'utihsateur et ainsi faire ladite interface. 1. A method of generating an interface (18) for controlling a computer system (10) by a user (U), the command being made from at least one object including descriptions of the object and / or at least one member of the object, characterized in that U consists in extracting from the object at least in part said descriptions and in organizing them to translate the meaning of said command into a language understandable by user and thus make said interface.
2. Procédé selon la revendication 1, caractérisé en ce qu'U consiste à adapter le texte des descriptions extraites, de façon que leur organisation rende compréhensible le texte de l'interface.2. Method according to claim 1, characterized in that U consists in adapting the text of the extracted descriptions, so that their organization makes the text of the interface understandable.
3. Procédé selon la revendication 1 ou 2, caractérisé en ce que les descriptions incluant au moins une description d'une méthode de l'objet, le procédé consiste à attacher à cette description une description de son code de retour.3. Method according to claim 1 or 2, characterized in that the descriptions including at least a description of a method of the object, the method consists in attaching to this description a description of its return code.
4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que les descriptions incluant au moins une description d'une méthode de l'objet, le procédé consiste à attacher à cette description une description d'au moins un paramètre respectif de la méthode et une valeur (19) du paramètre.4. Method according to one of claims 1 to 3, characterized in that the descriptions including at least a description of a method of the object, the method consists in attaching to this description a description of at least one respective parameter of the method and a value (19) of the parameter.
5. Procédé selon la revendication 4, caractérisé en ce que la valeur du paramètre est modifiable par l'utihsateur.5. Method according to claim 4, characterized in that the value of the parameter can be modified by the user.
6. Procédé selon l'une des revendications 1 à 5, caractérisé en ce que les descriptions incluant au moins une description d'une méthode de l'objet, le procédé consiste à ajouter à l'interface (18) un moyen de commande, par l'utilisateur, du moment d'exécution de ladite interface.6. Method according to one of claims 1 to 5, characterized in that the descriptions including at least one description of a method of the object, the method consists in adding to the interface (18) a control means, by the user, from the moment of execution of said interface.
7. Procédé selon l'une des revendications 1 à 6, caractérisé en ce que le texte des descriptions servant à faire l'interface est fait par un concepteur (C) utUisant le système, en réponse à des besoins qui lui sont soumis par l'utilisateur.7. Method according to one of claims 1 to 6, characterized in that the text of the descriptions used to make the interface is made by a designer (C) using the system, in response to needs which are submitted to him by the 'user.
8. Procédé selon la revendication 7, caractérisé en ce qu'U permet au concepteur de sélectionner les descriptions à extraire. 8. Method according to claim 7, characterized in that U allows the designer to select the descriptions to be extracted.
9. Procédé selon l'une des revendications 1 à 9, caractérisé en ce qu'il permet à l'utilisateur de sélectionner des interfaces et de définir leur ordre d'exécution temporel, et de lui présenter dans une fenêtre les interfaces sélectionnées et disposées dans ledit ordre.9. Method according to one of claims 1 to 9, characterized in that it allows the user to select interfaces and define their temporal order of execution, and to present to him in a window the interfaces selected and arranged in said order.
10. Système informatique (10) comprenant un ensemble informatique et une interface de commande (11) servant à un utUisateur (U) à envoyer au système des commandes spécifiques au système pour une exploitation désirée du système, caractérisé en ce qu'U met en œuvre le procédé selon l'une des revendications 1 à 9. 10. Computer system (10) comprising a computer assembly and a control interface (11) used by a user (U) to send system-specific commands to the system for desired operation of the system, characterized in that U sets implements the method according to one of claims 1 to 9.
EP99950864A 1998-10-30 1999-10-28 Method for generating interfaces for control by a computer system user Withdrawn EP1044410A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR9813642 1998-10-30
FR9813642A FR2785413B1 (en) 1998-10-30 1998-10-30 METHOD FOR GENERATING INTERFACES FOR USER CONTROL OF A COMPUTER SYSTEM
PCT/FR1999/002632 WO2000026776A1 (en) 1998-10-30 1999-10-28 Method for generating interfaces for control by a computer system user

Publications (1)

Publication Number Publication Date
EP1044410A1 true EP1044410A1 (en) 2000-10-18

Family

ID=9532185

Family Applications (1)

Application Number Title Priority Date Filing Date
EP99950864A Withdrawn EP1044410A1 (en) 1998-10-30 1999-10-28 Method for generating interfaces for control by a computer system user

Country Status (3)

Country Link
EP (1) EP1044410A1 (en)
FR (1) FR2785413B1 (en)
WO (1) WO2000026776A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064277A (en) * 1992-06-23 1994-01-14 Hitachi Ltd Method and device for automatically generating gui control program
US5353401A (en) * 1992-11-06 1994-10-04 Ricoh Company, Ltd. Automatic interface layout generator for database systems
US5734905A (en) * 1993-05-06 1998-03-31 Board Of Trustees Of The Leland Stanford Junior University User interface in object oriented computer system for performing intuitive object transformations
EP0689132B1 (en) * 1994-06-23 2000-07-26 International Business Machines Corporation Visualizing object-oriented software

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0026776A1 *

Also Published As

Publication number Publication date
FR2785413A1 (en) 2000-05-05
FR2785413B1 (en) 2001-08-24
WO2000026776A1 (en) 2000-05-11

Similar Documents

Publication Publication Date Title
KR101076904B1 (en) Programming interface for a computer platform
US8972872B2 (en) Building computing applications based upon metadata
US9921810B2 (en) Dynamic creation of object classes
EP1302867A2 (en) Efficient web page localization
JPH08511118A (en) Container object system
WO1998047068A2 (en) Method and apparatus for binding user interface objects to application objects
EP1387261A1 (en) Application software generation and language for software description
CN101137959A (en) System and method for transferring computer-readable objects across a remote boundary
EP1046102B1 (en) Deriving an object class by inheritance, instanciation or cloning
WO1999059083A1 (en) A document storing and retrieving system and a software application system integrating a document storing and retrieving system
EP1049971B1 (en) Method for controlling a function executable by specific commands to different software tools
EP1280074A1 (en) Use of hyperlinks in a computer program for an automation application and programmed computer for such an application
EP1044410A1 (en) Method for generating interfaces for control by a computer system user
FR2811788A1 (en) Method for assigning values to Boolean option variables in computer spreadsheets so that what-if solutions can be more easily input by an end-user rather than requiring more complex coding which may not later be easily understood
EP1046103A1 (en) Method for automatically generating in an object-oriented language a pilot for implementing an abstract method of an abstract class
US7757206B2 (en) Method, design program and execution program for composing and executing a computer application, as well as a data carrier provided with a design program and a data carrier provided with an execution program
KR20010040980A (en) An interactive design tool for shared memory spaces
DePetrillo Think Microsoft. NET
Hillier The Information Bridge Framework
WO2005013145A2 (en) Method enabling a user to develop computer-based applications applied to qualified data in a data management system
WO2002023392A1 (en) Method for consulting electronic documents and related system
FR2897177A1 (en) Web service operation set execution sequence creating method for reserving air ticket, involves displaying operation list for service, generating operation set, and displaying operand introduction field for operation from operation set
WO2002023387A1 (en) Method for consulting electronic documents and related system
FR2787217A1 (en) Generation of an interface allowing workstations and PCs to access data stored on older central mainframe sites where the two systems have different non-compatible operating systems

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17P Request for examination filed

Effective date: 20001113

RBV Designated contracting states (corrected)

Designated state(s): DE FR GB

17Q First examination report despatched

Effective date: 20040930

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN WITHDRAWN

18W Application withdrawn

Effective date: 20050211