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.

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.

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.

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.

Empirical Software Engineering Issues. Critical Assessment and Future Directions

Empirical Software Engineering Issues. Critical Assessment and Future Directions
Author: Victor Basili
Publisher: Springer
Total Pages: 209
Release: 2007-06-11
Genre: Computers
ISBN: 3540713018

This book constitutes the thoroughly refereed post-proceedings of the International Dagstuhl-Seminar on Empirical Software Engineering, held in Dagstuhl Castle, Germany in June 2006. The 54 revised full papers in this state-of-the-art survey are organized in topical sections on the empirical paradigm, measurement and model building, technology transfer and education, as well as roadmapping.

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.

Software Design X-Rays

Software Design X-Rays
Author: Adam Tornhill
Publisher: Pragmatic Bookshelf
Total Pages: 356
Release: 2018-03-08
Genre: Computers
ISBN: 1680505807

Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that's just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code! Use statistics and data science to uncover both problematic code and the behavioral patterns of the developers who build your software. This combination gives you insights you can't get from the code alone. Use these insights to prioritize refactoring needs, measure their effect, find implicit dependencies between different modules, and automatically create knowledge maps of your system based on actual code contributions. In a radical, much-needed change from common practice, guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Discover a comprehensive set of practical analysis techniques based on version-control data, where each point is illustrated with a case study from a real-world codebase. Because the techniques are language neutral, you can apply them to your own code no matter what programming language you use. Guide organizational decisions with objective data by measuring how well your development teams align with the software architecture. Apply research findings from social psychology to software development, ensuring you get the tools you need to coach your organization towards better code. If you're an experienced programmer, software architect, or technical manager, you'll get a new perspective that will change how you work with code. What You Need: You don't have to install anything to follow along in the book. TThe case studies in the book use well-known open source projects hosted on GitHub. You'll use CodeScene, a free software analysis tool for open source projects, for the case studies. We also discuss alternative tooling options where they exist.

Encyclopedia of Software Engineering Three-Volume Set (Print)

Encyclopedia of Software Engineering Three-Volume Set (Print)
Author: Phillip A. Laplante
Publisher: CRC Press
Total Pages: 1441
Release: 2010-11-22
Genre: Computers
ISBN: 1351249266

Software engineering requires specialized knowledge of a broad spectrum of topics, including the construction of software and the platforms, applications, and environments in which the software operates as well as an understanding of the people who build and use the software. Offering an authoritative perspective, the two volumes of the Encyclopedia of Software Engineering cover the entire multidisciplinary scope of this important field. More than 200 expert contributors and reviewers from industry and academia across 21 countries provide easy-to-read entries that cover software requirements, design, construction, testing, maintenance, configuration management, quality control, and software engineering management tools and methods. Editor Phillip A. Laplante uses the most universally recognized definition of the areas of relevance to software engineering, the Software Engineering Body of Knowledge (SWEBOK®), as a template for organizing the material. Also available in an electronic format, this encyclopedia supplies software engineering students, IT professionals, researchers, managers, and scholars with unrivaled coverage of the topics that encompass this ever-changing field. Also Available Online This Taylor & Francis encyclopedia is also available through online subscription, offering a variety of extra benefits for researchers, students, and librarians, including: Citation tracking and alerts Active reference linking Saved searches and marked lists HTML and PDF format options Contact Taylor and Francis for more information or to inquire about subscription options and print/online combination packages. US: (Tel) 1.888.318.2367; (E-mail) [email protected] International: (Tel) +44 (0) 20 7017 6062; (E-mail) [email protected]

Software Ecosystems

Software Ecosystems
Author: Slinger Jansen
Publisher: Edward Elgar Publishing
Total Pages: 357
Release: 2013-01-01
Genre: Computers
ISBN: 1781955638

This book describes the state-of-the-art of software ecosystems. It constitutes a fundamental step towards an empirically based, nuanced understanding of the implications for management, governance, and control of software ecosystems. This is the first book of its kind dedicated to this emerging field and offers guidelines on how to analyze software ecosystems; methods for managing and growing; methods on transitioning from a closed software organization to an open one; and instruments for dealing with open source, licensing issues, product management and app stores. It is unique in bringing together industry experiences, academic views and tackling challenges such as the definition of fundamental concepts of software ecosystems, describing those forces that influence its development and lifecycles, and the provision of methods for the governance of software ecosystems. This book is an essential starting point for software industry researchers, product managers, and entrepreneurs.