Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Being executable parts of the code, they encourage program-mers to devote proper attention to specifications, and help maintain consistency between specification and implementation as the program evolves. The present study investigates how contracts are used in the practice of software development. Based on an extensive empirical analysis of 21 contract-equipped Eiffel, C#, and Java projects totaling more than 260 million lines of code over 7700 revisions, it explores, among other questions: 1) which kinds of contract elements (precon-ditions, postconditions, class invariants) are used more often; 2) how contracts evolve over time; 3) the relati...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Contracts are a popular tool for specifying the functional behavior of software. This paper characte...
Industrial-scale software is commonly very large and complex, making it difficult and time-consuming...
Can libraries written without explicit support for design by contract benefit from adding contracts?...
Industrial-scale software is commonly very large and complex, making it difficult and time-consuming...
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...
Over the past few years, the notion of building software from components has become popular again. T...
Software errors often originate from incorrect changes, including incorrect program fixes, incorrect...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
This report documents the program and the outcomes of Dagstuhl Seminar 22451 "Principles of Contract...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Abstract. Contracts are a form of lightweight formal specification embedded in the program text. Bei...
Contracts are a popular tool for specifying the functional behavior of software. This paper characte...
Industrial-scale software is commonly very large and complex, making it difficult and time-consuming...
Can libraries written without explicit support for design by contract benefit from adding contracts?...
Industrial-scale software is commonly very large and complex, making it difficult and time-consuming...
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...
Over the past few years, the notion of building software from components has become popular again. T...
Software errors often originate from incorrect changes, including incorrect program fixes, incorrect...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
This report documents the program and the outcomes of Dagstuhl Seminar 22451 "Principles of Contract...
Eiffel popularized design by contract, a software design philosophy where programmers specify the re...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...
Modern distributed applications typically blend new code with legacy (and possibly untrusted) third-...