知识卡片

领域模型对软件开发的五大作用

结构图卡

内容

[[领域模型的定义与两种表示形式]]之所以被公认为促使面向对象项目成功的最佳实践之一,是因为它在软件开发活动的多个环节都发挥着不可替代的作用,一共体现在五个方面。第一,领域模型为需求定义提供领域知识和领域词汇——比《词汇表》更能体现各领域概念之间的关系,具有更好的大局观。第二,软件界面设计往往和领域模型关系密切——一方面领域信息是界面所要展现内容中最重要的部分,另一方面界面结构必须和业务内容的结构一致,否则软件会晦涩难用。第三,领域模型是否合理会严重影响软件系统的可扩展性——丰富多彩的软件功能背后”藏”着的领域模型,决定了软件功能可能达到的范围,模型的选择会直接影响最终系统的灵活性和可重用性。第四,由于分层架构思想被广泛接受,领域模型经过精化后会成为业务层的核心。第五,领域模型是设计持久化数据模型的良好基础,实践中直接把领域模型映射成物理数据模型的例子并不少见。这五点作用揭示了一个共同的机制:领域模型不是需求分析阶段用完即弃的辅助工具,而是贯穿需求定义、界面设计、可扩展性、业务层实现、数据持久化整个开发链条的”共同底座”——一旦领域模型出问题,这五个环节都会受到牵连,这也是为什么领域建模的质量值得被当作项目成败的关键因素之一来对待。

结构图

flowchart LR
    A["领域模型"] --> B["需求定义\n提供领域词汇+关系"]
    A --> C["界面设计\n结构须与业务内容一致"]
    A --> D["可扩展性\n决定功能可能的范围"]
    A --> E["业务层核心\n精化后成为分层架构的业务层"]
    A --> F["持久化数据模型\n可直接映射为物理数据模型"]

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第7章《领域建模》"7.1.3 领域模型'为什么'"节(源文件:_epub-src/OEBPS/text00010.html) - 结论依据:原文逐条列出"领域模型为需求定义提供了领域知识和领域词汇……软件界面的设计往往和领域模型关系密切……领域模型是否合理将严重影响软件系统的可扩展性……领域模型经过精化之后会成为业务层的核心……领域模型是设计持久化数据模型的良好基础"五点作用,直接支撑本卡片结论与结构图。 - 原始内容:领域模型是否合理将严重影响软件系统的可扩展性。这是因为,丰富多彩的软件功能背后"藏"着的领域模型决定了软件功能可能的范围……模型的选择会影响最终产生的系统的灵活性和可重用性。