A dynamic programming method for product upgrade planning incorporating technology development and end-of-life decisions. (2nd January 2017)