业务领域建模Domain Modeling

Posted richardtao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了业务领域建模Domain Modeling相关的知识,希望对你有一定的参考价值。

一 领域模型是什么?

 领域模型(domain model)是对领域内的概念类或现实世界中对象的可视化表示。领域模型也成为概念模型、领域对象模型和分析对象模型

此领域模型的定义源于《UML和模式应用》一书,个人认为这本书中对领域建模的概述是最完整、可操作性最强的。

领域模型是一种概念模型,也叫问题域模型。它表述的是某个领域的现实概念。

 

二 领域模型有什么特点?

将书中提到的观点总结,有如下三点内容:

第一,领域模型是业务概念的可视化描述,是需求分析的产物;

第二,领域模型用于指导程序设计,但领域模型与实现方式无关,领域建模时不应该考虑如何实现;

第三,领域模型需要同项目所有成员(客户、项目经理、开发、测试…)达成共识。

 

三 为什么要做领域建模?

首先,建模的重要性在所有工程实践中都已经得到了广泛的认同。

建模是一种抽象和分解的方法,它可以将复杂的问题拆解成一个个抽象,代表了特定的一块密集而内聚的信息。

从上世纪80年代开始,人们对于面向对象建模产生了许多思考和方法,其中最流行的就是面向对象分析与设计。面向对象分析,强调的是在问题域发现并描述概念,解决的问题是做正确的事情。面向对象设计,强调的是定义软件对象,解决的问题是正确的做事情。

领域模型就是面向对象分析的主要产物,它表达了对现实问题的描述和抽象。

 

大多数人可能可能会有质疑:不做分析和设计,我也可以直接去做代码实现(甚至使用面向过程的编程语言),一样可以完成软件的功能需求,何必花心思去做建模呢?

但实际上,这样做会有以下弊端

首先,如果不做设计直接实现,俗称走一步看一步。很大可能在开发过程中发现思维局限,开发进度推倒重来。

其次,如果不做分析直接设计,看起来没什么问题。遗憾的是,通过这种方式构造的代码,并没有和现实世界连接起来,当我们的软件和需求稍加修改,这份代码就可能变得异常混乱和难以维护。而通过领域建模的,自上而下的设计,可以保证代码实现的层次结构和模块划分是科学的、稳定的。

 

总的来说:

领域建模可以降低软件和现实世界之间的差异,用真实的业务概念划分职责,目的是实现一个可以高效低成本维护的可持续发展的软件系统。
从领域模型推导到系统实现是一套引导思考的方式,也是一套科学的开发流程。其核心目的在于提供了系统设计的“指导方针”。领域模型必须站在用户需求和业务发展的角度上,既可以用来同客户沟通验证需求,又可以避免模型因实现的考量而带偏(实现成本、遗留系统)。

 

四 工程实践的业务领域建模

我的工程实践选题是物联网组网智能分析引擎

本文将按照以下几个步骤完成建模的过程:

4.1 Collect application domain information

第一步是收集应用领域的信息,其核心在于了解业务中所涉及的功能需求是什么,也就是说本系统区别与其他系统最显著的特点,比如在电商系统中其最主要的功能需求就是浏览商品详情、购物车、订单等功能。

在核心功能需求之后所需要考虑的,是用户其他的非功能性需求,再以电商系统为例,个人中心可能不是功能需求,但对于用户而言这样的功能不能缺少,所以再建模的时候也需要考量。

 

那么,针对于我的工程实践选题,分析出的业务需求有以下几点:

一是提供合适的组网方案;

二是按照用户要求从数据库中筛选信息;

三是对于筛选的数据进行可视化展示;

四是组网方案的反馈;

五是将两个不同的组网方案进行比对并呈现结果。

 

4.2 Listing important application domain concepts

第二步是对于之前所提取出的功能性需求,列举出这些功能性方法中所涉及到的属性,以及这些属性之间的关系,比如电商系统的购物车功能模块中就涉及到商品名称、商品价格等信息,而这些属性是属于商品模块中的,这种就是属性之间跨域的联系。

 

那么,按照第一步中所做的业务功能需求,将其中所涉及的属性列举:

一,组网方案,这是本项目的核心,所牵涉到的属性也是最多的,有:组网方案ID、成本、典型组网方式、开发周期、测试标准、交付周期、功能(充电、唤醒、WIFI、ZIGBEE组网、协议支持、远程配置等)。

二,组网反馈信息,其中的属性有:用户ID、用户名、反馈的组网方案ID、反馈的详细信息、反馈时间。

三,用户的信息,包含:用户ID、用户名、密码、电话号码、邮箱。

四,管理员的信息,包含:管理员ID、管理员姓名、密码、电话号码、负责的业务。

 

4.3  Classifying the domain concepts into classes

 第三步,将之前所提取出的功能需求方法以及属性整合成类。

按照前两部的分析结果,可以得出以下类:

一,用户类;二,管理员类;三,组网信息类;四,组网方案类;五,反馈信息类。

 

4.4 Document result using UML class diagram 

 最后,绘制业务类图,其结果如下。

技术图片

 

五 参考链接 

https://www.jianshu.com/p/2828874af134

http://www.fanyilun.me/2018/04/08/%E8%B0%88%E8%B0%88%E9%A2%86%E5%9F%9F%E5%BB%BA%E6%A8%A1/

https://blog.csdn.net/significantfrank/article/details/79614915

以上是关于业务领域建模Domain Modeling的主要内容,如果未能解决你的问题,请参考以下文章

业务领域建模Domain Modeling

业务领域建模Domain Modeling

业务领域建模Domain Modeling

业务领域建模Domain Modeling

业务领域建模Domain Modeling

业务领域建模Domain Modeling