《软件架构设计》学习笔记--6--6大步骤2:领域建模

来源:互联网 发布:python下载 编辑:程序博客网 时间:2024/05/29 00:34

分析的另一种重要产品是领域模型,其目标是使负责该系统基本行为的所有核心类可视。 ——Grady Booch,《面向对象项目的解决方案》

本篇记录6大步骤中的第二步:领域建模。包括如下内容:

  • 什么是领域模型?
  • 领域模型的价值和意义所在

1、什么是领域模型

“是什么”
领域模型,就是将领域概念(即这个领域内的行话)以可视化的方式抽象成一个或一套模型。
领域模型比《领域词汇表》更进一步,它不仅关注重要的领域概念,而且它还刻画这些概念之间的关系。
“什么样”
就UML而言,领域模型最常采用下面两种图表示:

  • 类图
  • 状态图
    “为什么”
    领域建模是公认的促使OO项目成功的最佳实践之一。

2、领域模型的价值

领域模型在软件开发中的作用,如上图所示。那么,它的意义又在哪里呢?
领域建模是探索问题领域的工具,可以帮助我们探索和提炼问题领域知识。

2.1对于需求人员

对于需求人员,领域建模能够帮助他们促进用户沟通,解决分析瘫痪。
需求分析阶段,常会遇到两个困难,

  • 第一个困难,用户的参与不够,造成需求分析成果中假设的成分太多。
    “参与不够”,表现为用户参与不够多,用户参与不够深入。
  • 第二个困难,问题领域太复杂时,需求分析的开展会遇到困难。

2.2对于开发人员

对于开发人员,领域建模能够破解“领域知识不足”的死结。
破解“领域知识不足”的死结的关键是要“理顺概念关系,搞清业务规则”。这恰是领域模型的强项——通过对复杂的领域进行概念抽象和关系抽象从而建立模型,获得对领域知识总体上的把握,就不会掉入杂乱无章的概念堆里。

2.3可扩展性

领域建模的输入和输出如下图所示:
这里写图片描述
从图中可以看到,领域模型的驱动因素是功能,反过来,领域模型的质量高低能够决定软件的可扩展性。可以说,“功能决定如何建模,模型决定功能扩展”。
功能是领域建模的核心驱动力,也是领域模型评审和改进的驱动力。

0 0