No abstract available.
Parallel Randomized State-Space Search
Model checkers search the space of possible program behaviors to detect errors and to demonstrate their absence. Despite major advances in reduction and optimization techniques, state-space search can still become cost-prohibitive as program size and ...
Sequential Circuits for Relational Analysis
The Alloy tool-set has been gaining popularity as an alternative to traditional manual testing and checking for design correctness. Alloy uses a first-order relational logic for modeling designs. The Alloy Analyzer translates Alloy formulas for a given ...
A Sound Assertion Semantics for the Dependable Systems Evolution Verifying Compiler
The Verifying Compiler (VC) project is a core component of the Dependable Systems Evolution Grand Challenge. The VC offers the promise of automatically proving that a program or component is correct, where correctness is defined by program assertions. ...
Behaviour Model Synthesis from Properties and Scenarios
Synthesis of behaviour models from software development artifacts such as scenario-based descriptions or requirements specifications not only helps significantly reduce the effort of model construction, but also provides a bridge between approaches ...
Feature Oriented Model Driven Development: A Case Study for Portlets
Model Driven Development (MDD) is an emerging paradigm for software construction that uses models to specify programs, and model transformations to synthesize executables. Feature Oriented Programming (FOP) is a paradigm for software product lines where ...
Matching and Merging of Statecharts Specifications
Model Management addresses the problem of managing an evolving collection of models, by capturing the relationships between models and providing well-defined operators to manipulate them. In this paper, we describe two such operators for manipulating ...
Regression Test Selection for AspectJ Software
As aspect-oriented software development gains popularity, there is growing interest in using aspects to implement cross-cutting concerns in object-oriented systems. When aspect-oriented features are added to an object-oriented program, or when an ...
Feedback-Directed Random Test Generation
We present a technique that improves random test generation by incorporating feedback obtained from executing test inputs as they are created. Our technique builds inputs incrementally by randomly selecting a method call to apply and finding arguments ...
Compatibility and Regression Testing of COTS-Component-Based Software
Software engineers frequently update COTS components integrated in component-based systems, and can often chose among many candidates produced by different vendors. This paper tackles both the problem of quickly identifying components that are ...
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
Detecting code clones has many software engineering applications. Existing approaches either do not scale to large code bases or are not robust against minor code modifications. In this paper, we present an efficient algorithm for identifying similar ...
Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder
The increasing performance-price ratio of computer hardware makes possible to explore a distributed approach at code clone analysis. This paper presents D-CCFinder, a distributed approach at large-scale code clone analysis. D-CCFinder has been ...
Using Server Pages to Unify Clones in Web Applications: A Trade-Off Analysis
Server page technique is commonly used for implementing web application user interfaces. Server pages can represent many similar web pages in a generic form. Yet our previous study revealed high rates of repetitions in web applications, particularly in ...
Automated Inference of Pointcuts in Aspect-Oriented Refactoring
Software refactoring is the process of reorganizing the internal structure of code while preserving the external behavior. Aspect-Oriented Programming (AOP) provides new modularization of software systems by encapsulating crosscutting concerns. Based on ...
A Formal Framework for Automated Round-Trip Software Engineering in Static Aspect Weaving and Transformations
We present a formal framework for a recently introduced approach to Automated Round-trip Software Engineering (ARE) in source-level aspect weaving systems. Along with the formalization we improve the original method and suggest a new concept of weaving ...
Identifying Feature Interactions in Multi-Language Aspect-Oriented Frameworks
The simultaneous use of multiple aspect languages has the potential of becoming a significant one, as new aspect-oriented frameworks are developed and existing ones expand to incorporate features of others. A key challenge in combining multiple aspect-...
Tracking Code Clones in Evolving Software
Code clones are generally considered harmful in software development, and the predominant approach is to try to eliminate them through refactoring. However, recent research has provided evidence that it may not always be practical, feasible, or cost-...
Do Maintainers Utilize Deployed Design Patterns Effectively?
One claimed benefit of deploying design patterns is facilitating maintainers to perform anticipated changes. However, it is not at all obvious that the relevant design patterns deployed in software will invariably be utilized for the changes. Moreover, ...
OPIUM: Optimal Package Install/Uninstall Manager
Linux distributions often include package management tools such as apt-get in Debian or yum in RedHat. Using information about package dependencies and conflicts, such tools can determine how to install a new package (and its dependencies) on a system ...
Modeling Product Line Architectures through Change Sets and Relationships
The essence of any modeling approach for product line architectures lies in its ability to express variability. Existing approaches do so by explicitly specifying variation points inside the architectural specification of the entire product line, ...
On Accurate Automatic Verification of Publish-Subscribe Architectures
The paper presents a novel approach based on Bogor for the accurate verification of applications based on Publish- Subscribe infrastructures. Previous efforts adopted standard model checking techniques to verify the application behavior, but they ...
Supporting Heterogeneous Architecture Descriptions in an Extensible Toolset
Many architecture description languages (ADLs) have been proposed to model, analyze, configure, and deploy complex software systems. To face this diversity, extensible ADLs (or ADL interchange formats) have been proposed. These ADLs provide linguistic ...
Adaptive Online Program Analysis
Analyzing a program run can provide important insights about its correctness. Dynamic analysis of complex correctness properties, however, usually results in significant run-time overhead and, consequently, it is rarely used in practice. In this paper, ...
Exception-Chain Analysis: Revealing Exception Handling Architecture in Java Server Applications
Although it is common in large Java programs to rethrow exceptions, existing exception-flow analyses find only single exception-flow links, thus are unable to identify multiple-link exception propagation paths. This paper presents a new static analysis ...
Path-Sensitive Inference of Function Precedence Protocols
Function precedence protocols define ordering relations among function calls in a program. In some instances, precedence protocols are well-understood (e.g., a call to pthread mutex init must always be present on all program paths before a call to ...
GoalDebug: A Spreadsheet Debugger for End Users
We present a spreadsheet debugger targeted at end users. Whenever the computed output of a cell is incorrect, the user can supply an expected value for a cell, which is employed by the system to generate a list of change suggestions for formulas that, ...
A Technique for Enabling and Supporting Debugging of Field Failures
It is difficult to fully assess the quality of software inhouse, outside the actual time and context in which it will execute after deployment. As a result, it is common for software to manifest field failures, failures that occur on user machines due ...