Page 83 - 《软件学报》2020年第11期
P. 83

康燕妮  等:软件需求变更管理的系统动力学仿真建模                                                       3399


                 蓝色的线表示采取需求变更请求筛选和分类的项目所需持续时间;红色的线表示的是采取代码评审项目所需
                 的持续时间;绿色的线表示激励开发人员增加动机强度项目所需的持续时间.根据此仿真结果和表 3 的成本对
                 比分析,当人力成本和时间成本相对紧缺,但项目剩余的时间相对宽裕时,应优先考虑节约成本.故在此情况下,
                 应优先考虑增加需求变更请求筛选和分类的改进策略,其次再考虑采取提高开发人员动机强度的改进策略,最
                 后考虑增加代码评审的改进策略.


















                                 Fig.20    Comparison of project duration required for three improvements
                                          图 20   采用 3 种改进所需项目持续时间对比

                 3    相关工作

                    目前的软件需求变更研究工作主要可分为软件需求变更产生原因分析、软件需求变更影响分析以及软件
                 需求变更管理这 3 类.在软件需求变更产生原因分析方面,不同学者从不同的角度分析与总结了需求变更产生
                 的原因.Bano 等人   [17] 基于已有文献分析,提出需求变更产生的原因可以面向业务、组织及项目视角按照根本原
                 因和偶然原因进行分类.Nurmuliani 等人        [18] 使用卡片排序方法识别软件开发人员在实践中使用的软件需求变
                 更请求类别.Kulk 等人    [19] 从定量的功能点计数中计算出需求波动率,并发现最大需求波动率取决于规模和持续
                 时间.Mao 等人  [20] 构建需求变更因素分布评估框架,基于需求变更统计过程控制提出需求变更预测方法.在软件
                 需求变更影响分析和变更管理方面,研究工作分为实证研究及仿真研究.实证研究人员通常通过收集实际软件
                                                                   [2]
                 开发项目的需求变更数据来进行变更影响分析.Nurmulian 等人 通过对多站点软件组织的两个软件项目的发
                 布版本的实证研究,分析软件需求变更对软件开发工作的影响,并指出:在软件生命周期的末期进行软件需求变
                 更,对软件的成本和进度来说是一个高风险的软件活动.而在仿真研究方面,研究者主要使用系统动力学仿真、
                 离散事件仿真、Petri 网以及蒙特卡洛仿真等软件过程仿真方法进行相关研究                         [21] .其中,使用系统动力学方法的
                 文献在几种软件过程仿真方法中最多,文献[7,22−24]都使用系统动力学方法对软件需求变更进行研究.
                    系统动力学在软件工程领域方面的研究可追溯至 1964 年,Roberts 首先使用系统动力学建模了软件项目管
                 理模型用来分析项目研究与开发             [25] .作为系统动力学在传统项目软件管理中的第一个经典的范例,Abdel-
                 Hamid 与 Madnick 在 1991 年建立了 Abdel-Hamid 模型 [26] ,该模型由人力资源管理、软件生产、计划和控制等
                 部分组成,集成了软件开发过程的管理类型功能(例如计划、控制和人员配置)和软件生产类型活动(如设计、编
                 码、评审和检测).此后,Abdel-Hamid 模型被应用到众多实际的软件项目管理和系统动力学在软件工程领域的
                 研究中,至今仍具有巨大的应用和参考价值               [27] .除了 Abdel-Hamid 模型被大量用于软件项目管理以外,系统动力
                 学还被广泛用于软件过程领域方面的研究.Madachy               [28] 使用系统动力学对软件过程的行为和结构进行分析,提
                 出了软件过程动力学(software process  dynamics).作为软件过程系统动力学仿真领域的经典著作,在该著作中,
                 作者提供了大量工业界的案例来帮助人们学习软件过程动力学的使用.Kellner 等人                         [29] 对软件过程仿真建模方
                 法的文献综述中提到:根据研究目的,系统动力学软件过程仿真建模研究分为 6 类,分别是策略管理(strategic
   78   79   80   81   82   83   84   85   86   87   88