International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 Code and Model based Clone Detection Approaches Aastha Saini#1, Vivek Sharma*2 #M.TECH & *HOD, Computer Science & Engineering Department& JMIT, Radaur/ Kurukshetra University, India Abstract—Programmers often copy code fragments or other design documents and paste it with or without modification. These types of similar code fragments or design documents are known as software clone. Cloned code is considered harmful for various reasons. A clone contains multiple and unnecessary duplicates fragments of code. Due to clones maintenance costs are increased. They make software products inconsistent as making changes to a cloned code can create faults and lead to unexpected behavior. Similarly, Duplicated fragments and parts of models are also harmful in model-based development such as UML Model. Keywords—UML Domain Models, Model Clones, Clone Detection, UML Parsing I. INTRODUCTION Programmers often copy code fragments or other design documents and paste it with or without modification. These types of similar code fragments or design documents are known as software clone [1]. In previous reports it is found that the total amount of software cloning in software system ranges from 5-15% and can be even 50 % of code base. If any code fragment contains a bug and all the other fragments that are copied from it may also suffer from the same problem. Thus clones are considered as “bad smell” in software product and produce project maintenance difficult. So that clone evolution analysis has also become an important part of managing code clones. There are various reasons of occurrence of clones in the software. Developers create the clones to meet project deadlines because they may not have enough time to create proper abstractions. Developers may also create clones to solve the same problem that encountered before. Sometimes clones are created to obtain maintenance such as to avoid risk in developing new code. II. CLASSIFICATON A. Code Clone According to the definition of similarity if two code fragments that are similar to each other are called clones to each other. The similarity between the fragments can be defined by textual representation or on their functionality representation code clones can be defined further four categories. ISSN: 2231-5381 Source code clones are copies or near-copies of other portions of code, often created by copying and pasting portions of source code. This working session is concerned with building a communal research infrastructure for clone detection. The intention of this working session is to try to build a consensus on how to continue to build a benchmark suite and results archive for clone and source comparisonrelated research and development. The working session is structured to foster discussion and debates over what should be collected in the archive, and how to make it best to improve clone detection research techniques. The copying of code has been studied within software engineering mostly in the area of clone analysis. Software clones are regions of source code which are highly similar; these regions of similarity are called clones, clone classes, or clone pairs. Figure 1 An Example of Code Clones While there are several reasons why two regions of code may be similar, the majority of the clone analysis literature attributes cloning activity to the intentional copying and duplication of code by programmers; clones may also be attributable to automatically generated code, or the constraints imposed by the use of a particular framework or library. Cloning is the unnecessary duplication of data whether it is at design level or at coding level. It results to excessive maintenance costs as well. So cut paste programming form of software reuse deceivingly raise the number of lines of code without expected reduction in maintenance costs associated with other forms of reuse. http://www.ijettjournal.org Page 246 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 The reasons why programmers duplicate codes include the following reasons: 1. Making a copy of a code fragment is simpler and faster than writing the code from scratch. Also the fragment may already be tested so the introduction of a bug seems less likely. 2. Evaluating the performance of a programmer by the amount of code he or she produces gives a natural incentive for copying code. Efficiency considerations may make the cost of a procedure call or method invocation seems too high a price. In industrial software development contexts, time pressure together with first and second points lead to plenty of opportunities for code duplication [4]. which may or may not be clones. The reference Model (Package) has two internal packages defined in the main Package called “Banking”. One Package is ATM and another package is Accounts. The ATM Internal Package shows relationship/Dependencies with Account Package. Both Packages have different-2 classes. The Classes of ATM Internal Package also shows relationship with Classes of Account Package. On the other hand, there are two occurrences of Classes named “ATM”, so “ATM” is definitely a clone candidate. D.Possible Model Clone (Candidate) B. Model Clones Model clones are duplicate fragments of Architecture of Model of the project. It is difficult to formulate the actual definition of a model clone because of the abstract nature of a model. We can however define a model clone as a set of similar or identical fragments in a model. As an Example, we can illustrate a model clone in Fig. 2 and 3: This phenomenon occurs similarly in models, suggesting that model clones are as detrimental to model quality as they are to code quality. However, programming language code and visual models have significant differences that make it difficult to directly transfer notions and algorithms developed in the code clone arena to model clones. The structural clone analysis [3] extends the benefits of analysis based on simple clones in the areas of program understanding, maintenance, reuse, and refactoring. Figure 3 Depiction of Reference Model Clones in UML 2.0 Package Diagram E.Possible Model Clone (Candidate) C.Reference Model Figure 4 A Possible Model Clone in UML 2.0 Package Diagrams It is still not obvious, though, which reference in the diagram refers to which model element, or whether they refer to the same model element or not. To external viewers, who are often equating models and diagrams, this model element will be invisible. Four major challenges regarding model clones are: Figure 2 Depiction of Reference Model Clones in UML 2.0 Package Diagram Looking at the Package Diagrams, we can easily see that there both Models are abstraction of ATM banking model, ISSN: 2231-5381 1. 2. Understand the structure of real clones and derive a practical definition of model clones. Quantitatively analyze the structure of medium to large scale models and develop method to detect clones. http://www.ijettjournal.org Page 247 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 3. 4. Derive a formal framework for model clones and develop an algorithm detect clones in models of realistic size and structure. Implement the algorithm and method, balancing precision and recall against acceptable run time. III. WHY THERE IS CLONING IN SOFTWARE SYSTEMS In general, software systems contain a significant amount of cloned code and the amount of cloning varies depending on the domain and origin of software systems. There are various factors for which clones can be introduced in a system. Developers may create clones to meet project deadlines because they may not have enough time to create proper abstractions or the short-term cost of creating those abstractions may outweigh the benefits of creating the duplicated code [4]. Developers may also create clones to solve the same problems they encountered before but reluctant to do abstraction because they do not understand the solution, do not have enough time or simply because they do not care about the impact of making clones. Many authors have identified a set of cases that makes the abstraction costly and leads programmers to leave the cloned code instead. Some identified a set of cloning patterns that explain the motivation of cloning, and also listed their advantages and disadvantages. A comprehensive list of factors that introduce cloning can be found in the survey by Roy and Cordy[5] . They categorized the reasons for cloning in the following four groups. IV. RELATED WORK Saha, R.K. et al, 2011 [6] The authors delineate Obtaining program clone genealogies across several editions of a plan and categorizing them according to their change outlines underlies the discover of program clone evolution. As there are a insufficient studies in the span, the ways do not grasp near-miss clones well and the associated instruments are frequently computationally expensive. To address these limitations, they present a framework for automatically removing both precise and near-miss clone genealogies across several editions of a plan and for recognizing their change outlines employing a insufficient key similarity factors. They have industrialized a prototype clone genealogy extractor, requested it to three open basis undertakings encompassing the Linux Kernel, and assessed its accuracy in words of precision and recall. Their experience displays that the prototype is scalable, flexible to disparate clone detection instruments and can automatically recognize progress outlines of both precise and near-miss clones by constructing their genealogies. Uddin, M.S. et al., 2011 [7] The authors delineate Clone detection methods vitally cluster textually, syntactically ISSN: 2231-5381 and/or semantically comparable program fragments in or across multimedia systems. For colossal datasets, similarity identification is expensive both in words of period and recollection, and exceptionally so after noticing near-miss clones whereas lines might be adjusted, added and/or deleted in the duplicated fragments. The skill and effectiveness of a clone detection instrument generally depends on the program similarity measurement method it uses. A collection of similarity measurement ways have been utilized for clone detection, encompassing fingerprint established ways that have had fluctuating degrees of accomplishment notwithstanding a little limitations. In this paper, they examine the effectiveness of simhash, a state of the fine art fingerprint established data similarity measurement method for noticing both precise and near-miss clones in colossal scale multimedia systems. Their experimental data display that simhash is indeed competent in recognizing assorted kinds of clones in a multimedia arrangement even though expansive variations in experimental circumstances. The way is additionally suitable as a core skill for constructing supplementary instruments, such as instruments for: incremental clone detection, program hunting, and clone management. Barbour, L. et al., 2011 [8] The authors delineate Two comparable program segments, or clones, form a clone pair inside a multimedia system. The adjustments to the clones above period craft a clone progress history. In this work they discover late propagation, a specific outline of clone evolution. In late propagation, one clone in the clone pair is adjusted, provoking the clone pair to come to be inconsistent. The program segments are next re-synchronized in a afterward revision. Continuing work has instituted late propagation as a clone progress outline, and counseled that the outline is connected to a elevated number of faults. In this discover they scrutinize the characteristics of late propagation in two long-lived multimedia arrangements employing the Simian and CCFinder clone detection tools. They delineate 8 kinds of late propagation and difference them to supplementary forms of clone evolution. Their aftermath not merely confirm that late propagation is extra harmful to multimedia arrangements, but additionally institute that a little specific cases of late propagations are extra harmful than others. Specifically, two cases are most risky: (1) after a clone experiences inconsistent adjustments and next a resynchronizing change lacking each modification to the supplementary clone in a clone pair; and (2) after two clones experience an inconsistent modification pursued by a resynchronizing change that modifies both the clones in a clone pair. Nguyen HoanAnh et al, in 2012 [9] The authors delineate Current scrutiny aftermath counsel a demand for program clone management. In this paper, they familiarize JSync, a http://www.ijettjournal.org Page 248 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 novel clone association tool. JSync provides two main purposes to prop developers in being cognizant of the clone relation amid program fragments as multimedia arrangements evolve and in making consistent adjustments as they craft or adjust cloned code. JSync embodies basis program and clones as (sub) trees in Hypothetical Syntax Trees; measures program similarity established on structural characteristic vectors, and describes program adjustments as tree editing scripts. The key methods of JSync contain the algorithms to compute tree editing scripts, to notice and notify program clones and their clusters, to examine the adjustments of cloned program to validate their consistency, and to counsel relevant clone synchronization and merging. Their empirical discover on countless real-world arrangements displays that JSync is effectual and precise in clone detection and notifying, and provides the correct detection of the defects emerging from inconsistent adjustments to clones and the correct recommendations for change propagation across cloned code. HaraldStörrle et al., 2013 [10] In this paper program clones (i.e., duplicate fragments of code) have been learned for long, and there is forceful facts that they are a main cause of multimedia faults. Anecdotal facts suggest that this phenomenon occurs comparably in models, counseling that ideal clones are as detrimental to ideal quality as they are to program quality. Though, software design speech program and discernible models have momentous contrasts that make it tough to undeviatingly transfer notions and algorithms industrialized in the program clone arena to ideal clones. In this article, they develop and counsel a meaning of the believed of “model clone” established on the methodical scrutiny of useful scenarios. They counsel a proper meaning of ideal clones, enumerate a clone detection algorithm for UML area models, and apply it prototypically. They examine disparate similarity heuristics to be utilized in the algorithm, and report the presentation of their approach. As they trust that their way advances the state of the fine art considerably, it is restricted to UML models, its aftermath departs room for improvements, and there is no validation by earth studies. Zhang Gang et al., in 2013 [11] The authors delineate Competent clone association is vital for developers to understand the introduction and progress of program clones, to judge their encounter on multimedia quality, and to seize appropriate measures if required. Their preceding discovers displays that cloning exercise is not plainly a technical issue. It has to be elucidated and believed in a larger context from technical, confidential, and organizational perspectives. In this paper, they counsel a contextual and on-demand program clone association way shouted CCEvents (Code Cloning Events). Their way provides timely notification concerning relevant program cloning events for disparate stakeholders across constant monitoring of program repositories. It ISSN: 2231-5381 supports on-demand customization of clone monitoring strategies in specific technical, confidential, and organizational contexts employing a domain-specific language. They requested the counseled way and led an empirical discovers alongside a manufacturing project. The aftermath confirm the necessities for contextual and ondemand program clone association and display the effectiveness of CC Events in bestowing timely program cloning notifications and in helping to accomplish competent clone management. XieShuai et al., 2013 [12] The authors delineate After requesting new features into a multimedia arrangement, developers could duplicate countless lines of program to reuse a little continuing program segments. This deed creates program clones in the multimedia system. The works has documented disparate kinds of program clone (e.g., Type-1, Type-2, and Type-3). After crafted, program clones evolve as they are adjusted across both the progress and maintenance periods of the multimedia system. The progress of program clones across the revisions of a multimedia arrangement is recognized as a clone genealogy. Continuing work has investigated the fault-proneness of Type-1 and Type-2 clone genealogies. In this discover, they examine clone genealogies encompassing Type-3 clones. They examine three long-lived multimedia arrangements Apache-Ant, ArgoUML, and JBoss, that are all composed in Java. Employing the NiCad clone detection instrument, they craft clone genealogies and scrutinize two evolutionary phenomena on clones: the mutation of the kind of a clone across the progress of a arrangement, and the migration of clone segments across the repositories of a multimedia system. Aftermath display that 1) mutation and migration transpire oftentimes in multimedia systems; 2) the mutation of a clone cluster to Type-2 or Type3 clones increases the chance for faults; 3) rising the distance amid program segments in a clone cluster additionally increases the chance for faults. R.K. Saha, et al, 2013 [13] The authors delineate Understanding the progress of clones is vital both for understanding the maintenance implications of clones and constructing a robust clone association system. To this conclude, researchers have by now led a number of studies to examine the progress of clones, generally concentrating on Type-1 and Type-2 clones. Though, even though there are a momentous number of Type-3 clones in multimedia arrangements, they understand a slight how they truly evolve. In this paper, they present an exploratory discover on the progress of Type-1, Type-2, and Type-3 clones in six open basis multimedia arrangements composed in two disparate software design tongues and difference the consequence alongside a preceding discover to larger comprehend the progress of Type-3 clones. Their aftermath display that even though Type-3 clones are extra probable to change http://www.ijettjournal.org Page 249 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 inconsistently, the definite number of consistently modified Type-3 clone classes is higher than that of Type-1 and Type2. Type-3 clone classes additionally have a lifespan comparable to that of Type-1 and Type-2 clones. In supplement, a substantial number of Type-1 and Type-2 clones change into Type-3 clones across evolution. Therefore, it is vital to grasp type-3 clones properly to check their negative impact. Though, assorted automated clone association methods such as notifying developers concerning clone adjustments or related editing ought to be selected prudently due to the inconsistent nature of Type-3 clones. S. Schulze et al, in 2013 [14] The authors delineate Program clones are a public reuse mechanism in multimedia development. As there is an ongoing discussion concerning harmfulness and gains of program cloning, this discussion is generally concentrated concerning aspects of multimedia quality. Though, present scrutiny has shown that program cloning could have lawful implications as well such as license violations. From this point of think, a builder could favor to obscure his cloning activities. To this conclude, he might obfuscate the cloned program to mislead clone detectors. Though, it is unfamiliar how robust precise clone detection methods are opposing program obfuscations. In this paper, they present a framework for semi-automated program obfuscations. Additionally, they present a case discovery to assess the robustness of selected clone detectors opposing such obfuscations. I. Keivanloo et al, 2013 [15] The authors delineate they familiarize semantic-enabled clone detection, as an way that emphasizes on significance of the token semantics across the outline matching for clone detection. This way can be comprehended employing Semantic Web and its prop for vision modeling. As the Semantic Web has discovered expansive agreement in assorted request and scrutiny areas, it yet needs the alike agreement in the basis program scrutiny domain. In this paper they focus on how the Semantic Web and its prop for semantic modeling and vision retrieval can be requested towards basis program clone detection and search. They debate both, open trials in the basis program clone detection area, as well as both hypothetical and useful aspects on how the Semantic Web can address a little of these challenges. Svajlenko, J. et al, 2013 [16] The authors delineate Noticing clones from colossal datasets is an interesting scrutiny case for a number of reasons. Though, constructing scalable clone detection instruments is challenging and it is frequently impossible to use continuing state of the fine art instruments for such colossal datasets. In this scrutiny they have investigated the use of their Shuffling Framework for scaling classical clone detection instruments to ultra colossal datasets. This framework achieves scalability on average ISSN: 2231-5381 hardware by partitioning the dataset and shuffling the partitions above a number of detection rounds. This way does not need modification to the subject instruments, that permits their individual strengths and precisions to be seized at an satisfactory defeat of recall. In their discovery, they discovered the presentation and applicability of their framework for six clone detection tools. The clones discovered across their examination were utilized to comment on the cloning customs of the globe Java open-source progress community. Cho Kwantae et al., 2013 [17] The authors delineate Wireless sensor webs (WSNs) encompass of puny sensor nodes that converse alongside every single supplementary above wireless channels, frequently in a hostile nature whereas nodes can be seized and compromised. Consequently, an antagonist could raise a clone attack by replicating the seized nodes to increase the compromised spans retaining clones. Thus, it is critical to notice clone nodes punctually for minimizing their damage to WSNs. Recently; assorted clone detection schemes were counseled for WSNs, pondering disparate kinds of web configurations, such as mechanism kinds and placement strategies. In order to select a competent clone detection scheme for a given sensor web, the selection criteria plays a vital role. In this paper, they early examine the selection criteria of clone detection schemes alongside stare to mechanism kinds, detection methodologies, placement strategies, and detection ranges. They next categorize the continuing schemes according to the counseled criteria. Simulation examinations are led to difference their performances. It is finished that it is helpful to use the grid placement vision for static sensor networks; the scheme employing the grid placement vision can save power by up to 94.44% in comparable presentation (specifically in words of clone detection ratio and the completion time), as contrasted to others. On the supplementary hand, for mobile sensor webs, no continuing way works effectually in cutting detection error rate Roy C.K. et al, 2014 [18] The authors delineate Duplicated program or program clones are a kind of program odor that have both affirmative and negative encounters on the progress and maintenance of multimedia systems. Multimedia clone scrutiny in the past generally concentrated on the detection and scrutiny of program clones, as scrutiny in present years extends to the finished spectrum of clone management. In the last decade, three surveys materialized in the works that cover the detection, scrutiny, and evolutionary characteristics of program clones. This paper presents a comprehensive survey on the state of the fine art in clone association, alongside in-depth investigation of clone association hobbies (e.g., drawing, refactoring, and costbenefit analysis) beyond the detection and analysis. This is the early survey on clone association, whereas they point to http://www.ijettjournal.org Page 250 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 the attainments so distant, and expose avenues for more scrutiny vital towards a consolidated clone association system. They trust that they have completed a good job in surveying the span of clone association and that this work could assist as a roadmap for upcoming scrutiny in the area. XieShuai et al., 2014 [19] The authors delineate Duplicate and glue hobbies craft clone clusters in multimedia systems. The progress of a clone cluster across the past of a multimedia arrangement is termed as clone genealogy. Across the progress of a clone cluster, developers could change the locale of the program fragments in the clone group. The kind of the clone cluster could additionally change (e.g., from Type-1 to Type-2). These two phenomena have been denoted to as clone migration and clone mutation respectively. Preceding studies have discovered that clone migration transpire oftentimes in multimedia arrangements, and counseled that clone migration can instigate faults in a multimedia system. In this paper, they scrutinize how clone migration phenomena alter the chance for faults in clone segments, clone clusters, and clone genealogies from three long-lived multimedia arrangements JBoss, APACHE-ANT, and ARGOUML. Aftermath display that: (1) traveled clone segments, clone clusters, and clone genealogies are not equally fault-prone; (2) after a clone mutation occurs across a clone migration, the chance for faults in the traveled clone is increased; (3) traveling a clone that was not modified for a longer era of period is risky. Mandal, M. et al., 2014 [20] In this paper, they present an in-depth empirical discover on recognizing clone fragments that can be vital refactoring candidates. They mine association laws amid clones in order to notice clone fragments that fit in to the alike clone class and have a tendency of changing jointly across multimedia evolution. The believed is that if two or extra clone fragments from the alike class frequently change jointly (i.e., are probable to cochange) maintaining their similarity, they could be vital candidates for refactoring. Merging such clones into one (if possible) can potentially cut upcoming clone maintenance effort. They delineate a particular clone change outline, the Similarity Maintaining Change Outline (SPCP), and ponder the cloned fragments that modified according to this outline (i.e., the SPCP clones) as vital candidates for refactoring. For the intention of their discovery, they apply a prototype instrument shouted MARC that identifies SPCP clones and mines association laws amid these. The laws as well as the SPCP clones are ranked for refactoring on the basis of their change-proneness. They requested MARC on thirteen subject arrangements and retrieved the refactoring candidates for three kinds of clones (Type 1, Type 2, and Type 3) separately. Their experimental aftermath display that SPCP clones can be believed vital candidates for refactoring. By pondering SPCP clones for refactoring them not merely can ISSN: 2231-5381 minimize refactoring power considerably but additionally can cut the potential of postponed synchronizations amid clones and therefore, can minimize inconsistencies in multimedia systems. Mansi Aggarwal et al., 2013[21] This paper presents how the different software metrics can be utilized for measuring the software characteristics. The parameters for the OO Design are explained. The metrics present a guideline for the software quality and other characteristics. With the measurements of the software it becomes easy for the maintenance of the software. V. CONCLUSION AND FUTURE WORKS Clone detection techniques play an important role in software evolution research where attributes of the same code entity are observed over multiple versions. To successfully create any method or technique for model clones detection we will have to study all the models and their metrics in component bases systems. This paper reviewed some of the techniques available for the Model Clone Prevention and Detection. We will like to find out some of techniques for detecting clones that work well for Model clones and we to be able to detect software clone for the same. In future we will focus on automated techniques for suggesting software cloning, delimiting boundaries between modules that minimize cohesion while maximizing coupling between analyzed Components. We propose the use of C. K. Metrics for detecting Clones in the Software Projects. Our approaches allow us the utilities by which we can visualize the clones effectively. VI. REFRENCES [1]. [2]. [3]. [4]. [5]. [6]. [7]. Roy, Chanchal Kumar, and James R. Cordy. A survey on software clone detection research. Technical Report 541, Queen’s University at Kingston, 2007. Deissenboeck, Florian, Benjamin Hummel, ElmarJuergens, Michael Pfaehler, and Bernhard Schaetz. "Model clone detection in practice." In Proceedings of the 4th International Workshop on Software Clones, pp. 57-64. ACM, 2010. Evans, William S., Christopher W. Fraser, and Fei Ma. "Clone detection via structural abstraction." Software Quality Journal 17, no. 4 (2009): 309-330. Kapser, Cory, and Michael W. Godfrey. "Toward a taxonomy of clones in source code: A case study." In ELISA workshop, p. 67. 2003. Roy, Chanchal K., James R. Cordy, and Rainer Koschke. "Comparison and evaluation of code clone detection techniques and tools: A qualitative approach." Science of Computer Programming 74, no. 7 (2009): 470-495. Saha, Ripon K., Chanchal K. Roy, and Kevin A. Schneider. "An automatic framework for extracting and classifying near-miss clone genealogies." In Software Maintenance (ICSM), 2011 27th IEEE International Conference on, pp. 293-302. IEEE, 2011. Uddin, Md Sharif, Chanchal K. Roy, Kevin A. Schneider, and Abram Hindle. "On the effectiveness of simhash for detecting near-miss clones in large scale software systems." In Reverse Engineering (WCRE), 2011 18th Working Conference on, pp. 1322. IEEE, 2011. http://www.ijettjournal.org Page 251 International Journal of Engineering Trends and Technology (IJETT) – Volume22 Number 6- April 2015 [8]. [9]. [10]. [11]. [12]. [13]. [14]. [15]. Barbour, Liliane, FoutseKhomh, and Ying Zou. "Late propagation in software clones." In Software Maintenance (ICSM), 2011 27th IEEE International Conference on, pp. 273-282. IEEE, 2011. Nguyen, HoanAnh, Tung Thanh Nguyen, Nam H. Pham, Jafar Al-Kofahi, and Tien N. Nguyen. "Clone management for evolving software." Software Engineering, IEEE Transactions on 38, no. 5 (2012): 1008-1026. Harald Störrle, "Towards clone detection in UML domain models." Software & Systems Modeling 12, no. 2 (2013): 307329. Zhang, Gang, XinPeng, Zhenchang Xing, Shihai Jiang, Hai Wang, and Wenyun Zhao. "Towards contextual and on-demand code clone management by continuous monitoring." In Automated Software Engineering (ASE), 2013 IEEE/ACM 28th International Conference on, pp. 497-507. IEEE, 2013. Xie, Shuai, FoutseKhomh, and Ying Zou. "An empirical study of the fault-proneness of clone mutation and clone migration." In Proceedings of the 10th Working Conference on Mining Software Repositories, pp. 149-158. IEEE Press, 2013. Saha, Ripon K., Chanchal K. Roy, Kevin A. Schneider, and Dewayne E. Perry. "Understanding the evolution of type-3 clones: an exploratory study." In Mining Software Repositories (MSR), 2013 10th IEEE Working Conference on, pp. 139-148. IEEE, 2013. Schulze, Sandro, and Daniel Meyer. "On the robustness of clone detection to code obfuscation." In Proceedings of the 7th International Workshop on Software Clones, pp. 62-68. IEEE Press, 2013. Keivanloo, Iman, and JuergenRilling. "Semantic-Enabled Clone Detection." In Computer Software and Applications Conference (COMPSAC), 2013 IEEE 37th Annual, pp. 393-398. IEEE, 2013. ISSN: 2231-5381 [16]. [17]. [18]. [19]. [20]. [21]. Svajlenko, Jeffrey, ImanKeivanloo, and Chanchal K. Roy. "Scaling classical clone detection tools for ultra-large datasets: An exploratory study." In Proceedings of the 7th International Workshop on Software Clones, pp. 16-22. IEEE Press, 2013. Cho, Kwantae, Minho Jo, Taekyoung Kwon, Hsiao-Hwa Chen, and Dong Hoon Lee. "Classification and experimental analysis for clone detection approaches in wireless sensor networks." Systems Journal, IEEE 7, no. 1 (2013): 26-35. Roy, Chanchal K., Minhaz F. Zibran, and Rainer Koschke. "The vision of software clone management: Past, present, and future (keynote paper)." In Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, pp. 18-33. IEEE, 2014. Xie, Shuai, FoutseKhomh, Ying Zou, and ImanKeivanloo. "An empirical study on the fault-proneness of clone migration in clone genealogies." In Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, pp. 94-103. IEEE, 2014. Mandal, Manishankar, Chanchal K. Roy, and Kevin A. Schneider. "Automatic ranking of clones for refactoring through mining association rules." In Software Maintenance, Reengineering and Reverse Engineering (CSMR-WCRE), 2014 Software Evolution Week-IEEE Conference on, pp. 114-123. IEEE, 2014. Mrs. Mansi Aggarwal , Dr. Vinit Kumar Verma , Mr. Harsh Vardhan Mishra.“An Analytical Study of Object-Oriented Metrics”. International Journal of Engineering Trends and Technology (IJETT) – Volume 6 Number 2 , 2013. http://www.ijettjournal.org Page 252