1. A process for automatically generating the source code of a computer program user interface for said computer program from a formal specification of a User Interface Model for the user interface of a computer program to be automatically written, said formal specification of said User Interface Model being written in a formal language having rules of syntax and semantics which have been used to validate said formal specification, comprising the steps: A) storing requirements data about the desired structure and operation of a user interface of said computer program the computer code of which is to be automatically written, said requirements data being from said Formal Specification of said Presentation Model, said requirements data taken from said Formal Specification being stored in appropriate places in translation structures which are classes stored in a memory of a computer so as to generate articulated translation structures which are translation structure classes which have had requirements data stored in the appropriate attribute fields, each of said templates or translation structures being a building block from a meta-model and each corresponding to a conceptual pattern for use in building said Presentation Model and each serving to store requirements data from said Presentation Model and having a method that uses said requirements data stored therein to generate a source code component for said computer program to be automatically written, said building blocks or templates including the traditional conceptual patterns from an OO-Method meta-model of: Class, Attribute, Service, and Argument and their usual relationships, to with, a Class has Attributes; a Class has Services, and Services have Arguments and classes can have inheritance and aggregation relationships, and wherein said building blocks include new elements in the form of new building blocks extending the traditional concepts of said OO-Method meta-model, said new building blocks each having a template or translation structure in memory and comprising user interface patterns defining a pattern language, said pattern language including patterns at three levels, a Hierarchical Action Tree pattern being a tree structure pattern at a first level of said pattern language which provides user access in said user interface of said computer program to be automatically written to exposed functionality of said program, Interaction Units being patterns at a second level of said pattern language which provide user interface scenarios including the ability to present information to a user and accept user input in some patterns, and elemental patterns on a third level of said pattern language and used to define and articulate said Interaction Unit patterns, said new building blocks including the relationships between said elemental patterns and said Interaction Unit patterns and the relationships between said Interaction Unit patterns and said Hierarchical Action Tree and the relationships between said Interaction Unit patterns and said traditional concept building blocks Classes, Attributees, Inheritance, Aggregation relationships, Services and Arguments and wherein said relationships between said new building block patterns and said traditional concept building blocks comprise: a definition relationship wherein a traditional concept building block can have defined for it simultaneously one or more Interaction Unit patterns, an application relationship wherein a pattern is applied to a traditional concept building block in the template or memory structure thereof, said one or more Interaction Unit patterns and the Elemental patterns that define and articulate said Interaction Unit patterns defining and articulating the desired user interface in said User Interface Model for said traditional concept building block and wherein said Interaction Unit patterns and said Elemental patterns used to articulate and define said Interaction Unit patterns include: Service Interaction Unit and its supporting Elemental patterns Introduction, Defined Selection, Supplementary Information, Dependency, Status Recovery and Argument Grouping; Population Interaction Unit and its supporting Elemental patterns including Filter, Order Criterion, Display Set, Actions and Navigation; Instance Interaction Unit and its supporting Elemental patterns Display Set, Actions and Navigation; and Master/Detail Interaction Unit and its auxiliary or supporting Elemental patterns Master Interaction Unit and Detail Interaction Unit; performing an inference process on said customized templates to ensure that missing aliases are supplied by inference using a predetermined set of inference rules, and making some conversions from implicit form to explicit form by performing the following acts: when the term “all” has been entered in the formal specification of said User Interface Model for an Action Pattern defining or articulating part of a Population and/or Instance Interaction Unit of a class, determining all the services of said class which can be invoked by a user of a user interface for said computer program to be automatically written defined in said User Interface Model and storing information regarding said services from said User Interface Model in the appropriate memory structures or templates for said Population and/or Instance Interaction Units; when the term “all” has been entered in the formal specification of said User Interface Model for a Display Set of a Population Interaction Unit and/or Instance Interaction Unit defined for a class, determining all the attributes of said class for display in the user interface for said program to be automatically written defined in said User Interface Model and storing information regarding said attributes of said class in the appropriate memory structures or templates for said Population and/or Instance Interaction Units; when the term “all” has been entered in the formal specification of said User Interface model for a Navigation Pattern defining or articulating a Population Interaction Unit and/or Instance Interaction Unit defined for a class, determining all the inheritance and aggregation relationships which relate the objects of said class to other objects in other related classes so that the other objects which can be displayed in said user interface when a navigation link is activated is determined, and recording that information in the appropriate memory structure(s) or template(s) pertaining to said Population Interaction Unit and/or Instance Interaction Unit of said class; examining said filled-in templates or translation structures stored in said memory so as to find filled-in translation structures or templates or elements for which source code components or templates exist which can implement the type of element located, said source code components or templates being building blocks from which the final source code which can implement the user interface of said computer program to be built modeled in said User Interface Model including components of source code that can perform the following tasks: generate fixed files and auxiliary widgets, generate a query/selection form, an instance selection component, a specialization component if the class is specialized, and generate a service form for each service class, said components further including components of source code which can generate an access form to identify the user of said computer program and a main form displaying the menu for said computer program, and further including components of source code to carry out communication functions to reach system logic servers, and instantiating each said source code component or template by extracting necessary information from said filled-in translation structure or template so as to generate final source code which implements the concepts of said User Interface (Presentation) Model which said filled-in translation structures or templates represent, the collection of instantiated source code components being written to source code files which can be compiled into said computer program which implements the user interface portions of said computer program.