论文部分内容阅读
快速演变的软件工业、规模庞大的应用系统、难以预测的软件活动以及各种各样的软件开发过程与客观环境,使得软件的生产日益复杂、管理困难。在软件危机困扰软件工业的近40年里,软件工程师们不断的寻求有效的方法来降低软件危机的发生。在这个过程中,软件测量起到了决定的作用。
软件企业虽然已经认识到软件测量与软件估算的重要性,但在实际的项目实施过程中,测量与估算依然是处于混乱状态,大约超过70%的软件企业没有成熟的软件测量过程与估算模型。因此,大多数软件开发没有为软件产品设定测量目标;不了解软件项目的构件成本;没有对自己生产的产品的质量进行量化和测量。
本文主要开展了软件工作量估算框架的研究。软件工作量估算的含义为在软件产品开发之前对其工作量做出经验的估计。
没有合理而准确的估算能力,软件项目经常会遇到如下问题:
1.软件项目人员没有可靠的依据来告诉经理、客户或销售人员:他们所提出的预算与进度是不现实的。这会导致对内部软件开发做出过分乐观的许诺,在竞争性的软件合同投标中虚报低价,最终必然导致超出限度和性能上的损害。
2.软件分析员没有可靠的依据,在分析设计阶段做出现实的权衡分析。
3.项目经理没有可靠的依据,来决定每个软件阶段和活动应该花多长时间和多大的工作量,这使经理无法确定软件是否按照计划的进度在进行。这意味着软件开发从一开始就处于一种失控的状态。
由此可知,软件估算技术是重要的。近三十年来,众多的研究成果提出了很多种估算模型如COCOMO模型,DELPHI模型等。但这些模型在真正的项目中却没有被软件企业所接受,其中主要原因就是在于估算的准确性。大多数软件企业对软件估算处于之中无知或被动的状态,他们不了解估算的基本方法,不清楚影响估算的准确性原因大部分是由于自身的原因造成的。所以要根本解决估算的尴尬处境,应该从软件企业自身出发,通过软件企业的对估算活动的参与,增加软件企业对估算过程和模型工作过程的认知度,从而提高估算的准确性。
与此同时,软件开发技术的不断变更。“软件构件化”已经成为软件开发的主流技术。但目前国内的“软件构件化”开发还存在着很多的误区,有人认为只要采取构件开发的方式就是在走“软件构件化”的道路,其实远非如此。构件的使用由于对构件的不当理解反而增加了软件企业的工作量。从而软件企业对构件提出了构件的度量需求。
正是出于这个考虑,本研究提出了“构件化软件系统工作量估算过程框架”。这个框架共分为5个层次。第一层次:构件化软件系统工作量估算因素集合的确定;第二个层次:构件化软件系统工作量估算决定因素集合的确定;第三个层次:构件化软件系统工作量估算模型的建立;第四个层次:构件化软件系统工作量估算模型的校准;第五层:获取更多的数据,使构件化软件系统工作量估算模型的不断进化。
其中,第一个层次通过深入研究了ISBSG(InternationalSoftwareBenchmarkingStandardsGroup)数据属性并进行了数据属性的筛选。同时考虑到我国构件化软件开发的现状,提出了构件可测试性的测量指标:构件可理解性、构件可观察性、构件可控制性、构件可跟踪性以及构件测试支持性。
第二个层次采用了逐步线性回归的分析方法对经验数据进行了分析。通过分析确定构件化估算决定因素集合,该因素集合包括经过筛选的ISBSG属性及构件的可测试性。
第三个层次在前两个层次的基础之上,利用贝叶斯推断,建立了工作量估算的贝叶斯估算模型。在本研究中,共提出了两个贝叶斯估算模型:贝叶斯回归模型与贝叶斯多变量正态分布模型。
第四个层次完成模型的校准。本研究在充分考虑到目前软件企业的现状,提出了小数据集合的校准方法对模型进行校准,效果是良好的。