Patent ID: 8392873

Claim:
An article of manufacture including a non-transitory computer-readable medium having instructions stored thereon that cause the computing device to perform operations comprising: providing a template definition environment graphical user interface comprising: template creation controls configured to create templates; template dependency controls configured to create dependency relationships among templates, wherein a display area is configured to depict icons corresponding to templates and relationships among the templates; and a template attribute editor configured for development of code generators used to generate software artifacts associated with an architecture element based on the template; receiving commands entered using the template creation controls and template dependency controls to create templates and template dependencies; displaying the templates and template dependencies created using the template creation controls and template dependency controls; providing an architecture definition environment graphical user interface comprising: architecture element creation controls configured to create architecture elements; architecture element dependency controls configured to specify dependencies among architecture elements, wherein the display area is further configured to depict icons corresponding to the architecture elements and relationships among the architecture elements; a software component editor configured to invoke the code generator of the underlying template to generate software artifacts associated with the underlying template attribute editor; receiving commands entered using the architecture element creation controls and architecture element dependency controls; displaying icons corresponding to the architecture elements and architecture element dependencies created using the architecture element creation controls and architecture element dependency controls; generating a software solution comprising an arrangement of the software artifacts according to the dependencies between the plurality of architecture elements; detecting at least one modification to a template, template relationship, architecture element, or architecture element dependency; and identifying the templates and architecture elements affected by the at least one modification by using the relationships between individual ones of the templates and the relationships between individual ones of the architecture elements.