Page 23 - 《软件学报》2021年第9期
P. 23
贾子甲 等:领域驱动设计模式的收益与挑战:系统综述 2647
(3) 滚雪球
在手动检索与自动检索之后,本研究中还使用了反向滚雪球(backward snowballing,简称 BSB)和前向滚雪
球(forward snowballing,简称 FSB)方法对检索结果进行补充.考虑到滚雪球的初始论文集决定了该过程的效率
和完整性,本研究将手动检索和自动检索所得进行文献选择并合并后的结果(见图 1 和表 4)作为滚雪球的初始
集合.注意,所有手动检索的结果都被自动检索的结果覆盖.在这个阶段,我们遵循 Wohlin [19] 的指导方法,并且反
复迭代滚雪球的过程,直到不再有新的文献被发现.
表 4 中,第 1 次迭代和第 2 次迭代最终分别获得 16 项(5+12=17,其中 1 篇文献重复,最终得到 16)和 2 项新
研究文献.
Table 4 Intermediate result in snowballing
表 4 滚雪球过程的中间结果
检索阶段 初始文献数量 来自 BSB 的文献数量 来自 FSB 的文献数量 文献总数
迭代 1 44 5 12 16
迭代 2 16 2 0 2
(4) DDDP 的自动检索
为了进一步确保研究集合的完整性,本研究通过基于 DDDP 名称的自动检索来补充现有的检索策略.具体
来说,我们在 Scopus 中执行了另一个自动检索过程,其检索的字符串由每个模式的名称以及“domain”(“领域驱
动设计”的最通用术语)和“software”(软件工程最通用的术语)组成.比如,与 DDDP“Entity”(及“Entities”)相关的
检索字符串为如下:
(“Entit*” AND “domain” AND “software”).
对于 DDDP 的完整列表,我们遵循了 Evans [20] 在 2014 年的总结,总共包含 45 个模式.然而,虽然这种检索方
法使用 Scopus 中的字段码 TITLE-ABS-KEY 检索到了 7 515 篇论文,但经过文献筛选后,并未获得新的文献.两
次检索所得论文数量的巨大反差,可能是因为许多 DDDP 的名称在软件工程中也非常通用,比如服务(service)
和资源库(repository)等.因此,本文并没有在图 1 中包含此检索过程.
2.2.2 文献筛选
本系统文献综述使用的文献纳入和排除标准如下所示.注意,只有符合所有纳入标准的基础研究文献才会
被纳入,而符合任何一项排除标准的文献都将被排除.
(1) 纳入标准(include criteria)
• IC1:文献提供了关于 DDD 的某种形式的数据.在这一阶段,我们的目标是最大限度地扩大文献范围,以
确保研究的完整性;
(2) 排除标准(exclude criteria)
• EC1:发表于 2003 年 DDD 被发表之前的文献(因为 DDD 于 2003 年被提出);
• EC2:无法获得电子版全文的文献;
• EC3:用英语以外的语言撰写的文献;
• EC4:没有经过同行评审的文献;
• EC5:存在更加完整的文献.即同一基础研究(primary study)有多篇文献,此时将最完整的文献纳入.
具体筛选过程如下:
• 前期准备:按主题筛选——我们通过浏览自动检索得到的每篇文献的标题,并确定其是否属于软件工
程领域.注意,这个阶段是专门为自动检索设计的,因为一些数字图书馆(例如 Scopus 和 ScienceDirect)
不支持基于主题的筛选,或者其基于主题的筛选功能相对有限;
• 第 1 阶段:按标题筛选——我们通过浏览手动检索、自动检索以及滚雪球所得到的文献列表的标题,
以确定哪些文献符合纳入/排除标准;
• 第 2 阶段:按关键词和摘要筛选——我们分析通过第 1 阶段的文献的关键词和摘要,进一步确定它们是