187 research outputs found

    An Empirical Assessment of Bellon's Clone Benchmark

    Get PDF
    Context: Clone benchmarks are essential to the assessment and improvement of clone detection tools and algorithms. Among existing benchmarks, Bellon’s benchmark is widely used by the research community. However, a serious threat to the validity of this benchmark is that reference clones it contains have been manually validated by Bellon alone. Other persons may disagree with Bellon’s judgment. Ob-jective: In this paper, we perform an empirical assessment of Bellon’s benchmark. Method: We seek the opinion of eighteen participants on a subset of Bellon’s benchmark to determine if researchers should trust the reference clones it contains. Results: Our experiment shows that a significant amount of the reference clones are debatable, and this phe-nomenon can introduce noise in results obtained using this benchmark

    FORMALIZATION AND DETECTION OF COLLABORATIVE PATTERNS IN SOFTWARE

    Get PDF
    Ph.DDOCTOR OF PHILOSOPH

    Leveraging Software Clones for Software Comprehension: Techniques and Practice

    Get PDF
    RÉSUMÉ Le corps de cette thèse est centré sur deux aspects de la détection de clones logiciels: la détection et l’application. En détection, la contribution principale de cette thèse est un nouveau détecteur de clones conçu avec la librairie mtreelib, elle-même développée expressément pour ce travail. Cette librairie implémente un arbre de métrique général, une structure de donnée spécialisée dans la division des espaces de métriques dans le but d’accélérer certaines requêtes communes, comme les requêtes par intervalles ou les requêtes de plus proche voisin. Cette structure est utilisée pour construire un détecteur de clones qui approxime la distance de Levenshtein avec une forte précision. Une brève évaluation est présentée pour soutenir cette précision. D’autres résultats pertinents sur les métriques et la détection incrémentale de clones sont également présentés. Plusieurs applications du nouveau détecteur de clones sont présentés. Tout d’abord, un algorithme original pour la reconstruction d’informations perdus dans les systèmes de versionnement est proposé et testé sur plusieurs grands systèmes. Puis, une évaluation qualitative et quantitative de Firefox est faite sur la base d’une analyse du plus proche voisin; les courbes obtenues sont utilisées pour mettre en lumière les difficultés d’effectuer une transition entre un cycle de développement lent et rapide. Ensuite, deux expériences industrielles d’utilisation et de déploiement d’une technologie de détection de clonage sont présentés. Ces deux expériences concernent les langages C/C++, Java et TTCN-3. La grande différence de population de clones entre C/C++ et Java et TTCN-3 est présentée. Finalement, un résultat obtenu grâce au croisement d’une analyse de clones et d’une analyse de flux de sécurité met en lumière l’utilité des clones dans l’identification des failles de sécurité. Le travail se termine par une conclusion et quelques perspectives futures.----------ABSTRACT This thesis explores two topics in clone analysis: detection and application. The main contribution in clone detection is a new clone detector based on a library called mtreelib. This library is a package developed for clone detection that implements the metric data structure. This structure is used to build a clone detector that approximates the Levenshtein distance with high accuracy. A small benchmark is produced to assess the accuracy. Other results from these regarding metrics and incremental clone detection are also presented. Many applications of the clone detector are introduced. An original algorithm to reconstruct missing information in the structure of software repositories is described and tested with data sourced from large existing software. An insight into Firefox is exposed showing the quantity of change between versions and the link between different release cycle types and the number of bugs. Also, an analysis crossing the results from pattern traversal, flow analysis and clone detection is presented. Two industrial experiments using a different clone detector, CLAN, are also presented with some developers’ perspectives. One of the experiments is done on a language never explored in clone detection, TTCN-3, and the results show that the clone population in that language differs greatly from other well-known languages, like C/C++ and Java. The thesis concludes with a summary of the findings and some perspectives for future research

    Гібридизація способів детекції плагіаризму в програмному коді

    Get PDF
    Актуальність теми. Ми живемо у вік прогресивного розвитку комп’ютерних технологій. В наш час програмні продукти з’являються і розвиваються з неймовірною швидкістю, тенденції і тренди на технології змінюються щоденно. Одночасно виникають і проблеми плагіаризму, де під плагіаризмом в програмному коді розуміють часткове або повне дублювання фрагментів коду програми. Під терміном дублювання можна розглядати як ідентичні фрагменти коду в рамках однієї програми, так і плагіаризм у різних програмах. Детекція плагіаризму завжди була і залишається актуальною задачею в розробці програмного забезпечення, як інструмент метричного аналізу і рефакторингу. На сьогодні існує велика кількість програмних продуктів, які допомагають ідентифікувати плагіаризм у програмному коді. Значна кількість інтегрованих середовищ розробки містить у собі відповідні розширення для полегшення розробки, підтримки і впровадження програмних продуктів, тому що накопичування великої кількості дублюючого програмного коду може призводити до виникнення значної кількості проблем, оскільки при детекції помилок в певному фрагменті коду, всі дублюючі фрагменти також повинні бути модифіковані, що може значно ускладнити впровадження і підтримку програмного продукту. Завдяки детекції плагіаризму дублюючий код може абстрагуватися і, як результат, загальний розмір програмного коду може бути зменшений. Крім того детекція плагіаризму в програмному коді може використовуватися для рефакторингу проєктів, зменшення кодової бази та пошуку порушення прав копірайтингу. Об’єктом дослідження є детекція плагіаризму в програмному коді. Предметом дослідження є гібридизація способів визначення програмних клонів у вхідних програмах. Мета роботи: розробка нового гібридного підходу для більш ефективної детекції плагіаризму порівняно з аналогами. Наукова новизна полягає в наступному: запропоновано гібридний спосіб детекції плагіаризму у програмному коді, який дає можливість детекції плагіаризму для широкого спектру мов програмування, забезпечуючи покращення результатів існуючих підходів. Практична цінність отриманих в роботі результатів полягає в тому, що запропонований спосіб є універсальним рішенням для даної сфери, забезпечуючи можливість детекції плагіаризму для широкого спектру мов програмування без втрати ефективності і має можливість застосування як інструмент для полегшення процесу розробки програмного забезпечення, також передбачена можливість інтеграції з іншим програмним забезпеченням. Апробація роботи. Основні положення і результати роботи були представлені та обговорювались на: 1. XIV науковій конференції магістрантів та аспірантів «Прикладна математика та комп’ютинг» ПМК-2021 (Київ, 17-19 листопада 2021 р.); 2. VІIІ Міжнародній науково-технічній Internet-конференції «Сучасні методи, інформаційне, програмне та технічне забезпечення систем керування організаційно-технічними та технологічними комплексами» (Київ, 26 листопада 2021р.). Структура та обсяг роботи. Магістерська дисертація складається з вступу, чотирьох розділів та висновків. У вступі подано загальну характеристику роботи, зроблено оцінку сучасного стану проблеми, обґрунтовано актуальність напрямку досліджень, сформульовано мету і задачі досліджень та показано практичну цінність роботи. У першому розділі розглянуто основні техніки детекції плагіаризму, програмне забезпечення, яке їх реалізує, їх переваги та недоліки. У другому розділі наведено відомості про методи, алгоритми та інструменти, які використовуються для обробки програмного коду в магістерській роботі. У третьому розділі подано опис розробленого способу та етапів його реалізації. У четвертому розділі міститься тестування даного програмного комплексу з метою доведення правильності роботи. У висновках представлені результати проведеної роботи. Робота представлена на 80 аркушах, містить посилання на список використаних літературних джерел.Actuality of theme. We live in the age of progressive development of computer technology. Nowadays, software appears and develops with great speed and trends in technology is changing daily. At the same time there are problems of plagiarism, where plagiarism in program code means parts or complete duplication of fragments of the program code. The term duplication can be considered as identical fragments of code within one program, and plagiarism in different programs. Detection of plagiarism always remains an urgent task in software development as a tool of metric analysis and refactoring. Today, there are a large number of software products that helps to identify plagiarism in program code. A significant number of integrated development environments includes appropriate extensions to facilitate the development, maintenance and implementation of software products, because the accumulation of large amounts of duplicate program code can lead to many problems, because when detecting errors in a particular piece of code, all duplicate fragments must be modified, which can greatly complicate the implementation and maintenance of the software product. Due to the detection of plagiarism, duplicate code can be abstracted and, as a result, the overall size of the program code can be reduced. In addition, the detection of plagiarism in program code can be used of projects refactoring, reduce the code base and find violations of copy-writing rights. The object of the study is the plagiarism detection in program code. The subject of the study is a hybrid method of determining software clones in input programs. Purpose: an analysis of plagiarism detection in software code with purpose of developing of new software using hybrid approaches. Research methods. Methods of discrete mathematics, experimental method. The scientific novelty is: A new method of detecting plagiarism in program code is proposed, which enables the detection of plagiarism for a wide range of programming languages, improving the results of existing approaches. The practical value of the results obtained is that the proposed method is a universal solution in this sphere, providing the ability to detect plagiarism for a wide range of programming languages without loss of efficiency and can be used as a tool to facilitate software development, also provides the ability to integrate with other software. Testing the work. The main provisions and results of the work were presented on the PMK-2021 and VIII International scientific Internet-conference. Structure and scope of work. Introduction is a general description of the work, the estimation of a modern condition of a problem is made, the urgency of a direction of researches is proved, the purpose and tasks of researches are formulated and practical value of work is shown. The first section discusses the main techniques for detecting plagiarism, the software that implements them, their advantages and disadvantages. The second section provides information about the methods, algorithms and tools that is used to process program code in this work. The third section describes developed method and stages of its implementation. The fourth section contains testing of this software package to prove the correctness of the work. The master's thesis is made on 80 papers, contains 3 appendices and links to the list of used literature sources with 20 titles. 36 drawings and 4 tables are presented in the paper

    Genetic Improvement of Software: a Comprehensive Survey

    Get PDF
    Genetic improvement (GI) uses automated search to find improved versions of existing software. We present a comprehensive survey of this nascent field of research with a focus on the core papers in the area published between 1995 and 2015. We identified core publications including empirical studies, 96% of which use evolutionary algorithms (genetic programming in particular). Although we can trace the foundations of GI back to the origins of computer science itself, our analysis reveals a significant upsurge in activity since 2012. GI has resulted in dramatic performance improvements for a diverse set of properties such as execution time, energy and memory consumption, as well as results for fixing and extending existing system functionality. Moreover, we present examples of research work that lies on the boundary between GI and other areas, such as program transformation, approximate computing, and software repair, with the intention of encouraging further exchange of ideas between researchers in these fields

    Reflective-Physically Unclonable Function based System for Anti-Counterfeiting

    Get PDF
    Physically unclonable functions (PUF) are physical security mechanisms, which utilize inherent randomness in processes used to instantiate physical objects. In this dissertation, an extensive overview of the state of the art in implementations, accompanying definitions and their analysis is provided. The concept of the reflective-PUF is presented as a product security solution. The viability of the concept, its evaluation and the requirements of such a system is explored

    Polymorphic Pipeline Array: A Flexible Multicore Accelerator for Mobile Multimedia Applications.

    Full text link
    Mobile computing in the form of smart phones, netbooks, and PDAs has become an integral part of our everyday lives. Moving ahead to the next generation of mobile devices, we believe that multimedia will become a more critical and product-differentiating feature. High definition audio and video as well as 3D graphics provide richer interfaces and compelling capabilities. However, these algorithms also bring different computational challenges than wireless signal processing. Multimedia algorithms are more complex featuring more control flow and variable computational requirements where execution time is not dominated by innermost vector loops. Further, data access is more complex where media applications typically operate on multi-dimensional vectors of data rather than single-dimensional vectors with simple strides. Thus, the design of current mobile platforms requires re-examination to account for these new application domains. In this dissertation, we focus on the design of a programmable, low-power accelerator for multimedia algorithms referred to as a Polymorphic Pipeline Array (PPA). The PPA design is inspired by coarse-grain reconfigurable architectures (CGRAs) that consist of an array of function units interconnected by a mesh style interconnect. The PPA improves upon CGRAs by attacking two major limitations: scalability and acceleration limited to innermost loops. The large number of resources are fully utilized by exploiting both Lne-grain instruction-level and coarse-grain pipeline parallelism, and the acceleration is extended beyond innermost loops to encompass the whole region of applications. Various compiler and architectural optimizations are presented for CGRAs that form the basic building blocks of PPA. Two compiler techniques are presented that systematically construct the schedule with intelligent heuristics. Modulo graph embedding leverages graph embedding technique for scheduling in CGRAs and edgecentric modulo scheduling provides a communication-oriented way to address the scheduling problem. For architectural improvement, a novel control path design is presented that leverages the token network of dataflow machines to reduce the instructionmemory power. The PPA is designed with flexibility and programmability as first-order requirements to enable the hardware to be dynamically customizable to the application. A PPA exploit pipeline parallelism found in streaming applications to create a coarsegrain hardware pipeline to execute streaming media applications.Ph.D.Computer Science & EngineeringUniversity of Michigan, Horace H. Rackham School of Graduate Studieshttp://deepblue.lib.umich.edu/bitstream/2027.42/64732/1/parkhc_1.pd
    corecore