Patent ID: 7861214

Claim:
A computer method for collapsing program metamodels, comprising the steps of: obtaining multiple programming model packages of various ambiguous namespace, each model package formed of a respective plurality of model elements from subject metamodels, the model packages having different class definitions, and model elements of one model package having a different class than model elements of another model package; forming a destination package that effectively combines class definitions of the multiple packages by using most general types and most general multiplicities of the classes; adding collapse relationships between the destination package and the multiple packages instead of representing package merge relationships between the multiple packages; using the destination package, transforming from the various ambiguous namespace of the multiple packages to a single namespace, the transforming collapsing contents from the multiple packages and their subpackages into the destination package, the transforming being performed recursively as a function of the collapse relationships added between the multiple packages and the destination package and avoiding need for representing package merge relationships between model packages, the destination package resulting in a flattened Application Program Interface (API) with the single namespace in which there is only one type with a given name; and generating an implementation of a derived software program based on the destination package and API by processing the collapse relationships.