摘要:
1.技术背景和动机完整而稳定的产品需求、高质量、低成本和快速交付市场是理想的软件开发项目所具有的四个最值得称道的特征。许多项目经理都认为,在这四个特征中,快速交付市场是最难以达到的。这是项目用户和客户最为关注的目标,而其他三个特征中任何一个的变化则对其具有决定性的影响。虽然很多因素都会对这四个特征产生影响,但是通常人们认为需求决定产品的规模,产品规模决定项目的投入,项目投入决定项目的工期。本文关注对软件开发项目工期的评估,其假设是产品投入的评估是有效的,如图1所示。 图1 –项目时间估算的通常步骤到目前为止,现有的绝大多数软件估算方法都是基于软件规模来估算项目投入。大量的相关文献给出了很多技术和方法来解决这一问题。尽管在业界中项目工期具有战略重要性,但文献中却很少关注项目投入和项目工期之间的关系。此外,许多关于项目工期模型的研究已经年代久远,并且研究中采用的数据集较小。在当今软件工程工具、技术和途径的环境中,并且拥有大数据集的情况下,人们有必要重新研究项目投入和项目工期之间的关系。可重复性是任何实验性和经验性领域所获结果一般性和有效性的关键,然而在软件工程研究中,这个原则还没有得到足够广泛的应用。市场上有许多可供选择的商业工具用来进行软件项目工期估算。尽管供应商对这些工具的精确度信誓旦旦,但是针对工具的独立研究却给出了关于精确度的不同结果。这些非决定性的试验结果并不意味着对这些模型和工具无需进行更多的研究和实践。然而它说明了软件开发项目工期的估算确实是一个很复杂的问题,应用这些模型需要更多的专业知识和经验。可靠的经验分析必须基于对大样本的观察。在过去,人们通常难以获得适当规模的关于项目工期估算的观察数据,即使是商业环境中的从业者也不例外。这些人通常进行以下工作:1) 收集历史样本,虽然这些样本的用途在短期内并不明显;2)因为私有数据库的商业化,他们为获取专业知识和技术买单。随着国际组织ISBSG(International Software Benchmarking Standards Group, www.isbsg.org) 大型开放知识库的建立,出现了另外一种选择。该组织致力于收集、确认和发布软件项目的历史生产数据。本文基于ISBSG知识库的第四版,它发布于1997年,包含了1989年到1996年间完成的396个软件项目的历史数据。2.结果总结和进一步研究基于ISBSG发布的数据集,本文的研究结果表明:(1) 投入和工期的关系不是线性的,而是在0,3-0,4之间呈指数级增长,这同其他工期模型如COCOMO是相似的。更为有趣的是,本文所采用的数据集和20年来用于开发COCOMO模型的项目并没有关系。(2) 本文中提出的工期模型表明,项目经理可以从有效的项目投入估算中得出关于项目工期的第一手估算。其他计划方法需要同工期模型(如本文中所提出的)一起使用。(3) 基于不同的项目开发平台,投入和工期之间的关系有较大的差异。基于这种考虑,为个人计算机开发软件的项目与为中型机平台或大型机平台开发软件的项目不同,而为中型机平台和大型机平台开发软件的项目中,投入和工期的关系并没有太大的区别。不过本文并不去解释这种差异存在的根本原因。(4) 在用来为较小项目(小于400人×小时)和较大项目(大于400人×小时)构造模型的样本中,没有采用统计学的方法。(5) 为模型尽可能地增加资源,可能会使项目工期产生10%以上的变化。(6) 项目工期也可以由产品规模来进行估算。然而,这种估算方法是否比基于投入来估算工期要好还有待证明。在这些结论中,某些研究主题还需开展和深化。例如,尽管软件工程方法、技术和工具稳步发展,本文提出的指数级模型与70年代和80年代早期提出的模型仍在同一个范围内,这说明研究中我们还需要更多的努力。第二个研究主题是开发和评价经验模型,从而根据给定的项目工期来估算可接受的产品规模和项目投入。最后,同其他领域(如土木工程)中的“投入-工期”进行对照,可以为软件工程的相对成熟度提供某些参考。