Constraint analysis: a design process for specifying operations on objects | Synapse