enter search term and/or author name
Test-and-adapt: An approach for improving service interchangeability
Giovanni Denaro, Mauro Pezzè, Davide Tosi
Article No.: 28
Service-oriented applications do not fully benefit from standard APIs yet, and many applications fail to use interchangeably all the services that implement a standard service API. This article presents an approach to develop adaptation strategies...
A CPU emulator is a software system that simulates a hardware CPU. Emulators are widely used by computer scientists for various kind of activities (e.g., debugging, profiling, and malware analysis). Although no theoretical limitation prevents...
Exception handlers for healing component-based systems
Hervé Chang, Leonardo Mariani, Mauro Pezzè
Article No.: 30
To design effective exception handlers, developers must predict at design time the exceptional events that may occur at runtime, and must implement the corresponding handlers on the basis of their predictions. Designing exception handlers for...
A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization
Xiaoyuan Xie, Tsong Yueh Chen, Fei-Ching Kuo, Baowen Xu
Article No.: 31
An important research area of Spectrum-Based Fault Localization (SBFL) is the effectiveness of risk evaluation formulas. Most previous studies have adopted an empirical approach, which can hardly be considered as sufficiently comprehensive because...
Efficient program path exploration is important for many software engineering activities such as testing, debugging, and verification. However, enumerating all paths of a program is prohibitively expensive. In this article, we develop a...
Path- and index-sensitive string analysis based on monadic second-order logic
Takaaki Tateishi, Marco Pistoia, Omer Tripp
Article No.: 33
We propose a novel technique for statically verifying the strings generated by a program. The verification is conducted by encoding the program in Monadic Second-order Logic (M2L). We use M2L to describe constraints among program variables and to...
Modern software systems are built by composing components drawn from large repositories, whose size and complexity is increasing at a very fast pace. A fundamental challenge for the maintainability and the scalability of such software...
Software effort estimation as a multiobjective learning problem
Leandro L. Minku, Xin Yao
Article No.: 35
Ensembles of learning machines are promising for software effort estimation (SEE), but need to be tailored for this task to have their potential exploited. A key issue when creating ensembles is to produce diverse and accurate base models....
A web-centred approach to end-user software engineering
David Lizcano, Fernando Alonso, Javier Soriano, Genoveva Lopez
Article No.: 36
This article addresses one of the major end-user software engineering (EUSE) challenges, namely, how to motivate end users to apply unfamiliar software engineering techniques and activities to achieve their goal: translate requirements into...
Portfolio: Searching for relevant functions and their usages in millions of lines of code
Collin Mcmillan, Denys Poshyvanyk, Mark Grechanik, Qing Xie, Chen Fu
Article No.: 37
Different studies show that programmers are more interested in finding definitions of functions and their uses than variables, statements, or ordinary code fragments. Therefore, developers require support in finding relevant functions and...
Evaluating a query framework for software evolution data
Michael Würsch, Emanuel Giger, Harald C. Gall
Article No.: 38
With the steady advances in tooling to support software engineering, mastering all the features of modern IDEs, version control systems, and project trackers is becoming increasingly difficult. Answering even the most common developer questions...