Method and apparatus for automatic generation of information system user interfaces
First Claim
1. A process for controlling a computer to provide user interface design tools which a user may invoke to specify primitives from a metamodel which define the type and functionality of a user interface which is to be part of a target computer program to be automatically written, comprising the steps:
- (A) controlling said computer to display target program design tools which can be used to define a Conceptual Model of a target computer program to be automatically written, and controlling said computer to receive user input data entered using said design tools that defines said Conceptual Model, said Conceptual Model including at least an object model defining one or more classes of objects each with attributes in the form of data defining the state of said object, said design tools including user interface design tools each of which represents a pattern which is a building block of meta-model used to build the type of user interface needed for said target computer program, some of said patterns being called Interaction Units and some of said patterns called elemental patterns which can be applied to an Interaction Unit, each pattern being a shorthand way to specify a commonly used type of user interface for a computer program which has been identified in the prior art;
(B) controlling said computer to receive a user selection of a class and user selections of an Interaction Unit and one or more elemental patterns specifying a type of user interface for said target computer program for display of data from said selected class and for interaction with a user of said target computer program;
(C) controlling said computer to respond to user selections of said Interaction Unit and one or more elemental patterns by displaying one or more dialog boxes or forms that invite a designer of said target computer program to enter data to articulate said selected Interaction Unit and require said designer to enter all information which is mandatory for the selected Interaction Unit to complete the specification thereof and blocking automated generation of said target computer program until all mandatory information has been correctly entered;
(D) controlling said computer to respond to the selection of said Interaction Unit and entry of data articulating said selected Interaction Unit by creating any type of data structure that embodies a formal language specification that defines said Conceptual Model including said selected pattern for said user interface of said target computer program selected in step B and articulated in step C, said formal language specification containing statements written in a formal language where a formal language has a grammar which strictly controls the syntax and semantics of every valid statement therein such that each formal language statement must be complete and correct, wherein all statements in a formal language have a set of properties that both have to exist and must have a valid value to be deemed correct, and wherein a statement in the formal language specification is complete when there is no missing information in the statement that is required by the rules of syntax and semantics for a statement of that type, and wherein some properties of statements in said formal language are different types of formulas each of which must follow a predetermined syntax and have a process and a set of rules in grammar to validate said formula to ensure said formula is complete and correct, and wherein said formal language specification encodes said Conceptual Model of said target computer program.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for the specification and automatic generation of user interfaces of information system (computer programs) is provided. The method is based in pattern language to specify requirements in an un-ambiguous mode and with precise semantics. The pattern language allows a user interface model to be composed using elements of the pattern language (computer objects in the object oriented programming style) which fully specify the desired user interface. The semantics of the objects in the user interface model have one and only one definition such that user interface model can be validated in a validation process. The validation process eliminates bugs in the final computer program code which is automatically produced from the user interface model. A model (metamodel), an editor tool (computer program) implementing the model for creating specifications of the user interface model, DTD specification, code generators, and other artifacts are depicted and described here for obtaining such user interfaces for different platforms (computers and operating systems) and different programming languages without manual coding of the computer code to implement the user interface. The software obtained is ready to run and it is able to communicate with a business server component using a standardized Application Programmatic Interface (API).
-
Citations
20 Claims
-
1. A process for controlling a computer to provide user interface design tools which a user may invoke to specify primitives from a metamodel which define the type and functionality of a user interface which is to be part of a target computer program to be automatically written, comprising the steps:
-
(A) controlling said computer to display target program design tools which can be used to define a Conceptual Model of a target computer program to be automatically written, and controlling said computer to receive user input data entered using said design tools that defines said Conceptual Model, said Conceptual Model including at least an object model defining one or more classes of objects each with attributes in the form of data defining the state of said object, said design tools including user interface design tools each of which represents a pattern which is a building block of meta-model used to build the type of user interface needed for said target computer program, some of said patterns being called Interaction Units and some of said patterns called elemental patterns which can be applied to an Interaction Unit, each pattern being a shorthand way to specify a commonly used type of user interface for a computer program which has been identified in the prior art; (B) controlling said computer to receive a user selection of a class and user selections of an Interaction Unit and one or more elemental patterns specifying a type of user interface for said target computer program for display of data from said selected class and for interaction with a user of said target computer program; (C) controlling said computer to respond to user selections of said Interaction Unit and one or more elemental patterns by displaying one or more dialog boxes or forms that invite a designer of said target computer program to enter data to articulate said selected Interaction Unit and require said designer to enter all information which is mandatory for the selected Interaction Unit to complete the specification thereof and blocking automated generation of said target computer program until all mandatory information has been correctly entered; (D) controlling said computer to respond to the selection of said Interaction Unit and entry of data articulating said selected Interaction Unit by creating any type of data structure that embodies a formal language specification that defines said Conceptual Model including said selected pattern for said user interface of said target computer program selected in step B and articulated in step C, said formal language specification containing statements written in a formal language where a formal language has a grammar which strictly controls the syntax and semantics of every valid statement therein such that each formal language statement must be complete and correct, wherein all statements in a formal language have a set of properties that both have to exist and must have a valid value to be deemed correct, and wherein a statement in the formal language specification is complete when there is no missing information in the statement that is required by the rules of syntax and semantics for a statement of that type, and wherein some properties of statements in said formal language are different types of formulas each of which must follow a predetermined syntax and have a process and a set of rules in grammar to validate said formula to ensure said formula is complete and correct, and wherein said formal language specification encodes said Conceptual Model of said target computer program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A process for specifying at least part of a user interface in an automatic code generation system, comprising:
-
(1) using an editor program of said automatic code generation system in execution on a computer to create one or more classes and relationships between classes in a model of a target computer program for which code is to be generated by said automatic code generation system, said code to include code executable by a computer to implement a user interface of said target computer program, and controlling said computer to automatically convert said model into a formal language specification of said target computer program including the user interface of said target computer program, said formal language specification written in a formal language which is a mathematical language which has semantics in which every term has one and only one meaning, and which has rules of syntax and semantics which can be used to validate formal language specification statements written in said formal language; (2) automatically validating said class structure using said rules of semantics and syntax to ensure that predetermined validation rules are complied with; (3) using said editor to select a class from said one or more classes; (4) using said editor to select an icon or menu choice representing a desired type of Interaction Unit (IU) which defines a desired type of display of information as part of said user interface of said target computer program, and naming said IU; (5) automatically validating the naming of said IU to verify that no other IU previously defined for said selected class has the same name; (6) controlling said computer to respond to selection of said desired type of Interaction Unit to create any type of data structure or database which contains data that embodies a specification in said formal language of the type of user interface portion defined by said selected type of Interaction Unit; (7) controlling said computer to display dialog boxes, forms or any other type of display which a designer of said target computer program'"'"'s user interface can interact with to enter at least compulsory data and any desired optional data that defines the desired content of the desired target computer program'"'"'s user interface display and actions or navigations that a designer of said target computer program using said editor desires a user of the target computer program'"'"'s user interface to interact with to redirect in the target computer program'"'"'s user interface to computer code generated by a target IU specified in said action or navigation data which causes said computer to alter the display generated by said target computer program'"'"'s execution on a computer to display of the data and interaction possibilities defined by said target IU; (8) controlling said computer to receive user input of at least compulsory data that defines the desired content of the target computer program'"'"'s user interface display and storing the entered data in the appropriate fields of said data structure which embodies said formal language specification of at least the portion of the target computer program'"'"'s user interface specified by selection of said desired type of Interaction Unit thereby completing the process of specifying said at least the part of said target computer program'"'"'s user interface; and (9) controlling said computer to automatically validate said selected IU to verify that all compulsory data at least has been entered, and blocking automatic generation of code of said target computer program until all such compulsory data has been entered completely and correctly.
-
-
14. A computer readable medium having computer executable instructions stored thereon which when executed by a computer cause said computer to perform a method comprising:
-
(1) using a specification editor program to control a computer to display icons and/or menu choices that can be invoked and dialog boxes or forms or any other interactive display which are displayed on said computer which provide tools by which a designer of a target computer program the code of which is to be automatically generated can enter data to define a class structure, select a class structure, designate a class structure, and select an Interaction Unit designating a user interface pattern for a user interface of a designated class in said target computer program, and controlling said computer to receive user input from said designer via said icons and/or menu choices and dialog boxes or forms or any other active display, said data defining a class structure and said data selecting a class for which a user interface of said target computer program is desired; (2) controlling a computer to receive a selection of an icon or menu choice to select an Interaction Unit which defines the desired type of display of data on displays created by said target computer program from said selected class; (3) controlling a computer to respond to the selection of said Interaction Unit by creating any type of data structure that embodies a formal language specification of the desired type of user interface for said target computer program and to display dialog boxes or forms that said designer of said target computer program user interface can interact with to supply data which is compulsory to articulation of said Interaction unit and data that defines which data from said class is to be displayed in said selected type of display; (4) controlling said computer to receive said compulsory data necessary to articulate said Interaction Unit and data input from said designer which defines the desired content of data from said class to be displayed and storing said data in the appropriate fields of said formal language specification of the desired type of user interface represented by said selected Interaction Unit; (5) controlling said computer to use said rules of syntax and semantics to validate the formal language specification of said Interaction Unit to ensure that all said compulsory data has been completely and correctly entered, and blocking automatic generation of said code of said target computer program until all said compulsory data has been completely and correctly entered.
-
-
15. A computer readable medium having computer executable instructions stored thereon which when executed by a computer cause said computer to perform a method comprising:
-
(1) using a specification editor program to control a computer to display icons and/or menu choices that can be invoked and dialog boxes or forms or any other interactive display which are displayed on said computer which provide tools by which a designer of a target computer program the code of which is to be automatically generated can enter data to define a class structure, select a class structure, designate a class structure, and select an Interaction Unit designating a user interface pattern for a user interface of a designated class in said target computer program, and controlling said computer to receive user input data from said designer via said icons and/or menu choices and dialog boxes or forms or any other active display said data defining a class structure for which a user interface of said target computer program is desired, and automatically converting said data defining said class structure into statements in a formal language specification defining said class structure, said formal language specification written in a formal language which is a mathematically based language having semantics in which everything has one and only one definitions and each statement has a predefined grammar comprised of rules of syntax and semantics which can be used to validate the statement to ensure it is complete and correct; (2) controlling said computer to use predetermined validation rules based upon said rules of syntax and semantics to automatically validate said formal language statements which define said class structure to ensure that predetermined validation rules are complied with; (3) controlling said computer to receive user input data entered by said designer using said editor to select a class; (4) controlling said computer to receive user input data entered by said designer using said editor to select an icon or menu choice representing a desired type of Interaction Unit (IU) for said selected class which defines a desired type of display of information from said class as part of said user interface of said target computer program, and naming said IU; (5) controlling said computer to automatically validate the naming of said IU to verify that no other IU previously defined for said selected class has the same name; (6) controlling said computer to respond to selection of said desired type of Interaction Unit to create any type of data structure or database which contains data that embodies a formal language specification written in a formal language specifying the type of user interface portion defined by the selected type of Interaction Unit to be implemented in the code of said target computer program; (7) controlling said computer to display dialog boxes, forms or any other type of display which said designer can interact with to enter at least compulsory data articulating said selected Interaction Unit and any desired optional data that defines the desired content of the desired user interface display of said target computer program and to specify actions or navigations that said designer desires a user of the user interface of said target computer program to interact with to cause redirection in the final code of said user interface of said target computer program to computer code generated by a target IU specified in said action or navigation data entered by said designer which causes said computer executing said target computer program to alter the display to display of the data and interaction possibilities defined by said target IU; (8) controlling said computer to store the data entered by said designer in step (7) in the appropriate fields of said data structure which embodies said formal language specification of said selected type of Interaction Unit thereby completing the process of specifying said at least the part of said desired user interface of said target computer program; and (9) controlling said computer to automatically validate said selected IU to verify that all compulsory data at least has been entered, and blocking automatic generation of code of said target computer program until at least all said compulsory data has been completely and correctly entered.
-
-
16. A computer apparatus programmed to implement the following method:
-
(1)) using a specification editor program to control a computer to display icons and/or menu choices that can be invoked and dialog boxes or forms or any other interactive display which are displayed on said computer which provide tools by which a designer of a target computer program the code of which is to be automatically generated can enter data to define a class structure, select a class structure, designate a class structure, and select an Interaction Unit designating a user interface pattern for a user interface of a designated class in said target computer program, and controlling said computer to receive user input from said designer via said icons and/or menu choices and dialog boxes or forms or any other active display, said data defining a class structure and said data selecting a class for which a user interface of said target computer program is desired; (2) controlling a computer to receive a selection of an icon or menu choice to select an Interaction Unit which defines the desired type of display of data on displays created by said target computer program from said selected class; (3) controlling a computer to respond to the selection of said Interaction Unit by creating any type of data structure that embodies a formal language specification of the desired type of user interface for said target computer program and to display dialog boxes or forms that said designer of said target computer program user interface can interact with to supply data which is compulsory to articulation of said Interaction unit and data that defines which data from said class is to be displayed in said selected type of display; (4) controlling said computer to receive said compulsory data necessary to articulate said Interaction Unit and data input from said designer which defines the desired content of data from said class to be displayed and storing said data in the appropriate fields of said formal language specification of the desired type of user interface represented by said selected Interaction Unit; (5) controlling said computer to use said rules of syntax and semantics to validate the formal language specification of said Interaction Unit to ensure that all said compulsory data has been completely and correctly entered, and blocking automatic generation of said code of said target computer program until all said compulsory data has been completely and correctly entered.
-
-
17. A process for creating a formal language specification of a desired user interface for a target computer program being modelled, said formal language specification being created in a formal mathematically based language with semantics in which every term has one and only one meaning and in which each statement has rules of syntax and semantics that can be used to validate said statement, comprising the steps:
-
(1) controlling a computer to display design tools which can be invoked to create a class structure and relationships between classes, (2) controlling a computer to receive via invocation of one or more of the design tools displayed in step (1) input data from a designer of a user interface for a target computer program being modelled to select a class, (3) controlling a computer to receive via invocation of one or more of the design tools displayed in step (1) input data from a designer of a user interface for a target computer program being modelled to select of one or more Interface Units to define the type of user interface display said target computer program will display and interactivity which is to be provided in the desired user interface of said target computer program, each of said Interface Units defining a particular pattern for a user interface of said target computer program; and (4) controlling a computer to display dialog boxes or forms identifying which data is compulsory and inviting entry of at least said compulsory data which articulates said selected Interaction Unit and which objects from said selected class and which attribute data from selected objects will be displayed on said user interface of said target computer program or controlling how services defined by a selected Service Interface Unit can be interacted with in the user interface of said target computer program and how user interfaces created by said selected Service Interface Unit will behave in said desired user interface of said target computer program.
-
-
18. A process for validating a specification of a desired user interface for a target computer program being modeled, said specification being created in a formal language from selection and articulation of Interaction Units representing patterns of a user interface of a target computer program, and containing data structures which encode the type and content of user interface displays of said target computer program specified by said selected Interaction Units for one or more classes in said model, comprising the steps:
-
verifying that all mandatory names of all selected and named Interaction Units (IU) for each class are unique within said class; verifying that all mandatory names of elemental patterns defined for each IU in each class are unique within said class; verifying that all referenced objects in said IUs for each class exist; verifying that each IU hierarchical action tree has a root node, a label, children nodes or reference to a target IU and no children; verifying that all instance IUs and all population IUs for all classes have a reference to a mandatory existing display set; verifying that all Master/Detail IUs for every class have at least one mandatory master component and at least one mandatory detail component; verifying that all navigational formula expressions are valid according to the syntax of whatever formal language is in use; verifying that all filter conditions in Population IUs of all classes have formulas and that the formulas defining said filters are valid according to the syntax for that type of formula of whatever formal language is in use; verifying that every display set and every order criteria of every IU in every class which has a display set or order criteria has at least one element; verifying that every navigation and action in every IU that has navigation and action specified has at least one element; and blocking automatic generation of code for said target computer program until all validation steps recited above have been performed and every statement in said formal language specification is complete and correct.
-
-
19. A computer readable medium having computer executable instructions stored thereon for controlling a computer to perform a method to validate a formal language specification of a user interface for a target computer program for which computer code is to be automatically generated, said formal language specification being created in a formal language from selection and articulation of Interaction Units representing patterns of a user interface of a target computer program, and containing data structures which encode the type and content of user interface displays of said target computer program specified by said selected Interaction Units for one or more classes in said model, said formal language being a language which has semantics wherein every term has one and only one meaning and each statement in said formal language has rules of syntax and semantics which can be used to validate said statement to ensure it is complete and correct, said method implemented by said computer-executable instructions comprising:
-
verifying that all mandatory names of all selected and named Interaction Units (IU) for each class are unique within said class; verifying that all mandatory names of elemental patterns defined for each IU in each class are unique within said class; verifying that all referenced objects in said IUs for each class exist; verifying that each IU hierarchical action tree has a root node, a label, children nodes or reference to a target IU and no children; verifying that all instance IUs and all population IUs for all classes have a reference to a mandatory existing display set; verifying that all Master/Detail IUs for every class have at least one mandatory master component and at least one mandatory detail component; verifying that all navigational formula expressions are valid according to the syntax of whatever formal language is in use; verifying that all filter conditions in Population IUs of all classes have formulas and that the formulas defining said filters are valid according to the syntax for that type of formula of whatever formal language is in use; verifying that every display set and every order criteria of every IU in every class which has a display set or order criteria has at least one element; verifying that every navigation and action in every IU that has navigation and action specified has at least one element; and blocking automatic generation of code for said target computer program until all validation steps recited above have been performed and every statement in said formal language specification is complete and correct.
-
-
20. A computer programmed to carry out the following method to validate a formal language specification of a user interface for a target computer program defined by said formal language specification, said formal language specification being created in a formal language from selection and articulation of Interaction Units representing patterns of a user interface of said target computer program, and containing data structures which encode the type and content of user interface displays of said target computer program specified by said selected Interaction Units for one or more classes in said model, said formal language written in a formal language which has semantics in which every term has one and only one meaning and in which each statement has rules of syntax and semantics that can be used to validate said statement to ensure that statements in said formal language specification of said user interface of said target computer program are complete and correct, said method comprising the steps:
-
verifying that all mandatory names of all selected and named Interaction Units (IU) for each class are unique within said class; verifying that all mandatory names of elemental patterns defined for each IU in each class are unique within said class; verifying that all referenced objects in said IUs for each class exist; verifying that each IU hierarchical action tree has a root node, a label, children nodes or reference to a target IU and no children; verifying that all instance IUs and all population IUs for all classes have a reference to a mandatory existing display set; verifying that all Master/Detail IUs for every class have at least one mandatory master component and at least one mandatory detail component; verifying that all navigational formula expressions are valid according to the syntax of whatever formal language is in use; verifying that all filter conditions in Population IUs of all classes have formulas and that the formulas defining said filters are valid according to the syntax for that type of formula of whatever formal language is in use; verifying that every display set and every order criteria of every IU in every class which has a display set or order criteria has at least one element; verifying that every navigation and action in every IU that has navigation and action specified has at least one element; and blocking automatic generation of code for said target computer program until all validation steps recited above have been performed and every statement in said formal language specification is complete and correct.
-
Specification