业务领域建模的概念
业务对象模型(也叫领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象("业务类和对象")之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。
业务领域建模的原因
业务建模在ERP工程中被着重强调,而且ERP中的BPR已经成为一门独立的学科。不仅如此,即便是在普通的信息系统中,业务建模也是非常重要的,所不同的,仅仅是它们的规模而已。这一点上,可能大家会不理解,如果你只是为企业的业务自动化建立应用,直接照搬企业模式不就行了吗。这里有两点原因,一是企业原有的业务模式在以人为主的环境中可能运行的很好,可是把这套模式原本不动的搬到计算机上就未必会适合了。人的能力和计算机的能力有很大的出入,所以流程必须经过调整以适应计算机;第二个原因是上面已经提到过的避免产生部门级的,部分功能区域的应用系统。
在RUP中,业务建模被作为下游流程的输入重点强调:业务模型是需求工作流程的一种重要输入,用来了解对系统的需求。(RUP)
业务领域建模的步骤
建立领域模型的好处:
1,通过建立领域模型能够从现实的问题域中找到最有代表性的概念对象
2,并发现出其中的类和类之间的关系,因为所捕捉出的类是反馈问题域本质内容的信息。
经典的面向对象的分析或调研的步骤,是把一个相关的领域,分解为单个领域类或者对象(是一个我们能够理解的概念)。
领域模型是领域类或者是我们感兴趣的现实对象的可视化表示。
它们也被称之为:概念模型、领域对象模型、分析对象模型等。
在UML中,领域模型是不定义操作(方法)的一组类图来说明,它主要表达:
1, 领域对象或者领域类
2, 领域类之间的关联
3, 领域类的属性
属性用以表达对象的状态。
以工程实践为基础,进行领域建模
我的工程实践为基于大数据进行电影推荐。以我的工程实践为基础,进行领域建模的步骤如下:
(1)发现类及其属性,区分业务主体、实体、属性、实例
主体(各种角色):customer
实体:system、film、screen、room、seat、city、theatre
属性:price/start_time/location-x-y/out-time/status
(2)将各个名次归类,分到相应的问题域:包括:1影院选择location case包括: location(city、town、customer、system,theatre),2电影选择:选择电影film,选择场次screening;座位选择:seat,screen;4 订票:reservation.
(3)确定模型之间的关系,用UML提供的方法和图例进行领域模型设计,如上图。关键是找准关系以及对应的映射关系(多重关系 1 对 1, 1 对 多,多对多)
最后类图如下: