Когда кардинально изменился сценарий использования — тогда поменялась программа. Если код был переписан двадцать раз, три раза делался редизайн интерфейса, но сценарий использования остался неизменным — это одна и та же программа, как бы не хотелось разработчикам утверждать обратное.