Software Quality

January 30, 2010

Book Review of Design by Contract, by Example, by Richard Mitchell and Jim McKim

Filed under: Code Contracts, Practices — Tags: , — David Allen @ 3:00 pm
In February, I will be giving a presentation to the Minnesota Visual Studio user group. I wanted to recommend some books that would help those who are new to contract programming practices. The only book I could think of was the legendary Object-Oriented Software Construction second edition by Bertrand Meyer.  I love that book. It was my first introduction to object-oriented programming and Design by Contract. It goes into tremendous depth on a variety of programming principles that go well beyond contracts alone. Unfortunately, the book is enormous (over 1200 pages), and can be quite intimidating to some people. I believe this size and complexity make it a poor choice for the busy professional programmer who wants to learn about contract programming practices with limited training time. So I searched the Internet, and found a book, Design by Contract, by Example, by Richard Mitchell and Jim McKim.  I recommend it for anyone who wants to learn more about the principles and practices of programming with contracts. I like the fact that the book is well organized, and easily digestible (less than 250 pages).  (more…)

January 17, 2010

Code Contracts are a Great Tool to Enhance Quality and Testability of Legacy Code

Filed under: Code Contracts, Practices, Testing — Tags: , , — David Allen @ 11:48 am

The benefits of automated testing are well understood, and widely accepted as a good practice in software development in 2010. Unfortunately, in cases where we need automated testing the most, it is difficult to introduce. The best example is a large code base that is poorly constructed but important to our organization. Michael Feathers has written an excellent book Working Effectively with Legacy Code which describes the problem and how to tackle it in the real world. His book is a tremendous resource for people who wish to introduce automated testing to rotten code that lacks it.

In addition to the excellent ideas in that book, I believe code contracts can also help you achieve higher quality and greater testability. In this article I will explain how this is possible. (more…)

January 16, 2010

Presentation to Minnesota Visual Studio Users Group – February 2010

Filed under: Code Contracts — Tags: , — David Allen @ 12:11 am

This was an advance announcement. The actual presentation can be found at Presentation to Minnesota Visual Studio Users Group – February 17 2010. Topic: Microsoft Code Contracts

I will be speaking about Contract Programming with Code Contracts at the February 17, 2010 meeting of the Minnesota Visual Studio User Group ( The presentation is available at this download link.

December 18, 2009

Code Contracts improve Microsoft CRM Workflow code

Filed under: Case Study, Code Contracts — Tags: — David Allen @ 4:24 pm

Producing reliable, supportable software is hard. Providing reliability when integrating various different platforms poses even more challenges. Aggressive use of Code Contracts can substantially improve reliability, and speed the diagnosis and resolution of problems. Let’s see how the use of contracts is especially helpful when integrating custom workflow code into Microsoft CRM Workflows.


December 1, 2009

My Journey with Contract Programming

Filed under: Code Contracts — Tags: , , — David Allen @ 1:33 am

In the 1980’s, I studied Pascal, and then Modula-2, in an effort to find ways to improve reliability in software. At the time, I was very frustrated with the poor quality software. It seemed that defects were expected and accepted, producing a very frustrating experience for users.

Blog at