多项选择题

A.软件生命周期分为计划.开发和运行3个阶段
B.在开发初期要进行可行性研究和详细设计
C.在开发后期要进行代码编写和软件测试
D.运行阶段主要是进行软件维护