影响软件估计准确度的因素有哪些?
有效的计划基于准确的估计。
估计的准确度是受各方面因素影响的。
一般来说,影响估计的因素可以归纳为以下六个方面:
产品的特点
每一个待开发的软件产品,它的规模、复杂度以及可靠性和安全性等方面的需求都是不同的。而这些因素会严重地影响开发和测试的工作量。
因此,针对不同产品的特点,在估算工作量的时候需要区别对待。
产品质量需求
显然有着高质量需求的软件产品所需要的工作量会远高于低质量需求的软件产品。
质量属性分为功能性、易用性、可靠性、效率、可维护性、可移植性等6种因素。每个软件对于这6种质量属性都会有各自不同的要求,这也决定了所需的工作量是不同的。
质量控制水平
软件开发过程是一个有继承性的,连续的过程。后续的软件开发活动要以前面的完成的工作产品作为基础开展的,所以这些工作产品的质量也会影响估算。一方面这些工作产品的质量低下,会影响到后续的开发活动,比如:
开发文档的质量:是指在开发过程中输出的相关文档的质量,如需求规格说明、概要设计说明、详细规格说明等。这些文档反映了需求和设计的质量。如果这些文档的质量低下,软件就会存在很多缺陷,就会发生很多次变更,从而严重影响工作量。
测试文档的质量:一方面开发文档的质量会影响测试文档的质量,另一方面,测试文档的质量也会影响后续的测试执行的质量。
软件代码的质量:开发文档的质量和开发人员的能力水平会影响软件代码的质量。如果不重视单元测试,代码的质量会更加糟糕。糟糕的代码质量意味着其中存在较多的缺陷,从而会后续测试的工作量。
另一方面,如果对这些工作产品就有较高的质量要求,那么同样也需要更多的工作量。
项目参与者
项目参与者包括项目系统人员、开发人员、测试人员以及管理人员等,这些人的能力水平也是影响估算的重要因素。高水平的人员会带来较高的开发效率。反之低水平的人员会需要更多的工作量。
过程成熟度
过程成熟度也是影响估计的又一个重要因素,具体表现在:
较高的过程成熟度会带来较高的工作产品的质量,从而减少变更和返工。
成熟度较高的过程会提供一些有用的组织级别的度量数据,而这些度量数据是估计的重要输入。
交付物
不同的软件项目可能会有不同的产品交付要求。比如有的软件要求交付产品规格说明、软件版本说明、质量保证报告和配置管理报告。不同的交付要求会带来不同的工作量需求。
这6个方面影响软件估计的因素,从某种角度来说就是软件估计的假设。
那些不知道估计假设应该写什么的项目经理,不妨从这几个方面考虑。
这正是:
影响估计六因素,估计之前要记住
估计假设也是它,估计思路要清楚
参考书目:软件测试管理,作者:郑文强,马均飞,出版社:电子工业出版社