Code Clone Analysis

Code Clone Analysis
Author: Katsuro Inoue
Publisher: Springer Nature
Total Pages: 236
Release: 2021-08-03
Genre: Computers
ISBN: 9811619271

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.

Clone Evolution

Clone Evolution
Author: Nils Göde
Publisher: Logos Verlag Berlin GmbH
Total Pages: 236
Release: 2011
Genre: Computers
ISBN: 3832529209

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.

Software Evolution

Software Evolution
Author: Tom Mens
Publisher: Springer Science & Business Media
Total Pages: 357
Release: 2008-01-25
Genre: Computers
ISBN: 3540764402

This book focuses on novel trends in software evolution research and its relations with other emerging disciplines. Mens and Demeyer, both authorities in the field of software evolution, do not restrict themselves to the evolution of source code but also address the evolution of other, equally important software artifacts. This book is the indispensable source for researchers and professionals looking for an introduction and comprehensive overview of the state-of-the-art.

Fundamental Approaches to Software Engineering

Fundamental Approaches to Software Engineering
Author: Gabriele Taentzer
Publisher: Springer Science & Business Media
Total Pages: 395
Release: 2010-03-16
Genre: Business & Economics
ISBN: 3642120288

This book constitutes the refereed proceedings of the 13th International Conference on Fundamental Approaches to Software Engineering, FASE 2010, held in Paphos, Cyprus, in March 2010, as part of ETAPS 2010, the European Joint Conferences on Theory and Practice of Software. The 25 papers presented were carefully reviewed and selected from 103 submissions. The volume also contains one invited talk. The topics covered are model transformation, software evolution, graph transformation, modeling concepts, verification, program analysis, testing and debugging, and performance modeling and analysis.

Effective Software Maintenance and Evolution

Effective Software Maintenance and Evolution
Author: Stanislaw Jarzabek
Publisher: CRC Press
Total Pages: 420
Release: 2007-05-07
Genre: Computers
ISBN: 1420013114

With software maintenance costs averaging 50% of total computing costs, it is necessary to have an effective maintenance program in place. Aging legacy systems, for example, pose an especially rough challenge as veteran programmers retire and their successors are left to figure out how the systems operate. This book explores program analyzers, reve

SOFSEM 2011: Theory and Practice of Computer Science

SOFSEM 2011: Theory and Practice of Computer Science
Author: Ivana Cerná
Publisher: Springer
Total Pages: 584
Release: 2011-01-10
Genre: Computers
ISBN: 3642183816

This book constitutes the refereed proceedings of the 37th Conference on Current Trends in Theory and Practice of Computer Science, SOFSEM 2011, held in Nový, Smokovec, Slovakia in January 2011. The 41 revised full papers, presented together with 5 invited contributions, were carefully reviewed and selected from 122 submissions. SOFSEM 2011 was organized around the following four tracks: foundations of computer science; software, systems, and services; processing large datasets; and cryptography, security, and trust.

Empirical Research towards a Relevance Assessment of Software Clones

Empirical Research towards a Relevance Assessment of Software Clones
Author: Saman Bazrafshan
Publisher: Logos Verlag Berlin GmbH
Total Pages: 270
Release: 2017-06-30
Genre: Computers
ISBN: 3832545093

Redundancies in program source code - software clones - are a common phenomenon. Although it is often claimed that software clones decrease the maintainability of software systems and need to be managed, research in the last couple of years showed that not all clones can be considered harmful. A sophisticated assessment of the relevance of software clones and a cost-benefit analysis of clone management is needed to gain a better understanding of cloning and whether it is truly a harmful phenomenon. This thesis introduces techniques to model, analyze, and evaluate versatile aspects of software clone evolution within the history of a system. We present a mapping of non-identical clones across multiple versions of a system, that avoids possible ambiguities of previous approaches. Though processing more data to determine the context of each clone to avoid an ambiguous mapping, the approach is shown to be efficient and applicable to large systems for a retrospective analysis of software clone evolution. The approach has been used in several studies to gain insights into the phenomenon of cloning in open-source as well as industrial software systems. Our results show that non-identical clones require more attention regarding clone management compared to identical clones as they are the dominating clone type for the main share of our subject systems. Using the evolution model to investigate costs and benefits of refactorings that remove clones, we conclude that clone removals could not reduce maintenance costs for most systems under study.

Issues in Software Research, Design, and Application: 2011 Edition

Issues in Software Research, Design, and Application: 2011 Edition
Author:
Publisher: ScholarlyEditions
Total Pages: 278
Release: 2012-01-09
Genre: Computers
ISBN: 1464967644

Issues in Software Research, Design, and Application: 2011 Edition is a ScholarlyEditions™ eBook that delivers timely, authoritative, and comprehensive information about Software Research, Design, and Application. The editors have built Issues in Software Research, Design, and Application: 2011 Edition on the vast information databases of ScholarlyNews.™ You can expect the information about Software Research, Design, and Application in this eBook to be deeper than what you can access anywhere else, as well as consistently reliable, authoritative, informed, and relevant. The content of Issues in Software Research, Design, and Application: 2011 Edition has been produced by the world’s leading scientists, engineers, analysts, research institutions, and companies. All of the content is from peer-reviewed sources, and all of it is written, assembled, and edited by the editors at ScholarlyEditions™ and available exclusively from us. You now have a source you can cite with authority, confidence, and credibility. More information is available at http://www.ScholarlyEditions.com/.

The Nature of Code

The Nature of Code
Author: Daniel Shiffman
Publisher: No Starch Press
Total Pages: 642
Release: 2024-09-03
Genre: Computers
ISBN: 1718503717

All aboard The Coding Train! This beginner-friendly creative coding tutorial is designed to grow your skills in a fun, hands-on way as you build simulations of real-world phenomena with “The Coding Train” YouTube star Daniel Shiffman. What if you could re-create the awe-inspiring flocking patterns of birds or the hypnotic dance of fireflies—with code? For over a decade, The Nature of Code has empowered countless readers to do just that, bridging the gap between creative expression and programming. This innovative guide by Daniel Shiffman, creator of the beloved Coding Train, welcomes budding and seasoned programmers alike into a world where code meets playful creativity. This JavaScript-based edition of Shiffman’s groundbreaking work gently unfolds the mysteries of the natural world, turning complex topics like genetic algorithms, physics-based simulations, and neural networks into accessible and visually stunning creations. Embark on this extraordinary adventure with projects involving: A physics engine: Simulate the push and pull of gravitational attraction. Flocking birds: Choreograph the mesmerizing dance of a flock. Branching trees: Grow lifelike and organic tree structures. Neural networks: Craft intelligent systems that learn and adapt. Cellular automata: Uncover the magic of self-organizing patterns. Evolutionary algorithms: Play witness to natural selection in your code. Shiffman’s work has transformed thousands of curious minds into creators, breaking down barriers between science, art, and technology, and inviting readers to see code not just as a tool for tasks but as a canvas for boundless creativity. Whether you’re deciphering the elegant patterns of natural phenomena or crafting your own digital ecosystems, Shiffman’s guidance is sure to inform and inspire. The Nature of Code is not just about coding; it’s about looking at the natural world in a new way and letting its wonders inspire your next creation. Dive in and discover the joy of turning code into art—all while mastering coding fundamentals along the way. NOTE: All examples are written with p5.js, a JavaScript library for creative coding, and are available on the book's website.