Automatic software production system
AssigneeSosy, Inc.
InventorsJose Iborra, Oscar Pastor
Life of this patent
Estimating the term…
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.
Claims24
A computer-readable storage medium having stored thereon computer-readable instructions which, when executed by a computer, cause said computer to perform the following process:
- provide user interface mechanisms by which said computer receives user input data which defines a mandatory creation event which creates an instance of a class, and by which a user can optionally enter user input data which defines a destruction event and by which a user can optionally enter input data which defines one or more modification events for said class, said class becoming part of an object model which is the part of a conceptual model which defines all the classes of said conceptual model, said conceptual model defining the functionality of a computer program to be automatically written (hereafter referred to as the target computer program), said user input data defining said creation event creating an instance of a class owning said creation event and defining constant and variable attributes of said class and providing an initial value for all said constant and variable attributes of said instance of said class which are required upon creation, said user input also establishing all required relationships with instances of classes related with the instance of the class owning said creation event, and wherein said destruction event eliminates all relationships between a given instance of a class owning said destruction event and related instances of classes which have relationships with said class and destroys the instance of the class owning said destruction event, and wherein said one or more modification events each uses user input to modify the values of one or more variable attributes of a given instance of the class owning said modification event, the effect of said modification events defined by one or more logical or mathematical valuation formulas defined by user input data which affect the value of one or more variable attributes upon the occurrence of said modification event;
- converting said user input data into data structures in the form of statements in a formal language having rules of syntax and semantics which define a grammar, said statements in said formal language defining an object model having a class having said creation event, and having said destruction and modification events if user input data was entered defining said destruction and modification events;
- and
- using said rules of syntax and semantics to validate each said statement in said formal language specification to ensure it is complete and correct.
A computer-readable storage medium having stored thereon computer-readable instructions which, when executed by a computer cause said computer to perform the following process:
- providing user interface mechanisms by which a user can enter user input data that defines a class as part of a conceptual model of a target computer program to be written, said user input also defining services for said class and arguments for said services, each said service being an event or a transaction, each event being a single service, said user input data also defining an event owned by said class, a variable attribute owned by said class, a valuation condition, if desired, owned by said class, the state of said valuation condition controlling whether or not a valuation also specified by said user input data will be performed, said valuation owned by said class, said user interface mechanisms also allowing the user to enter user input data which defines portions of a functional model which is part of said conceptual model for said target computer program being modeled, said user input data selecting a class, a variable attribute of said class and an event of said class, said user input data also defining a state change for said selected class in the form of a mathematical formula that defines the effect said valuation has on said variable attribute's value upon the occurrence of said selected event if said valuation condition is satisfied, if a valuation condition was specified by said user input data, said class being part of a conceptual model which defines the functionality of said target computer program;
- and
- converting said user input data entered via said user interface mechanisms into data structures in the form of statements written in a formal language which has rules of syntax and rules of semantics which together define a grammar, said statements in said formal language defining said class, event, variable attribute, valuation condition, if specified, and said valuation's mathematical formula as part of a formal language specification which encodes said conceptual model of said target computer program;
- and
- using said rules of syntax and said rules of semantics to validate each said statement written in said formal language to ensure each said statement is complete and correct.
A computer-readable storage medium having computer-readable instructions stored thereon, which, when executed by a computer, control said computer to provide a user interface mechanism which allows a user to enter user input data which defines a transaction which is a formula which expresses the composition of services which make up said transaction where a service is part of a class which is part of an object model which is part of a conceptual model of a target computer program to be automatically written and whose functionality is defined by said conceptual model, and wherein said transaction is a molecular execution unit expressed in terms of a formula that specifies services in the form of events or transactions which together comprise said molecular execution unit,
- and said instructions controlling said computer to convert said user input data into one or more data structures in the form of one or more formal language statements written in a formal language which has rules of syntax and semantics which define a grammar, said formal language statements defining said transaction, and said instructions controlling said computer to use said rules of syntax and semantics to validate said formal language statements.
A process carried out on a computer comprising the steps:
- providing user interface mechanisms by which a user can enter user input data that defines a class as part of a conceptual model of a target computer program to be written, said user input also defining services for said class and arguments for said services, each said service being an event or a transaction, each event being a single service, said user input data also defining an event owned by said class, a variable attribute owned by said class, a valuation condition, if desired, owned by said class, the state of said valuation condition controlling whether or not a valuation also specified by said user input data will be performed, said valuation owned by said class, said user interface mechanisms also allowing the user to enter user input data which defines portions of a functional model which is part of said conceptual model for said target computer program being modeled, said user input data selecting a class, a variable attribute of said class and an event of said class, said user input data also defining a state change for said selected class in the form of a mathematical formula that defines said valuation and defines how the occurrence of said selected event causes said valuation to be performed to affect the value of said selected variable attribute if said valuation condition is satisfied, if a valuation condition was specified by said user input data, said class being part of a conceptual model which defines the functionality of said target computer program;
- and
- converting said user input data entered via said user interface mechanisms into data structures in the form of a plurality of formal language statements written in a formal language having rules of syntax and semantics which define a grammar, said plurality of formal language statements defining said class, event, variable attribute, valuation condition, if specified, and valuation mathematical formula as part of a formal language specification which encodes said conceptual model of said target computer program;
- and
- using said rules of syntax and semantics to validate said plurality of formal language statements so as to ensure that each is complete and correct.
A computer programmed with an operating system and one or more other computer programs which are structured so as to cooperate with said operating system to cause the computer to perform the following process:
- providing user interface mechanisms by which a user can enter user input data that defines a class as part of a conceptual model of a target computer program to be written, said user input also defining services for said class and arguments for said services, each said service being an event or a transaction, each event being a single service, said user input data also defining an event owned by said class, a variable attribute owned by said class, a valuation condition, if desired, owned by said class, the state of said valuation condition controlling whether or not a valuation also specified by said user input data will be performed, said valuation owned by said class, said user interface mechanisms also allowing the user to enter user input data which defines portions of a functional model which is part of said conceptual model for said target computer program being modeled, said user input data selecting a class, a variable attribute of said class and an event of said class, said user input data also defining a state change for said selected class in the form of a mathematical formula that defines said valuation and defines how the occurrence of said selected event causes said valuation to be performed to affect the value of said selected variable attribute if said valuation condition is satisfied, if a valuation condition was specified by said user input data, said class being part of a conceptual model which defines the functionality of said target computer program;
- and
- converting said user input data entered via said user interface mechanisms into data structures in the form of a plurality of formal language statements written in a formal language which has rules of syntax and semantics which define a grammar, said plurality of formal language statements defining said class, event, variable attribute, valuation condition, if specified, and valuation mathematical formula as part of a formal language specification which encodes said conceptual model of said target computer program, and
- using said rules of syntax and semantics to validate said plurality of formal language statements to ensure that each is complete and correct.
A process carried out on a computer comprising the steps:
- providing a user interface mechanism which allows a user to enter user input data which defines a transaction, said transaction being a formula which expresses the composition of services which make up said transaction where a service is part of a class which is part of an object model which is part of a conceptual model of a target computer program to be automatically written and whose functionality is defined by said conceptual model, and wherein said transaction is a molecular execution unit expressed in terms of a formula that specifies services in the form of events or transactions which together comprise said molecular execution unit,
- controlling said computer to convert said user input data into one or more data structures in the form of a plurality of formal language statements written in a formal language which has rules of syntax and semantics which define a grammar, said plurality of formal language statements defining said transaction;
- and
- using said rules of syntax and semantics to validate each of said formal language statements to ensure that it is complete and correct.
A computer programmed with an operating system and one or more other computer programs which cooperate with said operating system to cause said computer to carry out the following process:
- providing a user interface mechanism which allows a user to enter user input data which defines a transaction, said transaction being a formula which expresses the composition of services which make up said transaction where a service is part of a class which is part of an object model which is part of a conceptual model of a target computer program to be automatically written and whose functionality is defined by said conceptual model, and wherein said transaction is a molecular execution unit expressed in terms of a formula that specifies services in the form of events or transactions which together comprise said molecular execution unit,
- controlling said computer to convert said user input data into one or more data structures in the form of a one or more formal language statements written in a formal language which has rules of syntax and semantics which define a grammar, said plurality of formal language statements defining said transaction;
- and
- using said rules of syntax and semantics to validate said one or more formal language statements to ensure that each is complete and correct.
Dependencies are inferred from the claim text.