The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
What would have happened if I did not have any code smell? This is an interesting question that no previous study, to the best of our knowledge, has tried to answer. In this paper, we present a method for implementing a what-if scenario analysis estimating the number of defective files in the absence of smells. Our industrial case study shows that 20% of the total defective files were likely avoidable...
[Background]: There are more bugs in real-world programs than human programmers can realistically address. Several approaches have been proposed to aid debugging. A recent research direction that has been increasingly gaining interest to address the reduction of costs associated with defect repair is automatic program repair. Recent work has shown that some kind of bugs are more suitable for automatic...
Pebble game rigidity analysis is a combinatorial method, implemented in our free web server KinariWeb, for extracting protein rigidity and flexibility information without performing costly molecular dynamics simulations. Due to the idiosynchrasies of the data in the Protein Data Bank (PDB), Kinari succeeds only on a fraction of the available files. Motivated by large scale applications, aiming at...
Malawi Children's Village (MCV) operates a secondary school of approximately 560 students in Mangochi, Malawi, and its strategic goal is to add computer studies into its curriculum. The first step to achieving this goal is for MCV to establish and sustain a teachers-only computer lab. This case study examines the process by which a team of volunteers identified this as the first step, the team's recommendations...
The Internet of Things (IoT) is expected to produce several changes in the ways computer technologies influence our life and in how we interact with them. Computation embedded in interconnected “smart” devices surrounding us is composing an emerging infrastructure able to sense, infer and actuate in the world in unprecedented ways, changing businesses and our everyday life. Among the several challenges...
Program understanding plays a pivotal role in software maintenance and evolution: a deep understanding of code is the stepping stone for most software-related activities, such as bug fixing or testing. Being able to measure the understandability of a piece of code might help in estimating the effort required for a maintenance activity, in comparing the quality of alternative implementations, or even...
The number of IoT, the Internet of Things, deployments is on the rise worldwide. In particular, we are witnessing an emerging trend of smart cities all over the world. IoT requires hardware, software, integration, deployment and maintenance. Considering the complexity and burdens of the whole process of IoT activation, it is reasonable to deploy an area-scale platform to leverage IoT adoption. These...
Establishing a good model during the analysis and design phase in the process of software development, is the key for the correct implementation of system. UML (Unified Modeling Language, Unified Modeling Language) is the standard modeling language, graphically on the system analysis and design, Suitable for all stages of software life cycle. Combining vehicle administrative management system, flowing...
This work is motivated by the pervasive use of method invocations in object-oriented (OO) programs, and indeed their prevalence in patches of OO-program bugs. We propose a generate-and-validate repair technique, called ELIXIR designed to be able to generate such patches. ELIXIR aggressively uses method calls, on par with local variables, fields, or constants, to construct more expressive repair-expressions,...
The domain of Automatic Program Repair (APR) had many research contributions in recent years. So far, most approaches target fixing generic bugs in programs (e.g., off-by-one errors). Nevertheless, recent studies reveal that about 50% of real bugs require API-specific fixes (e.g., adding missing API method calls or correcting method ordering), for which existing APR approaches are not designed. In...
The quality of source code is an important stake for the construction of software. The source code quality facilitates the maintenance and the evolution of the program. In the object-oriented paradigm, a modular system is easy to maintain thanks to its components with strong cohesion and weak or low coupling. Weak coupling is among the key factor to reduce the cost and the deadline of the system developing...
Numerical software is used in a wide variety of applications including safety-critical systems, which have stringent correctness requirements, and whose failures have catastrophic consequences that endanger human life. Numerical bugs are known to be particularly difficult to diagnose and fix, largely due to the use of approximate representations of numbers such as floating point. Understanding the...
There is often more than one way to trigger a fault. Standard static and dynamic approaches focus on exhibiting a single witness for a failing execution. In this paper, we study the problem of computing a comprehensive characterization which safely bounds all failing program behavior while exhibiting a diversity of witnesses for those failures. This information can be used to facilitate software engineering...
This paper illustrates a study of sizing a large deep water PV water pumping system in Riyadh, Saudi Arabia. This system is applied on an average farm located in Riyadh which has an average water consumption of 245 m3/day. Sizing such a system has been carried out by using some useful tools such as Homer and PVsyst. A 45 m water level in a deep well needs a 5.4 kW pump, 11.6 kw PV, 6.8 kW converter...
This work presents a modern method for the diagnosis of railroad level crossing automatic signalling installations. The method proposed here is based on diagnosis diagrams designed by the authors. The diagrams cover all failure types that can occur for these types of installations. The diagrams were, then, used to create a diagnosis software package, which can rapidly and securely determine the failure...
Developers maintaining safety-critical systems need to assess the impact a proposed change would have upon existing safety controls. By leveraging the network of traceability links that are present in most safety-critical systems, we can push timely information about related hazards, environmental assumptions, and safety requirements to developers. In this work we take a design science approach to...
Providing a correct, complete, and unambiguous requirements specification is still one of the biggest challenges in software engineering. In the case of safety-critical systems, this challenge is even greater, since misinterpretations can lead to catastrophic damages to humans and to the environment. Agile development proposes minimizing the challenges in requirements specifications through short...
In large code repositories, the probability of functions to repeat across projects is high. This type of functional redundancy (FR) is desirable for recent code reuse and repair approaches. Yet, FR is hard to measure because it is closely related to program equivalence, which is an undecidable problem. This is one of the reasons most studies that investigate redundancy focus on syntactic rather than...
Programmers always fix bugs when maintaining software. Previous studies showed that developers apply repeated bug fixes—similar or identical code changes—to multiple locations. Based on the observation, researchers built tools to identify code locations in need of similar changes, or to suggest similar bug fixes to multiple code fragments. However, some fundamental research questions, such as what...
Automatic testing is a widely adopted technique for improving software quality. Software developers add, remove and update test methods and test classes as part of the software development process as well as during the evolution phase, following the initial release. In this work we conduct a large scale study of 61 popular open source projects and report the relationships we have established between...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.