一种改进异地分布式时间与成本估算的方法与流程

文档序号:14623333发布日期:2018-06-08 03:28阅读:173来源:国知局

本发明属于异地分布式软件开发技术领域,涉及COCOMOII模型的改进,具体涉及一种改进异地分布式时间与成本估算的方法。



背景技术:

早期Boehm提出的COCOMO模型只列出了影响软件开发的15个因素,对软件开发的复杂性并没有考虑周全,之后提出的COCOMOII模型列出了17个开发影响因素,但对于异地分布式软件开发的情况,仍然没有全部考虑。相对于传统的集中式软件开发方法,异地分布式软件开发方法,正逐渐流行起来,但是它所展现的一些问题,也日益明显出来。

影响异地分布式开发的时间和效率的因素,国外考虑的因素很多,但都只给出了影响因素,没有给出具体研究这些因素对工期的具体影响,有的给出影响范围,却没有给出具体影响的评估值,使得对异地分布式软件开发的时间和成本,仍然无法综合度量。由于对于异地分布式软件开发项目的时间与成本估算考虑不足,将导致无法估计的损失。



技术实现要素:

本发明的目的是提供一种改进异地分布式时间与成本估算的方法,综合考虑异地分布式软件开发的特点,改进COCOMOII模型,提出一种异地分布式软件开发时间与成本的估算方法,能够解决异地分布式软件开发时间与成本估算。

本发明所采用的技术方案是,基于改进COCOMOII模型的异地分布式时间与成本估算,其特征在于,改进COCOMOII模型,综合异地分布式软件开发的背景,综合考虑对异地分布式软件开发的时间与效率的影响因素,修改驱动因子并增加新的驱动因子。

对异地分布式软件开发中新增加的驱动因子进行评估,评估出具体的值,并修改时间与工作量的估算公式,其中根据工作量的估算能确定具体的成本。

本发明的特点:

1.改进COCOMOII模型,综合考虑对异地分布式软件开发时间与效率影响的重要因素,改变COCOMOII模型中的成本驱动因子。

2.对COCOMOII模型中成本驱动因子,根据实际情况合并或增强因子的作用,添加异地分布式软件开发环境应该有的影响因子,使得评估异地分布式软件开发的时间和成本更加合理。

附图说明

图1是本发明估算异地分布式软件开发时间与成本的流程图;

图2是DATA驱动因子取值;

图3是ACAP驱动因子取值;

图4是PCON驱动因子取值;

图5是SITE驱动因子取值;

图6是EXP驱动因子取值;

图7是TC驱动因子取值;

图8是PT驱动因子取值;

图9是PME驱动因子取值。

具体实施方式

为了满足异地分布式软件开发的需要,需要适当地筛选成本估算因子,以便更加适应软件开发环境。筛选因子应遵循三个原则如下:

(1)全局优先性原则,局性因子,去掉只在特定情况下起作用的局部因子,使得所有因子基本通用。

(2)独立性原则,去除那些与产品大小强烈相关的因子,并将那些相互关联的因子压缩成一个因子。

(3)简单性原则,一个因子还不明确或较难确定,采用最常见的取值,使得简单易用。

根据异地分布式软件开发的实际情况,对COCOMOII模型的成本驱动因子进行分析,筛选和新增加驱动因子,使得这些因素能综合考虑异地分布式软件开发的情况。

首先考虑比例因子,总共五个,分别是先例性、开发灵活性、体系结构/风险化解、团队凝聚力、过程成熟度,给予保留,原因是这五个因子是普遍软件都适合的规模经济型因子。本文对COCOMOII的改进主要是研究成本驱动因子进而估算工期。

在COCOMOII中,成本驱动因子主要体现了项目的特征和组织的差异性,对成本驱动因子的改进,本文主要在增强驱动因子、新增驱动因子上。

需要增强的成本驱动因子的研究如下:

(1)数据规模(DATA),表示生成的大量测试数据对项目工作量的影响。增强的原因在于有关软件测试时间的约束,由于开发时间短,需要测试的时间就短,对项目的工作量有重要影响。取值如图2所示。

(2)分析员能力(ACAP),表示分析和设计项目的水平。增强的原因是体系结构的适当性,容易创建分布在团队的体系结构设计,将使用更多的时间在设计阶段。取值如图3所示。

(3)人员连续性(PCON),表示项目组成员的年人员周转率。增强是由于分布式软件开发的灵活性,可以选择合格的和可用工程师来开发软件,人员的流动性很大。取值如图4所示。

(4)多站点开发(SITE),说明项目组成员地理位置分布和由此带来的交流难度,增强是由实际距离、远距离沟通。取值如图5所示。

部分软件开发项目的成本驱动因子,要根据软件开发项目的实际情况来定,所以要保留其驱动因子,保留的驱动因子研究如下:

(1)产品复杂性(CPLX),表示产品本身实现的复杂程度。由于CPLX在COCOMOII模型中划分比较详细,是不受企业规模、国情差别和环境影响的,因此作保留取标称值。

