Design By Contract Using JMSAssert. Design By Contract A method of separating the concerns of the user and implementer of the class, and giving both enough.