Patent Document ID: 8365138
Application ID: 12284947

Base Claim:
1. A process to use a computer to automatically translate a Formal Language Specification defining the functionality of a computer application program modeled in a Conceptual Model, into bug-free source code of a complete application program including a user interface and a database schema, said process comprising the steps of: A) using a computer to automatically check statements in said Formal Language Specification against the rules of syntax and semantics of a formal language in which said Formal Language Specification is expressed thereby validating said Formal Language Specification to ensure said Formal Language Specification is complete in that there is no missing information in said Formal Language Specification and to ensure said Formal Language Specification is correct in that primitives of said conceptual model are syntactically and semantically consistent and not ambiguous; B) translating said validated Formal Language Specification into computer readable source code which has the capability to control a computer to provide a user interface access mechanism to allow users to log in by entering at least identification data and to use said identification data to authenticate and validate a user as an instance of a class of the validated Formal Language Specification that act as agent in at least one agent relationship, said translating done using a computer to automatically retrieve information from said Formal Language Specification and storing said retrieved information in one or more code generation structures in memory of a computer, said code generation structures taking the form of class objects each of which has a code generation method, and using a method in a code generation class object to call the code generation method(s) of the code generation structures in a proper order to write one or more source code files that implement said user interface access mechanism; C) translating said validated Formal Language Specification into computer readable code which has the capability to control a computer to provide a view of the system defining the set of objects and attributes the user can query and the set of services said user can execute, the content of said system view depending on the identity of said user accessing said application, said translating done using a computer to automatically retrieve information from said Formal Language Specification which expresses concepts in a Conceptual Model of said application in a Formal Language, and storing said retrieved information in one or more code generation structures in memory of a computer, said code generation structures taking the form of class objects each of which has a code generation method, and using a method in a code generation class object to call the code generation method(s) of said one or more code generation structures in a proper order to write one or more source code files that implement said capability to control a computer to provide a view of said system defining the set of objects and attributes said user can query and the set of services said user can execute; and D) translating said validated Formal Language Specification into computer readable code which has the capability to control a computer to provide user interface interaction mechanisms to interact with and execute the functionality of the application in terms of performing queries on information managed by said application and executing services to modify the state of said information managed by said application, said services comprising events, local transactions and global transactions, said translating done using a computer to automatically retrieve information from said Formal Language Specification which expresses concepts in a Conceptual Model of said application in a Formal Language, and storing said retrieved information in one or more code generation structures in memory of a computer, said code generation structures taking the form of class objects each of which has a code generation method, and using a method in a code generation class object to call the code generation method(s) of said one or more code generation structures in a proper order to write one or more source code files that implement said application with capability to control a computer to provide user interface interaction mechanism to interact with and execute the functionality of said application and allow a user of said application to launch said queries and services.

---

Claim 18:
18. The process of claim 1 wherein said step D comprises using a computer for automatically retrieving information from said Formal Language Specification which is such as to create said code generation structures having data stored therein which causes said code generation method(s) of said code generation structure(s) to generate computer readable source code for said application which is structured to control a computer to perform the following steps: providing a mechanism in the form of a displayed graphic item such as a dialog box showing the filter conditions a user has the option to set to define a well-formed formula which defines a Filter Expression for a query said user of said application wants said application to execute; controlling a computer to receive a value supplied by a user for every filter variable which can be set by a user, said filter variables which can be set by a user being part of said well-formed formula defining the search criteria represented by said Filter Expression said filter variables representing the query desired by said user, said computer readable source code also structured to further control said computer such that filter variables that require a value are provided a value either automatically from data in said Formal Language Specification or from data supplied by said user, and to further control said computer such that any filter variable whose value is provided by a user of said application is required by said application to receive a valid value and to reject any invalid value thereby forcing said user to supply a valid value; providing a user interface mechanism to allow a user to select a desired Display Set user interface pattern controlling what information is displayed from objects that pass said Filter Expression as a result of performing said query and displaying a visual component that shows objects that fulfil the filter condition expressed in said well-formed formula represented by said Filter Expression; controlling a computer to display a user interface mechanism such as selection options in a dialog box to allow a user to select user interface patterns to use in supplying values to filter variables to define said well formed formula defining said Filter Expression, if any, to be used by said application in performing said query including edit-masks and range-value restrictions in an Introduction Patterns and a Defined Selection pattern with specified sets of pre-specified valid values from which filter variables may be selected; controlling a computer to display a visual component to show objects that pass the filter of said Filter Expression or all the population of the class upon which said query is executed if no Filter Expression is defined and in use where the attributes displayed in said visual component are established by said Display Set user interface pattern selected by said user of said application.