(2)软件可靠性(REPL),表示极高的可靠性对项目的影响,主要是针对大多数商业性质的软件,可靠性主要根据程序员本身的水平,对国家性的项目,对可靠性要求极高,一般商业软件主要市场是普通用户,要求不高,因此作保留取标称值。

(3)可复用性(RUSE),表示构造可在当前或未来复用的组件所需的格外工作量,由于分布式软件,人员流动性大,软件代码库的设立比较难,一般也只能满足一个项目的使用,保留为标称即可。

(4)应用经验(APEX),平台经验(PEXP)、语言与工具(LTEX),将这三个合并为一个经验因子(EXP),由于对一个人来说,这三个方面的经验可能都要具备才能胜任软件开发的工作,因此很难把他们分离开,EXP的值取三个的乘积值。取值如图6所示。

(5)程序员(PCAP),表示编程水平高低直接影响项目的工作量。这个因子在COCOMOII有详细的介绍,对于分布式软件开发也适用,因此作保留取标称值。

(6)软件工具的使用(TOOL),描述了在项目中使用软件工程生命周期管理工具的熟练程度和应用的深度。由于在真正的软件开发中,运用软件工程的生命周期的管理工具并不能做到非常熟练,很多时候使用敏捷式软件开发,并没有考虑软件申明周期的全过程,因此按实际情况估算取标称值即可。

(7)平台易变性(PVOL),描述相关的软件与硬件平台的变更频繁程度。根据不同的版本平台,进行实际情况的估算。

(8)要求的开发进度(SCED),每个软件开发对软件开发进度的度量,一般是根据实际的经验,实际使用软件工具的度量很少,但在异地分布式软件开发中,对开发进度的要求是很高的,对于预期的进度是有要求的,这里保留开发进度作为成本驱动因子。

由于COCOMOII模型中有些成本驱动因子的值是可以取消的,取消的成本因子,不太符合异地分布式软件开发的实际情况,因此取消保留一个非标标称的值。取消的驱动因子研究如下:

(1)匹配生命周期的文档编制(DOCU),它描述了在项目执行过程中文档的完备程度,由于在分布式软件开发中,多采用敏捷开发模型,要完成的文档工作量极少。

(2)执行时间的约束(TIME),它描述了强加在软件系统上执行时间的约束程度,目前由于处理器系统和计算机性能的提高,处理速度明显提高,因此对执行时间的约束可用取消。

(3)主存储时间约束(STOR),它描述了使用主存空间的大小对项目的影响,由于实际的情况可知,现在对主存空间的大小影响大小很小,因此主存储时间约束可取消。

新增的驱动因子,影响异地分布式工期与效率的因素,作为新增的成本驱动因子,这里根据影响的大小和使用PERT方法进行评估具体的值。考虑影响的范围在0到2之间,使用PERT评估出最佳值(a)、可能值(m)和悲观值(b)进行加权求平均值来计算。

EV=(a+4×m+b)/6

其中EV—均值。

团队的协作性(TC):异地分布式团队,成员之间的相互协作,考虑团队成员的实际距离和支持团队之间合作的关系,主要是交流和文化适应度影响。确定TC的驱动因子的值如图7所示。:

项目周转(PT):在分布式软件开发中有更高的周转,文化上比集中式开发更多地考虑知识的迁移去保证交流。确定PT的值如图8所示。

项目负责人经验(PME):如果项目负责人有管理分布式软件开发的经验,他/她能更好地为交流、协作和控制团队活动制定开发计划。确定PME的值如图9所示。

综上描述可得到调整后的工作量估算公式:

PM=A×SizeE×CPLX×PEPL×RUSE×EXP×PCAP×TOOL×PVOL×SCED×DATA×ACAP×PCON×SITE×TC×PT×PME

=A×SizeE×EXP×PVOL×SCED×DATA×ACAP×PCON×SITE×TC

×PT×PME

其中E=B+0.01×(PREC+FLEX+RESL+TEAM)+0.078

Size表示估算规模,单位为源代码千行数(KSLOC)。

开发时间公式如下:

TDEVNS=C×(PMNS)F

其中F=D+0.2×0.01×(PREC+FLEX+RESL+TEAM)+0.0156

=D+0.2×(E-B)

本文给出的改进COCOMOII模型,未给出A、B、C、D具体的值,只给出了基于异地分布式软件开发的计算公式和一些驱动因子的评估值。至于判断改进模型的有效性的方法,因为条件有限,不可能获得准确而大量的异地分布式软件开发的项目数据作支持。同时,对于不同背景的分布式软件开发组织,必须根据自身项目的历史数据来获得该模型中参数的具体值,对模型中参数的校正也要根据具体的历史数据进行确定。对于使用改进后的COCOMOII模型,在用于异地分布式软件开发中,只要坚持去统计具体的历史数据,进行不断的项目成本和开发时间的估量,随着项目历史数据的不断累计,会使得这个关系模型越来越有效,估算也越来越合理。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1