There is a growing recognition that software, like all complex systems, evolves over a while. Business and product requirements often change as development proceeds, making a straight-line path to an end product unrealistic; tight market deadlines make...