13 research outputs found

    Design and Implementation of a Tracer Driver: Easy and Efficient Dynamic Analyses of Constraint Logic Programs

    Full text link
    Tracers provide users with useful information about program executions. In this article, we propose a ``tracer driver''. From a single tracer, it provides a powerful front-end enabling multiple dynamic analysis tools to be easily implemented, while limiting the overhead of the trace generation. The relevant execution events are specified by flexible event patterns and a large variety of trace data can be given either systematically or ``on demand''. The proposed tracer driver has been designed in the context of constraint logic programming; experiments have been made within GNU-Prolog. Execution views provided by existing tools have been easily emulated with a negligible overhead. Experimental measures show that the flexibility and power of the described architecture lead to good performance. The tracer driver overhead is inversely proportional to the average time between two traced events. Whereas the principles of the tracer driver are independent of the traced programming language, it is best suited for high-level languages, such as constraint logic programming, where each traced execution event encompasses numerous low-level execution steps. Furthermore, constraint logic programming is especially hard to debug. The current environments do not provide all the useful dynamic analysis tools. They can significantly benefit from our tracer driver which enables dynamic analyses to be integrated at a very low cost.Comment: To appear in Theory and Practice of Logic Programming (TPLP), Cambridge University Press. 30 pages

    Management Aspects of Software Clone Detection and Analysis

    Get PDF
    Copying a code fragment and reusing it by pasting with or without minor modifications is a common practice in software development for improved productivity. As a result, software systems often have similar segments of code, called software clones or code clones. Due to many reasons, unintentional clones may also appear in the source code without awareness of the developer. Studies report that significant fractions (5% to 50%) of the code in typical software systems are cloned. Although code cloning may increase initial productivity, it may cause fault propagation, inflate the code base and increase maintenance overhead. Thus, it is believed that code clones should be identified and carefully managed. This Ph.D. thesis contributes in clone management with techniques realized into tools and large-scale in-depth analyses of clones to inform clone management in devising effective techniques and strategies. To support proactive clone management, we have developed a clone detector as a plug-in to the Eclipse IDE. For clone detection, we used a hybrid approach that combines the strength of both parser-based and text-based techniques. To capture clones that are similar but not exact duplicates, we adopted a novel approach that applies a suffix-tree-based k-difference hybrid algorithm, borrowed from the area of computational biology. Instead of targeting all clones from the entire code base, our tool aids clone-aware development by allowing focused search for clones of any code fragment of the developer's interest. A good understanding on the code cloning phenomenon is a prerequisite to devise efficient clone management strategies. The second phase of the thesis includes large-scale empirical studies on the characteristics (e.g., proportion, types of similarity, change patterns) of code clones in evolving software systems. Applying statistical techniques, we also made fairly accurate forecast on the proportion of code clones in the future versions of software projects. The outcome of these studies expose useful insights into the characteristics of evolving clones and their management implications. Upon identification of the code clones, their management often necessitates careful refactoring, which is dealt with at the third phase of the thesis. Given a large number of clones, it is difficult to optimally decide what to refactor and what not, especially when there are dependencies among clones and the objective remains the minimization of refactoring efforts and risks while maximizing benefits. In this regard, we developed a novel clone refactoring scheduler that applies a constraint programming approach. We also introduced a novel effort model for the estimation of efforts needed to refactor clones in source code. We evaluated our clone detector, scheduler and effort model through comparative empirical studies and user studies. Finally, based on our experience and in-depth analysis of the present state of the art, we expose avenues for further research and development towards a versatile clone management system that we envision

    Acta Cybernetica : Volume 16. Number 2.

    Get PDF

    Scheduling of the TTEthernet communication

    Get PDF
    TTEthernet je rozơíƙenĂ­m Ethernetu o prostƙedky pro deterministickou komunikaci. V tĂ©to prĂĄci TTEthernet stručně pƙedstavĂ­me a uvedeme stĂĄvajĂ­cĂ­ metody rozvrhovĂĄnĂ­ provozu v něm. NĂĄsledně formulujeme tento rozvrhovacĂ­ problĂ©m jako MRCPSP-GPR (takĂ© znĂĄm jako multimodĂĄlnĂ­ RCPSP/max) a zhodnotĂ­me moĆŸnosti pouĆŸitĂ­ existujĂ­cĂ­ch ƙeĆĄičƯ MRCPSP-GPR pro rozvrhovĂĄnĂ­ provozu v sĂ­ti TTEthernet. S vyuĆŸitĂ­m heuristiky, kterou jsme navrhli, se tento postup jevĂ­ jako realistickĂœ. Mimo to jeĆĄtě uvĂĄdĂ­me opravu nedĂĄvno publikovanĂ© metody pro odhad maximĂĄlnĂ­ho zpoĆŸděnĂ­ rate-constrained (RC) provozu v sĂ­ti TTEthernet.TTEthernet is an extension of Ethernet for deterministic communication. We present an overview of TTEthernet and existing methods for scheduling TTEthernet traffic. Then we present a formulation of the scheduling problem as a MRCPSP-GPR (also known as multi-mode RCPSP/max) and evaluate the possibility of using existing MRCPSP-GPR solvers for scheduling TTEthernet traffic. With a heuristic we introduce, this approach appears practical. Apart from this, we present a correction of a state-of-the-art method for estimating worst-case delays of rate-constrained (RC) TTEthernet traffic

    Automatic Test Data Generation Using Constraint Programming and Search Based Software Engineering Techniques

    Get PDF
    RÉSUMÉ Prouver qu'un logiciel correspond Ă  sa spĂ©cification ou exposer des erreurs cachĂ©es dans son implĂ©mentation est une tĂąche de test trĂšs difficile, fastidieuse et peut coĂ»ter plus de 50% de coĂ»t total du logiciel. Durant la phase de test du logiciel, la gĂ©nĂ©ration des donnĂ©es de test est l'une des tĂąches les plus coĂ»teuses. Par consĂ©quent, l'automatisation de cette tĂąche permet de rĂ©duire considĂ©rablement le coĂ»t du logiciel, le temps de dĂ©veloppement et les dĂ©lais de commercialisation. Plusieurs travaux de recherche ont proposĂ© des approches automatisĂ©es pour gĂ©nĂ©rer des donnĂ©es de test. Certains de ces travaux ont montrĂ© que les techniques de gĂ©nĂ©ration des donnĂ©es de test qui sont basĂ©es sur des mĂ©taheuristiques (SB-STDG) peuvent gĂ©nĂ©rer automatiquement des donnĂ©es de test. Cependant, ces techniques sont trĂšs sensibles Ă  leur orientation qui peut avoir un impact sur l'ensemble du processus de gĂ©nĂ©ration des donnĂ©es de test. Une insuffisance d'informations pertinentes sur le problĂšme de gĂ©nĂ©ration des donnĂ©es de test peut affaiblir l'orientation et affecter nĂ©gativement l'efficacitĂ© et l'effectivitĂ© de SB-STDG. Dans cette thĂšse, notre proposition de recherche est d'analyser statiquement le code source pour identifier et extraire des informations pertinentes afin de les exploiter dans le processus de SB-STDG pourrait offrir davantage d'orientation et ainsi d'amĂ©liorer l'efficacitĂ© et l'effectivitĂ© de SB-STDG. Pour extraire des informations pertinentes pour l'orientation de SB-STDG, nous analysons de maniĂšre statique la structure interne du code source en se concentrant sur six caractĂ©ristiques, i.e., les constantes, les instructions conditionnelles, les arguments, les membres de donnĂ©es, les mĂ©thodes et les relations. En mettant l'accent sur ces caractĂ©ristiques et en utilisant diffĂ©rentes techniques existantes d'analyse statique, i.e, la programmation par contraintes (CP), la thĂ©orie du schĂ©ma et certains analyses statiques lĂ©gĂšres, nous proposons quatre approches: (1) en mettant l'accent sur les arguments et les instructions conditionnelles, nous dĂ©finissons une approche hybride qui utilise les techniques de CP pour guider SB-STDG Ă  rĂ©duire son espace de recherche; (2) en mettant l'accent sur les instructions conditionnelles et en utilisant des techniques de CP, nous dĂ©finissons deux nouvelles mĂ©triques qui mesurent la difficultĂ© Ă  satisfaire une branche (i.e., condition), d'o˘ nous tirons deux nouvelles fonctions objectif pour guider SB-STDG; (3) en mettant l'accent sur les instructions conditionnelles et en utilisant la thĂ©orie du schĂ©ma, nous adaptons l'algorithme gĂ©nĂ©tique pour mieux rĂ©pondre au problĂšme de la gĂ©nĂ©ration de donnĂ©es de test; (4) en mettant l'accent sur les arguments, les instructions conditionnelles, les constantes, les membres de donnĂ©es, les mĂ©thodes et les relations, et en utilisant des analyses statiques lĂ©gĂšres, nous dĂ©finissons un gĂ©nĂ©rateur d'instance qui gĂ©nĂšre des donnĂ©es de test candidates pertinentes et une nouvelle reprĂ©sentation du problĂšme de gĂ©nĂ©ration des donnĂ©es de test orientĂ©-objet qui rĂ©duit implicitement l'espace de recherche de SB-STDG. Nous montrons que les analyses statiques aident Ă  amĂ©liorer l'efficacitĂ© et l'effectivitĂ© de SB-STDG. Les rĂ©sultats obtenus dans cette thĂšse montrent des amĂ©liorations importantes en termes d'efficacitĂ© et d'effectivitĂ©. Ils sont prometteurs et nous espĂ©rons que d'autres recherches dans le domaine de la gĂ©nĂ©ration des donnĂ©es de test pourraient amĂ©liorer davantage l'efficacitĂ© ou l'effectivitĂ©.----------ABSTRACT Proving that some software system corresponds to its specification or revealing hidden errors in its implementation is a time consuming and tedious testing process, accounting for 50% of the total software. Test-data generation is one of the most expensive parts of the software testing phase. Therefore, automating this task can significantly reduce software cost, development time, and time to market. Many researchers have proposed automated approaches to generate test data. Among the proposed approaches, the literature showed that Search-Based Software Test-data Generation (SB-STDG) techniques can automatically generate test data. However, these techniques are very sensitive to their guidance which impact the whole test-data generation process. The insufficiency of information relevant about the test-data generation problem can weaken the SB-STDG guidance and negatively affect its efficiency and effectiveness. In this dissertation, our thesis is statically analyzing source code to identify and extract relevant information to exploit them in the SB-STDG process could offer more guidance and thus improve the efficiency and effectiveness of SB-STDG. To extract information relevant for SB-STDG guidance, we statically analyze the internal structure of the source code focusing on six features, i.e., constants, conditional statements, arguments, data members, methods, and relationships. Focusing on these features and using different existing techniques of static analysis, i.e., constraints programming (CP), schema theory, and some lightweight static analyses, we propose four approaches: (1) focusing on arguments and conditional statements, we define a hybrid approach that uses CP techniques to guide SB-STDG in reducing its search space; (2) focusing on conditional statements and using CP techniques, we define two new metrics that measure the difficulty to satisfy a branch, hence we derive two new fitness functions to guide SB-STDG; (3) focusing on conditional statements and using schema theory, we tailor genetic algorithm to better fit the problem of test-data generation; (4) focusing on arguments, conditional statements, constants, data members, methods, and relationships, and using lightweight static analyses, we define an instance generator that generates relevant test-data candidates and a new representation of the problem of object-oriented test-data generation that implicitly reduces the SB-STDG search space. We show that using static analyses improve the SB-STDG efficiency and effectiveness. The achieved results in this dissertation show an important improvements in terms of effectiveness and efficiency. They are promising and we hope that further research in the field of test-data generation might improve efficiency or effectiveness

    Theoretical and Computational Research in Various Scheduling Models

    Get PDF
    Nine manuscripts were published in this Special Issue on “Theoretical and Computational Research in Various Scheduling Models, 2021” of the MDPI Mathematics journal, covering a wide range of topics connected to the theory and applications of various scheduling models and their extensions/generalizations. These topics include a road network maintenance project, cost reduction of the subcontracted resources, a variant of the relocation problem, a network of activities with generally distributed durations through a Markov chain, idea on how to improve the return loading rate problem by integrating the sub-tour reversal approach with the method of the theory of constraints, an extended solution method for optimizing the bi-objective no-idle permutation flowshop scheduling problem, the burn-in (B/I) procedure, the Pareto-scheduling problem with two competing agents, and three preemptive Pareto-scheduling problems with two competing agents, among others. We hope that the book will be of interest to those working in the area of various scheduling problems and provide a bridge to facilitate the interaction between researchers and practitioners in scheduling questions. Although discrete mathematics is a common method to solve scheduling problems, the further development of this method is limited due to the lack of general principles, which poses a major challenge in this research field

    Operational Research IO2017, Valença, Portugal, June 28-30

    Get PDF
    This proceedings book presents selected contributions from the XVIII Congress of APDIO (the Portuguese Association of Operational Research) held in Valença on June 28–30, 2017. Prepared by leading Portuguese and international researchers in the field of operations research, it covers a wide range of complex real-world applications of operations research methods using recent theoretical techniques, in order to narrow the gap between academic research and practical applications. Of particular interest are the applications of, nonlinear and mixed-integer programming, data envelopment analysis, clustering techniques, hybrid heuristics, supply chain management, and lot sizing and job scheduling problems. In most chapters, the problems, methods and methodologies described are complemented by supporting figures, tables and algorithms. The XVIII Congress of APDIO marked the 18th installment of the regular biannual meetings of APDIO – the Portuguese Association of Operational Research. The meetings bring together researchers, scholars and practitioners, as well as MSc and PhD students, working in the field of operations research to present and discuss their latest works. The main theme of the latest meeting was Operational Research Pro Bono. Given the breadth of topics covered, the book offers a valuable resource for all researchers, students and practitioners interested in the latest trends in this field.info:eu-repo/semantics/publishedVersio
    corecore