1. At a computer system, a method for adding an executable contract to a method such that when the method is called, the executable contract is also executed to ensure that the method is called according to one or more rules specified in the contract, the method comprising: an act of receiving source code that includes a call to a method of a first class as well as a call to a method of a contract class, the contract class providing methods for ensuring that the call to the method of the first class is performed in accordance with one or more rules specified as input to the call to the method of the contract class; an act of compiling the received source code into intermediate language code that includes code for implementing the method of the first class as well as code for implementing the method of the contact class which is configured to be executed to verify that the one or more rules are met whenever the method of the first class is called and to report whether the one or more rules are met; an act of storing the intermediate language code; an act of executing the intermediate language code, wherein when the method of the first class is executed, the method of the contract class is also executed to verify whether the one or more rules are met; and an act of reporting to a user via a user interface whether the one or more rules were met during the execution of the method of the first class.
4. The method of claim 1 , further comprising an act of automatically generating documentation for the first class based on the added contract.