constraint-based requirements