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.
89 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