Automatic software production system
First Claim
Patent Images
1. An automated software production tool, comprising:
- a CASE tool for controlling a computer to provide a user interface that provides tools which a user can invoke to create a conceptual model comprised of an object model, a dynamic model, a functional model and a presentation model, said conceptual model being an abstract graphical representation of a solution to a problem wherein said conceptual model will be automatically translated into a computer program which will be able to control a computer to provide said solution of said problem said user is trying to solve, said object model being a graphical model of the objects to be employed in said computer program and defining classes of said objects, said dynamic model specifying valid object life cycles for each objects defined in said object model and inter-object communications between objects in response to services, triggers and global transactions, said functional model specifying valuations of objects which means how every event changes an object'"'"'s state depending upon the arguments of the involved event and the object'"'"'s current state, and said presentation model being built using tools or icons representing basic patterns in user interfaces and defining a desired user interface behavior for said computer program, and said CASE tool for automatically converting said conceptual model into a formal language specification written in an unambiguous, object-oriented, formal language having predetermined precise rules of grammar, syntax and semantics which are such that said formal specification can be validated to ensure that said formal language specification is an unambiguous, correct and complete statement of said solution of said problem said user is trying to solve;
a computer-readable medium for storing said formal specification;
a validator for validating said formal language specification to ensure that said formal language specification is complete and correct, “
complete”
meaning all the required properties of said conceptual model are defined and have a value, and “
correct”
meaning the information introduced in the conceptual model by the user complies with said rules of syntax of said formal language and is semantically consistent and not ambiguous, said validator outputting a validated formal language specification of said solution to said problem prior to automatic translation of said validated formal language specification into computer program code; and
a translator for automatically generating computer program code that can either control a computer to solve said problem or which can be compiled into an executable form which can control a computer to solve said problem, said computer program code being a complete, automatically generated computer program implementation in a predetermined, user chosen computer program language of said validated formal language specification, and wherein said computer program code includes instructions for handling said user interface in accordance with said patterns specified in said presentation model.
1 Assignment
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
43 Claims
-
1. An automated software production tool, comprising:
-
a CASE tool for controlling a computer to provide a user interface that provides tools which a user can invoke to create a conceptual model comprised of an object model, a dynamic model, a functional model and a presentation model, said conceptual model being an abstract graphical representation of a solution to a problem wherein said conceptual model will be automatically translated into a computer program which will be able to control a computer to provide said solution of said problem said user is trying to solve, said object model being a graphical model of the objects to be employed in said computer program and defining classes of said objects, said dynamic model specifying valid object life cycles for each objects defined in said object model and inter-object communications between objects in response to services, triggers and global transactions, said functional model specifying valuations of objects which means how every event changes an object'"'"'s state depending upon the arguments of the involved event and the object'"'"'s current state, and said presentation model being built using tools or icons representing basic patterns in user interfaces and defining a desired user interface behavior for said computer program, and said CASE tool for automatically converting said conceptual model into a formal language specification written in an unambiguous, object-oriented, formal language having predetermined precise rules of grammar, syntax and semantics which are such that said formal specification can be validated to ensure that said formal language specification is an unambiguous, correct and complete statement of said solution of said problem said user is trying to solve;
a computer-readable medium for storing said formal specification;
a validator for validating said formal language specification to ensure that said formal language specification is complete and correct, “
complete”
meaning all the required properties of said conceptual model are defined and have a value, and “
correct”
meaning the information introduced in the conceptual model by the user complies with said rules of syntax of said formal language and is semantically consistent and not ambiguous, said validator outputting a validated formal language specification of said solution to said problem prior to automatic translation of said validated formal language specification into computer program code; and
a translator for automatically generating computer program code that can either control a computer to solve said problem or which can be compiled into an executable form which can control a computer to solve said problem, said computer program code being a complete, automatically generated computer program implementation in a predetermined, user chosen computer program language of said validated formal language specification, and wherein said computer program code includes instructions for handling said user interface in accordance with said patterns specified in said presentation model. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An automated software production tool, comprising:
-
CASE tool for presenting a graphical user interface to allow a user to input formal requirements for a computer program to be generated by said automated software production tool and generating a formal language specification for said computer program based on said formal requirements written in a formal language such that every formal requirement input by said user is recorded as one or more elements of said formal language specification each of which has predetermined rules of syntax and semantics;
a validator for semantically and syntactically validating said formal language specification to ensure said formal language specification is complete, correct and non ambiguous so as to generate a validated formal language specification; and
a translator for automatically generating computer code for said computer program based on said validated formal language specification. - View Dependent Claims (10, 11, 12, 13)
said CASE tool displays tools, menu choices, icons, or any other mechanisms of a graphical user interface which can be invoked by a user of said CASE tool to specify said formal requirements to include patterns for a desired user interface to be presented to a user of said computer program to be generated by said automated software production tool; and
wherein said translator is constructed so as to use said patterns specifying said desired user interface to generate in said final computer program instructions to control a computer executing said computer program to implement said desired user interface in accordance with said patterns.
-
-
11. The tool according to claim 9, wherein:
-
said formal requirements entered by said user define a conceptual model of said computer program; and
said translator includes a system logic translator structured to identify every point in said conceptual model where an internal error might occur, where internal errors correspond to properties of said conceptual model which must be true at a given instant, and wherein said translator is structured to generate instructions in said computer program to control a computer executing said computer program to detect if an internal error has occurred and to notify a user of said computer program of said error'"'"'s occurrence, and wherein said translator is further structured to anticipate every point in the automatically generated computer instructions of said computer program generated by said translator where an external error might occur and generate instructions to notify the user of the external error'"'"'s occurrence if such an external error occurs, where external errors correspond to errors foreign to such conceptual model such as hard disk failure, database failure and other such errors.
-
-
12. The tool according to claim 9, wherein said CASE tool is further configured to control a computer to present graphical user interface mechanisms by which a user can specify for any object specified by said computer program to be written one or more valuations that control how the occurrence of one or more events will change the state of said object, where the state of said object is defined as the current value of all its attributes.
-
13. The tool according to claim 12, wherein said valuation(s) are selected from a set consisting essentially of push-pop, state-independent, and discrete-domain.
-
14. An automated software production tool, comprising:
-
a computer-readable medium for storing a specification written in any formal language having predetermined rules of syntax and semantics said formal language specification specifying a Conceptual Model that includes user supplied requirements for a computer program to be generated automatically by said automated software production tool and which is robust in that it includes instructions to detect and notify a user of both internal and external errors when they occur, where internal errors occur when a property of said Conceptual Model required to be true at a given instant is not satisfied, and where external errors correspond to errors foreign to such Conceptual Model such as hard disk failure or a database failure;
a validator for validating syntax and semantics of statements in said formal language specification to determine that said Conceptual Model is correct, complete, and unambiguous so as to generate a validated formal language specification; and
a translator for automatically generating computer code of said computer program from said validated formal specification, wherein said computer program includes instructions for detection of internal and external errors and notification of a user of said computer program of the occurrence of said errors. - View Dependent Claims (15, 16, 17)
-
-
18. A method for automatically generating a computer program, comprising:
-
accessing a formal language specification written in a formal language which has predetermined precise rules of syntax and semantics such that said formal language specification is guaranteed to be non ambiguous and can be validated to be complete and correct using said rules of syntax and semantics, said formal language specification being created from a Conceptual Model created by a user who specifies requirements for a computer program to be automatically generated, said Conceptual Model including a Presentation Model which specifies through the use of predetermined patterns a desired user interface for said computer program to be automatically generated;
validating said formal language specification using rules of validation based upon said rules of syntax and semantics of said formal language to ensure said formal specification is complete and correct and unambiguous to generate a validated formal language specification; and
automatically generating said computer program in a computer language that can be immediately executed by a computer or compiled into an executable form from said validated formal language specification, and wherein said automatic generation step includes, based upon portions of said formal language specification which define said desired user interface, inserting computer instructions which control a computer executing said computer program to have a desired user interface in accordance with said patterns specified in said Presentation Model. - View Dependent Claims (19, 20, 21, 22)
using a CASE tool to control a computer to present a graphic user interface to provide tools a user can invoke to construct said Conceptual Model, said tools including tools which represent patterns of user interface methodologies which can be specified to define said Presentation Model which defines said desired user interface;
and wherein; said requirements are entered by said user using said tools presented by said CASE tool, and include requirements for error detection and handling to detect the occurrence of internal and external errors and notify a user of said computer program regarding the occurrence of said errors so as to create a robust computer program; and
said translation step includes steps to determine where in said Conceptual Model internal and external errors are likely to occur and to add instructions for error checking and handling to said computer program to detect the occurrence of said errors and notify a user of said computer program.
-
-
20. The method according to claim 19, wherein said CASE tool controls a computer executing said CASE tool so as to provide tools for invocation by an analyst building said Conceptual Model to allow said analyst to enter input specifying for selected ones of each variable attribute in selected ones of each class in said Conceptual Model one or more valuation formulas, each valuation formula defining how an event changes the value of a variable attribute.
-
21. The method according to claim 20, wherein each said valuation is selected from a set consisting essentially of push-pop, state-independent, and discrete-domain.
-
22. The method according to claim 18, further comprising the step of producing documentation for said computer program based on said formal language specification.
-
23. A method for automatically generating a computer program, comprising:
-
controlling a computer with an editor program so as to present a graphical user interface to provide tools which can be invoked by a user to input requirements for a computer program to be written automatically to implement said requirements, said requirements defining a Conceptual Model which defines the desired computer program'"'"'s functionality and at least parts of said Conceptual Model being displayed graphically on said computer executing said editor program;
automatically generating a formal language specification for said computer program based on said conceptual model, said formal language specification being written in a formal language with precise rules of syntax and semantics;
validating said formal language specification using said rules of syntax and semantics to ensure that said formal language specification is complete and correct and not ambiguous to generate a validated formal language specification; and
automatically generating said computer program based on said validated formal language specification. - View Dependent Claims (24, 25, 26, 27, 28, 29)
wherein said step of controlling a computer with an editor program includes controlling said computer to display a graphical user interface that provides tools which can be invoked to specify a desired user interface for said computer program in terms of patterns, with the patterns specified by said user comprising a Presentation Model; - and
wherein said step of automatically generating said computer program includes the steps of adding to said computer program instructions for controlling a computer executing said computer program to provide a user interface in accordance with said patterns specified in said Presentation Model.
-
-
25. The method of claim 23, wherein said step of automatically generating said computer program includes the steps of determining every point in said Conceptual Model where an internal error might occur and adding computer instructions to said computer program to detect the occurrence of such an internal error and to notify a user of said computer program that said error occurred, where an internal error occurs when a property required by said Conceptual Model to be true at a particular instant is not satisfied.
-
26. The method according to claim 25, wherein said step of automatically generating said computer program further comprises the steps of identifying every point where an external error might occur and adding instructions to said computer program which detect the occurrence of an external error and notify a user of said computer program of the occurrence of said error.
-
27. The method according to claim 23 wherein said validating step includes the steps of verifying the completeness of said formal language specification by determining whether there is any missing information therein meaning that all required properties of said Conceptual Model are defined and have a value, and verifying the correctness of said formal language specification by verifying that all the information entered during construction of said Conceptual Model using said editor is syntactically and semantically consistent and not ambiguous and that all properties defined in said Conceptual Model have valid values.
-
28. The method according to claim 27 wherein said Conceptual Model includes formulas and where said step of validating further comprises the steps of verifying the syntax and semantics of all said formulas in said Conceptual Model.
-
29. The method according to claim 23 wherein said Conceptual Model includes formulas, and wherein said step of validating includes steps of verifying that the properties of every element in said formal language specification exist and have valid values and that all said formulas in said formal language specification are syntactically and semantically correct where every type of formula has a predefined process and grammar to verify the correctness of said formula.
-
30. A method for automatically generating a computer program, comprising:
-
controlling a computer with an editor program to present a user interface which provides tools which can be invoked by an analyst to create a graphical representation of a Conceptual Model of a computer program to be automatically generated using said Conceptual Model, said Conceptual Model including information that defines classes of objects and the attributes and services of each object in a class, as well as the relationships between classes, a state transition diagram which defines the permissible state transitions of each object including information that defines the creation and deletion of an object and formulas that control transitions between states, an object interaction diagram that defines how objects communicate with each other, and formulas which define how events change the values of variable attributes of said objects, and information defining patterns of a desired user interface, said editor program controlling said computer to automatically convert said Conceptual Model to a formal language specification written in a formal language with rules of syntax and semantics and to provide notification to said analyst when a mistake of syntax or semantics results in generation of said formal language specification resulting from information defining said Conceptual Model entered by said analyst and providing information which assists said analyst in correcting the entered information to correct said mistake;
accessing said formal language specification from a computer readable medium upon which said formal language specification is stored by said editor program;
validating said formal language specification to determine that said Conceptual Model is correct meaning that the information entered to define said Conceptual Model is syntactically and semantically consistent according to a grammar of said formal language used to write said specification, and not ambiguous, and complete meaning that there is no information in said Conceptual Model required by the rules of syntax or semantics which is missing in said formal language specification such that all properties required by said Conceptual Model are defined and have a valid value; and
automatically generating said computer program using said formal language specification so as to implement all the structure and behavior, properties and services and said user interface defined in said Conceptual Model. - View Dependent Claims (31)
-
-
32. A computer-readable medium bearing instructions for controlling a computer to automatically generate a computer program from a formal language specification, said instructions being arranged to cause one or more processors upon execution thereby to perform the steps of:
-
accessing a formal language specification written in a formal language which has predetermined precise rules of syntax and semantics such that said specification is guaranteed to be non ambiguous and can be validated to be complete and correct using said rules of syntax and semantics, said formal language specification being created from a Conceptual Model created by a user that specifies requirements for a computer program to be automatically generated, said Conceptual Model including a Presentation Model which specifies through the use of predetermined patterns a desired user interface for said computer program to be automatically generated;
validating said formal language specification using said rules of syntax and semantics to ensure said formal specification is complete and correct and unambiguous to generate a validated formal language specification; and
automatically generating said computer program in a computer language that can be immediately executed by a computer or compiled into an executable form from said validated formal language specification, and wherein said automatic generation step includes, based upon portions of said formal language specification which define said desired user interface, inserting computer instructions which control a computer executing said computer program to have a desired user interface in accordance with said patterns specified in said Presentation Model. - View Dependent Claims (33, 34, 35)
-
-
36. A computer-readable medium bearing instructions for controlling a computer to present tools for an analyst to specify the requirements for a computer program to be written and to automatically generate said computer program, said instructions being arranged to cause one or more processors upon execution thereby to perform the steps of:
-
controlling a computer with an editor program to present a user interface which provides tools which can be invoked by an analyst to create a graphical representation of a Conceptual Model of a solution to a problem that a computer program to be automatically generated using said Conceptual Model will solve, said Conceptual Model defining classes of objects, and attributes and services for each class as well as relationships between classes, a state transition diagram which defines the permissible state transitions of each object including information that defines the creation and deletion of an object and control condition formulas that control transitions between states, an object interaction diagram that defines how objects communicate with each other, and valuation formulas which define how events change the values of variable attributes of said objects, and information defining patterns of a desired user interface, said editor program controlling said computer to automatically convert said Conceptual Model to a formal language specification written in a formal language with rules of syntax and semantics and to provide notification to said analyst when a mistake of syntax or semantics has occurred in information defining said Conceptual Model entered by said analyst;
accessing said formal language specification from a computer readable medium upon which said formal language specification is stored by said editor program;
validating said formal language specification to determine that said Conceptual Model is correct meaning that the information entered to define said Conceptual Model is syntactically and semantically consistent according to a grammar of said formal language used to write said specification, and not ambiguous, and complete meaning that there is no missing information required by said Conceptual Model and the rules of syntax or semantics of said formal language such that all properties required by said Conceptual Model are defined and have a valid value; and
automatically generating said computer program using said formal language specification so as to implement all the structure and behavior, properties and services and said user interface defined in said Conceptual Model. - View Dependent Claims (37, 38, 39, 40, 41, 42)
-
-
43. A computer-readable medium bearing instructions for controlling a computer to provide tools to define a Conceptual Model of a computer program to be written and to automatically generate said computer program, said instructions being arranged to cause one or more processors upon execution thereby to perform the steps of:
-
using a CASE tool to control a computer to present a graphical user interface mechanism to provide tools a user can invoke to construct a Conceptual Model which defines the structure and behavior of a computer program to be automatically written by a computer, said tools including tools which represent patterns of user interface methodologies which can be specified to define a Presentation Model which defines a desired user interface for said computer program to be automatically written, said CASE tool for automatically converting said Conceptual Model into a formal language specification written in a mathematically based formal language having strict, predefined rules of syntax and semantics which together comprise a grammar and for notifying said user whenever any error of semantics or syntax results from information entered by said user in defining said Conceptual Model;
accessing said formal language specification;
validating said formal language specification using rules of validation based upon said rules of syntax and semantics of said formal language to ensure said formal language specification is complete and correct and unambiguous so as to generate a validated formal language specification; and
automatically generating said computer program in a computer language that can be immediately executed by a computer or compiled into an executable form, said automatic generation step accomplished using said validated formal language specification, and wherein said automatic generation step includes, based upon portions of said formal language specification which define said desired user interface, inserting computer instructions which control a computer executing said computer program to have a desired user interface in accordance with said patterns specified in said Presentation Model.
-
Specification