Welcome to SIGSOFT 2006 and the Fourteenth ACM SIGSOFT Symposium on Foundations of Software Engineering.FSE is a premier conference for research in software engineering theory and practice, and the flagship conference sponsored solely by ACM SIGSOFT. FSE has traditionally been a highly selective venue, and this year was no exception. We received 125 submissions from the global software engineering research community on a wide range of topics. Each paper was reviewed by at least 3 members of the technical program committee, composed of leading researchers with a wide range of research interests and, like the authors, drawn from a vibrant world-wide research community. Based on their reviews, about 50 papers were selected for discussion during a program committee meeting held at Rutgers University. Collegial but spirited face-to-face discussion over a period of two days led to the final selection of 30 papers that you see in these proceedings.
Proceeding Downloads
Using task context to improve programmer productivity
When working on a large software system, a programmer typically spends an inordinate amount of time sifting through thousands of artifacts to find just the subset of information needed to complete an assigned task. All too often, before completing the ...
Work experience versus refactoring to design patterns: a controlled experiment
Program refactoring using design patterns is an attractive approach for facilitating anticipated changes. Its benefit depends on at least two factors, namely the effort involved in the refactoring and how effective it is. For example, the benefit would ...
Questions programmers ask during software evolution tasks
Though many tools are available to help programmers working on change tasks, and several studies have been conducted to understand how programmers comprehend systems, little is known about the specific kinds of questions programmers ask when evolving a ...
Memories of bug fixes
The change history of a software project contains a rich collection of code changes that record previous development experience. Changes that fix bugs are especially interesting, since they record both the old buggy code and the new fixed code. This ...
Failure proximity: a fault localization-based approach
Recent software systems usually feature an automated failure reporting system, with which a huge number of failing traces are collected every day. In order to prioritize fault diagnosis, failing traces due to the same fault are expected to be grouped ...
Finding failure-inducing changes in java programs using change classification
Testing and code editing are interleaved activities during program development. When tests fail unexpectedly, the changes that caused the failure(s) are not always easy to find. We explore how change classification can focus programmer attention on ...
How is aliasing used in systems software?
We present a study of all sources of aliasing in over one million lines of C code, identifying in the process the common patterns of aliasing that arise in practice. We find that aliasing has a great deal of structure in real programs and that just nine ...
Dynamic slicing long running programs through execution fast forwarding
Fixing runtime bugs in long running programs using trace based analyses such as dynamic slicing was believed to be prohibitively expensive. In this paper, we present a novel execution fast forwarding technique that makes this feasible. While a naive ...
Controlling factors in evaluating path-sensitive error detection techniques
Recent advances in static program analysis have made it possible to detect errors in applications that have been thoroughly tested and are in wide-spread use. The ability to find errors that have eluded traditional validation methods is due to the ...
Interpolation for data structures
Interpolation based automatic abstraction is a powerful and robust technique for the automated analysis of hardware and software systems. Its use has however been limited to control-dominated applications because of a lack of algorithms for computing ...
SYNERGY: a new algorithm for property checking
We consider the problem if a given program satisfies a specified safety property. Interesting programs have infinite state spaces, with inputs ranging over infinite domains, and for these programs the property checking problem is undecidable. Two broad ...
Bit level types for high level reasoning
Bitwise operations are commonly used in low-level systems code to access multiple data fields that have been packed into a single word. Program analysis tools that reason about such programs must model the semantics of bitwise operations precisely in ...
An empirical study of regression testing techniques incorporating context and lifetime factors and improved cost-benefit models
Regression testing is an important but expensive activity, and a great deal of research on regression testing methodologies has been performed. In recent years, much of this research has emphasized empirical studies, including evaluations of the ...
Exceptions and aspects: the devil is in the details
- Fernando Castor Filho,
- Nelio Cacho,
- Eduardo Figueiredo,
- Raquel Maranhão,
- Alessandro Garcia,
- Cecília Mary F. Rubira
It is usually assumed that the implementation of exception handling can be better modularized by the use of aspect-oriented programming (AOP). However, the trade-offs involved in using AOP with this goal are not well-understood. This paper presents an ...
Detecting increases in feature coupling using regression tests
Repeated changes to a software system can introduce small weaknesses such as unplanned dependencies between different parts of the system. While such problems usually go undetected, their cumulative effect can result in a noticeable decrease in the ...
Using positive tainting and syntax-aware evaluation to counter SQL injection attacks
SQL injection attacks pose a serious threat to the security of Web applications because they can give attackers unrestricted access to databases that contain sensitive information. In this paper, we propose a new, highly automated approach for ...
Local analysis of atomicity sphere for B2B collaboration
Atomicity is a desirable property for business processes to conduct transactions in Business-to-Business (B2B) collaboration. Although it is possible to reason about atomicity of B2B collaboration using the public views, yet such reasoning requires the ...
Scenarios, goals, and state machines: a win-win partnership for model synthesis
Models are increasingly recognized as an effective means for elaborating requirements and exploring designs. For complex systems, model building is far from an easy task. Efforts were therefore recently made to automate parts of this process, notably, ...
User guidance for creating precise and accessible property specifications
Property specifications concisely describe aspects of what a system is supposed to do. No matter what notation is used to describe them, however, it is difficult to represent these properties correctly, since there are often subtle, but important, ...
From multi-modal scenarios to code: compiling LSCs into aspectJ
We exploit the main similarity between the aspect-oriented programming paradigm and the inter-object, scenario-based approach to specification in order to construct a new way of executing systems based on the latter. Specifically, we show how to compile ...
Simulation-based test adequacy criteria for distributed systems
Developers of distributed systems routinely construct discrete-event simulations to help understand and evaluate the behavior of inter-component protocols. Simulations are abstract models of systems and their environments, capturing basic algorithmic ...
Testing context-aware middleware-centric programs: a data flow approach and an RFID-based experimentation
Pervasive context-aware software is an emerging kind of application. Many of these systems register parts of their context-aware logic in the middleware. On the other hand, most conventional testing techniques do not consider such kind of application ...
Carving differential unit test cases from system test cases
Unit test cases are focused and efficient. System tests are effective at exercising complex usage patterns. Differential unit tests (DUT) are a hybrid of unit and system tests. They are generated by carving the system components, while executing a ...
SMArTIC: towards building an accurate, robust and scalable specification miner
Improper management of software evolution, compounded by imprecise, and changing requirements, along with the "short time to market" requirement, commonly leads to a lack of up-to-date specifications. This can result in software that is characterized by ...
Lightweight extraction of syntactic specifications
A method for extracting syntactic specifications from heap-manipulating code is described. The state of the heap is represented as an environment mapping each variable or field to a relational expression. A procedure is executed symbolically, obtaining ...
Cited By
Recommendations
Acceptance Rates
Year | Submitted | Accepted | Rate |
---|---|---|---|
SIGSOFT '02/FSE-10 | 128 | 17 | 13% |
Overall | 128 | 17 | 13% |