软件生命周期包括需求分析、程序编码、软件测试和软件运行维护等多个阶段。其中,软件运行维护阶段是持续时间最长的阶段。因为在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求,需要持续进行软件的维护和更新,以确保软件的正常运行和适应性。因此,正确答案是D。