1. A data processing apparatus for automated blueprint assembly, the data processing apparatus including: at least one processor; a non-transitory computer-readable medium storing instructions that when executed by the at least one processor are configured to implement: a micro-blueprint assembler configured to receive a request for automated blueprint assembly for assembling an application, the request specifying at least one constraint; a model database configured to store model data, the model data including an arrangement of a plurality of classes with relational information specifying relationships among the plurality of classes; a micro-blueprint database configured to store a plurality of micro-blueprints, the plurality of micro-blueprints including first micro-blueprints providing required and available functional features, each first micro-blueprint corresponding to an individual service tier, the plurality of micro-blueprints including second micro-blueprints, each second micro-blueprint corresponding to an individual stack element, the first and second micro-blueprints being annotated with class information of the plurality of classes such that the first and second micro-blueprints are mapped to one or more classes of the model data, the micro-blueprint assembler configured to query the micro-blueprint database to obtain a first subset of the first micro-blueprints for service tiers of the application based on a matching of the required and available functional features and a second subset of the second micro-blueprints for stack elements for the service tiers such that the first and second subsets meet the at least one constraint of the request and the relational information of the model data, the micro-blueprint assembler configured to assemble at least one complete blueprint for the application from the first and second subsets.