Pricing and Contract Design for Software Products in the Presence of Requirements Change