我的工程实践课题是基于室内地图数据,运用OpenGL渲染手段,构建并渲染三维空间模型,进一步可应用到虚拟现实的交互游戏场景。
(2)领域建模意义
领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同。
首先我们需要明白建模的目的是什么?如果仅仅是为了描画问题,那么并没有什么对错之分——仅仅是立场和角度的差别;而如果是为了企业业务系统而进行建模,在开始分析和建模之前,我们需要知道企业业务系统的目的是什么;而企业业务系统的目的往往跟决策者或者管理的诉求相关。我们现在需要移情到一位管理者身上,看看他的诉求到底是什么。我们对于事件的追溯可以通过对数据的追溯来完成。你无法回到从前去看看到底发生了什么,但是却可以在单据的基础上,一定程度的还原当时事情发生的场景。当我们把这些数据的足迹按照时间顺序排列起来,我们几乎可以清晰的推测出这个在过往的一段时间内到底发生了哪些事情。
(3)领域建模方法
本次领域建模采用四色建模法,将抽象出来的对象分成四种原型,分别为:
1.时刻-时段Moment-interval:这种对象表示那些在某个时间点存在,或者会存在一段时间的,这样的对象往往表示了一次外界的请求,需要追踪它或做某事,通俗地说其实就是关键动词,就是服务。这样的对象表示的都是系统的价值所在,所以也是最重要的一类对象,一般用粉色来表示。
2.角色Role:这种对象表示的是一种角色,往往由人或者物来承担,会有相应的责任和权利,一般一个 moment-interval 对象会关联多个 Role,这类对象是除moment-interval 对象外最重要的一类对象,一般用黄色来表示。这类对象一般都有一些被 moment-interval 对象请求的操作,用来完成它们的职责,一般用黄色来表示。
3.参与方Party:Place or Thing, 这种对象往往表示的是一种客观存在的事物,这些事物往往会在一种 moment-interval 中扮演某个 Role,也可以在询价中扮演询价人的角色。这类对象一般都有 Name, Address 等属性,一般用绿色来表示。
4.描述Description:这种对象一般是分类用或者描述性的对象,Party会属于某个 Description,主要用来表示一类事物,它的属性一般都是这一类事物都有的type, defaultValue等属性,这类对象一般用蓝色来表示。
由此我们得出,建模的次序和重点应按照如下进行:
-
首先以满足管理和运营的需要为前提,寻找需要追溯的事件。
-
根据这些需要追溯,寻找足迹以及相应的时标性对象。
-
寻找时标性对象周围的人、事、物。
-
从中抽象角色。
-
把一些信息用描述对象补足。
二、领域建模
(1)模型图
(2)对象分类
- Moment-interval:根据业务需求的主线流程,分为3步:传入实景数据、构建三维图形、虚拟场景漫游,将其标为粉色。
- Role:本项目涉及到的实体对象主要有:用户、点云数据、八叉树模型、三维图形,将其标为绿色。
- Party:用户直接作为参与方将数据传入系统中;在传入实景数据时,点云数据作为位置信息参与其中;在构建三维图形时,点云数据作为数据库文件的数据结构,转化为八叉树模型;在虚拟场景漫游时,八叉树模型通过OpenGL接口转化为三维图形,并导入至unity中。
- Description:主要需要描述的步骤有:实景数据的位置信息涉及面较广,需要详细分为:空间特征点、相对位置关系、自身位姿状态;虚拟场景漫游需要实现的功能较多,需要详细分为:地图搭建、路径规划、漫游实现。
三、总结
对于业务系统有两个东西是很重要的:可追溯性(traceability)和执行效率(efficiency)。这里的可追溯性是指责任的可追溯性(traceability of liability),而通常都是在一些不太好的事情发生之后,才需要对责任进行追溯。所以想一个相对负面的例子更容易帮助我们找到建模索需要解决的问题。