A New Method of Expressing Functional Requirements and How to Allocate Tolerance to Parts