1. 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.