4,951 papers · page 130 of 248
Emerson R. Murphy-Hill, Chris Parnin, Andrew P. Black
Much of what we know about how programmers refactor in the wild is based on studies that examine just a few software projects. Researchers have rarely taken the time to replicate these studies in other contexts or to examine the assumptions on which they are based. To help put re…
Mayur Naik, Chang-Seo Park, Koushik Sen, David Gay
We present an effective static deadlock detection algorithm for Java. Our algorithm uses a novel combination of static analyses each of which approximates a different necessary condition for a deadlock. We have implemented the algorithm and report upon our experience applying it …
Mangala Gowri Nanda, Saurabh Sinha
Null dereference is a commonly occurring defect in Java programs, and many static-analysis tools identify such defects. However, most of the existing tools perform a limited interprocedural analysis. In this paper, we present an interprocedural path-sensitive and context-sensitiv…
Yoann Padioleau, Lin Tan, Yuanyuan Zhou
Innovations from multiple directions have been proposed to improve software reliability. Unfortunately, many of the innovations are not fully exploited by programmers. To bridge the gap, this paper proposes a new approach to “listen” to thousands of programmers: studying their pr…
Nam H. Pham, Hoan Anh Nguyen, Tung Thanh Nguyen, Jafar M. Al-Kofahi, Tien N. Nguyen
Model-Driven Engineering (MDE) has become an important development framework for many large-scale software. Previous research has reported that as in traditional code-based development, cloning also occurs in MDE. However, there has been little work on clone detection in models w…
Narayan Ramasubbu, Rajesh Krishna Balan
We present the results of a three year field study of the software development process choices made by project teams at two leading offshore vendors. In particular, we focus on the performance implications of project teams that chose to augment structured, plan-driven processes t…
Derek Rayside, Zev Benjamin, Rishabh Singh, Joseph P. Near, Aleksandar Milicevic, Daniel Jackson
In an object-oriented language such as Java, every class requires implementations of two special methods, one for determining equality and one for computing hash codes. Although the specification of these methods is usually straightforward, they can be hard to code (due to subcla…
Steven P. Reiss
Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user's specifications. The key words here are specifications and generate. We let users specify what they are looking for as precisely as possible using ke…
Raúl A. Santelices, James A. Jones, Yanbing Yu, Mary Jean Harrold
Lightweight fault-localization techniques use program coverage to isolate the parts of the code that are most suspicious of being faulty. In this paper, we present the results of a study of three types of program coverage—statements, branches, and data dependencies—to compare the…
Anita Sarma, Larry Maccherone, Patrick Wagstrom, James D. Herbsleb
Software developers have long known that project success requires a robust understanding of both technical and social linkages. However, research has largely considered these independently. Research on networks of technical artifacts focuses on techniques like code analysis or mi…
Séverine Sentilles, Anders Pettersson, Dag Nyström, Thomas Nolte, Paul Pettersson, Ivica Crnkovic
The paper presents Save-IDE, an integrated development environment for the development of component-based embedded systems. Save-IDE supports efficient development of dependable embedded systems by providing tools for design of embedded software systems using a dedicated componen…
Quan Z. Sheng, Sam Pohlenz, Jian Yu, Hoi Sim Wong, Anne Hee Hiong Ngu, Zakaria Maamar
Context-aware Web services are currently emerging as an important technology for building innovative context-aware applications. Unfortunately, context-aware Web services are still difficult to build. This paper describes ContextServ, a platform for rapid development of context-a…
Thomas Thüm, Don S. Batory, Christian Kästner
Features express the variabilities and commonalities among programs in a software product line (SPL). A feature model defines the valid combinations of features, where each combination corresponds to a program in an SPL. SPLs and their feature models evolve over time. We classify…
Suresh Thummalapenta, Tao Xie
Programming languages such as Java and C++ provide exception-handling constructs to handle exception conditions. Applications are expected to handle these exception conditions and take necessary recovery actions such as releasing opened database connections. However, exception-ha…
Christoph Treude, Margaret-Anne D. Storey
Empirical research on collaborative software development practices indicates that technical and social aspects of software development are often intertwined. The processes followed are tacit and constantly evolving, thus not all of them are amenable to formal tool support. In thi…
Christoph Treude, Margaret-Anne D. Storey
Understanding the evolution of a software system requires understanding how information about the release history, non-functional requirements and project milestones relates to functional requirements on the software components. This short paper describes a new tool, called CONCE…
Xinming Wang, Shing-Chi Cheung, Wing Kwong Chan, Zhenyu Zhang
Recent techniques for fault localization leverage code coverage to address the high cost problem of debugging. These techniques exploit the correlations between program failures and the coverage of program entities as the clue in locating faults. Experimental evidence shows that …
Xiaoyin Wang, Lu Zhang, Tao Xie, Hong Mei, Jiasu Sun
Modern software applications require internationalization to be distributed to different regions of the world. In various situations, many software applications are not internationalized at early stages of development. To internationalize such an existing application, developers …
Xiaoyin Wang, Lu Zhang, Tao Xie, Hong Mei, Jiasu Sun
Software internationalization is often necessary when distributing software applications to different regions around the world. In many cases, developers often do not internationalize a software application at the beginning of the development stage. To internationalize such an ex…
Westley Weimer, ThanhVu Nguyen, Claire Le Goues, Stephanie Forrest
Automatic program repair has been a longstanding goal in software engineering, yet debugging remains a largely manual process. We introduce a fully automated method for locating and repairing bugs in software. The approach works on off-the-shelf legacy applications and does not r…