多项选择题

A.诊断和改正在使用过程中发现的软件错误
B.诊断和改正在开发过程中发现的软件错误
C.根据用户需求进行软件升级
D.修改软件为将来的维护活动预先做准备
E.收集用户使用软件功能上的要求