Refactoring an Existing Code Base to Improve Modularity and Quality
Code written in modern programming languages (such as Java) can be almost impossible to understand and maintain due to poor design and coding practices used during its development. Instead of redeveloping the entire code from scratch (which is an expensive and time-consuming proposition), typically a series of refactoring steps are applied to make the software better in terms of both design and coding quality, which translates to better user experience because the maintainability and scalability of the application is increased. In this project, we consider an existing code base that was written hastily in Java and was really poor in terms of design and code quality. We share our experiences in refactoring this code base in order to make it modular and with improved design and code quality. We first analyzed the existing code base to identify areas for improvement and then used certain benchmark metrics to guide the refactoring. We present a comparison of the final state of the code with the original code base to demonstrate the use of good software development practices.
Committee: Simanta Mitra (major professor), Gurpur Prabhu (major professor), and Ying Cai