High-level answer
For perfective maintenance, it seems that the objective should be for the cost of the change in the implementation to be proportional to the cost of the change in the specification (design)
- Ex: Allowing dates for the year 2000 is (at most) a small specification change
- Ex: Adding call forwarding is a more complicated specification change