单项选择题

一般认为,产生软件危机的主要原因有两个,一个是与软件开发所使用的方法有关,另一个是()

A.软件生产本身存在复杂性
B.软件生产成本高
C.需求定义易偏离用户需求
D.软件可维护性差