Patent attributes
A method, computer program product, and data processing system for managing and automating the development of large-scale software systems are disclosed. A preferred embodiment allows for the creation of a metamodel defining the functionality and structure of a software system. The metamodel may be defined according to input from developers or analysts. Additionally, database schemata, web services definitions, and other pertinent legacy metadata may be automatically imported into the metamodel to facilitate compatibility and/or functional comparability with legacy software systems. Specifications contained within the metamodel are then mapped to one or more code generation strategies. The code generation strategies identify and/or define patterns for the generation of source code that implements the specifications and behavior in the metamodel. Source code is generated according to the code generation strategies, which may then be modified as needed by a human programmer, and compiled into one or more executable applications.