System and methodology for asynchronous code refactoring with symbol injection
First Claim
1. A method for refactoring a plurality of interdependent software modules that reside in separate projects, the method comprising:
- in response to a change that affects a particular symbol of a software module that resides in a first project, refactoring the software module of the first project to propagate the change to all instances of the particular symbol in the software module;
during the refactoring of the software module of the first project at a given point in time, recording meta data about the refactoring that is required to effect the change; and
at a subsequent point in time, automatically propagating the change to a dependent software module residing in a second project, by refactoring the dependent software module based on the recorded meta data about the refactoring that occurred to the software module of the first project;
wherein the dependent software module is refactored with assistance of a symbol table used for resolving symbol references, and wherein said automatically propagating step includes;
copying symbol information about the particular symbol used for the software module of the first project into the symbol table used for refactoring the dependent software module.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and methodology for asynchronous code refactoring with symbol injection is described. In one embodiment, for example, a method is described for refactoring a plurality of interdependent software modules that reside in separate projects, the method comprises steps of: in response to a change that affects a particular symbol of a software module that resides in a first project, refactoring the software module of the first project to propagate the change to all instances of the particular symbol in the software module; during the refactoring of the software module of the first project, recording meta data about the refactoring that is required to effect the change; and automatically propagating the change to a dependent software module residing in a second project, by refactoring the dependent software module based on the recorded meta data about the refactoring that occurred to the software module of the first project.
-
Citations
55 Claims
-
1. A method for refactoring a plurality of interdependent software modules that reside in separate projects, the method comprising:
-
in response to a change that affects a particular symbol of a software module that resides in a first project, refactoring the software module of the first project to propagate the change to all instances of the particular symbol in the software module; during the refactoring of the software module of the first project at a given point in time, recording meta data about the refactoring that is required to effect the change; and at a subsequent point in time, automatically propagating the change to a dependent software module residing in a second project, by refactoring the dependent software module based on the recorded meta data about the refactoring that occurred to the software module of the first project;
wherein the dependent software module is refactored with assistance of a symbol table used for resolving symbol references, and wherein said automatically propagating step includes;
copying symbol information about the particular symbol used for the software module of the first project into the symbol table used for refactoring the dependent software module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A system for automatically applying a refactoring to a second software module based on a refactoring of a first software module, the system comprising:
-
a computer having a processor and memory; a refactoring module for refactoring the first software module to propagate a change to all instances of a particular symbol in the first software module in response to the change that affects the particular symbol of the first software module; a recording module for recording meta data about changes made to the first software module in a first project during the refactoring of the first software module at a given point in time; an injector module for copying symbol information about the particular symbol of the first software module into a symbol table for the second software module in a second project; and the refactoring module for automatically propagating the change to the second software module by applying a refactoring to the second software module at a subsequent point in time using said symbol table for the second software module and the recorded meta data about changes made to the first software module. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for asynchronous refactoring of a plurality of interdependent software programs, the method comprising:
-
refactoring a first software program residing in a first project so as to change symbols of the first software program; recording information about changes made to symbols of the first software program during the refactoring of the first software program at a given point in time; and at a subsequent point in time, applying the refactoring to a second software program in a second project which is dependent upon the first software program by automatically propagating changes to symbols of the second software program based on said recorded information;
wherein the second software program is refactored with assistance of a symbol table used for resolving symbol references, and wherein said applying step includes;
copying information about at least one symbol used in the first software program into the symbol table used for refactoring the second software program. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41)
-
-
42. A method for applying a refactoring to a plurality of software modules, the method comprising:
-
recording information about changes made to a first software module in a first project during a refactoring of the first software module at a given point in time; at a subsequent point in time, refactoring a second software module in a second project by performing substeps of; creating at least one symbol table entry based upon the recorded information about changes made to the first software module;
wherein said creating substep includes creating source code based on the first software module and the recorded information;injecting said at least one symbol table entry into a symbol table for a second software module;
wherein said injecting substep includes indirectly injecting symbol table entries for a class into the symbol table by parsing the source code and directly injecting symbol table entries for members of the class into the symbol table; andrefactoring the second software module using said symbol table and the recorded information about changes made to the first software module. - View Dependent Claims (43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
Specification