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

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


                                        Table 1  Model test in system dynamics (Contiuned)
                                                表 1   系统动力学模型检测(续)
                     检测方法  [13]    检测目的                 检测步骤/未检测原因                       检测结果
                               评估变化带来的       以变量“review effectiveness”为例,分析采用代码评审的
                                影响,即当假设       最差情况是经过代码评审后 bug 的报告量未减少,即
                        灵敏度    在合理的不确定        评审有效性的变量取值为 0,最优的理想情况是经过                   模型通过
                     11   分析     范围内发生        代码评审后所有 bug 都被发现,即评审有效性的变量                  灵敏度
                         检测     变动时,模型      取值为 1,结合现实情况,评审有效性取值范围为[0,1),检测              分析检测
                                所得出的结论      结果表明基线情况处于最优情况和最差情况之间,故评审
                                是否事关重大          有效性的基线情况通过单值灵敏度分析检测
                         系统      建模的过程                                              仿真结果表明,采用软件
                     12   改进     帮助系统        从代码评审、激励措施的有效性和需求变更请求评估                  过程改进策略,系统
                                             这 3 个方面对软件需求变更管理过程的改进进行仿真
                         检测      变得更好                                                质量得到进一步提升

                    上述对模型的 11 种检测结果表明,模型均通过以上检测,达到建模目的.下面以 Spring Framework 项目为研
                 究案例,使用版本分支 3.2.x 的数据进行需求变更管理过程的仿真,并对仿真结果进行分析改进.

                 2    案例研究
                    Spring Framework 为任何部署平台上基于 java 的现代企业应用系统提供一个全面的编程和配置基础架构
                 支持,由于其构建了一个企业应用程序的”管道”,使用这个框架的团队就可以专注于应用程序级别的业务逻辑,
                 而不必在意特定的部署环境.另外,Spring Framework 项目在开源社区软件中是比较活跃且受众面较大的一个
                 开源项目,相对而言经过长时间的运维,该软件较为成熟,且该项目采用了敏捷开发方法,本文的需求变更模型
                 也具有敏捷开发的特征,因此选择 Spring Framework 项目为本文的研究案例.
                    在进行模型仿真前,对 Spring Framework 项目中的相关数据进行收集和清理:首先,收集 Spring Framework
                 的 issue tracking  system(JIRA 系统)中所有 issue 数据,使用 git 工具以及 git clone 命令,通过 url 方式将 spring
                 framework 的 commit 数据拉取到本地;之后,对于 issue 数据,在删除不需要的字段后,通过数据库导入工具将
                 issue 数据导入数据库;对于 commit 数据,使用 java 文本处理程序将数据导入数据库中;最后将所有数据导入到
                 数据库,执行 Sql 脚本,查询导出仿真所需数据,组织为 csv 格式,并执行数据预处理程序,将数据转换成 Vensim 可
                 以识别的数据格式并输入 Vensim,进行基线实验仿真分析.
                 2.1   基线实验仿真分析
                    将收集清理的数据在 Vensim 中进行仿真,得到如图 11~图 15 所示的基线仿真结果.此部分根据基线结果进
                 行 Spring Framework 项目版本分支 3.2.x 需求变更管理过程分析,提出该项目需求变更管理过程的优缺点.













                                   (a)  开发人员数量                          (b) 核心开发人员数量

                                              Fig.11   Baseline simulation results 1
                                                   图 11   基线仿真结果 1

                    图 11(a)和图 11(b)都是开源软件社区人力资源子系统的仿真结果,分别表示外围开发者以及核心开发团队
                 成员的数量随时间的变化趋势.在分支 3.2.x 的生命周期中,两者都呈现出明显的增加趋势,反映出软件项目组
   70   71   72   73   74   75   76   77   78   79   80