Code Clone Analysis

Code Clone Analysis PDF

Author: Katsuro Inoue

Publisher: Springer Nature

Published: 2021-08-03

Total Pages: 236

ISBN-13: 9811619271

DOWNLOAD EBOOK →

This is the first book organized around code clone analysis. To cover the broad studies of code clone analysis, this book selects past research results that are important to the progress of the field and updates them with new results and future directions. The first chapter provides an introduction for readers who are inexperienced in the foundation of code clone analysis, defines clones and related terms, and discusses the classification of clones. The chapters that follow are categorized into three main parts to present 1) major tools for code clone analysis, 2) fundamental topics such as evaluation benchmarks, clone visualization, code clone searches, and code similarities, and 3) applications to actual problems. Each chapter includes a valuable reference list that will help readers to achieve a comprehensive understanding of this diverse field and to catch up with the latest research results. Code clone analysis relies heavily on computer science theories such as pattern matching algorithms, computer language, and software metrics. Consequently, code clone analysis can be applied to a variety of real-world tasks in software development and maintenance such as bug finding and program refactoring. This book will also be useful in designing an effective curriculum that combines theory and application of code clone analysis in university software engineering courses.

CloneCompass

CloneCompass PDF

Author: Ying Wang

Publisher:

Published: 2020

Total Pages:

ISBN-13:

DOWNLOAD EBOOK →

Code clones are identical or similar code fragments in a single software system or across multiple systems. Frequent copy-paste-modify activities and reuse of existing systems result in maintenance difficulties and security issues. Addressing these problems requires analysts to undertake code clone analysis, which is an intensive process to discover problematic clones in existing software. To improve the efficiency of this process, tools for code clone detection and analysis, such as Kam1n0 and CCFinder, were created. Kam1n0 is an efficient code clone search engine that facilitates assembly code analysis. However, Kam1n0 search results can contain millions of function-clone pairs, and efficiently exploring and comprehensively understanding the resulting data can be challenging. This thesis presents a design study whereby we collaborated with analyst stakeholders to identify requirements for a tool that visualizes and scales to millions of function-clone pairs. These requirements led to the design of an interactive visual tool, CloneCompass, consisting of novel TreeMap Matrix and Adjacency Matrix visualizations to aid in the exploration of assembly code clones extracted from Kam1n0. We conducted a preliminary evaluation with the analyst stakeholders, and we show how CloneCompass enables these users to visually and interactively explore assembly code clones detected by Kam1n0 with suspected vulnerabilities. To further validate our tool and extend its usability to source code clones, we carried out a Linux case study, where we explored the clones in the Linux kernel detected by CCFinder and gained a number of insights about the cloning activities that may have occurred in the development of the Linux kernel.

Code Clone Discovery Based on Functional Behavior

Code Clone Discovery Based on Functional Behavior PDF

Author: Ronald M. Krawitz

Publisher:

Published: 2012

Total Pages: 248

ISBN-13:

DOWNLOAD EBOOK →

Legacy programs are used for many years and experience many cycles of use-maintenance-use-maintenance-use-etc. Source code or source code functionality is frequently replicated within these programs when it is written, as well as when it is maintained. Over time many different developers with greater or lesser understanding of the source code maintain the source code. Maintenance developers, when they have limited time or lack understanding of the program, frequently resort to short cuts that include cutting and pasting existing code and re-implementing functionality instead of refactoring. This means a specific functionality is often repeated several times, sometimes using different source code. Blocks of replicated source code or source code functionality are called code clones. Removing code clones improves extensibility, maintainability, and reusability of a program in addition to making the program more easily understood. It is generally accepted that four types of code clones exist. Type-1 and Type-2 code clones are comparatively straightforward to locate and tools exist to locate them. However, Type-3 and Type-4 code clones are very difficult to locate with only a few specialized tools capable of locating them with a lower level of precision. This dissertation presents a new methodology that discovered code clones by studying the functional behavior of blocks of code. Code Clone Discovery based on Functional Behavior (FCD) located code clone by comparing how the blocks of code reacted to various inputs. FCD stimulated the code blocks with the same input patterns and compared the resulting outputs. When a significant portion of the outputs matched, those blocks were declared to be a code clone candidate. Manual analysis confirmed that those blocks of code were code clones. Since FCD discovered code clones based on their black-box behavior, the actual source code syntax was irrelevant and manual inspection further confirmed FCD located code clones that included Type-3 and Type-4 code clones which are frequently excluded from code clone detection tools. FCD recognized the code clones regardless of whether or not they use identical code, similar code, or totally dissimilar code. This new technique allows for an improvement in software quality and has the potential to significantly reduce the cost of software over its lifetime.

Code Clone Discovery Based on Concolic Analysis

Code Clone Discovery Based on Concolic Analysis PDF

Author: Daniel Edward Krutz

Publisher:

Published: 2012

Total Pages: 260

ISBN-13:

DOWNLOAD EBOOK →

