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

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


                    需要说明的是,在 issue tracking system 中,需求变更请求以及系统中的缺陷都统称为 issue.本文将需求变更
                 请求与系统中的缺陷加以区分,本文中的 issue 专指需求变更类型的 issue,而系统的缺陷类的 issue 则称为 bug.
                 1.2   开源软件需求变更过程关键因素抽取及因果关系分析
                    根据上述分析及相关文献整理,选取软件需求变更相关关键因素后,确定各关键因素之间的因果关系,绘制
                 如图 3 所示的因果关系图.因果关系分析起始于需求变更请求(requirement change  request),由于需求变更的影
                 响通常直接反映在项目工作量的变化上,为了能够较为详细地分析需求变更对软件项目造成的影响,因果图中
                 将需求变更引起的工作量(requirement change effort)变化细分为 3 类:对需求变更请求分类所需的工作量(triage
                 effort)、实现和修改需求变更请求所需的工作量(implement &  modify effort)以及修复 bug 所需的工作量(fix
                 effort).Triage effort 指的是需求变更请求提交后,项目组的成员需要对需求变更请求进行分类(triage),以区分出
                 请求的合理性和有效性所需的工作量,也就是传统软件项目中需求变更评审活动所花费的工作量.目前,大中型
                 开源软件项目通常都使用需求变更管理工具或 issue tracking  system 进行软件需求变更管理,这些工具可以在
                                                          [7]
                 一定程度上帮助项目管理人员进行请求的初步过滤 ,这也是因果图中自动识别有效性(automatic recognition
                 effectiveness)的作用.当需求变更请求被接受,在花费人力和时间去实现或修复这个变更时,就形成了因果图中
                 实现或修改变更请求所需的工作量.另外,在完成需求变更过程中可能会造成 bug 的产生,为了修复这些 bug,相
                 关工作量是修复 bug 所需的工作量(fix effort).






























                                    Fig.3    Cause graph for open source software requirement change
                                              图 3   开源软件需求变更因果关系图

                    随着需求变更请求的增加,需求变更所需消耗的工作量也随之增加,并进一步引起项目持续时间(project
                 duration)的增加以及项目进度压力(excessive schedule  pressure)的变化.而项目持续时间的增加,则需要对敏捷
                 过程中每一个 sprint 的迭代周期(duration of sprint)的长短进行调整,以适应完成需求变更所需的工作量要求,从
                 而达到减轻项目压力的目的.项目进度压力作为项目开发过程中的重要影响因素,受 sprint 的迭代周期和完成
                 需求变更所需工作量的共同影响,通过两者的共同控制,把项目进度压力控制在合理有效的范围内,从而保证软
                 件的较低缺陷量(code bugs)以及人员的较高生产力(productivity).另外,软件的低缺陷量是软件高质量(software
                 quality)的特征之一,当软件的质量较高时,能够从一定程度上提升项目对用户的吸引力(user attraction),从而最
   62   63   64   65   66   67   68   69   70   71   72