11. The computer system of claim 9 , wherein the means for creating an entity pattern comprises: means executing on the processor for generating a declaratively applied programming model as part of designing the entity pattern; and in conjunction with the programming model, means executing on the processor for writing software code defining the entity pattern without requiring knowledge of an application of the entity pattern.
9. A computer system for capturing structure of data models comprising a processor; a memory; means executing on the processor for automatically creating an entity pattern based on at least one entity structure within a data model, wherein the entity pattern is used in checking whether an application adheres to the entity pattern, and wherein the entity pattern comprises a plurality of entity roles, each entity role describing properties of the entity role and any relations to other entity roles of the entity pattern; means executing on the processor for applying a first entity role to a first hosting entity of the application, the first entity role describing a relation to a second entity role; means executing on the processor for applying the second entity role to a second hosting entity of the application, the second entity role describing its relation to the first entity role; and means executing on the processor for validating said application of the first and second entity roles to the first and second hosting entities of the application, wherein said validating comprises: ensuring that properties of each entity role map to properties of the hosting entities to which they are applied; and ensuring that the first hosting entity is properly related to the second hosting entity as described by the first entity role, and ensuring that the second entity role is properly related to the first hosting entity as described in the second entity role, such that the relationships are validated in both directions.