Software is often large, complicated and expensive to build and maintain. Redundant code can make these applications even more costly and difficult to maintain. Duplicated code is often introduced into these systems for a variety of reasons. Some of which include developer churn, deficient developer application comprehension and lack of adherence to proper development practices. Code redundancy has several adverse effects on a software application including an increased size of the codebase and inconsistent developer changes due to elevated program comprehension needs. A code clone is defined as multiple code fragments that produce similar results when given the same input. There are generally four types of clones that are recognized. They range from simple type-1 and 2 clones, to the more complicated type-3 and 4 clones. Numerous clone detection mechanisms are able to identify the simpler types of code clone candidates, but far fewer claim the ability to find the more difficult type-3 clones. Before CCCD, MeCC and FCD were the only clone detection techniques capable of finding type-4 clones. A drawback of MeCC is the excessive time required to detect clones and the likely exploration of an unreasonably large number of possible paths. FCD requires extensive amounts of random data and a significant period of time in order to discover clones. This dissertation presents a new process for discovering code clones known as Concolic Code Clone Discovery (CCCD). This technique discovers code clone candidates based on the functionality of the application, not its syntactical nature. This means that things like naming conventions and comments in the source code have no effect on the proposed clone detection process. CCCD finds clones by first performing concolic analysis on the targeted source code. Concolic analysis combines concrete and symbolic execution in order to traverse all possible paths of the targeted program. These paths are represented by the generated concolic output. A diff tool is then used to determine if the concolic output for a method is identical to the output produced for another method. Duplicated output is indicative of a code clone.

Professional Application Lifecycle Management with Visual Studio 2013

Professional Application Lifecycle Management with Visual Studio 2013 PDF

Author: Mickey Gousset

Publisher: John Wiley & Sons

Published: 2014-03-26

Total Pages: 696

ISBN-13: 1118836596

DOWNLOAD EBOOK →

Ramp up your software development with this comprehensive resource Microsoft's Application Lifecycle Management (ALM) makes software development easier and now features support for iOS, MacOS, Android, and Java development. If you are an application developer, some of the important factors you undoubtedly consider in selecting development frameworks and tools include agility, seamless collaboration capabilities, flexibility, and ease of use. Microsoft's ALM suite of productivity tools includes new functionality and extensibility that are sure to grab your attention. Professional Application Lifecycle Management with Visual Studio 2013 provides in-depth coverage of these new capabilities. Authors Mickey Gousset, Martin Hinshelwood, Brian A. Randell, Brian Keller, and Martin Woodward are Visual Studio and ALM experts, and their hands-on approach makes adopting new ALM functionality easy. Streamline software design and deployment with Microsoft tools and methodologies Gain a practical overview of ALM with step-by-step guides and reference material Case studies illustrate specific functionality and provide in-depth instruction Use new capabilities to support iOS, MacOS, Android and Java development Discover this comprehensive solution for modeling, designing, and coordinating enterprise software deployments Over 100 pages of new content, forward-compatible with new product releases Professional Application Lifecycle Management with Visual Studio 2013 provides a complete framework for using ALM to streamline software design and deployment processes using well-developed Microsoft tools and methodologies. Professional Application Lifecycle Management with Visual Studio 2013 is your guide to make use of newly-available ALM features to take your enterprise software development to the next level.

Proceedings of ICRIC 2019

Proceedings of ICRIC 2019 PDF

Author: Pradeep Kumar Singh

Publisher: Springer Nature

Published: 2019-11-21

Total Pages: 897

ISBN-13: 3030294072

DOWNLOAD EBOOK →

This book presents high-quality, original contributions (both theoretical and experimental) on software engineering, cloud computing, computer networks & internet technologies, artificial intelligence, information security, and database and distributed computing. It gathers papers presented at ICRIC 2019, the 2nd International Conference on Recent Innovations in Computing, which was held in Jammu, India, in March 2019. This conference series represents a targeted response to the growing need for research that reports on and assesses the practical implications of IoT and network technologies, AI and machine learning, cloud-based e-Learning and big data, security and privacy, image processing and computer vision, and next-generation computing technologies.

Clone Evolution

Clone Evolution PDF

Author: Nils Göde

Publisher: Logos Verlag Berlin GmbH

Published: 2011

Total Pages: 236

ISBN-13: 3832529209

DOWNLOAD EBOOK →

Duplicated passages of source code - code clones - are a common property of software systems. While clones are beneficial in some situations, their presence causes various problems for software maintenance. Most of these problems are strongly related to change and include, for example, the need to propagate changes across duplicated code fragments and the risk of inconsistent changes to clones that are meant to evolve identically. Hence, we need a sophisticated analysis of clone evolution to better understand, assess, and manage duplication in practice. This thesis introduces Clone Evolution Graphs as a technique to model clone relations and their evolution within the history of a system. We present our incremental algorithm for efficient and automated extraction of Clone Evolution Graphs from a system's history. The approach is shown to scale even for large systems with long histories making it applicable to retroactive analysis ofclone evolution as well as live tracking of clones during software maintenance.We have used Clone Evolution Graphs in several studies to analyze versatile aspects of clone evolution in open-source as well as industrial systems. Our results show that the characteristics of clone evolution are quite different between systems, highlighting the need for a sophisticated technique like Clone Evolution Graphs to track clones and analyze their evolution on a per-system basis. We have also shown that Clone Evolution Graphs are well-suited to analyze the change behavior of individual clones and can be used to identify problematic clones within a system. In general, the results of our studies provide new insights into how clones evolve, how they are changed, and how they are removed.

Emerging Technologies in Data Mining and Information Security

Emerging Technologies in Data Mining and Information Security PDF

Author: Aboul Ella Hassanien

Publisher: Springer Nature

Published: 2021-05-04

Total Pages: 922

ISBN-13: 9813343672

DOWNLOAD EBOOK →

This book features research papers presented at the International Conference on Emerging Technologies in Data Mining and Information Security (IEMIS 2020) held at the University of Engineering & Management, Kolkata, India, during July 2020. The book is organized in three volumes and includes high-quality research work by academicians and industrial experts in the field of computing and communication, including full-length papers, research-in-progress papers and case studies related to all the areas of data mining, machine learning, Internet of things (IoT) and information security.