Systems and methods for template reverse engineering
First Claim
1. A computer-implemented method modifying templates in a code generation process comprising:
- receiving a template for generating code;
receiving a model for generating code, wherein the model specifies the operation of the software and comprises a plurality of elements to be translated into code constructs, and wherein the template specifies code constructs to be used for the plurality of elements in the model;
processing the template and the model in a code generator, and in accordance therewith, generating code based on the model and the template;
receiving a modification to the generated code, and in accordance therewith, producing modified code;
automatically changing the template based on the modified code and not on a rewrite of the template by a user to produce a modified template; and
processing the modified template and the model in the code generator, and in accordance therewith, generating second code based on the model and the modified template, wherein the second code automatically includes the modification;
mapping one or more elements in said template to corresponding elements in said generated code, wherein the element in said template caused the element in said generated code to be generated, wherein the template comprises a plurality of definitions of source code constructs to be generated based on specified elements of the model, the method further comprising monitoring the processing of the template in said code generator and storing a new mapping element each time a definition is processed, wherein different mapping elements specify a relationship between a definition and a corresponding element in said generated code; and
wherein the modified code is designated as either manual or generated, wherein modified code designated as generated is used to automatically change the template to automatically produce said modified code, wherein modified code designated as manual is not automatically generated by the template, wherein the modified code is designated manual or generated through a graphical user interface, and wherein modified code designated as generated is displayed differently than modified code designated as manual in said graphical user interface.
3 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention include systems and methods for template reverse engineering. In one embodiment, the present invention includes a computer-implemented method modifying templates in a code generation process comprising receiving a template for generating code, receiving a model for generating code, processing the template and the model in a code generator, and in accordance therewith, generating code based on the model and the template, receiving a modification to the generated code, and in accordance therewith, producing modified code, and automatically changing the template based on the modified code to produce a modified template, wherein processing the modified template and the model in the code generator automatically generates said modified code.
-
Citations
20 Claims
-
1. A computer-implemented method modifying templates in a code generation process comprising:
-
receiving a template for generating code; receiving a model for generating code, wherein the model specifies the operation of the software and comprises a plurality of elements to be translated into code constructs, and wherein the template specifies code constructs to be used for the plurality of elements in the model; processing the template and the model in a code generator, and in accordance therewith, generating code based on the model and the template; receiving a modification to the generated code, and in accordance therewith, producing modified code; automatically changing the template based on the modified code and not on a rewrite of the template by a user to produce a modified template; and processing the modified template and the model in the code generator, and in accordance therewith, generating second code based on the model and the modified template, wherein the second code automatically includes the modification; mapping one or more elements in said template to corresponding elements in said generated code, wherein the element in said template caused the element in said generated code to be generated, wherein the template comprises a plurality of definitions of source code constructs to be generated based on specified elements of the model, the method further comprising monitoring the processing of the template in said code generator and storing a new mapping element each time a definition is processed, wherein different mapping elements specify a relationship between a definition and a corresponding element in said generated code; and wherein the modified code is designated as either manual or generated, wherein modified code designated as generated is used to automatically change the template to automatically produce said modified code, wherein modified code designated as manual is not automatically generated by the template, wherein the modified code is designated manual or generated through a graphical user interface, and wherein modified code designated as generated is displayed differently than modified code designated as manual in said graphical user interface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. The computer-implemented system comprising:
-
a code generator that is configured to receive a software model and a template for generating code, wherein the software model specifies the operation of the software and comprises a plurality of elements to be translated into code constructs, and wherein the template specifies code constructs to be used for the plurality of elements in said software model, the code generator being further configured to process the template and the software model, and in accordance therewith, to generate code based on the model and the template; a user interface that is configured to display the generated code to a user and receiving a modification to the generated code from the user, and in accordance therewith, to produce modified code; a code-to-template change processor that is configured to automatically change the template based on the modified code and not on a rewrite of the template by a user to produce a modified template; a mapping component that is configured to map one or more elements in said template to corresponding elements in said generated code, wherein the element in said template caused the element in said generated code to be generated, wherein the template comprises a plurality of definitions of source code constructs to be generated based on specified elements of the model; and a template-code mapping component that is configured to monitor the processing of the template in said code generator and to store a new mapping element each time a definition is processed, wherein different mapping elements specify a relationship between a definition and a corresponding element in said generated code, wherein the code generator is further configured to process the modified template and the software model in the code generator, and in accordance therewith, to generate second code based on the model and the modified template, wherein the second code automatically includes the modification, wherein the modified code is designated as either manual or generated, wherein modified code designated as generated is used to automatically change the template to automatically produce said modified code, wherein modified code designated as manual is not automatically generated by the template, wherein the modified code is designated manual or generated through a graphical user interface, and wherein modified code designated as generated is displayed differently than modified code designated as manual in said graphical user interface. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable medium containing instructions for controlling a computer system to perform a method modifying templates in a code generation process comprising:
-
receiving a software model for generating code, wherein the software model specifies the operation of the software and comprises a plurality of elements to be translated into code constructs; receiving a template for generating code, wherein the template specifies code constructs to be used for the plurality of elements in said software model; processing the template and the software model in a code generator, and in accordance therewith, generating code based on the software model and the template; displaying the generated code to a user in an integrated development environment; receiving a modification to the generated code from the user, and in accordance therewith, producing modified code; automatically changing the template based on the modified code and not on a rewrite of the template by the user to produce a modified template; and processing the modified template and the software model in the code generator, and in accordance therewith, generating second code based on the model and the modified template, wherein the second code automatically includes the modification, mapping one or more elements in said template to corresponding elements in said generated code, wherein the element in said template caused the element in said generated code to be generated, wherein the template comprises a plurality of definitions of source code constructs to be generated based on specified elements of the model, the method further comprising monitoring the processing of the template in said code generator and storing a new mapping element each time a definition is processed, wherein different mapping elements specify a relationship between a definition and a corresponding element in said generated code; and wherein the modified code is designated as either manual or generated, wherein modified code designated as generated is used to automatically change the template to automatically produce said modified code, wherein modified code designated as manual is not automatically generated by the template, wherein the modified code is designated manual or generated through a graphical user interface, and wherein modified code designated as generated is displayed differently than modified code designated as manual in said graphical user interface. - View Dependent Claims (20)
-
Specification