浅谈软件开发工具的成本核算问题.doc
浅谈软件开发工具的成本核算问题 在 20 世纪 60 年代和 70 年代中软件开发方法,最恰当的描述是手工技艺,即每个项目都使用定制的过程和工具。到了 20 世纪 80 年代和 90 年代,软件业成熟了并且变得更具工程规范。然而,这个时期的软件项目仍然主要是研究密集型的,由人类的创造力和规模不经济所统治。所谓的软件规模不经济是指工作量和规模的关系,与大多数制造过程相反,所构造的软件越多,软件的单位花费越多。要想使软件业迅速向着以自动化和规模经济为主流的更加产品密集型的方向发展,建设高效的软件开发环境是必不可少的。 一、软件开发环境的定义 现在,许多软件企业集中精力通过软件能力成熟度的改进工作,来促进软件管理的可视性和可测量性,并在产品质量、上市时间、投资回报及生产率方面提高软件业务的性能。要使现代软件开发项目运作良好,过程定义和相当程度的过程自动化工具的使用是不可缺少的。软件开发环境不仅包括软件开发工具,而且也包括软件开发过程。软件开发过程是人们由于开发和维护软件及其相关产品(例如项目计划、设计文档、代码、测试用例和用户手册等等)的一组规程和方法,就如硬件生产的流水线。软件开发工具是软件开发过程中使用的直接开 发工具和支持管理工具,它包括规划工具、需求管理工具、可视化建摸工具、编译器、编辑器、调试器和质量保证分析工具、测试工具和用户界面制作工具。如果软件产品的产生是通过一定成熟度的软件开发过程而获得,并在该过程中使用了自动化的开发工具,软件产品的质量、成本和所花费的时间是可以预测的,从而才可能实现其他制造业所具有的规模经济。 二、软件开发环境的重要性 软件开发环境的主要贡献是使低效的、易出错的手工任务得以自动完成。自动化和高效的软件开发环境对软件开发的生产力具有正比线性的效应。通常可以使开发效率提高 20%到 40%.项目经验表明,一个高度集成化的环境,无论是对推动还是加强过程的管理控制都是必要的。一个过程自动化的环境,不仅可以改进生产力,还可以提高软件质量,加速现代技术的吸收过程。一个支持增量式编译、自动化构造和集成化的回归测试的环境,可以为迭代式开发提供快速循环的支持,并可以使开发群组更加自由地进行迭代。健壮的集成化的开发环境必须支持开发过程的自动化。这个环境应当具备需求管理、文档自动化、宿主 /目标机编程工具、自动的回归测试、持续的和集成的变更管理,以及特性