In large software development projects, when a programmer is assigned a bug to fix, she typically spends a lot of time searching (in an ad-hoc manner) for instances from the past ...
B. Ashok, Joseph M. Joy, Hongkang Liang, Sriram K....
Software engineering researchers have long been interested in where and why bugs occur in code, and in predicting where they might turn up next. Historical bug-occurence data has ...
Christian Bird, Adrian Bachmann, Eirik Aune, John ...
Many testing and analysis techniques use finite state models to validate and verify the quality of software systems. Since the specification of such models is complex and timecons...
Initial system specifications, such as use-case scenarios and properties, only partially specify the future system. We posit that synthesizing partial component-level behavior mod...
Ivo Krka, Yuriy Brun, George Edwards, Nenad Medvid...
The trend towards processors with more and more parallel cores is increasing the need for software that can take advantage of parallelism. The most widespread method for writing p...
A large number of industrial concurrent programs are being designed based on a model which combines threads with event-based communication. These programs consist of several threa...
Vineet Kahlon, Nishant Sinha, Erik Kruus, Yun Zhan...
Crosscutting concerns can hinder maintainability of a design because they do not adhere to a system's underlying modular structure. Developers, therefore, may wish to refacto...
Eduardo Figueiredo, Jon Whittle, Alessandro F. Gar...
System specifications have long been expressed through automata-based languages, enabling verification techniques such as model checking. These verification techniques can assess ...
A program is reentrant if distinct executions of that program on distinct inputs cannot affect each other. Reentrant programs have the desirable property that they can be deployed...