2,847 papers · page 107 of 143
Francisco Servant, James A. Jones
Many software-engineering tasks require developers to understand the history and evolution of source code. However, today's software-development techniques and tools are not well suited for the easy and efficient procurement of such information. In this paper, we present an appro…
Asadullah Shaikh, Uffe Kock Wiil
Model errors are a major concern in the paradigm of Model-Driven Development (MDD) because of model transformations and code generation. It is important to detect model errors before transformation as in the later stages it is harder to trace and fix such errors. Formal verificat…
David C. Shepherd, Kostadin Damevski, Bartosz Ropski, Thomas Fritz
Developers heavily rely on Local Code Search (LCS)---the execution of a text-based search on a single code base---to find starting points in software maintenance tasks. While LCS approaches commonly used by developers are based on lexical matching and often result in failed searc…
Emad Shihab, Ahmed E. Hassan, Bram Adams, Zhen Ming Jiang
Modelling and understanding bugs has been the focus of much of the Software Engineering research today. However, organizations are interested in more than just bugs. In particular, they are more concerned about managing risk, i.e., the likelihood that a code or design change will…
Janet Siegmund, André Brechmann, Sven Apel, Christian Kästner, Jörg Liebig, Thomas Leich, Gunter Saake
Program comprehension is an often evaluated, internal cognitive process. In neuroscience, functional magnetic resonance imaging (fMRI) is used to visualize such internal cognitive processes. We propose an experimental design to measure program comprehension based on fMRI. In the …
Kathryn T. Stolee, Sebastian G. Elbaum
Searching for code is a common task among programmers, with the ultimate goal of reuse. While the process of searching for code -- issuing a query and selecting a relevant match -- is straightforward, several costs must be balanced, including the costs of specifying the query, ex…
Yida Tao, Yingnong Dang, Tao Xie, Dongmei Zhang, Sunghun Kim
Software evolves with continuous source-code changes. These code changes usually need to be understood by software engineers when performing their daily development and maintenance tasks. However, despite its high importance, such change-understanding practice has not been system…
Suresh Thummalapenta, Nimit Singhania, Pranavadatta Devaki, Saurabh Sinha, Satish Chandra, Achin K. Das, Srinivas Mangipudi
In industrial practice, test cases often start out as steps described in natural language and are intended to be executed by a human. Since tests are executed repeatedly, they go through an automation process, in which they are converted to automated test scripts (or programs) th…
Nikolai Tillmann, Michal Moskal, Jonathan de Halleux, Manuel Fähndrich, Sebastian Burckhardt
Mobile devices are becoming the prevalent computing platform for most people. TouchDevelop is a new mobile development environment that enables anyone with a Windows Phone to create new apps directly on the smartphone, without a PC or a traditional keyboard. At the core is a new …
Emina Torlak
Multidimensional data models form the core of modern decision support software. The need for this kind of software is significant, and it continues to grow with the size and variety of datasets being collected today. Yet real multidimensional instances are often unavailable for t…
Willem Visser, Jaco Geldenhuys, Matthew B. Dwyer
The analysis of constraints plays an important role in many aspects of software engineering, for example constraint satisfiability checking is central to symbolic execution. However, the norm is to recompute results in each analysis. We propose a different approach where every ca…
Robert J. Walker, Shreya Rawal, Jonathan Sillito
It has been claimed that crosscutting concerns are pervasive and problematic, leading to difficulties in program comprehension, evolution, and long-term design degradation. To consider whether this theory bears out, we examine the patch history of the Mozilla project over a perio…
Xiaoyin Wang, Lu Zhang, Tao Xie, Yingfei Xiong, Hong Mei
Web applications are becoming increasingly popular nowadays. During the development and evolution of a web application, a typical type of tasks is to change the presentation of the web application, such as correcting display errors, adding user-interface controls, or changing app…
Xusheng Xiao, Amit M. Paradkar, Suresh Thummalapenta, Tao Xie
Access Control Policies (ACP) specify which principals such as users have access to which resources. Ensuring the correctness and consistency of ACPs is crucial to prevent security vulnerabilities. However, in practice, ACPs are commonly written in Natural Language (NL) and burie…
Han Xu, Oliver Creighton, Naoufel Boulila, Bernd Bruegge
Change and user involvement are two major challenges in agile software projects. As change and user involvement usually arise spontaneously, reaction to change, validation and communication are thereby expected to happen in a continuous way in the project lifecycle. We propose Ev…
Razieh Nokhbeh Zaeem, Sarfraz Khurshid
Constraint-based input generation is an effective technique for testing programs, such as compilers and web browsers, which have complex inputs. However, efficient generation of such inputs remains a challenging problem. We present a novel input generation technique that takes co…
Lingming Zhang, Miryung Kim, Sarfraz Khurshid
Keeping evolving software fault-free is hard. In our previous work, we proposed FaultTracer, a change impact and regression fault analysis tool for evolving programs. It takes the old and new versions of a program and a regression test suite as inputs, and then identifies affecte…
TinyOS applications for Wireless Sensor Networks (WSNs) typically run in a complicated concurrency model. It is difficult for developers to precisely predict the dynamic execution process of a TinyOS application by its static source codes. Such a conceptual gap frequently incurs …
Raian Ali, Carlos Solís, Mazeiar Salehie, Inah Omoronyia, Bashar Nuseibeh, Walid Maalej
Adaptation requires a system to monitor its operational context to ensure that when changes occur, a suitable adaptation action is planned and taken at runtime. The ultimate goal of adaptation is that users get their dynamic requirements met efficiently and correctly. Context cha…
Sven Apel, Jörg Liebig, Benjamin Brandl, Christian Lengauer, Christian Kästner
An ongoing problem in revision control systems is how to resolve conflicts in a merge of independently developed revisions. Unstructured revision control systems are purely text-based and solve conflicts based on textual similarity. Structured revision control systems are tailore…