为了对软件开发过程进行有效控制,需要了解软件生命周期不同开发阶段的成本分布规律。本文通过分文章引用: 王勇, 张敬. 软件开发阶段成本分布研究[J]. 计算机科学与应用, 2017, 7(5): 428-437.
软件开发过程中合理的成本分配是促进软件项目规划的基础[1] [2] [3] [4], 做好软件项目在开发过程中的成本分配工作,有利于软件项目的成本管理和进度控制,但是与成本估算的其他研究相比,成本分配极少引起研究者的关注。软件开发阶段成本分布研究,可以提高人们对成本分配的理解[5],从而对成本进行有效控制,改善软件项目开发过程。
现有的研究中,Norden [6]认为瑞利曲线符合人员分配随着时间变化的趋势,而且发现在尾端部分的过长曲线没有实际意义。MacDonell [7]认为对于特定的开发活动,不存在一种“标准成本比例”,并且肯定了简单的定量分析方法和局部数据的价值。杨叶[8] [9]等人研究了CSBSG 数据库中的项目成本数据, 在开发类型、软件规模和开发团队规模等方面分析了软件成本分布的情况, 还单独对维护类型的工业项目成本进行了分布模式的研究,认为在多种因素的影响下,成本分布变化较大。Heijstek [10]为提高对项目动态分配资源方面的理解, 研究了RUP 模式下成本分布情况, 在项目开发早期提供成本分配的参考意见。
在这些已有的研究工作中, 有按照传统瀑布模型和COCOMO 模型进行成本分布的研究, 也有按照RUP模式进行的分布研究,重点对某一工业类型项目的成本分布研究[9] [11]。但是这些研究的项目数大都在一百以内,缺少对大规模数据集及多种开发类型、不同持续时间项目的阶段成本分布研究。本文以课题合作伙伴提供的大规模软件项目数据集EDS 为依据, 从数据集总体以及多种开发类型、不同项目持续时间等方面研究了软件项目开发阶段成本的分布情况和相应差异,能够有效指导项目经理对项目资源进行分配。
2. 数据预处理 2.1. 数据集概述 本文在大规模的历史项目数据集-EDS 进行研究,数据集共包含14054 个软件项目,各类信息数据上万条,是目前世界上规模最大的软件工程数据集之一。其中,项目集属性众多,如表1 所示。原始数据集中包含多种开发方法学,每种方法学都具备相应细化的开发活动阶段。同时,数据集中的项目来源于多种行业,例如电信业、制造加工业、政府机构等;开发类型也多种多样,既有新开发的软件项目,也有对软件产品的维护项目;项目所属国家包含美国、新西兰、法国等;项目所采用的开发团队规模也大小不一;项目开发时间从上世纪七十年代至今。
数据集中各开发阶段所包含的详细开发活动,如表2 所示。其中Define & Analyze 阶段对应于问题 429