design-by-contract

Design by Contract library (interface) thoughts?

I am looking at design by contract for a Java library, this what I came up with so far in terms of the interface. The user could call executeContract and executeContract invokes invokeContract after calling 'require'. ensure is called after executeContract to ensure the correctness of what is returned by invokeContract. This code also...

What tooling do you use to do Design by Contract?

I used to use Microsoft CodeContracts for three weeks and now half of my code is just contracts. I have dozens of unproved places, I cannot use runtime-check because IL rewrite prevents coverage tool to show something and compile time is less then acceptable. I do not like this. And seems now is a good time to ask a help. What tooling ...

What are the best practices for Design by Contract programming.

What are the best practices for Design by Contract programming. At college I learned the design by contract paradigma (in an OO environment) We've learned three ways to tackle the problem : 1) Total Programming : Covers all possible exceptional cases in its effect (cf. Math) 2) Nominal Programming : Only 'promises' the right effects ...

Design by Contract in C for use in Automated Theorem Proving

Hello; I'm working on a couple of C projects and I'd like to use automated theorem proving to validate the code. Ideally I'd just like to use the ATP to validate the functions contracts. Is there any functionality in C/gcc or external software/packages/etc that would enable design-by-contract style coding? If not then thats just incen...

Argument checking or Design-by-Contract in java (GWT). Where to start?

I am playing GWT. I am looking for basic argument checking. I do not require invariants or result ensures. What I am interested about it best practises on the topic. For example, in c# I use one of this options: if (arg1 != null) throw new ArgumentNulException....; // Official for public API; Args.NotNull(arg1); // Home grown. Contr...

ReSharper - Possible Null Assignment when using Microsoft.Contracts

Is there any way to indicate to ReSharper that a null reference won't occur because of Design-by-Contract Requires checking? For example, the following code will raise the warning (Possible 'null' assignment to entity marked with 'NotNull' attribute) in ReSharper on lines 7 and 8: private Dictionary<string, string> _Lookup = new Dictio...

How does .NET 4.0's design by contract compare to Eiffel?

I had the "pleasure" to be taught Eiffel at college by none other than Bertrand Meyer himself and just read that .NET 4.0 will include design by contract. Can anyone with some insight elaborate on how powerful this will be compared to Eiffel's existing feature set? Will contracts for interfaces be supported? ...

Microsoft Contracts: Assembly load resulted in metadata import warning

I'm trying to learn my way around the Microsoft Code Contracts libraries, and I have the following simple function: internal static Engine CreateBuildEngine(Microsoft.Build.Framework.ILogger logger) { Contract.Requires( logger != null ); var engine = new Engine { DefaultToolsVersion = "3.5" }; engine.RegisterLogger(logger);...

How do I know which contract failed with Python's contract.py?

I'm playing with contract.py, Terrence Way's reference implementation of design-by-contract for Python. The implementation throws an exception when a contract (precondition/postcondition/invariant) is violated, but it doesn't provide you a quick way of identifying which specific contract has failed if there are multiple ones associated w...

Combining nosetests with contracts for Python

I'm using contracts for Python to specify preconditons/postconditions/invariants. I'm also using doctests for doing unit testing. I'd like to have all of my doctest unit tests run with contracts enabled, and I'd like to run my tests using nose. Unfortunately, if I run the tests with nose, it does not execute the pre/post/invariant asse...

A good Design-by-Contract library for Java?

A few years ago, I did a survey of DbC packages for Java, and I wasn't wholly satisfied with any of them. Unfortunately I didn't keep good notes on my findings, and I assume things have changed. Would anybody care to compare and contrast different DbC packages for Java? ...

Design by Contract in C++?

Is that any library that aids in implementing design by contract principle in c++ application. EDIT: Looking for much better than ASSERT something like this ...

Design by Contract: Can you have an Interface with a Protocol?

Hi all, I'm pretty new to the concept of Design by Contract, but so far, I'm loving how easy it makes it to find potential bugs. However, I've been working with the Microsoft.Contracts library (which is pretty great,) and I have run into a road block. Take this simplified example of what I'm trying to do: public enum State { NotReady...

Can Microsoft.Contracts' static checker be used without Team System?

Aside from the requirement on Visual Studio Team System to be able to install Microsoft.Contacts with the static checker, is it possible to run the static checker without team system? Or, does it depend on an API exposed by studio's team system components? Also, is it within the license to copy the static checker from a computer with ...

Are preconditions and postconditions needed in addition to invariants in member functions if doing design by contract?

I understand that in the DbC method, preconditions and postconditions are attached to a function. What I'm wondering is if that applies to member functions as well. For instance, assuming I use invariants at the beginning at end of each public function, a member function will look like this: edit: (cleaned up my example) void Charcoa...

What does it take to prove this Contract.Requires?

I have an application that runs through the rounds in a tournament, and I am getting a contract warning on this simplified code structure: public static void LoadState(IList<Object> stuff) { for(int i = 0; i < stuff.Count; i++) { // Contract.Assert(i < stuff.Count); // Contract.Assume(i < ...

What's the most widely-used open source project that uses design by contract?

I'm curious about how much design-by-contract is used in practice outside of the Eiffel community. Are there any active open-source projects that use design-by-contract? Or, to recast the question into one what that has a single answer: what's the most widely-used (non-Eiffel) open-source project that uses design-by-contract? ...

How do I set up Microsoft Contracts static checking in Visual Studio 2010?

I recently downloaded Visual Studio 2010b2, and wanted to re-evaluate some of my questions about the Microsoft contracts static checker. I managed to re-use most of the code by using the System.Diagnostics.Contracts namespace for the code, but I am unsure of how to enable the static checker. Do I need an additional plug-in? I was unde...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;? ...

How can I place validating constraints on my method input parameters?

Here is the typical way of accomplishing this goal: public void myContractualMethod(final String x, final Set<String> y) { if ((x == null) || (x.isEmpty())) { throw new IllegalArgumentException("x cannot be null or empty"); } if (y == null) { throw new IllegalArgumentException("y cannot be null"); } /...