We introduce in this paper a new flow-driven and constraint-based approach for error localization. The input is a faulty program for which a counter-example and a postcondition are provided. To identify helpful information for error location, we generate a constraint system for the paths of the control flow graph for which at most k conditional statements may be erroneous. Then, we calculate Minimal Correction Sets (MCS) of bounded size for each of these paths. The removal of one of these sets of constraints yields a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the post condition. To compute the MCS, we extend the algorithm proposed by Liffiton and Sakallah in order to handle programs with numerical statements more efficiently. The main advantage of this flow-driven approach is that the computed sets of suspicious instructions are small, each of them being associated to an identified path. Moreover, the constraint-programming based framework allows mixing Boolean and numerical constraints in an efficient and straightforward way. Preliminary experiments are quite encouraging.
LocFaults: A new flow-driven and constraint-based error localization approachMohammed Bekkouche
We introduce in this paper LocFaults, a new flow-driven and constraint-based approach for error localization. The input is a faulty program for which a counter-example and a post-condition are provided. To identify helpful information for error location, we generate a constraint system for the paths of the control flow graph for which at most k conditional statements may be erroneous. Then, we calculate minimal correction sets (MCS) of bounded size for each of these paths. The removal of one of these sets of constraints yields a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the post condition. To compute the MCS, we extend the algorithm proposed by Liffiton and Sakallah in order to handle programs with numerical statements more efficiently. The main advantage of this flow-driven approach is that the computed sets of suspicious instructions are small, each of them being associated to an identified path. Moreover, the constraint-programming based framework of LocFaults allows mixing of Boolean and numerical constraints in an efficient and straightforward way. Preliminary experiments are quite encouraging.
LocFaults, a bounded constraint-based approach to aid for error localizationMohammed Bekkouche
When a program is not conform to its specification, i.e., the program is erroneous, provide useful information for error localization is an important task to debug the program but complex at the same time. The goal is to provide a reduced set of suspicious statements to understand the origin of errors in the program. In our research we propose a new constraint-based approach to support the problem of error localization for which a counterexample is available, i.e., a test case proving the non conformity. From the counterexample, our approach generate a constraint system for each path of the CFG (Control Flow Graph) for which at most k conditional statements are suspected. Then, we calculate Minimal Correction Subsets (MCS) of bounded size for each erroneous path. The removal of one of these sets of constraints yields a Maximal Satisfiable Subset (MSS), a maximal subset of constraints satisfying the postcondition. We export and adapt the generic algorithm proposed by Liffiton and Sakallah to handle programs with numerical statements more efficiently. We present preliminary experimental results that are quite encouraging.
1) The document presents an approach called Constraint-Based Error Localization that aims to help localize errors in programs with numeric constraints.
2) It works by computing minimal correction sets (MCS) and minimal unsatisfiable cores (MUC) to identify portions of constraint sets that contain problems.
3) The approach was evaluated on two tools - LocFaults and BugAssist - using benchmarks like TCAS and Tritype with injected faults. Results showed LocFaults could better locate errors by reporting multiple MCSs along faulty paths.
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemIosif Itkin
Alexei Promsky, Dmitry Kondtratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
The document appears to be a test paper containing multiple choice questions about C, C++ language concepts. There are 43 questions testing knowledge of topics like C language syntax, data types, operators, loops, functions, pointers, arrays and structures. The questions have a single correct answer among 4 options for each.
LocFaults: Une nouvelle approche basée sur les contraintes et dirigée par les...Mohammed Bekkouche
Nous introduisons dans cette présentation LocFaults, une nouvelle approche fondée sur les contraintes et dirigée par les flux pour l'aide à la localisation d'erreurs. L'entrée est un programme erroné pour lequel un contre-exemple et une post-condition sont fournis. Pour identifier les informations utiles pour l'aide à la localisation d'erreurs, nous générons un système de contraintes pour chaque chemin du graphe de flot de contrôle pour lequel au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les ensembles de correction minimaux (MCSs) de taille limitée pour chacun chemin erroné.
La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfaisable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satisfaisant la postcondition. Pour calculer les MCSs, nous étendons l'algorithme proposé par Liffiton et Sakallah afin de traiter les programmes avec calcul numérique plus efficacement. Le principal avantage de cette approche dirigée par le flux est que les ensembles d'instructions suspectes calculées sont petits, chacun d'eux étant associé à un chemin identifié. En outre, le cadre de la programmation par contraintes de LocFaults permet traiter un mélange des booléennes et des contraintes numériques d'une manière simple et efficace. Les expériences pratiques sont très encourageants.
Une approche incrémentale combinant les techniques BMC et un problème CSP pou...Mohammed Bekkouche
Dans cet exposé, nous présentons notre algorithme amélioré de localisation d'erreurs a partir de contre-exemples, LocFaults, basé sur la programmation par contraintes et dirigé par les flots. Cet algorithme analyse les chemins du CFG (Control Flow Graph) du programme erroné pour calculer les sous-ensembles d'instructions suspectes permettant de corriger le programme. En effet, nous générons un système de contraintes pour les chemins du graphe de flot de contrôle pour lesquels au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les MCS (Minimal Correction Set) de taille limitée sur chacun de ces chemins. La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfiable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satis-faisant la postcondition. Pour calculer les MCS, nous étendons l'algorithme générique proposé par Liffiton et Sakallah dans le but de traiter des programmes avec des instructions numériques plus efficace-ment. Nous nous intéressons a présenter l'aspect incrémental de ce nouvel algorithme qui n'est pas encore présenté aux JFPC.
Defense of Mohammed Bekkouche's PhD Thesis : "Combining techniques of Bounded...Mohammed Bekkouche
A model checker can produce a trace of counter-example for erroneous program, which is often difficult to exploit to locate errors in source code. In my thesis, we proposed an error localization algorithm from counter-examples, named LocFaults, combining approaches of Bounded Model-Checking (BMC) with constraint satisfaction problem (CSP). This algorithm analyzes the paths of CFG (Control Flow Graph) of the erroneous program to calculate the subsets of suspicious instructions to correct the program. Indeed, we generate a system of constraints for paths of control flow graph for which at most k conditional statements can be wrong. Then we calculate the MCSs (Minimal Correction Sets) of limited size on each of these paths. Removal of one of these sets of constraints gives a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the postcondition. To calculate the MCSs, we extend the generic algorithm proposed by Liffiton and Sakallah in order to deal with programs with numerical instructions more efficiently. This approach has been experimentally evaluated on a set of academic and realistic programs.
LocFaults: A new flow-driven and constraint-based error localization approachMohammed Bekkouche
We introduce in this paper LocFaults, a new flow-driven and constraint-based approach for error localization. The input is a faulty program for which a counter-example and a post-condition are provided. To identify helpful information for error location, we generate a constraint system for the paths of the control flow graph for which at most k conditional statements may be erroneous. Then, we calculate minimal correction sets (MCS) of bounded size for each of these paths. The removal of one of these sets of constraints yields a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the post condition. To compute the MCS, we extend the algorithm proposed by Liffiton and Sakallah in order to handle programs with numerical statements more efficiently. The main advantage of this flow-driven approach is that the computed sets of suspicious instructions are small, each of them being associated to an identified path. Moreover, the constraint-programming based framework of LocFaults allows mixing of Boolean and numerical constraints in an efficient and straightforward way. Preliminary experiments are quite encouraging.
LocFaults, a bounded constraint-based approach to aid for error localizationMohammed Bekkouche
When a program is not conform to its specification, i.e., the program is erroneous, provide useful information for error localization is an important task to debug the program but complex at the same time. The goal is to provide a reduced set of suspicious statements to understand the origin of errors in the program. In our research we propose a new constraint-based approach to support the problem of error localization for which a counterexample is available, i.e., a test case proving the non conformity. From the counterexample, our approach generate a constraint system for each path of the CFG (Control Flow Graph) for which at most k conditional statements are suspected. Then, we calculate Minimal Correction Subsets (MCS) of bounded size for each erroneous path. The removal of one of these sets of constraints yields a Maximal Satisfiable Subset (MSS), a maximal subset of constraints satisfying the postcondition. We export and adapt the generic algorithm proposed by Liffiton and Sakallah to handle programs with numerical statements more efficiently. We present preliminary experimental results that are quite encouraging.
1) The document presents an approach called Constraint-Based Error Localization that aims to help localize errors in programs with numeric constraints.
2) It works by computing minimal correction sets (MCS) and minimal unsatisfiable cores (MUC) to identify portions of constraint sets that contain problems.
3) The approach was evaluated on two tools - LocFaults and BugAssist - using benchmarks like TCAS and Tritype with injected faults. Results showed LocFaults could better locate errors by reporting multiple MCSs along faulty paths.
TMPA-2015: Implementing the MetaVCG Approach in the C-light SystemIosif Itkin
Alexei Promsky, Dmitry Kondtratyev, A.P. Ershov Institute of Informatics Systems, Novosibirsk
12 - 14 November 2015
Tools and Methods of Program Analysis in St. Petersburg
The document appears to be a test paper containing multiple choice questions about C, C++ language concepts. There are 43 questions testing knowledge of topics like C language syntax, data types, operators, loops, functions, pointers, arrays and structures. The questions have a single correct answer among 4 options for each.
LocFaults: Une nouvelle approche basée sur les contraintes et dirigée par les...Mohammed Bekkouche
Nous introduisons dans cette présentation LocFaults, une nouvelle approche fondée sur les contraintes et dirigée par les flux pour l'aide à la localisation d'erreurs. L'entrée est un programme erroné pour lequel un contre-exemple et une post-condition sont fournis. Pour identifier les informations utiles pour l'aide à la localisation d'erreurs, nous générons un système de contraintes pour chaque chemin du graphe de flot de contrôle pour lequel au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les ensembles de correction minimaux (MCSs) de taille limitée pour chacun chemin erroné.
La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfaisable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satisfaisant la postcondition. Pour calculer les MCSs, nous étendons l'algorithme proposé par Liffiton et Sakallah afin de traiter les programmes avec calcul numérique plus efficacement. Le principal avantage de cette approche dirigée par le flux est que les ensembles d'instructions suspectes calculées sont petits, chacun d'eux étant associé à un chemin identifié. En outre, le cadre de la programmation par contraintes de LocFaults permet traiter un mélange des booléennes et des contraintes numériques d'une manière simple et efficace. Les expériences pratiques sont très encourageants.
Une approche incrémentale combinant les techniques BMC et un problème CSP pou...Mohammed Bekkouche
Dans cet exposé, nous présentons notre algorithme amélioré de localisation d'erreurs a partir de contre-exemples, LocFaults, basé sur la programmation par contraintes et dirigé par les flots. Cet algorithme analyse les chemins du CFG (Control Flow Graph) du programme erroné pour calculer les sous-ensembles d'instructions suspectes permettant de corriger le programme. En effet, nous générons un système de contraintes pour les chemins du graphe de flot de contrôle pour lesquels au plus k instructions conditionnelles peuvent être erronées. Ensuite, nous calculons les MCS (Minimal Correction Set) de taille limitée sur chacun de ces chemins. La suppression de l'un de ces ensembles de contraintes donne un sous-ensemble satisfiable maximal, en d'autres termes, un sous-ensemble maximal de contraintes satis-faisant la postcondition. Pour calculer les MCS, nous étendons l'algorithme générique proposé par Liffiton et Sakallah dans le but de traiter des programmes avec des instructions numériques plus efficace-ment. Nous nous intéressons a présenter l'aspect incrémental de ce nouvel algorithme qui n'est pas encore présenté aux JFPC.
Defense of Mohammed Bekkouche's PhD Thesis : "Combining techniques of Bounded...Mohammed Bekkouche
A model checker can produce a trace of counter-example for erroneous program, which is often difficult to exploit to locate errors in source code. In my thesis, we proposed an error localization algorithm from counter-examples, named LocFaults, combining approaches of Bounded Model-Checking (BMC) with constraint satisfaction problem (CSP). This algorithm analyzes the paths of CFG (Control Flow Graph) of the erroneous program to calculate the subsets of suspicious instructions to correct the program. Indeed, we generate a system of constraints for paths of control flow graph for which at most k conditional statements can be wrong. Then we calculate the MCSs (Minimal Correction Sets) of limited size on each of these paths. Removal of one of these sets of constraints gives a maximal satisfiable subset, in other words, a maximal subset of constraints satisfying the postcondition. To calculate the MCSs, we extend the generic algorithm proposed by Liffiton and Sakallah in order to deal with programs with numerical instructions more efficiently. This approach has been experimentally evaluated on a set of academic and realistic programs.
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...Enkitec
The document discusses Adaptive Cursor Sharing (ACS) in Oracle databases. ACS allows a SQL statement to have multiple optimal execution plans depending on the selectivity of bind variables. This helps avoid plan flipping that can occur with regular cursor sharing. The document explains how ACS works, how statements become bind sensitive and bind aware to take advantage of ACS, and how execution plans and rows processed are monitored to build selectivity profiles for statements.
Automated Program Repair, Distinguished lecture at MPI-SWSAbhik Roychoudhury
MPI-SWS Distinguished Lecture 2019. The talk focuses on fuzzing, symbolic execution as background technologies and compares their relative power. Then the use of such technologies for automated program repair is investigated.
This document outlines the schedule and content for an advanced econometrics and Stata training course taking place from October 17-26, 2019 in Beijing, China. The course will cover topics including single and multi-regression, hypothesis testing, panel data models, time series models, stochastic frontier analysis, data envelopment analysis, and difference-in-differences. Data envelopment analysis will be the focus of sessions 13 and 14, covering concepts such as efficiency measurement, variable returns to scale, and incorporating environmental variables.
Keynote given at the Asia Pacific Software Engineering Conference (APSEC), December 2020, on Automated Program Repair technologies and their applications.
This document discusses various software metrics that can be used for software estimation, quality assurance, and maintenance. It describes black box metrics like function points and COCOMO, which focus on program functionality without examining internal structure. It also covers white box metrics, including lines of code, Halstead's software science, and McCabe's cyclomatic complexity, which measure internal program properties. Finally, it discusses using metrics like change rates and effort adjustment factors to estimate software maintenance costs.
Using Monte Carlo Simulation in Project Estimates by Akram Najjar
The PMI Lebanon is glad to announce that Akram Najjar is the speaker for the a lecture titled “Using Monte Carlo Simulation in Project Estimates” delivered on Thursday, 28 July 2016
Lecture Outline
* Why are single point estimates unreliable and what is the alternative?
* What are distributions and how do we extract random samples from them (using Excel)? Two costing examples.
* How to setup a Monte Carlo Simulation model in a spreadsheet?
* Two PM examples (in detail)
* How to statistically analyze the thousands of runs to reach reliable estimates?
Lecture Objectives
* A Project Manager usually knows how certain parameters (such as duration, resource rates or quantities) behave. However, the PM can almost never define reliable single point estimates for these parameters. The result: many projects fail due to unreliable estimates. The alternative? The PM has to use his/her knowledge of how specific parameters behave statistically. For example, the PM knows that a specific task’s duration is distributed according to the bell shaped curve OR that another is uniformly distributed (flat variation), or triangular, or Beta-PERT, etc. The PM can then use Monte Carlo Simulation (MCS) to arrive at statistically significant and robust results. Monte Carlo Simulation (MCS) is a technique that relies on two processes. Process 1 aims at developing a spreadsheet model that calculates the critical path or the total cost, etc. The calculation is setup in a single row (or Run). This row is then duplicated a large number of times (thousands). Process 2 aims at inserting Excel functions in each of the parameters (durations, costs). In each row (or Run), such functions will provide a sample drawn from a statistical distribution that properly describes the behavior of that parameter. For example, a specific duration follows a Normal (Bell) distribution with an Average A and a Standard Deviation S. The model will then generate for each run and for that duration a different value that conforms with the bell shaped curve as defined (A and S). Each of these thousands of runs will provide the PM with a different “simulation” of the duration or the total cost, etc. By statistically analyzing the thousands of results, the PM can arrive at a robust and reliable estimate. Proprietary Add On’s for Monte Carlo Simulation in Microsoft Project are available. However, it is easy, free and more flexible to use native Microsoft functions to carry out the full simulation. The talk covered all the steps needed for such simulations giving several examples
Mumbai University M.E computer engg syllabusShini Saji
The document outlines the revised syllabus for the Master of Engineering in Computer Engineering program at the University of Mumbai, effective from the 2012-2013 academic year. The program structure is presented across 4 semesters and includes courses in advanced algorithms, parallel computing, operating systems, cyber security, electives, seminars, and dissertation work. Details are provided on the teaching scheme, credit assignments, examination scheme, and syllabi for the core subjects.
This document describes a software tool called Polynomial Lattice Builder that is used to construct rank-1 polynomial lattice rules for quasi-Monte Carlo integration. It discusses the motivation for the tool, theoretical background on rank-1 polynomial lattice rules and figures of merit, an overview of the tool's features, examples of its applications, and conclusions. The tool allows users to choose parameters like the number of points, polynomial, dimension and construction method to generate optimal rank-1 polynomial lattice rules for their application.
A process to improve the accuracy of mk ii fp to cosmic charles symonsIWSM Mensura
This document presents a process to improve the accuracy of converting sizes measured using the MkII Functional Point (FP) method to sizes using the COSMIC method. Statistical analysis of 22 pairs of MkII and COSMIC size measurements showed good correlation but some outliers. A calculation method is proposed using "functional profiling" to group similar systems and determine conversion ratios based on each system's input, process, and output components. Applying this method improved the accuracy of predicted COSMIC sizes compared to a simple statistical conversion formula. The study provides new insights into the design assumptions of the COSMIC method.
Scientific calculator project in c languageAMIT KUMAR
This document describes a program developed to simulate the computational functions of a scientific calculator using C++ code. It discusses methods used to approximate common calculator functions like square root, exponential, and sine through polynomial approximations. The program aims to accurately compute results to 10 significant figures while conforming to the computational limitations of a calculator through techniques like Chebyshev polynomials, identities, and interval breakdowns. It also addresses issues that arise in transferring mathematical functions to a limited computational environment.
The document discusses linear programming (LP) and the simplex method for solving LP problems. It provides the following key points:
- LP is simpler than nonlinear programming and many problems can be formulated as LP problems.
- The simplex method provides an efficient systematic approach to solve LP problems by moving between extreme points in finite steps.
- The simplex method works by starting at an initial basic feasible solution and iteratively moving to adjacent extreme points to optimize the objective function, until an optimal solution is found.
- George Dantzig developed the simplex method in 1947 to solve military planning problems, establishing it as the most commonly used algorithm for solving LP problems.
Build systems orchestrate how human-readable source code is translated into executable programs. In a software project, source code changes can induce changes in the build system (aka. build co-changes). It is difficult for developers to identify when build co-changes are necessary due to the complexity of build systems. Prediction of build co-changes works well if there is a sufficient amount of training data to build a model. However, in practice, for new projects, there exists a limited number of changes. Using training data from other projects to predict the build co-changes in a new project can help improve the performance of the build co-change prediction. We refer to this problem as cross-project build co-change prediction.
In this paper, we propose CroBuild, a novel cross-project build co-change prediction approach that iteratively learns new classifiers. CroBuild constructs an ensemble of classifiers by iteratively building classifiers and assigning them weights according to its prediction error rate. Given that only a small proportion of code changes are build co-changing, we also propose an imbalance-aware approach that learns a threshold boundary between those code changes that are build co-changing and those that are not in order to construct classifiers in each iteration. To examine the benefits of CroBuild, we perform experiments on 4 large datasets including Mozilla, Eclipse-core, Lucene, and Jazz, comprising a total of 50,884 changes. On average, across the 4 datasets, CroBuild achieves a F1-score of up to 0.408. We also compare CroBuild with other approaches such as a basic model, AdaBoost proposed by Freund et al., and TrAdaBoost proposed by Dai et al.. On average, across the 4 datasets, the CroBuild approach yields an improvement in F1-scores of 41.54%, 36.63%, and 36.97% over the basic model, AdaBoost, and TrAdaBoost, respectively.
This document provides an overview of software defect prediction approaches from the 1970s to the present. It discusses early approaches using simple metrics like lines of code and complexity metrics. It then covers the development of prediction models using machine learning techniques like regression and classification. More recent topics discussed include just-in-time prediction models, practical applications in industry, using historical metrics from software repositories, addressing noise in data, and the feasibility of cross-project prediction. The document outlines challenges and opportunities for future work in the field of software defect prediction.
This document provides an outline and overview of approaches to software defect prediction. It discusses early approaches using simple metrics like lines of code in the 1970s and complexity metrics/fitting models in the 1980s. Prediction models using regression and classification emerged in the 1990s. Just-in-time prediction models and practical applications in industry are discussed for the 2000s. The use of history metrics from software repositories and challenges of cross-project prediction are also summarized.
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to PracticeFrederic Desprez
This document summarizes a joint workshop on workflow allocations and scheduling on Infrastructure as a Service (IaaS) platforms. It discusses using on-demand resources to more efficiently allocate workflows compared to static allocations. It proposes two algorithms, Eager and Deferred, to determine allocations within a given budget limit. Simulations using synthetic workflows showed Deferred guarantees budget constraints while Eager is faster. For small applications and budgets, Deferred is preferred. For larger applications and budgets approaching task parallelism saturation, Eager performs better. The document also discusses a prototype system using Nimbus, Phantom and DIET to deploy workflows on IaaS resources.
Professor Abhik Roychoudhury discusses automated program repair through his research project TSUNAMi. The key points discussed are:
1) TSUNAMi is a national research project in Singapore from 2015-2020 focused on developing trustworthy systems from untrusted components through techniques like vulnerability discovery, binary hardening, verification, and data protection.
2) Automated program repair aims to automatically detect and fix vulnerabilities in software. This involves techniques like syntactic and semantic repair as well as specification inference to understand intended program behavior.
3) Challenges in automated program repair include weak specifications of intended behavior, large search spaces for candidate patches, and limited applicability of existing techniques. Roychoud
Survey on Software Defect Prediction (PhD Qualifying Examination Presentation)lifove
This document provides an outline and overview of approaches to software defect prediction. It discusses early approaches using lines of code and complexity metrics from the 1970s-1980s and the development of prediction models using regression and classification in the 1990s-2000s. More recent focus areas discussed include just-in-time prediction models, practical applications of prediction, using history metrics from software repositories, and assessing cross-project prediction feasibility. The document aims to survey the field of software defect prediction.
This document discusses search-based testing and its applications in software testing. It outlines some key strengths of search-based software testing (SBST) such as being scalable, parallelizable, versatile, and flexible. It also discusses some limitations of search-based approaches for problems that require formal verification to establish properties for all possible usages. The document compares classical optimization approaches, which build solutions incrementally, to stochastic optimization approaches used in SBST, which sample solutions in a randomized way. It notes that while testing can find bugs, it cannot prove their absence. Finally, it discusses how SBST can be combined with other techniques like constraint solving and machine learning.
Understanding How is that Adaptive Cursor Sharing (ACS) produces multiple Opt...Carlos Sierra
Adaptive Cursor Sharing (ACS) is a feature available since 11g. It is enabled by default. ACS can help to generate multiple non-persistent Optimal Execution Plans for a given SQL. But it requires a sequence of events for it to get truly activated. This presentation describes what is ACS, when it is used and when it is not. Then it demonstrates ACS capabilities and limitations with a live demo.
This session is about: How Adaptive Cursor Sharing (ACS) actually works. How a bind sensitive cursor becomes bind aware. What are those "ACS buckets". How the "Selectivity Profile" works. Why sometimes your SQL becomes bind aware and why sometimes it does not. How is that ACS interacts with SQL Plan Management (SPM). These and other questions about ACS are answered in detail.
Some live demonstrations are used to illustrate the ramp-up process on ACS and how some child cursors are created then flagged as non-shareable. You will also "see" how the ACS Selectivity Profile is adapted as new executions make use of predicates with new Selectivities. ACS promotes Plan Flexibility while SPM promotes Plan Stability. Understanding how these duo interacts becomes of great value when some gentle intervention is needed to restore this delicate balance.
This session is for those Developers and DBAs that "need" to understand how things work. ACS can be seen as a back-box; or you can "look" inside and understand how it actually works. If you are curious about the ACS functionality, then this Session brings some light. Consider this session only if you are pretty familiar with Cursor Sharing, Binds, Plan Stability and Plan Flexibility.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Understanding how is that adaptive cursor sharing (acs) produces multiple opt...Enkitec
The document discusses Adaptive Cursor Sharing (ACS) in Oracle databases. ACS allows a SQL statement to have multiple optimal execution plans depending on the selectivity of bind variables. This helps avoid plan flipping that can occur with regular cursor sharing. The document explains how ACS works, how statements become bind sensitive and bind aware to take advantage of ACS, and how execution plans and rows processed are monitored to build selectivity profiles for statements.
Automated Program Repair, Distinguished lecture at MPI-SWSAbhik Roychoudhury
MPI-SWS Distinguished Lecture 2019. The talk focuses on fuzzing, symbolic execution as background technologies and compares their relative power. Then the use of such technologies for automated program repair is investigated.
This document outlines the schedule and content for an advanced econometrics and Stata training course taking place from October 17-26, 2019 in Beijing, China. The course will cover topics including single and multi-regression, hypothesis testing, panel data models, time series models, stochastic frontier analysis, data envelopment analysis, and difference-in-differences. Data envelopment analysis will be the focus of sessions 13 and 14, covering concepts such as efficiency measurement, variable returns to scale, and incorporating environmental variables.
Keynote given at the Asia Pacific Software Engineering Conference (APSEC), December 2020, on Automated Program Repair technologies and their applications.
This document discusses various software metrics that can be used for software estimation, quality assurance, and maintenance. It describes black box metrics like function points and COCOMO, which focus on program functionality without examining internal structure. It also covers white box metrics, including lines of code, Halstead's software science, and McCabe's cyclomatic complexity, which measure internal program properties. Finally, it discusses using metrics like change rates and effort adjustment factors to estimate software maintenance costs.
Using Monte Carlo Simulation in Project Estimates by Akram Najjar
The PMI Lebanon is glad to announce that Akram Najjar is the speaker for the a lecture titled “Using Monte Carlo Simulation in Project Estimates” delivered on Thursday, 28 July 2016
Lecture Outline
* Why are single point estimates unreliable and what is the alternative?
* What are distributions and how do we extract random samples from them (using Excel)? Two costing examples.
* How to setup a Monte Carlo Simulation model in a spreadsheet?
* Two PM examples (in detail)
* How to statistically analyze the thousands of runs to reach reliable estimates?
Lecture Objectives
* A Project Manager usually knows how certain parameters (such as duration, resource rates or quantities) behave. However, the PM can almost never define reliable single point estimates for these parameters. The result: many projects fail due to unreliable estimates. The alternative? The PM has to use his/her knowledge of how specific parameters behave statistically. For example, the PM knows that a specific task’s duration is distributed according to the bell shaped curve OR that another is uniformly distributed (flat variation), or triangular, or Beta-PERT, etc. The PM can then use Monte Carlo Simulation (MCS) to arrive at statistically significant and robust results. Monte Carlo Simulation (MCS) is a technique that relies on two processes. Process 1 aims at developing a spreadsheet model that calculates the critical path or the total cost, etc. The calculation is setup in a single row (or Run). This row is then duplicated a large number of times (thousands). Process 2 aims at inserting Excel functions in each of the parameters (durations, costs). In each row (or Run), such functions will provide a sample drawn from a statistical distribution that properly describes the behavior of that parameter. For example, a specific duration follows a Normal (Bell) distribution with an Average A and a Standard Deviation S. The model will then generate for each run and for that duration a different value that conforms with the bell shaped curve as defined (A and S). Each of these thousands of runs will provide the PM with a different “simulation” of the duration or the total cost, etc. By statistically analyzing the thousands of results, the PM can arrive at a robust and reliable estimate. Proprietary Add On’s for Monte Carlo Simulation in Microsoft Project are available. However, it is easy, free and more flexible to use native Microsoft functions to carry out the full simulation. The talk covered all the steps needed for such simulations giving several examples
Mumbai University M.E computer engg syllabusShini Saji
The document outlines the revised syllabus for the Master of Engineering in Computer Engineering program at the University of Mumbai, effective from the 2012-2013 academic year. The program structure is presented across 4 semesters and includes courses in advanced algorithms, parallel computing, operating systems, cyber security, electives, seminars, and dissertation work. Details are provided on the teaching scheme, credit assignments, examination scheme, and syllabi for the core subjects.
This document describes a software tool called Polynomial Lattice Builder that is used to construct rank-1 polynomial lattice rules for quasi-Monte Carlo integration. It discusses the motivation for the tool, theoretical background on rank-1 polynomial lattice rules and figures of merit, an overview of the tool's features, examples of its applications, and conclusions. The tool allows users to choose parameters like the number of points, polynomial, dimension and construction method to generate optimal rank-1 polynomial lattice rules for their application.
A process to improve the accuracy of mk ii fp to cosmic charles symonsIWSM Mensura
This document presents a process to improve the accuracy of converting sizes measured using the MkII Functional Point (FP) method to sizes using the COSMIC method. Statistical analysis of 22 pairs of MkII and COSMIC size measurements showed good correlation but some outliers. A calculation method is proposed using "functional profiling" to group similar systems and determine conversion ratios based on each system's input, process, and output components. Applying this method improved the accuracy of predicted COSMIC sizes compared to a simple statistical conversion formula. The study provides new insights into the design assumptions of the COSMIC method.
Scientific calculator project in c languageAMIT KUMAR
This document describes a program developed to simulate the computational functions of a scientific calculator using C++ code. It discusses methods used to approximate common calculator functions like square root, exponential, and sine through polynomial approximations. The program aims to accurately compute results to 10 significant figures while conforming to the computational limitations of a calculator through techniques like Chebyshev polynomials, identities, and interval breakdowns. It also addresses issues that arise in transferring mathematical functions to a limited computational environment.
The document discusses linear programming (LP) and the simplex method for solving LP problems. It provides the following key points:
- LP is simpler than nonlinear programming and many problems can be formulated as LP problems.
- The simplex method provides an efficient systematic approach to solve LP problems by moving between extreme points in finite steps.
- The simplex method works by starting at an initial basic feasible solution and iteratively moving to adjacent extreme points to optimize the objective function, until an optimal solution is found.
- George Dantzig developed the simplex method in 1947 to solve military planning problems, establishing it as the most commonly used algorithm for solving LP problems.
Build systems orchestrate how human-readable source code is translated into executable programs. In a software project, source code changes can induce changes in the build system (aka. build co-changes). It is difficult for developers to identify when build co-changes are necessary due to the complexity of build systems. Prediction of build co-changes works well if there is a sufficient amount of training data to build a model. However, in practice, for new projects, there exists a limited number of changes. Using training data from other projects to predict the build co-changes in a new project can help improve the performance of the build co-change prediction. We refer to this problem as cross-project build co-change prediction.
In this paper, we propose CroBuild, a novel cross-project build co-change prediction approach that iteratively learns new classifiers. CroBuild constructs an ensemble of classifiers by iteratively building classifiers and assigning them weights according to its prediction error rate. Given that only a small proportion of code changes are build co-changing, we also propose an imbalance-aware approach that learns a threshold boundary between those code changes that are build co-changing and those that are not in order to construct classifiers in each iteration. To examine the benefits of CroBuild, we perform experiments on 4 large datasets including Mozilla, Eclipse-core, Lucene, and Jazz, comprising a total of 50,884 changes. On average, across the 4 datasets, CroBuild achieves a F1-score of up to 0.408. We also compare CroBuild with other approaches such as a basic model, AdaBoost proposed by Freund et al., and TrAdaBoost proposed by Dai et al.. On average, across the 4 datasets, the CroBuild approach yields an improvement in F1-scores of 41.54%, 36.63%, and 36.97% over the basic model, AdaBoost, and TrAdaBoost, respectively.
This document provides an overview of software defect prediction approaches from the 1970s to the present. It discusses early approaches using simple metrics like lines of code and complexity metrics. It then covers the development of prediction models using machine learning techniques like regression and classification. More recent topics discussed include just-in-time prediction models, practical applications in industry, using historical metrics from software repositories, addressing noise in data, and the feasibility of cross-project prediction. The document outlines challenges and opportunities for future work in the field of software defect prediction.
This document provides an outline and overview of approaches to software defect prediction. It discusses early approaches using simple metrics like lines of code in the 1970s and complexity metrics/fitting models in the 1980s. Prediction models using regression and classification emerged in the 1990s. Just-in-time prediction models and practical applications in industry are discussed for the 2000s. The use of history metrics from software repositories and challenges of cross-project prediction are also summarized.
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to PracticeFrederic Desprez
This document summarizes a joint workshop on workflow allocations and scheduling on Infrastructure as a Service (IaaS) platforms. It discusses using on-demand resources to more efficiently allocate workflows compared to static allocations. It proposes two algorithms, Eager and Deferred, to determine allocations within a given budget limit. Simulations using synthetic workflows showed Deferred guarantees budget constraints while Eager is faster. For small applications and budgets, Deferred is preferred. For larger applications and budgets approaching task parallelism saturation, Eager performs better. The document also discusses a prototype system using Nimbus, Phantom and DIET to deploy workflows on IaaS resources.
Professor Abhik Roychoudhury discusses automated program repair through his research project TSUNAMi. The key points discussed are:
1) TSUNAMi is a national research project in Singapore from 2015-2020 focused on developing trustworthy systems from untrusted components through techniques like vulnerability discovery, binary hardening, verification, and data protection.
2) Automated program repair aims to automatically detect and fix vulnerabilities in software. This involves techniques like syntactic and semantic repair as well as specification inference to understand intended program behavior.
3) Challenges in automated program repair include weak specifications of intended behavior, large search spaces for candidate patches, and limited applicability of existing techniques. Roychoud
Survey on Software Defect Prediction (PhD Qualifying Examination Presentation)lifove
This document provides an outline and overview of approaches to software defect prediction. It discusses early approaches using lines of code and complexity metrics from the 1970s-1980s and the development of prediction models using regression and classification in the 1990s-2000s. More recent focus areas discussed include just-in-time prediction models, practical applications of prediction, using history metrics from software repositories, and assessing cross-project prediction feasibility. The document aims to survey the field of software defect prediction.
This document discusses search-based testing and its applications in software testing. It outlines some key strengths of search-based software testing (SBST) such as being scalable, parallelizable, versatile, and flexible. It also discusses some limitations of search-based approaches for problems that require formal verification to establish properties for all possible usages. The document compares classical optimization approaches, which build solutions incrementally, to stochastic optimization approaches used in SBST, which sample solutions in a randomized way. It notes that while testing can find bugs, it cannot prove their absence. Finally, it discusses how SBST can be combined with other techniques like constraint solving and machine learning.
Understanding How is that Adaptive Cursor Sharing (ACS) produces multiple Opt...Carlos Sierra
Adaptive Cursor Sharing (ACS) is a feature available since 11g. It is enabled by default. ACS can help to generate multiple non-persistent Optimal Execution Plans for a given SQL. But it requires a sequence of events for it to get truly activated. This presentation describes what is ACS, when it is used and when it is not. Then it demonstrates ACS capabilities and limitations with a live demo.
This session is about: How Adaptive Cursor Sharing (ACS) actually works. How a bind sensitive cursor becomes bind aware. What are those "ACS buckets". How the "Selectivity Profile" works. Why sometimes your SQL becomes bind aware and why sometimes it does not. How is that ACS interacts with SQL Plan Management (SPM). These and other questions about ACS are answered in detail.
Some live demonstrations are used to illustrate the ramp-up process on ACS and how some child cursors are created then flagged as non-shareable. You will also "see" how the ACS Selectivity Profile is adapted as new executions make use of predicates with new Selectivities. ACS promotes Plan Flexibility while SPM promotes Plan Stability. Understanding how these duo interacts becomes of great value when some gentle intervention is needed to restore this delicate balance.
This session is for those Developers and DBAs that "need" to understand how things work. ACS can be seen as a back-box; or you can "look" inside and understand how it actually works. If you are curious about the ACS functionality, then this Session brings some light. Consider this session only if you are pretty familiar with Cursor Sharing, Binds, Plan Stability and Plan Flexibility.
Similar to Constraint-Based Fault-Localization (20)
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
2. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Plan
1 Problem statement & Motivating example
2 Formalization & Algorithms
3 Experiments
4 Related Work & Conclusion
ICS 2015 CP-Based Fault-Localization Michel Rueher 2
3. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Problem statement & Motivating example
ICS 2015 CP-Based Fault-Localization Michel Rueher 3
4. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Context: program verification / debugging
Input An imperative program with numeric statements (over
integers or floating-point numbers)
An assertion to be checked
A counterexample that violates the assertion
Output Information on locations of potentially faulty statements
ICS 2015 CP-Based Fault-Localization Michel Rueher 4
5. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Fault-Localization – a major problem
• Model checking, testing
→ Generation of counterexamples:
• Input data & wrong outputs (testing)
• Input data & violated post condition / property
→ Execution trace
• Problems
• Execution trace: often lengthy and difficult to understand
• Difficult to locate the faulty statements
Debugging ⇒ difficult and time consuming
ICS 2015 CP-Based Fault-Localization Michel Rueher 5
6. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Fault-Localization – Key issues
• What paths to analyse ?
• Path from the counterexample
• Deviations from the path from the counterexample
• How to identify the suspicious program statements
• Computing Maximal sets of statements satisfying the
postcondition → Maximal Satisfiable Subset
• Computing Minimal sets of statements to withdraw
→ Minimal Correction Set ?
ICS 2015 CP-Based Fault-Localization Michel Rueher 6
7. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Example
AbsMinus.java
1 class AbsMinus {
2 / * returns | i−j | , the absolute value of i minus j * /
3 / *@ requires ( i ==0) && ( j ==1) ;
4 @ ensures ( r ==1) ;
5 @* /
6 int AbsMinusKO ( int i , int j ) {
7 int r ;
8 int k = 0;
9 i f ( i <= j ) {
10 k = k+2; / / error in assignement k = k+2 instead of k = k+1
11 }
12 i f ( k == 1 && i != j ) {
13 r = j−i ;
14 }
15 else {
16 r = i−j ;
17 }
18 return r ;
19 }
20 }
An error has been introduced in line 10
→ for the input data {i = 0, j = 1}, r =−1
ICS 2015 CP-Based Fault-Localization Michel Rueher 7
8. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Example (cont.)
CFG of AbsMinus Faulty path for {i = 0, j = 1}
→ suspicious statement: {r = i - j}
ICS 2015 CP-Based Fault-Localization Michel Rueher 8
9. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Example (cont.)
Change decision for 1st IF Change decision fort 2d IF
Post-condition is violated Post-condition holds
→ Path diversion Rejected → suspicious statements:
{cond. of 2d IF}, {k=0}, { k = k+2}
ICS 2015 CP-Based Fault-Localization Michel Rueher 9
10. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Proposed approach
• Explore the path of the counter-example and paths with at
most k deviations
• Compute sets with at most bmc suspicious statements
Bounds k and bmc are mandatory
because there are an
exponential number
of paths and sets of suspicious statements
ICS 2015 CP-Based Fault-Localization Michel Rueher 10
11. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Formalization & Algorithms
ICS 2015 CP-Based Fault-Localization Michel Rueher 11
12. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Defining suspicious statements
Aim: Provide helpful information for error localization on
numeric constraint systems:
ICS 2015 CP-Based Fault-Localization Michel Rueher 12
13. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Computing all MCS : CAMUS (Liffiton &
Sakallah-2007
ICS 2015 CP-Based Fault-Localization Michel Rueher 13
14. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
LocFaults – Overall scheme
1 Building of the CFG of a program in DSA form
2 Translating the program and its specification in a set of
numerical constraints
3 Computing bounded MCS of:
• C = CE ∪ PATH ∪ POST
CE: the counter-example
PATH : constraints of the path of CE or of a diverted path
POST: constraints of the post condition
• C = CE ∪ PATH’ ∪ POST where PATH’ is a path with at
most k deviations from the CE
→ MCS on paths “closely” related to the CE
ICS 2015 CP-Based Fault-Localization Michel Rueher 14
15. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
LocFaults – Computing diverted paths
Process for k = 1
1 Decision for 1st conditional statement is switched and
the input data of CE are propagated → new path P’
Iff the CSP of P’ is satisfiable, MCS are computed for P’
2 The process is restarted and the decision of the next
conditional statement of P is switched (only one
decision is changed on the whole path)
Process for k > 1
• A conditional node n is marked with the number of
successful switches done on the current path before
reaching n
• At step l, decision for a node marked l is only diverted
iff I < l
ICS 2015 CP-Based Fault-Localization Michel Rueher 15
16. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
LocFaults – Computing MCS for diverted paths
• Let be :
• P, a path generated by the propagation of CE and by k
decision switches of conditional statements
cond1, .., condk
• C, the constraints of P, and Ck, the constraints generated
by the assignments occurring before condk along Pk
If C ∪ POST holds:
• {¬cond1, .., ¬condk} is a potential correction,
• The MCS of Ck ∪ {¬cond1, .., ¬condk} are potential
corrections
Note: {¬cond1, .., ¬condk } is a ”hard” constraint
ICS 2015 CP-Based Fault-Localization Michel Rueher 16
17. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Computing MCS for diverted paths – Example
CE: {i = 0, j = 1}
cond1 : ¬(k1 = 1 & i = j)
Pk: path in blue
Ck ∪ ¬cond1 : k0 = 0 ∧ k1 = k0 + 2 ∧
¬((k1 = 1 & i = j))
Potential corrections:
{k0 = 0}, {k = k + 2}, {k = 1 & i = j}
ICS 2015 CP-Based Fault-Localization Michel Rueher 17
18. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments
ICS 2015 CP-Based Fault-Localization Michel Rueher 18
19. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Systems and tools
• LocFaults:
→ CPBPV (Constraint-Programming Framework for Bounded
Program Verification) to generate the CFG and CE
→ CP solver of IBM ILOG CPLEX
• BugAssist (Rupak Majumdar and Manu Jose):
→ CBMC
→ MaxSAT solver MSUnCore2
ICS 2015 CP-Based Fault-Localization Michel Rueher 19
20. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Benchmarks
• TCAS :
• Aircraft collision avoidance system
• 173 lines of C code with almost no arithmetic operations
• The suite contains 41 faulty versions
• Tritype
Input: three positive integers, the triangle sides
Output:
• value 2 if the inputs correspond to an isosceles triangle
• value 3 if the inputs correspond to an equilateral triangle
• value 1 if the inputs correspond to a scalene triangle
• value 4 otherwise.
ICS 2015 CP-Based Fault-Localization Michel Rueher 20
21. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Results on TCAS suite
• Computation times: no significant difference
• At most one deviation required except for version V41 ( 2
deviations required)
• Size of the set of suspicious instructions identified : in
general larger for BUGASSIST than for LOCFAULTS
• BUGASSIST identifies a bit more errors than
LOCFAULTS
• LOCFAULTS reports a set of MCS for each faulty path
→ error localization process is much more easier than with the
single set of suspicious errors reported by BUGASSIST
ICS 2015 CP-Based Fault-Localization Michel Rueher 21
22. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Error on Tritype
• TritypeV1 : error in the last assignment of the program
• TritypeV2 : error in a nested condition, just before the last
assignment
• TritypeV3 : the error is an assignment and will entail a bad
branching
• TritypeV4: error in condition, at the beginning of the
program
• TritypeV5 : two wrong conditions in this program
• TritypeV6 : a variation that returns the perimeter of the
triangle
• TritypeV7 : a variation that returns the product of the 3
sides
• TritypeV8 : a variation that computes the square of the
surface of the triangle by using Heron’s formula
ICS 2015 CP-Based Fault-Localization Michel Rueher 22
24. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Results on Tritype (cont.)
P CE E
LocFaults
BugAssist
0 1
V7 {i = 2, j = 1, 58 {58}
{31}
{72, 37, 53,
{37},{27},{32}
49, 29, 35,
32, 31, 28,
k = 2} 65, 34, 62}
V8 {i = 3, j = 4, 61 {61}
{29}
{19,61,79,
{35},{30},{25}
35, 27, 33,
30, 42, 29,
26, 71, 32,
k = 3} 48, 51, 54}
Suspicious statements on Tritype V8 – V9
ICS 2015 CP-Based Fault-Localization Michel Rueher 24
25. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Experiments - Results on Tritype (cont.)
Program
LocFaults BugAssist
P
L
P L
= 0 ≤ 1 ≤ 2 ≤ 3
TritypeV7 0, 722s 0, 051s 0, 112s 0, 119s 0, 144s 0, 140s 20, 373s
TritypeV8 0, 731s 0, 08s 0, 143s 0, 156s 0, 162s 0, 216s 25, 562s
Computation times for non linear Trityp programs (V8 – V9)
ICS 2015 CP-Based Fault-Localization Michel Rueher 25
26. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Related Work & Conclusion
ICS 2015 CP-Based Fault-Localization Michel Rueher 26
27. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Related Work
• BugAssist:
+ Global approach based on MaxSat
- Merges the complement of MaxSat in a single set of
suspicious statements
- Not efficient for programs with numeric statements
• System based on ranking of suspicious statements
(Tarantula, Ochiai, AMPLE Debugging JUnit Tests in
Eclipse, Jaccard,...)
+ Easy to implement
- Require a huge number of test case and an accurate
Oracle
ICS 2015 CP-Based Fault-Localization Michel Rueher 27
28. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Conclusion
• Flow-based and incremental approach
→ locates the errors around the path of the
counter-example
• Constraint-based framework
→ well adapted for handling arithmetic operations
→ can be extended in straightforward way for handling
programs with floating-point numbers computations
ICS 2015 CP-Based Fault-Localization Michel Rueher 28
29. Draft
Problem statement & Motivating example Formalization & Algorithms Experiments Related Work & Conclusion
Further Work: Improving constraint solving
process
• Adding redundant constraints
res = s*(s-i)*(s-j);
→ res ≥ s, res ≥ (s-i), res ≥ (s-j)
• Combining symbolic simplification with CSP filtering
techniques
res = s*(s-i)*(s-j)*(s-i);
→ identifying the square expression
ICS 2015 CP-Based Fault-Localization Michel Rueher 29