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 26:
26. The process of claim 1 wherein the translating steps in step D further comprise retrieving information from said Formal Language Specification, said retrieved information being stored in said code generation structures so as to create code generation structures which are structured such that execution of code generation methods of said code generation structures generates computer readable source code which is structured to control a computer to allow a logged on user to execute one or more services of an instance of a class said logged on user is allowed to access and/or navigate to displays displaying information pertaining to other objects related with said instance of said class, said source code generated by execution of said code generation methods of said code generation structures being structured to control a computer to perform the following steps: display an Application Main Form containing a menu of services of objects or instances of said classes to which a user who has logged onto said application has privileges to access and services of which said user has privileges to execute, and, for each class the user who has logged on can access, generating and displaying a Query/Selection Form which allows said logged on user to query data instances of said class, search instances that fulfill a given filter condition, select objects of a class, and, for each selected object, observe instances related to said selected object and know which services for a given object said user has privileges to launch, and wherein, more specifically, said Query/Selection form having a visual component to show objects of a class which satisfy filter condition(s) set by said user with the attributes of said objects which are displayed determined by a Display Set user interface pattern selected and articulated by said designer, said Query/Selection form for each said class said user who logged in can access also having graphic items representing filters which have fields a user can fill in to supply filter criteria to allow said logged on user to filter objects in said class which will be displayed in said visual component, said Query/Selection form visual component allowing said user to control said computer to select an object that satisfies filter criteria, if any, and display services which said user can launch, and launch a service of a selected object said user requests to be launched, and said Query/Selection form visual component displaying links which allow a user to navigate to other data items related to the selected object thereby causing another Query/Selection Form to be displayed, said source code structured to control said computer to receive data regarding the previous object so that only data related to the initial object is displayed; for each service said user can launch, locate appropriate object server code in system logic code which has been automatically generated, said object server code being code which can control a computer to carry out said service, said source code also structured to control a computer to generate and display a Service Form that points to said object server code which can perform said service, said Service Form having an introduction field for each argument said user must provide to execute said service; supply initialization default values from said Formal Language Specification and/or values supplied by context from a recently visited objects list for some or all arguments if said designer has entered default values and/or if context values can be obtained, and/or receive user supplied values for some or all arguments needed to execute said service, and, if said user has supplied values for some or all of said arguments, check the user supplied values for each argument to ensure the data type and size is correct, the value is within an acceptable range for said argument and whether or not a null value is acceptable, and display a warning to said user if an argument's value fails any validation check; check dependencies between arguments, and, if a dependency is found to exist, display a form requesting said user to input data to satisfy said dependency and validate said data input by said user to ensure it has a valid data type, a proper size, and is within an acceptable range and whether a null value is acceptable if null; once all service arguments have been validated, and dependencies satisfied, send a message containing said service arguments to said object server code so as to launch said service; and wait for results from execution of said service, and display an error message if an error has occurred, otherwise wait for further user input.