Automatic software production system
First Claim
Patent Images
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.
0 Assignments
0 Petitions
Accused Products
Abstract
An automated software production system is provided, in which system requirements are captured, converted into a formal specification, and validated for correctness and completeness. In addition, a translator is provided to automatically generate a complete, robust software application based on the validated formal specification, including user-interface code and error handling code.
-
Citations
54 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A translation process using a computer to automatically convert a Formal Language Specification into working source code for a user interface of an application computer program defined in said Formal Language Specification comprising the steps of:
controlling a computer to generate the following source code files which are structured to control a computer to implement the desired user interface including; final source code files of fixed content corresponding to structures or auxiliary functions which are widely used and always produced in the same way regardless of the content of said Formal Language Specification including headers, definitions, constants; source code files which control a computer to implement auxiliary widgets including controls and JavaBeans, said auxiliary widgets and JavaBeans which are produced depending upon the application defined in said Formal Language Specification; for every class defined in said Formal Language Specification; one or more source code files which control a computer to implement a query/selection form, one or more source code files which control a computer to implement an instance selection component, one or more source code files which control a computer to implement a specialization component if said class is specialized, and one or more source code files which control a computer to implement a service form if said class is a service class; one or more source code files which control a computer to implement an access form that can receive a user name and password and check the entered data for validity for purposes of identification of a user attempting to log onto said application computer program and use it; one or more source code files which control a computer to implement a main form presenting a menu of services a user who has successfully logged on has privileges to access and invoke; and one or more source code files which control a computer to implement a communication function to send messages to object server code for each service a logged on user can access, said communication function source code controlling a computer to supply argument default values for a service to be launched and solicit argument values from said user for said service to be launched and validate arguments values supplied by said user to be the correct data type, size and within a valid range and, if null, determine whether or not a null value is acceptable, and notify said user if an argument value fails any validation test, said communication function also structured to control a computer to send all arguments needed to execute a service said user has indicated a desire to invoke to appropriate object server code which is capable of controlling a computer to execute said service.
-
28. An apparatus comprising:
-
a general purpose computer having as part thereof a memory, a display, a keyboard and a pointing device and having a validated Formal Language Specification stored in memory, said computer programmed with; an operating system program loaded into and controlling operation by said computer to carry out instructions of other computer programs; a translator program cooperating with said operating system program to control operation of said computer to automatically extract requirements data from said validated Formal Language Specification and store said requirements data in code generation translation structures in memory of said computer wherein each code generation translation structure is an object in memory of said computer in the form of an instance of a class of objects which is designed to create source code of a predetermined type and can store requirements data extracted from said formal language specification which is needed to generate source code of said predetermined type and which also stores a source code template to generate source code of said predetermined type, and wherein each said code generation translation structure also has a code generation method which functions to automatically plug requirements data stored in said translation structure object into appropriate blanks of said source code template and automatically output source code of said predetermined type which has been automatically customized by requirements data automatically extracted from said validated Formal Language Specification, and wherein said translator program cooperates with said operating system to create a code generation class object in said memory of said computer which has methods to automatically keeps track of the code generation translation structures which have been created in said memory of said computer and call said code generation methods of said code generation translation structures in the proper order to generate finished source code for said application program which is executable and complete and not a prototype and with functionality to access a database and having a complete user interface.
-
-
29. A process for using a computer to automatically validate a Formal Specification encoding a Conceptual Model of an application computer program being designed by a designer, comprising the steps:
-
A) using a computer to automatically ensure that said Formal Specification is complete, said Formal Specification being written in formal language having a grammar comprised of rules of syntax and semantics which define how statements in said Formal Specification must be structured and what they mean, said computer executing a validation program that uses said rules of syntax and semantics to check that all required properties of elements introduced by said designer into said Conceptual Model embodied in said Formal Specification are defined and have a valid value; B) using a computer to automatically ensure that said Formal Specification is correct by executing a validation program which uses said rules of grammar of said formal language in which said Formal Specification is expressed to ensure that statements in said Formal Specification have correct syntax and are semantically correct and not ambiguous and each formula is well-formed according to rules of syntax and semantics specific to formulas of that type; and further comprising the step of using a computer to automatically translate said Formal Specification into final, working, bug-free source code after steps A and B and been completed and all formulas are syntactically and semantically complete and correct so as to create a validated Formal Specification that is complete and correct, said automatic translation being carried out by a computer by extracting and storing in translation structure objects in memory of said computer predetermined requirements data from said validated Formal Specification needed to fill gaps in source code templates stored in each of a plurality of different types of translation structures stored in memory of a computer, each translation structure being a class object which stores requirements data extracted from said validated Formal Specification and a source code template and having a method which plugs requirements data stored in said translation structure into appropriate blanks in said source code template so as to create source code of a particular type which is generated by instances of said class of translation structures, said source code customized with data from said validated Formal Specification, said process of automatic translation comprising; creating not only said translation structures but also a code generation class which includes one or more methods which are executed during said translation process to maintain a list of said translation structures which have been created; call the code generation methods of said translation structures in the proper order; write to files the source code generated by the code generation methods of said translation structures; and organize said files in accordance with a component-based structure for said application computer program thereby creating final, working, bug-free source code for said application computer program.
-
-
30. A process for using a computer to automatically validate a Formal Specification encoding a Conceptual Model of an application computer program being designed by a designer, comprising the steps:
-
A) using a computer to automatically ensure that said Formal Specification is complete, said Formal Specification being written in formal language having a grammar comprised of rules of syntax and semantics which define how statements in said Formal Specification must be structured and what they mean, said computer executing a validation program that uses said rules of syntax and semantics to check that all required properties of elements introduced by said designer into said Conceptual Model embodied in said Formal Specification are defined and have a valid value; B) using a computer to automatically ensure that said Formal Specification is correct by executing a validation program which uses said rules of grammar of said formal language in which said Formal Specification is expressed to ensure that statements in said Formal Specification have correct syntax and are semantically correct and not ambiguous and each formula is well-formed according to rules of syntax and semantics specific to formulas of that type; and further comprising the steps; presenting user interface tools including diagrams and textual interactive dialogs by which a user may define elements that make up said Conceptual Model including defining mathematical and boolean formulas necessary to define aspects of the behavior of said application computer program and make changes thereto; checking all affected formulas each time a change is made to said Conceptual Model; and wherein some of the properties of elements in said Conceptual Model are strictly validated under rules of said validation process and some of the elements in said Conceptual Model are flexibly validated under rules of said validation process, and, if a change made by said designer to said Conceptual Model affects a strictly validated property, then said change is rejected if the property is not given a valid value, otherwise said change is accepted; and if a change to said Conceptual Model made by said designer affects a property which is flexibly validated, then said designer is informed should any error arise, but allowed to do the modification if said designer wishes; if there are no affected formulas, modifying the Conceptual Model as specified by said designer.
-
-
31. A process for using a computer to automatically validate a Formal Specification encoding a Conceptual Model of an application computer program being designed by a designer, comprising the steps:
-
A) using a computer to automatically ensure that said Formal Specification is complete, said Formal Specification being written in formal language having a grammar comprised of rules of syntax and semantics which define how statements in said Formal Specification must be structured and what they mean, said computer executing a validation program that uses said rules of syntax and semantics to check that all required properties of elements introduced by said designer into said Conceptual Model embodied in said Formal Specification are defined and have a valid value; B) using a computer to automatically ensure that said Formal Specification is correct by executing a validation program which uses said rules of grammar of said formal language in which said Formal Specification is expressed to ensure that statements in said Formal Specification have correct syntax and are semantically correct and not ambiguous and each formula is well-formed according to rules of syntax and semantics specific to formulas of that type; and wherein said Conceptual Model includes a Presentation Model containing elements that define the final user interface said application computer program will present to users thereof, and wherein said Presentation Model includes elements added by said designer to said Conceptual Model by selection of user interface patterns from a pattern language which are validated by using a computer to automatically use rules of syntax and semantics that apply to patterns and sub-patterns within said patterns in said pattern language to perform the following steps; verifying that any patterns in said Presentation Model selected by said designer and articulated with additional requirements data that defines the desired user interface are acceptable user interface patterns with no essential information missing; verifying that attributes used in filters sub-patterns specified as part of a pattern selected to be part of said Presentation Model are visible from a class owning said filters; verifying that attributes used in order criteria sub-patterns are visible from a class owning said order criteria sub-patterns; verifying that any formula in a filter sub-pattern has correct syntax and is semantically correct and uses only terms defined in said Conceptual Model; verifying that any action selection pattern selected by said designer from said pattern language uses as final actions presentation patterns selected from said pattern language which have been articulated in said Conceptual Model by said designer; verifying that any set of dependency patterns selected by said designer to be part of said Presentation Model are terminal and have confluence; and verifying that warnings are displayed to said user if any pattern is defined in said Conceptual Model but not used in said Presentation Model or if an instance pattern is duplicated.
-
-
32. An apparatus comprising a computer programmed with an operating system and a validation program that cooperates with said operating system to control said computer to perform the following functions of a validation process to validate a Formal Specification encoding a Conceptual Model of an application computer program being designed by a designer, said validation process comprising the following steps:
-
A) controlling said computer to check said Formal Specification to ensure that it is complete, said Formal Specification written in a formal language which has a grammar comprised of rules of syntax and semantics and wherein said process of checking said Formal Specification to ensure it is complete comprises the process of using said computer to automatically check said Formal Specification for completeness using said rules of syntax and semantics to ensure that all required properties of elements of said Conceptual Model encoded in said Formal Specification added by said designer are defined and have been given a valid value; B) controlling said computer to use said rules of syntax and semantics of said formal language to ensure said Formal Specification is correct in that the statements therein have correct syntax and are semantically correct and not ambiguous and to verify that each formula is well formed according to rules of syntax and semantics specific to formulas of that type; and wherein said validation program is also a modelling program or is part of a suite of programs which includes a modelling program, said modelling program being structured to control said computer to perform the following steps; displaying diagrams and textual interactive dialogs with which said designer interacts to enter requirements data that defines elements in said Conceptual Model and make changes thereto; doing a partial validation each time a change is made to said Conceptual Model where some elements in said Formal Specification have a set of properties that are strictly validated and must have a full definition and be given a valid value when entered and other elements are flexibly validated and can be left with some properties incomplete or with invalid values during the process of inputting requirements data to define said Conceptual Model; said partial validation process controlling said computer to implement the following rules; if the change affects a strictly validated property and the property is not given a valid value, then the change is rejected; if the change affects a strictly validated property and the property is given a full definition and a valid value, the change is accepted; if the change affects a property which is not strictly validated but the change renders part of said Formal Specification invalid, then marking the portion of said Formal Specification rendered invalid by the change as invalid, but allowing the change and the requirements data inputting process to continue; upon completion of the process of inputting requirements data and receiving a request to validate said Formal Specification, re-validating every statement in said Formal Specification and every formula using said rules of syntax and semantics and the validation processes specifically designed for each different type of formula and interacting with said designer until all errors have been corrected so as to create a validated Formal Specification; automatically translating said validated Formal Specification into final working source code by extracting and storing in translation structure objects predetermined requirements data from said validated Formal Specification needed to fill gaps in source code templates stored in each of a plurality of different types of said translation structure objects stored in memory of said computer, each translation structure object being an instance of a class of said objects which stores requirements data extracted from said validated Formal Specification and a source code template and having a method which plugs said requirements data stored in said translation structure object into appropriate blanks in said source code template so as to create source code of the particular type generated by instances of said class of translation structures, said source code having been customized by the insertion of said requirements data stored in said translation structure which was extracted from said validated Formal Specification, said function of automatically translating further comprising creating a code generation class object which includes one or more methods which are executed by said computer during said automatic translation and control said computer to maintain a list of said translation structure objects which have been created and to call the code generation methods of said translation structure objects in the proper order, write to one or more files the source code generated by the code generation methods of said translation structure objects and organize said files in accordance with a component-based structure for said application computer program thereby creating final, working, bug-free source code for said application computer program.
-
-
33. A process for automatically translation of a validated Formal Specification into working, final source code complete with a user interface and a database schema, said validated Formal Specification encoding in a formal language a Conceptual Model of an application computer program, said automatic translation process comprising:
-
creating translation object instances in memory of a computer each of which is designed to create source code of a different type and each of which stores a source code template which has blanks in it for requirements data that will customize said source code to the requirements of said application computer program; using a code generation method of each said translation object instance to control a computer to extract requirements data needed from said validated Formal Specification to fill in blanks in said source code template and storing said extracted requirements data in said translation object instance; creating a code generation object in said memory of said computer and controlling a computer with a method which is part of said code generation object to make a list of the translation object instances which have been created and to call said code generation method of each said translation object in the proper order to cause said translation object to write source code by putting said extracted requirements data stored therein in the appropriate blanks of its source code template, writing the source code so generated by said translation objects to files and organizing said files into said application computer program.
-
-
34. A process comprising the steps:
-
A) controlling a computer with a validation program to validate a Formal Specification written in a formal language which has rules of syntax and semantics which define a grammar, said Formal Specification expressing in said formal language the information contained in a Conceptual Model of an application computer program being designed by a designer which is to be automatically translated by a translation program executing on a computer into working, final computer source code of said application computer program having a user interface and a database schema, said validating being carried out on a computer executing said validation program to ensure that said Formal Specification is complete in that there is no missing information and all required properties of elements in said Conceptual Model embodied in said Formal Specification are defined and have a value which is valid; B) controlling said computer using said validation program so as to use said rules of grammar of whatever formal language said Formal Specification is written in, to ensure said Formal Specification is correct in that the statements in said Formal Specification have correct syntax and are semantically correct, consistent and not ambiguous; and C) controlling said computer using said validation program to use rules of grammar that are specific to each different type of formula in said Conceptual Model and a validation process which is specific to each different type of formula in said Conceptual Model to validate each formula expressed in the Formal Specification; and wherein said Conceptual Model comprises an object model, a dynamic model, a functional model and a presentation model, and further comprising the step of using a computer to automatically translate said Formal Specification into full, working, bug-free source code of said application computer program after steps A and B and C have been completed and all elements of said Formal Specification including all said formulas have been validated to ensure they have correct syntax and are semantically complete and correct, said automatic translation process comprising; creating translation object instances in memory of a computer each of which is designed to create source code of a different type and each of which stores a source code template which has blanks in it for requirements data which will be extracted from said Formal Specification after it has been validated and that will customize said source code to the requirements of said application computer program; using a code generation method of each said translation object instance to control a computer to extract said requirements data needed from said validated Formal Specification to fill in said blanks in each said source code template and storing said extracted requirements data in each said translation object instance; creating a code generation object and controlling a computer with a method which is part of said code generation object to make a list of the translation object instances which have been created and to call said code generation method of each said translation object in the proper order to cause said translation object to write source code by putting said extracted requirements data stored therein in the appropriate blanks of its source code template, and writing the source code so generated by said translation objects to files and organizing said files into said application computer program. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. A process comprising the steps:
-
using a computer to automatically translate a validated Formal Specification that embodies a Conceptual Model of an application computer program into a complete, working source code of said application computer program including a user interface and a database schema, comprising the sub steps; A) controlling a computer to retrieve requirements data entered into said Conceptual Model by a designer of said application computer program regarding classes, global transactions and global functions defined in said Conceptual Model, and storing it in code generation structures in memory of said computer, each said code generation structure being an instance of a code generation class which is designed to generate source code of a predetermined type and storing a source code template which is used to generate source code of said predetermined type and which has blanks in it into which said requirements data is plugged by a code generation method of said code generation structure so as to customize said source code template to the particular requirements for said application computer program which are embodied in said requirements data entered by a designer into said Conceptual Model; B) for each class for which requirements data was retrieved from said Conceptual Model, automatically generating working and complete computer program source code using said code generation methods of said code generation structures so as to generate complete and final source code which implements a server component, a query component, and a service type executive component, and a global interaction type executive component, and wherein said server component for each said class is structured to receive requests for execution of services to be executed and has a method for each service present in said class, each said method for a service being source code which can control a computer to carry out said service; and wherein said query component for each said class is structured to have methods necessary to query the population of said class, each said method being source code capable of controlling a computer to allow a user of said application computer program to query said population of said class stored in said database schema implemented in memory of a computer as part of a persistence tier; and wherein said service type executive component for each said class is source code structured to be able to control a computer to resolve or execute services offered in a class signature of said class by implementing an interface to other components of said application computer program comprising a method for each service, each said method of said interface associated with a service functioning to receive from a server component for said service or another executive component a request to cause execution of said service by a server component instance that has a method to control a computer to execute said service, each said method for each said service implemented by said service type executive component being source code structured to control a computer in accordance with an Execution Model to carry out the following functions; verify the existence and validity of said server component instance to carry out said service; create a copy of the requested server component instance in memory of a computer and access a persistence layer via said query component to retrieve the values of constant and variable attributes needed to execute said service; use a state transition diagram defined for said class in said Conceptual model to validate the state transition which would be caused by execution of the requested service based upon the present state of the requested server instance; verify satisfaction of any preconditions to execution of the requested service; if the state transition caused by execution of said service is valid and all preconditions are satisfied, modify the value of instance variable attributes that are acted upon by execution of said service as specified in a valuation formula, said modification of values done by performing all valuation calculations specified in said valuation formulas specified in said Conceptual Model as implemented by said service so as to change the state of said requested server instance; validate the new state achieved by said server instance by checking the new state against all static and dynamic integrity constraints; checking if said new state of said server instance causes any trigger conditions defined in said Conceptual Model to be satisfied, and, if so, cause any triggered actions to be carried out; communicate with a persistence layer to store the values of any persistent attributes of said new state of said requested server instance; and
,and wherein said global interaction executive component for each class is structured to have a method per each global interaction defined in said Conceptual Model for said class; and wherein said process of automatically translating said Formal Specification into source code of said application computer program further comprises the following steps; C) for each class for which requirements data was gathered from said Conceptual Model, using said computer to automatically execute said code generation method of a code generation structure storing a source code template designed to generate a T component, said T component being a source code component which is structured to control a computer to store a copy of the constant and variable attributes of an instance of said class in memory of a computer and is further structured to control a computer to calculate the value of derived attributes of said class; D) for each class for which requirements data was gathered from said Conceptual Model, using said computer to automatically execute said code generation method of a code generation structure storing a source code template designed to generate a P component, said P component being a source code component structured to control a computer to store in memory values needed to initialize the values of constant and variable attributes of said class when creating an instance of said class or to just initialize the values of variables that constitute the class identification mechanism; E) for each class which is a multi-valued component of an inheritance relationship and for which requirements data was gathered from said Conceptual Model, using said computer to automatically execute said code generation method of a code generation structure storing a source code template designed to generate a PL component, said PL component being a source code component structured to control a computer to implement a collection whose components are P components as well as to carry out methods needed to add and get items from said collection and get a number representing the number of items in said collection; F) for some or all classes which are temporal or permanent, condition-based specialization, using a computer to automatically execute said code generation method of a code generation structure storing a source code template designed to generate a C component, where a C component is a source code component structured to control a computer to store in memory the values needed to initialize constant and variable attributes of the class corresponding to said C component when creating an instance of said class; G) for classes which are temporal or permanent condition-based specialization, using a computer to automatically execute said code generation method of a code generation structure storing a source code template designed to generate a CC component, wherein a CC component is a source code component structured to control a computer to implement a collection of C components and a pair of methods per each C component to add and get items to the collection and a method to get the number of item in said collection of said C components; H) for every class, using a computer to automatically generate a code generation method of a code generation structure having stored therein a source code template designed to generate an error component, said error component being a source code template which is structured to control a computer to store information about the success or failure of a service execution; I) for every class for which requirements data was gathered from said Conceptual Model, using a computer to automatically execute a code generation method of a code generation structure having stored therein a source code template designed to generate an instance list component, wherein said instance list component is a source code component structured to control a computer to gather a collection whose items are executive components involved in the execution of a service and including methods to add an item to the collection, get an item and get the number of items in the collection and including a method to empty the collection and another one to look for an instance of said class by its identification function; J) for every class for which requirements data was gathered from said Conceptual Model, using a computer to automatically execute the code generation method of a code generation structure storing a source code template designed to generate condition, disjunction and conjunction components, where said condition, disjunction and conjunction components are source code components which are structured to control a computer to support the construction of complex Boolean expressions, query said persistence layer and are structured as a conjunction of disjunctions, and wherein said condition component is a source code component which stores information about a simple Boolean condition comprising two operands and a Boolean operator, and wherein said disjunction component is a source code component which implements a collection whose items are condition components as well as methods to add and get a condition from the collection and a method to get the number of conditions in the collection, and wherein said conjunction component is a source code component which implements a collection whose items are disjunction components as well as having methods to add and get a disjunction from said collection of disjunction components and a method to get the number of disjunction in the collection; K) for every class for which requirements data was gathered from said Conceptual Model, using a computer to automatically execute a code generation method of a code generation structure storing a source code template which is designed to generate a trigger component, where a trigger component is a source code component which is structured to control a computer to store information about a satisfied trigger condition so that the corresponding action identified in a formula defining said trigger condition can be later executed; L) for every class for which requirements data was gathered from said Conceptual Model, using a computer to automatically execute a code generation method of a code generation structure storing a source code template designed to generate a trigger list component, where a trigger list component is a source code component which is structured to control a computer to implement a collection whose items are trigger components and includes methods to add trigger components to the collection, get any item from said collection, get the first item from the collection and get the number of items in the collection; using a computer to automatically execute a code generation method of a code generation structure storing a source code template designed to generate a global module for grouping attributes and methods shared through the generated code; using a computer to automatically execute a code generation method of a code generation structure storing a source code template designed to generate a global functions module that groups the source code of all global functions defined in said Conceptual Model; and outputting the computer program source code resulting from the above recited source code generation steps.
-
-
49. A process for using a computer to automatically translate a validated Formal Specification written in a formal language as that term is used in computer science and meaning that there is an agreed upon syntax to every statement defining the proper structure of the component parts of the statement and there is an agreed upon semantic meaning for every term and that term is defined so as to have one and only one meaning, said Formal Specification defining an application computer program the source code of which will be created by said automatic translation of said Formal Specification, said automatic translation creating working and complete source code with a user interface and a database schema that is the functional equivalent of said Formal Specification, comprising the steps:
-
A) using a computer to automatically extract necessary requirements data from said Formal Specification and automatically generate source code implementing fixed files to embody headers, definitions, constants and auxiliary functions; B) using a computer to automatically extract necessary requirements data from said Formal Specification and automatically generate source code implementing auxiliary widgets; C) using a computer to automatically extract necessary requirements data from said Formal Specification and automatically generate source code structured to control a computer to carry out the following functions, for each class, generate a query/selection form, an instance selection component, a specialization component if the class is specialized from other classes and requires extra initialization, and, for each service of said class, locating the appropriate object server code and generating and displaying an activation service form which points to the appropriate object server for said service; D) using a computer to automatically generate source code structured to control a computer to generate and display an access form to identify a user who wishes to use said application program by providing user name and password login capability; E) using a computer to automatically extract necessary requirements data from said Formal Specification and automatically generate source code structured to control a computer to implement a main form containing a menu application block which displays, in menu form, all the services an authenticated user is allowed to access, and wherein said computer automatically generates system logic code to implement a server object which is source code structured to control a computer to receive arguments needed to execute said service and execute said service; F) using a computer to automatically extract necessary requirements data from said Formal Specification and automatically generate source code structured to control a computer to implement communication functions to, for each service, send a message containing the necessary arguments needed to execute said service and send said message to the appropriate object server code structured to control a computer to carry out said service so as, so as to allow a logged on user to invoke services selected by said user; and G) using a computer to automatically generate source code structured to control a computer to extract the state of all attributes of all classes defined in said Formal Specification and automatically generate a data store such as a relational database which stores the state of said attributes, and wherein step E is carried out in such a way as to automatically generate system logic source code structured to control a computer to access said data store so as to provide the ability to store changes in attributes of said classes as the values of said attributes change. - View Dependent Claims (50, 51, 52, 53)
-
-
54. An apparatus comprising:
-
a general purpose computer having as part thereof a memory, a display, a keyboard and a pointing device and having a validated Formal Language Specification stored in memory, said computer programmed with; an operating system program loaded into and controlling operation by said computer to carry out instructions of other computer programs; a translator program cooperating with said operating system program to control operation of said computer to automatically extract requirements data from said validated Formal Language Specification and store said requirements data in code generation translation structures in memory of said computer wherein each code generation translation structure is an object in memory of said computer in the form of an instance of a class of objects which is designed to create source code of a predetermined type and can store requirements data extracted from said formal language specification which is needed to generate source code of said predetermined type and which also stores a source code template to generate source code of said predetermined type, and wherein each said code generation translation structure also has a code generation method which functions to automatically plug requirements data stored in said translation structure object into appropriate blanks of said source code template and automatically output source code of said predetermined type which has been automatically customized by requirements data automatically extracted from said validated Formal Language Specification, and wherein said translator program cooperates with said operating system to create a code generation class object in said memory of said computer which has methods to automatically keep track of the code generation translation structures which have been created in said memory of said computer and call said code generation methods of said code generation translation structures in the proper order to generate finished source code for said application program which is executable and complete and not a prototype and with functionality to access a database and having a complete user interface and wherein said computer further comprises; a modeler program controlling said computer to cooperate with said operating system to control said computer to create said validated Formal Language Specification by using said keyboard, display and pointing device to provide a graphical user interface having diagrams and textual interactive dialogs with which a designer interacts to design an application program by entering requirements data into a Conceptual Model, said modeler program structured to control said computer to automatically convert said requirements data by plugging it into appropriate parts of formal language statements defining the conceptual structures said requirements data is meant to define, said formal language statements so created comprising a Formal Language Specification which is written in a formal language and which encodes said Conceptual Model, a formal language being defined as a language having an agreed upon syntax to every statement defining the proper structure for the component parts of the statement and there is an agreed upon semantic meaning such that every term is defined and has one and only one meaning, said modeler also structured to cooperate with said operating system to control said computer to use said rules of syntax and semantics to validate said Formal Language Specification to ensure said Formal Language Specification is complete and correct prior to translation.
-
Specification