|dc.description.abstract||It is rare in many engineering disciplines, particularly hardware industry, to upgrade an existing product with new hardware components. However, software industry is very different. Software maintenance and extension can only be done by modify the existing code. Different from other industries, software′s maintenance and evolution consume most of the development costs in the long run. If a software product is difficult to maintain or expand, it will gradually fail to deal with new requirements within reasonable time and cost. Finally, the product will be replaced by new ones.
Although the software’s maintainability and expandability is very important, it is always hard to get it right once for all in the design and implementation. In many application domains, requirements are continuously changing. Modifications to the source code gradually introduce couplings, errors, and bad code smells. The effort and time needed to modify the code can be increased dramatically. The worst maintenance situation is that a programmer needs to understand the code of the entire system before he can make any changes.
In this thesis, we propose a new concept to describe the coupling relation of a software system. This modeling approach is called Coupling Relation Representation (CRR). Using this CRR, we can modeling the ripple effect of code refactoring. It can be used for communicating the strategies of code refactoring. A case study is explained to show how CRR can be used in code refactoring analysis.