SoftContract: an assertion-based software development process that enables design-by-contract | IEEE Conference Publication | IEEE Xplore