[论文解读] Domain-Driven Design in Software Development: A Systematic Literature Review on Implementation, Challenges, and Effectiveness
本篇系统文献综述分析了36篇关于软件开发中领域驱动设计(DDD)的同行评审研究,识别出DDD在微服务架构中的有效实施、在入职和专业知识要求方面的关键挑战,以及现有研究中实证验证的有限性。研究结论指出,DDD有助于提升系统设计和复杂性管理,但呼吁开展更严格的评估并加强产学研合作。
Context: Domain-Driven Design (DDD) has gained significant attention in software development for its potential to address complex software challenges, particularly in the areas of system refactoring, reimplementation, and adoption. Using domain knowledge, DDD aims to solve complex business problems effectively. Objective: This SLR aims to provide an analysis of existing research on DDD in software development, paint a picture of DDD in solving software problems, identify the challenges encountered during its application and explore the results of these studies. Method: We systematically selected 36 peer reviewed studies and conducted quantitative and qualitative analyzes to synthesize the findings. Results: DDD has effectively improved software systems, with its key concepts. The application of DDD in microservices has gained prominence for its ability to facilitate system decomposition. Some studies lacked empirical evaluations, highlighting challenges in onboarding and the need for expertise. Conclusion: Adopting DDD benefits software development, involving stakeholders such as engineers, architects, managers, and domain experts. More empirical evaluations and open discussions on challenges are needed. Collaboration between academia and industry advances the adoption and transfer of knowledge of DDD in projects.
研究动机与目标
- 分析现有关于软件开发中领域驱动设计(DDD)的研究。
- 识别DDD在实践中的应用,特别是在复杂系统和微服务中的应用。
- 揭示在采用DDD过程中遇到的挑战,包括入职困难和专业知识要求。
- 通过综合实证发现来评估DDD的有效性。
- 指出实证验证方面的缺口,并呼吁加强学术界与产业界的合作。
提出的方法
- 采用系统文献综述(SLR)方法,以识别和筛选相关同行评审研究。
- 纳入标准聚焦于讨论DDD实施、挑战或在软件开发中有效性的研究。
- 在使用预定义标准进行筛选和质量评估后,共筛选出36项研究。
- 采用定量与定性综合技术,分析所选研究中的发现。
- 应用主题分析法,提取实施、挑战和结果方面的重复性模式。
- 本综述遵循PRISMA指南,以确保研究筛选过程的透明性与可复现性。
实验结果
研究问题
- RQ1领域驱动设计(DDD)在现实世界软件开发项目中是如何实施的?
- RQ2在软件团队中采用DDD时遇到的主要挑战是什么?
- RQ3有哪些证据表明DDD能提升软件系统质量与可维护性?
- RQ4当前DDD研究中实证评估的覆盖程度如何?
- RQ5领域专家、架构师和开发人员在成功采用DDD过程中分别发挥什么作用?
主要发现
- DDD已有效应用于微服务架构中,有助于实现更好的系统分解并实现与业务领域的对齐。
- 关键DDD概念,如通用语言、限界上下文和聚合,显著提升了软件设计与可维护性。
- 许多研究缺乏实证验证,仅有少数研究报告了可衡量的结果,如性能提升或缺陷减少。
- 入职挑战频繁被提及,尤其因需要深入的领域知识和跨职能协作。
- DDD专业知识是主要障碍,团队常难以找到或培训具备足够经验的人员。
- 长期、大规模的实证研究存在显著缺口,表明需要在工业环境中开展更严格的评估。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。