An Efficient Sdmpc Metric Based Approach For Refactoring Software Code (International Journal of Engineering and Computer Science, 2015)
Software Engineering is an about development, design operation and maintenance of software. But there are some factors that make software maintenance difficult. A code clone is nothing a similar or duplicate code in a source code or created either by replication or some modification. Code clone is one of the factors that increase software maintenance and also cause code bloating. Thus the clone has to be removed. To remove clone, refactoring has to be determined and applied.  Refactoring is done to improve the quality of a software systems’ structure, which tends to degrade as the system evolves. While manually determining useful refactoring is a challenging, search-based techniques can automatically discover useful refactoring. Refactoring approach uses the concept of Pareto optimality which naturally applies to search-based refactoring. Before refactoring is done, the test case should be generated. A formal written test-case is characterized by a known input and by an expected output, which is worked out before the test is executedThis paper proposes a method for removing clone through refactoring. In order to do refactor the clone, first the concept of Pareto optimality and a Pareto front is defined. Jsync refactor tool is used to refactor the programs. The coupling between object classes (CBO) metric represents the number of classes coupled to a given class. The second metric LSCC is represents the classes. Meaningful class coupling and cohesion metric helps object-oriented software developers detect class design weaknesses and refactor classes accordingly. CBO, LSCC and SDMPC metrics are used to check the accuracy of the refactored programs. The advantage of this system is helps the developers to program faster and it takes less time for clone removal. It improve the design of the software and it makes softer easier to understand. Overall performance of the system is highly improved by the proposed system.