Page 36 - 《软件学报》2021年第9期
P. 36

2660                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

         对问题空间的理解设计解空间.相应地,应用 DDDP 面临着理解问题空间时“理解领域的困难”挑战以及基于对
         问题空间的理解设计解空间时“建模本身的复杂性”挑战.另外,这个过程还面临着“DDD 理论的成熟度欠佳”挑
         战.由于软件开发除领域逻辑外还需解决技术等其他难题,在实际软件项目开发中落地 DDDP 还面临着“对于除
         领域外的其他方面关注较少”挑战.
             对于应对实践 DDDP 时所面临挑战的缓解方法而言,既有积极的一面,也有消极的一面.
             •   在积极的一面,这些缓解方法代表了实践者为应对 DDDP 所带来的挑战而做的努力:首先,一些缓解方
                法代表了 DDD 实践者当前的最佳实践,比如利用事件风暴(event storming)来探索领域(M4)和建模规
                约(modeling conventions)(M13);其次,为了更好地应用 DDDP,领域驱动设计的实践者们付出大量努力,
                包括提出 UML 配置文件(M7)和元模型(M8)等解决方案;最后,一些缓解方法中展现了从其他方法论中
                借鉴来的智慧,如中间模型(M14)和领域视图(M12)等;
             •   在消极的一面,DDDP 的应用中仍然存在很多问题:首先,尽管针对 C6 的缓解方法,也就是 UML 配置文
                件(M7)和元模型(M8)具有一定效果,但它们违背了 Evans 的初衷               [30] ,具体而言,虽然 M7 和 M8 可以在
                一定程度上使领域模型标准化,并减少歧义,但由于它们增加了更多的规则约束,所以也降低建模过程
                的创造性;除此之外,一些缓解方法仅仅根据案例研究进行了评估,还缺少进一步的验证,比如 C8 的建
                模工具和软件开发过程概览(M17);最后,一些缓解方法本身并不容易实施,因为这些方法既没有给出
                系统性的指导,也没有给出具体实施的提示.
         4.4   对研究者的启示
             在目前关于 DDDP 的学术研究中,已发表研究文献的主要关注点是对 DDDP 详细内容的完善和在软件项
         目中应用 DDDP 两类,主要贡献也集中于提出新的方法或者总结应用 DDDP 的实践经验.然而,在软件工程中是
         “没有银弹”的,任何理论方法都会存在一定的局限性和缺点,DDDP 也是如此.相比于已经广泛应用 DDD 理论的
         软件工业界而言,对于 DDDP 应用的反思,在学术研究文献中还比较少见.
             此外,DDD 应用实践时除了需要掌握以领域为中心的思考方式之外,还应该能够熟练地掌握正确应用包括
         战略和战术设计方面在内的各种 DDDP.然而,相关研究文献以及著作中所论述的 DDDP 应用策略都比较抽象,
         这使得在实际情况下应用 DDDP 还缺少系统性的指导方法和良好实践,DDDP 的应用在很大程度上仍依赖于
         主观经验.因此,未来研究者可以考虑细化应用 DDDP 的指导方法,并提出或总结更多可供参考的良好实践.

         5    效度威胁讨论

             本系统文献综述的工作中存在的效度威胁来源于文献筛选、数据抽取及数据合成过程中可能存在的偏见.
             为了消除检索字符串及数据库选择中存在的偏见,我们在自动检索之前进行了手动检索并确保:①  手动
         检索中出现的每个 DDD 同义词都已被合并到检索字符串中;②  手动检索获得的每篇文献都包含在自动检索
         结果集合中.之后,我们通过滚雪球过程对于每个 DDDP 所执行的单独自动检索结果进行补充.此外,本研究还预
         定义了一个已知的论文集合,以检查检索过程的全面性和准确性.为了避免文献筛选出现错误,每篇文献均由至
         少两名作者独立筛选与评估,然后通过二次审核过程进行合并.在这个过程中,我们使用了 Kappa 分析确保足够
         的可靠性    [18] .
             在数据抽取与合成部分,效度威胁主要源于抽取过程中可能遗漏了有价值的文本数据,从而导致合成过程
         得出不准确的结论.为了避免遗漏有价值的文本数据,本研究在进行数据抽取过程之前先进行了小规模实验,并
         按照作者的理解对数据抽取形式进行了调整.基于实验调整后的数据项形式,两名作者独立地对每篇研究文献
         进行数据抽取,并在最后进行合并.为了减少数据合成过程中得出的不准确的结论,作者们首先对 DDD 相关书
         籍 [1,4,18,70−72] 进行学习和探讨,从而熟悉 DDD 社区.之后,两名作者独立进行编码过程,并与第三名作者协商解决
         这一过程中存在的冲突或疑问.同时,在本研究中通过对于编码结果的两次复核,保证了对结果的改进.
   31   32   33   34   35   36   37   38   39   40   41