1,858 research outputs found
Evaluating defect prediction approaches: a benchmark and an extensive comparison
Reliably predicting software defects is one of the holy grails of software engineering. Researchers have devised and implemented a plethora of defect/bug prediction approaches varying in terms of accuracy, complexity and the input data they require. However, the absence of an established benchmark makes it hard, if not impossible, to compare approaches. We present a benchmark for defect prediction, in the form of a publicly available dataset consisting of several software systems, and provide an extensive comparison of well-known bug prediction approaches, together with novel approaches we devised. We evaluate the performance of the approaches using different performance indicators: classification of entities as defect-prone or not, ranking of the entities, with and without taking into account the effort to review an entity. We performed three sets of experiments aimed at (1) comparing the approaches across different systems, (2) testing whether the differences in performance are statistically significant, and (3) investigating the stability of approaches across different learners. Our results indicate that, while some approaches perform better than others in a statistically significant manner, external validity in defect prediction is still an open problem, as generalizing results to different contexts/learners proved to be a partially unsuccessful endeavo
On porting software visualization tools to the web
Software systems are hard to understand due to the complexity and the sheer size of the data to be analyzed. Software visualization tools are a great help as they can sum up large quantities of data in dense, meaningful pictures. Traditionally, such tools come in the form of desktop applications. Modern web frameworks are about to change this status quo, as building software visualization tools as web applications can help in making them available to a larger audience in a collaborative setting. Such a migration comes with a number of promises, perils, and technical implications that must be considered before starting any migration process. In this paper, we share our experiences in porting two such tools to the web and provide guidelines about the porting. In particular, we discuss promises and perils that go hand in hand with such an endeavor and present a number of technological alternatives that are available to implement web-based visualization
LOCALIZED OSCILLATIONS IN DIFFUSIVELY COUPLED CYCLIC NEGATIVE FEEDBACK SYSTEMS
Oscillations in networks composed of Cyclic Negative Feedback systems (CNF systems) are widely used to mimic many periodic phenomena occurring in systems biology. In particular, the possible coexistence of different attractors permits to suitably describe the differentiating processes arising in living cells. The aim of the manuscript is to characterize, through a spec- tral based technique, the complex global dynamical behaviors emerging in arrays of diffusively coupled CNF systems
Adaptive Multi-Priority Rule Approach To Control Agile Disassembly Systems In Remanufacturing
End-of-Life (EOL) products in remanufacturing are prone to a high degree of uncertainty in terms of product quantity and quality. Therefore, the industrial shift towards a circular economy emphasizes the need for agile and hybrid disassembly systems. These systems feature a dynamic material flow. Besides that, they combine the endurance of robots with the dexterity of human operators for an effective and economically reasonable EOL-product treatment. Moreover, being reconfigurable, agile disassembly systems allow an alignment of their functional and quantitative capacity to volatile production programs. However, changes in both the system configuration and the production program to be processed call for adaptive approaches to production control. This paper proposes a multi-priority rule heuristic combined with an optimization tool for adaptive re-parameterization. First, domain-specific priority rules are introduced and incorporated into a weighted priority function for disassembly task allocation. Besides that, a novel metaheuristic parameter optimizer is devised to facilitate the adaption of weights in response to evolving requirements in a reasonable timeframe. Different metaheuristics such as simulated annealing or particle swarm optimization are incorporated as black-box optimizers. Subsequently, the performance of these metaheuristics is meticulously evaluated across six distinct test cases, employing discrete event simulation for evaluation, with a primary focus on measuring both speed and solution quality. To gauge the efficacy of the approach, a robust set of weights is employed as a benchmark. Encouragingly, the results of the experimentation reveal that the metaheuristics exhibit a notable proficiency in rapidly identifying high-quality solutions. The results are promising in that the metaheuristics can quickly find reasonable solutions, thus illustrating the compelling potential in enhancing the efficiency of agile disassembly systems
Adaptive Multi-Priority Rule Approach To Control Agile Disassembly Systems In Remanufacturing
End-of-Life (EOL) products in remanufacturing are prone to a high degree of uncertainty in terms of product quantity and quality. Therefore, the industrial shift towards a circular economy emphasizes the need for agile and hybrid disassembly systems. These systems feature a dynamic material flow. Besides that, they combine the endurance of robots with the dexterity of human operators for an effective and economically reasonable EOL-product treatment. Moreover, being reconfigurable, agile disassembly systems allow an alignment of their functional and quantitative capacity to volatile production programs. However, changes in both the system configuration and the production program to be processed call for adaptive approaches to production control. This paper proposes a multi-priority rule heuristic combined with an optimization tool for adaptive re-parameterization. First, domain-specific priority rules are introduced and incorporated into a weighted priority function for disassembly task allocation. Besides that, a novel metaheuristic parameter optimizer is devised to facilitate the adaption of weights in response to evolving requirements in a reasonable timeframe. Different metaheuristics such as simulated annealing or particle swarm optimization are incorporated as black-box optimizers. Subsequently, the performance of these metaheuristics is meticulously evaluated across six distinct test cases, employing discrete event simulation for evaluation, with a primary focus on measuring both speed and solution quality. To gauge the efficacy of the approach, a robust set of weights is employed as a benchmark. Encouragingly, the results of the experimentation reveal that the metaheuristics exhibit a notable proficiency in rapidly identifying high-quality solutions. The results are promising in that the metaheuristics can quickly find reasonable solutions, thus illustrating the compelling potential in enhancing the efficiency of agile disassembly systems
DENIM:Exploring Data Access in Microservices
Adopted by companies such as Netflix, Amazon, and Spotify, the microservices architectural style is now well established. Aimed at facilitating software evolution, it is renowned for modularizing a software system into microservices, implemented in various technologies. Regarding databases, practitioners opt for polyglot persistence: Each microservice is responsible for its own database(s). This influences how the architecture is implemented. The decoupling and heterogeneity of microservices and their databases spread data access points throughout the codebase, complicating program comprehension and code-data co-evolution. Developers’ feedback reveals their struggles to obtain a holistic view of data access in such architectures. We present DENIM, a tool that enables users to identify data access points in microservices and visualize them in an interactive treemap. Using real microservice applications, we illustrate how this tool can be used for software evolution tasks
- …
