Over the past few years, the notion of building software from components has become popular again. The goal is to produce systems by adapting and linking off-the-shelf modules from a pool of interchangeable components. To turn this idea into reality, the formal descriptions of software components need to specify more than the type signatures of their exported services. At a minimum, they should contain assertions about critical properties of a component's behavior. By monitoring such behavioral contracts at run-time, language implementations can pinpoint faulty components, and programmers can replace them with different ones. In this paper, we study the notion of behavioral contracts in an object-oriented setting. While the use of behaviora...
Abstract. Contracts have proved a powerful concept in software engi-neering, to the point where we h...
A number of activities involved in testing software are known to be difficult and time consuming. Am...
Incorrect program changes including regression bugs, incorrect bug-fixes, incorrect feature updates ...
Abstract. Over the past few years, the notion of building software from components has become popula...
Programs should consist of off-the-shelf, interchangeable, black-box components that are produced by...
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/18...
Checking pre- and post-conditions of procedures and methods at runtime helps improve software reliab...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Reliability is even more important in object-oriented programming than elsewhere. This article shows...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Checking pre- and post-conditions of procedures and methods at runtime helps improve software reliab...
Design by contract (DbC) is a software development methodology that focuses on clearly defining the ...
Software errors often originate from incorrect changes, including incorrect program fixes, incorrect...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Abstract. Contracts have proved a powerful concept in software engi-neering, to the point where we h...
A number of activities involved in testing software are known to be difficult and time consuming. Am...
Incorrect program changes including regression bugs, incorrect bug-fixes, incorrect feature updates ...
Abstract. Over the past few years, the notion of building software from components has become popula...
Programs should consist of off-the-shelf, interchangeable, black-box components that are produced by...
This work was also published as a Rice University thesis/dissertation: http://hdl.handle.net/1911/18...
Checking pre- and post-conditions of procedures and methods at runtime helps improve software reliab...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Reliability is even more important in object-oriented programming than elsewhere. This article shows...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Checking pre- and post-conditions of procedures and methods at runtime helps improve software reliab...
Design by contract (DbC) is a software development methodology that focuses on clearly defining the ...
Software errors often originate from incorrect changes, including incorrect program fixes, incorrect...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Abstract. Contracts have proved a powerful concept in software engi-neering, to the point where we h...
A number of activities involved in testing software are known to be difficult and time consuming. Am...
Incorrect program changes including regression bugs, incorrect bug-fixes, incorrect feature updates ...