一、业务领域建模的概念
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
业务对象模型(领域模型 domain model)是描述业务用例实现的对象模型。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。它注重业务中承担的角色及其当前职责。这些模型类的对象组合在一起可以执行所有的业务用例。
二、业务领域建模的意义
建立领域模型的好处:
1,通过建立领域模型能够从现实的问题域中找到最有代表性的概念对象
2,并发现出其中的类和类之间的关系,因为所捕捉出的类是反馈问题域本质内容的信息。
经典的面向对象的分析或调研的步骤,是把一个相关的领域,分解为单个领域类或者对象(是一个我们能够理解的概念)。
领域模型是领域类或者是我们感兴趣的现实对象的可视化表示。
它们也被称之为:概念模型、领域对象模型、分析对象模型等。
在UML中,领域模型是不定义操作(方法)的一组类图来说明,它主要表达:
1) 领域对象或者领域类
2) 领域类之间的关联
3) 领域类的属性
属性用以表达对象的状态。
三、业务领域建模的方法
领域模型划分尽量保证业务的高内聚和低耦合,划定领域边界,保证一个业务逻辑尽量在一个领域模型内部,领域模型之间尽量少业务来往,领域模型划分尽量保证,一次业务流程涉及尽量少的领域模型。
1.关注现实世界(问题领域)对象。
2.使用泛化(is-a)和聚合(has-a)关系来显示对象如何相互关联。
3.将您的初始域建模工作限制在几个小时。
4.围绕问题领域的“关键抽象”来组织您的类。
5.不要将您的领域模型误认为数据模型。
6.不要将一个对象(代表单个实例)与数据库表(其中包含事物的集合)混淆。
7.使用领域模型作为项目词汇表。
8.在您编写用例之前,先做一些初始域模型,以避免使用名称歧义。
9.不要指望您的最终类图精确匹配您的领域模型,但他们之间应该有一些相似之处。
10.不要在您的域模型上放置屏幕(screens)和其他GUI特定的类。
四、业务领域建模的具体设计
1.收集应用领域信息
-关注功能要求:拍照文档、 支票、 表单表格、 证件、 邮政信封、 票据、 手稿文书等光学字符识别 (Optical character recognition, OCR) 图像识别系统以及手写文字输入设备中的广泛应用 ,手写汉字识别 (Handwritten Chinese character recognition, HCCR) 一直是模式识别的一个重要研究领域 ,主要方向为脱机 (Offline) 手写体汉字识别 。
–考虑其他需求文档
2.头脑风暴
–列出重要的应用程序域概念:
深度学习模型
数据集
损失函数
–列出它们的属性/属性
不同算法所支撑的模型
数据标签
–列出它们之间的关系
数据----训练----》模型《-----优化-----收敛
3.将领域概念分为:
(1)图像类
属性:图像属于训练集或测试集,灰度值等
方法:图像二值化、锐化、增强、旋转。。。
(2)特征类
属性:Gabor特征、HoG特征、梯度特征
方法:方向特征图、特征提取算法
(3)模型类
属性:BatchSize、epoch、学习率
方法:ResNet、GoogLeNet、CapsNet
4.使用UML类图记录结果