Most algorithms are evolved from a lot of modifications and improvements to become more precise. If we can decompose the essential of an algorithm and realize the reusability and expansibility, it would be possible to accelerate the algorithm’s improvement, reduce the complexity when programming, cut down the maintenance and decrease the possibility to re-program the code. Aiming at this objective, we select the variable selection algorithm as the problem conveyer. There are a lot of possible modifications and significances in the variable selection process. We want to drill through the individual algorithm instead of combination of algorithms. We also want to overcome the challenge to minimize the IT effort and achieve several design goals, such as (G1) reusable component, (G2) flexible configuration and (G3) analyzable data abstraction. This research aims at developing an algorithm reengineering methodology. The purpose is to provide a mechanism for effective algorithm evolutions, where the inputs are (I1) what to change and (I2) what to change to, while the outputs are (O1) where to change and (O2) how to change. The mechanism is based on the object-oriented analysis and design, a four-stage methodology is proposed for the effective algorithm evolutions: (S1) domain-independent module abstraction, (S2) domain-dependent function decomposition, (S3) objects extraction and configuration, and (S4) strategy design and derivation for effective algorithm evolutions. Finally, we design several generations to demonstrate and validate the proposed reengineering methodology for effective algorithm evolutions.